收藏 分销(赏)

学生管理系统 客车管理系统.doc

上传人:pc****0 文档编号:8144108 上传时间:2025-02-05 格式:DOC 页数:16 大小:29KB 下载积分:10 金币
下载 相关 举报
学生管理系统 客车管理系统.doc_第1页
第1页 / 共16页
学生管理系统 客车管理系统.doc_第2页
第2页 / 共16页


点击查看更多>>
资源描述
C程序设计 [题目编号] C02 [题目名称] 客车票务管理 [设计目的] 1、熟悉结构体数组定义、使用、输入、输出等基本操作 2、掌握文件的基本操作 [题目内容] 假设每天从A市开往B市的客车有若干个班次,数据格式如下: 班次 发车时间 载客量 已售票数 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 请按以下要求开发一个程序,完成每天的售票业务。 1.设计客车班次数据的存储格式。 2.实现键盘录入或从文件导入客车班次信息。 3.实现售票功能(某个班次已经过了开车时间,或已无剩票,则该班次今天不再售票)。 4.显示当前售票情况。 5.保存当天数据。 6.设计简单的菜单界面。 7.在报告中画出程序流程图,说明程序设计的算法,附完整程序代码。 8.在报告中说明程序设计过程中出现的问题、解决办法及编程小结或体会。 客车票务管理程序: #include<stdio.h> #include<stdlib.h> #include<string.h> struct ticket { char number[4]; char time[10]; int otal; int ver; }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}}; int N=5; void input()//输入售车票的信息 // { int i; char *p="ticket.txt"; FILE *fp; if ((fp=fopen("ticket.txt","w"))==NULL) { printf("cannot Open file\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(struct ticket),1,fp); fclose(fp); } void seek()//查寻售票的信息// { int i,flag; char s[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"); } void buy()//乘客售票// { int i,flag=0,n,b; char s[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"); } void display()//显示当前售票情况// { int i; printf("当前售票情况:\n"); printf("班次 发车时间 总票数 已售票\n"); for(i=0;i<N;i++) printf("%s\t%s\t%d\t%d\n",tic[i].number,tic[i].time,tic[i].total,tic[i].over); } void save()//保存修改// { int i,flag=0; FILE *fp; fp=fopen("ticket.txt","w"); for(i=0;i<N;i++) if(fwrite(&tic[i],sizeof(struct ticket),1,fp)!=1) printf("file write error!"); fclose(fp); printf("保存成功!"); } void main() { int select,k; while (k=1) { printf("\n******客车售票管理菜单******\n"); printf("******************************\n"); printf(" **1.显示车票信息** \n"); printf(" **2.查询车票信息** \n"); printf(" **3.乘客车票购买** \n"); printf(" **4.显示当前信息** \n"); printf(" **5.保存售票信息** \n"); printf(" **0.退出售票信息** \n"); printf("*******************************\n"); scanf("%d",&select); getchar(); switch(select) { case 1:input();break; case 2:seek();break; case 3:buy();break; case 4:display();break; case 5:save();break; case 0:return; default:printf("输入错误请重新输入!\n"); } } } 编程的问题和体会: 1. 没有熟练的掌握结构体定义和应用等,文件的输入和输出。文件的打开与保存,以及指针的应用。 2. 编程序太少,没有对大一点的程序进行练习,缺少经验。 3. 欠缺程序总体结构的思考。 4. 以后对程序多进行练习,和对结构体,指针,文件多看,多练习,掌握这方面的知识。 客车票务管理程序: #include<stdio.h> #include<stdlib.h> #include<string.h> struct ticket { char number[4]; char time[10]; int otal; int ver; }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}}; int N=5; void input()//输入售车票的信息 // { int i; char *p="ticket.txt"; FILE *fp; if ((fp=fopen("ticket.txt","w"))==NULL) { printf("cannot Open file\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(struct ticket),1,fp); fclose(fp); } void seek()//查寻售票的信息// { int i,flag; char s[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"); } void buy()//乘客售票// { int i,flag=0,n,b; char s[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"); } void display()//显示当前售票情况// { int i; printf("当前售票情况:\n"); printf("班次 发车时间 总票数 已售票\n"); for(i=0;i<N;i++) printf("%s\t%s\t%d\t%d\n",tic[i].number,tic[i].time,tic[i].total,tic[i].over); } void save()//保存修改// { int i,flag=0; FILE *fp; fp=fopen("ticket.txt","w"); for(i=0;i<N;i++) if(fwrite(&tic[i],sizeof(struct ticket),1,fp)!=1) printf("file write error!"); fclose(fp); printf("保存成功!"); } void main() { int select,k; while (k=1) { printf("\n******客车售票管理菜单******\n"); printf("******************************\n"); printf(" **1.显示车票信息** \n"); printf(" **2.查询车票信息** \n"); printf(" **3.乘客车票购买** \n"); printf(" **4.显示当前信息** \n"); printf(" **5.保存售票信息** \n"); printf(" **0.退出售票信息** \n"); printf("*******************************\n"); scanf("%d",&select); getchar(); switch(select) { case 1:input();break; case 2:seek();break; case 3:buy();break; case 4:display();break; case 5:save();break; case 0:return; default:printf("输入错误请重新输入!\n"); } } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 管理财经 > 管理学资料

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服