汽车车票管理系统程序模版.docx
- 文档编号:9024692
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:16
- 大小:238.08KB
汽车车票管理系统程序模版.docx
《汽车车票管理系统程序模版.docx》由会员分享,可在线阅读,更多相关《汽车车票管理系统程序模版.docx(16页珍藏版)》请在冰点文库上搜索。
汽车车票管理系统程序模版
中国海洋大学
青岛学院
C语言课程设计报告书
题目
汽车车票管理系统
学生姓名
高森王孟凡蔡宇炜杨丽君
指导教师
林旭平
学院
信息科学与工程学院
专业班级
电子信息工程2009级3班
组内分工
姓名
主要任务
占系统比例
高森
汽车查询系统
25%
王孟凡
主菜单及数据保存系统
25%
蔡宇炜
汽车载入及删除系统
25%
杨丽君
订退票系统
25%
注:
本课程设计其他相应的任务会根据他们上述任务多少进行分配,上述所占比例是他们在整个设计任务中的最终比例。
目录
1前言1
2需求分析2
3模块设计图3
4NS流程图清单4
5存储结构及函数说明7
6课程设计结果9
7实践心得体会13
1前言
该章主要描述课程设计的目的,以及对题目本身的理解。
目的:
1.掌握基本信息管理系统的设计思想和实现能力。
2.掌握根据问题的需要,选择合适的数据结构的能力。
3.系统理解、综合运用课程知识,通过实践着重巩固数组、函数、结构体、指针、链表等重要内容。
4.学会用C语言程序解决实际问题的方法,掌握模块化程序设计的思想。
5.学会较大程序的系统测试、调试方法。
6.通过做课程设计激发我们的学习兴趣和创新能力,为后续课程的学习打下良好的基础。
对题目的理解:
建立某地区的汽车车票管理系统,需要实现以下六个功能:
1.录入班次信息、2.显示班次信息、3.新增班次信息、4.删除班次信息、5.查询班次信息(又分为按班次查询和按终点站查询)、6.订票或退票。
实现这些功能需要用到的知识点有:
数组,指针,结构体,链表,文件指针以及函数的调用等。
2需求分析
汽车售票系统主要实现汽车资料的载入,相应车票的售出及退订的逻辑功能;还有对车次的删除和车次得增加功能,对汽车的查询功能,包括按班次查询,和按终点站查询。
还要对相应的数据进行保存的功能。
该系统详细功能如下:
1.汽车数据的载入系统包括(班次终点站始发站发车时间票价载客量已售票数剩余票数)例:
班次
终点站
始发站
发车时间
票价
载客量
已售票数
剩余票数
101
qingdao
jiaozhou
06:
40
10
50
0
50
202
jiaonan
jiaozhou
09:
00
15
40
0
40
201
jiaonan
jiaozhou
09:
20
13
45
0
45
302
jimo
jiaozhou
09:
30
15
35
0
35
相应的地点会有不同的车次,不同的发车时间,不同的载客量,在载入汽车资料时系统会逐步提示你输入相应的数据,不能乱输否则会出现系统错误,而不能得到相应的效果。
2.汽车售票系统进入此系统输入目的地进行查询,选定目的地后会有不同时间的相应的班次的汽车供你选择,再根据你的需要和时间选择你想乘坐的班次,然后再有你购票的张数的指令,在有条件下提示订票成功,否则会有相应提示。
3.汽车退票系统进入此系统后对相应票退订(再经检查并允许退订的情况下),输入退票的班次,当本班车未发出时才能退票,自动更新已售票数。
4.查询汽车信息系统包括按终点站查询和按班次查询,若有合适班次在进入订票系统进行订票。
5.班次删除系统对于不能按时出发的车辆要进行删除,进入此系统会有提示你要删除的班次,输入后此班次的相应数据就会被删出,不会再在以后的订票中出现此班次信息。
6.退出系统在退出系统时要按提示按0退出系统,这是就会把相应的数据保存到相应的文件中,如果不是按0退出则无法保存。
由于对知识的了解有限目前想到的简单的售票系统就包括以上的各个系统。
本系统运用了链表对汽车信息订票及退票进行操作,用文件对相应数据进行保存。
3模块设计图
根据第二章中对系统的需求分析,绘制模块图。
4NS流程图清单
根据第三章的模块图,绘制每一个模块的NS流程图,如果在其中要用到某一特殊算法,如排序算法等,要详细说明。
显示主菜单
调用函数readdata显示系统主菜单
printf
【1】。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
录入班次信息
【2】。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
订票系统
【3】。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
查询系统
【4】。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
删除班次信息
【5】。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
退票系统
【0】。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
退出系统
调用函数writedata保存在文件中
选择代码进入相应系统
调用函数循环输入班次信息
输入班次po->num
输入终点站po->last
输入始发站po->frist
输入票价po->money
输入载客量po->fff
输入售票数po->ff
输入剩余票数po-.>f
输入发车时间po->time
调用存储函数
将信息写入文件,指针后移
结束本功能
进入订票系统
输入目的地,遍历链表,查找车次
输出该目的地的所有车次
根据时间需求输入所要订票的班次
输入订票数l,判断是否小于剩余数
是否
该车次已售票数增加l
定
票
失败
该车次剩余票数减l
订票成功
输出所需金额,输入实付金额,输出余额及找零
更新文件
进入退票系统
遍历链表,查找班次是否存在
是
是否
输入要退票班次
退票失败
判断班次是否存在
是否
输入退票张数l,判断
是否小于已经售票数
是否
退票失败
已售票数减少l
退票失败
剩余票数增加l
退票成功
更新文件
删除班次系统
调用删除函数voiddel()
输入要删除的班次
遍历链表从文件中读取班次信息
返回链表首地址
调用writedate函数
当前班次号!
=删除班次号
指针后移
当前班次=要删除班次
删除此结点
返回链表首地址
调用存储函数更新文件
调用函数query进入查询子菜单
Case2按目的地查询
last
Case1按班次查寻
num
输入班次
输入终点站
遍历链表查询班次
遍历链表查寻到达该终点站的班次
输入此班次
输出此班次
Case0职消查询
Defaultprintf:
无效选项
5存储结构及函数说明
在本章中主要描述系统中主要信息的存储结构,对于各模块中通用的信息尽量采用同一存储结构,并将共同的存储结构保存成头文件,以便于各模块调用。
对于各模块出现的函数要加以详细说明,特别是函数功能,其中包括函数形参和返回值代表的含义。
1.结构体变量存储结构声明:
structbus
{
intnum;\\班次号
charlast[20];\\终点站
charfrist[20];\\始发站
chartime[10];\\发车时间
intmeony;\\票价
intfff;\\载客量
intff;\\已售票数
intf;\\剩余票数
structbus*next;
};
2.调用函数说明及其中所含变量存储结构声明:
(1)进入主菜单
intchoice;//功能选项
readData();//读取文件数据
FILE*fp;//文件指针
structbus*p1,*p2;//结构体指针
switch(choice)//进行功能选择
(2)voidexit();//退出该系统
(3)voidrecord()//录入班次信息
structbus*p0;定义结构体指针
p0=(structbus*)malloc(LEN);//申请存储空间
printf("请输入汽车班次:
");//
scanf("%d",&p0->num);//对班次进行初始化并保存到p0->num中
printf("请输入终点站:
");//
scanf("%s",p0->last);//对终点站进行初始化并保存到p0->last中
printf("请输入始发站:
");//
scanf("%s",p0->frist);对始发站进行初始化并保存到p0->frist中//
printf("请输入发车时间:
");//
scanf("%s",p0->time);对发车时间进行初始化并保存到p0->time中//
printf("请输入票价:
");//
scanf("%d",&p0->meony);//对票价进行初始化并保存到p0-meony中
printf("请输入载客量:
");//
scanf("%d",&p0->fff);//对载客量进行初始化并保存到p0->fff中
printf("请输入售票数:
");//
scanf("%d",&p0->ff);//对已售票数进行初始化并保存到p0->ff中
printf("请输入剩余票数:
");//
scanf("%d",&p0->f);//对剩余票数进行初始化并保存到p0->f中
(4)display(p0);//在屏幕上显示载入信息
voiddisplay(structbus*p)显示函数
insert(p0);//调用函数生成链表
voidinsert(structbus*stu)//将初始化的班次信息编译成链表
structbus*p0,*p1,*p2;//定义结构体指针
(5)voidquery()//对车次信息进行查询
intchoice;//功能选项
query_by_num();//按班次进行查询
query_by_name();//按终点站进行查询
(6)voidwriteData()//写入文件
FILE*fp;//文件指针
structbus*p;//结构体指针
voidfreeAll()//释放函数
(7)voiddel()//删除车辆信息函数
structbus*p0,*p1;//结构体指针
(8)voidorder()//订票函数
voiddevise(structbus*p)//将指针指到要订车次
voidcancle()//退票函数
voiddevie(structbus*p)//将指针指到要退车次
6课程设计结果
程序代码不需要在报告中列出,以附件的方式给出即可,在该部分中可以说明附件的数量和附件程序的功能,其次可将系统实现的主要功能以图片方式列出。
汽车资料载入
订票系统
订票后查询
查询系统(按终点站查询)
按班次查询
删除班次系统
退票系统及查询
退出系统
7实践心得体会
如题:
可对课程设计中出现的问题和解决方法加以描述。
●收获:
通过c语言程序设计,我们掌握了基本信息管理系统的设计思想和实现能力,掌握了根据问题的需要,选择合适的数据结构的能力,掌握了模块化程序设计的思想,巩固了数组、函数、结构体、指针、链表等知识,学会了较大程序的系统测试、调试方法。
●遇见问题:
1.在数据载入时出现问题:
由于没有数据库系统,不能直接从文件中读出信息进行操作。
在进入程序时必须先要对车次信息进行载入,不然后面的功能将无法进行与实现,这是必在一开始会浪费一些时间
2.在处理订票与退票模块上出现问题:
由于系统时间大于发车时间时不能订票或退票,就需要调用系统时间,而调用系统时间的函数我们不知道怎么用。
●解决方案:
1.在数据载入问题上只能事先进行一些班次的载入,在演示前就已经载入了若干班次,节省时间。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车 车票 管理 系统 程序 模版