火车站售票系统-C语言课程设计_第1页
火车站售票系统-C语言课程设计_第2页
火车站售票系统-C语言课程设计_第3页
火车站售票系统-C语言课程设计_第4页
火车站售票系统-C语言课程设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、沈 阳 航 空 航 天 大学 课程设计学 号 1班 级 04110201姓 名 王帅指导教师 郭建新2012年 6 月 21 日沈阳航空航天大学课程设计任务书系:材料科学与工程 专业:材料成型及控制工程 班级:04110201学号:1题目:火车站售票系统一、课程设计时间20112012第2学期第16周,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:每天“沈阳大连”有5次的火车(假设),具体的数据如下:班次 发车时间 载客量 已售票数D1 06:40 500 0D2 09:30 600 0A1 13:00 800 0A2 16:00 800 0L1 20:00 500 0请你

2、开发一个小程序,以完成每天的:“沈阳大连”的售票业务。要求如下:能够售票和退票。某个火车已经过了开车时间,则该班次不再售票。可以随时显示售票现状,并以文件(myfile.test)的形式保存当天各个车次的售票情况。三、课程设计要求程序质量:² 贯彻结构化的程序设计思想。² 用户界面友好,功能明确,操作方便。² 用户界面中的菜单至少应包括、“售票”、“退票”、“显示当前售票情况”、“保存当天数据”、“退出”等项。² 代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:² 课程结束后,上交课程设计说明书和源程序。课程设计说明书的内

3、容参见提供的模板。²四、指导教师和学生签字指导教师:_ 学生签名:_五、成绩六、教师评语目 录一、需求分析4二、程序流程图.4三、关键技术分析7四、个人总结10五、参考文献11六、源程序11一、需求分析(1)售票系统要求存储当天各个车次售票情况,所以程序需要定义结构体变量存储售票情况。系统的整体功能通过记录当天各个车次了解售票情况。编程时采取模块化设计思想,设计主函数,通过主函数中的switch分支选择调用各子函数以实现该系统的各种功能。然后设计相应的子函数来执行系统的各种功能,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。1、 经过对程序

4、设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别是存储函数(save)、卖票函数、退票函数、定售总金额、退出。2、 增强了程序的实用性,使系统用户界面友好、功能明确、操作方便,应采取直接用printf函数的方式在界面上输出可供用户选择的菜单。据此应该能够很好的完成要求二、程序流程图1 程序总体结构图输入c C=1? 真 假查询当前售票情况 C=2?真 假定票 C=3?真 假 退票 C=4?真 假保存当前车次售票情况 C=5?真 假退出 图1 程序总体结构图2 函数功能图(1) 退票函数tuipiao(2) 保存信息的函数save(3)卖票函数s

5、ell 三、主要界面截图四、关键技术分析核心技术的实现方法和程序段:本函数由六个自定义函数和一个主函数组成,其中 主函数以菜单形式调用其他函数来实现要求的所有功能。主函数分别调用保存函数(save)、读取函数、卖票函数、退票函数、订票总金额、退出。程序中较为核心的部分,具体分析如下:1 保存函数void save() /*存储函数*/ FILE *fp; int i; if(fp=fopen("myfile.txt","w+")=NULL) printf("cannot open infilen"); exit(0); for(i=0

6、;i<N;i+) fwrite(&STi,sizeof(ST),1,fp); fclose(fp); printf("n"); printf("|*存储成功!*|n"); printf(" 请选择相应的数字进行下一步操作!n"); 2 查询函数void search() /*查询函数*/ int i,j;printf("请输入要查询的班次n");scanf("%s",&j);for(i=0;i<N;i+)if(int(STi.banci)=j)printf("

7、;n*-查询售票结果-*n");printf("班次 发车时间 载客量 已售票数 余票 n");printf("%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);save();3 售票系统: 定义数组存储从获得的数字,为了能够多次输入,我们可以构造像for(i=0;i<N;i+)来实现我们的要求;如果输入和班次相符可进行 if(strcmp(STi.banci,b)=0) 来继续获得不同的一组数字,直到买票成功

8、,如果买票后,将会显示相关信息来提示买票成功。本函数结束,退出。void sell() /*售票*/int i,c;char a50;int i;printf("nn*-沈阳大连 火车售票系统-*n");printf("班次 发车时间 载客量 已售票数 余票 n");for(i=0;i<N;i+)printf("%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf("请输入您要购买

9、的班次(格式如:D1):n"); scanf("%s",a);printf("请输入您要购买的票数(格式如:10):n");scanf("%d",&c);for(i=0;i<N;i+)if(strcmp(STi.banci,a)=0) /*判断班次是否符合*/ STi.maipiao=STi.maipiao+c;STi.yupiao=STi.yupiao-c;printf("*-购买成功-*:n");printf("*欢迎使用*:n");printf("nn*-

10、沈阳大连 火车售票系统-*n");printf("班次 发车时间 载客量 已售票数 余票 n");for(i=0;i<N;i+)printf("%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);save();4 退票系统void tuipiao() /*退票*/int i,c;char a50;printf("nn*-沈阳大连 火车售票系统-*n");printf("班次 发车时间

11、 载客量 已售票数 余票 n");for(i=0;i<N;i+)printf("%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf("请输入您要退的班次(格式如:D1):n");scanf("%s",a);printf("请输入您要退的张数(格式如:100):n");scanf("%d",&c);for(i=0;i<N;i+)

12、if(strcmp(STi.banci,a)=0) if(STi.maipiao-c>=0) STi.maipiao=STi.maipiao-c;STi.yupiao=STi.yupiao+c;printf("退票成功!");printf("*欢迎使用*:n");printf("nn*-退票结果-*n");printf("班次 |发车时间 |载客量 |已售票数 |余票n");for(i=0;i<N;i+)printf("%4s %10s %7s %8d %8dn",STi.banci

13、,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);save();五、个人总结在这五天的C程序课程设计中,我深刻的体会到细心的重要性。C程序设计是一个繁琐,需要投入很多的心思和精力的活。有时它会因为一个标点符号,让所有的心血白费。所以写程序时真得要仔仔细细的。因而我们需要的不仅仅是平日知识的积累,可以说这门课程还是有难度的,所以以后还要加强对这方面知识的学习,掌握好这门课程对我以后的专业也有很大的好处。只有养成良好的习惯,才能保证我们的路可以越走越远!六、参考文献 谭浩强C程序设计北京:清华大学出版社,2005七、源程序#inclu

14、de <stdio.h>#include <time.h>#include <string.h>#include <conio.h>#include <stdlib.h>#define N 5struct train /*定义结构体*/ char banci50; char facheshijian50; char zaikeliang50; int maipiao; int yupiao; STN= "D1","06:40","500",0,500, "D2&qu

15、ot;,"09:30","600",0,600, "A1","13:00","800",0,800, "A2","16:00","800",0,800, "L1","20:00","500",0,500 ;/*声明各函数*/void search(); void save();void sell();void tuipiao();int menu();int menu() /*

16、定义菜单*/ int k; printf("1.查询显示当前售票情况.n"); printf("2.买票.n"); printf("3.退票.n"); printf("4.储存数据.n"); printf("5.退出售票系统.n"); do printf("n 请选择(1-5)继续:"); scanf("%d",&k); while(k<1|k>5);return (k);void search() /*查询函数*/ int i,j;p

17、rintf("请输入要查询的班次n");scanf("%s",&j);for(i=0;i<N;i+)if(int(STi.banci)=j)printf("n*-查询售票结果-*n");printf("班次 发车时间 载客量 已售票数 余票 n");printf("%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);save();void sell() /

18、*售票*/int i,c;char a50;int i;printf("nn*-沈阳大连 火车售票系统-*n");printf("班次 发车时间 载客量 已售票数 余票 n");for(i=0;i<N;i+)printf("%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf("请输入您要购买的班次(格式如:D1):n"); scanf("%s",a)

19、;printf("请输入您要购买的票数(格式如:10):n");scanf("%d",&c);for(i=0;i<N;i+)if(strcmp(STi.banci,a)=0) /*判断班次是否符合*/ STi.maipiao=STi.maipiao+c;STi.yupiao=STi.yupiao-c;printf("*-购买成功-*:n");printf("*欢迎使用*:n");printf("nn*-沈阳大连 火车售票系统-*n");printf("班次 发车时间 载客

20、量 已售票数 余票 n");for(i=0;i<N;i+)printf("%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);save();void tuipiao() /*退票*/int i,c;char a50;printf("nn*-沈阳大连 火车售票系统-*n");printf("班次 发车时间 载客量 已售票数 余票 n");for(i=0;i<N;i+)printf(&quo

21、t;%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf("请输入您要退的班次(格式如:D1):n");scanf("%s",a);printf("请输入您要退的张数(格式如:100):n");scanf("%d",&c);for(i=0;i<N;i+)if(strcmp(STi.banci,a)=0) if(STi.maipiao-c>=0) STi.maipiao=STi.maipiao-c;STi.yupiao=STi.yupiao+c;printf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论