2022年C++车票管理系统 .pdf
#include #include #include #include #include #include #include #include #include using namespace std; int manage=0,end=1; staticintnum=-1; long t = time(NULL); voidmainmenu(); class user private: char train10; int hour; int minute; intzhanshu; charstart_station20; charend_station20; intticket_price; char zhandian200; public: void input();/ 录入函数void browse();/ 浏览车次函数void search_train();/ 按车次查询void search_station();/ 按站点查询void display(int );/ 显示个车次信息friend void save ();/ 保存数据friend void del();/ 删除数据friend void Int();/ 初始化函数,读取“数据.txt”中的数据 ; user ticket10; /*- 存储函数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 将车次信息存储在数据.txt 中-*/ void save() ofstream file( 数据 .txt,ios:out); for(int j=0;j=num;j+) fileticketj.train ; fileticketj.zhanshu ; fileticketj.start_station ; fileticketj.end_station ; fileticketj.ticket_price ; fileticketj.zhandianendl; file.close(); cout信息已存入文件endl; /*- 删除模块将车次信息从数据.txt 中删除-*/ void del() charna10; inti,j; cout选择删除模式(1.按车次 2.按编号) k; switch(k) case 1: coutna; for(i=0;i=num;i+) if(strcmp(na,ticketi.train)=0) for( j=i+1;j=num;j+) ticketj-1=ticketj; coutendlnum) cout对不起,没有有关此站点的车次信息!; else num-; save(); break; case 2: coutn 您要删除第几个(从上往下):number; for(;numbernum+1;) cout指令错误!请重新输入!number; coutendlendl; for(j=number;j=num;j+) ticketj-1=ticketj; coutendltttt删除成功! n; num-; save(); break; /*- 输入车次信息函数-*/ void user:input() num+; coutticketnum.train; coutticketnum.hour;while(ticketnum.hour24); cinticketnum.zhanshu; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - coutticketnum.start_station; coutticketnum.end_station; coutticketnum.ticket_price; coutticketnum.zhandian; save (); /*- 浏览以存车次的信息-*/ void user:browse() int j; t = time(NULL); tm * pt = localtime(&t); cout当前时间: setfill(0)setw(2)tm_hour:; coutsetw(2)tm_min:; coutsetw(2)tm_secendlendl; cout现存车次信息如下:endlendl; cout编号 t 车次 t 站数 t 起始 t 终点 t 票价 t 站点 tendl; for( j=0;j=num;j+) ticketj.display(j+1); /*- 按站点查询-*/ void user:search_station() char station20; inti=0; coutstation; coutendlendl; for(int j=0;j=num;j+) if(strcmp(station,ticketj.start_station)=0)|(strcmp(station,ticketj.end_station)=0) cout查询结果: endl; cout 编号 t 车次 t 站数 t 起始 t 终点 t 票价 t 站点tnum&i=0) cout对不起,没有有关此站点的车次信息!; /*- 按车次查询-*/ void user:search_train() char train10; inti=0; couttrain; coutendlendl; for(int j=0;j=num;j+) if(strcmp(train,ticketj.train)=0) cout查询结果: endl; cout编号 t 车次 t 站数 t 起始 t 终点 t 票价 t 站点 tnum&i=0) cout对不起,没有这趟车次信息!; /*- 显示模块-*/ void user:display(int n) int numb; numb=n; coutendl; coutnumbttraint zhanshutstart_stationt end_stationtticket_pricet zhandiant; /* t = :time(NULL); tm * pt = localtime(&t); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - if(hourtm_hour) couttm_hour&minutetm_min) cout 列车已发出 ; else coutt 正常 ; coutendl; */ /*- 退出函数-*/ char exit() char w; /system(cls); couttt O(_)O O(_)Oendl; couttt 退出菜单endl; couttt endl; couttt 1、确定endl; couttt 2、取消endl; couttt endl; couttt endl; couttt endl; coutw; return w; /*- 身份验证选择管理员 / 乘客身份-*/ void menu() intfunctionNumber;/,code; char password5=1234; char code5; couttt O(_)O O(_)O endl; couttt 公交管理endl; couttt endl; couttt 1、管理员用户endl; couttt 2、信息查询endl; couttt endl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12 页 - - - - - - - - - couttt endl; couttt * endl; couttt endl; coutfunctionNumber; for(;functionNumber!=1&functionNumber!=2&functionNumber!=3;) cout指令错误!请重新输入:functionNumber; if (functionNumber=1) cout请输入密码: ; inti=0; for(;i4;i+) codei=getch(); cout*; code4=0; for(;strcmp(password,code)!=0;) cout指令错误!请重新输入:endl; for(i=0;i4;i+) codei=getch(); cout*; manage=1; coutendl; /*- 查询子菜单查询某车次 /有某站点的车次-*/ voidsearch_menu() intfunctionNumber; cout 查 询 子 菜 单nendl; coutendl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - cout 1. 按 班 次 查 询nendl; cout 2. 按 站 点 查 询nendl; cout 3. 返 回 主 菜 单nendl; coutendl; coutfunctionNumber; coutendlendl; for(;functionNumber!=1&functionNumber!=2&functionNumber!=3;) cout指令错误!请重新输入!functionNumber; coutendlendl; switch(functionNumber) case 1:ticket0.search_train();break; case 2:ticket0.search_station();break; case 3:system(cls); mainmenu(); /*- 主菜单-*/ voidmainmenu() char s; intfunctionNumber; cout 欢 迎 使 用 车 票 管 理 系 统nendl; coutendl; cout 1. 录 入 班 次 信 息nendl; cout 2. 浏 览 班 次 信 息nendl; cout 3. 查 询 行 车 路 线nendl; cout 4. 删 除 车 次 内 容nendl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页 - - - - - - - - - cout 5. 返 回 上 级 菜 单nendl; cout 6. 退 出 系 统nendl; coutendl; coutfunctionNumber; coutendlendl; switch(functionNumber) case 1: char c; if (manage) do ticketnum.input(); cout已录入 num+1 条航班信息(包括已从文件中读取的),想继续录入吗 (y/n)c; for(;c!=y&c!=n;) cout指令错误!请重新输入!c; while (c=y); else cout对不起,您不是管理员不能进行这项操作!; coutendl 按任意键回主菜单.endl; getchar();getchar(); system(cls); break; case 2: ticketnum.browse(); coutendlendlendl 按任意键回主菜单.endl; getchar();getchar(); system(cls); break; case 3: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - - - - - search_menu(); coutendl 按任意键回主菜单.endl; getchar();getchar(); system(cls); break; case 4: if(manage) ticket0.browse(); del(); coutendl 按任意键回主菜单.endl; getchar();getchar(); system(cls); else cout对不起,您不是管理员不能进行这项操作!; coutendl按任意键回主菜单.endl; getchar();getchar(); system(cls); break; case 6: s=exit(); if(s=1) t = time(NULL); tm* pt = localtime(&t); system(cls);coutendlendlendlendlendlendlendl; cout 谢谢使用车票管理系统n; coutendlendlendlendlendlendlendlendlendlendl endl ttttttt制作 :李明 endlendl; end=0; break; case 5: system(cls); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - menu(); break; default: cout输入错误 ,请确保你的输入为1-5endl; cout按任意键回主菜单.ticketnum.train; fileticketnum.hour ; fileticketnum.minute; fileticketnum.start_station; fileticketnum.end_station; fileticketnum.ticket_price; fileticketnum.zhandian; num-; file .close(); void main() Int(); menu(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - - - domainmenu(); while(end); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -