c语言实现机票管理系统源代码.docx
- 文档编号:3184518
- 上传时间:2022-11-19
- 格式:DOCX
- 页数:25
- 大小:21.04KB
c语言实现机票管理系统源代码.docx
《c语言实现机票管理系统源代码.docx》由会员分享,可在线阅读,更多相关《c语言实现机票管理系统源代码.docx(25页珍藏版)》请在冰豆网上搜索。
c语言实现机票管理系统源代码
/*1、用户和管理员及航班信息请以英文字母或数字输入*/
/*2、管理员账户为:
boss,密码为:
123。
保存在txt文件中,需要修改请于程序中修改*/
/*3、部分文件读写为二进制读写,所以打开文件时会看到乱码*/
#include
#include
#include
#include
#defineN1000
voidzhujiemian();//主界面函数
voidverify();//用户及管理员登录选择
voidloginmanager();//管理员登录
voidloginuser();//用户登录
voidloginflightm();//管理员登录机票系统
voidloginflightu();//用户登录机票系统
voidcreatfile();//创建用户信息模块
voidsaveuser();//用户信息保存模块程序
voidinput();//输入航班信息
voidprint();//输出航班信息
voidsave();//保存航班信息
voidread();//读取航班信息
voidpaixu();//对所有航班按航班号排序
voidsearch();//查找航班信息
voiddingpiao();//订票信息
structusers//管理员/用户信息结构体,管理员可以修改航班信息
{
charName[20];//管理员/用户姓名
charsexual[10];//用户性别
charps[8];//用户密码
intage;//用户年龄
longNumber;//用户身份证号码
intpower;//power为1是管理员登录,为0是用户登录
}user[N],up,mg;//up为键盘输入用户信息,user[N]为文件保存的用户信息,mg为管理员结构体
intn;//所有用户个数,初始化为0
structair//航班信息结构体
{
intnum;//航班号
charstart[20];//出发地
charover[20];//目的地
chartime[10];//时间
intcount;//票数
intprize;//票价
}s[N],fnew;
inti;
intm=0;//所有航班个数
#definePRINT"%-d%12s%12s%10s%12d%10d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count,s[i].prize//定义输出格式
voidmain()//主函数
{
zhujiemian();
}
voidzhujiemian()//主界面函数
{
intj;
printf("#===================================================#\n");
printf("#欢迎进入机票管理系统#\n");
printf("#1、登录系统#\n");
printf("#2、新用户注册#\n");
printf("#0、退出#\n");
printf("#===================================================#\n");
printf("请在1-2中选择以回车键结束:
\n\n");
scanf("%d",&j);
switch(j)
{
case1:
verify();//进入机票系统
break;
case2:
creatfile();//进入用户注册系统
break;
case0:
;
break;
}
}
voidverify()//验证用户及管理员信息模块
{
intj;
system("cls");
printf("#===================================================#\n");
printf("#1、管理员登录#\n");
printf("#2、用户登录#\n");
printf("#0、返回主界面#\n");
printf("#===================================================#\n");
scanf("%d",&j);
switch(j)
{
case1:
loginmanager();//进入管理员登录界面
break;
case2:
loginuser();//进入用户登录界面
break;
case0:
system("cls");
zhujiemian();//进入主界面
break;
}
}
/********管理员登录确定函数**********/
voidloginmanager()
{
FILE*fp=NULL;//定义文件指针
charDataFile[20]="manager.txt";//存储管理员信息的文件名
inti=0,j=1;
charrelogin;//是否重新登录
intsuccess=0;//登录成功的标志
printf("\n---管理员登录---\n");
fp=fopen(DataFile,"r");
if(fp==NULL)//如果当前文件不存在,初始化根用户名为boss,密码为123,权限为管理员
{
printf("首次使用该系统!
\n");
printf("管理员账户为:
boss密码为:
123\n");
fp=fopen(DataFile,"a");//以追加方式打开文件
user[0].Number=0;
strcpy(user[0].Name,"boss");
strcpy(user[0].sexual,"male");
user[0].age=22;
user[0].power=1;
strcpy(user[0].ps,"123");
fwrite(&user[0],sizeof(user),1,fp);
fclose(fp);
}
else
fclose(fp);
again:
printf("请输入管理员姓名:
");
scanf("%s",up.Name);//输入用户名
up.Name[19]='\0';
printf("请输入管理员密码:
");
fflush(stdin);
for(i=0;i<7;i++)//输入密码,以*在屏幕显示
{
up.ps[i]=getch();
up.ps[i+1]='\0';//字符要以'\0'结尾
if(up.ps[i]=='\b')
{
i--;
up.ps[i]='\0';//清除前一个字符
i--;//接收前一个字符
printf("\b");
printf("\b");
continue;
}
if(up.ps[i]=='\r')
{
up.ps[i]='\0';
break;
}
printf("*");
}
fp=fopen(DataFile,"rt");
if(fp==NULL)//打开文件失败时提示
{
printf("\n打开%s失败!
按任意键结束程序\n",DataFile);
perror("Openfilefail");
getchar();
return;
}
if((fp=fopen("manager.txt","r"))==NULL)//打开文件,并判断是否出错
{
printf("\n出错,请检查文件是否存在,按任意键返回主菜单\n");//打印出错提示getchar();
}
else
fread(&mg,sizeof(structusers),1,fp);//从文件中读取信息
fclose(fp);//关闭文件
if(strcmp(mg.Name,up.Name)==0&&strcmp(mg.ps,up.ps)==0)
{
success=1;
}
if(success==1)//登录成功
{
printf("\n登录成功,按任意键进入机票调整系统!
\n");
getchar();
loginflightm();
}
else//未登录成功
{
fflush(stdin);//清除输入缓冲区中的字符
printf("\n用户名或密码错误!
重新输入请按y,退出请按n:
\n");
relogin=getchar();
if(relogin=='y'||relogin=='Y')
{
getchar();
gotoagain;
}
else
{
verify();
exit(0);
}
}
}
/********用户登录函数**********/
voidloginuser()
{
FILE*fp=NULL,*fp1;//定义文件指针
charDataFile[20]="yonghu.txt";//存储管理员信息的文件名
inti=0,j=0;
charrelogin;//是否重新登录
intsuccess=0;//登录成功的标志
printf("\n---用户登录---\n");
fp=fopen(DataFile,"r");
//读取文件中数据
if((fp1=fopen("howmanyusers.txt","a"))==NULL)//读写方式打开文件,若文件不存在,则n=0
{
//printf("创建文件失败!
\n\n");//打印出错提示
n=0;
//getchar();
//continue;
}
else
{
fp1=fopen("howmanyusers.txt","r");
fscanf(fp1,"%d",&n);//读取fp1中的用户个数
}
fclose(fp1);
if((fp=fopen("yonghu.txt","r"))==NULL)//打开文件,并判断是否出错
{
fp1=fopen("howmanyusers.txt","w+");//以写方式打开
fprintf(fp1,"%d",0);//打开用户文件失败,则输入用户个数0到fp1
fclose(fp1);
printf("\n目前没有用户信息,请按ENTER键返回主菜单先进行注册!
\n");
getchar();
getchar();
system("cls");
zhujiemian();
}
for(i=0;i { fread(&user[i],sizeof(structusers),1,fp);//从文件中读取信息 } fclose(fp)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实现 机票 管理 系统 源代码