火车票务管理系统_列车票务管理系统

2020-02-27 其他范文 下载本文

火车票务管理系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“列车票务管理系统”。

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

// //

姓名: 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 %sn”,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)

{

head = p2;

}

else

{

p1 = head;

while(p1->next!= NULL)

{

if(!strcmp(p1->trains,p2->trains))

//判断车次是否存在{

printf(“该车次已存在,输入信息失败!nn”);

return;

}

p1 = p1->next;

}

p1->next = p2;

}

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

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

if(p2!= NULL)

{

fflush(stdin);

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

p2->next = NULL;

} } save();//输入完成后 自动保存输入的信息到文件件

return;}

//打开文件信息 void open(){ FILE *fp;if((fp = fopen(“hchsk.txt”,“r”))== NULL){

printf(“文件无任何消息记录!n”);

return;} struct Train_Ticket *p1,*p2;p1 = p2 =(struct Train_Ticket *)malloc(sizeof(struct Train_Ticket));head = p1;while(!feof(fp))

//文件不到结束时,将文件内容写到链表中 {

fscanf(fp,“%s %s %s %s %s %s %s”,&p2->trains,&p2->data, &p2->star, &p2->end, &p2->star_time, &p2->end_time, &p2->prices);

p1->next = p2;

p1 = p2;

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

p1->next = NULL;} fclose(fp);return;}

//浏览

void display(){ char ch;struct Train_Ticket *p1;p1 = head;if(p1 == NULL){

printf(“无任何记录!n”);

return;}

printf(“车次

日期

起点

终点

开车时间 while(p1!= NULL){

Output(p1);

if(p1->next!= NULL)

p1 = p1->next;

else

{

printf(”n“);

printf(”返回主菜单?(y/n): “);

fflush(stdin);

scanf(”%c“, &ch);

if(ch == 'y' || ch == 'Y')

{

system(”cls“);

GoMenu();

}

else

return;

到达时间票价n”);

} } }

//删除火车时刻信息 void Delete(){ char c[30];char ch;printf(“请输入要删除的火车车次:”);scanf(“%s”, c);struct Train_Ticket *p1,*p2;p1 =(struct Train_Ticket *)malloc(sizeof(struct Train_Ticket));p1 = head;if(p1 == NULL){

printf(“无任何记录!n”);

return;} p2 = p1->next;

if(!strcmp(p1-> trains, c))

//如果删除的信息是在表头

{

printf(“您要删除的信息如下:n”);

printf(“车次

日期

起点

终点

开车时间

到达时间

票价n”);

Output(p1);

printf(“确定删除吗?(y/n): ”);

fflush(stdin);

scanf(“%c”, &ch);

if(ch == 'y' || ch == 'Y')

{

head = p2;

printf(“成功删除该信息!nn”);

save();

//删除完成后,自动保存信息

free(p1);

//释放p1

return;

}

else

return;

}

else

//要删除的信息不在表头

{

while(p2!= NULL)

{

if(!strcmp(p2->trains, c))

{

printf(“您要删除的信息如下:n”);

printf(“车次

日期

起点

终点

开车时间

到达时间

票价n”);

Output(p2);

printf(“确定删除吗?(y/n): ”);

fflush(stdin);

scanf(“%c”, &ch);

if(ch == 'y' || ch == 'Y')

{

p1->next = p2->next;

printf(“成功删除该信息!nn”);

save();

//删除完成后,自动保存信息

free(p2);

//释放p2

return;

}

}

else if(p2->next!= NULL)

{

p1 = p1->next;

p2 = p2->next;

}

else

{

printf(“无此车次信息,删除失败!n”);

return;

}

} } }

//按火车车次、起点、终点查询 void search(int x){ char Tra[30];char a[30];struct Train_Ticket *p;p = head;printf(“请输入您要查询的内容:”);scanf(“%s”, Tra);if(p == NULL){

printf(“对不起,无资料记录!n”);

exit(0);} else {

while(p!= NULL)

{

if(x == 1)

strcpy(a, p->trains);

if(x == 2)

strcpy(a, p->star);

if(x == 3)

strcpy(a, p->end);

if(!strcmp(a, Tra))

{

printf(“车次

日期

起点

终点

Output(p);

return;

}

p = p-> next;

}

printf(”没有您要查询的车次记录!n“);} }

//按终点和日期查询 void SearchEnd_Data(){ char end[30];char data[30];struct Train_Ticket *p;p = head;printf(”请输入您要查询的车次和日期:“);fflush(stdin);scanf(”%s %s“, end,data);if(p == NULL){

printf(”对不起,无资料记录!n“);

exit(0);} else {

开车时间到达时间票价n”);

while(p!= NULL)

{

if(!strcmp(p->end, end)&&!strcmp(p->data,data))

{

printf(“车次

日期

起点

终点

开车时间

到达时间

票价n”);

Output(p);

}

if(p->next!= NULL)

{

p = p-> next;

}

else

return;

}

return;} }

//返回主菜单 void GoMenu(){ system(“cls”);menu();}

//查询

void Search(){ system(“cls”);int i;printf(“

1.按车次查找n”);printf(“

2.起点次查找n”);printf(“

3.终点次查找n”);printf(“

4.终点和日期次查找n”);printf(“

5.返回主菜单n”);T: printf(“请选择:”);fflush(stdin);scanf(“%d”,&i);switch(i){ case 1:

search(1);

break;case 2:

search(2);

break;case 3:

search(3);

break;case 4:

SearchEnd_Data();

break;case 5:

GoMenu();

break;default:

printf(“输入无效,请重试!n”);

goto T;} goto T;}

//按起点统计车数量 void Statistics_Star(){ int cout = 0;char b[30];struct Train_Ticket *p;p = head;printf(“请输入起点名:”);fflush(stdin);scanf(“%s”, b);if(p == NULL){

printf(“对不起,无资料记录!n”);

return;} else {

while(p!= NULL)

{

if(!strcmp(p->star, b))

{

cout ++;

}

if(p->next!= NULL)

{

p = p-> next;

}

else

{

printf(“起点为:%s 的车次共有 %d 次n”,b,cout);

return;

}

}

} }

//按终点统计车数量 void Statistics_End(){ int cout = 0;char b[30];struct Train_Ticket *p;p = head;printf(“请输入终点名:”);fflush(stdin);scanf(“%s”, b);if(p == NULL){

printf(“对不起,无资料记录!n”);

return;} else {

while(p!= NULL)

{

if(!strcmp(p->end, b))

{

cout ++;

}

if(p->next!= NULL)

{

p = p-> next;

}

else

{

printf(“终点为:%s 的车次共有 %d 次n”,b,cout);

return;

}

} } }

//统计车数量 void Statistics(){ int n;printf(“1.按起点统计

2.按终点统计n”);if(!scanf(“%d”, &n)){

printf(“输入无效!n”);

return;} else {

if(n == 1)

Statistics_Star();

else if(n == 2)

Statistics_End();

else

{

printf(“输入无效!n”);

return;

} } }

//退出 void Quit(){ char ch;printf(“确定退出吗?(y/n)n”);fflush(stdin);scanf(“%c”,&ch);if(ch == 'y' || ch == 'Y')

exit(0);else

return;}

//菜单 void menu(){ int m;printf(“************************************n”);printf(“*

火车票务管理系统

*n”);printf(“************************************n”);printf(“ ① 录入火车时刻信息

n”);

printf(“ ② 浏览火车时刻信息

n”);printf(“ ③ 查询火车时刻信息

n”);printf(“ ④ 删除火车车次

n”);printf(“ ⑤ 统计火车车次

n”);printf(“ ⑥ 退出

nn”);L: printf(“请选择功能:”);fflush(stdin);if(!scanf(“%d”,&m)){

printf(“输入无效,请重试:n”);

goto L;} switch(m){ case 1:

Great_Ticket();

break;case 2:

display();

break;

case 3:

Search();

break;case 4:

Delete();

break;case 5:

Statistics();//统计

break;

case 6:

Quit();

break;default:

printf(“输入无效,请重新输入:n”);

goto L;} goto L;}

//主菜单 int main(){ printf(“欢迎进入火车票务管理系统!n”);printf(“正在加载文档信息:”);open();

//运行软件的时候自动打开存入文件中的相关信息

for(int i = 0;i

printf(“* ”);

Sleep(400);} system(“cls”);menu();return 0;}

《火车票务管理系统.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
火车票务管理系统
点击下载文档
相关专题 列车票务管理系统 管理系统 票务 火车 列车票务管理系统 管理系统 票务 火车
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文