亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hangkongdingpiao.c

?? 數據結構課程設計用C實現的航空訂票系統
?? C
?? 第 1 頁 / 共 3 頁
字號:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
#define MAX 13
#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR 0
#define OVERFLOW -2
#define OPSETSIZE 7
#define STACK_INIF_SIZE 50
#define STACKINCREMENT 10
#define PR printf
int number[2][4];     
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));
	/*{
		PR("內存分配失敗\n");
		return OVERFLOW;
	}*/
	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 creat_airline(airline **l)//創建airline單鏈表
{
	airline *p=*l;
	int i=0;
	char *line_num[3]={"bjgy01","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單鏈表
{
	customer *p=*l;
	int i=0;
	char *name[3]={"李勇","張潔","劉勝"};
	char *line_num[3]={"bjgy01","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;
}

status increase_air(airline *l,char *line_num,char *plane_num,char *end_place,int total)//增加航線
{
	airline *p=l->next ;
	for(;p->next !=NULL;p=p->next){}
	insert_airline(&p,line_num,plane_num,end_place,total,total);
	PR("增加航班 %s 成功!\n",line_num);
	return OK;
}

status book(airline *l,char *line_num,customer *c,char *name)//訂票
{
	airline *p=l;	
	customer *q=c->next ;
	p=l->next ;
	for(;q->next !=NULL;q=q->next){}		
//	PR("%s\n",q->name );
	for(;p!=NULL;p=p->next )
	{
		if(strcmp(line_num,p->line_num )==0)
		{
			if(p->left >0)
			{
				PR("恭喜您!訂票成功!\n");
				PR("你的座位號是:  %d\n",(p->total -p->left +1));
				insert_customer(&q,name,line_num,p->total -p->left +1);
				p->left --;
				return OK;
			}
			else PR("對不起,座位已滿!\n");
			return 0;
		}
	}
	PR("對不起,沒有這個航班號!\n");
	return ERROR;
}

status print_airline(airline *l)//打印航線信息
{
	airline *p=l->next ;
	for(;p!=NULL;p=p->next )
	{
		PR("%8s%8s%8s%9d%9d\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->left );
	}
	return OK;
}

status print_customer(customer *l)//打印顧客信息
{
	customer *p=l->next ;
	for(;p!=NULL;p=p->next )
	{
		PR("%10s      %10s       %d\n",p->name ,p->line_num ,p->seat_num );
	}
	return OK;
}

enum
{
	eNumber = 0,	//操作數
	eOperator = 1	//算子
};

int oper[7]={43,45,42,47,40,41,35};

typedef struct sqlist{
	int bol;//bol is 0 when num_ch is a number;bol is 1 when the num_ch is a oprater
	int num_ch;
	struct sqlist *next;
	}sqlist;

typedef struct sqstack{
	int *base;
	int *top;
	int stacksize;
	}sqstack;

unsigned char Prior[7][7] = {     // 表3.1  算符間的優先關系
  	  '>','>','<','<','<','>','>',
	  '>','>','<','<','<','>','>',
	  '>','>','>','>','<','>','>',
	  '>','>','>','>','<','>','>',	
	  '<','<','<','<','<','=',' ',
	  '>','>','>','>',' ','>','>',
	  '<','<','<','<','<',' ','='
};

char OPSET[OPSETSIZE]={'+' , '-' , '*' , '/' ,'(' , ')' , '#'};

status init_sq(sqlist *l){//初始化鏈表
	l=(sqlist*)malloc(sizeof(sqlist));
	if(l==NULL){
		exit(OVERFLOW);
		}
	l->next=NULL;
	return OK;
	}

status insert_sq(sqlist **p,int e,int bl){//鏈表插入操作
	sqlist *q;
	q=(sqlist*)malloc(sizeof(sqlist));
	q->num_ch=e;
	q->bol=bl;
	q->next=NULL;
	(*p)->next=q;
	(*p)=(*p)->next;
 //   printf("insert %d	,%dis succssed!\n",e,bl);
	return OK;
	}

int check(sqlist l)//保證輸入的數字是給出的四個數字
{
	int right=1,find=0,i;
	sqlist *q=&l;
	q=q->next ;
	for (;q->next!=NULL;q=q->next){
		if(q->bol==1){
			if(q->num_ch <=39||q->num_ch>57||q->num_ch==44||q->num_ch==46){
				right=0;
				printf("%c不是有效的運算符!\n");
			}
		}
		else {
			find=0;
			for(i=0;i<4;i++){
				if(number[1][i]==0&&number[0][i]==q->num_ch ){
					number[1][i]=1;
					find=1;
					break;
				}
			}
			if(find==0){				
				printf("%d 不在給出的四個數字中!\n",q->num_ch );
				right=0;
			}
		}
	}//end for
//	printf("the right is %d\n",right);
/*	for (i=0;i<4;i++){
		printf("number[1][%d]=%d\n",i,number[1][i]);
	}*/
	for (i=0;i<4;i++){
		if(number[1][i]==0){
			printf("%d沒有用上!\n",number[0][i]);
			right=0;
		}
	}
	return right;
	
}

int chang(char *s,sqlist *l){//將用戶的輸入轉化為單鏈表
	int t=0;
	unsigned int i=0;
   	 int bl,ch;
	int a1,a2,a;
	sqlist *p=l;
	for (;i<strlen(s);i++){
		if(s[i]>47&&s[i]<58&&t==0){
			a1=(int)s[i]-48;
			t++;
			}
		else if(s[i]>47&&s[i]<58&&t==1){
			a2=(int)s[i]-48;
			a=a1*10+a2;
			t++;
            }
		else if(s[i]<48&&s[i]>39&&s[i]!=44&&s[i]!=46){
			if(t==1){
                        bl=0;
						insert_sq(&p,a1,bl);
		                t=0;
				}
			else if(t==2){
				bl=0;
				insert_sq(&p,a,bl);
                t=0;
				}
			bl=1;
			ch=(int)s[i];
			insert_sq(&p,ch,bl);
            t=0;
			}
		else {
			printf("%c不是有效的運算符!\n",s[i]);
		}
		}   //end for
	i=strlen(s)-1;
	if(s[i]>47&&s[i]<58){
		if(s[i-1]>47&&s[i-1]<58){
		           bl=0;
			   insert_sq(&p,a,bl);
			   }
		else {
			bl=0;
			insert_sq(&p,a1,bl);
			}
		}
	bl=1;
	a=35;
	insert_sq(&p,a,bl);
//    printf("chang is OK\n");
	return (check(*l));
	}

/*status print_sq(sqlist *l)
{
	sqlist *p=l;
	if(l){
		for (p=p->next ;p!=NULL;p=p->next){

				printf("%d,%d\n",p->num_ch,p->bol );

				//printf("OK!");
				}
		}
	else printf("空!");
	return OK;
}*/

int Operate(int a,int theta, int b) {//計算
//	printf("a=%d,theta=%c,b=%d\n",a,theta,b);
   switch(theta) {

      case 43: return a+b;
      case 45: return a-b;
      case 42: return a*b;
      case 47:
		  {
			  if(b==0){
			//	printf("除數不能為0!\n");
				return -2000;
			//	exit(ERROR);
				}
			  if (a%b==0){
			  return a/b;
			  }
			  else {
			  //printf("不能為小數\n");
				return -100;
			 // exit(0);
			  }
		  }
      default : return 0;
   } 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国精品在线观看| 亚洲午夜电影网| 精品黑人一区二区三区久久| 在线日韩国产精品| 色婷婷激情久久| 色综合久久中文综合久久牛| 9人人澡人人爽人人精品| 高清成人免费视频| 91麻豆精东视频| 91精品福利视频| 欧美视频在线观看一区二区| 欧美系列日韩一区| 在线不卡免费av| 日韩欧美一区二区不卡| 精品国产乱码久久久久久夜甘婷婷 | 亚洲一区国产视频| 亚洲一区自拍偷拍| 久久成人免费网站| 大尺度一区二区| 色婷婷综合五月| 欧美日韩精品系列| 精品国产污污免费网站入口| 久久精品人人做人人综合 | 日韩精品福利网| 国产麻豆视频一区| www.在线欧美| 这里只有精品视频在线观看| 亚洲精品一区二区三区99| 日本一区二区三区免费乱视频| 国产精品久久久久久亚洲毛片 | 免费在线观看精品| 国产精品一区免费在线观看| 不卡av在线网| 日韩一区二区影院| 日韩毛片精品高清免费| 日韩中文字幕麻豆| 成人性生交大片免费看中文 | 欧美一区欧美二区| 国产三区在线成人av| 亚洲黄色免费电影| 黄一区二区三区| 在线国产电影不卡| 久久精品亚洲精品国产欧美| 一区二区三区四区不卡在线 | 一区二区中文字幕在线| 日本vs亚洲vs韩国一区三区| 国产成人av电影在线| 欧美精品久久久久久久多人混战| 国产亚洲一区二区在线观看| 亚洲成a人片在线不卡一二三区| 国产盗摄一区二区| 欧美日韩国产一区| 亚洲视频免费在线观看| 精品无人码麻豆乱码1区2区| 欧美日韩精品免费观看视频| 国产精品乱码久久久久久| 久久国产精品99久久久久久老狼| 色婷婷av一区二区三区大白胸| 久久先锋影音av鲁色资源网| 日韩中文字幕麻豆| 欧美日韩国产另类一区| 最新中文字幕一区二区三区| 久久av老司机精品网站导航| 欧美精品高清视频| 亚洲自拍偷拍av| 色噜噜久久综合| 亚洲桃色在线一区| 成人aa视频在线观看| 久久免费国产精品| 激情久久五月天| 日韩欧美成人激情| 狂野欧美性猛交blacked| 91精品国产入口在线| 亚洲线精品一区二区三区| 91丨九色porny丨蝌蚪| 国产精品剧情在线亚洲| 成人免费毛片片v| 国产区在线观看成人精品| 国产精品综合av一区二区国产馆| 日韩免费在线观看| 韩国理伦片一区二区三区在线播放| 欧美成人video| 韩国成人精品a∨在线观看| 久久精品综合网| 成人网页在线观看| 中文字幕一区二区三区av| proumb性欧美在线观看| 中文字幕一区二区三区在线不卡| av一区二区三区黑人| 亚洲欧美色综合| 欧美亚洲综合另类| 秋霞电影一区二区| 久久久午夜精品| www.性欧美| 午夜久久久久久久久| 欧美一区二区三区日韩视频| 国内偷窥港台综合视频在线播放| 国产亚洲欧美激情| 色悠久久久久综合欧美99| 亚洲第一福利一区| 日韩欧美亚洲另类制服综合在线| 久久99精品久久久久婷婷| 国产情人综合久久777777| 91亚洲精华国产精华精华液| 亚洲午夜日本在线观看| 精品少妇一区二区| 一本大道综合伊人精品热热| 五月天亚洲婷婷| 日本一区二区三区四区在线视频 | 欧美国产一区在线| 欧美系列亚洲系列| 国产成人综合视频| 亚洲成在人线在线播放| 久久久久久亚洲综合影院红桃 | 日本vs亚洲vs韩国一区三区二区 | 麻豆久久久久久久| 中文字幕亚洲一区二区va在线| 欧美日韩一区二区三区高清| 国内精品不卡在线| 一区二区三区在线影院| 日韩三级免费观看| 色婷婷av久久久久久久| 激情欧美一区二区三区在线观看| 亚洲伊人色欲综合网| 国产精品天干天干在观线| 日韩欧美中文一区| 欧美日韩中文精品| 高清shemale亚洲人妖| 水蜜桃久久夜色精品一区的特点 | 欧美一区二区精品| 色天天综合久久久久综合片| 激情小说亚洲一区| 奇米精品一区二区三区四区| 亚洲三级小视频| 国产日产亚洲精品系列| 亚洲精品一区二区三区蜜桃下载| 欧美日本免费一区二区三区| jizz一区二区| 丁香婷婷深情五月亚洲| 日产欧产美韩系列久久99| 亚洲欧洲另类国产综合| 26uuu国产在线精品一区二区| 欧美日韩成人综合天天影院 | 青娱乐精品视频| 亚洲一级不卡视频| 亚洲另类一区二区| 中文字幕日韩av资源站| 国产亚洲精品中文字幕| 久久午夜羞羞影院免费观看| 欧美成人伊人久久综合网| 欧美一区二区三区视频在线| 欧美日韩国产区一| 91精品麻豆日日躁夜夜躁| 在线免费av一区| 欧美三级视频在线| 欧美日韩小视频| 欧美日韩一区二区电影| 欧美久久久久中文字幕| 337p亚洲精品色噜噜狠狠| 777色狠狠一区二区三区| 欧美片在线播放| 欧美精品第一页| 欧美电影精品一区二区| 精品国产伦一区二区三区观看体验| 91精品福利在线一区二区三区| 91精品国产欧美一区二区成人 | av日韩在线网站| 色999日韩国产欧美一区二区| 一本大道av伊人久久综合| 在线精品亚洲一区二区不卡| 777久久久精品| 久久蜜桃av一区精品变态类天堂| 久久日韩粉嫩一区二区三区| 国产午夜精品福利| 日韩一区欧美小说| 亚洲图片一区二区| 青青草国产成人av片免费| 老色鬼精品视频在线观看播放| 国产精品亚洲第一| av午夜一区麻豆| 欧美精品一二三| 久久久亚洲精品一区二区三区| 中文字幕+乱码+中文字幕一区| 一区二区三区精品久久久| 久久精品99久久久| 99久久精品99国产精品| 欧美精品视频www在线观看| 久久久久久久精| 一区二区激情视频| 亚洲三级在线免费观看| 成人免费毛片嘿嘿连载视频| 一区二区三区四区中文字幕| 蜜臀av在线播放一区二区三区 | 免费国产亚洲视频| 高清在线观看日韩| 欧美精品第1页| 日韩一区二区三| 欧美一区二区在线免费播放| 国产视频亚洲色图| 另类的小说在线视频另类成人小视频在线|