C语言课设——票务管理

发现最近查找课设的同学比较多,专门查找了以前的程序,时间匆忙,不做太多介绍,希望给你带来帮助。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<Windows.h>
#include<string.h>
#define LEN sizeof(struct feiji)
typedef struct feiji
{
	int might1;//管理员访问权限1
	int might2;//服务员访问权限234
	int might3;//访问权限5
	char account[20];//账户
	char possword[20];//密码
	char name[20];//姓名
	char ID[20];//身份证号
	char chufa[20];
	char zhongdian[20];
	char time[30];
	char hangbanhao[10];
	char feijihao[20];
	int weihao;
	struct feiji* next;//
}LinkList;
void menu1(struct feiji* p);
void menu22(struct feiji* p);
void menu2(struct feiji* p);
void menu33(struct feiji* p);
void menu311(struct feiji* p);
void ADD(LinkList* p);
void chaxun1(LinkList* p);
void tongji1(LinkList* p);
void shoupiao(LinkList* p);
void huanpiao(LinkList* p);
void tuipiao(LinkList* p);
void dayin(LinkList* p);
void Remove(LinkList* p);
void ListInsert(LinkList* L, LinkList* n);
void readfeijiput(LinkList* L);
void savefeijiFile(LinkList* L);
void ADD1(LinkList* p);
void amend(LinkList* p);
void statistics2(LinkList* p);
void sanchu(LinkList* p);
void chaxunhangxian(LinkList* p);
void ADD(LinkList* p)
{
	struct feiji* n = p->next;
	struct feiji* h = p->next;
	struct feiji* q;
	int flag = 0, i = 0, j = 0, k = 1, a = 0;
	char chufa[20], zhongdian[20], time[30], hangbanhao[10], feijihao[20];
	int weihao;
	system("cls");
	printf("请输入出发点\n");
	scanf("%s", chufa); getchar();
	printf("请输入终点\n");
	scanf("%s", zhongdian); getchar();
	printf("请输入班次时间(月.日.时.分)\n");
	scanf("%s", time); getchar();
	printf("请输入航班号\n");
	scanf("%s", hangbanhao); getchar();
	printf("请输入飞机号\n");
	scanf("%s", feijihao); getchar();
	printf("请输入开辟的飞机票数量(小于100):\n");
	scanf("%d", &j); getchar();
	while (n != NULL)
	{
		if ((strcmp(n->feijihao, feijihao) == 0) && (n->might3 != 5) && (strcmp(n->time, time) == 0))
		{
			i++;
			a = n->weihao;
		}
		n = n->next;
	}
	if (j < 100 - i)
	{
		while (k <= j)
		{
			a++;
			q = (struct feiji*)malloc(sizeof(struct feiji));
			strcpy(q->account, "0");
			strcpy(q->possword, "0");
			strcpy(q->name, "0");
			strcpy(q->ID, "0");
			strcpy(q->chufa, chufa);
			strcpy(q->zhongdian, zhongdian);
			strcpy(q->hangbanhao, hangbanhao);
			strcpy(q->feijihao, feijihao);
			q->weihao = a;
			strcpy(q->time, time);
			q->might1 = 0;
			q->might2 = 0;
			q->might3 = 0;
			k++;
			ListInsert(p, q);
		}
	}
	else
	{
		printf("已达上限!\n");
		Sleep(1500);
		menu2(p);
	}
	if (k != 1)
	{
		printf("设置成功!\n");
	}
	printf("按回车键返回菜单!\n");
	getchar();
	menu2(p);
}
void chaxun1(LinkList* p)
{
	struct feiji* n = p->next;
	struct feiji* q = p->next;
	int flag = 0, i, j = 0, k = 1;
	char qidian[20], zhongdian[20], time[20], feijihao[20], hangbanhao[20];
	system("cls");
	printf("请输入要修改飞机号:\n");
	scanf("%s", feijihao);
	getchar();
	while (n != NULL)
	{
		if (strcmp(n->feijihao, feijihao) == 0&&n->might3==0)
		{
			printf("请选择将要修改的内容:\n");
			printf("1.起点\n");
			printf("2.终点\n");
			printf("3.时间\n");
			printf("4.飞机号\n");
			printf("5.返回上一层\n");
			scanf("%d", &i);
			switch (i)
			{
			case 1:printf("请输入新修改的起点\n"); scanf("%s", qidian); j = 1;
				while (q != NULL)
				{
					if (strcmp(q->feijihao, feijihao) == 0)
					{
						strcpy(q->chufa, qidian);
					}
					q = q->next;
				}printf("修改成功!\n"); Sleep(2000); menu2(p); break;
			case 2:printf("请输入新修改的终点\n"); scanf("%s", zhongdian); j = 1;
				while (q != NULL)
				{
					if (strcmp(q->feijihao, feijihao) == 0)
					{
						strcpy(q->zhongdian, zhongdian);
					}
					q = q->next;
				}printf("修改成功!\n"); Sleep(2000); menu2(p); break;
			case 3:printf("请输入新修改的时间\n"); scanf("%s", feijihao); j = 1;
				while (q != NULL)
				{
					if (strcmp(q->feijihao, feijihao) == 0)
					{
						strcpy(q->time, time);
					}
					q = q->next;
				}printf("修改成功!\n"); Sleep(2000); menu2(p); break;
			case 4:printf("请输入新修改的飞机号\n"); scanf("%s", feijihao); j = 1;
				while (q != NULL)
				{
					if (strcmp(q->feijihao, feijihao) == 0)
					{
						strcpy(q->feijihao, feijihao);
					}
					q = q->next;
				}printf("修改成功!\n"); Sleep(2000); menu2(p); break;
			case 5:menu2(p); break;
			default:printf("请输入合法量!\n"); Sleep(2000); menu2(p); break;
			}
		}
		n = n->next;
	}
	if (j == 1)
	{
		printf("修改成功!\n");
	}
	if (j == 0)
	{
		printf("修改失败\n");
	}
	printf("按回车键返回菜单!\n");
	getchar();
	getchar();
	menu2(p);
}
void tongji1(LinkList* p)
{
	struct feiji* n = p->next;
	struct feiji* h = p->next;
	int flag = 0, i, j = 0, k = 0;
	char a[20], qidian[20], zhongdian[20], time[20], feijihao[20], hangbanhao[10];
	system("cls");
	printf("请选择你要查询的方式\n1.按照班次查询\n2.按照起点查询\n3.按照终点查询\n");
	scanf("%d", &i);
	if (i == 1)
	{
		printf("请输入班次:\n");
		scanf("%s", a);
		getchar();
		while (h != NULL)
		{
			if (strcmp(h->hangbanhao, a) == 0 &&h->might3 == 0&&h->might2==0&&h->might1==0)
			{
				j = j + 1;
				if(k==0)
				{
					strcpy(qidian, h->chufa);
					strcpy(zhongdian, h->zhongdian);
					strcpy(time, h->time);
					strcpy(feijihao, h->feijihao);
					strcpy(hangbanhao, h->hangbanhao);
					k=1;
				}
				if(strcmp(h->hangbanhao,hangbanhao)!=0||strcmp(h->feijihao,feijihao)!=0)
				{
					printf("起点:%s  终点:%s  时间:%s  班次:%s  飞机号:%s  座位数:%d\n", qidian,zhongdian,time,hangbanhao, feijihao,j-1);
					k=0;
					j=0;
				}
			}
			h = h->next;
		}
		printf("起点:%s  终点:%s  时间:%s  班次:%s  飞机号:%s  座位数:%d\n", qidian,zhongdian,time,hangbanhao, feijihao,j-1);
	}
	if (i == 2)
	{
		printf("请输入起点:\n");
		scanf("%s", a);
		getchar();
		while (h != NULL)
		{
			if (strcmp(h->chufa, a) == 0 &&h->might3 == 0&&h->might2==0&&h->might1==0)
			{
				j = j + 1;
				if(k==0)
				{
					strcpy(qidian, h->chufa);
					strcpy(zhongdian, h->zhongdian);
					strcpy(time, h->time);
					strcpy(feijihao, h->feijihao);
					strcpy(hangbanhao, h->hangbanhao);
					k=1;
				}
				if(strcmp(h->hangbanhao,hangbanhao)!=0||strcmp(h->feijihao,feijihao)!=0)
				{
					printf("起点:%s  终点:%s  时间:%s  班次:%s  飞机号:%s  座位数:%d\n", qidian,zhongdian,time,hangbanhao, feijihao,j-1);
					k=0;
					j=0;
				}
			}
			h = h->next;
		}
		printf("起点:%s  终点:%s  时间:%s  班次:%s  飞机号:%s  座位数:%d\n", qidian,zhongdian,time,hangbanhao, feijihao,j-1);
	}
	if (i == 3)
	{
		printf("请输入终点:\n");
		scanf("%s", a);
		getchar();
		while (h != NULL)
		{
			if (strcmp(h->zhongdian, a) == 0 &&h->might3 == 0&&h->might2==0&&h->might1==0)
			{
				j = j + 1;
				if(k==0)
				{
					strcpy(qidian, h->chufa);
					strcpy(zhongdian, h->zhongdian);
					strcpy(time, h->time);
					strcpy(feijihao, h->feijihao);
					strcpy(hangbanhao, h->hangbanhao);
					k=1;
				}
				if(strcmp(h->hangbanhao,hangbanhao)!=0||strcmp(h->feijihao,feijihao)!=0)
				{
					printf("起点:%s  终点:%s  时间:%s  班次:%s  飞机号:%s  座位数:%d\n", qidian,zhongdian,time,hangbanhao, feijihao,j-1);
					k=0;
					j=0;
				}
			}
			h = h->next;
		}
		printf("起点:%s  终点:%s  时间:%s  班次:%s  飞机号:%s  座位数:%d\n", qidian,zhongdian,time,hangbanhao, feijihao,j-1);
	}
	if (j != 0)
	{
		printf("查询结束\n");
	}
	if (j == 0)
	{
		printf("查询失败\n");
	}
	printf("按回车键返回菜单!\n");
	getchar();
	menu2(p);
}
void shoupiao(LinkList* p)
{
	struct feiji* n = p->next;
	struct feiji* h = p->next;
	struct feiji* t;
	int flag = 0, i = 0, j = 0, k = 0;
	char feijihao[20],hangbanhao[20];
	char chufa[20], zhongdian[20], name[20], ID[20];
	int weihao;
	system("cls");
	printf("请输入起点:\n");
	scanf("%s", chufa);
	getchar();
	printf("请输入终点:\n");
	scanf("%s", zhongdian);
	getchar();
	while (h != NULL)
	{
		if ((strcmp(h->chufa, chufa) == 0) && (strcmp(h->zhongdian, zhongdian) == 0) && (h->might3 ==0))
		{
			if (i == 0)
			{
				printf("起点:%s  终点:  %s  \n", h->chufa, h->zhongdian);
				i++;
			}
			printf("班次:%s  飞机号:%s  时间:%s  座位号%d\n", h->hangbanhao, h->feijihao, h->time, h->weihao);
		}
		h = h->next;
	}
	if (i == 0)
	{
		printf("暂无此类型机票!\n");
		Sleep(2000);
		menu311(p);
	}
	h = p->next;
	i = 0;
	printf("1.继续购票\n2.退出\n\n");
	scanf("%d", &i);
	if (i == 1)
	{
		printf("请输入航班号:\n");
		scanf("%s", hangbanhao);
		getchar();
		printf("请输入飞机号:\n");
		scanf("%s", feijihao);
		getchar();
		printf("请输入位号:\n");
		scanf("%d", &weihao);
		getchar();
		while (h != NULL)
		{
			if ((strcmp(h->hangbanhao,hangbanhao) == 0)&&(strcmp(h->feijihao, feijihao) == 0) && h->weihao == weihao && (h->might3 ==0))
			{
				k = 1;
				printf("请输入姓名:");
				scanf("%s", h->name);
				getchar();
				printf("请输入ID:");
				scanf("%s", h->ID);
				getchar();
				h->might3 = 5; break;
			}
			h = h->next;
		}
		if (k == 1)
		{
			printf("购票成功!\n");
			printf("按回车键返回菜单!\n");
			getchar();
			getchar();
			menu311(p);
		}
		if (k == 0)
		{
			printf("购票失败!\n");
			printf("按回车键返回菜单!\n");
			getchar();
			getchar();
			menu311(p);
		}
	}
	if (i == 2)
	{
		menu311(p);
	}
}
void huanpiao(LinkList* p)
{
	struct feiji* n = p->next;
	struct feiji* h = p->next;
	struct feiji* t;
	int flag = 0, i = 0, j = 0, k = 0, a = 0;
	char feijihao[20], ID[20], hangbanhao[20];
	char chufa[20], zhongdian[20], name[20];
	int weihao;
	system("cls");
	printf("请输入您的ID:");
	scanf("%s", ID);
	getchar();
	printf("请输入您的班次:");
	scanf("%s", hangbanhao);
	while (n != NULL)
	{
		if (strcmp(n->ID, ID) == 0&&strcmp(n->hangbanhao,hangbanhao) == 0)
		{
			a++;
			printf("请输入新起点:\n");
			scanf("%s", chufa);
			getchar();
			printf("请输入新终点:\n");
			scanf("%s", zhongdian);
			getchar();
			while (h != NULL)
			{
				if ((strcmp(h->chufa, chufa) == 0) && (strcmp(h->zhongdian, zhongdian) == 0) && (h->might3==0))
				{
					if (i == 0)
					{
						printf("起点:%s  终点:  %s  \n", h->chufa, h->zhongdian);
						i++;
					}
					printf("班次:%s  飞机号:%s  时间:%s  座位号%d\n", h->hangbanhao, h->feijihao, h->time, h->weihao);
				}
				h = h->next;
			}
			if (i == 0)
			{
				printf("暂无此类型机票!\n");
				Sleep(2000);
				menu311(p);
			}
			h = p->next;
			i = 0;
			printf("1.继续换票\n2.退出\n");
			scanf("%d", &i);
			if (i == 1)
			{
				printf("请输入班次:\n");
				scanf("%s", hangbanhao);
				getchar();
				printf("请输入飞机号:\n");
				scanf("%s", feijihao);
				getchar();
				printf("请输入位号:");
				scanf("%d", &weihao);
				getchar();
				while (h != NULL)
				{
					if ((strcmp(h->feijihao, feijihao) == 0) && strcmp(h->hangbanhao, hangbanhao)==0 && (h->weihao == weihao) && (h->might3 ==0))
					{
						k = 1;
						strcpy(h->name, n->name);
						strcpy(h->ID, n->ID);
						h->might3 = 5;
						strcpy(n->name, "0");
						strcpy(n->ID, "0");
						n->might3 = 0;
						printf("换票成功!\n");
						printf("按回车键返回菜单!\n");
						getchar();
						menu311(p); break;
					}
					h = h->next;
				}
			}
			if (i == 2)
			{
				menu311(p);
			}
		}
		n = n->next;
	}
	if (k == 0)
	{
		printf("换票失败!\n");
		printf("按回车键返回菜单!\n");
		getchar();
		menu311(p);
	}
}
void tuipiao(LinkList* p)
{
	struct feiji* n = p->next;
	int flag = 0, i = 0, j = 0, k = 0, a = 0;
	char ID[20],banci[20];
	system("cls");
	printf("请输入您的ID:");
	scanf("%s", ID);
	getchar();
	printf("请输入您的班次:");
	scanf("%s", banci);
	while (n != NULL)
	{
		if (strcmp(n->ID, ID) == 0&&strcmp(n->hangbanhao,banci) == 0)
		{
			printf("起点:%s  终点:%s  时间:%s  航班:%s  飞机号:%s \n", n->chufa, n->zhongdian, n->time, n->hangbanhao, n->feijihao);
			printf("1.继续退票\n2.退出\n");
			scanf("%d", &i);
			if (i == 1)
			{
				k = 1;
				n->might3 = 0;
				strcpy(n->name, "0");
				strcpy(n->ID, "0");
			}
			if (i == 2)
			{
				menu311(p);
			}
		}
		n = n->next;
	}
	if (k == 1)
	{
		printf("退票成功!\n");
		printf("按回车键返回菜单!\n");
		getchar();
		getchar();
		menu311(p);
	}
	if (k == 0)
	{
		printf("退票失败!\n");
		printf("按回车键返回菜单!\n");
		getchar();
		getchar();
		menu311(p);
	}
}
void chaxunhangxian(LinkList* p)
{
	int i=0,j=0,k;
	struct feiji* h = p->next;
	char a[20], qidian[20], zhongdian[20], time[20], feijihao[20], hangbanhao[20];
	system("cls");
	printf("请输入起点:\n");
	scanf("%s",qidian);
	printf("请输入终点:\n");
	scanf("%s",zhongdian);
	while (h != NULL)
	{
		if ((h->might3 == 0)&&strcmp(h->zhongdian,zhongdian) == 0&&strcmp(h->chufa,qidian) == 0)
		{
			j = j + 1;
			strcpy(qidian, h->chufa);
			strcpy(zhongdian, h->zhongdian);
			strcpy(time, h->time);
			strcpy(feijihao, h->feijihao);
			strcpy(hangbanhao, h->hangbanhao);
			i=1;
		}
		h = h->next;
	}
	if(i==1)
	{
		printf("起点:%s  终点:%s  时间:%s  班次:%s  飞机号:%s  座位数:%d\n", qidian,zhongdian,time,hangbanhao, feijihao,j);
		printf("查询完毕!\n");
		printf("按回车键返回菜单!\n");
		getchar();
		getchar();
		Sleep(1000);
	}
	else
	{
		printf("无此票务\n");
		Sleep(1000);
	}
	menu311(p);
}
void chakanhangxian(LinkList* p)
{
	int i=0,j=0,k=0;
	struct feiji* h = p->next;
	char a[20], qidian[20], zhongdian[20], time[20], feijihao[20], hangbanhao[20];
	system("cls");
	while (h != NULL)
	{
		if (h->might3 == 0&&h->might2==0&&h->might1==0)
		{
			j = j + 1;
			if(k==0)
			{
				strcpy(qidian, h->chufa);
				strcpy(zhongdian, h->zhongdian);
				strcpy(time, h->time);
				strcpy(feijihao, h->feijihao);
				strcpy(hangbanhao, h->hangbanhao);
				k=1;
			}
			if(strcmp(h->hangbanhao,hangbanhao)!=0||strcmp(h->feijihao,feijihao)!=0)
			{
				printf("起点:%s  终点:%s  时间:%s  班次:%s  飞机号:%s  座位数:%d\n", qidian,zhongdian,time,hangbanhao, feijihao,j-1);
				k=0;
				j=0;
			}
		}
		h = h->next;
	}
	printf("起点:%s  终点:%s  时间:%s  班次:%s  飞机号:%s  座位数:%d\n", qidian,zhongdian,time,hangbanhao, feijihao,j-1);
	printf("按回车键返回菜单!\n");
	getchar();
	getchar();
	menu311(p);
}
void dayin(LinkList* p)
{
	struct feiji* n = p->next;
	struct feiji* h = p->next;
	struct feiji* t;
	int flag = 0, i, j = 0, k = 1;
	system("cls");
	printf("已售票:\n");
	while (h != NULL)
	{
		if (h->might3 == 5&&h->might1== 0&&h->might2== 0)
		{
			printf("起点:%s  终点:%s  时间:%s  班次:%s  飞机号:%s  座位号:%d\n", h->chufa, h->zhongdian, h->time, h->hangbanhao, h->feijihao, h->weihao);
			j=1;
		}
		h = h->next;
	}
	h = p->next;
	printf("未售票:\n");
	while (h != NULL)
	{
		if (h->might3 == 0&&h->might1== 0&&h->might2== 0)
		{
			printf("起点:%s  终点:%s  时间:%s  班次:%s  飞机号:%s  座位号:%d\n", h->chufa, h->zhongdian, h->time, h->hangbanhao, h->feijihao, h->weihao);
			j=1;
		}
		h = h->next;
	}
	if (j == 1)
	{
		printf("打印结束\n");
	}
	if (j != 1)
	{
		printf("暂无购买信息\n");
	}
	printf("按回车键返回菜单!\n");
	getchar();
	getchar();
	menu2(p);
}
void Remove(LinkList* p)
{
	struct feiji* n = p->next;
	struct feiji* h = p->next->next;
	int flag = 0;
	char acc[20];
	system("cls");
	printf("请输入要删除的账户:");
	scanf("%s", acc);
	while (h != NULL)
	{
		if (strcmp(h->account, acc) == 0)
		{
			n->next = h->next;
			flag = 1;
			free(h); break;
		}
		n = h;
		h = h->next;
	}
	if (flag == 1)
	{
		printf("删除成功!\n");
		printf("\t请按回车键返回菜单\n");
	}
	if (flag == 0)
	{
		printf("删除失败!\n");
		printf("\t请按回车键返回菜单\n");
	}
	getchar();
	getchar();
	menu2(p);
}
void statistics2(LinkList* p)
{
	struct feiji* q = p->next;
	int c = 0, i = 0;
	system("cls");
	while (q != NULL)
	{
		if (i == 0)
		{
			printf("账号      密码      权限(1为票务管理,2为机票销售)\n");
			i = 2;
		}
		if (q->might2 == 1 || q->might2 == 2 )
		{
			printf("%s     %s       %d\n", q->account, q->possword, q->might2);
			c = c + 1;
		}
		q = q->next;
	}
	if (c == 0)
	{
		printf("暂无服务员信息\n");
	}
	printf("\t请按回车键返回菜单\n");
	getchar();
	getchar();
	menu2(p);
}
void amend(LinkList* p)
{
	struct feiji* q = p->next;
	char acc[20], poss[20], ac[20];
	int flag = 0, i;
	system("cls");
	printf("请输入要修改的账号:");
	scanf("%s", acc);
	while (q != NULL)
	{
		if (strcmp(q->account, acc) == 0)
		{
			flag = 1;
			printf("1.仅修改密码\n2.密码账户均修改\n");
			scanf("%d", &i);
			if (i == 1)
			{
				printf("请输入新密码:");
				scanf("%s", poss);
				strcpy(q->possword, poss); break;
			}
			if (i == 2)
			{
				printf("请输入新账号:");
				scanf("%s", ac);
				getchar();
				printf("请输入新密码:");
				scanf("%s", poss);
				strcpy(q->account, ac);
				strcpy(q->possword, poss); break;
			}
		}
		q = q->next;
	}
	if (flag == 0)
	{
		printf("账户错误!\n");
		printf("\t请按回车键返回菜单\n");
	}
	if (flag == 1)
	{
		printf("修改成功!\n");
		printf("\t请按回车键返回菜单\n");
	}
	getchar();
	getchar();
	menu2(p);
}
void ADD1(LinkList* p)
{
	struct feiji* q, * n = p;
	struct feiji* h = p->next;
	int flag = 0, i;
	system("cls");
	q = (struct feiji*)malloc(sizeof(struct feiji));
	q->next = NULL;
	printf("请输入添加的账号\n");
	scanf("%s", q->account);
	getchar();
	printf("请输入添加的密码\n");
	scanf("%s", q->possword);
	getchar();
	printf("请输入售票员的权限(1为票务管理,2为机票销售)\n");
	scanf("%d", &q->might2);
	getchar();
	q->might1 = 0;
	q->might3 = 0;
	strcpy(q->name, "0");
	strcpy(q->ID, "0");
	strcpy(q->chufa, "0");
	strcpy(q->zhongdian, "0");
	strcpy(q->time, "0");
	strcpy(q->hangbanhao, "0");
	strcpy(q->feijihao, "0");
	q->weihao = 0;
	while (h != NULL)
	{
		if (strcmp(h->account, q->account) == 0)
		{
			flag = 1;
			printf("账号重复!");
			Sleep(1000);
			menu2(p);
			break;
		}
		h = h->next;
	}
	while (n->next != NULL)
	{
		n = n->next;
	}
	n->next = q;
	if (flag == 0)
	{
		printf("\t添加成功\n");
		printf("\t请按回车键返回菜单\n");
	}
	else
	{
		printf("\t添加失败\n");
		Sleep(2000);
	}
	getchar();
	menu2(p);
}
void savefeijiFile(LinkList* L)
{
	FILE* fp;
	LinkList* p;
	p = L->next;
	fp = fopen("feiji.txt", "w");
	if (fp == NULL)
	{
		printf("无法打开此文件\n");
		exit(0);
	}
	while (p)
	{
		fprintf(fp, "%d %d %d %s %s %s %s %s %s %s %s %s %d \n", p->might1, p->might2, p->might3, p->account, p->possword, p->name, p->ID, p->chufa, p->zhongdian, p->time, p->hangbanhao, p->feijihao, p->weihao);
		p = p->next;
	}
	fclose(fp);
}
void ListInsert(LinkList* L, LinkList* n)
{
	LinkList* q = L;
	n->next = NULL;
	while (q->next != NULL)
	{
		q = q->next;
	}
	q->next = n;
}
void readfeijiput(LinkList* L)
{
	FILE* fp;
	LinkList* n;
	LinkList* m;
	char a[20],b[20],c[20];
	char acc[20], po[20], na[20], I[20], chu[20], zhong[20], jia[10], che[20], tim[30];
	int mi1, mi2, mi3, wei;
	system("color 1A");
	system("cls");
	fp = fopen("feiji.txt", "r");
	if (fp == NULL)
	{
		fp = fopen("feiji.txt", "w");
		exit(0);
	}

	else
	{
		if (fgetc(fp) == -1)
		{
			printf("此程序为首次使用,请输入初始账号:");
			scanf("%s",a);
			getchar();
			printf("请输入初始密码:");
			scanf("%s",b);
			getchar();
			printf("请再次输入初始密码:");
			scanf("%s",c);
			getchar();
			if(strcmp(b,c)!=0)
			{
				printf("两次密码不同,请重新登录!!!\n");
				exit(0);
			}
			m = (LinkList*)malloc(sizeof(LinkList));
			strcpy(m->account, a);//初始账户
			strcpy(m->possword, b);//初始密码
			strcpy(m->name, "0");
			strcpy(m->ID, "0");
			strcpy(m->chufa, "0");
			strcpy(m->zhongdian, "0");
			strcpy(m->hangbanhao, "0");
			strcpy(m->feijihao, "0");
			m->weihao = 0;
			strcpy(m->time, "0");
			m->might1 = 1;
			m->might2 = 0;
			m->might3 = 0;
			m->next = NULL;
			L->next = m;
		}
		if (fgetc(fp) != -1)
		{
			fseek(fp, -2L, 1);
		}
		while (!feof(fp))
		{
			fscanf(fp, "%d %d %d %s %s %s %s %s %s %s %s %s %d ", &mi1, &mi2, &mi3, acc, po, na, I, chu, zhong, tim, jia, che, &wei);
			n = (LinkList*)malloc(sizeof(LinkList));
			strcpy(n->account, acc);
			strcpy(n->possword, po);
			strcpy(n->name, na);
			strcpy(n->ID, I);
			strcpy(n->chufa, chu);
			strcpy(n->zhongdian, zhong);
			strcpy(n->hangbanhao, jia);
			strcpy(n->feijihao, che);
			n->weihao = wei;
			strcpy(n->time, tim);
			n->might1 = mi1;
			n->might2 = mi2;
			n->might3 = mi3;
			ListInsert(L, n);
		}
	}
	fclose(fp);
}
void menu33(struct feiji* p)
{
	int i = 0;
	struct feiji* h = p->next->next;
	char a[20], b[20];
	system("cls");
	printf("请输入账户:");
	scanf("%s", a);
	getchar();
	printf("请输入密码:");
	scanf("%s", b);
	getchar();
	while (h != NULL)
	{
		if ((strcmp(h->account, a) == 0) && (strcmp(h->possword, b) == 0))
		{
			if (h->might2 == 2)
			{
				i = 1;
				menu311(p); break;
			}
		}
		h = h->next;
	}
	if (i == 0)
	{
		printf("密码或账号错误!\n");
		Sleep(2000);
		menu1(p);
	}
}
void menu311(struct feiji* p)
{
	int i;
	system("color 1A");
	system("cls");
	while (1)
	{
		printf("\n\n\n");
		printf("\t\t----------------------------------\n"); Sleep(50);
		printf("\t\t **欢迎登陆航空客运订票管理系统** \n"); Sleep(50);
		printf("\t\t| 1.售票                         |\n"); Sleep(50);
		printf("\t\t| 2.退票                         |\n"); Sleep(50);
		printf("\t\t| 3.换票                         |\n"); Sleep(50);
		printf("\t\t| 4.查询航线                     |\n"); Sleep(50);
		printf("\t\t| 5.查看航线                     |\n"); Sleep(50);
		printf("\t\t| 6.返回上一层                   |\n"); Sleep(50);
		printf("\t\t| 7.退出(保存)                 |\n"); Sleep(50);
		printf("\t\t----------------------------------\n");
		printf("\t\t请选择您要进行的操作:");
		scanf("%d", &i);
		switch (i)
		{
		case 1:shoupiao(p); break;
		case 2:tuipiao(p); break;
		case 3:huanpiao(p); break;
		case 4:chaxunhangxian(p); break;
		case 5:chakanhangxian(p); break;
		case 6:menu1(p); break;
		case 7:savefeijiFile(p); exit(0);
		default:printf("\t输入不合法量\n"); Sleep(1500); system("cls");
		}
	}
}
void menu22(struct feiji* p)
{
	struct feiji* h = p->next;
	char a[20], b[20];
	int i = 0;
	system("cls");
	printf("请输入账户:");
	scanf("%s", a);
	getchar();
	printf("请输入密码:");
	scanf("%s", b);
	getchar();
	while (h != NULL)
	{
		if ((strcmp(h->account, a) == 0) && (strcmp(h->possword, b) == 0) && (h->might1 == 1||h->might2==1))
		{
			i = 1;
			menu2(p); break;
		}
		h = h->next;
	}
	if (i == 0)
	{
		printf("密码或账号错误!\n");
		Sleep(2000);
		menu1(p);
	}
}
void menu2(struct feiji* p)
{
	int c;
	system("color 1A");
	system("cls");
	while (1)
	{
		printf("\n\n\n");
		printf("  \t\t----------------------------\n"); Sleep(50);
		printf("  \t\t  **请选择您要进行的操作**  \n"); Sleep(50);
		printf("  \t\t|  1.添加售票员            |\n"); Sleep(50);
		printf("  \t\t|  2.修改密码              |\n"); Sleep(50);
		printf("  \t\t|  3.删除售票员            |\n"); Sleep(50);
		printf("  \t\t|  4.统计售票员信息        |\n"); Sleep(50);
		printf("  \t\t|  5.录入飞机信息          |\n"); Sleep(50);
		printf("  \t\t|  6.修改飞机信息          |\n"); Sleep(50);
		printf("  \t\t|  7.统计飞机信息          |\n"); Sleep(50);
		printf("  \t\t|  8.打印已(未)售信息    |\n"); Sleep(50);
		printf("  \t\t|  9.返回上一层            |\n"); Sleep(50);
		printf("  \t\t|  10.退出(保存)         |\n");
		printf("  \t\t----------------------------\n");
		printf("  \t\t请选择您要进行的操作:");
		scanf("%d", &c);
		switch (c)
		{
		case 1:ADD1(p); break;
		case 2:amend(p); break;
		case 3:Remove(p); break;
		case 4:statistics2(p); break;
		case 5:ADD(p); break;
		case 6:chaxun1(p); break;
		case 7:tongji1(p); break;
		case 8:dayin(p); break;
		case 9:menu1(p); break;
		case 10:savefeijiFile(p); exit(0);
		default:printf("请输入合法量!\n"); Sleep(2000); system("cls");
		}
	}
}
void menu1(struct feiji* p)
{
	int a;
	system("color 1A");
	system("cls");
	while (1)
	{
		printf("\n\n\n\n");
		printf("\t\t_________________________________\n"); Sleep(50);
		printf("\t\t|  欢迎进入航空客运订票管理系统 |\n"); Sleep(50);
		printf("\t\t|  **请选择您的身份**           |\n"); Sleep(50);
		printf("\t\t|  1.管理员                     |\n"); Sleep(50);
		printf("\t\t|  2.售票员                     |\n"); Sleep(50);
		printf("\t\t|  3.退出                       |\n"); Sleep(50);
		printf("\t\t_________________________________\n\n");
		printf("\t\t请选择您要进行的操作:");
		scanf("%d", &a);
		switch (a)
		{
		case 1:menu22(p); break;
		case 2:menu33(p); break;
		case 3:savefeijiFile(p); exit(0);
		default:printf("请输入合法量!\n"); Sleep(2000); menu1(p);
		}
	}
}
int main()
{
	LinkList* p;
	p = (struct feiji*)malloc(sizeof(struct feiji));
	p->next = NULL;
	readfeijiput(p);
	menu1(p);
	system("pause");
	return 0;
}
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值