版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、沈阳航空工业学院课程设计学 号 200504061274班级5406108姓名胡乃杰指导教师尹航2007年 7 月 17 日个人收集整理 勿做商业用途沈阳航空工业学院课程设计任务书机械与汽车学院 机械设计制造及其自动化专业 5406108 班 学号 200504061274一、课程设计题目:简单的汽车站售票系统二、课程设计工作自 2007 年 7 月 9 日起至 2007 年 7 月 17 日止三、课程设计内容 :用 C 语言编写软件完成以下任务 :每天“沈阳T植物园”有5个班次的汽车(假设),具体的数据如下:班次发车时间载客量已售票数106: 40500209: 30400313: 0040
2、0416:00400520:00500请你为售票员开发一个小程序,以完成每天的“沈阳T植物园”的售票业务 .要求: 能够售票和退票 . 某个班次已经过了开车时间 , 则该班次今天不再售票。 可以随时显示售票现状,并以文件( myfile.txt )形式保存当天各个车次的售 票情况。四、课程设计要求:程序质量: 贯彻结构化程序设计思想。 用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。 用户界面中的菜单至少应包括“售票” 、“退票”、“显示当前售票情况” 、“保 存当天数据”、“退出” 5项。代码应适当缩进,并给出必要的注释,以增强程序的可读性 . 课程设计说明书 :课程结束后,上交课
3、程设计说明书(打印稿和电子稿 ),其内容如下: 封面课程设计任务书目录需求分析(分析题目的要求)程序流程图(总体流程图和主要功能模块流程图) 核心技术的实现说明及相应程序段个人总结参考资料 源程序及适当的注释指导教师 : 学生签名: 目录一、需求分析 1二、程序流程图 2三、核心技术的实现说明及相应程序段 5四、个人总结 9五、参考文献 10六、源程序 11、需求分析根据对程序设计题目的分析可知,整个程序的设计实现 大致可分为五大模块。其中每一个模块对应一个函数, 他们的功能分别是:查询当前时间(localtimes),查询当前 的售票情况(search)买票(sell),退票(return)
4、和保存数据(save)。在这几个函数中,除第一个外其他都按照题目 要求编写。1、查询当前时间 主要用于查询时间,以防止汽车已 经发出还继续进行售票。2、 查询当前售票情况主要用于查询当前的卖票情况。3、 买票对顾客出售各车次车票。4、 退票对顾客需要返退的车票进行处理.5、 保存数据对当前的车票出售情况进行保存,生成 myfile.txt文件,以便查询。除此之外,程序还设立了退出功能,可以在程序的一次运 行当中循环执行所有的功能,并根据需要终止程序的执 行。并且每一次售票或退票都会提示是否成功,并且将文件自动保存到myfile。txt中,以便查询二、程序流程图1、程序总体结构图当P直、一一的保
5、存退岀总体结构图2、查询车次函数search结构图图2查询车次函数search结构图3、售票函数sell结构图循环变量i=0当iK时输出QC订i卄输入车次b,票数皿循环变量i二0当i<K时二和 b 相等真7丿以QCB1. sell=QCi. sell+a西回QCi.leave=0Ci, leave-u循环变量i=O当iK时输出 QCi i+运ffsaveO程序图3售票函数sell结构图4、退票函数return结构图循坏变fti=O当iCK时输HiQCfil i卄输入车次b,票数III循环变量当i<K时二 NO和b相等A饭冋QC1L 3B11=Qc订.xhIIa返回4L 1Y L
6、171;bre=qt til. lc»c*a循环娈量丄二0当i 时输出 QC11 i+运fiaavcO程序图4退票函数return结构图5、保存文件函数save结构图f写方式扌J#myfile. tit真jx循环畫量i二o退出当i<K时将QCi号入文件i十十关闭文件图5保存文件函数save图三、核心技术的实现说明及相应程序段本程序主要由五个自定义函数和一个主函数组成,其中 主函数以菜单的形式调用其他函数来实现要求的所有功 能在这些函数当中,查询当前售票情况函数、售票函数、 退票函数和保存当天售票记录函数是程序中较为核心的 部分,下面分别进行说明。1、查询当前售票情况函数(sea
7、rch)查询当前时间是通过一个循环命令,使结构体内的容依 次输出,这样就可以看到当天全部的售票情况.具体程序 如下:void search()/*查询当前的车次及售票数*/ int i ;printf("nn* * * * *Search Result * * * * * n”);printf(" NO. Time Total Sell Leave n");for(i=0;i<K ; i+)/*无限循环*/prin tf("% 4s %10s %10s %8d %8dn", QCi 。NO,QCi .time , QCi。total ,
8、QCi .sell , QCi。leave); printf (” n”);2、售票函数(sell )售票函数是先用循环语句输出当前的售票情况,然后依次输入需要购买的车号b以及要购买的票数 m然后将结构体中的车号QC i.NO与b进行比较,成功后原售票数数组QCi。sell+m,原剩余票数数组QCileave m依次输出结构体中的内容,最后运行保存程序(save)。具体程序如下:void sell()/*售票 */int i,m ;char b15;printf( ” nn* * * * * * Sell Result * * * * * n );printf (” NO。Time Total
9、 Sell Leave n");for(i=0 ; i<K ; i+)/*无限循环*/QC i .NO,QC i o leave );printf("% 4s % 10s %10s % 8d %8dn".QC i .time , QCi。total , QC i .sellprintf("Please enter the carNO。you want to buy ! (ForExample: 02): n”);scanf (” s” ,b);/*输入的值给b* /printf( ” Please enter the ticketNO. you w
10、ant to buy! (For Example: 5): n");scanf( ” %d , & m);/*输入的值给m*/for(i=0 ; i<K;i+ )if (strcmp(QCi 。NQ b)=0)/ *对 QCi。NC和 b进行比较*/QC i .sell=QCi .sell+m;QCi 。leave=QC i。leave-m;printf ("* * * * Purchase Success! * * * n” );printf("nn* * * * * * * Sell Result * * * * * * *n );printf
11、(n”);for (i=0;i K;i+)printf( ” 4s %n”,QC i .NO, QCi .time , QCi。total , QCi .sell,QC i .leave); save ();3、退票函数(leave)退票函数是先用循环语句输出当前的售票情况,然后 依次输入需要购买的车号b以及要购买的票数 m然后 将结构体中的车号Qqi .NO与b进行比较,如果售票 数大于m则原售票数数组QCi。sell m,原剩余票数 数组QCi。leave+m,依次输出结构体中的内容,最 后运行保存程序(save)。具体程序如下:void leave( )/*退票*/int i , m;c
12、har b 15;printf("nn * * * * * Present Situation* * * * n”);printf (” NO。 Time Total Sell Leaven );for (i=0 ; i<K ; i+ )printf ("%4s %10s %n”,QCi 。NO QCi。time , QCi。total,QCi.sell , QCi.leave ); printf ("Please enter the carNO. you want to return! ( For Example: 02):n");scanf (
13、" % s ” ,b) ;/*输入的值给b*/。you want to return!输入的值给mprintf ( "Please en ter the ticketNO(For Example:3) : n");scanf(”% d",&m);/* /for(i=0;i<K;i+)if(strcmp (QCi。NO,b)=0)/ *对 QCi.NO 和 b进行比较* /if(QC i.sell m>=0)/*判断能否退1票*/QC i。sell=QCi.sell m;QCi o leave=QC i.leave+m ;printf
14、(" * *Return Success! * * * * * n” );printf ("nn * * * Return Result * * * * * * n”);printf (” NO。 Time Total Sell Leaven );for(i=0 ; i K; i+)printf (" % 4s %10s %10s %8d % 8dn", QCi .NO,QCi otime , QCi.total,QCi 。sell,QCi.leave );save ()4、保存函数(leave )打开名字是myfile.txt 的文件,使用文件方式为读
15、写, 用循环语句将结构体中的内容依次写入文件,完成对售票情况的保存。具体程序如下:void save ()/*对当前售票情况进行保存*/FILE衣fp;/*打开文件衣/int i ;if(fp=fopen ("myfile。txt ”,"w+")=NULL)prin tf("*衣 * 衣 Can n ot open in file! * * * 衣 n");exit(0);for(i=0;i<K;i+)fwrite(&QCi,sizeof(structrecord) , 1,fp) ; /*写入文件*/fclose(fp);/*关
16、闭文件*/printf(” n”);printf("* * Save Success ! * * * *n );四、个人总结这次课程设计基本上含盖了大学一年纪学习到的 C 语言知识点,课设题目要求不仅要求对课本知识有较深 刻的了解,同时要求程序设计者有较强的思维和动手能 力这次课设使我了解我编程思想和编程技巧,也认识了 软件生命周期的各个环境,包括构思、设计、编写、调 试、文档化和修订。编程的风格也很重要,只关心程序 运行的结果,而对程序代码的结构的良好丝毫不在意。 这是非常不可取的,如果我希望将来从事编程工作,在这 一点上该引起足够的重视。这是严谨的态度,很重要 .做课设不仅让我修
17、补了以前学习的漏洞, 也让我知 道一个道理:编程需要兴趣和实际动手.创新思维也至关 重要,这不仅让我们写出精简的代码,也有助于开发出 高效的程序。这次程序的设计基本完成了题目的要求, 只有一项 是关于如何在时间到达后不能继续售票问题没有解决, 我于是想到查询当前时间来解决。最后我要感谢帮助过我的同学和老师, 让我能够在 有限的时间内完成题目。五、参考文献1谭浩强.C程序设计.北京:清华大学出版社,2005 2刘成等.C语言程序设计实验指导与习题集.北京: 中国铁道出版社,2006六、源程序#include stdio。h>#in elude vstdlib.h#inelude <s
18、tring。h>#inelude vconio 。h>#inelude time。h>#defi ne K 5K*/struct record*/char NO 10;char time20; char total20;int sell;in t leave; QC& = /赋值* /*起用宏定义变量/*定义结构体类型变量*用QC K表示* / /*给数组QCK"01",” 06: 40" , "50" , 0, 50,"02” ,"09 : 30”,"40" , 0, 40,&
19、quot;03",” 13: 00","40 ”,0, 40,” 04",” 16: 00" , "40” ,0 , 40, "05 ”,” 20:00 ”,"50 ”,0, 50,;void search ();void save ();void sell ();void localtimes() ;void leave ();int menu();int menu()/*定义菜单*/int c ;printf (" 1 。 Time。n”)printf(" 2。Serch。n");
20、printf(” 3。 Sell 。 n");printf(” 4。 Return。 n” );printf (” 5.Save。 n"); printf (" 6 。 Exit 。n”); do printf (" Please choose (1-6) to begin !:");scanf (" % d”,&c) ;/*把输入的值赋给c*/if(c<11 |c6)printf(”n* *Erro!* * *while(c1 11 c6);return(c)Jmain ()for (;,)n);switch(me n
21、u()case 1: localtimes () ; break;case 2:search (); break;case 3: sell () ;break;case 4:leave() ; break;case 5: save() ; break ;case 6: exit (0)/*显示当前时间void localtimes ()time_t rawtime ; struct tm * timeinfo; time (& rawtime);time in fo=localtime(& rawtime);printf (” The current date/time is:
22、 %sn”,asctime(timeinfo);void search ()/*查询当前的车次及售票数*/ int i ;printf (” nn* * * * * *Search Result * * * * *n");printf( ” NO。n”);for (i=0 ; i K;i+ )printf (" %4s %10s %10s %8d % n”,QC i 。NO QCi .time , QCi .total , QCi 。sell,QCi.leave ); printf(" n");void sell()/*售票 */int i , m;ch
23、ar b 15;printf ("nn * * * * * Sell Result * * * * *n );printf(" NO 。n”);for (i=0 ; i<K;i+)printf (” %4s%10s % 10s % 8d % n”, QCi 。 NO,QQi .time,QCi 。total,QC i 。sell , Qi .leave );printf("Please enter the carNO。you want to buy! ( Forn );scanf (" % s" , b) ;/*输入的值给b*/print
24、f("Please enter the ticketNO. you want to buy! ( ForExample: 5) :n");scanf("%d",& m);/*输入的值给m*/for (i=0 ; i K; i+ )if (strcmp(QC i .NO,b) =0)/* 对 QCi.NO 和 b 进行比较* /QCi .sell=QC i.sell+m ;QCi .leave=QC i eave-m;printf("* * * * * Purchase Success!*n”);printf(nn * * * * * S
25、ell Result* * * * * * *n )Jprintf(n )for(i=0;i<K;i+ )printf(% 4s %10s %10s % 8d %n”,QCi.NO,QCi .time,QCi .total , QCi .sell , QCi。 leave);save ();void leave( )/*退票*/int i , mchar b 15;printf( ” nn * * * * * Present Situation * * * * * 门”);printf (" NO。 Time Total Sell Leaven );for (i=0 ; i K; i+ )printf (” %4s %10s %10s% 8d %8dn" , QCi 。NO QCi.time,QCi .total,QCi.sell , QCi.leave);(For*输入的值printf("Please enter the carNO. you want to return! Example:02): n");sca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年天津职业技术师范大学单招职业倾向性测试题库及参考答案详解一套
- 2026年常德科技职业技术学院单招职业技能考试题库含答案详解
- 2026年甘肃省定西地区单招职业倾向性考试题库及参考答案详解1套
- 2026年安徽国防科技职业学院单招职业倾向性考试题库含答案详解
- 2026年湖北省黄冈市单招职业适应性测试题库及参考答案详解1套
- 2026年河南水利与环境职业学院单招职业适应性测试题库及答案详解一套
- 美容顾问岗位面试题及服务技巧含答案
- 中国铁路郑州局集团有限公司2026大专(高职)毕业生招聘工作声明笔试重点题库及答案解析
- 2026年湖北省黄石市单招职业适应性考试题库附答案详解
- 2026年曲阜远东职业技术学院单招职业倾向性测试题库及参考答案详解1套
- 2025年高考物理复习讲义第三章专题四 应用牛顿运动定律解决传送带和板块模型(含解析)
- 视屏号认证授权书
- 建材行业销售代表工作报告
- DG-TJ 08-2048-2024 民用建筑电气防火设计标准
- 肠内肠外营养临床指南
- 预包装食品食品安全管理制度
- 《马克思主义政治经济学》教案
- 一例脊髓损伤患者个案护理汇报
- 思想道德与法治智慧树知到期末考试答案章节答案2024年山东农业大学
- 村卫生室业务指导计划
- 神经递质乙酰胆碱的发现
评论
0/150
提交评论