火车票管理系统课程设计附源代码Word格式.docx
《火车票管理系统课程设计附源代码Word格式.docx》由会员分享,可在线阅读,更多相关《火车票管理系统课程设计附源代码Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
如果当前系统时间超过了某班次的发车时间,则显示"
此班已发出"
的提示信息>
。
〔3查询路线:
可按班次号查询,可按终点站查询。
〔4售票和退票功能:
A:
当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。
B:
退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。
〔5删除功能:
该功能可以删除录入的错误信息。
〔6订购功能:
该功能可以方便旅客提前预定。
第三章详细设计说明
3.1模板设计图
图3-1函数功能模板图
3.2主函数流程图
1234
是
否
图3-2主函数流程图
3.3子函数流程图
是
否
否
12
图3-3录入班次流程图
图3-4查询车次函数流程图
12
是否
图3-5订票函数流程图
第四章编码与调试
4.1软件使用说明
打开软件后,会出现一个主页面,这时候你首先要把火车票信息调用出来,这款软件具备很多功能,例如用键盘操作页面;
可以更改班次信息;
浏览班次信息;
订票;
退票等等,并且能够随时退出系统得功能。
这款软件简单易操作,希望大家会喜欢。
4.2运行结果及截图
1、进入系统页面录入班次信息
图4-1录入班次信息图
2、浏览录入班次信息
图4-2浏览班次信息图
3、查询你乘车需要的信息
(1)按班次查询
图4-3班次查询图
(2)按终点站查询
图4-4班次查询图
4、订票与退票
(1)订票成功
图4-5订票成功图
(2)订票失败
图4-6订票失败图
(3)退票成功
图4-7退票成功图
(4)退票失败
图4-8退票失败图
5、退出系统
图4-9退出系统图
第五章课程设计心得与体会
三周的课程设计结束了,我终于完成了这次高级语言课程设计,并且认真完成了课程设计报告。
在这次的课程设计中不仅检验了我所学习的知识,也培养了自己的耐心。
课程设计是我们专业课程知识综合应用的实践训练,也是我们迈向社会,从事职业工作前一个必不少的过程."
千里之行始于足下"
通过这次课程设计,我深深体会到这句千古名言的真正含义.
通过这次课程设计,本人在多方面都有所提高。
通过这次火车票系统设计,综合运用本专业所学课程的理论,巩固与扩充了高级语言设计等课程所学的内容,掌握高级语言设计的方法和步骤,掌握了高级语言设计的基本的概念,了解了高级语言的基本结构,提高了编程能力,绘图能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。
在这次设计过程中,大大激发了我编程的兴趣,在设计的过程中亦遇到了许多困难,我会向同学和学长寻求帮助,在交流中共同进步,也体现出自己设计程序的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。
附录一参考文献
[1]张海藩编著.软件工程导论<
第四版>
[M].清华大学出版社.2006.5.
[2]RogerS.Pressman.软件工程----实践者的研究方法.机械工业出版社.1990
[3]张敬等编著.软件工程教程.北京航空航天大学出版社.2003.7.
[4]Stevemaguire.WritingCleanCode〔姜静波等译.电子工业出版社.1993
[5]谭浩强著.<
<
C++程序设计>
>
.清华大学出版社
[6]严蔚敏.吴伟民编著.<
数据结构<
C语言版>
附录二程序清单
以下是火车票管理系统的完整程序清单:
#include<
stdio.h>
stdlib.h>
dos.h>
time.h>
conio.h>
string.h>
constintMAX=20;
constintN=50;
constintMAXFILENAME=100;
enum{FALSE,TRUE};
structtime
{
inthour;
intminutes;
};
structticket
intSerialNumber;
structtimeSetOut;
charDeparturePoint[MAX];
charTerminalPoint[MAX];
floatLastTime;
intFixNumber;
intFixedNumber;
}car[N];
intRecordNumber;
intFLAG=FALSE;
/**********************************************/
intShowMessage<
void>
;
//载入原始数据
voidmainmenu<
//主菜单
voidInsertMessage<
//录入班次信息
voidSearchMenu<
//查询路线子菜单
voidSearchByNumber<
//按班次号查询
voidSearchByAddress<
//按终点站查询
voidTicketManagement<
//车票售出与退回
voidTicketOrder<
//售票
voidTicketDelete<
//退票
voidexit<
//退出该系统
voidSaveRecord<
ticketx>
//储存信息到文件中
/********************************************/
intmain<
do{
mainmenu<
}while<
FLAG==FALSE>
return0;
}
system<
"
color1f"
modecon:
cols=140lines=130"
charfunctionNumber;
printf<
车票管理系统\n\n"
日期:
2011/1/3/22:
57\n"
============================================================================\n"
1.录入班次信息\t\n"
2.浏览班次信息\t\n"
3.查询行车路线\t\n"
4.售票与退票系统\t\n"
5.退出该系统\t\n"
请选择你所需要的功能:
scanf<
%c"
&
functionNumber>
switch<
case'
1'
:
{
InsertMessage<
printf<
\n按任意键回主菜单......\n"
getchar<
}
break;
2'
RecordNumber=ShowMessage<
3'
SearchMenu<
4'
TicketManagement<
5'
FLAG=TRUE;
exit<
break;
default:
{
输入错误,请确保你的输入为1--5.\n"
按任意键回主菜单......\n"
}//switchends
FLAG=FALSE;
FILE*fp;
charfilename[MAXFILENAME];
inti;
请输入文件名或者文件路径名:
%s"
filename>
if<
fp=fopen<
filename,"
r"
==NULL>
文件%s不可读,请确认文件%s存在或者文件路径正确.\n\n"
filename,filename>
for<
i=RecordNumber;
!
feof<
fp>
&
ferror<
i++>
fscanf<
fp,"
%d%d%d"
car[i].SerialNumber,&
car[i].SetOut.hour,&
car[i].SetOut.minutes>
%s%s%f%d%d"
car[i].DeparturePoint,&
car[i].TerminalPoint,&
car[i].LastTime,&
car[i].FixNumber,&
car[i].FixedNumber>
SaveRecord<
*<
car+i>
RecordNumber=i;
/*******************************输出更新后的订票记录************************************************************/
班次\t发车时间\t起点\t终点\t行车时间<
小时>
\t额定载量\t已定票人数\n"
i=0;
i<
RecordNumber;
%d\t%d:
%d\t\t"
car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes>
%s\t%s\t\t%.1f\t%d\t\t%d\n"
car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber>
fclose<
add.txt"
"
读取数据失败,请检查文件add.txt是否存在.\n"
exit<
-1>
intcount=i;
班次\t发车时间\t起点\t终点\t行车时间<
count;
{printf<
%s\t%s\t\t%.1f\t%d\t\t%d\t"
/*调用系统时间实现的功能:
如果车已发出,则打出提示"
此车已发出"
但是此处有错误*/
time_ttval;
structtm*now;
tval=time<
NULL>
now=localtime<
tval>
now->
tm_hour==car[i].SetOut.hour&
tm_min>
||<
tm_hour>
car[i].SetOut.hour>
\n"
returncount;
查询子菜单\n"
1.按班次号查询\t\n"
2.按终点站查询\t\n"
3.返回主菜单\t\n"
%*c%c"
SearchByNumber<
SearchByAddress<
输入错误,请确保你的输入为1--3.\n"
按任意键回查询子菜单......\n"
intSearchNumber;
请输入要查询的班次号:
%d"
SearchNumber>
car[SearchNumber-1].SerialNumber,car[SearchNumber-1].SetOut.hour,car[SearchNumber-1].SetOut.minutes>
car[SearchNumber-1].DeparturePoint,car[SearchNumber-1].TerminalPoint,car[SearchNumber-1].LastTime,car[SearchNumber-1].FixNumber,car[SearchNumber-1].FixedNumber>
charAddress[MAX];
请输入终点站的名称:
Address>
//对比终点站记录,找到并输出
if<
strcmp<
Address,car[i].TerminalPoint>
==0>
订票与退票菜单\n"
1.订票\t\n"
2.退票\t\n"
3.返回主菜单.\n"
选择你需要的功能:
TicketOrder<
//getchar<
TicketDelete<
请输入要订购的车票的班次:
i>
0||i>
RecordNumber>
对不起,今天没有这趟车,请明天再来,谢谢使用!
//getchar<
time_ttval;
tm_min<
tm_hour<
car[i].FixedNumber<
car[i].FixNumber>
<
++;
你的订票成功,请按时上车,谢谢使用!
elseprintf<
对不起,今天的这趟车的票已卖完,请明天再来,谢谢合作!
elseprintf<
对不起,今天的这趟车已发出,请明天再来,谢谢合作!
car[i-1].SerialNumber,car[i-1].SetOut.hour,car[i-1].SetOut.minutes>
car[i-1].DeparturePoint,car[i-1].TerminalPoint,car[i-1].LastTime,car[i-1].FixNumber,car[i-1].FixedNumber>
//printf<
getchar<
请输入要退购的车票的班次:
%d