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

📄 fly_add.c

📁 一个飞机订票系统 能打给出航班信息以及售飞机票处理
💻 C
字号:
/*文件fly_add.c代码*/
/*增加般班信息*/

#include <stdio.h>
#include <string.h>
#define N 30
add()
{
	struct flyinf {
		char no[10];	/*航班号*/
		char end[20];	/*起飞站 */
		char start[20];	/*终点站 */
		char time[15];	/*起飞时间 */
		int num;	/*乘客数目 */
		int number;	/*本航班有乘客的数目 */
	} f_inf[2];		/*f_inf[0]用于存放从文件中读出的职工信息,f_inf[1]用于
				   存放新增的职工信息. */
	int total, i, addflag = 0;
	FILE *fp1, *fp2, *fp3;	/*fp1用于指向存放职工信息的文件,fp2用于指向一个临时
				   文件 */
	clrscr();
	fp1 = fopen("fly_inf.dat", "rb");
	if (fp1 == NULL)
		total = 0;
	else
		i = fread(&total, sizeof(int), 1, fp1);
	/*total获得职工信息文件中职工的总人数. */
	if (i != 1)
		total = 0;
	fp2 = fopen("fly_inf.out", "wb");
	if (fp2 == NULL) {
		printf("不能创建文件!\n");
		getchar();
		fcloseall();
		return;
	}
	if (total > N) {
		printf("此机场只有%d驾飞机!", N);
		getch();
		return;
	}
	printf("\n输入航班信息:");
	printf("\n请输入一航班的航班号(不超过九位数):");
	scanf("%s", f_inf[1].no);
	printf("\n请输入航班起飞站:");
	scanf("%s", f_inf[1].start);
	printf("\n请输入航班终点站:");
	scanf( %s", f_inf[1].end);
	printf("\n请输入飞机起飞的时间:");
	scanf("%s", f_inf[1].time);
	printf("\n请输入可乘座的乘客数目:");
	scanf("%d", &f_inf[1].num);
	printf("\n请输入现有机票的数目:");
	scanf("%d", &f_inf[1].number);
	if((fp3 = fopen(f_inf[1].no, "wb")) == NULL)
	{
		printf("创建文件失败!");
		getch();
		fcloseall();
		return;
	}
	fclose(fp3);
	if(f_inf[1].num < f_inf[1].number || f_inf[1].num > 300)
	{
		printf("您输入错误!");
		getch();
		remove("wmen_crd.out");
		fcloseall();
		return;
	}
	/*下面程序用于实现航班的录入功能. */
	i = total + 1;
	fwrite(&i, sizeof(int), 1, fp2);	/*将录入后的总航班数写入临时文件. */
	if (total) {
		for (i = 0; i < total; i++) {
			fread(f_inf, sizeof(struct flyinf), 1, fp1);
			if (addflag) {
				fwrite(f_inf, sizeof(struct flyinf), 1, fp2);
				continue;
			}
			if (strcmp(f_inf[0].no, f_inf[1].no) < 0)
				fwrite(f_inf, sizeof(struct flyinf), 1, fp2);
			else {
				fwrite(&f_inf[1], sizeof(struct flyinf), 1, fp2);
				fwrite(f_inf, sizeof(struct flyinf), 1, fp2);
				addflag = 1;
			}
		}
		if (!addflag)
			fwrite(&f_inf[1], sizeof(struct flyinf), 1, fp2);
	}
	fwrite(&f_inf[1], sizeof(struct flyinf), 1, fp2);	/*将输入的航班信息
								   写到临时文件中去. */
	fcloseall();
	remove("fly_inf.dat");
	if(!rename("fly_inf.out", "fly_inf.dat"))
		printf("录入成功!");
	else
		printf("重命名错误!");
	getchar();
}

⌨️ 快捷键说明

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