校园导航系统(含用户登录)课程设计报告
题 目
学 院 计算机科学与技术
专 业 计算机科学与技术(师范 )
学 号
学 生 姓 名
指导教师姓名
日期:
一、题目与要求 1.1 功能要求
1.不同的功能使用不同的函数实现(模块化),对每个函数的功能和调用接口要注释清楚。对程序其它部分也进行必要的注释。
2.对系统进行功能模块分析、画出总流程图和各模块流程图。
3.用户界面要求使用方便、简洁明了、美观大方、格式统一。所有功能可以反复使用,最好使用菜单。
4.通过命令行相应选项能直接进入某个相应菜单选项的功能模块。 5.所有程序需调试通过。
1.2 设计内容:
1、查询了解学校概况,为导游参观者提供关于学校的相关信息。 2、查询校园各个场所和景点信息;
3、为导游者或外来人员参观人员提供校园交通信息,方便用户走访学校。 4.如有时间,可为程序增加以下功能:
登录模块。该模块在进入主界面之前先执行,用于对进入系统的用户进行身份验证,若用户输入正确的用户名及用户密码,则进入主界面,否则输入超过3次错误则退出程序。处理方法:用户名及用户密码可保存在一文件中,校验时从文件中读入数据进行校验。在系统中应增加一个用户管理模块,在其中可新增用户,修改用户信息等。
5系统帮助。显示开发者姓名、班级、开发完成日期、版本号和指导老师等信息。 二、分析
2.1设计基础:要掌握最短路径的实现方式。 2.2分析设计课题的要求,要求编程实现以下功能:
(1)退出系统
(2)进入淮师大导航系统 (3)新增用户信息 (0)修改密码
2.3主控菜单设计
为实现导航的操作功能,首先设计一个含有多个菜单项的主控菜单程序,然后 再为这些菜单项配上相应的功能。
程序运行后,给出菜单项的内容和输入提示,如下: 1.学校简介
2.淮师大校园平面简图
3. 显示场所的编号
4. 查看场所的具体信息
5. 计算路径长度及找出最短路径 6. 退出
2.4设计课题已明确要求,有关的定义如下:
void insert(); #define N 10 int n=1;
#define Max 32767 #define NUM 16
typedef struct ArcCell
{ int adj; // 相邻接的景点之间的路程 char *info;
}ArcCell; // 定义边的类型 typedef struct VertexType { int number; // 景点编号 char *sight; // 景点名称
char *description; // 景点描述 }VertexType; // 定义顶点的类型 typedef struct
{ VertexType vex[NUM]; // 图中的顶点,即为景点
ArcCell arcs[NUM][NUM]; // 图中的边,即为景点间的距离 int vexnum,arcnum; // 顶点数,边数 }MGraph; // 定义图的类型
MGraph G; // 把图定义为全局变量 int P[NUM][NUM]; //
long int D[NUM]; // 辅助变量存储最短路径长度 void CreateUDN(int v,int a); // 创建图的函数 void pingmu(); //屏幕输出函数
void introduce();//输入介绍内容,但不输出 void ShortestPath(int num); //最短路径函数
void output(int sight1,int sight2); //输出函数 void PrintMGraph();
char Menu(); // 主菜单
void search(); // 查询景点信息 char SearchMenu(); // 查询子菜单 void show();//显示校园平面图 void mainn();
2.4逻辑设计:
按所设想的功能,把程序化分为几个模块,各模块的名称和其数据类型如下: (1)Main主函数
调用各函数,实现课程设计的目标。其中包含三个功能,一个是直接进入导航系统,利用主函数中已有的数据,进行查询:一个是进行创建数据,本程序中
初始数据为农大的导航数据,如果需要也可以自己建立一个;最后一个是退出功能。
(2)Menu菜单函数
该函数用于显示初页面,列出两个功能的选择。一个是进入农大导航系统,一个是进行自己创建一个导航系统。 (3)dijkstra建立最小生成树
这是本程序的中心,在众多路径中选出最短路径。基于对dijkstra求最小生成树方法的应用。使整个程序显得极为简便。课本中的dijkstra函数只是输入一个结点,然后输出从该结点出发到各结点的最短路径,为了使它更适用于本课程设计,我将它改为“输入两个结点,输出这两点的最短路径”。 (4)search查询函数
设计该函数的目的是为了能够多次得应用dijkstra函数进行查询最短路径。同时该函数可以列出各景点的代号和对应的名称,这样大家只要输入代号就行了。方便进行查询。 相关模块介绍已在定义中
图1:校园平面图
2.5 程序调试的实验截图 用户登陆界面
用户登陆界面成功
导航系统界面
最短路径
景点查询信息
校园平面图
三、源程序及系统文件使用说明
#include<stdio.h> #include <stdlib.h> #include<conio.h> /*清屏*/ #include<string.h> void insert();
int n=1;
#define Max 32767 #define NUM 16
typedef struct ArcCell
{ int adj; // 相邻接的景点之间的路程 char *info;
}ArcCell; // 定义边的类型
typedef struct VertexType { int number; // 景点编号 char *sight; // 景点名称 char *description; // 景点描述 }VertexType; // 定义顶点的类型
typedef struct
{ VertexType vex[NUM]; // 图中的顶点,即为景点
ArcCell arcs[NUM][NUM]; // 图中的边,即为景点间的距离 int vexnum,arcnum; // 顶点数,边数 }MGraph; // 定义图的类型
MGraph G; // 把图定义为全局变量 int P[NUM][NUM]; //
long int D[NUM]; // 辅助变量存储最短路径长度 void CreateUDN(int v,int a); // 创建图的函数 void pingmu(); //屏幕输出函数
void introduce();//输入介绍内容,但不输出 void ShortestPath(int num); //最短路径函数 void output(int sight1,int sight2); //输出函数 void PrintMGraph(); char Menu(); // 主菜单
void search(); // 查询景点信息 char SearchMenu(); // 查询子菜单 void NextValue(int);
void display(); // 显示遍历结果 void show();//显示校园平面图 void mainn(); struct student {
char name[20]; char secret[20]; };
struct student stu[N];
{
printf("\n\n\t\t 计算机科学与技术学院数据结构课程设计"); printf("\n\n\n\t\t --------------------------------------"); printf("\n \t\t |\t 名称: 淮师大校园导航系统\t|");
printf("\n \t\t |\t 姓名: 田文祥 \t|"); printf("\n \t\t |\t 班级: 10计师 \t|"); printf("\n \t\t |\t 指导老师: 王宝华 \t|"); printf("\n \t\t |\t 作者: 淮师大校园 \t|"); printf("\n \t\t --------------------------------------"); }
void main()//主函数 {
char s2[10],s3[10],s4[10],s5[10],s6[10],s1[10],s7[10]="\ …… 此处隐藏:7513字,全部文档内容请下载后查看。喜欢就下载吧 ……
- 基于PLC控制的航空电镀生产线自动输送
- 中考预测课内外文言文对比阅读2
- 2018-2023年中国商业智能(BI)产业市场
- 中国金融体制改革研究2011new
- 外窗淋水试验方案
- 精益生产(Lean Production)
- 学校安全事故处置和信息报送制度
- Chapter 5 Human Resources Management
- 【小学数学】人教版小学六年级上册数学
- 初中数学解题方法与技巧
- 山东省创伤中心建设与管理指导原则(试
- 函数与数列的极限的强化练习题答案
- 10分钟淋巴按摩消脂
- 网络应急演练预案
- 服装设计入门基础知识
- 初二数学分式计算题练习
- (人教新课标)高二数学必修5第二章 数列
- 最新自主创业项目
- 北京大学 无机化学课件 4第4章 配合物
- 贸易公司业务管理制度




