1、A1 13:00 800 0A2 16:L1 20:00 500 0请你开发一个小程序,以完成每天的“沈阳大连”的售票业务。要求如下:能够售票和退票。某个车次已经过了开车时间,则该班次今天不再售票。可以随时显示售票现状,并以文件(myfile.txt)的形式保存当天各个车次的售票情况。三、课程设计要求程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便。 用户界面中的菜单至少应包括“售票”、“退票”、“显示当前售票情况”、“保存当天数据”、“退出”等项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书: 课程结束后,上交课程设计说明书和源程序。课程设计
2、说明书的内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、成绩六、教师评语一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别是存储函数(save)、卖票函数、退票函数、定售总金额、退出。1. 增强了程序的实用性,使系统用户界面友好、功能明确、操作方便,应采取直接用printf函数的方式在界面上输出可供用户选择的菜单。据此应该能够很好的完成要求2. 售票系统要求存储当天各个车次售票情况,所以程序需要定义结构体变量存储售票情况。系统的整体功能通过记录当天各个车次了解售票情况。编程时采取模块化设计思想,设计主
3、函数,通过主函数中的switch分支选择调用各子函数以实现该系统的各种功能。然后设计相应的子函数来执行系统的各种功能,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。二、程序流程图1 程序总体结构图输入k k=1? 真 假查询当前售票情况 k=2?售票 k=3? 退票 k=4?保存当前车次售票情况 k=0?退出图1 程序总体结构图2 函数功能图(1) 退票函数tuipiao图2.退票函数结构图(2)卖票函数sell图3.售票函数结构图三、主要界面截图图4.主界面截图图5.查询界面截图图6.售票界面截图图7.退票界面截图图8.保存界面截图图9.退出界面截
4、图四、关键技术分析核心技术的实现方法和程序段:本函数由六个自定义函数和一个主函数组成,其中 主函数以菜单形式调用其他函数来实现要求的所有功能。主函数分别调用保存函数(save)、读取函数、卖票函数、退票函数、订票总金额、退出。程序中较为核心的部分,具体分析如下:1 保存函数通过使用fopen函数和fprintf函数进行文件的打开与数据的输入。void save() /向文件里存 FILE *fp; int i; if(fp=fopen(d:myfile.txt,w+)=NULL) printf(cannot open this filen); return; for(i=0;iSIZE;i+)
5、 fprintf(fp, %2s %5s %3s %3d %3dn,stui.banci,stui.time,stui.chengzailiang,stui.shoupiao,stui.yupiao); fclose(fp); printf(n*数据保存成功!*n请输入相应的数字继续操作n2 查询函数通过比较函数strcmp进行班次的选择,在通过for函数与printf函数来实现结果的输出。void checheng() /查询售票情况 char a50;请输入所需查询的班次n scanf(%s,a); if(strcmp(stui.banci,a)=NULL) printf(n* 查询售票结
6、果 *n班次 发车时间 载客量 已售票数 余票 n%2s %5st %3s%3dtt%3dn3 售票系统: 定义数组存储从获得的数字,为了能够多次输入,我们可以构造像for(i=0;i+)来实现我们的要求;对于班次的选择可通过 if(strcmp(stui.banci,a)=NULL) 来实现,在通过运算stui.shoupiao=stui.shoupiao+n与 stui.yupiao=stui.yupiao-n 实现购票,如果买票后,将会显示相关信息来提示买票成功。本函数结束,退出。void sell() /售票 fprintf() fscanf() int i,n; int i; pri
7、ntf(n*沈阳-大连 火车售票系统*n班次 发车时间 载客量 已售票数 余票n for(i=0; printf(请输入您要购买的班次n请输入您要购买的票数n%d,&n); if(strcmp(stui.banci,a)=NULL) stui.shoupiao=stui.shoupiao+n; stui.yupiao=stui.yupiao-n;*购票成功*n printf( save();4 退票系统退票功能的实现与购票功能的原理相同。5.读取文件通过fopen函数和指针的运用来实现文件的读取。void read() int i=0; 文件打开失败! return ; else!feof(f
8、p); fread(&stui,sizeof(struct stud),1,fp); 五、个人总结这是我大学以来第一次的课设,通过这次课设,更加锻炼了我的能力,也使我对C语言有了更加深刻的理解。在这五天中,拿着课题的我,不断思考着,要通过怎样的方法去实现它的功能。通过不断的查阅资料,使我更加开阔了我的眼界,在编译过程中,问题不断的出现,每一个细节问题,都将成为成功的绊脚石,每一次的修改过后新的问题又不断的出现,通过这次课设使我了解了细节决定成败,C语言的编译过程中需要大量的细心和耐心。希望在以后的生活中,对待每一件事情,都像在做课设过程中那样要有细心和耐心。六、参考文献 谭浩强C程序设计北京:
9、清华大学出版社,2005七、源程序#include /声明需要的库文件 string.htime.hstdlib.hconio.h#define SIZE 5 /符号常量。void checheng(); /这里对所有定义的函数进行申明 void save();void sell();void tuipiao();void topic();void menu();void read();struct stud /这里定义结构体类型和变量,用于存放信息 char banci30; char time30; char chengzailiang30; int shoupiao; int yupia
10、o;stuSIZE= D106:40500,0,500,D209:30600,0,600,A113:00800,0,800,A216:L120:,0,500;void main() int k; topic(); getchar(); while(1) menu(); scanf(k); switch(k) case 1: checheng(); break; case 2: sell(); case 3: tuipiao(); case 4: save(); case 0:void topic()*n* * *n* * * *n* * HUOCHEZHANSHOUPIAOXITONG * *n* * HUANYINGJIRU * *n All rights are pro. by WQ.,2013.8.27 nvoid menu() * n 1 查询当前售票情况n 2 购票n 3 退票 n 4 保存数据n 0 退出n 选择05继续 void tuipiao()/退票请输入您要退的班次n请输入您要退的票数n stui.shoupiao=stui.shoupiao-n; stui.yupiao=stui.yupiao+n;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1