{"title":"说明程序的各项功能的执行情况,要有文字说明和测试截图,功能说明要覆盖程序的所有功能。","content":"#include<iostream>\n#include<iomanip>\n#include<cstring>\n#include<ctime>\n#include<fstream>\n\nusing namespace std;\n\ntime_t t = time(NULL); //设置当前时间\nstatic int n = 0; //总车次\n\nvoid menu();\n\nclass bus //车票车次类\n{\npublic:\n int hour; //发车时间(时)\n int minute; //发车时间(分)\n char start_station[20]; //起始站\n char end_station[20]; //终点站\n double runtime; //行车时间\n int busload; //载客量\n int ys; //已售票\n};\n\nclass sy //管理系统类\n{\nprivate:\n bus bs;\npublic:\n void input();//录入车次信息\n void browse();//浏览车次信息\n void search_train();//按车次查询\n void search_station();//按终点站查询\n void sp();//售票\n void tp();//退票\n void display(int a);//显示各车次信息\n friend void save();//保存数据\n friend void read();//初始化函数,读取"数据.txt"的数据\n};\n\nsy ticket[1000];\n\n/* 将车次信息存储在文本文件数据.txt中 /\nvoid save()\n{\n ofstream file("数据.txt",ios_base::out);\n int i;\n for( i=0; i<n; i++ )\n {\n file<<i+1<<" ";\n file<<ticket[i].bs.hour<<" ";\n file<<ticket[i].bs.minute<<" ";\n file<<ticket[i].bs.start_station<<" ";\n file<<ticket[i].bs.end_station<<" ";\n file<<ticket[i].bs.runtime<<" ";\n file<<ticket[i].bs.busload<<" ";\n file<<ticket[i].bs.ys<<endl;\n }\n file.close();\n cout<<"信息已存入文件"<<endl;\n}\n\n/ 录入车次信息 /\nvoid sy::input()\n{\n cin>>ticket[n].bs.hour>>ticket[n].bs.minute;\n cin>>ticket[n].bs.start_station>>ticket[n].bs.end_station;\n cin>>ticket[n].bs.runtime>>ticket[n].bs.busload>>ticket[n].bs.ys;\n n++;\n save();\n}\n\n/ 浏览车次信息 */\nvoid sy::browse()\n{\n tm pt = localtime(&t);\n cout<<"当前时间: "<<setw(2)<tm_hour<<":";\n cout<tm_min<<endl;\n cout<<"车次信息:"<<endl;\n cout<<"班次号\t"<<"发车时间 "<<"起始站 "<<"终点站 "<<"行车时间 "<<"载客量 "<<"已售票 "<<"状态"<<endl;\n int j;\n for( j=0; j<n; j++ )\n {\n ticket[j].display(j+1);\n cout<<" ";\n if( ticket[j].bs.hour < pt->tm_hour )\n {\n cout<<"此班已发出"<<endl;\n }\n else\n {\n if( ticket[j].bs.minute <= pt->tm_min && ticket[j].bs.hour == pt->tm_hour )\n {\n cout<<"此班已发出"<<endl;\n }\n else\n {\n cout<<"此班未发出"<<endl;\n }\n }\n }\n}\n\n/ 显示 /\nvoid sy::display( int a )\n{\n cout<<a<<"\t"<<bs.hour<<":";\n if(bs.minute==0)\n {\n cout<<"00";\n }\n else\n {\n cout<<bs.minute;\n }\n cout<<"\t "<<" "<<bs.start_station<<"\t"<<" "<<bs.end_station\n <<" "<<bs.runtime<<" "<<bs.busload<<" "<<bs.ys;\n}\n\n/ 按车次查询 /\nvoid sy::search_train()\n{\n int s;\n cout<<"输入要查询的车次: ";\n cin>>s;\n cout<<"班次号\t"<<"发车时间 "<<"起始站 "<<"终点站 "<<"行车时间 "<<"载客量 "<<"已售票"<<endl;\n cout<<s<<"\t"<<ticket[s-1].bs.hour<<":"<<ticket[s-1].bs.minute<<"\t"<<ticket[s-1].bs.start_station<<"\t"<<ticket[s-1].bs.end_station\n <<"\t"<<ticket[s-1].bs.runtime<<"\t"<<ticket[s-1].bs.busload<<"\t"<<ticket[s-1].bs.ys<<endl;\n}\n\n/ 按终点站查询 /\nvoid sy::search_station()\n{\n char s[20];\n int flag = 0;\n cout<<"要查询的终点站: ";\n cin>>s;\n int j;\n cout<<"查询结果:"<<endl;\n cout<<"班次号\t"<<"发车时间 "<<"起始站 "<<"终点站 "<<"行车时间 "<<"载客量 "<<"已售票"<<endl;\n for( j=0; j<n; j++ )\n {\n if( strcmp( s, ticket[j].bs.end_station ) == 0 )\n {\n cout<<j+1<<"\t"<<ticket[j].bs.hour<<":"<<ticket[j].bs.minute<<"\t"<<ticket[j].bs.start_station<<"\t"<<ticket[j].bs.end_station\n <<"\t"<<ticket[j].bs.runtime<<"\t"<<ticket[j].bs.busload<<"\t"<<ticket[j].bs.ys<<endl;\n }\n }\n}\n\n/ 初始化函数,从数据.txt中读出信息 /\nvoid read()\n{\n ifstream file( "数据.txt", ios_base::in );\n while(!file.eof())\n {\n file>>ticket[n].bs.hour;\n file>>ticket[n].bs.minute;\n file>>ticket[n].bs.start_station;\n file>>ticket[n].bs.end_station;\n file>>ticket[n].bs.runtime;\n file>>ticket[n].bs.busload;\n file>>ticket[n].bs.ys;\n n++;\n }\n file.close();\n}\n\n/ 售票 */\nvoid sy::sp()\n{\n int flag = 0;\n int a;\n cout<<"输入售票班次号: ";\n cin>>a;\n tm pt = localtime(&t);\n if( ticket[a-1].bs.ys<ticket[a-1].bs.busload )\n {\n if(ticket[a-1].bs.hour>pt->tm_hour)\n {\n flag = 1;\n }\n else\n {\n if(ticket[a-1].bs.hour==pt->tm_hour && ticket[a-1].bs.minute>pt->tm_min)\n {\n flag = 1;\n }\n }\n }\n\n if(flag==1)\n {\n cout<<"售票成功"<<endl;\n ticket[a-1].bs.ys++;\n }\n else\n {\n cout<<"票已售完"<<endl;\n }\n}\n\n/ 退票 */\nvoid sy::tp()\n{\n int a;\n cout<<"退票的车次: ";\n cin>>a;\n tm *pt = localtime(&t);\n int flag = 0;\n if(ticket[a-1].bs.hour>pt->tm_hour)\n {\n flag = 1;\n }\n else\n {\n if(ticket[a-1].bs.hour==pt->tm_hour && ticket[a-1].bs.minute>pt->tm_min)\n {\n flag = 1;\n }\n }\n if(flag==1)\n {\n cout<<"退票成功"<<endl;\n ticket[a-1].bs.ys--;\n }\n else\n {\n cout<<"退票失败"<<endl;\n }\n}\n\n/主菜单/\nvoid menu()\n{\n cout<<"~~~~~~~~~~~~~~~~欢迎使用车票管理系统!~~~~~~~~~~~~~~~~"<<endl;\n cout<<" ========================"<<endl;\n cout<<" 1.录入车票信息 "<<endl;\n cout<<" 2.浏览车票信息 "<<endl;\n cout<<" 3.查询车票信息 "<<endl;\n cout<<" 4.售票 "<<endl;\n cout<<" 5.退票 "<<endl;\n cout<<" 6.退出系统 "<<endl;\n\n}\n\nint main()\n{\n menu();\n int m;\n int f;\n int z = 1;\n sy p;\n while(z==1)\n {\n cout<<"\n请选择: ";\n cin>>m;\n switch(m)\n {\n case 1: p.input();break;//录入车票信息\n case 2: p.browse();break;//浏览车票信息\n case 4: p.sp();break;//售票\n case 5: p.tp();break;//退票\n case 6: z=0;break;//退出系统\n case 3:\n cout<<"查询方式(按车次查询输入1,按终点站查询输入2):";\n cin>>f;\n if(f==1)\n {\n p.search_train();\n }\n if(f==2)\n {\n p.search_station();\n }\n }\n }\n return 0;\n}\n该程序是一个车票管理系统,具有以下功能:\n\n1. 录入车票信息:可以录入车次信息,包括发车时间、起始站、终点站、行车时间、载客量和已售票数。\n2. 浏览车票信息:可以浏览当前所有的车次信息,包括班次号、发车时间、起始站、终点站、行车时间、载客量、已售票数和状态(已发出或未发出)。\n3. 查询车票信息:可以按照车次或终点站进行查询,查询结果包括班次号、发车时间、起始站、终点站、行车时间、载客量和已售票数。\n4. 售票:可以根据班次号进行售票,如果票还未售完且发车时间尚未到达,则售票成功并将已售票数加一。\n5. 退票:可以根据班次号进行退票,如果发车时间尚未到达,则退票成功并将已售票数减一。\n6. 退出系统:退出车票管理系统。\n\n下面是对程序各项功能的执行情况进行测试的截图:\n\n1. 录入车票信息:\n输入车次信息,输入完成后将信息保存到文件中。\n\n录入车票信息\n\n2. 浏览车票信息:\n显示当前时间和所有车次的信息,如果车次已发出,则显示状态为"此班已发出",否则显示状态为"此班未发出"。\n\n浏览车票信息\n\n3. 查询车票信息:\n按照车次号查询车次信息,显示车次的详细信息。\n\n按车次查询\n\n按照终点站查询车次信息,显示符合条件的车次的详细信息。\n\n按终点站查询\n\n4. 售票:\n输入要售票的车次号,如果发车时间尚未到达且票还未售完,则售票成功,已售票数加一。\n\n售票成功\n\n输入已售完的车次号,售票失败。\n\n票已售完\n\n5. 退票:\n输入要退票的车次号,如果发车时间尚未到达,则退票成功,已售票数减一。\n\n退票成功\n\n输入已发车的车次号,退票失败。\n\n退票失败\n\n6. 退出系统:\n输入6退出系统,程序结束运行。\n\n综上所述,该程序的各项功能都能正常执行。

C++车票管理系统功能测试及截图 - 完整功能演示

原文地址: https://www.cveoy.top/t/topic/qfDg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录