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

📄 xinxi.c

📁 飞机票的预定系统
💻 C
📖 第 1 页 / 共 2 页
字号:
#include "bianliang.h"
#define N 10			//飞机数

// // // // // // // // // // 输入航班信息 // // // // // // // // // //
void input(emploe em1[10], int k)
{
	FILE *f;
	int i = 0,j=0,a=0;			//a记录航班数量
	char n,num[10];
	airplane air[N];

	if ((f=fopen("a.dat","r+"))==NULL)
	{
		printf("File Can't be find!\n");
	}
	else
	{
		fread(&a,sizeof(a),1,f);
	}
	fclose(f);		
	
	if ((f=fopen("air.dat","r+"))==NULL)		//从文件air.dat中读入数据
	{
		printf("File Can't be find!\n");
	}
	else
	{
		fread(&air,sizeof(air),1,f);
	}
	fclose(f);

	if (em1[k].state == 0)
	{
		printf("\n\t\t\t\t\t\t\t\t\t管理员");
	}
	else
	{
		printf("\n\t\t\t\t\t\t\t\t\t员工");
	}
	printf("\n________________________________________________________________________________");
	
	if (a==N)
	{
loop0:	printf("\n\n\n\n\n\n\n\t\t航班数量已到最大值,请删除无用的航班信息!!");
		printf("\n\n\n\n\n\n\n\n\n\n\n================================================================================");
		printf("\n\t\t\t\t(按任意键返回)");
		fflush(stdin);
		n=getch();
		goto loop4;
	}
	
	for (i = a;i < N;i++)
	{
loop1:  printf("\n\n\t\t\t§请输入第 %d 条航班信息§\n", a + 1);
		printf("\n\t\t\t请输入航班号:");
		fflush(stdin);
		gets(num);
		for (j=0;j<N;j++)
		{
			if (strcmp(num,air[j].num)==0)
			{
				printf("\n\n\n\n\t\t\t该班次已经存在!!");
				printf("\n\n\n\n\n\n\n\n\n================================================================================");
				printf("\n\t\t\t\t(按任意键返回)");
				fflush(stdin);
				n=getch();
				goto loop5;
			}
			
		}
		strcpy(air[i].num,num);
		printf("\n\t\t\t请输入起始站:");
		fflush(stdin);
		gets(air[i].start);
		printf("\n\t\t\t请输入终点站:");
		fflush(stdin);
		gets(air[i].finish);
		printf("\n\t\t\t请输入起飞日期(年-月-日):");
		fflush(stdin);
		scanf("%d-%d-%d", &air[i].day.year, &air[i].day.month, &air[i].day.day);
		printf("\n\t\t\t请输入起飞时间(小时:分钟):");
		fflush(stdin);
		scanf("%d:%d", &air[i].hour.hour, &air[i].hour.minute);
		printf("\n\t\t\t请输入机票数(张):");
		fflush(stdin);
		scanf("%d", &air[i].count);
		printf("\n\t\t\t请输入票价(元):");
		fflush(stdin);
		scanf("%d", &air[i].money);
		system("cls");
		if (em1[k].state == 0)
		{
			printf("\n\t\t\t\t\t\t\t\t\t管理员");
		}
		else
		{
			printf("\n\t\t\t\t\t\t\t\t\t员工");
		}
		printf("\n________________________________________________________________________________");
		printf("\n\t\t\t您输入的航班信息为:");
		printf("\n\n\t\t\t航班号:%s", air[i].num);
		printf("\n\n\t\t\t起始站:%s", air[i].start);
		printf("\n\n\t\t\t终点站:%s", air[i].finish);
		printf("\n\n\t\t\t起飞日期:%d年%d月%d日", air[i].day.year, air[i].day.month, air[i].day.day);
		printf("\n\n\t\t\t起飞时间:%d点%d分", air[i].hour.hour, air[i].hour.minute);
		printf("\n\n\t\t\t票数:%d", air[i].count);
		printf("\n\n\t\t\t票价:%d", air[i].money);
loop2: printf("\n\n\t\t\t是否确认(Y/N)?");
		fflush(stdin);
		scanf("%c", &n);
		switch (n)
		{
		case 'y':
		case 'Y':
loop3: printf("\n\t\t\t第 %d 条航班信息已经输入完毕是否继续(Y/N)?", a + 1);
//	   printf("%d,%d",i,a);
			fflush(stdin);
			scanf("%c", &n);
			switch (n)
			{
			case 'y':
			case 'Y':
				system("cls");
				if (em1[k].state == 0)
				{
					printf("\n\t\t\t\t\t\t\t\t\t管理员");
				}
				else
				{
					printf("\n\t\t\t\t\t\t\t\t\t员工");
				}
				printf("\n________________________________________________________________________________");
				break;
			case 'n':
			case 'N':
				system("cls");
				if (em1[k].state == 0)
				{
					printf("\n\t\t\t\t\t\t\t\t\t管理员");
				}
				else
				{
					printf("\n\t\t\t\t\t\t\t\t\t员工");
				}
				printf("\n________________________________________________________________________________");
				goto loop4;
			default:
				system("cls");
				if (em1[k].state == 0)
				{
					printf("\n\t\t\t\t\t\t\t\t\t管理员");
				}
				else
				{
					printf("\n\t\t\t\t\t\t\t\t\t员工");
				}
				printf("\n________________________________________________________________________________");
				printf("\n\n\n\n\n\n\n\t\t\t您的输入有误,请重新输入!!\n\n");
				goto loop3;
			}
			break;
		case 'n':
		case 'N':
			system("cls");
			if (em1[k].state == 0)
			{
				printf("\n\t\t\t\t\t\t\t\t\t管理员");
			}
			else
			{
				printf("\n\t\t\t\t\t\t\t\t\t员工");
			}
			printf("\n________________________________________________________________________________");
			goto loop1;
			break;
		default:
			system("cls");
			if (em1[k].state == 0)
			{
				printf("\n\t\t\t\t\t\t\t\t\t管理员");
			}
			else
			{
				printf("\n\t\t\t\t\t\t\t\t\t员工");
			}
			printf("\n________________________________________________________________________________");
			printf("\n\n\n\n\n\n\n\t\t\t您的输入有误,请重新输入!!");
			goto loop2;
		}
	}
	if (i==N)
	{
		goto loop0;
	}

loop4: if ((f = fopen("air.dat", "w+b")) == NULL)
	{
		printf("File Can't be find!\n");
	}
	else
	{
		fflush(stdin);
		fwrite(&air, sizeof(air), 1, f);
	}
	fclose(f);

	if ((f=fopen("a.dat","r+"))==NULL)
	{
		printf("File Can't be find!\n");
	}
	else
	{
		a++;
		fwrite(&a,sizeof(a),1,f);
	}
	fclose(f);
loop5:;
}





// // // // // // // // // // 删除航班信息 // // // // // // // // // //
void delair(emploe em1[10], int k)
{
	FILE *f;
	int i = 0, j = 0, a = 0, m = 0;
	char hangban[5],n;
	airplane air[N];

	if ((f=fopen("a.dat","r"))==NULL)
	{
		printf("File Can't be find!\n");
	}
	else
	{
		fread(&a,sizeof(a),1,f);
	}
	fclose(f);

	if ((f=fopen("air.dat","r"))==NULL)		//从文件air.dat中读入数据
	{
		printf("File Can't be find!\n");
	}
	else
	{
		fread(&air,sizeof(air),1,f);
	}
	fclose(f);
//	printf("%s,%s,%s",air[9].num,air[9].start,air[9].finish);
	printf("\n\t\t\t\t\t\t\t\t\t管理员");
	printf("\n________________________________________________________________________________");
	printf("\n\t\t\t\t现有航班信息如下:");
	printf("\n\n\t航班号\t起始站\t终点站\t      起飞时间\t\t剩余票数    票价\n\n");

	for (i=0;i<a;i++)
	{
		if (strlen(air[i].num)>10)
		{
			break;
		}
		printf("\t  %s\t %s\t %s\t%d年%d月%d日 %d点%d分\t   %d\t     %d\t",air[i].num,air[i].start,air[i].finish,air[i].day.year,air[i].day.month,air[i].day.day,air[i].hour.hour,air[i].hour.minute,air[i].count,air[i].money);
	}
	
	printf("\n\t\t\t请输入您要删除的航班号:");
	fflush(stdin);
	gets(hangban);
	
	for (i=0;i<a;i++) 
	{
		if (strcmp(hangban,air[i].num)==0)
		{	
			goto loop2;
		}
	}
	system("cls");
	printf("\n\t\t\t\t\t\t\t\t\t管理员");
	printf("\n________________________________________________________________________________");
	printf("\n\n\n\n\n\n\n\t\t\t没有找到您输入的航班");
	printf("\n\n\n\n\n\n\n\n\n\n\n================================================================================");
	printf("\n\t\t\t\t(按任意键返回)");
	fflush(stdin);
	n=getch();
	goto loop4;
loop2:printf("\n\t\t\t您确定要删除 %s 次航班(Y/N)?",air[i].num);
// 	  printf("%d,%d",i,a);
	  fflush(stdin);
	  scanf("%c",&n);
	  switch(n)
	  {
	  case 'y':
	  case 'Y':
		  system("cls");
		  printf("\n\t\t\t\t\t\t\t\t\t管理员");
		  printf("\n________________________________________________________________________________");
		  printf("\n\n\n\n\n\n\n\n\t\t\t航班 %s 已成功删除!!",air[i].num);
		  if ((f = fopen("air.dat", "w+b")) == NULL)
		  {
			  printf("File Can't be find!\n");
		  }
		  else
		  {
			  for (m=i;m<a;m++)
			  {
				  strcpy(air[m].num,air[m+1].num);
				  strcpy(air[m].start,air[m+1].start);
				  strcpy(air[m].finish,air[m+1].finish);
				  air[m].day.year=air[m+1].day.year;
				  air[m].day.month=air[m+1].day.month;
				  air[m].day.day=air[m+1].day.day;
				  air[m].hour.hour=air[m+1].hour.hour;
				  air[m].hour.minute=air[m+1].hour.minute;
				  air[m].count=air[m+1].count;
				  air[m].money=air[m+1].money;
			  }
			  fwrite(&air, sizeof(air),1 ,f);
		  }
		  fclose(f);
		  
		  if ((f=fopen("a.dat","r+"))==NULL)
		  {
			  printf("File Can't be find!\n");
		  }
		  else
		  {
			  a--;
			  fwrite(&a,sizeof(a),1,f);
		  }
		  fclose(f);
		  
		  printf("\n\n\n\n\n\n\n\n\n\n================================================================================");
		  printf("\n\t\t\t\t(按任意键返回)");
		  fflush(stdin);
		  n=getch();
		  break;
	  case 'n':
	  case 'N':
		  goto loop4;
		  break;
	  default:
		  system("cls");
		  printf("\n\t\t\t\t\t\t\t\t\t管理员");
		  printf("\n________________________________________________________________________________");
		  printf("\n\n\n\n\n\n\n\t\t\t您的输入错误,请重新输入!!");
		  printf("\n\n\n\n\n\n\n\n\n\n\n================================================================================");
		  printf("\n\t\t\t\t(按任意键返回)");
		  fflush(stdin);
		  n=getch();
		  system("cls");
		  printf("\n\t\t\t\t\t\t\t\t\t管理员");
		  printf("\n________________________________________________________________________________");
		  goto loop2;
	  }
loop4:;
}

// // // // // // // // // // 查询航班信息 // // // // // // // // // //
void output(emploe em1[10], int k)
{
	FILE *f;
	int i = 0, j = 0, n = -1;
	airplane air[N], p;

loop1: if (em1[k].state == 0)
	{
		printf("\n\t\t\t\t\t\t\t\t\t管理员");
	}
	else
	{
		printf("\n\t\t\t\t\t\t\t\t\t员工");
	}
	printf("\n________________________________________________________________________________");
	printf("\n\n\n\n\t\t请输入您要查询的方式:");
	printf("\n\n\n\t\t1,航班号");
	printf("\n\n\t\t2,目的地");
	printf("\n\n\t\t3,起飞时间");
	printf("\n\n\t\t0,返回\n");
	printf("\n\n\n\n================================================================================");
	n = -1;
	fflush(stdin);
	scanf("%d", &n);
	if ((f = fopen("air.dat", "r")) == NULL)
	{
		printf("File Can't be find!\n");
	}
	else
	{
		fread(&air, sizeof(air), 1, f);
	}
	fclose(f);
	switch (n)
	{

⌨️ 快捷键说明

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