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

📄 flightmanagement.txt

📁 基本实现航班管理系统功能
💻 TXT
📖 第 1 页 / 共 2 页
字号:
repeat3:
				scanf("%d",&c);
				if(c<1||c>2)
				{
					printf("输入有误!请重输:\n");                 /*输入正误判断*/
					goto repeat3;
				}
				switch(c)
				{
				case(1):
					p1=p2=head;
					goto repeat;
					break;
				case(2):break;
				}
			}
			break;
		case(2):   
			printf("你真的要删除全部记录?");                                      /*删除全部记录*/ 
			printf("请选择:\n1.确认\t2.取消\n:\n");
repeat2:
			scanf("%d",&b);
			if(b<1||b>2)
				{
					printf("输入有误!请重输:\n");            /*输入正误判断*/
					goto repeat2;
				}
			switch(b)
			{
			case(1):
				while(p1)                      /**/
				{
					p2=p1->next;             /*记录下一结点*/
                    free(p1);                /*释放*/
			        p1=p2;        
		        }
			head=NULL;
			printf("删除成功!\n");
			case(2):
				break;
			}	
			break;
	   }
	}
	return(head);
}

void menu2()               /*菜单显示函数*/ 
{
	printf("\n1.航线\n");
	printf("2.航班号\n");
	printf("3.航班日期\n");
	printf("4.机型\n");
	printf("5.所属公司\n");
	printf("6.取消\n");
	printf("请您选择你需要修改的信息编号<1~5>:\n");
}

/****************更新记录函数************************/

void change(struct Address *head)   /*信息更改改函数*/ 
{
	struct Address *p;
	p=head;
	int i;
	char chline[20];
	if(head==NULL)                   /*系统信息有无判断*/ 
	{
		system("cls");
		printf("\n对不起,系统中暂时没有可更改的信息!\n");
	}
	else
	{
		system("cls"); 
start:	     
	    printf("\n请输入您要更改信息的航线:\n"); 
		printf("如:bjsh\n");
	    scanf("%s",chline);
		while(strcmp(chline,p->Airline)!=0&&p->next!=0)
			p=p->next;
		if(strcmp(chline,p->Airline)==0)            /*寻找系统中存在的要更改的结点*/ 
		{   
			system("cls");
			printf("您所需更改的航线信息为:\n");
			printf("航线\t航号班\t航班日期\t机型\t所属公司\n\n");
		    printf("%s\t%s\t%ld\t%d\t%s\n",p->Airline,p->Number,p->Date,p->Plane,p->Company);
			menu2();		
repeat2:
			scanf("%d",&i);
			if(i<1||i>6)
			{
				printf("输入错误!请重输:\n");
				goto repeat2;
			}
			switch(i)
			{
			case(1):
				system("cls");
				printf("请输入正确航线的信息:\n");    /*修改航线信息*/ 
				scanf("%s",p->Airline);
				system("cls");
				printf("*航线信息修改成功!\n");
				break;
			case(2):
				system("cls");
				printf("请输入正确航班号的信息:\n");  /*修改航班号信息*/ 
				scanf("%s",p->Number);
				system("cls");
				printf("*航线信息修改成功!\n");
				break;
			case(3):
				system("cls");
				printf("请输入正确航班日期的信息:\n");  /*修改航班日期信息*/ 
				scanf("%ld",&p->Date);
				system("cls");
				printf("*航线信息修改成功!\n");
				break;
			case(4):
				system("cls");
				printf("请输入正确机型的信息:\n");        /*修改机型信息*/ 
				scanf("%d",&p->Plane);
				system("cls");
				printf("*航线信息修改成功!\n");
				break;
			case(5):
				system("cls");
				printf("请输入正确所属公司的信息:\n");   /*修改所属公司信息*/ 
				scanf("%s",p->Company);
				system("cls");
				printf("*航线信息修改成功!\n");
				break;
			case(6):
				system("cls");
				break;
			}
		}
		else
		{
			system("cls");
			printf("你输入的信息有误!请重试!\n"); 
			printf("~   ~   ~   ~   ~   ~   ~");
			p=head;
			goto start;
		
		}

	}

}

/******************信息保存函数**********************/

void save(struct Address * head)   /*保存信息函数*/ 
{
	struct Address *p;
	p=head;
	FILE *fp;
	if(head!=NULL)
	{
		if((fp=fopen("flight.txt","wb"))==NULL)   /*文件打开判断*/ 
		{  
			printf("文件打开失败!\n");
			return;                                 /*退出函数*/ 
		}
		while(p) 
		{            
			if(fwrite(p,sizeof(struct Address),1,fp)!=1)  /*将链表写入文件*/ 
				printf("file write error!\n");
			p=p->next;
		}
		fclose(fp); 
	}
	else
	{
		system("cls");
		printf("对不起,系统中暂时没有可保存的信息!");
	}
	fclose(fp);                              /*关闭文件*/ 
}

/******************文件打开函数**********************/

struct Address *open()      
{
	struct Address *p1,*p2,*head=NULL;       /*定义变量*/       
	FILE *fp;
	if((fp=fopen("flight.txt","rb"))==NULL)
	{
		printf("文件打开失败!\n");         /*如不能打开,则结束程序*/ 
        exit(0); 
	}
	p1=(struct Address *)malloc(sizeof(struct Address));/*开辟空间*/ 
	if(!p1)                                       /*开辟空间与否判断*/   
	{ 
		printf("内存溢出!Out of memory!\n"); 
		return(head); 
    }  
	head=p1;  
	while(!feof(fp))     /*判断文件是否结束*/ 
	{ 
		if(fread(p1,sizeof(struct Address),1,fp)!=1) break; /*如果没读到数据,跳出循环*/ 
		p1->next=(struct Address *)malloc(sizeof(struct Address)); /*为下一个结点开辟空间*/ 
		if(!p1->next) 
		{ 
			printf("Out of memory!\n"); 
            return (head);                      /*节点开辟失败,返回head值*/
		} 
		p2=p1;                             /*使p2指向刚才p1指向的结点*/ 
		p1=p1->next;                      /*指针后移,新读入数据链到当前表尾*/ 
	} 
	p2->next=NULL;                       /*最后一个结点的后继指针为空*/ 
	fclose(fp);
	system("cls");
	printf("   ~*********************\n");
	printf("    ---读取数据成功!----\n"); 
	printf("   ~*********************\n");
	return(head);
}


void illuminate()                /*定义解释航线命名函数*/
{
	printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
	printf("\n有关航线命名:\n如:bjsh  表示 \t始发地:北京\t目的地:上海\n");
	printf("********************************************");
	printf("\n有关本系统用到的地点:\nbj\t北京\tsh\t上海\tgz\t广州\nbl\t柏林\tny\t纽约\tld\t伦敦\n");
	printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
	printf("\n********************************************\n");
	printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
	printf("\n有关本系统用到的航空公司:\nCA\t国航\t\t  UA\t美联航\nCZ\t南航\t\t  LH\t汉莎\n");
	printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
}

void mainmenu()         /*主菜单函数*/ 
{
    printf("\n\t************~~~~~~~~~~~~~~~~~************");
	printf("\n\n\t*\t欢迎您使用航班信息管理系统 !\t*");
	printf("\n\n\t************~~~~~~~~~~~~~~~~~************\n\n");
	printf("菜单\n");
	printf("1.添加记录\n");
	printf("2.显示记录\n");
	printf("3.分类查询\n");
	printf("4.航班号的排序\n");
	printf("5.删除记录\n");
	printf("6.更新记录\n");
	printf("7.保存记录\n");
	printf("8.读入记录\n");
	printf("9.说明\n");
	printf("10.退出\n");
	printf("请输入菜单选项(1~10):\n");
}

void main()                /*主函数*/ 
{
	struct Address *head=NULL;  
	start:                         /*主菜单位置标志*/ 
	int i; 
	mainmenu();                    /*输入值位置标志*/
repeat2:                            
	scanf("%d",&i);
	if(i<1||i>10)                    
	{
		printf("输入错误!请重输:\n");
		goto repeat2;
	}
	switch(i)
	{
	case(1):                                    /*添加记录*/
		system("cls");
		printf("请输入:\n如:\n航线\t航班号\t航班日期\t机型\t所属公司(全部输入0时输入结束)\n");
	    printf("bjsh\tCA231\t20080808\t737\tCU\n");
        printf("0\t0\t0\t\t0\t0\n");
		printf("*-**--***---****----*****-----******------*******-------********-----~");
	    printf("\n\n请输入:\n航线\t航班号\t航班日期\t机型\t所属公司(全部输入0时输入结束)\n");
		head=creat(head);
	    getchar();
	    printf("\n*****记录添加完成!*****\n\n");
	    printf("*****按任意键返回主菜单!\n");
	    getchar();
	    system("cls");
		goto start;
		break;
	case(2):                             /*显示所有记录*/ 
		system("cls");
		if(head==NULL)
			printf("\n对不起,系统暂时没有您需要的信息!\n");
		else
			print(head);
		getchar();
		printf("*   *   *   *   *   *   *\n");
		printf("----按回车键返回主菜单!~\n");
		getchar();          
		system("cls");
		goto start;
		break;
	case(3):         /*实现分类查询记录*/ 
		system("cls");
		if(head==NULL)
			printf("\n对不起,系统暂时没有您需要的信息!\n");
		else
			inqurement(head);
		getchar();
		printf("*   *   *   *   *   *   *\n");
		printf("----按回车键返回主菜单!~\n");
		getchar(); 
		system("cls");
		goto start;
		break;
	case(4):                 /*航班号排序后显示*/ 
		system("cls");
		if(head==NULL)
			printf("\n对不起,系统暂时没有您需要的信息!\n");
		else
		{
			printf("************\n");
			printf("*排序后的记录:\n\n");
			print(list(head));
		}
		getchar();
		printf("*   *   *   *   *   *   *\n");
		printf("----按回车键返回主菜单!~\n");
		getchar();
		system("cls");
		goto start;
		break;
	case(5):            /*实现记录的删除*/ 
		head=dele(head);
		getchar();
		printf("*   *   *   *   *   *   *\n");
		printf("----按回车键返回主菜单!~\n");
		getchar();
		system("cls");
		goto start;
		break;
	case(6):               /*实现对已存在记录的信息更改*/ 
		change(head);
		getchar();
		printf("*   *   *   *   *   *   *\n");
		printf("----按回车键返回主菜单!~\n");
		getchar();
		system("cls");
		goto start;
		break;
	case(7):
		if(head==NULL)
		{
			system("cls");
			printf("\n对不起,系统暂时没有您可以保存的信息!\n");
			getchar();
		}
		else
		{
			save(head);               /*将记录保存在文件中*/ 
		    getchar();   
		    system("cls");
		    printf("---保存成功!\n");
		}
	    printf("*   *   *   *   *   *   *\n");
	    printf("---按回车键返回主菜单!~\n");
	    getchar();
	    system("cls");
	    goto start;
	case(8):                  /*从文件读入记录*/ 
		head=open(); 
		getchar();
		printf("\n-----按回车键返回主菜单!\n");
		getchar();
		system("cls");
		goto start;
		break;
	case(9):
		system("cls");
        illuminate();
		getchar();
		printf("\n\n---按回车键返回主菜单!\n");
		getchar();
		system("cls");
		goto start;	
		break;
	case(10):                        /*退出系统*/ 
		system("cls");
		free(head);                /* 释放内存*/
		printf("\n~~~~~~~~~~~~~~~~~~\n");
		printf("*感谢您使用本系统!\n******************\n* 再见!*\n\n");
	}
}

⌨️ 快捷键说明

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