1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 数据结构课程设计 校园导游系统 c++

数据结构课程设计 校园导游系统 c++

时间:2021-07-11 06:46:58

相关推荐

数据结构课程设计 校园导游系统 c++

元旦前后利用几天时间完成了数据结构课程设计,学期初计划搞一个*精美* 些的课程设计,最后还是一拖再拖,到最后只来得及实现些基本功能。

团队协作完成,所以代码风格不尽相同。

另外才疏学浅,若有错误恳请不吝赐教!

程序打包,提取码:1a01

基本要求如下:

① 账户登陆设计,用户可以自行选择是否登录,根据是否登录以及登陆的账户类型系统提供不同的功能。

② 对于账户信息应保存在文件中,并利用MD5加密算法将用户密码以密文形式存储。

③ 从文件中读取校园平面图并展示,所含内容应包括景点名称以及距离。

④ 能够从文件中读取地图信息,利用邻接表存储图的信息。

⑤ 利用BFS提供游览路线。

⑥ 利用KMP算法对于用户所给关键词进行匹配,为用户推荐适宜的地点并进行详细的介绍。例如:对于用户的“美食”需求,系统将会推荐前往餐厅并给出详细的介绍。

⑦ 利用Kruskal算法为用户预估游览所有景点所需的最短时间。

⑧ 对于用户给出的两地点,能够给出最短路径。

⑨ 对于管理员账户,提供更改图的信息的功能。

模块划分如图

main:

#include<iostream>#include"UI.h" #include"Function.h"using namespace std;int main(){Agreement();//启动界面 int Status;while (1){system("cls");Start();//登陆界面 int choose;cin>>choose;Status = -1;//0 未登录;1 用户 1;2 管理员; switch(choose) {case 0: exit(0);case 1: Status = Login();break; case 2: Status = Register();break;case 3: Status = 0;break;default:color(4);printf("\t\t\t\t\t命令无效,2秒后自动返回\n");color(7); Sleep(2000);}if (Status != -1)//命令有效跳出循环 {break;}}if (Status == 0)//未登录 {while (1){system("cls");Menu_none();int choose;cin>>choose;switch(choose){case 0: exit(0);//退出 case 1: Show();break;//显示 地图 case 2: Search();break;//景点推荐 default:color(4);printf("\t\t\t\t\t命令无效,2秒后自动返回\n");color(7); Sleep(2000); }}}else if (Status == 1)//普通账户 {ifstream infile(".\\Data\\Data_dij.dat");int n,m;//n is the sum of nodesinfile>>n>>m;//m is the sum of edges map mp(n,m);//声明并实例化mp; infile.close();mp.mapset();//读图 while (1){system("cls");Menu_guest();int choose;cin>>choose;switch(choose){case 0: exit(0);//退出 case 1: Show();break;//显示 地图 case 2: Search();break;//景点推荐 case 3: Visit();break;//游览全部景点所需最短时间 //case 4:{string st;cout<<"请输入您的起点:";cin>>st;mp.DFS(st);//从st开始进行深度优先搜索 break;}//case 5: {string st;string ed;cout<<"请输入您的起点:";cin>>st;cout<<"请输入您的终点:";cin>>ed;mp.dijkstra(st, ed);//求两点之间最短路 break;}//case 6: {string s;cout<<"请输入您当前所在的位置"<<endl;//从st开始进行广度优先搜索 cin>>s;mp.BFS(s);system("pause");break;}default:color(4);printf("\t\t\t\t\t命令无效,2秒后自动返回\n");color(7); Sleep(2000); }}}else if (Status == 2)//管理员账户 {ifstream infile(".\\Data\\Data_dij.dat");int n,m;//n is the sum of nodesinfile>>n>>m;//m is the sum of edges map mp(n,m);//声明并实例化mp;infile.close();mp.mapset();//读图 while (1){system("cls");Menu_admin();int choose;cin>>choose;switch(choose){case 0: exit(0);//退出 case 1: Show();break;//显示 地图 case 2: Search();break;//景点推荐 case 3: Visit();break;//游览全部景点所需最短时间 //case 4:{string st;cout<<"请输入您的起点:";//从st开始进行深度优先搜索 cin>>st;mp.DFS(st);break;}//case 5: {string st;string ed;cout<<"请输入您的起点:";cin>>st;cout<<"请输入您的终点:";cin>>ed;mp.dijkstra(st, ed);//求两点之间最短路 ,st为起点,ed为终点 break;}//case 6: {string s;cout<<"请输入您当前所在的位置"<<endl; cin>>s;mp.BFS(s);从st开始进行广度优先搜索system("pause");break;}// case 7: {cout<<"请输入需要删除的地点"<<endl;string s;cin>>s;mp.DeleteNode(s);//删除某一结点 break;}//case 8: Register_privilege();break;//新建管理员账户 default:color(4);printf("\t\t\t\t\t命令无效,2秒后自动返回\n");color(7); Sleep(2000); }}}return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。