您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 总结/报告 > 火车票管理系统——C语言程序设计实训报告
题目:学生成绩管理系统院系:信息科技学院专业:计算机科学与技术姓名:何荣荣学号:1751200204指导教师:王小琼日期:2018年6月28日桂林电子科技大学信息科技学院实训报告桂林电子科技大学信息科技学院2/27前言课程设计环节是应用型本科院校非常重要的一个教学环节,是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练。通过课程设计,不仅能够使学生得到系统的技能训练,巩固和加强所学得专业理论知识,而且能够培养学生工程意识、创新能力、团队精神等综合素质,培养学生的设计能力和解决实际问题的能力。C语言由于其强大的功能,丰富的表达能力,高效的代码,良好的移植性和灵活性,自1972年问世以来,经久不衰,即使现在出现了面向对象的程序设计方法和开发工具,但它仍然是人们学习程序设计的首选语言,用它训练和提高编程技术,以及开发应用程序等。我们通过《C语言程序设计》这门课程的学习,已经能编写解决小问题的程序,对程序的开发也有了初步的认识,还掌握了C语言的基本语法,这一过程确确实实令我们感到欣喜,有点计算机可以完成自我任务的成就感。但是,对于程序设计而言,学习C的步伐不应该停留于此。我们最终的目的应该是掌握开发大型综合程序的方法,即遵循软件工程的开发步骤和结构化程序设计思想,用C语言开发出解决复杂问题的大型综合程序。可是对于多数学生来说,学习了C语言后,除了应付各种考试之外,别无它用,对TurboC语言丰富的函数知之甚少,加上DOS环境所限,因而对C语言兴趣不大,也感到C语言比较难以掌握。本实训就是为了让学生在学完C语言后进一步了解C语言的知识,掌握C语言在软件开发方面的使用方法,希望通过此次实训,不仅能提高学生学习C语言的兴趣,更为今后学习其它专业知识及开发程序打下坚实的基础。本指导书中有些内容借鉴了互联网上相关程序的设计思想,在此对相关者表示衷心的感谢。由于时间、经验及水平的原因,不当、不足之处,请大家提出宝贵意见。编者桂林电子科技大学信息科技学院3/27目录1、问题定义..................................................................42、系统设计..................................................................42.1总体设计..........................................................42.2详细设计..........................................................73、程序测试..................................................................84、详细程序................................................................145、归纳总结................................................................265.1开发经验........................................................265.2实训中遇到的问题及解决方法....................265.3感想和心得体会............................................276、参考资料................................................................27桂林电子科技大学信息科技学院4/27火车票管理系统本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。本程序中涉及字符数组的使用、字符指针的使用、数据库的设计和文件使用等方面的知识。通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用单链表存储结构实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。1、问题定义该系统要求实现一个简单、实用的火车票管理程序,主要功能包括火车票数据的录入、查找、删除、显示、售票、退票等。所有火车票数据都要利用文件系统保存,以备系统下次运行时使用。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。本火车票管理系统应该具备如下功能:1)录入班次:车次信息包括:班次、发车时间、起点站、终点站、行车时间、额定载量、已售票)2)显示所有班次3)查询班次4)增加班次5)售票6)退票7)修改班次8)(退票)删除班次9)退出2、系统设计2.1总体设计采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上桂林电子科技大学信息科技学院5/27面一层是主模块,下面各层是其上一层模块的逐步细化描述。车票管理系统软件的功能模块有:(1)提供菜单界面,方便用户对程序个功能进行选择,选择要实现的功能按enter键进入该功能。(2)接受用户输入的功能项,按enter键结束输入并将进入该系统,其需要的结果显示出来,方便用户查看。1调用录入班次6调用退票5调用售票4调用增加班次2调用显示所有班3调用查询班次9调用退出8调用删除班次7调用修改班次火车票信息管理系统调用主菜单选项完成功能后返回主菜单桂林电子科技大学信息科技学院6/27(3)完成每次功能,可保存用户的修改的信息,及时更新文件信息。下次查询时内容为最新信息。实时的信息更新对比等。一个名TICKET的结构体进行定义,包括num[10]hour[3];min[3]from[10];to[10];hoursmax;now;等结构体成员。然后对调用函数进行定义。intsystem_time()系统时间voidNewMessage()新纪录录入函数voidShowTable1()voidShowTable2(inti)线框调用1和2不用每次输voidDisplay()显示所有函数voidadd()增加记录voidsave()保存函数voidsave()保存函数voidload()按班次查询函数voidsearch()查询函数voidchange()修改函数voidquit()退出函数voidTicketorder()售票函数voidTicketdelete()删除函数intmenu_select()菜单函数intwhether(int)判断时间是否超出函数voidfind(chars1[],chars2[])查询函数//s1为班次//s2为终点站voiddeletemessage()删除函数intfindnum(chars1[])班次查询函数voidget(int,int)修改及增加班次char*menu[]菜单函数。该系统将这些信息均放在文件d:”车票管理系统0”中。最后定义main()函数,利用函数调用,实现程序的各种功能。桂林电子科技大学信息科技学院7/27将其放在系统文件d:”车票管理系统0”中。程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。程序把每种功能分开实现,更简单,实用程序更易理解。2.2详细设计主控main()函数执行流程判断键值,调用相应函数,完成相应功能开始登录,确定访问权限输入[0~9]中的一个数值,选择相应操作,并选择判断输入值结束否是登录框主界面选择窗口图2.2主控函数执行流程图桂林电子科技大学信息科技学院8/273、程序测试3.0菜单界面图3-0菜单界面如上图所示,该程序为用户提供菜单界面,用户可以对程序的各种功能进行选择,方便用户使用。选择1-9并按enter键进行操作。如选择出错,系统将提出警告,并提醒用户重新进行选择。3.1录入班次功能桂林电子科技大学信息科技学院9/27图3-1输入时的界面如上图所示,该功能实现录入班次信息。选择1按enter键进入该功能,程序提醒用户输入车次.发车时间.起始站.终点站.行车时间.额定载量.已售票数,输入完毕后按enter键将完成录入班次结果,同时程序将再次提醒用户进行新的选择。3.2显示所有班次图3-2查询班次界面桂林电子科技大学信息科技学院10/27可以显示所有录入的信息。3.3查询所有班次功能图3-3选择查询方式的界面该功能将实现程序运行班次的查询。选择3并按enter键将实现该功能。分班次和终点站两种方式查询。3.4增加班次功能图3-4增加班次界面该功能将增加班次信息,帮助用户更新班次信息。选择4并按enter键将实现该功能,再按提示输入就行。按任意键返回主菜单。桂林电子科技大学信息科技学院11/273.5售票功能图3-5-1选择售票功能界面图3-3-2订票的界面选择5按enter键实现该功能,按任意键关闭程序。买票程序可提示买票成功否,且自动判断是否可卖。桂林电子科技大学信息科技学院12/273.6退票功能图3-6退票界面选择6按enter键实现该功能,按任意键关闭程序。退票程序可提示退票成功否,且自动判断是否可退。3.7修改班次功能桂林电子科技大学信息科技学院13/27图3-7修改界面选择7按enter键实现该功能,按任意键关闭程序。按提示操作修改班次。3.8删除班次功能图3-8删除界面3.9退出功能桂林电子科技大学信息科技学院14/27图3-9退出界面该功能可退出系统,选择9按enter键实现该功能4、详细程序#includestdio.h//宏定义函数#includestring.h//字符串操作及内存操作函数#includestdlib.h//调用系统函数#includetime.h///时间库函数#includeconio.h///输入输出函数#defineN1000//宏定义多条记录typedefstructTICKET////定义新结构体TICKET{charnum[10];//车次编号charhour[3];//时间:小时charmin[3];//时间:分钟charfrom[10];//起始站charto[10];//终点站floathours;//车程实际时间intmax;//最大车载容量intnow;//已售票数}CLASS;intclass_num=0;//初始班次总数为0CLASSrecords[N];//多条记录intsystem_time();//系统时间voidNewMessage();//新纪录*录入函数******voidShowTable1();//线框调用1,不用每次输voidShowTable2(inti);//线框调用2,不用每次输桂林电子科技大学信息科技学院15/27voidDisplay();//显示所有函数voidadd();//增加记录voidsave();//保存函数voidload();//按班次查询函数voidsearch();//查询函数voidchange();//修改函数**voidquit();//退出函数**voidTicketorder();//售票函数**voidTicketdelete();//删除函数**intmenu_select();//菜单函数**intwhether(int);//判断时间是否超出函数***voidfind(chars1[],chars2[]);//查询函数//s1为班次//s2为终点站voiddeletemessage();//删除函数intfindnum(chars1[]);//班次查询函数voidget(int,int);//修改及增加班次*char*menu[]={*****************欢迎使用火车票查询系统*****************,\n*
本文标题:火车票管理系统——C语言程序设计实训报告
链接地址:https://www.777doc.com/doc-2529784 .html