已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
仲恺农业技术学院 课 程 设 计 课程设计题目 地铁站售票系统 姓 名 白崇亮 院 (系) 计算机科学与工程学院 专业班级 计算机科学与技术 052 班 学 号 1 5 号 指导教师 李晟 职 称 讲师 设计日期 2006 年 12月 28日 仲恺农业技术学院教务处制 一、 需求分析: 3 二、 概要设计: 35 三、 详细设计: 617 四、 调试分析: 1718 五、 用户说明: 18 六、课程设计总结: 1920 地铁站售票系统课程设计 一、需求分析: 该地铁站售票管理系统由三个模块构成:分别是进入系统,完成系统相关 的功能以及退出系统。相关功能包含了查找到每个站需要的金额,输出你要到 达的站应付的价钱,输入买票的数量,输入金额,输出找回余额等功能。方便 了乘客们购买车票,当你在相应的购票机上输进你需要到达的车站,再输入你 需要购买车票的数量,该系统会提示你需要输进的金额,当你输进的钱过多会 给你找回余额,当你输入的钱不够会提示你补回相应的金额。最后该机器会给 你车票上车。欢迎再为你服务! 现在由于时间的限制,暂时只能实现这些功能。以后我会一边学习一边完 善这个系统。希望我以后做出一个给现在车站所用的系统更完善,更使用。这 样让市民更加方便。 我现在有很多知识不会,希望老师和同学们多多指教,跟大家共同学习。 二、概要设计(数据结构设计,软件结构设计.流程图设计) 数据结构设计 该地铁站售票系统我运用了整形数据在内存中的存放形式以及运用 switch 语句来调用函数。这种做法既简单又易明白以后希望同学们能够好好地把握它 的用法。在程序中我也运用了 if 语句,有了这个语句更容易实现这个程序 2、软件结构设计: a、软件构架 函数 进入系统 选择功能 退出系统 输 入 要 到 达 的 站 输 出 车 票 的 单 价 输 入 买 票 的 数 量 输 出 买 票 的 总 价 钱 输 入 付 钱 总 金 额 输 出 找 回 余 额 b、模块之间的关系 “功能选择”这个框架分为下面六个模块,各模块之间的关系可用下表表示: 输出买票的总价钱 输入要到达的车站 输出找回余额 输入付钱总金额 输出车票的单价 输入买票的数量 程序流程图 开始 Sum=(b-x)/3+2 输出每张票应付的金额 输入你要购票的数量 Total=sum*c 输入 cheque=cheque+mi chequetoal cheque=toal 欢迎为你服务 结束 该程序的算法 #include“stdio.h“ #include“stdlib.h“ void changshoulu( ); void chenjiaci(int c ); void ximenkou(int c ); void gongyuanqian(int c ); void nongjiangsuo(int c ); void lieshilingyuan(int c ); void yangji( int c); void tiyuxilu(int c ); void tiyuzhongxin(int c ); void guangzhoudongzhan(int c ); void main( ) int j; printf(“* Hello,Welcome to 地铁售票系统 *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(“选择你要到的站的编号以回车结束 nn“); do scanf(“%d“, switch(j) case 1: /*调用该站的结构功能模块*/ gongyuanqian(j ); break; case 2: /*调用该站的结构功能模块 */ nongjiangsuo( j); break; case 3: /*调用该站的结构功能模块 */ lieshilingyuan(j );break; case 4: /*调用该站的结构功能模块 */ yangji(j );break; case 5: /*调用该站的结构功能模块 */ tiyuxilu(j );break; case 6: /*调用该站的结构功能模块 */ tiyuzhongxin(j );break; case 7: /*调用该站的结构功能模块 */ guangzhoudongzhan(j );break; case 8: break; while(j!=0); /*结束*/ printf(“谢谢n“); /*主函数结束*/ void xilang( ) printf(“ 长寿路 n“); printf(“-n“); printf(“Hello!此站是你第一站,长寿路站n“); printf(“按需使用,请选择功能号码n“); printf(“谢谢合作n“); void gongyuanqian(int c) int i=0,a=0,sum=4,m200,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“, total=sum*c; printf(“你应支付的金额:%dn“,total); printf(“-n“); printf(“本机只收取的硬币,五元,十元及二十元的纸币,请按键输入金额n“); printf(“-n“); printf(“硬币一元请按 1,五元请按 5,十元请按 10,二十元请按 20,然后按 2 结束:n“); for(i=0;i200;i+) scanf(“%d“, if(!(mi=1|mi=5|mi=0|mi=20|mi=2) printf(“对不起 :不能接受这类型金额,请重新输入.n“); continue;/*若条件不符合就跳出循环*/ if(mi=2)break;/*退出语句*/ for(a=0;a200;a+) if(ma=1)/*为输入的金额*/ cheque=cheque+1;/*应付的金额*/ continue; else if(ma=5)/*为输入的金额 */ cheque=cheque+5;/*应付的金额*/ continue; else if(ma=0)/*为输入的金额 */ cheque=cheque+10;/*应付的金额*/ continue; else if(ma=20)/*为输入的金额 */ cheque=cheque+20;/*应付的金额*/ continue; else if(ma=2)break;/*退出界面*/ if(chequetotal)/*判断是否已经付足了钱 */ do /*应用了循环*/ printf(“对不起 !你金额不足!请补回:%dn“,bu=total-cheque);/*算出应退补价钱*/ scanf(“%d“, cheque+=bu; while(chequetotal);/*若条件满足则再返回循环体*/ change=cheque-total;/*计算出跳出循环体之后的应找的价钱*/ else change=cheque-total; if(change=0)/*判断如果不需要找钱就输出下面语句 */ printf(“loading.请取票,欢迎再为服务 n“); else /*判断如果需要找钱就计算出该找的钱数*/ printf(“loading找回余额 :%dn“,change); printf(“请取票,欢迎再为你服务 bye*_*byen“); void nongjiangsuo(int c)/*基本与以上的“公元前站”函数模块相同*/ int i=0,a=0,sum=5,m200,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“, total=sum*c; printf(“你应支付的金额是:%dn“,total); printf(“-n“); printf(“本机只收取的硬币,五元,十元及二十元的纸币,请按键输入金额n“); printf(“-n“); printf(“硬币一元请按 1,五元请按 5,十元请按 10,二十元请按 20,然后按 2 结束:n“); for(i=0;i200;i+) scanf(“%d“, if(!(mi=1|mi=5|mi=0|mi=20|mi=2) printf(“对不起 :不能接受这类型金额,请重新输入.n“); continue; if(mi=2)break; for(a=0;a200;a+) if(ma=1) cheque=cheque+1; continue; else if(ma=5) cheque=cheque+5; continue; else if(ma=0) cheque=cheque+10; continue; else if(ma=20) cheque=cheque+20; continue; else if(ma=2)break; if(chequetotal) do printf(“对不起 !你的金额不足!请补回:%dn“,bu=total-cheque); scanf(“%d“, cheque+=bu; while(chequetotal); change=cheque-total; else change=cheque-total; if(change=0) printf(“loading.请取票,欢迎再为服务 n“); else printf(“loading.找回余额 :%dn“,change); printf(“请取票,欢迎再为你服务n“); void lieshilingyuan(int c) int i=0,a=0,sum=5,m200,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“, total=sum*c; printf(“你应支付的金额是:%dn“,total); printf(“-n“); printf(“本机只收取的硬币,五元,十元及二十元的纸币,请按键输入金额n“); printf(“-n“); printf(“硬币一元请按 1,五元请按 5,十元请按 10,二十元请按 20,然后按 2 结束:n“); for(i=0;i200;i+) scanf(“%d“, if(!(mi=1|mi=5|mi=0|mi=20|mi=2) printf(“对不起 :不能接受这类型金额,请重新输入.n“); continue; if(mi=2)break; for(a=0;a200;a+) if(ma=1) cheque=cheque+1; continue; else if(ma=5) cheque=cheque+5; continue; else if(ma=0) cheque=cheque+10; continue; else if(ma=20) cheque=cheque+20; continue; else if(ma=2)break; if(chequetotal) do printf(“对不起 !你的金额不足!请补回:%dn“,bu=total-cheque); scanf(“%d“, cheque+=bu; while(chequetotal); change=cheque-total; else change=cheque-total; if(change=0) printf(“loading.?,?-?a?t?bye*_*byen“); else printf(“loading.?:%dn“,change); printf(“?,?-?a?t?bye*_*byen“); void yangji(int c) int i=0,a=0,sum=5,m200,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“, total=sum*c; printf(“你应支付的金额:%dn“,total); printf(“-n“); printf(“本机只收取的硬币,五元,十元及二十元的纸币,请按键输入金额n“); printf(“-n“); printf(“硬币一元请按 1,五元请按 5,十元请按 10,二十元请按 20,然后按 2 结束:n“); for(i=0;i200;i+) scanf(“%d“, if(!(mi=1|mi=5|mi=0|mi=20|mi=2) printf(“对不起 :不能接受这类型金额,请重新输入.n“); continue; if(mi=2)break; for(a=0;a200;a+) if(ma=1) cheque=cheque+1; continue; else if(ma=5) cheque=cheque+5; continue; else if(ma=0) cheque=cheque+10; continue; else if(ma=20) cheque=cheque+20; continue; else if(ma=2)break; if(chequetotal) do printf(“对不起 !你的金额不足!请补回:%dn“,bu=total-cheque); scanf(“%d“, cheque+=bu; while(chequetotal); change=cheque-total; else change=cheque-total; if(change=0) printf(“loading.请取票,欢迎再为服务 n“); else printf(“loading找回余额 :%dn“,change); printf(“请取票,欢迎再为你服务 bye*_*byen“); void tiyuxilu(int c) int i=0,a=0,sum=6,m200,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“, total=sum*c; printf(“你应支付的金额:%dn“,total); printf(“-n“); printf(“本机只收取的硬币,五元,十元及二十元的纸币,请按键输入金额n“); printf(“-n“); printf(“硬币一元请按 1,五元请按 5,十元请按 10,二十元请按 20,然后按 2 结束:n“); for(i=0;i200;i+) scanf(“%d“, if(!(mi=1|mi=5|mi=0|mi=20|mi=2) printf(“对不起 :不能接受这类型金额,请重新输入.n“); continue; if(mi=2)break; for(a=0;a200;a+) if(ma=1) cheque=cheque+1; continue; else if(ma=5) cheque=cheque+5; continue; else if(ma=0) cheque=cheque+10; continue; else if(ma=20) cheque=cheque+20; continue; else if(ma=2)break; if(chequetotal) do printf(“对不起 !你的金额不足!请补回:%dn“,bu=total-cheque); scanf(“%d“, cheque+=bu; while(chequetotal); change=cheque-total; else change=cheque-total; if(change=0) printf(“loading.请取票,欢迎再为服务 n“); else printf(“loading找回余额 :%dn“,change); printf(“请取票,欢迎再为你服务 bye*_*byen“); void tiyuzhongxin(int c) int i=0,a=0,sum=6,m200,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“, total=sum*c; printf(“你应支付的金额:%dn“,total); printf(“-n“); printf(“本机只收取的硬币,五元,十元及二十元的纸币,请按键输入金额n“); printf(“-n“); printf(“硬币一元请按 1,五元请按 5,十元请按 10,二十元请按 20,然后按 2 结束:n“); for(i=0;i200;i+) scanf(“%d“, if(!(mi=1|mi=5|mi=0|mi=20|mi=2) printf(“对不起 :不能接受这类型金额,请重新输入.n“); continue; if(mi=2)break; for(a=0;a200;a+) if(ma=1) cheque=cheque+1; continue; else if(ma=5) cheque=cheque+5; continue; else if(ma=0) cheque=cheque+10; continue; else if(ma=20) cheque=cheque+20; continue; else if(ma=2)break; if(chequetotal) do printf(“对不起 !你的金额不足!请补回:%dn“,bu=total-cheque); scanf(“%d“, cheque+=bu; while(chequetotal); change=cheque-total; else change=cheque-total; if(change=0) printf(“loading.请取票,欢迎再为服务 n“); else printf(“loading找回余额 :%dn“,change); printf(“请取票,欢迎再为你服务 bye*_*byen“); void guangzhoudongzhan(int c) int i=0,a=0,sum=6,m200,total=0,bu=0,change=0,cheque=0,x=1,b=15; sum=(b-x)/3+2; printf(“ 广州东站 n“); printf(“-n“); printf(“每张票应付的金额:%d 元n“,sum);printf(“请输入你要购买的数量:n“,c); scanf(“%d“, total=sum*c; printf(“你应支付的金额:%dn“,total); printf(“-n“); printf(“本机只收取的硬币,五元,十元及二十元的纸币,请按键输入金额n“); printf(“-n“); printf(“硬币一元请按 1,五元请按 5,十元请按 10,二十元请按 20,然后按 2 结束:n“); for(i=0;i200;i+) scanf(“%d“, if(!(mi=1|mi=5|mi=0|mi=20|mi=2) printf(“对不起 :不能接受这类型金额,请重新输入.n“); continue; if(mi=2)break; for(a=0;a200;a+) if(ma=1) cheque=cheque+1; continue; else if(ma=5) cheque=cheque+5; continue; else if(ma=0) cheque=cheque+10; continue; else if(ma=20) cheque=cheque+20; continue; else if(ma=2)break; if(chequetotal) do printf(“对不起 !你的金额不足!请补回:%dn“,bu=total-cheque); scanf(“%d“, cheque+=bu; while(chequetotal); change=cheque-total; else change=cheque-total; if(change=0) printf(“loading.请取票,欢迎再为服务 n“); else printf(“loading找回余额 :%dn“,change); printf(“请取票,欢迎再为你服务 bye*_*byen“); 四,调式分析: 1 显示功能结果 五用户说明: 1运行平台:Microsoft Visual C+。 2操作说明:正确调试后进入系统选择各个功能逐步操作可以得到对应的答 案。 3系统问题:由于该系统功能还不够完善,多多指教。谢谢合作! 六课程设计总结: 我的题目是地铁站售票系统,对于我们这些新手来说,这是很大的考验,我一 千次一万次的问自己,怎么才能找到课堂所学与实际应用的最佳结合点?怎么 才能让自己的程序在篇幅上简单,在使用价值上丰富?怎样让自己的业余更*近 专业?怎样让自己的计划更具有序性,而不会忙无一用?机会
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 走出迷雾发言稿
- 团员志愿服务发言稿
- 时间管理甘特图课件
- 中班我会排序课件
- 二零二五年度高速铁路变形缝安装工程合同
- 二零二五年度虚拟现实技术应用股权变更及出资合同
- 二零二五年度交通事故第三方调解赔偿协议
- 2025版玻璃幕墙维修保养劳务分包合同模板
- 二零二五年度电梯土建施工第三方检测合同
- 二零二五年度楼顶场地租赁合同范本规范版
- 模具产品保密合同协议
- 完整的离婚协议书打印电子版(2025年版)
- 自然科学类博物馆AI应用行业跨境出海战略研究报告
- 《小学科学课程标准》解读与教学设计
- 2025届高考新型题目“纠正错别字”新题模拟练习
- 2024年江苏省南京市中考数学试卷真题(含答案逐题解析)
- 儿童保健工作规范和技术规范
- 2025年区块链应用操作员职业技能竞赛理论参考试指导题库500题(含答案)
- 2025年中国移动初级解决方案经理学习考试题库大全-上(单选题)
- DB35T 1951-2020福建省公共机构能耗定额标准
- 医疗机构从业人员规范
评论
0/150
提交评论