c语言车票管理系统实验报告

上传人:工**** 文档编号:513731298 上传时间:2022-09-30 格式:DOC 页数:30 大小:376KB
返回 下载 相关 举报
c语言车票管理系统实验报告_第1页
第1页 / 共30页
c语言车票管理系统实验报告_第2页
第2页 / 共30页
c语言车票管理系统实验报告_第3页
第3页 / 共30页
c语言车票管理系统实验报告_第4页
第4页 / 共30页
c语言车票管理系统实验报告_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《c语言车票管理系统实验报告》由会员分享,可在线阅读,更多相关《c语言车票管理系统实验报告(30页珍藏版)》请在金锄头文库上搜索。

1、车票管理系统课程设计报告题目: 车票管理系统 专业: 信息与计算科学 班级: 1002 学号:06 3101301216 3101301218 姓名: 陈婉璐 包忠材 邱振涛 指导教师: 吴选忠 熊保平 完成日期: 2011年12月23日一、课程设计目的本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握数据结构和算法设计技术,掌握分析、解决实际问题的能力。通过这次设计,要

2、在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。二、课程设计内容一.系统的主要功能:1.浏览班次信息2.查询班次:按班次查询;按终点查询;3.售票 (1)售票成功(当车票有剩余,且车未发出时) (2)班次不存在(3)票已售完(当座位数小于等于已定票人数)(4)车已发出4.退票退票成功(输入的班次号存在且当前时间比发车时间早)退票失败(班次不存在或当前时间比发车时间晚)三、课程设计过程1需求分析(1) 输入的形式和输入值的范围;录入的班次信息的输入形式和输入值的范围:车次(类型:int) 发车时间小时(类型:int 0,24) 发车时间分钟(类型:int 0,60)

3、起始站及终点站(类型:void k))行车时间(类型:float times(int k))额定票数(类型:number(int k))已定票人数(类型:nownumber(int k,int i))(2) 输出的形式;printf(3) 程序所能达到的功能;录入详细的班次信息(发车时间,起点,终点站,行车时间,额定票数,订票人数,是否已发车);浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。查询功能(分班次查询和终点站查询两种);订票功能;(当查询出已定票人数小于额定载量且当前系统时间久小于发车时间才能售票,自动更新已售票人数

4、)退票功能;(输入所退票的班次,当本班车未发出时才能退票,自动更新已售票人数)临时增加班次功能;2概要设计进入班次一览进入班次查询进入终点站查询售票退票增加班次车票管理系统进入车票查询界面按b按班次查询按c终点站查询按提示操作继续查找,按1返回主菜单3详细设计车票查询依据提示操作进入售票界面售票成功班次不存在票已售完车已发出根据提示继续售票,返回主菜单按1售票4调试分析内容包括:a调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;1.我们将一个个功能分为一个个函数,在发车时间上我们遇到了一些阻碍!我本来想通过算法来输出发车时间,没想到一次次的实验不行!于是我们将发车时间的分为小

5、时段和分钟段!使用case函数输出.int hour(int k)switch(k)case 1:return 07;break;case 2:return 10;break;。(省略一部分)case 27:return 19;break;case 28:return 22;break; /*d到罗源一天的发车时间小时段*/ /*开车时间段*/int minute(int k)switch(k)case 1:return 00;break;case 2:return 00;break;。(省略一部分)case 27:return 30;break;case 28:return 30;break

6、; /*d到罗源一天的发车时间分钟段*/ /*开车时间段*/2.是终点站的输出,我们一开始是使用字符串的输出,这样以便于按终点站查找时能进行比较。但这种方法我们又没有实现!于是我们干脆用void,使用简便的方法,达到相同的目的.void k)switch(k)case 1: printf(闽清);break;case 2: printf(长乐);break;case 3: printf(连江);break;case 4: printf(永泰);break;case 5: printf(福清);break;case 6: printf(罗源);break; /*输入终点站的函数*/ 3.是时间的

7、问题,这源于要比较发车时间与当前的时间,判断这班车到底有没有发车,和能不能订票与退票,我们用了一个时间函数,输出了当前的时间,但那边有年月日,不好进行提取和比较,于是我们采用输出了时间,然后看着那个时间手动的提取。int shijian() struct tm *ptr; time_t lt; lt =time(NULL); ptr=gmtime(<); printf(ctime(<); return 0; /*输出当前时间的函数*/在主函数中:printf(请输入上述时间的时辰:); scanf(%d,&s);printf(请输入上述时间的分钟:);scanf(%d,&t);、然后再

8、将s和t带入各个需要比较时间的函数中。4.我们碰到了文件的问题,这是在保存已定票人数中,这需要更新已定票人数和判断能否售票,我们一开始就将这部分留到了最后,一开始我们只写了暂时售票人数为0,在文件的运用上我们感觉比较困难,训练的比较少,也比较少这方面的知识!在这里我们碰到了比较大的困难,我们一开始建立了一个txt的文本文档,准备使用这个来储存这些数据,但后来我们觉得使用一个文档比较复杂,容易出错,于是我们使用比较麻烦,但是简单的办法,我建立了与班次一样多的文档,一个文档保存一班车的数据,这样就不是那么复杂了。int nownumber(int k,int i)int n=0;char 10;s

9、witch(i)case 1:strcpy(,qiu1.txt);break;case 2:strcpy(,qiu2.txt);break;。case 27:strcpy(,qiu27.txt);break;case 28:strcpy(,qiu28.txt);break; case 29:strcpy(,qiu29.txt);break;FILE *fp;if(fp=fopen(,rt+)=NULL)printf(cannot open any key exit!);exit(1);fscanf(fp,%d,&n);n=n+k; rewind(fp);fprintf(fp,%d,n); /将

10、输入数组里面的数据写到文本里fclose(fp);return n; /*现在已定票人数*/ 其他都是一些小问题了,我们可以自己一边调试一边就能自己一会儿解决!b算法的时空分析(包括基本操作和其他算法的时间复杂度和空间复杂度的分析)和改进设想;我们车票管理系统使用的语言并不复杂,使用的都是比较常见的,低级的语言,高级的语言和难懂的语言比较少!这是我们小组自己的成果,做出来了,我们挺有成就感的。我们也使用了很多的while循环。在主函数中while(log) /*循环*/ if(x=a)banci(s,t); /*调用班次的函数,班次一览的函数*/ if(x=b) chaxun1(s,t); /

11、*按班次查询的函数*/ if(x=c) chaxun2(s,t); /*按终点站查询的函数*/ if(x=d) maipiao(s,t); /*买票的函数*/ if(x=e) tuipiao(s,t); /*退票的函数*/if(x=f)zengban(); /*增加班次*/printf(n);printf(返回主界面:请输入1:n); printf(退出:0n); scanf(%d,&n); if(n=1) system(cls); jiemian(); scanf(%c,&x); else if(n=0) break;这是在程序运行与退出之间循环在买票函数中:if(number(k)=nownumber(0,i)&log=1)printf(请输入你要定的票的数量m:n);scanf(%d,&m);nownumber(m,i);while(number(k)0) k+; n=n-tangci(k); if(i=10) pri

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

当前位置:首页 > 办公文档 > 工作计划

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