地铁站售票系统.docx
- 文档编号:13452948
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:23
- 大小:92.03KB
地铁站售票系统.docx
《地铁站售票系统.docx》由会员分享,可在线阅读,更多相关《地铁站售票系统.docx(23页珍藏版)》请在冰点文库上搜索。
地铁站售票系统
仲恺农业技术学院
课程设计
课程设计题目地铁站售票系统
姓名白崇亮
院(系)计算机科学与工程学院
专业班级计算机科学与技术052班
学号15号
指导教师李晟
职称讲师
设计日期2006年12月28日
仲恺农业技术学院教务处制
一、需求分析:
……………………………3
二、概要设计:
……………………………3~5
三、详细设计:
……………………………6~17
四、调试分析:
……………………………17~18
五、用户说明:
……………………………18
六、课程设计总结:
……………………………19~20
地铁站售票系统课程设计
一、需求分析:
该地铁站售票管理系统由三个模块构成:
分别是进入系统,完成系统相关的功能以及退出系统。
相关功能包含了查找到每个站需要的金额,输出你要到达的站应付的价钱,输入买票的数量,输入金额,输出找回余额等功能。
方便了乘客们购买车票,当你在相应的购票机上输进你需要到达的车站,再输入你需要购买车票的数量,该系统会提示你需要输进的金额,当你输进的钱过多会给你找回余额,当你输入的钱不够会提示你补回相应的金额。
最后该机器会给你车票上车。
欢迎再为你服务!
现在由于时间的限制,暂时只能实现这些功能。
以后我会一边学习一边完善这个系统。
希望我以后做出一个给现在车站所用的系统更完善,更使用。
这样让市民更加方便。
我现在有很多知识不会,希望老师和同学们多多指教,跟大家共同学习。
二、概要设计(数据结构设计,软件结构设计.流程图设计)
数据结构设计
该地铁站售票系统我运用了整形数据在内存中的存放形式以及运用switch语句来调用函数。
这种做法既简单又易明白以后希望同学们能够好好地把握它的用法。
在程序中我也运用了if语句,有了这个语句更容易实现这个程序
2、软件结构设计:
a、软件构架
b、模块之间的关系
“功能选择”这个框架分为下面六个模块,各模块之间的关系可用下表表示:
程序流程图
该程序的算法
#include""
#include""
voidchangshoulu();
voidchenjiaci(intc);
voidximenkou(intc);
voidgongyuanqian(intc);
voidnongjiangsuo(intc);
voidlieshilingyuan(intc);
voidyangji(intc);
voidtiyuxilu(intc);
voidtiyuzhongxin(intc);
voidguangzhoudongzhan(intc);
voidmain()
{intj;
printf("*********Hello,Welcometo地铁售票系统******\n");
printf("公元前欢迎你!
\n");
printf("===================================================\n");
printf("--------?
?
1.长寿路?
?
--------\n");
printf("--------?
?
2.公元前?
?
--------\n");
printf("--------?
?
3.农讲所?
?
--------\n");
printf("--------?
?
4.烈士陵园?
?
--------\n");
printf("--------?
?
5.杨箕?
?
--------\n");
printf("--------?
?
6.体育西路?
?
--------\n");
printf("--------?
?
7.体育中心?
?
--------\n");
printf("--------?
?
8.广州东站?
?
--------\n");
printf("9.退出\n");
printf("====================================================\n");
printf("选择你要到的站的编号以回车结束\n\n");
do{
scanf("%d",&j);
switch(j)
{case1:
/*调用该站的结构功能模块*/
gongyuanqian(j);break;
case2:
/*调用该站的结构功能模块*/
nongjiangsuo(j);break;
case3:
/*调用该站的结构功能模块*/
lieshilingyuan(j);break;
case4:
/*调用该站的结构功能模块*/
yangji(j);break;
case5:
/*调用该站的结构功能模块*/
tiyuxilu(j);break;
case6:
/*调用该站的结构功能模块*/
tiyuzhongxin(j);break;
case7:
/*调用该站的结构功能模块*/
guangzhoudongzhan(j);break;
case8:
break;
}}
while(j!
=0);/*结束*/
printf("谢谢\n");
}/*主函数结束*/
voidxilang()
{printf("长寿路\n");
printf("--------------------------------------------------------\n");
printf("Hello!
此站是你第一站,长寿路站\n");
printf("按需使用,请选择功能号码\n");
printf("谢谢合作\n");
}voidgongyuanqian(intc)
{inti=0,a=0,sum=4,m[200],total=0,bu=0,change=0,cheque=0,x=1,b=9;
sum=(b-x)/3+2;
printf("公元前站\n");
printf("--------------------------------------------------------\n");
printf("每张票应付的金额:
%d元\n",sum);printf("请输入你要购买的数量:
\n",c);
scanf("%d",&c);
total=sum*c;
printf("你应支付的金额:
%d\n",total);
printf("------------------------------------------------------\n");
printf("本机只收取的硬币,五元,十元及二十元的纸币,请按键输入金额\n");
printf("------------------------------------------------------\n");
printf("硬币一元请按1,五元请按5,十元请按10,二十元请按20,然后按2结束:
\n");
for(i=0;i<200;i++)
{scanf("%d",&m[i]);
if(!
(m[i]==1||m[i]==5||m[i]==0||m[i]==20||m[i]==2))
{printf("对不起:
不能接受这类型金额,请重新输入.\n");
continue;/*若条件不符合就跳出循环*/
}if(m[i]==2)break;/*退出语句*/
}for(a=0;a<200;a++)
{if(m[a]==1)/*为输入的金额*/
{cheque=cheque+1;/*应付的金额*/
continue;
}elseif(m[a]==5)/*为输入的金额*/
{cheque=cheque+5;/*应付的金额*/
continue;
}elseif(m[a]==0)/*为输入的金额*/
{cheque=cheque+10;/*应付的金额*/
continue;
}elseif(m[a]==20)/*为输入的金额*/
{cheque=cheque+20;/*应付的金额*/
continue;
}elseif(m[a]==2)break;/*退出界面*/
}if(cheque {do/*应用了循环*/ {printf("对不起! 你金额不足! 请补回: %d\n",bu=total-cheque);/*算出应退补价钱*/ scanf("%d",&bu); cheque+=bu; }while(cheque change=cheque-total;/*计算出跳出循环体之后的应找的价钱*/ }else change=cheque-total; if(change==0)/*判断如果不需要找钱就输出下面语句*/ printf("loading...请取票,欢迎再为服务\n"); else/*判断如果需要找钱就计算出该找的钱数*/ printf("loading......找回余额: %d\n",change); printf("请取票,欢迎再为你服务bye*^_^*bye\n"); }voidnongjiangsuo(intc)/*基本与以上的“公元前站”函数模块相同*/ {inti=0,a=0,sum=5,m[200],total=0,bu=0,change=0,cheque=0,x=1,b=10; sum=(b-x)/3+2; printf("农讲所站\n"); printf("--------------------------------------------------------\n"); printf("每张票应付金额: %d元\n",sum);printf("请输入你要购买的数量: \n",c); scanf("%d",&c); total=sum*c; printf("你应支付的金额是: %d\n",total); printf("------------------------------------------------------\n"); printf("本机只收取的硬币,五元,十元及二十元的纸币,请按键输入金额\n"); printf("------------------------------------------------------\n"); printf("硬币一元请按1,五元请按5,十元请按10,二十元请按20,然后按2结束: \n"); for(i=0;i<200;i++) {scanf("%d",&m[i]); if(! (m[i]==1||m[i]==5||m[i]==0||m[i]==20||m[i]==2)) {printf("对不起: 不能接受这类型金额,请重新输入.\n"); continue; }if(m[i]==2)break; }for(a=0;a<200;a++) {if(m[a]==1) {cheque=cheque+1; continue; }elseif(m[a]==5) {cheque=cheque+5; continue; }elseif(m[a]==0) {cheque=cheque+10; continue; }elseif(m[a]==20) {cheque=cheque+20; continue; }elseif(m[a]==2)break; }if(cheque {do {printf("对不起! 你的金额不足! 请补回: %d\n",bu=total-cheque); scanf("%d",&bu); cheque+=bu; }while(cheque change=cheque-total; }else change=cheque-total; if(change==0) printf("loading...请取票,欢迎再为服务\n"); else printf("loading.....找回余额: %d\n",change); printf("请取票,欢迎再为你服务\n"); }voidlieshilingyuan(intc) {inti=0,a=0,sum=5,m[200],total=0,bu=0,change=0,cheque=0,x=1,b=11; sum=(b-x)/3+2; printf("烈士陵园站\n"); printf("--------------------------------------------------------\n"); printf("每张票应付金额: %d元\n",sum);printf("请输入你要购买的数量: \n",c); scanf("%d",&c); total=sum*c; printf("你应支付的金额是: %d\n",total); printf("------------------------------------------------------\n"); printf("本机只收取的硬币,五元,十元及二十元的纸币,请按键输入金额\n"); printf("------------------------------------------------------\n"); printf("硬币一元请按1,五元请按5,十元请按10,二十元请按20,然后按2结束: \n"); for(i=0;i<200;i++) {scanf("%d",&m[i]); if(! (m[i]==1||m[i]==5||m[i]==0||m[i]==20||m[i]==2)) {printf("对不起: 不能接受这类型金额,请重新输入.\n"); continue; }if(m[i]==2)break; }for(a=0;a<200;a++) {if(m[a]==1) {cheque=cheque+1; continue; }elseif(m[a]==5) {cheque=cheque+5; continue; }elseif(m[a]==0) {cheque=cheque+10; continue; }elseif(m[a]==20) {cheque=cheque+20; continue; }elseif(m[a]==2)break; }if(cheque {do {printf("对不起! 你的金额不足! 请补回: %d\n",bu=total-cheque); scanf("%d",&bu); cheque+=bu; }while(cheque change=cheque-total; }else change=cheque-total; if(change==0) printf("loading...? ? è? ? ±,? ? ó-? ù? a? ? ·t? ? bye*^_^*bye\n"); else printf("loading...? ò? ? óà? ? : %d\n",change); printf("? ? è? ? ±,? ? ó-? ù? a? ? ·t? ? bye*^_^*bye\n"); } voidyangji(intc) {inti=0,a=0,sum=5,m[200],total=0,bu=0,change=0,cheque=0,x=1,b=12; sum=(b-x)/3+2; printf("杨箕\n"); printf("--------------------------------------------------------\n"); printf("每张票应付的金额: %d元\n",sum);printf("请输入你要购买的数量: \n",c); scanf("%d",&c); total=sum*c; printf("你应支付的金额: %d\n",total); printf("------------------------------------------------------\n"); printf("本机只收取的硬币,五元,十元及二十元的纸币,请按键输入金额\n"); printf("------------------------------------------------------\n"); printf("硬币一元请按1,五元请按5,十元请按10,二十元请按20,然后按2结束: \n"); for(i=0;i<200;i++) {scanf("%d",&m[i]); if(! (m[i]==1||m[i]==5||m[i]==0||m[i]==20||m[i]==2)) {printf("对不起: 不能接受这类型金额,请重新输入.\n"); continue; }if(m[i]==2)break; }for(a=0;a<200;a++) {if(m[a]==1) {cheque=cheque+1; continue; }elseif(m[a]==5) {cheque=cheque+5; continue; }elseif(m[a]==0) {cheque=cheque+10; continue; }elseif(m[a]==20) {cheque=cheque+20; continue; }elseif(m[a]==2)break; }if(cheque {do {printf("对不起! 你的金额不足! 请补回: %d\n",bu=total-cheque); scanf("%d",&bu); cheque+=bu; }while(cheque change=cheque-total; }else change=cheque-total; if(change==0) printf("loading...请取票,欢迎再为服务\n"); else printf("loading......找回余额: %d\n",change); printf("请取票,欢迎再为你服务bye*^_^*bye\n"); }voidtiyuxilu(intc) {inti=0,a=0,sum=6,m[200],total=0,bu=0,change=0,cheque=0,x=1,b=13; sum=(b-x)/3+2; printf("体育西路站\n"); printf("--------------------------------------------------------\n"); printf("每张票应付的金额: %d元\n",sum);printf("请输入你要购买的数量: \n",c); scanf("%d",&c); total=sum*c; printf("你应支付的金额: %d\n",total); printf("------------------------------------------------------\n"); printf("本机只收取的硬币,五元,十元及二十元的纸币,请按键输入金额\n"); printf("------------------------------------------------------\n"); printf("硬币一元请按1,五元请按5,十元请按10,二十元请按20,然后按2结束: \n"); for(i=0;i<200;i++) {scanf("%d",&m[i]); if(! (m[i]==1||m[i]==5||m[i]==0||m[i]==20||m[i]==2)) {printf("对不起: 不能接受这类型金额,请重新输入.\n"); continue; }if(m[i]==2)break; }for(a=0;a<200;a++) {if(m[a]==1) {cheque=cheque+1; continue; }elseif(m[a]==5) {cheque=cheque+5; continue; }elseif(m[a]==0) {cheque=cheque+10; continue; }elseif(m[a]==20) {cheque=cheque+20; continue; }elseif(m[a]==2)break; }if(cheque {do {printf("对不起! 你的金额不足! 请补回: %d\n",bu=total-cheque); scanf("%d",&bu); cheque+=bu; }while(cheque change=cheque-total; }else change=cheque-total; if(change==0) printf("loading...请取票,欢迎再为服务\n"); else printf("loading......找回余额: %d\n",change); printf("请取票,欢迎再为你服务bye*^_^*bye\n"); }voidtiyuzhongxin(intc) {inti=0,a=0,sum=6,m[200],total=0,bu=0,change=0,cheque=0,x=1,b=14; sum=(b-x)/3+2; printf("体育中心站\n"); printf("--------------------------------------------------------\n"); printf("每张票应付的金额: %d元\n",sum);printf("请输入你要购买的数量: \n",c); scanf("%d",&c); total=sum*c; printf("你应支付的金额: %d\n",total); printf("------------------------------------------------------\n"); printf("本机只收取的硬币,五元,十元及二十元的纸币,请按键输入金额\n"); printf("------------------------------------------------------\n"); printf("硬币一元请按1,五元请按5,十元请按10,二十元请按20,然后按2结束: \n"); for(i=0;i<200;i++) {scanf("%d",&m[i]); if(! (m[i]==1||m[i]==5||m[i]==0||m[i]==20||m[i]==2)) {printf("对不起: 不能接受这类型金额,请重新输入.\n"); continue; }if(m[i]==2)break; }for(a=0;a<200;a++) {if(m[a]==1) {cheque=cheque+1; continue; }elseif(m[a]==5) {cheque=cheque+5; continu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 地铁 售票 系统