火车票管理系统课程设计附源代码.docx
- 文档编号:7204835
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:24
- 大小:313.48KB
火车票管理系统课程设计附源代码.docx
《火车票管理系统课程设计附源代码.docx》由会员分享,可在线阅读,更多相关《火车票管理系统课程设计附源代码.docx(24页珍藏版)》请在冰豆网上搜索。
火车票管理系统课程设计附源代码
计算机科学与技术系
信息管理与信息系统专业
《程序设计综合课程设计》报告
(2013/2014学年第一学期)
学生姓名:
学生班级:
学生学号:
指导教师:
2013年 1 月 8 日
火车票管理系统
第一章课程设计的目的和要求
高级语言课程设计的主要目的是培养学生能够提高综合应用语言的能力,通过课程设计的训练,使学生能及时巩固已学的知识,补充未学的但有必要的内容,掌握应用计算机解决实际问题的基本方法,熟悉程序开发的全过程,提高综合应用语言的能力。
高级语言程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构程序设计的方法按照课程设计的题目要求,分析,编写,调试和测试高级语言程序及编写设计报告。
1.1课程设计的目的
1.巩固和掌握高级语言程序设计基本概念;
2.掌握基本的程序设计方法;
3.掌握开发软件所需的需求定义能力;
4.提高书写程序设计说明文档的能力;
5.提高综合运用高级语言的能力,强化编程和调试能力。
1.2课程设计的基本要求
1.根据所给的课程设计题目,分析课程设计题目的要求;
2.对系统功能模块进行分析,写出详细的设计说明文档;
3.编写程序代码,调试所编写程序使其能正确运行;
4.设计完成的软件便于操作和使用;
5.设计完成后提交课程设计报告。
第二章课程设计任务内容
2.1简介
火车票管理系统:
是为广大群众开发的,帮助人们查询车次信息,订票和退票,大大节约了人们的时间,是铁路营运公司所需要的全部功能的一个综合的管理系统。
2.2功能说明
(1)录入班次信息:
信息用文件保存,可不定时地增加班次数据。
(2)浏览班次信息:
可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。
(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]谭浩强著.<
[6]严蔚敏.吴伟民编著.<<数据结构(C语言版)>>.清华大学出版社
附录二程序清单
以下是火车票管理系统的完整程序清单:
#include
#include
#include
#include
#include
#include
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(void);//主菜单
voidInsertMessage(void);//录入班次信息
voidSearchMenu(void);//查询路线子菜单
voidSearchByNumber(void);//按班次号查询
voidSearchByAddress(void);//按终点站查询
voidTicketManagement(void);//车票售出与退回
voidTicketOrder(void);//售票
voidTicketDelete(void);//退票
voidexit(void);//退出该系统
voidSaveRecord(ticketx);//储存信息到文件中
/********************************************/
intmain(void)
{
do{
mainmenu();
}while(FLAG==FALSE);
return0;
}
voidmainmenu(void)
{
system("color1f");
system("modecon:
cols=140lines=130");
charfunctionNumber;
printf("车票管理系统\n\n");
printf("日期:
2011/1/3/22:
57\n");
printf("============================================================================\n");
printf("1.录入班次信息\t\n");
printf("2.浏览班次信息\t\n");
printf("3.查询行车路线\t\n");
printf("4.售票与退票系统\t\n");
printf("5.退出该系统\t\n");
printf("============================================================================\n");
printf("请选择你所需要的功能:
");
scanf("%c",&functionNumber);
switch(functionNumber)
{
case'1':
{
InsertMessage();
printf("\n按任意键回主菜单......\n");
getchar();
getchar();
}
break;
case'2':
{
RecordNumber=ShowMessage();
printf("\n按任意键回主菜单......\n");
getchar();
getchar();
}
break;
case'3':
{
SearchMenu();
printf("\n按任意键回主菜单......\n");
getchar();
getchar();
}
break;
case'4':
{
TicketManagement();
getchar();
getchar();
}
break;
case'5':
FLAG=TRUE;exit();break;
default:
{
printf("输入错误,请确保你的输入为1--5.\n");
printf("按任意键回主菜单......\n");
getchar();
getchar();
}
}//switchends
FLAG=FALSE;
}
voidInsertMessage(void)
{
FILE*fp;
charfilename[MAXFILENAME];
inti;
printf("请输入文件名或者文件路径名:
");
scanf("%s",filename);
if((fp=fopen(filename,"r"))==NULL)
{
printf("文件%s不可读,请确认文件%s存在或者文件路径正确.\n\n",filename,filename);
mainmenu();
}
for(i=RecordNumber;!
feof(fp)&&!
ferror(fp);i++)
{
fscanf(fp,"%d%d%d",&car[i].SerialNumber,&car[i].SetOut.hour,&car[i].SetOut.minutes);
fscanf(fp,"%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;
/*******************************输出更新后的订票记录************************************************************/
printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");
for(i=0;i { printf("%d\t%d: %d\t\t",car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes); printf("%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(fp); } intShowMessage(void) { inti; FILE*fp; if((fp=fopen("add.txt","r"))==NULL) { printf("读取数据失败,请检查文件add.txt是否存在.\n"); exit(-1); } for(i=RecordNumber;! feof(fp)&&! ferror(fp);i++) { fscanf(fp,"%d%d%d",&car[i].SerialNumber,&car[i].SetOut.hour,&car[i].SetOut.minutes); fscanf(fp,"%s%s%f%d%d",&car[i].DeparturePoint,&car[i].TerminalPoint,&car[i].LastTime,&car[i].FixNumber,&car[i].FixedNumber); } intcount=i; printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n"); for(i=0;i {printf("%d\t%d: %d\t\t",car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes); printf("%s\t%s\t\t%.1f\t%d\t\t%d\t",car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber); /*调用系统时间实现的功能: 如果车已发出,则打出提示"此车已发出",但是此处有错误*/ time_ttval; structtm*now; tval=time(NULL); now=localtime(&tval); if((now->tm_hour==car[i].SetOut.hour&&now->tm_min>car[i].SetOut.minutes)||(now->tm_hour>car[i].SetOut.hour)) printf("此车已发出"); printf("\n"); } returncount; } voidSearchMenu(void) { system("color1f"); system("modecon: cols=140lines=130"); charfunctionNumber; printf("查询子菜单\n"); printf("============================================================================\n"); printf("1.按班次号查询\t\n"); printf("2.按终点站查询\t\n"); printf("3.返回主菜单\t\n"); printf("============================================================================\n"); printf("请选择你所需要的功能: "); scanf("%*c%c",&functionNumber); switch(functionNumber) { case'1': SearchByNumber();break; case'2': SearchByAddress();break; case'3': getchar(); mainmenu(); break; default: printf("输入错误,请确保你的输入为1--3.\n"); printf("按任意键回查询子菜单......\n"); getchar(); getchar(); SearchMenu(); } } voidSearchByNumber(void) { intSearchNumber; printf("请输入要查询的班次号: "); scanf("%d",&SearchNumber); printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n"); printf("%d\t%d: %d\t\t",car[SearchNumber-1].SerialNumber,car[SearchNumber-1].SetOut.hour,car[SearchNumber-1].SetOut.minutes); printf("%s\t%s\t\t%.1f\t%d\t\t%d\n",car[SearchNumber-1].DeparturePoint,car[SearchNumber-1].TerminalPoint,car[SearchNumber-1].LastTime,car[SearchNumber-1].FixNumber,car[SearchNumber-1].FixedNumber); } voidSearchByAddress(void) { inti; charAddress[MAX]; printf("请输入终点站的名称: "); scanf("%s",&Address); printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n"); for(i=0;i { //对比终点站记录,找到并输出 if((strcmp(Address,car[i].TerminalPoint))==0) { printf("%d\t%d: %d\t\t",car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes); printf("%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); } } } voidTicketManagement(void) { charfunctionNumber; system("color1f"); system("modecon: cols=140lines=130"); printf("订票与退票菜单\n"); printf("============================================================================\n"); printf("1.订票\t\n"); printf("2.退票\t\n"); printf("3.返回主菜单.\n"); printf("============================================================================\n"); printf("选择你需要的功能: "); scanf("%*c%c",&functionNumber); switch(functionNumber) { case'1': { TicketOrder(); //getchar(); //getchar(); } break; case'2': TicketDelete();break; case'3': { getchar(); mainmenu(); } break; default: { printf("输入错误,请确保你的输入为1--3.\n"); printf("按任意键回主菜单......\n"); getchar(); getchar(); mainmenu(); } } } voidTicketOrder(void) { inti; printf("请输入要订购的车票的班次: "); scanf("%d",&i); if(i<0||i>RecordNumber) { printf("对不起,今天没有这趟车,请明天再来,谢谢使用! \n"); printf("按任意键回主菜单......\n"); getchar();//getchar(); TicketManagement(); } time_ttval; structtm*now; tval=time(NULL); now=localtime(&tval); if((now->tm_hour==car[i].SetOut.hour&&now->tm_min { if(car[i].FixedNumber { (car[i].FixedNumber)++; printf("你的订票成功,请按时上车,谢谢使用! \n"); } elseprintf("对不起,今天的这趟车的票已卖完,请明天再来,谢谢合作! \n"); } elseprintf("对不起,今天的这趟车已发出,请明天再来,谢谢合作! \n"); printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n"); printf("%d\t%d: %d\t\t",car[i-1].SerialNumber,car[i-1].SetOut.hour,car[i-1].SetOut.minutes); printf("%s\t%s\t\t%.1f\t%d\t\t%d\n",car[i-1].DeparturePoi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 火车票 管理 系统 课程设计 源代码
![提示](https://static.bdocx.com/images/bang_tan.gif)