算法与数据结构设计报告
算法与数据结构设计报告
( 2015 / 2016 学年 第 一 学期)
题 目:
专
学 生
班 级
指 导
指 导
日 景点导游程序 业 信息安全 姓 名 邓佳成 学 号 B13040701 教 师 骆 健 单 位 计算机学院计算机科学与技术系 期
一、 课程内容和要求
内容:用无向图表示学校的景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点的介绍、游览路径等问题。
要求:
(1)需设置普通用户、超级管理员、景点管理用户等不同权限的用户。景点管理用户增加、删除、更新有关景点和道路的信息的权限、超级管理员对所有用户有增加、删除和修改权限。
(2) 查询各景点的相关信息;
(3) 查询图中任意两个景点间的最短路径。
(4) 查询图中任意两个景点间的所有路径。
(5)所有信息需存放在文本文件中。
二、 需求分析
void cmd3();//菜单页面调用函数
void menu3();//显示菜单页面
void addUsers();//添加用户
void showUsers();//显示用户信息
void updateUser();//修改用户登录密码
void deleteUser();//删除该用户
void loadUser();//加载用户信息
void storeUser();//存储用户信息
void cmd2();//菜单页面调用函数
void menu2();//菜单页面
void showPoints();//显示景点信息
void addPoint();添加景点
void updatePoint();//修改景点信息
void deletePoint();//删除景点
void showRoad();//显示路线
void addRoad();//添加路线
void updateRoad();//修改路线
void deleteRoad();//删除路线
void cmd(void);//主菜单页面调用函数
MGraphInitGraph(void);//初始化地图
void Menu(void);//主菜单界面
void Browser(MGraph *G);//浏览景点
void ShortestPath_DIJ(MGraph * G);// 迪杰斯特拉算法计算出起点到各个顶点之间的最短路径
void Floyd(MGraph *G);//计算两景点间的总路线长
void Search(MGraph *G);//查找景点并输出景点信息
intLocateVex(MGraph *G,char* v);//
MGraph * CreatUDN(MGraph *G);//初始化图形,接受用户输入 void print(MGraph *G);//输出地图信息
void print_Passwd(void);//登录页面,输入登录信息判断是否为景区用户及用户类型
void loadInfoType(); //加载景点信息,景点信息的类型为 infotype void loadMap(); //加载道路信息
void storeInfoType();//保存景点信息
void storeMap();//保存道路信息
三、 概要设计
开始
访问磁盘中的文件, 获取已存储 的信息
访问成功?
否
是
读取用户名和密码
超级管理 员
权限判断
景点管理员
普通用户
对景点的查询, 路线 对用户进行添加, 删除, 权限修改 查询, 景点介绍等功 能
对景点进行 添加, 删 除, 修改
结束
四、 详细设计
1. 加载用户信息,若用户信息文件不存在则输出错误提示
voidloadUser()
{
ifstream in("user.dat");
if(!in)
{
} cout<<"无法加载用户信息,请检查该用户信息文件是否存在" <<endl; return ; } inti = 0; while(!in.eof()) { in.read((char*)&stu[i++], sizeof(User)); } user_num = i-1; in.close();
2. 存储用户信息,创建.dat文件
voidstoreUser()
{
ofstream out("user.dat");
if(!out)
{
cout<<"存储用户信息出错" <<endl;
return ;
}
out.write((char*)stu, sizeof(User)*user_num);
cout<<"保存成功" <<endl;
}
3. 登录页面,输入用户名跟密码,判断用户名跟密码是否正确,错误则输出提示,正确则进入主菜单
voidprint_Passwd(void)
{
int login = -1; //标记当前登录用户的下标 int flag=0;//密码正确标记 char p[10];//用户名 char s[10];//密码
char num=0;//密码次数 printf("请输入登录名:\n"); scanf("%s",p); for(i=0;i<user_num;i++) { if(strcmp(stu[i].user_Name,p)==0) { login = i; flag=1; break; } } if(flag==1) { printf("请输入密码:\n"); scanf("%s",s); } else { printf("没有此用户:\n"); exit(0); } while(strcmp(stu[i].user_Pass,s)!=0) { num++; } printf("密码错误!\n"); printf("请重新输入密码:\n"); scanf("%s",s); printf("登录成功!\n"); if(stu[login].weight == 0) { cout<<"注:普通用户" <<endl; cmd(); } else
}
} if(stu[login].weight == 1) { cout<<"注:景点管理用户" <<endl; cmd2(); } else { } cout<<"注:超级管理员" <<endl; cmd3();
4. 添加用户,输入用户信息,用户已存在时输出错误提示
voidaddUsers()
{
char name[10];
charpwd[10];
int weight;
intpos = -1;
cout<<"请输入需要添加的用户名,密码,以及权限(以空格分开)" <<endl; //权限0 是普通,1 是景点,其他都是超级
cout<<"用户名和密码不要超过 9 位" <<endl;
cin>>name >>pwd>>weight;
for(inti=0; i<user_num; ++i)
{
if(strcmp(stu[i].user_Name, name) == 0)
{
pos = i;
break;
}
}
if(pos == -1)
{
strcpy(stu[user_num].user_Name, name);
strcpy(stu[user_num].user_Pass, pwd);
stu[user_num].weight = weight;
++user_num;
cout<<"用户 " <<name <<" 创建成功" <<endl;
} else { cout<<"用户名 " <<name <<" 已经被占用" <<endl; }
5. 修改用户登录密码,将密码存储到结构体成员中代替原来的变量值
voidupdateUser()
{
intpos = -1;
char name[10];
charpwd[10];
cout<<"请输入需要修改密码的用户名" <<endl;
cin>>name;
for(inti=0; i<user_num; ++i)
{
if(strcmp(stu[i].user_Name, name) == 0)
{
pos = i;
break;
}
}
if(pos == -1)
{
cout<<"不存在该用户" <<endl;
}
else
{
cout<<"请 …… 此处隐藏:6415字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]一年级家长课程教案
- [高等教育]封丘县人民医院深入推进纠正医药购销领
- [高等教育]2017年6月大学英语四级真题试卷及答案(
- [高等教育]2017年北京第二外国语学院文学院824中
- [高等教育]7 高中历史第7单元1861年俄国农奴制改
- [高等教育]【K12学习】4、实际测量-苏教版六年级
- [高等教育]药具培训试卷题库及部分参考答案
- [高等教育]本土电子元器件目录分销商如何赢得生意
- [高等教育]七年级岭南版美术教案
- [高等教育]书作文之书法活动通讯稿
- [高等教育]Endnote X 软件使用入门和用法总结(LS)
- [高等教育]嵌入式系统的现状及发展状况
- [高等教育]2012抗菌药物专项整治活动方案解读
- [高等教育]人教版新课本一年级数学下册期末试卷
- [高等教育]爱课程民法学观后感
- [高等教育]930机组使用说明书1
- [高等教育]煤气设备设施点检标准
- [高等教育]常见室内观叶植物图解
- [高等教育]312党员群众路线心得体会
- [高等教育]小学信息(苗版)第一册全册教案
- 在市---局2010党建大会上的讲话
- 《科哲》提纲及补充阅读材料(2010.7)
- 苏州高博软件技术职业学院论文开题报告
- 兼职导游管理的困境及对策探讨
- 基于通用设计理念的现代厨房产品语义研
- 康乐一中2010年至2011年度鼓号队、花束
- 第10章_数据收集整理与描述_期末复习课
- 2008年黑龙江林甸商贸购物中心营销策划
- 水硬度的测定实验报告
- 五分钟教你拍摄夜景光绘照
- 2014年临床妇产科三基三严试题及答案
- 0第二课 纾解压力第一站了解压力
- 解析建筑工程电气设备安装施工技术要点
- 地方性应用型本科高校“双师型”师资队
- 高考语文专题复习课件:小说阅读指导
- 装饰工程投标书2
- 大学生就业难问题探讨及对策
- English and Its History
- 青岛市城市房屋修缮工程质量监督管理办
- 初中英语形容词和副词的用法和练习题




