C语言课程设计报告公交路线管理系统

上传人:工**** 文档编号:486445622 上传时间:2022-11-27 格式:DOCX 页数:21 大小:449.32KB
返回 下载 相关 举报
C语言课程设计报告公交路线管理系统_第1页
第1页 / 共21页
C语言课程设计报告公交路线管理系统_第2页
第2页 / 共21页
C语言课程设计报告公交路线管理系统_第3页
第3页 / 共21页
C语言课程设计报告公交路线管理系统_第4页
第4页 / 共21页
C语言课程设计报告公交路线管理系统_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《C语言课程设计报告公交路线管理系统》由会员分享,可在线阅读,更多相关《C语言课程设计报告公交路线管理系统(21页珍藏版)》请在金锄头文库上搜索。

1、合肥学院计算机科学与技术系课程设计报告20102011学年第二学期课程C语言课程设计课程设计名称 公交路线管理系统学生姓名杨莉莉学号18专业班级 计本(4)班指导教师 徐静项向琴2011年6月24日一、需求分析本系统主要功能是实现对公交路线的管理和维护。我们都知道,每个城市都会有公交路线的改动,如果使用这个系统,就可以及时的对路线信息进行修改和保存,是非常方便的,而且该系统使用起来也很方便。用户只需根据显示的提示信息进行选择和输入就可以实现你要求的功能。该系统具有添加,查询,删除,修改和显示所有记录的功能。用户可以根据实际情况进行相应的功能选择。其具体功能简单描述如下:( 1)保存:即将信息存

2、入指定文件中。当用户对原始数据进行相关的改动(主要是对路线信息进行增加、删除、修改)之后,用户可以根据自己的选择判断是否要保存到文件中,这样就实现了信息的记录功能,以方便用户随时进行查看。( 2)添加:即添加一条新的公交路线或者是某一条路线上的站点。每次可以添加一条路线信息,若用户想添加多条路线信息的话可以重复执行该功能,同样的,添加站点的话也是每一次添加一个站点,若用户想添加多条路线信息的话也只需要重复执行该功能即可。这样,就实现了对公交路线的添加信息管理。( 3)查询:即能够查找出你要的公交路线信息和总共有多少站。简单地说,就是用户先选择你要查询的公交路线号,在输入起点站和终点站名称,然后

3、系统就会自动显示出起点站和终点站之间共有多少站点,以及起点站和终点站之间所有站点的序号和名称,从而使用户一目了然的知道站点信息,而不需要像看地图那样一个站点一个站点的用肉眼进行查找,这就为用户节省了很多时间。( 4)删除:即能删除掉一条你所不需要的公交路线信息和某一条路线上的站点。若要删除路线时只需要输入你要删除的公交路线号即可,若要删除站点也只需输入你要删除的站点序号,不需要输入该站点名称。( 5) 修改: 即能修改一条你需要该的路线信息。 修改内容包括: 修改该条公交路线号、修改站点名称(输入新的信息时该条路线的站点长度不能改变,若要改变站点长促可以选择增加和删除功能,即可实现) 。( 6

4、) 显示路线信息 :即将路线信息显示到屏幕中,供用户查看。该功能比较简单,在这里不具体说明。二、 算法设计1、设计思想:本系统的设计流程简单比较简单,原始数据全部都保存在文件中,用户就不必自己一个一个的输入信息。程序执行时从文件中读出,文件的读取操作在下文中我会详细说明,这里就不做具体说明了。创建动态链表和结构体数组对路线信息进行存储,因为使用链表时对程序的插入、删除会比较方便,那么插入和删除就相当于对链表节点的删除和插入。写无返回值的主函数void main()对系统的功能进行显示,每次用户选择某一功能时都可以看到路线的大致信息,以便于用户更准确的选择功能。其中利用 switch 条件分支语

5、句进行子函数功能的选择和调用。并且使用 while 循环语句进行多次循环执行,就可以实现对信息的多次删除、增加、修改,知道达到用户满意时由用户自己选择退出系统。通同时使用了清屏函数,对上一次程序运行的结果清楚只显示本次运行的相关信息,这样的话就做到了界面的友好化,简单明了,不冗杂,更方便观看。当用户对信息进行有关的改动之后,用户根据自己的选择是否保存入文件中,就可以保存他所要的信息了。其主要流程图如下:2、设计表示:下面我将对各个子模块的功能进行详细的介绍和描述:模块一:头文件,定义结构体,结构体中还嵌套了一个结构体,定义结构体成员,同 时定义指向该类型的指针head,其对整个程序都有效。模块

6、二:菜单显示。显示该系统所能完成的功能,一目了然。根据用户的需求自由选择功能实现。模块三:从文件中读取信息。该功能以子函数的形式给出,因为其返回值是 head,而head是指向结构体的指针,所以该函数属于指针函数。执行此程序时首先定义文件指针 FILE *fp, 在打开此文件时,文本文档里应该有用户需要的数据,从而才能从文件中正确读取出来,若文件打开不成功则会显示“不能打开此文件!” 。创建动态链表来存储从文件中读出来的数据,每读取一组数据后文件指针后移,这是系统约定俗成的,不需要用户去考虑的,知道文件结束时停止读取。 读取结束后必须要关闭文件, 即 fclose(fp), 这样就完成了从文件

7、中读取信息的功能。模块四:显示路线信息。该功能以子函数的形式给出,无返回值。定义指向定义过的结构体类型的指针p,并让p指向head,当p为非空时输出结构体成员信息,在这里需要说明的是,在输出站点信息时,当最后一个站点名是end 时,停止输出,因此end 是作为站点信息输出的结束标志,同时 p 指针指向链表的下一个节点,再次读取一组数据。模块五:增加线路信息。该函数的返回的是链表的头指针head, 因此是一个指针函数。 该函数不仅可以增加一条路线信息,也可以增加某一条路线上的站点信息。用户根据自己的需要进行选择。本系统添加一条公交路线时,是在链表的尾部添加的,因为我考虑到公交线路号一般没什么顺序

8、可言,所以就简单的添加在了链表的末节点。定义 BL *p=head,*q。重新建立一个新的节点来存储你添加的那条线路信息,判断p 是否为空,若不为空的话, q 指向 p,p 指针位置后移一个节点,直到 p 为空。然后 q-next 指向新建立的节点,新节点的下一结点赋值为空, 从而完成了增加路线信息的功能。 如果是添加路线站点, 先确定要在哪条路线上添加,所以要先找到该条路线,并用指针指向该节点,然后找该站点将要插入的位置,找到后,将其后面的站点依次后移,把那个空的位置空间腾出来,用来置放添加的节点的信息,这样就实现了对站点的添加。模块六:删除线路信息。该函数返回的是头指针head, 所以该函

9、数是一个指针函数, 也是作为子函数的形式出现。可以删除整条路线,也可以删除线路上的某一个站点,删除一整条路线时,就相当于删除链表中的某一个节点,先确定你要删除的线路号,找到后,只需要将其前一个节点指向其后一个节点,所以删除时还需要考虑到删除的是首节点还是末节点还是中间节点,若删除首节点只需将head 指向 head 的下一个节点,若删除末节点,将倒数第二个节点之后赋值为空即可,因此对线路的删除还是相对比较简单的,但是要求我们对链表的相关操作熟练掌握。删除站点时,先确定你要删除的是哪条路线上的站点,找到后一个指针会指向该节点,再确定你要删除的站序号,确定后将其后一个站名称移到当前删除节点的位置,

10、就可以将该站名覆盖,从而实现站点的删除。模块七:修改线路信息。同上分析,该子函数也是一个指针函数,修改时,先确定你要修改哪条路线,指针指向该节点,在重新输入新的信息即可,新输入的信息会覆盖原有节点信息,所以可以实现对线路进行修改,但是修改时需要注意的是,修改时新输入的站点数目不能改变。模块八:查询路线信息。该子函数是一个无返回值的函数。使用时先输入你要找的路线号,再输入你要经历的起点站和终点站,程序就会为你显示出起点站和终点站之间共有多少站,并且输出起点站和终点站之间所有站序号和站点名称。模块九:将信息保存到文件中。当用户对原始路线信息进行改动之后,或许要将修改过后的信息保存起来,此时用户就可

11、以自己选择是否要将信息保存起来,保存的位置是本系统实现设定好的,保存之后的信息在D 盘根目录下,也方便用户的查看。模块十:主函数。构建无返回值的主函数,主函数用来实现对子模块的调用功能,用 while 循环语句来控制循环次数,用户可以根据自己的需求选择任何时候退出系统。对子模块的调用主要使用 switch 开关控制语句,根据选择实现用户要求的功能。3、实现注释:本系统对于菜单显示表上的功能基本上都能实现,但是不是很完善,很多地方我还没有考虑到,或许是考虑的不够周全,但是有些不足的地方,是我的能力所不能达到的,还望老师体谅,不过等以后学过新的知识用新的方法或许就能将系统做进一步的改进。4、算法设

12、计中一些新的想法:我觉得本系统很不完善,很多功能虽然能实现,但是实现的不够完美,很多细节我都没有考虑到,比如查询路线时,不能大致故略出起点站和终点站需要的时间;修改路线信息时,重新输入该条路线的信息时,路线上站点的个数不能改变,要改变的话还得选择增加或删除功能;还有就是用户将改动过后的信息保存到文件中 后,以后该文件中的数据用户如果要使用的话,不能从文件中读取显示到屏幕上。这些都 是我的系统一些不完善的地方,希望以后有能力的时候,能进一步对系统进行修改和完善。三、用户手册用户在适用本系统时,我在这里有几点说明要解释一下。以便用户更好的使用本系统。(1)路线号整形数据,站序号是整形数据,站名时字

13、符串。(2)输入路线信息时,站的序号是有次序的,从 1开始依次往后增加。如果你要结 束站点的输入,只需要在最后一个站点后在输入下一个站的序号,但是本站的 站名一定要是end,用来表示站点录入结束的结束标志。(3)保存信息的文本文档,一点要放入 D盘根目录下,因为我在写本程序时就规定 了将文本文档置于D盘根目录下,所以以后用户查看数据信息时可以从 D盘根 目录下查找。四、调试及测试本程序的运行结果如下所示:加人会点中号.谐迹障:.J李学崎占松,肥西喜信会H1桃讣源 白9站喻人起为台站天口耨隔脚市场一赢超普氏至皆- r阚J 1r&-工瓦丁时代广氏 r吊栩室h t大乐n- r小东门-?西牌棱-a-凤

14、ll. 中工已香校 (暮医影院 1(十国科?+3 斯墨花Iil I3、市场6H而,他蔻期蒜若畲霁二濯是羸厚案譬程至不群盘病窗我杳樵断二门金锦路口二工用曲笃辿1 -幺吧心中学一青年跖口 应 鹰康&中拳-一抵海商务学落一1事长isHMSfn-一3口斗息用ET号=口一 U-H石-_ 二Jdll叮1L一 存保Li (r1.TV 工苣一 njfsx/: 醺一彘病鬻息统不:,- 壁一 宜 ”示LF也百客蓬小1-胃出1由中学工8古年福口一21斫中方工f沛网大杆一-才七场一-V面理花 西-融光中华- 若就茴书学总 1日长安芾工惭俺奇国 1 1吉加港路口一TN桃岗群口 13接紧罡序亡I 3 WE西, -司 T理

15、西中学 F首风路口=衰逝差值=T银河为限Z-Y入市场 一K斫城花 I元-“空生中学-急海商务孝F条一工日任安萨苏斯堂花园- -11桃花蟀- 7M亳舞路口 -一 以车站一金融QJL笛m元一应代广场4;魁;悒J5大东门 G小东07四牌橙nL风尚叶济仔 支百附附 口中囚升;十八了Bl人公交车号=0 12 3 4-6退黄量专三二二一二亮=守一一国=豆=土 =L=?=下一一 靖k七星亘_ls石 十.迎望弱融乜二二工L L L L 一 方:|冲瞿毓嗨翎峭力再公司机前 普f通的岸售声茗程却空蹒蓄州凋斛建嘉院五、课程小结通过这次实训,增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从C语言这门课程开始,已发现程序设计的乐趣,在学习 C语言的过程中也学到 了许

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号