C语言课程设计汽车车票管理系统.docx
《C语言课程设计汽车车票管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计汽车车票管理系统.docx(25页珍藏版)》请在冰豆网上搜索。
![C语言课程设计汽车车票管理系统.docx](https://file1.bdocx.com/fileroot1/2022-10/26/fc5457c1-9914-4559-9488-dce892f0eac7/fc5457c1-9914-4559-9488-dce892f0eac71.gif)
C语言课程设计汽车车票管理系统
中国海洋大学
青岛学院
C语言课程设计报告书
题目
汽车车票管理系统
学生姓名
指导教师
学院
专业班级
组内分工
姓名
主要任务
占系统比例
主体框架、查询、票数变更
40%
信息的录入、浏览
30%
订票、退票
30%
1前言
课程设计题目:
汽车车票管理管理系统
1.2课程设计目的:
车票管理管理系统是车站对车票信息管理的工具。
系统能够实现车票信息的录入,浏览,查询,订票,退票等功能.
1.3功能概述:
车票管理系统主要分为管理员登录和普通用户登录两大部分。
其中管理员登录后,可以录入、浏览和查询车票信息。
普通用户登录后可进行查询、退票和订票等操作。
2需求分析
2.1车次的信息包括:
班次、发车时间、起点站、终点站、行车时间、额定人数、已定票人数、票价等。
2.2系统能够完成车票信息的录入、浏览、查询、订票、退票等功能。
(1)车次信息录入功能:
可进行车次信息的录入,并以文件保存。
(2)车次信息浏览功能:
浏览所有班次信息,并可显示出所有班次当前状态,若某车次发车时间已过,则显示“车已开出”。
(3)车次信息查询功能:
查询车次信息。
可按班次号查询,也可按终点站查询。
(4)车票订票功能:
只有当已订票人数小于额定载客量且该班次未到发车时间时才能完成订票。
(5)车票退票功能:
退票时,输入退票班次,若此班次未发出则可能完成退票。
(6)票数变更功能:
当用户订票或退票成功后,票数会自动发生相应的改变。
3模块设计图
4NS流程图清单
4.1录入(load())
system("cls");
printf("*****欢迎使用车票管理系统*****\n");
printf("当前时间:
");
system_time();//调用系统时间函数
FILE*fp;tickettrain;
T
(fp=fopen("record","a+"))==NULL
F
printf("File(record)openerror!
\n");
fscanf(fp,"%d",&record);
fclose(fp);
T
(fp=fopen("ticket","a+"))==NULL
F
printf("File(ticket)openerror!
\n");
fputs("\n",fp);
printf("请输入班次:
\n");
scanf("%d",&train.number);
fprintf(fp,"%d",train.number);
fputs("\t",fp);
printf("请输入发车时间:
\n");
scanf("%d:
%d",&train.ft.hour,&train.ft.minute);
fprintf(fp,"%02d:
%02d",train.ft.hour,train.ft.minute);
fputs("\t",fp);
printf("请输入起始站:
\n");
scanf("%s",&train.origin_station);
fputs(train.origin_station,fp);
exit
(0);
exit
(0);
fputs("\t",fp);
printf("请输入终点站:
\n");
scanf("%s",&train.last_station);
fputs(train.last_station,fp);
fputs("\t",fp);
printf("请输入持续时间:
\n");
scanf("%lf",&train.last_time);
fprintf(fp,"%.2lf",train.last_time);
fputs("\t",fp);
printf("请输入最大载客量:
\n");
scanf("%d",&train.max_number);
fprintf(fp,"%d",train.max_number);
fputs("\t",fp);
printf("请输入已售出票数:
\n");
scanf("%d",&train.sold_ticket);
fprintf(fp,"%d",train.sold_ticket);
fputs("\t",fp);
printf("请输入票价(远):
\n");
scanf("%d",&train.price)
fprintf(fp,"%d",train.price);
record++;
fclose(fp)
T
(fp=fopen("record","w+"))==NULL
F
printf("File(record)openerror!
\n");
fprintf(fp,"%d",record);
fclose(fp);
printf("*********录入成功,请继续选择***********\n");
printf("*1.继续录入*\n");
printf("*2.返回管理员菜单*\n");
printf("****************************************\n");
intn;
printf("请输入您想做的操作:
");
scanf("%d",&n);
exit(0);
casen,n=1,2
case1:
case2:
load();
break;
glymenu();
4.2浏览(show())
system("cls");
printf("*****欢迎使用车票管理系统*****\n");
printf("当前时间:
");
system_time();
FILE*fp;tickettrain;
T
(fp=fopen("ticket","r"))==NULL
F
printf("File(ticket)
open
error!
\n");
exit(0);
printf("\n班次发车时间起点终点行车时间(小时)额定载量已定票人数票价(元)状态\n");
当(!
feof(fp))为真
fscanf(fp,"%d\t%d:
%d",&train.number,&train.ft.hour,&train.ft.minute);
fscanf(fp,"%s%s",&train.origin_station,&train.last_station);
fscanf(fp,"%lf%d%d%d,&train.price);
printf("%d\t%02d:
%02d\t",train.number,train.ft.hour,train.ft.minute);
printf("%s\t%s\t",train.origin_station,train.last_station);
printf("%.2lf\t%d\t%d\t%d\t",trai,train.price);
T
(syshour>train.ft.hour)||
((syshour==train.ft.hour)&&
(sysminute>train.ft.minute))
F
printf("车已开出");
printf("\n");
printf("\n");
fclose(fp)
T
(fp=fopen("record","r"))==NULL
F
printf("File(record)openerror!
\n");exit(0);
fscanf(fp,"%d",&record);
fclose(fp);
printf("\n~~~~共有%d条车次信息~~~~~~\n",record);
system("pause");
glymenu()
4.3按班次查询(searsh1())
system("cls");
printf("*****欢迎使用车票管理系统*****\n");
printf("当前时间:
");
system_time();
intm;intflag=1;
FILE*fp;tickettrain;
printf("请您输入你要查询的班次:
");
scanf("%d",&m);
T
(fp=fopen("ticket","r"))==NULL
F
printf("Fileopenerror!
\n");
exit(0);
当(!
feof(fp))为真
fscanf(fp,"%d\t%d:
%d",&train.number,&train.ft.hour,&train.ft.minute);
fscanf(fp,"%s%s",&train.origin_station,&train.last_station);
fscanf(fp,"%lf%d%d%d,&train.price);
()&&(flag==1)
T
F
printf("\n班次发车时间起点终点行车时间(小时)额定载量已定票人数\t票价(元)状态\n");
continue;
printf("%d\t%02d:
%02d\t",train.number,train.ft.hour,train.ft.minute);
printf("%s\t%s\t",train.origin_station,train.last_station);
printf("%.2lf\t%d\t%d\t%d\told_ticket);
T
(syshour>train.ft.hour)||((syshour==train.ft.hour)&&(sysminute>train.ft.minute))
F
prinf("车已开出");
printf("\n");
printf("\n");
flag=0;
fclose(fp);
flag==1
T
F
printf("\n~~~~~!
!
!
没有此条车次记录!
!
!
~~~~~~\n");
printf("\n");
printf("**************查询完成,请继续选择***************\n");
printf("*1.继续按班次查询*\n");
printf("*2.按起点站和终点站查询*\n");
printf("*3.返回主菜单*\n");
printf("*************************************************\n");
intn;
printf("请输入您想做的操作:
");
scanf("%d",&n);
casen,n=1,2,3
case1:
case2:
case3:
searsh1();break;
searsh2();
break;
mainmenu();
4.4按起点站和终点站查询(searsh2())
system("cls");
printf("