程序介绍
1.运行程序时,首先进入到菜单部分,菜单部分提供了菜单显示和输入功能部分。其运行效果如图所示。在主界面上输入数字0——6,实现相应的功能。
2.主界面输入“1”,进入添加火车信息界面,如图所示。根据屏幕上给出的提示输入火车的车次,起点,终点,出发时间,到达时间,票价和可以订购的票数。
3.主界面输入“2”,可以查询火车信息,可以选择查询的方法有两种,一种是按照车次查询,一种是按照你想要到达的地方查询,运行效果如图所示。
4.当在主界面输入“3”时,进入订票界面,按照提示输入你想要到达的城市,会自动显示出你终点站为你输入城市的信息,根据提示输入你是否决定订票以及你的个人信息,运行效果如图所示。
5.当在主界面输入“4”时,进入修改界面,根据提示输入你要修改的内容,修改模块的运行效果如图所示。
6.当在主界面输入“5”时,可以显示出所有的火车信息,显示模块效果如图所示。
7.当在主界面输入“6”时,进入到保存模块,将录入的火车信息进行保存,并且将订票人的信息也进行保存,存储在指定的磁盘文件中。运行效果如图所示。
代码
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dos.h>
#define HEADER1 " -------------------------------BOOK TICKET----------------------------------\n"
#define HEADER2 " | number |start city|reach city|takeofftime|receivetime|price|ticketnumber|\n"
#define HEADER3 " |----------|----------|----------|-----------|-----------|-----|------------|\n"
#define FORMAT " |%-10s|%-10s|%-10s|%-10s |%-10s |%5d| %5d |\n"
#define DATA p->data.num,p->data.startcity,p->data.reachcity,p->data.takeofftime,p->data.receivetime,p->data.price,p->data.ticketnum
int saveflag=0 ;
/*定义存储火车信息的结构体*/
struct train
{
char num[10];/*列车号*/
char startcity[10];/*出发城市*/
char reachcity[10];/*目的城市*/
char takeofftime[10];/*发车时间*/
char receivetime[10];/*到达时间*/
int price;/*票价*/
int ticketnum ;/*票数*/
};
/*订票人的信息*/
struct man
{
char num[10];/*ID*/
char name[10];/*姓名*/
int bookNum ;/*订的票数*/
};
/*定义火车信息链表的结点结构*/
typedef struct node
{
struct train data ;
struct node * next ;
}Node,*Link ;
/*定义订票人链表的结点结构*/
typedef struct Man
{
struct man data ;
struct Man *next ;
}book,*bookLink ;
/* 初始界面*/
void menu()
{
puts("\n\n");
puts("\t\t|------------------------------------------------------|");
puts("\t\t| Booking Tickets |");
puts("\t\t|------------------------------------------------------|");
puts("\t\t| 0:quit the system |");
puts("\t\t| 1:Insert a train information |");
puts("\t\t| 2:Search a train information |");
puts("\t\t| 3:Book a train ticket |");
puts("\t\t| 4:Modify the train information |");
puts("\t\t| 5:Show the train information |");
puts("\t\t| 6:save information to file |");
puts("\t\t|------------------------------------------------------|");
}
/*添加一个火车信息*/
void Traininfo(Link linkhead)
{
struct node *p,*r,*s ;
char num[10];
r = linkhead ;
s = linkhead->next ;
while(r->next!=NULL)
r=r->next ;
while(1)
{
printf("please input the number of the train(0-return)");
scanf("%s",num);
if(strcmp(num,"0")==0)
break ;
/*判断是否已经存在*/
while(s)
{
if(strcmp(s->data.num,num)==0)
{
printf("the train '%s'is existing!\n",num);
return ;
}
s = s->next ;
}
p = (struct node*)malloc(sizeof(struct