免费预览已结束,剩余3页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
二一二一一 学年第 二 学期信息科学与工程学院课程设计报告书课程名称: 班 级: 学 号: 姓 名: 指导教师: 二一 年 九 月C语言课程设计 题目:汽车售票系统任务:自学C语言中相关知识,设计出汽车售票系统。要求如下所述:每天“火车站植物园”有5个班次的汽车(假设),具体的数据格式如下:班次 发车时间 载客量 已售票数1 06:40 50 02 09:30 40 03 12:00 40 04 14:30 40 05 16:00 50 0为售票员开发一个小程序,以完成每天的“火车站植物园”的售票业务。要求如下:1. 能够售票和退票。以文件(myfile.txt)的形式保存当天各个车次的售退票情况。 u 售票功能当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。u 退票功能退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。2. 查询显示功能。可以随时显示当前售票现状(如:班次 发车时间 载客量 已售票数 余票等信息)。3. 用户界面中的菜单至少应包括“售票”、“退票”、“显示当前售票情况”、“保存当天数据”、“退出”5项。可适当增加其他附加功能。主程序流程图:int bus5=0,0,0,0,0;int a;read(bus);a=menu();while(a5|acapacitya-1-*(bus+a-1)printf(你定票的张数超过剩余张数n);else*(bus+a-1)+=b;printf(订票成功n);退票程序流程图:int a,b;check(bus);printf(请选择要取消订票的车次n);scanf(%d,&a);if(a5|a*(bus+a-1)printf(你退票的张数已超过订票的张数n);else*(bus+a-1)-=b;printf(退票成功n);系统功能模块图:主菜单订票退票查看保存退出程序概述:主函数菜单包括订票,退票,查看,保存的菜单.由相应函数调用可以实现相关功能模块.订票退票功能基本是一样的,需要分别输出购票车次及张数.查看功能只是把数据输出界面.退出功能是调用系统退出函数来终止程序的运行.函数程序首先要读入文件myfile.txt,获取已订票数的数据,如果没有文件,则会提示打不开文件.英雌运行程序之前请在C盘建立一个TXT文件,名为:myfile.txt.里面的内容不做任何修改,让其保留空白.默认购票数全部为0.主要源程序代码:#include#includeint menu()/*主菜单*/ int a; printf(*n); printf(*1、订票 *n); printf(*2、退票 *n); printf(*3、显示订票情况 *n); printf(*4、保存当天数据 *n); printf(*5、退出(请先保存) *n); printf(*n); printf(*请选择操作*n); scanf(%d,&a); return a;void esc()exit (0);void check(int*bus)/*查看车次售票情况的程序*/ printf(车次 发车时间 载客量 已售票n); printf(1、 06:40 50 %dn,*bus); printf(2、 09:30 40 %dn,*(bus+1); printf(3、 13:00 40 %dn,*(bus+2); printf(4、 16:00 40 %dn,*(bus+3); printf(5、 20:50 50 %dn,*(bus+4);void order(int*bus)/*订票功能程序*/ int a,b; int capacity5=50,40,40,40,50; check(bus); printf(请选择要订的车次n); scanf(%d,&a);if(a5|acapacitya-1-*(bus+a-1) printf(你定票的张数超过剩余张数n); else *(bus+a-1)+=b; printf(订票成功n); void cancel(int*bus)/*退票功能程序*/ int a,b; check(bus); printf(请选择要取消订票的车次n); scanf(%d,&a);if(a5|a*(bus+a-1)printf(你退票的张数已超过订票的张数n); else *(bus+a-1)-=b; printf(退票成功n); void write(int*bus)/*写入已存数据的程序*/ FILE *fp; if(fp=fopen(C:myfile.txt,wb)=0) printf(打不开文件n); exit(0); fwrite(bus,1,1,fp); printf(保存成功n); fclose(fp);void read(int*bus)/*读入已存数据的程序*/ int i; FILE *fp; if(fp=fopen(C:myfile.txt,rb)=0) printf(打不开文件n); exit(0); for(i=0;i5;i+) if(!feof(fp)/*测试fp所指向的文件当前状态是否文件结束*/ fread(bus+i,1,1,fp); fclose(fp);void main()/*主函数*/ int bus5=0,0,0,0,0; int a; read(bus); a=menu();/*显示主菜单*/ while(a6) switch(a) case 1:order(bus);break; case 2:cancel(bus);break; case 3:check(bus);break; case 4:write(bus);break; case 5:esc();break; default:printf(你选择了错误的序号n);break; a=menu(); write(bus);调试分析过程:对于购票子程序中,原来没有对购 退票的张数与所剩张数做比较,加了相应代码,可以实现相应的错误提醒,然后返回主菜单,重新开始.对于退出函数,是查相应资料,通过调用系统退出函数来实现退出程序.存在问题及思考:在购 退票输入要选择的车次的时候,如果输入错误的车次,则会提示”你选择了错误的序号”.但是不会返回上级菜单或主菜单.这个问题还没有解决.尝试过用return函数使其返回,但是反而会引起其他的错误,暂不知如何修改.课程设计小结:C语言是所有现在流行的编程语言的基础.学好C语言,有助于其他的语言的理解及学习.C程序中,核心是算法,只有先写出算法,然后对细节慢慢修改,写程序也应该有个相应的分块,不能就从头开始往下写,而应该先分成相应子块,写出主程序把
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年决策支持分析师招聘面试参考题库及答案
- 2025年生物科技研发专员招聘面试题库及参考答案
- 2025年前台行政专员招聘面试参考题库及答案
- 2025年线上营销专员招聘面试参考题库及答案
- 武威消防教育题库及答案
- 渤海银行笔试题库及答案
- 教师招聘教材题库及答案
- 玉林消防考试题库及答案
- 民航地理自考题库及答案
- 2025年青少年辅导员招聘面试参考题库及答案
- 甘肃开放大学2025年《地域文化(本)》形成性考核1-3终考答案
- 中国五矿秋招面试题及答案
- 2025年(完整)汉字听写大会竞赛试题库(附答案)
- 水电系统安装施工方案
- 荒山承包合同补充协议
- 建筑装饰工程项目总结及经验分享
- 2025年医学检验副高职称答辩题库及答案
- 2025“才聚齐鲁成就未来”山东文旅云智能科技有限公司招聘2人笔试历年典型考点题库附带答案详解3套试卷
- 2025-2030民办中小学师资队伍建设研究及管理优化与发展策略报告
- 村干部考公务员试题及答案
- 教育学原理 第二版 课件 马工程 第1-5章 教育及其本质-第5章 人的全面发展教育
评论
0/150
提交评论