




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
怀 化 学 院 计 算 机 系数据结构课程设计报告书全国交通咨询模拟系统的设计与实现 学生姓名:* 学 号:* 年级专业及班级:* 指导老师及职称:* 讲师 专 业:计算机科学与技术专业 湖南怀化 提交日期:2011年6月 全国交通咨询模拟系统的设计与实现学 生:*指导老师:*(怀化学院计算机系,怀化 418008) 摘 要:该课程设计主要实现了对全国火车及飞机信息的修改和查询,其中主要包括:管理员对火车、飞机信息的操作,其中又包含对两种交通方式的增加和删除操作。旅客用户对两种交通信息的查询,其中飞机信息和火车信息都包含了对两个站点间最短路径方式的查询、最少花费方式的查询以及城市中所有的交通信息的查询。 关键词:全国交通咨询;1 前言 为了完成数据结构的课程设计,为了巩固自己数据结构的知识,也是为了提高自己的编程能力和逻辑思维能力,我选了这道全国交通咨询模拟系统的设计与实现一题。在对其需求进行分析之后,按照需求分析,逐步完成其各部分的功能实现。对于总的方面来讲,管理员功能实现并不难,而难点在于用户功能中的算法及数据结构中的知识以及编程的细微方面,下面将详细介绍本课程设计的内容。2 需求分析 2.1 范围1.1 标识文件状态:【】草稿【 】正式发布【 】正在修改文件标识:需求分析报告当前版本:V1.0作 者:*完成日期:2011-6-1221.2 系统概述1软件名称:全国交通咨询系统V1.02软件功能:主要的功能有:管理员增删和修改城市站点信息、飞机路线信息、火车路线信息。3用户:查询最小耗费路线、查询最短时间路线、查询城市所有路线。4开发者:*21.3 文档概述需求分析采用在面向对象的方法,主要使用结构体struct的方法来进行实际的编程,在文档中主要采E-R图和对功能的简单描述的方法来表述系统的需求。本需求分析的审查者是老师,所以主要是写给老师看的,用来说明我对这个系统的分析情况。22 引用文件 无23 需求概述23.1 系统目标本系统的总体目标是通过使用该系统,管理员可以对飞机或者火车的信息的简单管理,也方便外出旅客在不同的需求下(如:最少的花费和最短的路程),快速浏览到所要的信息。本系统设计的特点主要有以下几个方面:1. 具有较高的可靠性和可用性;2. 系统易于管理维护;3 简单、便捷;23.2 运行环境1. 系统硬件需求Pentium4 800MHz或更高主频CPU 256MB以上内存。2. 系统软件需求Visual C+ 6.0或者visual studio 6.0等编程软件。23.3 用户的特点机场工作人员或火车站工作人员以及其他具备基本的电脑操作技能和一定的管理权限的用户;旅客需具备基础的计算机操作技能。24功能需求通过对本设计的信息综合分析,得到交通信息的主要组成部分之后,我觉得本系统功能主要分为以下两个部分:1管理员操作:可以对站点的增设和删除,对火车车次的添加与删除以及对飞机航班的添加及删除操作。2. 旅客用户操作:对最小耗费路线的查看、最短时间路线的查看和城市所有的路线信息的查看。24.1 操作流程图增删城市信息 管理员增删飞机信息增删交通路线信息增删火车信息增删交通路线信息退出系统增删交通路线信息旅客用户增删交通路线信息24.2 系统各项功能描述1) 用例1用例名:管理员操作行为者:信息管理员目的:完成对站点信息、飞机航班信息、火车列次信息的增加和删减管理过程描述:a) 选择管理员入口。b) 输出正确的密码登入系统。c) 可以添加城市。d) 可以删除城市。e) 添加交通路线。f) 删除交通路线。g) 退出系统异常处理:无。2) 用例2用例名:旅客及其它人操作行为者:非管理员目的:查看交通信息过程描述:a) 选择旅客入口。b) 可以查询最小耗费路线。c) 可以查询最短时间路线。d) 可以查询城市所有路线。e)退出系统异常处理:无25数据下面仅列出主要实体。通过对学生管理系统的需求分析,我画出五个实体的E-R图:(1)城市信息实体城市信息实体包括城市名,如下图所示: 城市名城市信息(2)火车信息实体火车信息实体包括火车车次、起始站点、终止站点、耗费时间、费用,如下图所示:起始站点终止站点费用火车车次火车信息耗费时间(3)飞机信息实体飞机信息实体包括飞机航班、起始站点、终止站点、耗费时间、费用,如下图所示:终止站点起始站点飞机信息飞机航班费用耗费时间26 采用的技术采用的技术主要包括对文件存取、数据结构和迪杰斯特拉算法等技术。3 详细设计根据题目要求及本次课程设计的目的,按着原来的需求分析的要求,我采用结构体来存储每组数据,其中对每组数据进行相应的操作使用后将他们建立领结矩阵,然后采用迪杰斯特拉算法,在读取文件和保存文件的功能中使用了文件流的相关操作。现把相应的设计思路及各个函数解析如下。3.1 数据结构设计分析3.1.1 存储班级信息的结构体 班级资料有id号、编号、名称。具体结构如下:struct banji/班 级 信 息 int bjid; /班级唯一ID号 string bj_number;/班 级 编 号 string bj_name; /班级名称;3.1.2 存储课程信息的结构体struct kecheng /课 程 信 息 int bjid; string kc_banjibianhao; /班级编号 string kc_bjkc10;/假设最多课程为10;3.1.3 存储学生资料的结构体struct xueshengxx/学 生 资 料int bjid;string xsxx_xuehao; /学号string xsxx_banjibianhao; /班级编号string xsxx_name; /性名string xsxx_gender;/性别int age;3.1.4 存储学生成绩的结构体struct xueshengcj /学 生 成 绩 int bjid;string xscj_xuehao; /学号 double xscj_score10; /假设最多有10门课double xscj_score_sum; /总成绩;3.1.5 存储用户密码的结构体struct password2 /用户密码string pas_num; /帐号string pas_admin; /密码int pas_type; /权限类型;3.2 各个函数分析3.2.1 主函数和功能界面菜单函数 函数原型:int main()main()函数主要是整个系统的控制端,主要功能是控制整个程序的运行。从主函数开始调用各相关函数来达到相应的功能。由于有多个不同的选项,所以用一个switch()语句控制每个函数调用,控制起来方便、明了。关键代码如下:switch(op1)case 1:login_admin();/管理员操作break;case 2:login_other(); /其它用户操作break;default:cout请正确选择!n;system(pause);break;其中的第二层才是具体的,实现调用函数实现各项功能。关键代码如下:login_admin() 内的:switch(op2)case 1:ope_admin_1();break;case 2:ope_admin_2();system(cls);break;case 3:ope_admin_3();system(cls);break;case 4:xiugaimima();system(cls);break;case 5:system(cls);break;default:cout请选择正确选项!n;system(pause);break;login_other() 内的:switch(op2)case 1:ope_other_1();break;case 2:ope_other_2();system(cls);break;case 3:ope_other_3();system(cls);break;case 4:xiugaimima();system(cls);break;case 5:system(cls);break;default:cout请选择正确选项!n;system(pause);break;3.2.2 读文件函数本系统要读入5个文件,所以有5个函数用来读入5个文件 函数原型:void read_xsxx(xueshengxx *data) /读取学生信息void read_xscj(xueshengcj * data,string myfile) /读取学生成绩,/参数可以指定读取哪一年的成绩 void read_banji(banji *data) /读取班级信息void read_pas(password2 *data) /读取密码信息void read_kc(kecheng *data) /读取课程信息3.2.3 系统主界面函数函数原型:void login()在主函数调用此函数,展示整个系统可供用户选择的选项,使和理员的其它用户一看就明白自己要选择进入哪个界面。3.2.4 显示函数显示函数要三个,按不用的排序方式进行排序和显示,如下:函数原型:void out_xscj(xueshengcj *data)/全校学生按学号排序显示void out_xscj2(xueshengcj *data)/ 全校学生按总分排序显示void out_xscj3(xueshengcj *data)/各班内按总分排序显示3.2.5 删除函数函数原型:void delcj_xuehao() /删除成绩void delkc() /删除课程void delxx_xuehao_name() /删除资料,包括删除与其相关的密码等内容通过调用上面这些函数,可以删除某个学生的成绩、某班的课程、某学生的资料等信息。3.2.6 查询函数函数原型:void searchxx_xuehao_name() /按姓名或学号查询学生资料void searchcj_xuehao_name()/按姓名或学号查询学生成绩调用上面的函数可以让学生自己查看自己的成绩、资料等信息,也可以让管理员查看某个学生的成绩、资料等信息。3.2.7 添加函数函数原型:void add_bj(string a,int b) /添加班级功能void addxx() /添加学生功能 void addkc() /添加课程功能其中,在添加学生资料信息完成之后,还进行了一系列的操作,比如说:将学生的成绩初始化为0,默认加入学生的学号与密码存于密码文件 让学生可以即时登陆查看信息。 而添加课程功能中也要将新添加的课程,在每个同学的成绩文件里面都初始化为0。所以说,这种模拟的系统设计与真实的系统设计最大的区别就是麻烦,多了很多不必要的操作。3.2.8 更改函数函数原型:void modifycj_xuehao() /按学号修改某学生成绩信息void modifykc() /修改某班的课程信息void modifyxx_xuehao_name() /按学号或姓名修改某学生的资料信息上面函数主要实现对学生资料的修改,学班级课程的修改和对学生成绩的修改,这里也就是对题的一些要求进行了功能的实现,适当地优化了一下修改时的提醒信息。3.3 算法及平台分析 本系统用到的算法主要有数据结构中的排序、和文件流的操作等基本算法,没有用到其它比较复杂的算法,操作起来简单,并且容易控制;还用到输入输出流的一些操作来使显示的信息对称,不凌乱;再就是一些文件操作,更改存储文件中的内容,保存操作后的所有信息。本系统是在Microsoft Visual C+ 6.0上设计及运行的,所有的信息显示均是在dos界面中显示出来,利用system(color 2B)操作使主界面以绿色为背景,前景色为淡浅绿色。并且在每一步操作后,都利用system(cls)对dos界面进行清屏,使显示器显示的信息清晰、整齐。4 实现方法 通过对设计题目的深入分析,及题目的要求,在设计时,主要实现的大功能模块,大致满足一个学生信息和管理系统的需要,主要的流程及实现方法请看下面的报告。4.1 学生信息管理系统框架及流程如下图 主界面学生用户界面管理员界面修改自己密码查看自己课程查看自己成绩查看自己资料管理密码修改班级课程管理学生成绩管理学生资料管理添加信息修改信息删除信息查看信息保存结束退出5 调试问题在编写系统代码的过程中,碰到不少问题。在着手写代码时,我首先把主界面设计好,并按照主界面上显示的各种功能设计各个函数,这样不至于太盲目了。可是当我测试主界面时,出现了一些问题,出现读入文件的函数没有声明没有把数据读入错误,然后调试了好久,一开始就是文件里的信息个数与读取时的读入个数不同,改了之后还是不对,数据类型的错误,就使得后面的数据读不进去,或者是出现混乱的现象,然后改了之全就可以运行了。在写到密码修改的时候,由于用了格式符setw(5),本来密码是6位,我不小心把它设置成这个,就使得存进去的密码与用户名边成了一个字符串了,读出来的时候就错,这个问题弄了我好久,本来觉得一下子就能写完的,就这个耽误了大量的时间。还有个问题就是显示方面的。在写那些函数时,总会清屏上一次的屏幕,把函数写完之后,也会做同样的工作,所以在运行到system(“cls”)时,就会清除屏幕信息而显示其它内容。所以要想清晰看到每次操作的信息,就要延迟system(“cls”)的执行。在没有做处理之前,总会出现一闪而过的现象,一瞬即逝,根本看不清所要显示的信息。在system(“cls”)前加上system(“pause”)函数,它会使数据显示后暂停一下,用记按键后再继续。这使得用户可以看清自己想要的信息,做好下一步操作的准备工作。当然,在编写代码调试程序的时候,还碰到很多大大小小的问题,但在自己一遍又一遍的调试中改正了,从而使系统的功能更加完善,使系统的功能更从人性化,容错能力更加强大。但是系统还有可能有这样或那样的问题,只是自己没有发现,在测试过程中,没有用到一些特别的样例,可能会使系统崩溃,我想这也是可能的,希望老师加以指正和指导。6 系统的使用说明书 对于整个系统的使用及每一次你所作出选择和操作之后会出现什么样的界面及操作结果,在下面的说明中作出详细的说明及展示,具体如下所示。5.1 主界面说明当运行系统时,首先进入的是主界面,显示了用户类型的选项,选择正确的类型进入,在最后一行有提示让您输入你所要选择的功能项。如下所示:5.2 管理员操作界面说明键入1后,输入正确的管理员账号和密码,进入下面界面中:又有4个显示功能可供选择,键入1可以对学生资料进行管理,其下面又有子菜单,如图所示:选择相应的选项就能进行相应的操作。键入2可以对学生成绩进行管理,其下面又有子菜单,如图所示:键入3可以对课程信息进行管理,其下面又有子菜单,如图所示:选择相应的选项就能进行相应的操作,具体的根据提示操作就行。5.3 其它用户界面说明进入后就是右边的界面 :共有4个选项可供用户进行操作,选择任何一项都会有相应的显示,这里用户不能更改信息,所以功能也比管理员少
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年病历管理制度与病历书写规范考试题及答案
- 2025年电力安全知识竞赛试题库及答案
- 2025年内蒙古自治区事业单位招聘考试计算机类综合能力测试真题模拟解析
- 2025年黑龙江事业单位招聘考试综合类专业能力测试试卷(管理类)真题模拟
- 2025年甘肃酒泉肃州区教育事业发展服务中心选拔工作人员模拟试卷参考答案详解
- 事业单位招聘考试综合类公共基础知识真题模拟试卷(2025实战冲刺高效模拟训练)
- 情感计算模型-第2篇-洞察与解读
- 汽车零部件质量检测协议
- 恒丰入学考试试题及答案
- 河南省数学考试题及答案
- 女生的青春期教育课件
- 2023新能源集控中心及智慧电厂建设方案
- 人工智能(基础版)高职人工智能基础课程PPT完整全套教学课件
- 10胃十二指肠溃疡临床路径表单
- 高标准农田施工组织设计(全)
- 5-4、MSSP - SOTAR - 泰康人寿 5-4、MSSP - SOTAR - 泰康人寿
- 小餐饮备案承诺书(样式)
- 学法减分100道题题库及答案(驾驶证学法减分学法免分题库及答案)
- 《安娜·卡列尼娜》-课件-
- 2022年新版体系文件药品零售单体连锁总部质量管理体系文件
- 校服登记表模板
评论
0/150
提交评论