还剩35页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
goto again;}elseverify;exitO;}/顾客登录函数void loginuser*〃定义文献指针FILE*fp=NULL,*fpl;〃存储管理员信息的文献名char DataFileQOkyonghu.txt;Iint i=0J=0;〃与否重新登录char relogin;〃登录成功勺标志int success=0;H一顾客登录一p rintf”\n\n;fp=fopenDataFile,r;〃读取文献中数据iffpl=1^611”110\71713州1^印*1”「七二=1\1111_1_〃读写方式打开文献,若文献不存在,则n=0创立文献失败!、〃打印出错提醒“printfC n\n“;n=0;//getchar;//continue;elsefpl二fopen”howmanyusers.txt”Jr“;fscanffpl,“%d:n;〃读取fpl中的顾客个数fclosefpl;iffp=1:邛0W,,丫01^^心1:\上==1\1111±〃打开文献,并判断与否出错fpl=£^61150\/7013”115©「5以1”,~+;〃以写方式打开fprintffpl,%d1O;〃打开顾客文献失败,则输入顾客个数0到fpl fclosefpl;目前没有顾客信息,请按键返回主菜单先进行注册!printfC\n ENTER\n;getchar;getchar;systemcls;zhujiemianf;fori=0;in;i++〃从文献中读取信息freaduser[i],sizeofstruct users,l,fp;〃关闭文献fclosefp;〃输入数据与文献中顾客比对again:“请输入顾客姓名:“;printf〃输入顾客名scanfC%sup.Name;up.Name
[19]=\0;”请输入顾客密码:;printffflushstdin;〃输入密码,以*在屏幕显示fori=0;i7;i++up.ps[i]=getch;〃字符要以3结尾up.ps[i+l]=2;ifup.ps[i]==\bi--;up.ps[i」\r;〃清除前一种字符i--;〃接受前一种字符printf\b;printf\b;continue;}ifup.ps[i]==Vup.ps[i]=\0;break;printfC*;}〃对比顾客名和密码,进行登录fori=0;in;i++ifstrcmpuser[i].Name,up.Name==Ostrcmpuser[i].ps,up.ps==Osuccess=l;break;}〃登录成功ifsuccess==lprintf\n登录成功,按任意键进入机票调整系统!\n“;getchar;loginflightu;〃未登录成功else〃清除输入缓冲区中口勺字符fflushstdin;顾客名或密码错误!重新输入请按退出请按printf\n y,n:\n;relogin=getchar;ifrelogin==y,||relogin==Y,getchar;goto again;}elseverify;exitO;}〃顾客信息保留模块程序void saveuserstruct users]]〃定义文献指针FILE*fp,*fpl;iffp二fopenl,yonghu.txt,,,,,a”二二NULL〃打开文献并判断与否出错创立文献失败!〃打印出错提醒printf\n\n;getchar;return;iffpl=fopen,howmanyusers.txt”Jw+”=二NULL〃打开文献并判断与否出错“创立文献失败!〃打印出错提醒printf\n\n;getchar;return;fori=0;in;i++〃向文献写入数据,并判断与否出错iffwriteuser[i],sizeofstruct users,l,fp=O向文献输入数据失败!printf\n\n;fprintffplj%d,n;〃输入顾客个数到fpl〃关闭文献fdosefp;〃关闭文献fclosef pl;〃增长顾客信息模块void creatfileFILE*fp=NULL,*p=NULL,*fpl;〃存储顾客信息的文献名char DataFilepOMyonghu.txt”;//int a
[100];int i=0,k=l count=0;zfp=fopenDataFile r;,〃清屏system“cls”;〃假如目前文献不存在,提醒打开文献失败iffp==NULL〃以写方式打开fpl=fopen”howmanyusers.txt“Jw+”;fprintffplJ%d,O;〃打开顾客文献失败,则输入顾客个数0到fplfclosefpl;printf”\n不存在%s,正在创立!\n,DataFile;fp=fopenDataFile,a;creatfile;iffpl二fopen,howmanyusers.txt,,Ja”二二NULL〃读写方式打开文献,若文献不存在,则n=0n=0;else fpl=fopenhowmanyusers.txt,,,r;“%川;〃读取中的顾客个数fscanffpl,fplfclosefpl;fori=0;in;i++〃从文献中读取信息freaduser[i],sizeofstruct users,l,fp;〃关闭文献fclosefp;〃假如成功打开文献,则提醒输入顾客有关信息“请输入顾客信息\己;printffflushstdin;whilek输入身份证号码注意身份证号码不能为//printf\n0!\n;”请输入身份证号码:;printfscanf%ld,up.Number;i=0;〃再次初始化i为0〃判断身份证号与否存在whileinifuser[i].Number==up.Number“该身份证号码已被使用过!请重新输入身份证号”;printf\nscanf%ld up.Number;zi=0;//continue;elsei++;〃经循环对比后,勺值仍和相等,将新注册勺信息加入数组末位iH nHuser[i].Number=up.Number;姓名:“;printfscanf”%s”,user[i].Name;user[i].Name
[19]=\0,;性别:;printfscanf%s,user[i].sexual;顾客密码:;printfscanf%s”,user[i].ps;年龄:;printfscanf%d user[i].age;z〃顾客数目增长n++;printfC1与否继续注册?是选1,否选0;;scanf%d,k;〃保留顾客信息saveuseruser;fclosefp;〃在屏幕上显示文献内容;〃读取航班信息void read对所有航班按航班号排序void paixu;//;〃查找航班信息void search;〃订票信息void dingpiao〃管理员/顾客信息构造体,管理员可以修改航班信息structusers〃管理员/顾客姓名char Name
[20];〃顾客性别char sexual
[10];//顾客密码char ps
[8];〃顾客年龄int age;〃顾客身份证号码long Number;int power;〃power为1是管理员登录,为是顾客登录为键盘输入顾客信息,为文献保留的顾客信息,为管理员构造体}user[N],up,mg;//up user[N]J mg〃所有顾客个数,初始化为int n;0int num;〃航班号〃航班信息构造体struct airsystemcls;printf数据已经成功保留到%s中nDataFile;getchar;printf按任意键返回主界面!\nH;getchar;systemcls;〃返回主界面zhujiemian;〃管理员登录机票系统void loginflightmint j;dosystemcls;printf★您好,欢迎进入自动化飞机订票系统!一★、口”;printf================================================================================\n;printf**☆L输入航班信息☆**\n\n**
2.浏览航班信息☆**\n\n n**☆
3.查找航班信息・☆**\n\n**☆
4.对航班按航班票价排序一☆**\n\n**☆
5.订票信息-☆**\n\n**☆
0.退出-☆**\n\n**☆☆**\n\nn****☆**\n\nnH**☆☆**\n\n;printf================================================================================\n;”请在中选择以回车键结束printf0-5\n\n;〃调用输入模块scanf%d,j;switchjcase1:input;break;case2:systemcls;〃调用打印模块print;break;case3:break;〃调用排序模块paixu;break;〃调用订票模块dingpiao;break;case0:;break;}〃判断结束}whilej!=0;printf按任意键返回主界面\n“;systemclsH;zhujiemian;}〃登录函数结束〃顾客登录机票系统void loginflightuintj;dosystemcls;printf★您好,欢迎进入自动化飞机订票系统!一printfH================================================================================\n;printf**----------☆
2.查找航班信息-☆**\n\n**☆
3.对航班按航班票价排序一☆**\n\n**☆
4.订票信息-☆**\n\n**☆0,退出-☆**\n\n**☆☆**\n\n**☆**\n\nH**☆☆**\n\nH;printf================================================================================\n;printf”请在0・5中选择以回车键结束\n\n;scanf”%d,j;switchjsystemcls;〃调用打印模块print;break;〃调用查找模块search;break;〃调用排序模块paixu;break;〃调用订票模块dingpiao;break;case0:;break;}〃判断结束}whilej!=0;按任意键返回主界面printf\n“;systemcls,,;zhujiemian;}〃登录函数结束〃输入航班信息模块,管理员操作void inputint i=0,k=l;read;printf”请依次输入航班信息航班号,起始站,终点站,起飞时间,机票数,票价:\n\n“;〃打印提醒信息printf\n;//fflushstdin;whilekprintf请输入航班号:\n”;scanf”%cT,fnew.num;//读取航班号i=0;〃再次初始化i为0〃判断航班与否已经存在whileimifs[i].num==fnew.num该航班已经存在!请重新输入”;printf,\nscanf%d,fnew.num;i=0;//continue;elsei++;〃经循环对比后,时值仍和相等,将新注册的信息加入数组末位i ns[i].num=fnew.num;”请输入起始站:printf\n;〃读取起始站scanfC^sH].start;请输入终点站:printf\n;〃读取终点站scanfC^ism.over;printf“请输入时间:\n“;〃读取时间scanf%s,s[i].time;printfd请输入余票数机票数为结束输入:\nu,m;〃读取机票数scanf%d”,s[i].count;请输入机票票价:print,\nm;scanf“%d\s[i].prize;〃读取机票票价〃所有航班信息个数m++;〃printf第%d个信息已经输完与否继续按1-9任意数字继续,按0结束,m;〃scanf%d,y;printf与否继续添加航班?是选1,否选0;;scanf“%d;k;ifk==O〃将构造体信息存盘save;systemcls,,;〃输出输入日勺航班信息print;break;〃航班信息保留模块程序void save〃定义文献指针FILE*fp,*fpl;〃打开文献并判断与否出错ifKfpMfopenCflight.txtVwbRKNULL创立文献失败!〃打印出错提醒printf\n\rT;getchar;return;iffpl=£^611/\/71713”1匣1115此1,,,,,\/75,=二|\1111_1_〃打开文献并判断与否出错创立文献失败!〃打印出错提醒printf\n\n“;getchar;return;fori=0;im;i++〃向文献写入数据,并判断与否出错iffwrites[i],sizeofstruct air,l,fp==O printf向文献输入数据失败!\n\rT;fpnntffpl,%d m;z〃关闭文献fclosefp;〃关闭文献fclosefpl;〃从文献读取航班信息模块void readFILE*fp,*fpl;〃定义文献指针fp=fopenflight.txt,r;//systemcls;//M^=二〃假如目前文献不存在,提醒打开文献失败iffp NULLfpl=£€^6“小0\/7013”用895双1”「V+”;〃以写方式打开;“打开顾客文献失败,则输入顾客个数到fprintf-plj%0fpl fclosefpl;printf(\n不存在flight.txt,正在创立!\nH);fp=fopenflight.txt,,,,,a;printf创立完毕!\nH;systemcls;read;//perrorOpen filefail;//getch;方式打开文献,若文献不存iffpl=fopenhowmanyflights.txt,rb==NULL//^^在,则m=0〃primf创立文献失败!\n\n;〃打印出错提醒m=0;elsefpl=fopenhowmanyflights.txt,r;fscanffpl,%d,m;〃读取fpl中日勺顾客个数fclosefpl;fori=0;im;i++〃出发地char start
[20];//目的地char over
[20];1〃时间char time
[10];〃票数〃票价int count;int prize;}s[N],fnew;int i;〃所有航班个数int m=0;#define PRINT〃定义输%-d%12s%12s%10s%12d%10d\n,s[i].num,s[i].start,stil.oveGstil.time,sfi].count,s[i].prize出格式〃主函数void mainzhujiemian;〃主界面函数void zhujiemianintj;printf#欢迎进入机票管理系统printf#===================================================#\n;〃从文献中读取信息freads[i],sizeofstruct aiij’l,fp;〃关闭文献fdosefp;〃屏幕打印航班信息模块void print〃调用读取文献函数read;ifm==0printf\n\n目前没有航班信息!\n;else航班信息如下:printf\n;航班号起始站终点站时间余票数票价printf\n“;fori=0;im;i++〃打印信息printfPRINT;}请按任意键回车键结束返回主菜单printf“\ngetchar;getchar;〃对所有航班按航班价格排序void paixuintj;struct paiint no;char namel
[20];char name2
[20];char time
[20];int count;int prize;}p⑴;〃临时定义构造体,作为排序时日勺第三变量〃调用读取信息函数read;forj=0;jm-l;j++fori=0;im-l+j;i++〃按价格升序排列,为中间变量ifs[i].prizes[i+l].prize p
[0]p⑼.no=s[i].num;〃替代航班号〃替代其始站〃替strcpyp[O].nameLs[i].start;strcpyp
[0].name2,s[i].over;代终点站511^丫9
[0]上亦巳51].甘171已;〃替代时间〃替代机票数〃替代票价p
[0].count=s[i].count;p[O].prize=s[i].prize;s[i]=s[i+l];〃替代航班号s[i+l].num=p
[0].no;strcpys[i+l].start,p⑼.namel;〃替代其始站51却丫51+1].丫0卬
[0].恒0162;〃替代终点站strcpys[i+l].time,p[O].time;〃替代时间s[i+l].count=p⑼.count;〃替代机票数s[i+l].prize=p[O].prize;}}〃调用保留函数save;systemcls;printf排序后,”;〃按航班号查询模块void searchcharii
[10];intno,k;〃调用读取函数read;dosystemcls;〃每次查找都初始化为k=0;k0“请输入你要找的航班号;〃打印查询方式菜单printfscanf%d,no;〃航班号fori=0;im;i++〃按航班号判断输出条件ifs[i].num==nok=l;systemcls;printfn\n查找航班信息成功!\n“;航班号起始站终点站时间printf余票数票价\n“;〃打印信息printfPRINT;break;}}〃将航班号重新赋值为no=0;0ifk==Oprintf没有您需要的信息\n”;与否继续查找请键入或以回车键结束printf\n yesno\n“;scanf%s,ii;〃判断结束whilestrcmpiiJyes==O;〃订票模块void dingpiaointn;char a
[10];〃调用查询模块search;do请输入您要订的机票数以车键结束printf ID\n;scanf%d,n;〃读取所订机票数ifn0请输入有效日勺机票数!〃判断机票数与否出错printf\n;break;}〃判断与否出错ifs[i].court!=0s[i].court=rs[i].count=s[i].count-n;〃调用保留函数save;订票成功成printf\n;break;〃判断与否出错ifs[i].countnprintf余票局限性,请输入有效的机票数!\n“;getchar;}“与否继续订票?请输入或以回车键结束:〃判断与否继续订票printf yesno\n;scanf%s,a;〃判断结束while!strcmpajyes;getchar;按键返回顾客主界面printfC ENTERgetchar;、新顾客注册printf#2#\n;、退出printf#0#\n;printf#===================================================#\n;“请在中选择以回车键结束printf1-2\n\n;scanf“%d”,j;switchj〃进入机票系统case l:verify;break;〃进入顾客注册系统case2:creatfile;break;case0:;break;}〃验证顾客及管理员信息模块void verifyintj;systemcls;printf#===================================================#\n;、顾客登录printf#2#\n;、返回主界面printf#0#\n;printf#===================================================#\n;scanf%d,j;switchj〃进入管理员登录界面case l:loginmanager;break;〃进入顾客登录界面case2:loginuser;break;case0:systemcls;;〃进入主界面zhujiemian break;};;/********^壬里员咨定函^j**********Ivoid loginmanager〃定义文献指针FILE*fp=NULL;charDataFile
[20]=,,manager.txt,1;〃存储管理员信息的|文献名inti=OJ=l;〃与否重新登录char relogin;〃登录成功勺标志int success=0;H管理员登录-printf\n----\n;fp=fopenDataFile,r;〃假如目前文献不存在,初始化根顾客名为密码为权限为管理员iffp==NULL boss,123,printf初次使用该系统!\n“;“管理员账户为密码为printf boss123\n;二〃以追加方式打开文献fp fopenDataFileJa”;user
[0].Number=0;strcpyuser
[0].Name/bossH;strcpyuser[O].sexual,male;user
[0].age=22;user
[0].power=l;strcpyuser
[0].ps,123;fwriteuser
[0],sizeofuser l,fp;zfclosefp;elsefclosefp;again:“请输入管理员姓名:“;printf〃输入顾客名scanfC/sup.Name;up.Name
[19]=\0,;请输入管理员密码门;printffflushstdin;〃输入密码,以*在屏幕显示fori=0;i7;i++up.ps[i]=getch;〃字符要以3结尾up.ps[i+l]=3;ifup.ps[i]==\b,i--;/3国二2;〃清除前一种字符i-;〃接受前一种字符printf\b;printf\b;continue;}ifup.ps[i]==\r up.ps[i]=,\O;break;printf*;fp=fopenDataFile/,rt;打开文献失败时提醒iffp==NULL//printf\n打开%s失败!按任意键结束程序\n,DataFile;perrorOpen filefail;getchar;return;}iffp=fopen,manager.txt”,,,r,,==NULL〃打开文献,并判断与否出错printfn\n出错,请检查文献与否存在,按任意键返回主菜单\n;〃打印出错提醒getchar;else」,〃从文献中读取信息freadmg,sizeofstruct usersfp;〃关闭文献fclosefp;ifstrcmpmg.Name up.Name==Ostrcmpmg.ps up.ps==O//success=l;〃登录成功ifsuccess==lprintf\n登录成功,按任意键进入机票调整系统!\n“;getchar;loginflightm;〃未登录成功else〃清除输入缓冲区中日勺字符fflushstdin;顾客名或密码错误!重新输入请按退出请按printf\n y,n:\n;relogin=getchar;ifrelogin==y,||relogin==Y,getchar;。