火车票务管理系统
、课题内容和要求
设计目标:设计一个火车票务管理系统,用C语言实现。对该系统的要求如下:
需求描述:
系统功能
火车时刻信息录入。包括车次、日期、起点、终点、开车时间、到达时间、票价
数据存入数据文件hchsk.dat或hchsk.txt 中。
火车时刻信息查询。
按照车次查询
按终点查询
按起点查询
按终点和日期查询
统计
按终点统计每日的车次数
按起点统计每日的车次数
系统主界面应有以下功能选项
录入火车时刻信息
查询火车时刻信息
统计火车车次
退出
注:建议用VC环境开发用户界面。
结果形式:
提交程序设计报告和可演示的系统软件
二、需求分析
系统主界面应有以下功能选项
?录入火车时刻信息
?查询火车时刻信息
统计火车车次
退出
火车时刻信息录入。包括车次、日期、起点、终点、开车时间、到达时间、票价
数据存入数据文件hchsk.dat或hchsk.txt 中。
火车时刻信息查询。
按照车次查询
按终点查询
按起点查询
按终点和日期查询
⑶ 统计
按终点统计每日的车次数
按起点统计每日的车次数
概要设计
void SearchTrai nNu m();〃按照车次查询
void SearchToPlace();〃按终点查询
void SearchFromPlace();〃按起点查询
void SearchToPlaceA ndDate();〃按终点和日期查询
void Cou ntToPlace();〃按终点统计每日的车次数
void Cou ntFromPlace();〃按起点统计每日的车次数
三、详细设计
程序的源代码与注释
#i nclude
#i ncludevstri ng.h>
#i nclude
void SearchTrai nNum();
void SearchToPlace();
void SearchFromPlace();
void SearchToPlaceA ndDate();
void Cou ntToPlace();
void Coun tFromPlace();
void Star();
struct TRAIN
{
char trai nNu m[10];
char date[30];
char fromPlace[20];
char toPlace[20];
char in Time[30];
char outTime[30];
double price;
};
struct TRAIN trai n[30];
int mai n()
{
int request;
char ch='Y';
int i=0;
double myprice;
FILE *fp;
repeat:
Star();
i++;
i++;
printf("
火车管理系统界面\n");
prin tf("1.
录入火车时刻信息.\n");
prin tf("2.
查询火车时刻信息.\n");
prin tf("3.
统计火车车次.\n");
prin tf("4.
退出.\n");
Star();
prin tf("\n");
printf("
请输入:");
scan f("%d",&request);
switch(request)// 利用 case 分支结构
{
case 1:
{fp=fopen(".\\train.rec","wb");// 利用文件与流
if(!fp)
{
prin tf("File can not be ope ned\n");
exit(1);
}
do
{
printf("Enter车次日期 起点 终点开车时间到达时间
票价 \n>>> ");
scan f("%s%s%s%s%s%s%lf",trai n[ i].trai nNu m,trai n[ i].date,trai n[i].fromPlace
,train[i].toPlace,train[i].inTime,train[i].outTime,&myprice);
trai n[i].price=myprice;
fwrite(&trai n[i],sizeof(struct TRAIN),1,fp);
prin tf("co ntin ue(Y/N)(N to en d)?"); getchar();
sca nf("%c",&ch);
}while(ch!='N');
fclose(fp);
printf("返回主界面吗?(Y返回门;
getchar();
scan f("%c",&ch);
if(ch=='Y')
{
prin tf("\n\n");
goto repeat;
}
}break;
case 2:
{ prin tf("