1. 首页 > 笙耀百科 >

火车票务系统c语言_c语言火车票务管理系统

火车票我不清楚,但是机票的订票系统没法自己做,因为在线订票得需要连接中航信的数据库读取航班销售情况的数据,你没有接口是读取不了的

火车票务系统c语言_c语言火车票务管理系统火车票务系统c语言_c语言火车票务管理系统


如果有这个接口(IBE原始接口)看需要做一个什么样类型的订票系统,是分销平台还是普通的网络销售,分销平台自己开发,少则3W,多则20W也是有可能

普通的直营网站售票系统从两三千元到十几万不等

#include #include #include # define size 10 struct t_tickets

C语言高手请进!急求火车订票程序!!!分可追加!!!

COUNT=6 THE INT NUMBERES IS :123 456 79 60 33 21

#include

int fun (char *c,int *b)

{}

main()

{char s[100];int i,n,b[40];

printf("enter a string:\n");

n=string(s,b);

printf("count=%d\n",n);

printf("the int numberes is:\n");

for (i=0;i

printf("%4d",b[i]);

#include ///宏定义函数

#include //串操作及内存操作函数

#include /////调用系统函数

#include ///时间库函数

#include ///输入输出函数

#define N 1000 //宏定义多条记录

typedef struct TICKET ////定义新结构体TICKET

{char num[10]; //车次编号

char hour[3]; //时间,,小时

char min[3]; //分钟

char from[10]; //起始站

char to[10]; //终点站

float hours; //车程实际时间

int max; //最大车载容量

int now; //已售票数

}CLASS;

int class_num=0; ///初始班次总数为0

CLASS records[N]; // 多条记录

int system_time(); //系统时间

void NewMessage(); //新纪录*录入函数******

void ShowTable1(); //线框调用1,,,不用没次输

void ShowTable2(int i); //线框调用2,,,不用没次输

void Display(); //显示所有函数

void add(); //增加记录

void save(); // 保存函数

void load(); // 按班次查询函数

void search(); //查询函数

void change(); //修改函数**

void quit(); ////////// //退出函数******

void Ticketorder(); // //*售票函数***

void Ticketdelete(); //删除函数*

int menu_select(); //菜单函数*

int whether(int); ////判断时间是否超出函数***

void find(char s1[],char s2[]); //查询函数★//s1为班次//s2为终点站

void deletemessage(); //删除函数

int findnum(char s1[]); //班次查询函数

void get(int,int); //修改及增加班次*

char *menu[]={"*****************欢迎使用车票查询系统*****************",

"\n*******************MENU功能菜单***********************",

"\n◤ ★ 1. 录入班次 ◥",

"\n◆ ★ 2. 显示所有班次 ◆",

"\n◆ ★ 3. 查询班次 ◆",

"\n◆ ★ 4. 增加班次 ◆",

"\n◆ ★ 5. 售票 ◆",

"\n◆ ★ 6. 退票 ◆",

"\n◆ ★ 7. 修改班次 ◆",

"\n◆ ★ 8. 删除班次 ◆",

"\n◣ ★ 9. 退出 ◢"};

/**************************主函数***************************/

void main()

{system("cls"); //刷屏

while(1) //菜单函数循环

{switch(menu_select()) //菜单函数*

{case 1: NewMessage();break; ////新纪录*录入函数******

case 2: Display();break; // //显示

case 3: search();break; //查找函数**

case 4: add();break; // //增加记录

case 5: Ticketorder();break; ////*售票函数***

case 6: Ticketdelete();break; //删除函数*

case 7: change();break; //修改函数**

case 8: deletemessage();break; //////选择调用删除函数

case 9: quit();break; //////退出函数******

}}

}/***********************菜单函数**************************/

int menu_select() /////////菜单函数*

{char s[5]; ///定义要输入的数字功能

int c,i;

system("cls"); //刷屏

system("color 09");//改变颜色

for(i=0;i<11;i++)

{printf("%s",menu[i]); //输出菜单各项)

}i=0;

while(c<0||c>9) //判断是否是1到9的命令

{printf("\n"); ///输出换行

printf("******************************************************");

printf("\n请选择(1-9):▁▂▃▄▆▇");

scanf("%s",s);

c=atoi(s); //atoi将字符串转换成一个整数值

} ///输出菜单面

return c; ////返回请求

}/*******************************录入函数************************************/

void NewMessage() //*录入函数******

{int i=0,j=5,h; ////

char s[5];

FILE *fp; ////定义文件型指针变量

system("cls"); //刷屏

if((fp=fopen("d:车票管理系统0.dat","rb"))!=NULL) //fopen打开文件

{printf("车票信息已经存在请选择增加功能!\n");

printf("任意输入则返回菜单\n");

scanf("%s",s);

i=1; //通过是1

}if(i==0)

{system("cls"); //刷屏

printf("请输入要录入班次总数:\n");

scanf("%d",&class_num); //指向班次指针

system("cls"); //刷屏

for(i=0;i

{system("cls"); //刷屏

printf("请输入第%d个班次信息:\n",i+1);

h=-1;

for(;h!=i;) ///循环输出

{printf("请输入班次:\n");

scanf("%s",records[i].num);

for(h=0;h

if(strcmp(records[h].num,records[i].num)==0)

//判断字符串比较是否相等,, 待比较的字符串

{printf("输入错误!该班次已存在!\n");

break; ///返回

}}

get(i,j); ////修改及增加班次*

j=5;

}save(); //调用保存函数

}}

/*******************************显示所有函数********************************/

void Display() //显示所有函数

{int i,j;

system("cls"); //刷屏

load(); // 调用按班次查询函数

ShowTable1(); //线框调用1,,,不用没次输

for(i=0,j=0;i

{printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");

if(whether(i)) //判断时间是否超出函数***

printf("|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|",records[i].num,records[i].hour,

records[i].min, records[i].from,records[i].to,records[i].hours,

records[i].max,records[i].now);

else

printf("|%10s| 已发车 |%10s|%10s|%8.1f|%8d|%8d|",records[i].num,

records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now);

}ShowTable2(j); //线框调用2

printf("\n按任意键继续....\n");

getch(); /////从控制台读取一个字符,但不显示在屏幕上

}/**********************************打印表头***********************************************/

void ShowTable1() //线框调用1,,,不用没次输

{int i=2;

system("cls"); //刷屏

printf("**************************MESSAGE车程信息**********************************\n");

printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");

printf("\n| 班次 | 发车时间 | 起点站 | 终点站 |行车时间|额定载量| 已售票 |\n");

}/***************************************打印表尾************************************************/

void ShowTable2(int i) //线框调用2。不用没次输。

{printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");

}/**************************查找函数11**************************/

void search() ////查询调用

{int i;

char s1[10]={'\0'},s2[10]={'\0'};

system("cls"); //刷屏

printf("1. 按班次查询\n");

printf("2. 按终点站查询\n");

printf("3. 退出\n");

printf("请选择(1-3):\n");

scanf("%d",&i);

load(); // 调用按班次查询函数

switch(i) //多分枝选择语句

{case 1: printf("请输入要查询的班次:\n"); //////s1为班次

scanf("%s",s1);

find(s1,s2); /////调用查找函数222 2

break;

case 2: printf("请输入要查询终点站:\n"); /////s2为终点站

scanf("%s",s2);

find(s1,s2); /////调用查找函数222 2

break;

case 3: break;

default : printf("输入错误!\n");

break;

}printf("按任意键继续....\n");

getch(); ///从控制台读取一个字符,但不显示在屏幕上

}/********************************查询函数22*********************************/

void find(char s1[],char s2[])

{int i,h=0,m;

ShowTable1(); ////调用线框1

if(s2[0]=='\0')

m=1; ///1为无条件执行

else m=0;

for(i=0;i

if(strcmp(s1,records[i].num)==0||strcmp(s2,records[i].to)==0)

////判断字符串比较是否相等,, 待比较的字符串

{printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");

printf("|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|",records[i].num,records[i].hour,records[i].min,

records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now);

h+=2;

if(m==1)

break;

}ShowTable2(h); ////调用线框2

if(h==0)

printf("要查找的班次不存在!\n");

}/***********************增加函数****************************/

void add() // //增加记录

{int i,j=5;

load(); // 调用按班次查询函数

system("cls"); //刷屏

printf("1. 增加班次\n");

printf("2. 返回\n");

printf("请选择(1-2)\n");

scanf("%d",&i);

if(i==1)

{system("cls"); //刷屏

printf("1. 请输入要增加的班次:\n");

scanf("%s",records[class_num].num);

for(i=0;i

if(strcmp(records[class_num].num,records[i].num)==0)

//判断字符串比较是否相等,, 待比较的字符串 判断车次没重复

{printf("输入错误!\n");

getch(); /////从控制台读取一个字符,但不显示在屏幕上

break;

}if(i==class_num)

{get(i,j); ////修改及增加班次*

class_num++; ///使班次数加1

save(); //调用保存函数

}}

}/********************************售票函数*****************************/

void Ticketorder() //*售票函数***

{int i;

char num[10];

system("cls"); //刷屏

printf("1. 售票\n");

printf("2. 返回\n");

printf("请选择(1-2):\n");

scanf("%d",&i);

if(i==1)

{load(); // 调用按班次查询函数

search(); //查找函数**

printf("请输入要订票的班次(若无请输入0):\n");

scanf("%s",num);

for(i=0;i

if(strcmp(num,records[i].num)==0)//判断字符串比较是否相等,, 待比较的字符串

if(records[i].max>records[i].now&&whether(i)==1)

//判断时间是否超出函数***并且***没超出最大客量

{records[i].now++; ///使已售的暑假1

printf("通向%s班次为%s的票订票成功!\n",records[i].to,records[i].num);

save(); //调用保存函数

getch(); /////从控制台读取一个字符,但不显示在屏幕上

break;

}else

{printf("该班次已满或已发出!\n");

getch(); /////从控制台读取一个字符,但不显示在屏幕上

}}

}/****************************退票删除函数***************************************/

void Ticketdelete() //删除函数*

{int i;

char num[10];

system("cls"); //刷屏

printf("1. 退票\n");

printf("2. 返回\n");

printf("请选择(1-2)\n:");

scanf("%d",&i);

if(i==1)

{system("cls"); //刷屏

load(); // 调用按班次查询函数

printf("请输入要退票的班次:\n");

scanf("%s",num);

i=findnum(num); //调用班次查询函数

if(strcmp(num,records[i].num)==0) //判断字符串比较是否相等 待比较的字符串

if(whether(i)) //判断时间是否超出函数***

{printf("确定(Y/N)?");

scanf("%s",num);

if(num[0]=='y'||num[0]=='Y')

{records[i].now--; //使已售票加1

printf("退票成功!\n");

save(); //调用保存函数

getch(); //从控制台读取一个字符,但不显示在屏幕上

}}

else

{printf("该班车已发出,无法退票!\n");

getch(); /////从控制台读取一个字符,但不显示在屏幕上

}if(i==class_num)

{ printf("输入错误!\n");

getch(); /////从控制台读取一个字符,但不显示在屏幕上

}}

}/********************************修改函数*********************************/

void change() //修改函数**

{char num[10],s[10];

int h=0,j=13,i;

load(); // 调用按班次查询函数

system("cls"); //刷屏

printf("请输入要修改的班次:\n");

scanf("%s",num);

i=findnum(num); //调用班次查询函数

if(i==class_num)

{printf("输入错误,无此班次!\n");

getch(); ///从控制台读取一个字符,但不显示在屏幕上

}else

{printf("确定修改(Y/N)?\n");

scanf("%s",s);

if(s[0]=='y'||s[0]=='Y')

{get(i,j); ////修改及增加班次*

save(); //调用保存函数

}}

}/*******************************删除函数**********************************/

void deletemessage() //删除班次信息

{int i,h=0;

char num[10];

system("cls"); //刷屏

printf("1. 删除班次\n");

printf("2. 返回\n");

printf("请选择(1-2):\n");

scanf("%d",&i);

if(i==1)

{system("cls"); //刷屏

printf("请输入要删除的班次:\n");

scanf("%s",num);

i=findnum(num); //调用班次查询函数

if(i==class_num)

{printf("输入错误,无此班次!\n");

getch(); ///从控制台读取一个字符,但不显示在屏幕上

}else

{printf("确定?(y/n)\n");

scanf("%s",num);

if(num[0]=='y'||num[0]=='Y')

{for(;i

records[i]=records[i+1];

class_num--; ////班次总数减1

save(); //调用保存函数

printf("删除成功!\n");

getch();

}}

}}

/****************************按班次查询函数****************************/

int findnum(char s1[]) //查找班次

{int i,h=0;

ShowTable1(); //线框调用1,,,不用没次输

for(i=0;i

{if(strcmp(s1,records[i].num)==0) //判断字符串比较是否相等,如果符合则输出车次等信息

{printf("|----------|----------|----------|----------|--------|--------|--------|\n");

printf("|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|",records[i].num,records[i].hour,

records[i].min,records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now);

h+=2; ///加2使输出的框架合适

break;

}}

ShowTable2(h); ///调用框架2

return i;

}/**************************************保存函数*******************************/

void save() //////保存函数

{FILE *fp1,*fp2; //文件行指针

if((fp1=fopen("d:车票管理系统.dat","wb"))==NULL) //打开文件、为输出打开一个二进制文件

{printf("文件打开错误!\n");

exit(0);

}if((fp2=fopen("d:车票管理系统0.dat","wb"))==NULL) //打开文件、为输出打开一个二进制文件

{printf("文件打开错误!\n");

exit(0);

}fwrite(&class_num,sizeof(int),1,fp2); //写入文件信息

fwrite(records,sizeof(CLASS),class_num,fp1);

fclose(fp1);fclose(fp2); ///关闭文件

}/*******************************按班次查询函数*******************************/

void load() //按班次查询函数

{FILE *fp1,*fp2;

if((fp1=fopen("d:车票管理系统.dat","rb"))==NULL)

{system("cls"); //刷屏

printf("文件打开错误!\n");

getch(); ///从控制台读取一个字符,但不显示在屏幕上

exit(0);

}if((fp2=fopen("d:车票管理系统0.dat","rb"))==NULL)

{system("cls"); //刷屏

printf("文件打开错误!\n");

getch(); ///从控制台读取一个字符,但不显示在屏幕上

exit(0); //退出

}fread(&class_num,sizeof(int),1,fp2); ///读入信息

fread(records,sizeof(CLASS),class_num,fp1);/////读入信息

fclose(fp1);fclose(fp2); ///文件关闭

}/******************************退出函数***************************/

void quit() //退出函数******

{char s[5];

printf("确认退出?(Y/N)\n");

scanf("%s",s);

if(s[0]=='y'||s[0]=='Y')

exit(0); //程序中止执行,返回调用过程..state 0-正常中止非0-非正常

}/*************************修改及增加班次*******************************/

void get(int i,int j) // 修改及增加班次*

{for(;;)

{printf("请输入发车时间(xx xx)");scanf("%s%s",records[i].hour,records[i].min);

if((atoi(records[i].hour)<24&&atoi(records[i].hour)>=0)&&(atoi(records[i].min)<60&&atoi(records[i].min)>=0))

break;

else

{printf("输入错误!\n");

getch(); /////从控制台读取一个字符,但不显示在屏幕上

}}

printf("请输入起点站:\n");

scanf("%s",records[i].from);

printf("请输入终点站:\n");

scanf("%s",records[i].to);

printf("请输入行车时间:\n");

scanf("%f",&records[i].hours);

printf("请输入额定载量:\n");

scanf("%d",&records[i].max);

for(;;)

{printf("请输入已售票数:\n");

scanf("%d",&records[i].now);

if(records[i].now<=records[i].max)

break;

else

{printf("输入错误!\n");

getch(); /////从控制台读取一个字符,但不显示在屏幕上

}}

}/********************************判断时间是否超出函数**********************************/

int whether(int i) //判断时间是否超出函数***

{struct tm *local; //时间结构体

time_t t; //把当前时间给t

t=time(NULL); //NULL在stdio.h中定义为0

local=localtime(&t); /////获取当前系统时间

if(local->tm_hourtm_hour==atoi(records[i].hour)&&local->tm_min

//atoi将字符串转换成一个整数值

return 1;

else

return 0;

}我也是拷贝别人的 我用过了这个程序可行

#include

#include

#include

#include

int shoudsave=0 ;

int count1=0,count2=0,mark=0,mark1=0 ;

/*定义存储火车信息的结构体*/

struct train

{char num[10];/*列车号*/

char city[10];/*目的城市*/

char takeoffTime[10];/*发车时间*/

char receiveTime[10];/*到达时间*/

int price;/*票价*/

int bookNum ;/*票数*/

};

/*订票人的信息*/

struct man

{char num[10];/*ID*/

char name[10];/*姓名*/

int bookNum ;/*需求的票数*/

};

/*定义火车信息链表的结点结构*/

typedef struct node

{struct train data ;

struct node * next ;

}Node,*Link ;

/*定义订票人链表的结点结构*/

typedef struct people

{struct man data ;

struct people*next ;

}bookMan,*bookManLink ;

/* 初始界面*/

void printInterface()

{puts("********************************************************");

puts("* Welcome to use the system of booking tickets *");

puts("********************************************************");

puts("* You can choose the operation: *");

puts("* 1:Insert a train information *");

puts("* 2:Inquire a train information *");

puts("* 3:Book a train ticket *");

puts("* 4:Update the train information *");

puts("* 5:Advice to you about the train *");

puts("* 6:save information to file *");

puts("* 7:quit the system *");

puts("********************************************************");

}/*添加一个火车信息*/

void InsertTraininfo(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'has been born!\n",num);

return ;

}s = s->next ;

}p = (struct node*)malloc(sizeof(struct node));

strcpy(p->data.num,num);

printf("Input the city where the train will reach:");

scanf("%s",p->data.city);

printf("Input the time which the train take off:");

scanf("%s",p->data.takeoffTime);

printf("Input the time which the train receive:");

scanf("%s",&p->data.receiveTime);

printf("Input the price of ticket:");

scanf("%d",&p->data.price);

printf("Input the number of booked tickets:");

scanf("%d",&p->data.bookNum);

p->next=NULL ;

r->next=p ;

r=p ;

shoudsave = 1 ;

}}

/*打印火车票信息*/

void printTrainInfo(struct node*p)

{puts("\nThe following is the record you want:");

printf(">>number of train: %s\n",p->data.num);

printf(">>city the train will reach: %s\n",p->data.city);

printf(">>the time the train take off: %s\nthe time the train reach: %s\n",p->data.takeoffTime,p->data.receiveTime);

printf(">>the price of the ticket: %d\n",p->data.price);

printf(">>the number of booked tickets: %d\n",p->data.bookNum);

}struct node * Locate1(Link l,char findmess[],char numorcity[])

{Node*r ;

if(strcmp(numorcity,"num")==0)

{r=l->next ;

while(r)

{if(strcmp(r->data.num,findmess)==0)

return r ;

r=r->next ;

}}

else if(strcmp(numorcity,"city")==0)

{r=l->next ;

while(r)

{if(strcmp(r->data.city,findmess)==0)

return r ;

r=r->next ;

}}

return 0 ;

}/*查询火车信息*/

void QueryTrain(Link l)

{Node *p ;

int sel ;

char str1[5],str2[10];

if(!l->next)

{printf("There is not any record !");

return ;

}printf("Choose the way:\n>>1:according to the number of train;\n>>2:according to the city:\n");

scanf("%d",&sel);

if(sel==1)

{printf("Input the the number of train:");

scanf("%s",str1);

p=Locate1(l,str1,"num");

if(p)

{printTrainInfo(p);

}else

{mark1=1 ;

printf("\nthe file can't be found!");

}}

else if(sel==2)

{printf("Input the city:");

scanf("%s",str2);

p=Locate1(l,str2,"city");

if(p)

{printTrainInfo(p);

}else

{mark1=1 ;

printf("\nthe file can't be found!");

}}

}/*订票子模块*/

void BookTicket(Link l,bookManLink k)

{Node*r[10],*p ;

char ch,dem ;

bookMan*v,*h ;

int i=0,t=0 ;

char str[10],str1[10],str2[10];

v=k ;

while(v->next!=NULL)

v=v->next ;

printf("Input the city you want to go: ");

scanf("%s",&str);

p=l->next ;

while(p!=NULL)

{if(strcmp(p->data.city,str)==0)

{r[i]=p ;

i++;

}p=p->next ;

}printf("\n\nthe number of record have %d\n",i);

for(t=0;t

printTrainInfo(r[t]);

if(i==0)

printf("\n\t\t\tSorry!Can't find the train for you!\n");

else

{printf("\ndo you want to book it?<1/0>\n");

scanf("%d",&ch);

if(ch == 1)

{h=(bookMan*)malloc(sizeof(bookMan));

printf("Input your name: ");

scanf("%s",&str1);

strcpy(h->data.name,str1);

printf("Input your id: ");

scanf("%s",&str2);

strcpy(h->data.num,str2);

printf("Input your bookNum: ");

scanf("%d",&dem);

h->data.bookNum=dem ;

h->next=NULL ;

v->next=h ;

v=h ;

printf("\nLucky!you have booked a ticket!");

getch();

shoudsave=1 ;

}}

}bookMan*Locate2(bookManLink k,char findmess[])

{bookMan*r ;

r=k->next ;

while(r)

{if(strcmp(r->data.num,findmess)==0)

{mark=1 ;

return r ;

}r=r->next ;

}return 0 ;

}/*修改火车信息*/

void UpdateInfo(Link l)

{Node*p ;

char findmess[20],ch ;

if(!l->next)

{printf("\nthere isn't record for you to modify!\n");

return ;

}else

{QueryTrain(l);

if(mark1==0)

{printf("\nDo you want to modify it?\n");

getchar();

scanf("%c",&ch);

if(ch=='y');

{printf("\nInput the number of the train:");

scanf("%s",findmess);

p=Locate1(l,findmess,"num");

if(p)

{printf("Input new number of train:");

scanf("%s",&p->data.num);

printf("Input new city the train will reach:");

scanf("%s",&p->data.city);

printf("Input new time the train take off");

scanf("%s",&p->data.takeoffTime);

printf("Input new time the train reach:");

scanf("%s",&p->data.receiveTime);

printf("Input new price of the ticket::");

scanf("%d",&p->data.price);

printf("Input new number of people who have booked ticket:");

scanf("%d",&p->data.bookNum);

printf("\nmodifying record is sucessful!\n");

shoudsave=1 ;

}else

printf("\t\t\tcan't find the record!");

}}

else

mark1=0 ;

}}

/*系统给用户的提示信息*/

void AdvicedTrains(Link l)

{Node*r ;

char str[10];

int mar=0 ;

r=l->next ;

printf("Iuput the city you want to go: ");

scanf("%s",str);

while(r)

{if(strcmp(r->data.city,str)==0&&r->data.bookNum<200)

{mar=1 ;

printf("\nyou can select the following train!\n");

printf("\n\nplease select the fourth operation to book the ticket!\n");

printTrainInfo(r);

}r=r->next ;

}if(mar==0)

printf("\n\t\t\tyou can't book any ticket now!\n");

}/*保存火车信息*/

void SaveTrainInfo(Link l)

{FILE*fp ;

Node*p ;

int count=0,flag=1 ;

fp=fopen("c:\\train.txt","wb");

if(fp==NULL)

{printf("the file can't be opened!");

return ;

}p=l->next ;

while(p)

{if(fwrite(p,sizeof(Node),1,fp)==1)

{p=p->next ;

count++;

}else

{flag=0 ;

break ;

}}

if(flag)

{printf("the number of the record which have been saved is %d\n",count);

shoudsave=0 ;

}fclose(fp);

}/*保存订票人的信息*/

void SaveBookmanInfo(bookManLink k)

{FILE*fp ;

bookMan*p ;

int count=0,flag=1 ;

fp=fopen("c:\\man.txt","wb");

if(fp==NULL)

{printf("the file can't be opened!");

return ;

}p=k->next ;

while(p)

{if(fwrite(p,sizeof(bookMan),1,fp)==1)

{p=p->next ;

count++;

}else

{flag=0 ;

break ;

}}

if(flag)

{printf("the number of the record which have been saved is %d\n",count);

shoudsave=0 ;

}fclose(fp);

}int main()

{FILE*fp1,*fp2 ;

Node*p,*r ;

char ch1,ch2 ;

Link l ;

bookManLink k ;

bookMan*t,*h ;

int sel ;

l=(Node*)malloc(sizeof(Node));

l->next=NULL ;

r=l ;

k=(bookMan*)malloc(sizeof(bookMan));

k->next=NULL ;

h=k ;

fp1=fopen("c:\\train.txt","ab+");

if((fp1==NULL))

{printf("can't open the file!");

return 0 ;

}while(!feof(fp1))

{p=(Node*)malloc(sizeof(Node));

if(fread(p,sizeof(Node),1,fp1)==1)

{p->next=NULL ;

r->next=p ;

r=p ;

count1++;

}}

fclose(fp1);

fp2=fopen("c:\\man.txt","ab+");

if((fp2==NULL))

{printf("can't open the file!");

return 0 ;

}while(!feof(fp2))

{t=(bookMan*)malloc(sizeof(bookMan));

if(fread(t,sizeof(bookMan),1,fp2)==1)

{t->next=NULL ;

h->next=t ;

h=t ;

count2++;

}}

fclose(fp2);

while(1)

{system("cls");

printInterface();

printf("please choose the operation: ");

scanf("%d",&sel);

system("cls");

if(sel==8)

{if(shoudsave==1)

{getchar();

printf("\nthe file have been changed!do you want to save it(y/n)?\n");

scanf("%c",&ch1);

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

{SaveBookmanInfo(k);

SaveTrainInfo(l);

}}

printf("\nThank you!!You are welcome too\n");

break ;

}switch(sel)

{case 1 :

InsertTraininfo(l);break ;

case 2 :

QueryTrain(l);break ;

case 3 :

BookTicket(l,k);break ;

case 4 :

UpdateInfo(l);break ;

case 5 :

AdvicedTrains(l);break ;

case 6 :

SaveTrainInfo(l);SaveBookmanInfo(k);break ;

case 7 :

return 0;

}printf("\nplease press any key to continue.......");

getch();

}return 0;

}

#include

#include

#include

#include

int shoudsave=0 ;

int count1=0,count2=0,mark=0,mark1=0 ;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息