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

📄 11.c

📁 一个用C做的汽车票管理系统
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <windows.h>
#define LEN 50
int n,m;
char choicen1,choicen2,choicen3;

struct data												/*利用结构体数组临时储存车辆信息*/
 {
	int number;
	int time;
	char strat_position[50];
	char end_position[50];
	int long1;
	int capacity;
	int sell_ticket;
	struct data *next;
}*head,datas,*p;

void mmenu()
{
	void judge1(int y,char x[5]);
	void judge2(int y,char x[5]);
	int d;
	char f,e[5];
	system("cls");											/*清屏*/
	printf("\n******欢迎来到汽车票管理系统******\n");     /*登陆界面*/
	printf("**********************************\n");
	printf("**                              **\n");
	printf("**         1.管理员登陆         **\n");
	printf("**         2.售票员登陆         **\n");
	printf("**         3.退出               **\n");
	printf("**                              **\n");
	printf("**********************************\n");
	printf("**********************************\n");
	printf("请选择:");
	scanf("%c",&f);										/*根据提示输入f值,判断进入子菜单。*/
	if(f=='1')											/*进入管理员登录的密码保护系统*/
	{
		printf("\n请输入您的帐号:");					
		scanf("%s",e);
		printf("请输入您的密码:");
		scanf("%d",&d);
		judge1(d,e);
	}
	else if(f=='2')										/*进入售票员登录的密码保护系统*/
	{
		printf("\n请输入您的帐号:");					
		scanf("%s",e);
		printf("请输入您的密码:");
		scanf("%d",&d);
		judge2(d,e);		
	}
	else if(f=='3') exit(0);							/*退出*/
 	else												/*防错处理,若输入错误则返回至mmenu()函数*/
	{
		printf("没有这个选项,请重新选择");
		mmenu();
	}
}

void judge1(int y,char x[5])				/*确定是否登录正确*/
{
	void manager();
	int d;
	char e[5];
	if(y==131&&strcmp(x,"sj")==0)			/*若登录信息正确则进入管理员界面*/
		manager();
	else									/*若登录信息不正确则返回judge1函数重新输入*/
	{
		fflush stdin;						/*由于会出现帐号与密码在同一行出现的bug,所以清内存解决*/
		printf("您输入的帐号或密码貌似有误~好好想想,再试试?");
		printf("\n请输入您的帐号:");
		scanf("%s",&e);
		fflush stdin;
		printf("请输入您的密码:");
		scanf("%d",&d);
		fflush stdin;
		judge1(d,e);	
	}
}

void manager()							
{
	char choicen=0;
	void mmenu();
	void print(struct data *head);
	char menu();
	FILE *fp;
	struct data *a();
	struct data *b(struct data *head);
	struct data *c(struct data *head);
	struct data *insert(struct data *head);
	while(choicen!='F')
	{
		choicen=menu();
		if (choicen=='A')
			head=a(head);
		else if(choicen=='B')
			head=b(head);
		else if (choicen=='C')
			head=c(head);
		else if (choicen=='D')
			head=insert(head);
		else if (choicen=='E')
			print(head);
	}
	fp=fopen("c:\\bus.txt","w");
	p=head;
	printf("信息:\n");
	if(head!=NULL)
	do
	{
		fprintf(fp,"%d %d %s %s %d %d %d\n",p->number,p->time,p->strat_position,p->end_position,p->long1,p->capacity,p->sell_ticket);
		p=p->next;
		m++;
	}
	while(p!=NULL);
	fclose(fp);
	mmenu();

}

void judge2(int y,char x[5])				/*确定登陆是否正确*/
{
	void solder();
	int d;
	char e[5];
	if(y==181&&strcmp(x,"xbf")==0)			/*若登录信息正确则进入售票员界面*/
		solder();
	else									/*若登录信息不正确则返回judge2函数重新输入*/
	{
		fflush stdin;
		printf("您输入的帐号或密码貌似有误~好好想想,再试试?");
		printf("\n请输入您的帐号:");
		scanf("%s",e);
		fflush stdin;
		printf("请输入您的密码:");
		scanf("%d",&d);
		judge2(d,e);
		fflush stdin;
	}
}

void solder()
{
	void mmenu();
	void search();
	void tickets();
	char menu2();					
	choicen2=menu2();											/*将menu2()值赋给choicen2*/
	if (choicen2=='A')											/*进入查询系统函数*/
		search();
	else if(choicen2=='B')										/*进入售票系统函数*/
		tickets();
	else if(choicen2=='C')										/*返回主菜单函数*/
		mmenu();
	else 														/*防错处理,若输入错误则返回至售票员系统函数*/
	{
		printf("没有这个选项,请重新选择");
		solder();
	}
}

char menu()
{
	printf("\n*******欢迎来到车次管理中心*******\n");				/*子菜单*/
	printf("**********************************\n");
	printf("**                              **\n");
	printf("**       A---登录车次信息       **\n");
	printf("**       B---删除车次信息       **\n");
	printf("**       C---更改车次信息       **\n");
	printf("**       D---添加车次信息       **\n");
	printf("**       E---显示车次信息       **\n");
	printf("**       F---返回主菜单         **\n");
	printf("**                              **\n");
	printf("**********************************\n");
	printf("**********************************\n");
	printf("请选择:");
	fflush stdin;
	scanf("%c",&choicen1);
	return (choicen1);
}

char  menu2()
{
	system("cls");
	printf("\n*********欢迎来到售票中心*********\n");				/*售票中心子菜单*/
	printf("**********************************\n");
	printf("**                              **\n");
	printf("**       A---线路查询           **\n");
	printf("**       B---售出车票           **\n");
	printf("**       C---返回主菜单         **\n");
	printf("**                              **\n");
	printf("**********************************\n");
	printf("**********************************\n");
	printf("请选择:");
	fflush stdin;
	scanf("%s",&choicen2);
	return(choicen2);
}


char smenu()
{
	system("cls");
	printf("\n*******欢迎来到线路查询中心*******\n");				/*线路查询子菜单*/
	printf("**********************************\n");
	printf("**                              **\n");
	printf("**       a---按车号查询         **\n");
	printf("**       b---按始发站查询       **\n");
	printf("**       c---按终点站查询       **\n");
	printf("**       d---返回上级菜单       **\n");
	printf("**                              **\n");
	printf("**********************************\n");
	printf("**********************************\n");
	printf("请选择:");
	scanf("%s",&choicen3);
	return(choicen3);
}

void search()														/*查找车次信息*/
{
	char smenu();
	char menu2();
	void solder();
	void return1();
	FILE *fp;
	int x,i,e1[20],e2[20],e5[20],e6[20],e7[20];
	char y[50],y0[50],f3[20][50],f4[20][50];
	choicen3=smenu();
	if (choicen3=='a')												/*通过车号查找*/
	{
		printf("\n请输入车号:");
		scanf("%d",&x);
		fp=fopen("c:\\bus.txt","r");
		printf("\n**********车次信息**********\n");
		for(i=0;i<m+1;i++)																		
		{
			fscanf(fp,"%d %d %s %s %d %d %d",&e1[i],&e2[i],&f3[i],&f4[i],&e5[i],&e6[i],&e7[i]);				/*从文件读入车次信息*/
				if (x==e1[i]) 
				{													/*若查找到则输出相应车次信息*/
					printf("班次:");
					printf("%d\n",e1[i]);
					printf("发车时间:");
					printf("%d\n",e2[i]);
					printf("始发站:");
					printf("%s\n",f3[i]);
					printf("终点站:");
					printf("%s\n",f4[i]);
					printf("行车时间:");
					printf("%d\n",e5[i]);
					printf("额定载客数:");
					printf("%d\n",e6[i]);
					printf("已售出票数:");
					printf("%d\n",e7[i]);
				}
		}
		fclose(fp);
		return1();
	}
	else if(choicen3=='b')											/*通过始发站查找*/
	{
		printf("\n请输入始发站:");
		scanf("%s",&y0);
		fp=fopen("c:\\bus.txt","r");
		printf("\n**********车次信息**********\n");
		for(i=0;i<m+1;i++)
		{
			fscanf(fp,"%d %d %s %s %d %d %d",&e1[i],&e2[i],&f3[i],&f4[i],&e5[i],&e6[i],&e7[i]);
				if (strcmp(y0,f3[i])==0) 
				{
					printf("班次:");
					printf("%d\n",e1[i]);
					printf("发车时间:");
					printf("%d\n",e2[i]);
					printf("始发站:");
					printf("%s\n",f3[i]);
					printf("终点站:");
					printf("%s\n",f4[i]);
					printf("行车时间:");
					printf("%d\n",e5[i]);
					printf("额定载客数:");
					printf("%d\n",e6[i]);
					printf("已售出票数:");
					printf("%d\n",e7[i]);
				}
		}
		fclose(fp);
		return1();
	}
	else if(choicen3=='c')												/*通过终点站查找*/
	{
		printf("\n请输入终点站:");
		scanf("%s",&y);
		fp=fopen("c:\\bus.txt","r");
		printf("\n**********车次信息**********\n");
		for(i=0;i<m+1;i++)
		{
			fscanf(fp,"%d %d %s %s %d %d %d",&e1[i],&e2[i],&f3[i],&f4[i],&e5[i],&e6[i],&e7[i]);
				if (strcmp(y,f4[i])==0) 
				{
					printf("班次:");
					printf("%d\n",e1[i]);
					printf("发车时间:");
					printf("%d\n",e2[i]);

⌨️ 快捷键说明

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