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

2019-04-16 21:28

《车票管理系统》课程设计报告

题目: 车票管理系统

专业: 信息与计算科学 班级: 1002

学号:3101301206 3101301216 3101301218

完成日期: 2011年12月23日

1

姓名: 陈婉璐 包忠材 邱振涛 指导教师: 吴选忠 熊保平

一、课程设计目的

本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。 设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握数据结构和算法设计技术,掌握分析、解决实际问题的能力。 通过这次设计,要在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。

二、课程设计内容

一.系统的主要功能: 1.浏览班次信息 2.查询班次:

①按班次查询;②按终点查询; 3.售票

(1)售票成功(当车票有剩余,且车未发出时) (2)班次不存在

(3)票已售完(当座位数小于等于已定票人数) (4)车已发出 4.退票

退票成功(输入的班次号存在且当前时间比发车时间早) 退票失败(班次不存在或当前时间比发车时间晚)

三、课程设计过程

1.需求分析

(1) 输入的形式和输入值的范围;

录入的班次信息的输入形式和输入值的范围:车次(类型:int) 发车时间小时(类型:int [0,24]) 发车时间分钟(类型:int [0,60]) 起始站及终点站(类型:void wap(int k))行车时间(类型:float times(int k))额定票数(类型:number(int k))已定票人数(类型:nownumber(int k,int i)) (2) 输出的形式;printf (3) 程序所能达到的功能;

①录入详细的班次信息(发车时间,起点,终点站,行车时间,额定票数,订票人数,是否已发车??);

②浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。

③查询功能(分班次查询和终点站查询两种);

④订票功能;(当查询出已定票人数小于额定载量且当前系统时间久小于发车时间才能售票,自动更新已售票人数)

⑤退票功能;(输入所退票的班次,当本班车未发出时才能退票,自动更新已售票人数)

2

⑥临时增加班次功能; 2.概要设计 车票管理系统 进进进 入入入终 班班售退次次点票 一查站票 览询查 询

3.详细设计 进入车票查询界面 按按车票查询 bc 按终班点

次站 查查询询

按提示操作继续查找,按1返回主菜单

进入售票界面

依据提示操作 售票 售班车票次票不已已 成售发

功存在完出

根据提示继续售票,返回主菜单按1 3

增加班次

4.调试分析 内容包括:

a.调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;

1.我们将一个个功能分为一个个函数,在发车时间上我们遇到了一些阻碍!我本来想通过算法来输出发车时间,没想到一次次的实验不行!于是我们将发车时间的分为小时段和分钟段!使用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; /*d到罗源一天的发车时间分钟段*/ }

} /*开车时间段*/

2.是终点站的输出,我们一开始是使用字符串的输出,这样以便于按终点站查找时能进行比较。但这种方法我们又没有实现!于是我们干脆用void,使用简便的方法,达到相同的目的.

void wap(int k) { switch(k) { case 1:

4

printf(\闽清\ case 2: printf(\长乐\ case 3: printf(\连江\ case 4: printf(\永泰\ case 5: printf(\福清\ case 6: printf(\罗源\ }

} /*输入终点站的函数*/

3.是时间的问题,这源于要比较发车时间与当前的时间,判断这班车到底有没有发车,和能不能订票与退票,我们用了一个时间函数,输出了当前的时间,但那边有年月日,不好进行提取和比较,于是我们采用输出了时间,然后看着那个时间手动的提取。 int shijian() {

struct tm *ptr; time_t lt;

lt =time(NULL); ptr=gmtime(<); printf(ctime(<)); return 0;

} /*输出当前时间的函数*/ 在主函数中:

printf(\请输入上述时间的时辰:\ scanf(\ printf(\请输入上述时间的分钟:\ scanf(\、

然后再将s和t带入各个需要比较时间的函数中。

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

int nownumber(int k,int i) { int n=0; char filename[10]; switch(i) { case 1:

5


c语言车票管理系统实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:幼小衔接研究文献综述

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: