推扬网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
推扬网 门户 你问我答 查看内容

曹流:c语言铁路售票系统

2020-8-12 14:22| 发布者: admin| 查看: 88| 评论: 0

摘要: kk的回答: 程序发到你的qq邮箱了 请查收 kk的回答: 程序发到你的qq邮箱了 请查收 此人已挂失的回答: 帮你找了一个,自己改改吧。 ///////////你把我改过的代码贴去看看。我在VC++6.0里调试通过了 //你的主要问题 ...

kk的回答:

程序发到你的qq邮箱了 请查收

kk的回答:

程序发到你的qq邮箱了 请查收

此人已挂失的回答:

帮你找了一个,自己改改吧。

///////////你把我改过的代码贴去看看。我在VC++6.0里调试通过了 //你的主要问题:1、函数名password()和main里的变量password重名了。我改成inputpassword() //2、inputpassword()函数里后面的printf("\n"),getchar()是多余的。 //3、不知道你inputpassword里返回的那个cc[9]是什么。我改成return strlen(cc).为返回密码长度。 -------------------------------------------------------- //#include <stdafx.h> #include < conio.h> #include<stdio.h> #include<string.h> #include<stdlib.h> #define OK 1 #define TRUE 1 #define FALSE 0 #define ERROR 0 #define OVERFLOW -2 #define PR printf typedef int status; typedef struct airline { char line_num[8];//航班号 char plane_num[8];//飞机号 char end_place[20];//目的的 int total;//座位总数 int left;//剩余座位 struct airline *next;//下一个结点 }airline; typedef struct customer { char name[9];//顾客名 char line_num[8];//航班号 int seat_num;//座位号 struct customer *next;//下一个结点 }customer; airline *init_airline() { //初始化链表 airline *l; l=(airline*)malloc(sizeof(airline)); if(l==NULL) { exit(0); } l->next=NULL; return l; } customer * init_customer(){//初始化链表 customer *l; l=(customer*)malloc(sizeof(customer)); if(l==NULL){ exit(0); } l->next=NULL; return l; } status insert_airline(airline **p,char *line_num,char *plane_num,char *end_place,int total,int left){//airline链表插入操作 airline *q; q=(airline*)malloc(sizeof(airline)); strcpy(q->line_num , line_num); strcpy(q->plane_num , plane_num); strcpy(q->end_place , end_place); q->total =total; q->left =left; q->next=NULL; (*p)->next=q; (*p)=(*p)->next; // PR("insert %d ,%dis succssed!\n",e,bl); return OK; } status insert_customer(customer **p,char *name,char *line_num,int seat){//customer链表插入操作 customer *q; q=(customer*)malloc(sizeof(customer)); /* { PR("内存分配失败\n"); return OVERFLOW; }*/ strcpy(q->name , name); strcpy(q->line_num , line_num); q->seat_num =seat; q->next=NULL; (*p)->next=q; (*p)=(*p)->next; // PR("insert %d ,%dis succssed!\n",e,bl); return OK; } airline *modefy_airline(airline *l,char *line_num)//修改airline链表中的数据 { airline *p; p=l->next ; for(;p!=NULL;p=p->next ) { if(strcmp(line_num,p->line_num )==0) { p->left ++; // PR("modefy %s\n",p->line_num ); return l; } } PR("没有这个航班,无法完成修改任务!\n"); return 0; } status delete_airline(airline *h,char *line_num)//删除航班 { airline *p,*pr; pr=h; p=pr->next ; while(p!=NULL) { if(strcmp(line_num,p->line_num )==0) { pr->next =p->next ; PR("删除 %s 航班\n",p->line_num ); return OK; } pr=pr->next ; p=pr->next ; } PR("无此航班,无法删除!\n"); return ERROR; } status delete_customer(customer *h,char *line_num)//删除顾客 { customer *p,*pr; pr=h; p=pr->next ; while(p!=NULL) { if(strcmp(line_num,p->line_num )==0) { pr->next =p->next ; } pr=pr->next ; p=pr->next ; } // PR("无此航班,无法删除!\n"); return OK; } status delete_cus(customer *h,airline *l,char *name)//顾客退票 { customer *p,*pr; char line_num[8]; // qr=h; pr=h; p=pr->next ; // PR("开始删除\n"); while(p!=NULL) { if(strcmp(name,p->name )==0) { strcpy(line_num,p->line_num ); l=modefy_airline(l,line_num); pr->next =p->next ; PR("顾客 %s 退票成功!\n",p->name ); return OK; } pr=pr->next ; p=pr->next ; } PR("无此顾客,无法退票!\n"); return ERROR; } status save_airline(airline *l)//保存airline.dat { FILE *fp_airline; char ch='#'; airline *p=l->next ; char filename[]="c:\\airline.dat"; if((fp_airline=fopen(filename,"wb"))==NULL) { printf("can not open file to write:%s\n",filename); return ERROR; } for(;p!=NULL;p=p->next ) { // printf("%s,%s,%s,%d,%d\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->left ); fprintf(fp_airline,"%s,%s,%s,%d,%d%c\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->left ,ch); } fclose(fp_airline); return OK; } status save_customer(customer *l)//保存顾客信息 customer.dat { FILE *fp_customer; char ch='#'; customer *p=l->next ; char filename[]="c:\\customer.dat"; if((fp_customer=fopen(filename,"wb"))==NULL) { printf("can not open file to write:%s\n",filename); return ERROR; } for(;p!=NULL;p=p->next ) { // PR("%s,%s,%d\n",p->name ,p->line_num ,p->seat_num ); fprintf(fp_customer,"%s,%s,%d%c",p->name ,p->line_num ,p->seat_num ,ch); } fclose(fp_customer); return OK; } int changStrInt(char *ch)//把字符串转化为整型 { int a=1,b=0,c=0,i; for (i=strlen(ch)-1;i>=0;i--) { if (ch[i]<58&&ch[i]>47) { b=a*(ch[i]-48); a=a*10; c=c+b; } else { PR("%c 不合法,无法将此字符串转化为整形!\n",ch[i]); return 0; } // printf("the c is %d\n",c); } return c; } status insert_air(airline *l,char *line_num,char *plane_num,char *end_place,int total,int left){//airline链表插入操作 airline *q; q=(airline*)malloc(sizeof(airline)); strcpy(q->line_num , line_num); strcpy(q->plane_num , plane_num); strcpy(q->end_place , end_place); q->total =total; q->left =left; q->next=l->next ; l->next=q; // PR("insert %d ,%dis succssed!\n",e,bl); return OK; } status insert_cus(customer *l,char *name,char *line_num,int seat){//customer链表插入操作 customer *q; q=(customer*)malloc(sizeof(customer)); strcpy(q->name , name); strcpy(q->line_num , line_num); q->seat_num =seat; q->next=l->next ; l->next=q; return OK; } status load_airline(airline *l) { FILE *fp_airline; int flag=0,i=0; char ch; char line_num[8];//航班号 char plane_num[8];//飞机号 char end_place[20];//目的的 char total_str[5]; char left_str[5]; int total;//座位总数 int left;//剩余座位 // airline *p=l; char filename[]="c:\\airline.dat"; if((fp_airline=fopen(filename,"rb"))==NULL) { printf("can not open file to load:%s\n",filename); return ERROR; } while(!feof(fp_airline)) { ch=fgetc(fp_airline); if(ch!='#') { if(flag==0&&ch!=',') { line_num[i]=ch; i++; } else if(flag==1&&ch!=',') { plane_num[i]=ch; i++; } else if(flag==2&&ch!=',') { end_place[i]=ch; i++; } else if(flag==3&&ch!=',') { total_str[i]=ch; i++; } else if(flag==4&&ch!=',') { left_str[i]=ch; i++; } else if (ch==',') { flag++; i=0; } /* else { PR("错误\n"); return ERROR; }*/ } else { flag=0; i=0; total=changStrInt(total_str); left=changStrInt(left_str); PR("%8s%8s%8s%9d%9d\n",line_num ,plane_num ,end_place ,total ,left ); insert_air(l,line_num,plane_num,end_place,total,left); } } fclose(fp_airline); return OK; } status load_customer(customer *l) { FILE *fp_customer; int flag=0,i=0; char ch; char name[9]; char line_num[8];//航班号 char seat_num_str[5]; int seat_num;//座位 // customer *p=*l; char filename[50]="c:\\customer.dat"; if((fp_customer=fopen(filename,"rb"))==NULL) { printf("can not open file to load:%s\n",filename); return ERROR; } while(!feof(fp_customer)) { ch=fgetc(fp_customer); printf("%c\n",ch); if(ch!='#') { if(flag==0&&ch!=',') { name[i]=ch; i++; } else if(flag==1&&ch!=',') { line_num[i]=ch; i++; } else if(flag==2&&ch!=',') { seat_num_str[i]=ch; i++; } else if (ch==',') { flag++; i=0; } else { PR("错误\n"); return ERROR; } } else { flag=0; seat_num=changStrInt(seat_num_str); PR("%10s %10s %d\n",name ,line_num ,seat_num ); insert_cus(l,name,line_num,seat_num); // p=p->next ; }


鲜花

握手

雷人

路过

鸡蛋

最新评论

热门推荐
最新资讯

广告服务|投稿要求|禁言标准|版权说明|免责声明|手机版|小黑屋|推扬网 ( 粤ICP备18134897号 )|网站地图 | 邮箱:vayae@hotmail.com

GMT+8, 2025-5-2 05:13 , Processed in 0.062663 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部