简单的汽车站售票系统.docx
- 文档编号:4689303
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:14
- 大小:57.54KB
简单的汽车站售票系统.docx
《简单的汽车站售票系统.docx》由会员分享,可在线阅读,更多相关《简单的汽车站售票系统.docx(14页珍藏版)》请在冰点文库上搜索。
简单的汽车站售票系统
沈阳航空工业学院
课程设计
学号200604061102
班级6406103
姓名王乐
指导教师王晓岩
2008年03月18日
沈阳航空工业学院
课程设计任务书
机电工程学院机械设计及其自动化专业6406103班
学号200604061102
一、课程设计题目:
简单的汽车站售票系统
二、课程设计工作自2008年3月10日起至2008年3月14日止,共计一周,20学时。
三、课程设计内容:
每天“沈阳→植物园”有5个班次的汽车(假设),具体的数据如下:
班次发车时间载客量已售票数
0106:
40500
0209:
30400
0313:
00400
0416:
00400
0520:
00500
请你为售票员开发一个小程序,以完成每天的“沈阳→植物园”的售票业务。
要求如下:
①能够售票和退票。
②某个班次已经过了开车时间,则该班次今天不再售票。
③可以随时显示售票现状,并以文件(myfile.txt)的形式保存当天各个车次的售票情况。
四、课程设计要求:
程序质量:
①贯彻模块化的程序设计思想,以主函数调用各个功能模块。
②用户界面友好,功能明确,操作方便。
③用户界面中的菜单至少应包括“售票”、“退票”、“显示当前售票情况”、“保存当天数据”、“退出”5项。
④在代码中给出必要的注释,以增强程序的可读性。
课程设计说明书:
课程结束后,上交课程设计说明书和源程序。
课程设计说明书的格式和内容参见提供的模板。
指导教师:
____________________学生签名:
____________________
五、成绩:
六、教师评语:
目录
一、需求分析1
二、程序流程图2
三、核心技术的实现说明及相应程序段3
四、个人总结5
五、参考文献5
六、源程序5
一、需求分析
通过对任务书内容的详细了解和深入的思考得知,整个程序可以分为三大部分.定义变量,输入数据,输出数据.但是在整个程序的执行过程当中,随处都体现了方便乘客购票、退票、查询售票与车次的思想,并且结合结构体与文件的读写来储存数据,以实现售票的数据化管理.用户界面友好,功能明确,操作方便。
信息表达清楚明确。
1.定义变量:
声明结构体,定义变量,为变量赋初值,为下一步工作做好准备。
2.输入数据:
用户可以按自己意愿输入车次进行查询,进而根据售票情况进行自主的选择够票。
3.输出数据:
根据用户的需要输出车次、时间、售票情况等数据,以方便用户了解情况。
程序结束后还有推出功能,增加了程序的可操控性。
二、程序流程图
三、核心技术的实现说明及相应程序段
下面对程序做以详细介绍:
(1)structstudent/*定义结构体*/
{
charbanci[10];/*各结构体名称*/
charfacheshijian[20];
charzaikeliang[20];
intmaipiao;
intyupiao;
}ST[N]={{"01","06:
40","50",0,50},/*对结构体输入数据*/
{"02","09:
30","40",0,40},
{"03","13:
00","40",0,40},
{"04","16:
00","40",0,40},
{"05","20:
00","50",0,50}
};
(2)
voidtuipiao()/*退票*/
{
inti,m;
charb[15];
{
printf("\n\ndanqianqingkuang\n");
printf("bancifacheshijianzaikeliangmaipiaoyupiao\n");
for(i=0;i printf("%3s%10s%10s%8d%8d\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao); } printf("qingshurutuipiaobanci: \n"); scanf("%s",b); printf("qingshurutuipiaozhangshu: \n"); scanf("%d",&m); for(i=0;i if(strcmp(ST[i].banci,b)==0) if(ST[i].maipiao-m>=0)/*判断售票数*/ { ST[i].maipiao=ST[i].maipiao-m; ST[i].yupiao=ST[i].yupiao+m; printf("tuipiaochenggong"); printf("\n\ntuipiaojieguo\n"); printf("bancifacheshijianzaikeliangmaipiaoyupiao\n");/*显示售票情况*/ for(i=0;i printf("%4s%10s%7s%8d%8d\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao); save();/*保存*/ } else printf(“tuipiaoshibai”); } (3) voidsell()/*售票*/ { inti,m; charb[15]; { inti; { printf("\n\nshoupiaoqingkuang: \n"); printf("bancifacheshijianzaikeliangmaipiaoyupiao\n"); for(i=0;i printf("%3s%10s%10s%8d%8d\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao); } } printf("qingshurugoumaidebanci: \n"); scanf("%s",b); printf("qingshurugoumaidepiaoshu: \n"); scanf("%d",&m); for(i=0;i if(strcmp(ST[i].banci,b)==0)/*判断班次是否符合*/ { ST[i].maipiao=ST[i].maipiao+m; ST[i].yupiao=ST[i].yupiao-m; printf("goumaichenggong"); { printf("\n\nshoupiaoqingkuang\n"); printf(“\nbancifacheshijianzaikeliangmaipiaoyupaiao\n"); for(i=0;i printf("%3s%10s%10s%8d%8d\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao); /*}*/ save();} else printf(“tuipiaoshibai”) } 四、个人总结 经过了短短的一周的C语言课程设计,我对C语言有了更进一步的了解。 让我学会了许多自己以前不会的知识,懂得了如何用结构话思想来解决实际问题,懂得了将C程序模块的好处。 用主函数调用子函数的方法,这样一来就把一个大的程序分成了几个小的程序,这样不仅降低了程序的难度还使程序的编辑思路更加清晰明了。 在编制程序的过程中,我也遇到了许多较难解决的问题,例如: 文件数据的读取,语法错误的查找,算法错误的查找以及文件的存储等问题。 不过在老师的帮助和指导下,让我学到了程序的单步运行,和监视断点等方法来解决一些算法的错误。 总的来说,C语言课程设计的综合训练让我体会到了C语言的用处,让我把以前学到的理论知识应用与在实际生活的到了应用。 同时培养了我自己思考解决问题的能力,让我得到了很好的锻炼,使我受益匪浅. 五、参考文献 谭浩强.C程序设计.北京: 清华大学出版社,2005 六、源程序 ##include"stdio.h" #include"stdlib.h" #include"string.h" #include"conio.h" #include"time.h" #defineN5 structstudent/*定义结构体*/ { charbanci[10]; charfacheshijian[20]; charzaikeliang[20]; intmaipiao; intyupiao; }ST[N]={{"01","06: 40","50",0,50}, {"02","09: 30","40",0,40}, {"03","13: 00","40",0,40}, {"04","16: 00","40",0,40}, {"05","20: 00","50",0,50} }; /*声明各函数*/ voidsearch(); voidsave(); voidsell(); voidlocaltimes(); voidtuipiao(); intmenu(); intmenu()/*定义菜单*/ {intc; printf("1.chaxundangqianshoupiaoqingkuang.\n"); printf("2.xianshidangqianshijian.\n"); printf("3.maipiao.\n"); printf("4.tuipiao.\n"); printf("5.cunchushuju.\n"); printf("6.tuichushoupiaoxitong.\n"); do{ printf("\nqingxuanze(1-6)jixu: "); scanf("%d",&c); }while(c<1||c>6); return(c); } voidsearch()/*查询函数*/ {inti;printf("qingshuruchaxundebanci\n"); scanf("%d",&i); i=i-1; { printf("\n\nchaxunjieguo\n"); printf("bancifacheshijianzaikeliangmaipiaoyupiao\n"); printf("%3s%10s%10s%8d%8d\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao); } } voidsell()/*售票*/ { inti,m; charb[15]; { inti; { printf("\n\nshoupiaoqingkuang: \n"); printf("bancifacheshijianzaikeliangmaipiaoyupiao\n"); for(i=0;i printf("%3s%10s%10s%8d%8d\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao); } } printf("qingshurugoumaidebanci: \n"); scanf("%s",b); printf("qingshurugoumaidepiaoshu: \n"); scanf("%d",&m); for(i=0;i if(strcmp(ST[i].banci,b)==0)/*判断班次是否符合*/ { ST[i].maipiao=ST[i].maipiao+m; ST[i].yupiao=ST[i].yupiao-m; printf("goumaichenggong"); { printf("\n\nshoupiaoqingkuang\n"); printf(“\nbancifacheshijianzaikeliangmaipiaoyupaiao\n"); for(i=0;i printf("%3s%10s%10s%8d%8d\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao); /*}*/ save();} else printf(“goumaishibai”) } voidtuipiao()/*退票*/ { inti,m; charb[15]; { printf("\n\ndanqianqingkuang\n"); printf("bancifacheshijianzaikeliangmaipiaoyupiao\n"); for(i=0;i printf("%3s%10s%10s%8d%8d\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao); } printf("qingshurutuipiaobanci: \n"); scanf("%s",b); printf("qingshurutuipiaozhangshu: \n"); scanf("%d",&m); for(i=0;i if(strcmp(ST[i].banci,b)==0) if(ST[i].maipiao-m>=0)/*判断售票数*/ { ST[i].maipiao=ST[i].maipiao-m; ST[i].yupiao=ST[i].yupiao+m; printf("tuipiaochenggong"); printf("\n\ntuipiaojieguo\n"); printf("bancifacheshijianzaikeliangmaipiaoyupiao\n");/*显示售票情况*/ for(i=0;i printf("%4s%10s%7s%8d%8d\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao); save();/*保存*/ } else printf(“tuipiaoshibai”); } voidsave()/*存储函数*/ { FILE*fp; inti; if((fp=fopen("myfile.txt","w+"))==NULL) {printf("cannotopeninfile\n"); exit(0); } for(i=0;i fwrite(&ST[i],sizeof(ST),1,fp); fclose(fp); printf("\n"); printf("successtosave\n"); printf("pleasechosetherightnumbertodonextstept\n"); } main() {for(;;) { switch(menu()) { case1: search();break; case2: localtimes();break; case3: sell();break; case4: tuipiao();break; case5: save();break; case6: exit(0); } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 汽车站 售票 系统