火车票务管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

///////////////////////达内课后训练项目-火车票务管理系统/////////////////////////

// //

// 姓名: X X 学号:1005010124 // //

//

//(1)火车时刻信息录入:包括车次、日期、起点、终点、开车时间、到达时间、票价// // 数据存入数据文件hchsk.dat或hchsk.txt中。// // 每次打开软件自动读入文件中的信息// //(2)火车时刻信息查询。// //按照车次查询//

//按终点查询// //按起点查询// //按终点和日期查询// // (3)统计// // 按终点统计每日的车次数// // 按起点统计每日的车次数// //系统主界面应有以下功能选项// //录入火车时刻信息// // 浏览火车时刻信息// //查询火车时刻信息// // 删除火车时刻信息// //统计火车车次// //退出// /////////////////////////////////////////////////////////////////////////////////

#include

#include

#include

#include

#define N 30

void menu(); //函数菜单

void save(); //保存文件信息

void open(); //运行软件的时候自动打开以前录入的信息,并读入链表void display(); //浏览输入的消息记录

void SearchTrain(); //根据火车车次查询

void Search(); //选择查询方式

void Quit(); //退出系统

void Great_Ticket(); //信息整体录入

void GoMenu(); //返回主菜单

void search(int x); //按车次,启动,终点查询

void SearchEnd_Data(); //按终点和日期终点查询

void Statistics_Star(); //按起点统计车次数量

void Statistics_End(); //按终点统计车次数量

void Detele(); //删除火车时刻信息

struct Train_Ticket *Input( struct Train_Ticket *h ); //单个信息输入

struct Train_Ticket *Output( struct Train_Ticket *h ); //单个信息输出

struct Train_Ticket

{

char trains[N]; //车次

char data[N]; // 日期

char star[N]; //起点

char end[N]; // 终点

char star_time[N]; //开车时间

char end_time[N]; //到大时间

char prices[N]; //票价

struct Train_Ticket *next;

};

struct Train_Ticket *head; //链表头

//录入单个信息

struct Train_Ticket *Input( struct Train_Ticket *h )

{

printf("请输入:日期起点终点开车时间到达时间票价\n");

fflush( stdin );

scanf("%s %s %s %s %s %s",

h->data, h->star, h->end, h->star_time, h->end_time, h->prices);

return h;

}

//输出单个信息

struct Train_Ticket *Output( struct Train_Ticket *h )

{

printf("%s %s %s %s %s %s %s\n",

h->trains,h->data, h->star, h->end, h->star_time, h->end_time, h->prices);

return h;

}

//保存文件

void save()

{

FILE *fp;

struct Train_Ticket *p;

p = head;

fp = fopen("hchsk.txt","w+");

if( fp == NULL )

{

printf("打开文件失败!\n");

return ;

}

else

{

while ( p != NULL)

{

fprintf(fp," %s %s %s %s %s %s %s",

p->trains,p->data, p->star, p->end, p->star_time, p->end_time, p->prices);

p = p ->next;

}

// printf("成功保存文件!\n");

}

printf("\n");

fclose(fp);

}

//录入整个链表信息车次号不能相同否则录入信息失败

void Great_Ticket()

{

struct Train_Ticket *p1,*p2;

p1 = p2 = (struct Train_Ticket *)malloc(sizeof( struct Train_Ticket) );

printf("请输入车次(车次为'0'时结束输入):");

if(p2 == NULL)

{

free(p2);

printf(" 未分配内存成功!\n");

return ;

}

else

{

fflush( stdin );

scanf( "%s", &p2->trains );

p2 ->next = NULL;

}

while( p2->trains[0] != '0' ) //车次号不为结束标志‘0’

{

p2 = Input(p2);

if( head == NULL )

相关文档
最新文档