您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > c语言实现机票管理系统源代码
/*1、用户和管理员及航班信息请以英文字母或数字输入*//*2、管理员账户为:boss,密码为:123。保存在txt文件中,需要修改请于程序中修改*//*3、部分文件读写为二进制读写,所以打开文件时会看到乱码*/#includestdio.h#includestring.h#includestdlib.h#includeconio.h#defineN1000voidzhujiemian();//主界面函数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;//所有用户个数,初始化为0structair//航班信息结构体{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);}elsefclose(fp);again:printf(请输入管理员姓名:);scanf(%s,up.Name);//输入用户名up.Name[19]='\0';printf(请输入管理员密码:);fflush(stdin);for(i=0;i7;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();}elsefread(&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到fp1fclose(fp1);printf(\n目前没有用户信息,请按ENTER键返回主菜单先进行注册!\n);getchar();getchar();system(cls);zhujiemian();}for(i=0;in;i++){fread(&user[i],sizeof(structusers),1,fp);//从文件中读取信息}fclose(fp);//关闭文件//输入数据与文件中用户比对again:printf(请输入用户姓名:);scanf(%s,up.Name);//输入用户名up.Name[19]='\0';printf(请输入用户密码:);fflush(stdin);for(i=0;i7;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(*);}for(i=0;in;i++)//对比用户名和密码,进行登录{if(strcmp(user[i].Name,up.Name)==0&&strcmp(user[i].ps,up.ps)==0){success=1;break;}}if(success==1)//登录成功{printf(\n登录成功,按任意键进入机票调整系统!\n);getchar();loginflightu();}else//未登录成功{fflush(stdin);//清除输入缓冲区中的字符printf(\n用户名或密码错误!重新输入请按y,退出请按n:\n);relogin=getchar();if(relogin=='y'||relogin=='Y'){getchar();gotoagain;}else{verify();exit(0);}}}voidsaveuser(structusers[])//用户信息保存模块程序{FILE*fp,*fp1;//定义文件指针if((fp=fopen(yonghu.txt,a))==NULL)//打开文件并判断是否出错{printf(创建文件失败!\n\n);//打印出错提示getchar();return;}if((fp1=fopen(howmanyusers.txt,w+))==NULL)//打开文件并判断是否出错{printf(创建文件失败!\n\n);//打印出错提示getchar();return;}for(i=0;in;i++){if(fwrite(&user[i],sizeof(structusers),1,fp)==0)//向文件写入数据,并判
本文标题:c语言实现机票管理系统源代码
链接地址:https://www.777doc.com/doc-5663736 .html