简单的汽车站售票系统(共17页)_第1页
简单的汽车站售票系统(共17页)_第2页
简单的汽车站售票系统(共17页)_第3页
简单的汽车站售票系统(共17页)_第4页
简单的汽车站售票系统(共17页)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、PAGE 沈 阳 航 院 设 计 用 纸沈 阳 航 空 工 业 学 院 课程设计学 号 _班 级 _ 姓 名 _指导(zhdo)教师 _尹航_ 年 月 日沈阳航空工业学院(xuyun)课程设计任务书电子信息工程学院 电子信息工程(gngchng)专业 84020103班 学号2008040201072一、课程设计题目(tm):简单的汽车站售票系统二、课程设计工作自2009年9月7日起至2009年9月11日止三、课程设计内容:用C语言编写程序完成以下任务:每天“沈阳植物园”有5个班次的汽车(假设),具体的数据如下:班次发车时间载客量已售票数106:40500209:30400313:004004

2、16:00400520:00500请你为售票员开发一个小程序,以完成每天的“沈阳植物园”的售票业务。要求如下:(1)售票: 应能够控制每人只允许买5张票,且不能购买已经发车的车票(取当前时间函数由老师提供)。(2)退票: 已经发车的车票不能退(取当前时间函数由老师提供)。(3)可以随时显示售票现状,并以文件(myfile.txt)形式保存当天各个车次的售票情况。四、课程设计要求:程序质量:贯彻结构化程序设计思想。用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。用户界面中的菜单至少应包括“运算选项”、“数据输入”、“保存结果”、“退出”4项。代码应适当缩进,并给出必要的注释,以增强程序

3、的可读性。课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:封面课程设计任务书目录需求分析(分析题目(tm)的要求)程序(chngx)流程图(总体流程图和主要功能模块流程图)核心技术的实现(shxin)说明及相应程序段个人总结参考资料源程序及适当的注释指导教师: 学生签名: 五、成绩:六、教师评语:沈 阳 航 院 设 计 用 纸PAGE 16目录(ml)需求(xqi)分析1二、程序(chngx)流程图1三、关键技术分析5四、个人总结6五、参考文献7六、源程序7一、需求(xqi)分析本程序的设计(shj)题目是:“简单(jindn)的汽车站售票系统”,该系统要求存储当

4、天各个车次售票情况,所以程序需要定义结构体变量存储售票情况,从整体上看,系统的全部过程都是为了通过记录当天各个车次的情况来了解售票情况。这就需要通过本程序中的主函数中的swich分支选择调用各子函数以实现该系统的各种功能。然后再根据题目要求来编写相应的子函数来执行系统的各种功能。在用户带的显示菜单上,我们还设计了一个退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。1、根据题目需求,我们需要定义五个主要函数,分别有:系统程序的输入函数,存储函数(save),读取函数(load),买票函数和退票函数,最后还附加有退出功能;2、结构化程序设计思想比较明确,使用户界面友

5、好,功能明确,操作方便,而且我们在用户界面中的菜单上设计了“买票、退票、显示当前售票情况、保存当天数据、退出”等功能,满足了题目要求。二、程序流程图 输入每个班次汽车的信息输出一个菜单 保存当天数据 退出售票系统退票买票查询显示当前售票情况 显示当天时间 图1 系统(xtng)总流程图是if(fp=fopen(myfile.txt,w+)=NULL 否文件无法读取for(i=0;iN;i+)输入数据 保存 关闭文件 图2 文件读取函数 图3 售票函数(hnsh) 显示当前的售票情况 输入要购买的班次b 输入要购买的票数n for(i=0;in;i+)if(strcmp(STi.banci,b)

6、= =0&n=5&已发车的不再售票)否 是STi.maipiao=STi.maipiao-1STi.yupiao=STi.yupiao+1 保存 显示当前的售票情况 输入要退的班次b 输入要退的票数n for(i=0;i=0)否 是STi.maipiao=STi.maipiao-nSTi.yupiao=STi.yupiao+n 保存 图4 退票(tu pio)函数三、关键技术分析(fnx)核心技术的实现(shxin)方法和程序段:本函数(hnsh)由六个自定义函数和一个主函数组成,其中 主函数是通过switch分支选择调用其他个子函数以实现该系统的各种功能。在这里,我们只分析输入函数、存储函数

7、、读取函数、买票函数、退票函数以及结束、退出中的一个程序较为核心的部分。具体分析如下:售票系统: 定义数组存储从获得的数字,为了能够多次输入,我们可以构造像for(i=0;iN;i+)来实现我们的要求;如果输入和班次相符,并且要把当地现在电脑显示的时间与实际发车时间进行比较,如果用户现在购买的班次还未发车,则可进行 if(strcmp(STi.banci,b)=0) 来继续获得不同的一组数字,直到买票成功。如果买票后,将会显示相关信息来提示买票成功。本函数结束,退出。void sell()int i,n;char b15;clrscr();load();int i;printf(nn*售票情况

8、*n);printf(班次 发车时间 载客量 已售票数 余票 n);for(i=0;i=6)printf(对不起,每人最多只能购买五张票n);for(i=0;iN;i+)if(strcmp(STi.banci,b)=0&n=5) /*如果输入和班次相符,进行下一步*/STi.maipiao=STi.maipiao+n;STi.yupiao=STi.yupiao-nprintf(*购买成功*);printf(nn*售票情况*n);printf(班次 发车时间 载客量 已售票数 余票 n);for(i=0;iN;i+)printf(%3s %10s %10s %8d %8dn,STi.banci,

9、STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf(*谢谢使用*n);/*/save();四、个人总结一个星期的C程序设计,说句实话,我真的好累!刚开始什么都不会,曾几次想放弃,但当我看到其他同学和我站在同一个“起跑线”上时,我又恢复了自信。还有在我们大家互相帮助的情况下,最后我终于完成了这次C程序设计课设,感觉真的好好啊!心中的一块重石终于落地了!一个星期的课程设计,时间虽短,但对我意义深长!C程序也算是对我们耐心的考验,只有不懈的追求,才能迎向胜利的曙光!加油!五、参考文献1、 谭浩强C程序设计(chn x sh j

10、)北京:清华大学出版社,20052 、刘成等C语言程序设计实验指导与习题集北京(bi jn):中国铁道出版社,2006六、源程序#include stdio.h#include stdlib.h#include string.h#include conio.h#include time.h#define N 5struct student char banci10; char facheshijian20; char zaikeliang20; int maipiao; int yupiao;STN=01,06:40,50,0,50, 02,09:30,40,0,40, 03,13:00,40

11、,0,40, 04,16:00,40,0,40, 05,20:00,50,0,50 ; void search(); void save();void sell();void localtimes();void tuipiao();int menu();int menu() int c; printf(*欢迎乘坐(chn zu)本次由沈阳开往植物园的客车*n); printf(1.保存当天(dngtin)数据.n); printf(2.显示当前(dngqin)时间.n); printf(3.查询显示当前售票情况.n);/*显示当前售票情况*/ printf(4.买票.n); printf(5.

12、退票.n); printf(6.退出售票系统.n); printf( *欢迎使用*); do printf(n 请选择(1-6)继续:); scanf(%d,&c); while(c6);return (c); void save() FILE *fp; int i; if(fp=fopen(myfile.txt,w+)=NULL) printf(文件(wnjin)无法读取!n); return; for(i=0;iN;i+) fwrite(&STi,sizeof(ST),1,fp); fclose(fp); printf(n); printf(|*存储(cn ch)成功!*|n); prin

13、tf( 请选择相应(xingyng)的数字进行下一步操作!n); void load()FILE*fp;int i;if(fp=fopen(myfile.txt,w+)=NULL) printf(cannot open infilen); return;for(i=0;iN;i+)if(fread(&STi,sizeof(ST ),1,fp)!=1) if(feof(fp)fclose(fp);return;printf(文件读取错误n); fclose(fp);void search() int i; / printf(请选择(xunz)班次n);printf(请输入您要查询(chxn)的班

14、次(格式如:03):n); scanf(%d,&i); i=i-1; printf(nn*查询(chxn)结果*n); printf(班次 发车时间 载客量 已售票数 余票 n); printf(%3s %10s %10s %8d %8dn,STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao); printf(*查询结束(谢谢使用v)*n);void localtimes()struct tm *p;time_t t;t=time(NULL);p=localtime(&t);printf(asctime(p);voi

15、d sell()int i,n;char b15;system(cls);/clrscr();load();int i;printf(nn*售票情况(qngkung)*n);printf(班次(bnc) 发车时间 载客量 已售票数 余票 n);for(i=0;i=6)printf(对不起,每人最多只能购买5张票n);for(i=0;iN;i+)if(strcmp(STi.banci,b)=0&n=5) /*如果输入和班次相符,进行下一步*/STi.maipiao=STi.maipiao+n;STi.yupiao=STi.yupiao-n;printf(*购买成功*);printf(nn*售票情

16、况*n);printf(班次 发车时间 载客量 已售票数 余票 n);for(i=0;iN;i+)printf(%3s %10s %10s %8d %8dn,STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf(*谢谢使用*n);/*/save();void tuipiao()int i,n;char b15;system(cls);/clrscr();load();printf(nn*当前情况*n);printf(班次(bnc) 发车时间 载客量 已售票数 余票 n);for(i=0;iN;i+)pr

17、intf(%3s %10s %10s %8d %8dn,STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf(*(谢谢(xi xie)使用v)*n);printf(温馨提示(tsh):已发车的不能退票!n);printf(请输入您要退的班次(格式如:02):n);scanf(%s,b);printf(请输入您要退的张数(格式如:3):n);scanf(%d,&n);for(i=0;i=0) /*如果未售票*/STi.maipiao=STi.maipiao-n;STi.yupiao=STi.yupiao+n;printf(退票成功!);printf(nn*退票结果*n);printf(班次 |发车时间 |载客量 |已售票数 |余票n);for(i=0;iN;i+)printf(%4s %10s %7s %8d %8dn,STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf(*退票结束(jish),谢谢使用*n);save();main() / textbackground(YELLOW

温馨提示

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

评论

0/150

提交评论