




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中南大学本科生课程设计(实践)任务书、设计报告(C+语言课程设计)题 目车票管理系统设计报告学生学号1107100130学生姓名江从喜学 院交通运输工程学院专业班级工程试验班(交通)指导教师王新英计算机基础教学研究所2011年 9 月 8 日车票管理系统摘要:1、随着计算机技术的发展,可视编程技术占有了越来越重要的作用。Visual C+6.0 是一种功能强大行之有效的可视化编程工具。因此这个软件是在Visual C+6.0环境下编写的。2、本文从概要设计,详细设计,参考源程序代码以及显示程序运行的截屏等方面详尽的介绍了软件开发过程。3、对于我们大二的学生,随着学习的深入,已经大体掌握了Visual C+6.0环境下的程序开发。为了将我们的编程能力提升到一个更高的水平,深化面向对象的编程思维和解决问题的能力,在这个课程设计的两周里,进行基于Visual C+6.0环境的软件开发,先以用MFC编写一个简单的应用程序(最后制作了一个简单的计算器)作为开始,对Visual C+6.0环境和面向对象程序设计进行回忆和熟悉。关键字:Visual C+6.0 车票 管理系统 函数 数据1、 车票管理系统开发设计思想: 车票管理系统的功能为1. 录入班次,2. 显示所有班次,3. 查询班次,4. 增加班次,5. 售票,6. 退票,7. 修改班次,8. 删除班次,9. 退出。(1)需求分析: 首先本演示程序要实现录入班次信息的功能,并且要用文件来保存这些信息,还可以不定时的增加班次数据信息。 本程序还需要实现一次性输出当前班次信息,供使用者浏览。并且要从实际考虑若当前系统时间已经超过了某班次的发车时间,则要显示“班次已发出”的的提示信息。此程序既为车票管理系统,就要实现查询路线、售票、退票等功能,而且当使用者使用查询路线功能时,要分为两种情况查询:按班次号查询和按终点站查询。若要使用售票功能,则只有在查询出定票人数小于额定载量且当前系统时间小于发车时间时才能售票,并且要自动更新已售票人数。退票时要求输入退票的班次,当班次尚未出发时才能退票,同时也要求自动更新售票人数。(2)车票管理系统软件的功能模块有:提供菜单界面,方便用户对程序个功能进行选择,选择要实现的功能按enter键进入该功能。接受用户输入的功能项,按enter键结束输入并将进入该系统,其需要的结果显示出来,方便用户查看。完成每次功能,可保存用户的修改的信息,及时更新文件信息。下次查询时内容为最新信息。实时的信息更新对比等。(3)一个名TICKET的结构体进行定义,包括num10 hour3; min3 from10; to10; hours max; now;等结构体成员。(4)然后对调用函数进行定义。int system_time()系统时间,void NewMessage()新纪录录入函数,void ShowTable1() void ShowTable2(int i) 线框调用1和2不用没次输,void Display()显示所有函数,void add()增加记录,void save()保存函数,void save()保存函数,void load() 按班次查询函数,void search() 查询函数,void change()修改函数,void quit()退出函数,void Ticketorder() 售票函数,void Ticketdelete()删除函数,int menu_select()菜单函数, int whether(int)判断时间是否超出函数,void find(char s1,char s2) 查询函数/s1为班次/s2为终点站,void deletemessage()删除函数,int findnum(char s1)班次查询函数,void get(int,int)修改及增加班次,char *menu菜单函数。该系统将这些信息均放在文件d:车票管理系统0中。 (5)最后定义main()函数,利用函数调用,实现程序的各种功能。将其放在系统文件d: 车票管理系统0中。程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性把每种功能分开实现,更简单,实用程序更易理解。2、 车票管理系统功能及系统设计介绍:(1)车票管理系统的功能:录入班次信息(信息用文件保存),可不定时地增加班次数据;浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)查询路线(起点、终点):可按班次号查询 ,可按终点站查询增加及修改班次和删除班次信息售票和退票功能,当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。(2)系统功能分析:首先为了实现录入功能必须要有一个对类私有变量进行访问的成员函数,于是定义了TICKET_Control:input(void)这个录入函数,同理需要定义输出车票信息函数、售票函数、退票函数和判断时间函数。为了将已经操作的信息录入文件和从文件中读出车票信息,需要定义录入文件的函数和读取文件函数,同时还定义了返回终点站及班次的函数为下面搜索功能的实现提供方便。以上函数都是直接对一个班次的车票信息进行操作的,为了将很多的车票信息链接起来方便查找及不定时增加班次数据,定义类另一个链表类Link这个类中定义一个私有的头指针和其他对TICKET_Control中数据进行间接操作的函数(调用TICKET_Control相应的函数),如:录入函数、浏览函数、查找函数、查找判断函数、售票函数、退票函数、保存数据函数、清除函数、初始化函数及菜单函数。然后,在主函数中首先定义一个Link类的类对象,接着调用初始化函数(begin())读入文件内容并形成链表。下面就可以通过菜单函数及用户输入来实现其他功能。为了实现不定时录入功能需要首先调用Link类的input函数这个函数首先找到链表尾部在调用TICKET_Control中的input函数来实现录入并存入链表中;同理实现其他功能。浏览班次函数会调用时间判断的函数来判断班次是否发出并打印。查询函数就是在链表中查找想要的内容;售票及退票函数会调用查找函数和时间判断函数来判断是否允许售票和退票。最后设计一个循环来实现返回主菜单功能及退出时确定保存数据到文件中。(3)车票管理系统系统框架:车票管理系统 调用主菜单选项 输入选择后分别 调用退出调用删除班次调用修改班次调用退票调用售票调用录入班次调用显示所有班次调用查询班次调用增加班次返回主菜单结束 (4)车票管理系统所需要的函数介绍:主页面、工作环境及信息的输入输出由insert函数实现;车票信息的修改功能由Modify函数实现;车票信息的查询功能由search函数实现;车票信息的显示功能由print函数实现;车票信息的删除功能由Delete函数实现。(5)程序各个模块的功能及调用关系:主程序模块main()函数:此主程序的主要目的是用来调用读取文件函数、功能菜单函数以及保存文件信息函数。文件读入与保存保存函数read()、save()以及功能菜单MainMenu()函数:这三个函数的主要目的是为了读取文件、保存文件和为用户创造一个功能菜单以便于用户的操作。在MainMenu()函数中调用的各级功能函数:这个模块中有六个函数,MainMenu()函数调用这六个函数来分别实现增加班次、浏览班次信息、查找班次、售票、退票、退出的功能。3、 遇到的问题与解决的办法:(1) 该程序的关键是用一个结构体来存储每个班次的各种信息,然后建立一个单链表存储所有的班次。要注意的是正确的定义头结点指针,还有保证每次循环都能正确的进行下去。只有保证这些细节都正确,程序才能正常的运行。(2) 在设计程序的时候要设计多个模块,比如程序中的查询、售票、退票、功能菜单等,最后用一个主函数来调用其他的函数,我在调试时发现每次卖票后都不能正常的返回,经检查后才发现是因为掉了一句p=p-next,所以在以后写程序时都要认真仔细,这样才不至于在调试程序的时候出现问题,浪费很多时间。(3) 在写这个程序的时候,调试过程中发现了很多错误,这样很不容易修改,所以最好循序渐进,认真写好每一个程序,检查后再写下一个,这样更能保证整个程序的正确性,也便于随时调整。(4) 在调试的过程中同样出现文件写入和读出的问题,所以文件的格式必须熟练掌握,这样才能正确的实现功能,达到目的。(5) 链表指针的移动问题。在设计中链表指针的向下移动是一个很头疼的问题,在自己不断调试和修改下终于纠正了所有指针移动的错误。(6)最大问题就是对链表的创建和查找定位操作,由于对链表的操作不熟导致消耗大量时间,最终在老师和参考资料的帮助下解决了该问题,把链表的创建和查找定位操作单独写成2个函数这样就不会影响下面其他函数操作了。4、总结:通过本次的课程设计,让我又重新拿起了C+程序设计和C+程序实践教程,好好的复习了一下以前学过的知识。对循环结构、指针、结构体,函数调用,switch语句, for循环语句等有了更为系统的了解,也学会了制作流程图,明白了一个设计精良的程序要的不仅是它的正确输出结果,还要有简明可靠地思路,良好的稳定性等。通过这次课
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论