2022年车票管理系统-报告 .pdf
《2022年车票管理系统-报告 .pdf》由会员分享,可在线阅读,更多相关《2022年车票管理系统-报告 .pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、南京晓庄学院数学与信息技术学院数据结构课程设计报告题 目: 车票管理系统所在班级:学生姓名:指导教师:研究起止日期:二一二 年 三 月至二一二年 五 月名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - 数据结构课程设计实验报告班级姓名学号实验课程数据结构实验名称车票管理系统实验成绩实验日期2012、4、3 任课教师一、 目的( 本次 课程设计 所涉及并要求掌握的知识点。 )1. 通过课程设计,加深对 C语言程序设计和数据结构课程
2、所学知识的理解,熟练掌握和巩固 C语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等) ;运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用等;复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等),熟练掌握和巩固三种基本的数据结构(线性结构、树形结构、图形结构)的逻辑结构、存储结构以及相关运算和应用。 2.学会编制结构清晰、风格良好、数据结构适当的C 语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力 3.便于车站管理部门对汽车班次信息的统计和管理,提高车站部门的工作效率,能
3、够更好的为市民服务,同时也便于乘客了解相关的信息,方便出行。二、使用环境(本次上机实践所使用的平台和相关软件。)操 作 系 统:Windows XP 或者 Windows 7 集成开发环境 :Microsoft Visual C+ 三、内容与设计思想(1 设计思路 2 主要数据结构 3 主要代码结构 4 主要代码段分析)1、设计思路(1)能够增加汽车班次信息,如班次号,发车时间,起点站,终点站,行车时间,额载量,已订票人数等。(2)能够显示班次信息,显示信息总和(如果已发出站的要要显示“已经开出”) 。(3)查询路线:可按班次号查询 , 可按终点站查询(4)售票功能:当查询出已定票人数小于额定
4、载量且当前系统时间小于发车时间才能售票,自动更新已售票人数。(5)退票功能:输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 21 页 - - - - - - - - - 总体设计框架:班次信息增加功能流程图:增加班次信息显示班次信息查询班次信息售票退票保存车次信息退出系统按班次查询按终点站查询车票管理系统按Y继续增加班次信息增加成功输入错误增加班次输入发车时间输入行车时间输入起点站输入额定载量按任意键返回主菜单名
5、师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 21 页 - - - - - - - - - 查询班次信息流程图:2、主要数据结构以及代码结构(1)主程序模块 main()函数:用来调用读取文件函数、功能菜单函数以及保存文件信息函数。菜单函数 打印“车票管理系统” ;打印“系统时间” ;打印“ 1.增加班次信息” ;打印“ 2.显示班次信息” ;打印“ 3.查询班次信息” ;打印“ 4.售票” ;打印“ 5.退票” ;打印“ 6.保存车次信息;打印“ 0.退出系统”;打印“
6、请选择(0-6) ” ; (2)增加班次信息函数void lu(void):用来增加系统内班次信息进入查询界面按1按班次查询按2终点站查询按 Y 继续查找,按任意键返回主菜单名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - (3)显示班次信息函数void liulan(struct Buses bus):用来显示系统内所有班次的信息(4)查询班次信息函数void chaxun(struct Buses bus):可以分为两种查询
7、方式,按班次查询和按终点站查询,非常方便使用(5)售票函数 void shoupiao(struct Buses bus):while( 选择的是“ Y”) 打印当前时间打印“班次发车时间起点站终点站行车时间额定载量已定票人数”for( ) 输出班次信息提示输入车的班次 if( 当查询出已定票人数小于额定载量且当前系统时间小于发车时间时) 提示售票成功!订票人数加1; if(额定载量小于订票人数) 提示票已售完! ; else if(输入的班次号小于零) 该车不存在! else if(当前系统时间晚于发车时间) 提示车已发出! 提示继续售票按Y,按任意键返回主菜单!输入一个字符; 名师资料总结
8、 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 21 页 - - - - - - - - - (6)退票函数 void tuipiao(struct Buses bus):while( 输入的是Y 的时候 ) 提示输入要退票的车次;输入一个字符; if( 输入的班次号存在和系统时间比发车时间晚) 订票人数 -1;提示退票成功! else if(输入的班次号小于零) 提示该班次不存在! ;)else if(要退票的那辆车的发车时间早过现在系统时间) 提示车已发出不能退票! ;提示继续退
9、票请按(Y), 返回主菜单按任意键;输入一个字符; (7)保存信息函数 void save(struct Buses bus):(8)系统退出函数 void xitongtuichu():名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 21 页 - - - - - - - - - 结构体定义:在程序代码的开始添加一些条件方便函数功能实现: #define Max 50/最大贮赌量 #define null 0 static int H=0; 3、程序主要代码分析int c
10、ompare_systime(struct Buses bus,tm *T) /与系统时间的比较函数if(bus.time.hour=T-tm_hour) return 1; if(bus.time.min=T-tm_min) return 1; if(bus.time.secT-tm_sec) return 1; else return 0; return 0; return 0; 此段代码主要为了实现汽车的发车时间与系统当时的时间相比较,如果小于系统时间说明struct Times (定义时钟)int hour; int min; int sec; ; struct Buses/ 定义汽车
11、int number;/ 班次struct Times time; 发车时间char start30;/ 出发站char end30;/ 终点站float time_cost; 行车时间int carry_number;/ 额定票数int booK_number;/ 已订票人数; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 21 页 - - - - - - - - - 汽车已经发车,大于则还没有发车出发。void sort_time(struct Buses bus)
12、 /按发车时间排序int i,j,k; struct Buses b=0; for(i=0;iH-1;i+) k=i; for(j=i+1;jH;j+) if(compare_time(busi.time,busj.time) k=j; if(k!=i) b=copy(b,busi); busi=copy(busi,busk); busk=copy(busk,b); 当我们不断增加班次信息时候比较乱,不一定按照某规则增加的,此函数就是为了进行排序,将增加的班次信息按照发车时间进行排序显示,便于查询。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
13、 - - - - 名师精心整理 - - - - - - - 第 8 页,共 21 页 - - - - - - - - - 四、调试过程(1 测试数据设计 2 测试结果分析)菜单主界面:增加班次信息:显示班次信息:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 21 页 - - - - - - - - - 查询班次信息:售票界面:退票界面:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
14、- - - - - 第 10 页,共 21 页 - - - - - - - - - 五、总结我自己本身对于软件编程是非常感兴趣的,也非常热爱编程,每当学习一门新的语言的时候我都是很努力去学习,去吸收,去理解,大一下学期学习了C语言,上学期又学习了数据结构,使得我们对于C语言更加吸收透彻。开学到现在已经几个月了,数据结构程序设计题目老师从第一节课就给了我们,我自己尝试了编一些简单的代码实现车票管理系统某个简单的功能,在编程编译的过程中,还是遇到了各种各样的问题,自己花费大量时间去修改调试,自己一起上网查询或者查看书籍等等,实在遇到自己没法解决的问题了就去询问同学和曹老师,曹老师给了我很大的帮助,
15、让我在这门课程中学到了很多很多,曹老师一直都是很耐心的教我们,非常感谢曹老师。通过本次的课程设计,好好的复习了一下以前学过的知识。对循环结构、指针、结构体,函数调用, switch语句, for循环语句等有了更为系统的了解,也学会了制作流程图,明白了一个设计精良的程序要的不仅是它的正确输出结果,还要有简明可靠地思路,良好的稳定性等。通过这次课程设计,让我能把相关的知识联系起来解决要解决的问题。更为重要的是,经过这次课程设计,我学会了要有模块化的思想进行程序设计,提高了对问题的分析和解决能力。增强了程序设计过程中对程序的调试能力,知道如何解决调试过程中遇到的问题,从中提高对问题分析的能力。总之,
16、设计程序是一件很需要毅力的事,不仅让我懂得了一个程序设计者基本的工作素质要求,也让我懂得今后无论做什么事情都需要决心、耐心、细心、专心、恒心、信心。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 21 页 - - - - - - - - - 六、附录1、原代码2、参考文献程序源代码:#include #include #include #include #include #include #include #define Max 50/ 最大贮赌量#define nul
17、l 0 static int H=0; struct Times/定义时钟 int hour; int min; int sec; ; struct Buses/ 定义汽车int number; struct Times time; char start30; char end30; float time_cost; int carry_number; int booK_number; ; struct Buses busMax; time_t now = time(0); tm *tnow =localtime(&now); void load();/ 载入车次信息void lu(void)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年车票管理系统-报告 2022 车票 管理 系统 报告
限制150内