预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

C程序设计[题目编号]C02[题目名称]客车票务管理[设计目的]1、熟悉结构体数组定义、使用、输入、输出等基本操作2、掌握文件的基本操作[题目内容]假设每天从A市开往B市的客车有若干个班次,数据格式如下:班次发车时间载客量已售票数16:5050029:00400311:20400413:30300516:40400请按以下要求开发一个程序,完成每天的售票业务。1.设计客车班次数据的存储格式。2.实现键盘录入或从文件导入客车班次信息。3.实现售票功能(某个班次已经过了开车时间,或已无剩票,则该班次今天不再售票)。4.显示当前售票情况。5.保存当天数据。6.设计简单的菜单界面。7.在报告中画出程序流程图,说明程序设计的算法,附完整程序代码。8.在报告中说明程序设计过程中出现的问题、解决办法及编程小结或体会。客车票务管理程序:#include<stdio.h>#include<stdlib.h>#include<string.h>structticket{charnumber[4];chartime[10];intotal;intver;}tic[]={{"1","6:50",50,0},{"2","9:00",40,0},{"3","11:20",40,0},{"4","13:30",30,0},{"5","16:40",40,0}};intN=5;voidinput()//输入售车票的信息//{inti;char*p="ticket.txt";FILE*fp;if((fp=fopen("ticket.txt","w"))==NULL){printf("cannotOpenfile\n");exit(0);}printf("从A到B班次时间总票数已售票数:\n");for(i=0;i<N;i++){getchar();printf("%s\t%s\t%d\t%d",tic[i].number,tic[i].time,tic[i].total,tic[i].over);printf("\n");}for(i=0;i<N;i++)fread(&tic[i],sizeof(structticket),1,fp);fclose(fp);}voidseek()//查寻售票的信息//{inti,flag;chars[4];printf("请输入查询的班次:\n");scanf("%s",s);for(i=0;i<N;i++)if(strcmp(tic[i].number,s)==0){flag=1;printf("该班次的信息:\n");printf("班次发车时间总票数已售票\n");printf("%s\t%s\t%d\t%d",tic[i].number,tic[i].time,tic[i].total,tic[i].over);}if(flag==0)printf("无此班次!\n");}voidbuy()//乘客售票//{inti,flag=0,n,b;chars[4];printf("请输入所购的班次:\n");scanf("%s",&s);for(i=0;i<N;i++)if(strcmp(tic[i].number,s)==0){flag=1;b=tic[i].total-tic[i].over;printf("剩余票数:\n");printf("%d\n",b);if(b==0){printf("请重新选择!\n");break;}printf("请选择购买的票数:\n");scanf("%d",&n);if(n>b){printf("选择票数超出,请重新输入!");break;}else{printf("购买成功!祝您旅途愉快!\n\n");printf("***以下是您所买票的信息***\n\n");printf("班次%d发车时间%s购买票数%d",b,tic[i].time,n);}tic[i].over+=n;break;}if(flag==0)printf("无此班次!请重新选择:\n");}voiddisplay()//显示当前售票情况//{inti;printf("当前售票情况:\n");printf("班次发车时间总票数已售票\n");for(i=0;i<N;i++)printf("%s\t%s