⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_main_new.c

📁 fgdgyh trtrh rrt ertge e er er
💻 C
字号:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

//#define SIZE 3
//#define MAX 13
#define OK 1
#define TRUE 1
//#define FALSE 0
#define ERROR 0
#define OVERFLOW -2

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(OVERFLOW);
		}
	l->next=NULL;
	return l;
}

customer * init_customer(){//初始化链表
	customer *l;
	l=(customer*)malloc(sizeof(customer));
	if(l==NULL){
		exit(OVERFLOW);
		}
	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;
 //   printf("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));
	strcpy(q->name , name);
	strcpy(q->line_num , line_num);
	q->seat_num =seat;
	q->next=NULL;
	(*p)->next=q;
	(*p)=(*p)->next;
 //   printf("insert %d	,%dis succssed!\n",e,bl);
	return OK;
	}

customer *delete_cus(customer *h,char *name)
{
	customer *p,*pr,*q,*qr;
	qr=pr=h;
	p=pr->next ;
	q=qr->next ;
	while(p!=NULL)
	{
		if(strcmp(name,p->name )==0)
		{
			qr->next =q->next ;
			PR("delet %s\n",q->name );
			return h;
		}
		qr=qr->next ;
		q=qr->next ;
	}
	PR("没有这用户,无法完成删除任务!\n");
	return 0;
}

airline *modefy_airline(airline *l,char *line_num)
{
	airline *q;
	q=l->next ;
	for(;q->next !=NULL;q=q->next )
	{
		if(strcmp(line_num,q->line_num )==0)
		{
			q->left ++;
			PR("modefy %s\n",q->line_num );
			return l;
		}
	}
	PR("没有这个航线,无法完成修改任务!\n");
	return 0;
}*/

void save()
{
	FILE *fp;
	char filename[]="c:\\air.dat";
	printf("%s\n",filename);
	if((fp=fopen(filename,"wb"))==NULL)
	{
		printf("can not open file to write\n");
		exit(0);
	}
	fprintf(fp,"%s",filename);
}
void save1()
{
	FILE *fp;
//	char ch,name[30],*line;
//	int i=0;
	char filename[]="c:\\data.dat";
	printf("%s\n",filename);
	if((fp=fopen(filename,"wb"))==NULL)
	{
		printf("can not open file\n");
		exit(0);
	}
	fprintf(fp,"%s",filename);
//	fprintf(fp,"%s\n",filename);
}


/*status save_airline(airline *l)
{
	FILE *fp_air;
	char filename[]="c:\\air.txt";
	airline *p=l->next ;
	if((fp_air=fopen("filename","w"))==NULL)
	{
		printf("can not open file to write:%s\n",filename);
		exit(0);
	}
	for(;p!=NULL;p=p->next )
	{
	//	fprintf(fp_air,"%s\n",filename);
		printf("%s,%s,%s,%d,%d\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->left );
		fputs(filename,fp_air);
	//	fprintf(fp_air,"%s,%s,%s,%d,%d\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->left );
	}
	PR("air_dat write \n");		
	fclose(fp_air);
	return OK;
}

status save_customer(customer *l)
{
	FILE *fp_customer;
	customer *p=l->next ;
	char filename[]="c:\\customer.txt";
	if((fp_customer=fopen("filename","w"))==NULL)
	{
		printf("can not open file to write:%s\n",filename);
		return ERROR;
	}
	for(;p!=NULL;p=p->next )
	{
		PR("opened %s\n",filename);
		PR("%s,%s,%d\n",p->name ,p->line_num ,p->seat_num );
		fprintf(fp_customer,"%s,%s,%d",p->name ,p->line_num ,p->seat_num );
	}
	PR("customer_dat write \n");		
	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 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[50]="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;
			total=changStrInt(total_str);
			left=changStrInt(left_str);
			insert_airline(&p,line_num,plane_num,end_place,total,left);
			p=p->next ;
		}
	}
	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);
		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);
			insert_customer(&p,name,line_num,seat_num);
			p=p->next ;
		}
	}
	fclose(fp_customer);
	return OK;
}

status creat_airline(airline **l)
{
	airline *p=*l;
	int i=0;
	char *line_num[3]={"bjnc01","bjsh02","shgz03"};
	char *plane_num[3]={"plane1","plane2","plane3"};
	char *end_place[3]={"南昌","上海","广州"};
	int total[3]={100,100,100};
	int left[3]={51,50,78};
	for (i=0;i<3;i++){
		insert_airline(&p,line_num[i],plane_num[i],end_place[i],total[i],left[i]);
	}
	return OK;
}

status creat_customer(customer **l)
{
	customer *p=*l;
	int i=0;
	char *name[3]={"欧阳锦林","尹焕亮","付胜"};
	char *line_num[3]={"bjnc01","bjsh02","shgz03"};
	int seat_num[3]={1,5,10};
	for (i=0;i<3;i++){
		insert_customer(&p,name[i],line_num[i],seat_num[i]);
	}
	return OK;
}*/

	
void main()
{
	
/*	airline *air=init_airline();
	customer *cus=init_customer();
	creat_airline(&air);
	creat_customer(&cus);
	save_airline(air);
	save_customer(cus);*/
	save();
	save1();
	
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -