教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

算法与数据结构设计报告

来源:网络收集 时间:2026-07-11
导读: 算法与数据结构设计报告 ( 2015 / 2016 学年 第 一 学期) 题 目: 专 学 生 班 级 指 导 指 导 日 景点导游程序 业 信息安全 姓 名 邓佳成 学 号 B13040701 教 师 骆 健 单 位 计算机学院计算机科学与技术系 期 一、 课程内容和要求 内容:用无向图表示学

算法与数据结构设计报告

( 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字,全部文档内容请下载后查看。喜欢就下载吧 ……

算法与数据结构设计报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1705299.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)