c++车票管理系统

c++车票管理系统vx:sredxc

这段代码实现了一个简单的高铁票务管理系统,具有以下功能:

1.添加班次信息:用户可以输入班次号、起点站、终点站、发车时间和车票容量,系统会将这些信息保存到班次信息中。
2.浏览班次信息:系统会显示已经添加的所有班次的详细信息,包括班次号、起点站、终点站、发车时间、已售票数和总票数。
3.查询班次信息:用户可以输入班次号,系统会显示该班次的详细信息,包括班次号、起点站、终点站、发车时间、已售票数和总票数。
4.售票功能:用户可以输入班次号进行售票,系统会检查是否还有余票,若有则成功售票并更新已售票数;若无则提示车票已售完。
5.退票功能:用户可以输入班次号进行退票,系统会检查是否有已售票,若有则成功退票并更新已售票数;若无则提示没有已售票可退。
6.退出程序:用户可以选择退出程序。
该系统使用了 C++ 中的类和结构体,通过 map 来存储班次信息,实现了基本的班次管理功能,包括添加、浏览、查询、售票和退票等功能。

车票管理系统初始页面,需要源码vx:sredxc

在这里插入图片描述

int choice = 0;
while (choice != 6) { // 选项6为退出程序
    cout << "==== 高铁票务管理系统 ====" << endl;
    cout << "1. 浏览班次信息" << endl;
    cout << "2. 查询班次信息" << endl;
    cout << "3. 售票功能" << endl;
    cout << "4. 退票功能" << endl;
    cout << "5. 添加班次信息" << endl;
    cout << "6. 退出程序" << endl;
    cout << "请输入选项:";
    cin >> choice;

    switch (choice) {
    case 1:
        ticketSystem.displayTrains();
        break;
    case 2: {
        string trainNumber;
        cout << "请输入班次号:";
        cin >> trainNumber;
        ticketSystem.searchTrain(trainNumber);
        break;
    }
    case 3: {
        string trainNumber;
        cout << "请输入班次号:";
        cin >> trainNumber;
        ticketSystem.sellTicket(trainNumber);
        break;
    }
    case 4: {
        string trainNumber;
        cout << "请输入班次号:";
        cin >> trainNumber;
        ticketSystem.returnTicket(trainNumber);
        break;
    }
    case 5:
        ticketSystem.addTrain();
        break;
    case 6:
        cout << "感谢使用,再见!" << endl;
        break;
    default:
        cout << "无效选项,请重新输入!" << endl;
    }
}

新增车票信息

在这里插入图片描述

查询车票信息

在这里插入图片描述

代码包含完整的发布车票信息,购票,退票,票数检测,余票检测,车票查询等功能

#include <iostream> #include <fstream> #include <string> #include<time.h> using namespace std; void welcome(); //欢迎子函数 void choose(); //选择子函数 void banciluru(); //班次录入子函数 void liulanbancixinxi(); //浏览班次信息子函数 void shoupiao(); //售票子函数 void tuipiao(); //退票子函数 void quit(); //退出子函数 void chaxun(); //查询子函数 int loading(); //文件载入子函数 const int MAX=20; //使数组最大值可调 const int N=50; struct time //时间结构体,为了与系统时间做比较. { int hour; int minutes; }; struct ticket //车票结构体,包含车次,时间结构体,起点,终点,行车时间,额定载客量,已订票人数 { int Number; struct time Setout; char Qidian[MAX]; char Zhongdian[MAX]; float Lasttime; int Fixnumber; int Fixednumber; }car[N]; //主函数 int main() { welcome(); return 0; } //欢迎子函数 void welcome() { cout<<"________________________________________________________"<<endl; cout<<"| 欢 * 迎 * 使 * 用 * 火 * 车 * 票 * 管 * 理 * 系 * 统 |"<<endl; cout<<"| |"<<endl; cout<<"| 本管理系统有以下功能: |"<<endl; cout<<"| |"<<endl; cout<<"| 1 班次录入 |"<<endl; cout<<"| 2 浏览班次信息 |"<<endl; cout<<"| 3 查询火车信息 |"<<endl; cout<<"| 4 购买火车票 |"<<endl; cout<<"| 5 退订火车票 |"<<endl; cout<<"| 6 退出系统 |"<<endl; cout<<"|______________________________________________________|"<<endl; cout<<"请输入所要执行功能前的数字: "<<endl; choose(); } //选择子函数 void choose() { string i; cin>>i; if(i=="1") banciluru(); if(i=="2") liulanbancixinxi(); if(i=="3") chaxun(); if(i=="4") shoupiao(); if(i=="5") tuipiao(); if(i=="6") quit(); else { cout<<"输入有误!请在数字1-5之间重新您的输入选择!"<<endl; choose(); } } //班次录入子函数 void banciluru() { string t="1"; ofstream outfile; outfile.open("班次信息.txt",ios::app); for(int i=0;t=="1";i++) { cout<<"请输入需要添加的火车班次:"<<endl; cin>>car[i].Number; cout<<"请输入此班次发车时间(格式:先输入小时,回车,再输入分钟):"<<endl; cin>>car[i].Setout.hour; cin>>car[i].Setout.minutes; cout<<"请输入出发站:"<<endl; cin>>car[i].Qidian; cout<<"请输入终点站:"<<endl; cin>>car[i].Zhongdian; cout<<"请输入行车时间:"<<endl; cin>>car[i].Lasttime; cout<<"请输入额定载客量:"<<endl; cin>>car[i].Fixnumber; cout<<"请输入已订票人数:"<<endl; cin>>car[i].Fixednumber; outfile<<car[i].Number<<" "<<car[i].Setout.hour<<" "<<car[i].Setout.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber<<" "<<car[i].Fixednumber<<endl; cout<<"是否继续录入?(是请输1,否请输任意键返回主菜单)"<<endl; cin>>t; if(t!="1") { welcome(); } } outfile.close(); cout<<"输入回车键返回"<<endl; getchar(); getchar(); welcome(); } //浏览班次子函数 void liulanbancixinxi() { int c; c=loading(); cout<<"班次"<<" "<<"发车时间"<<" "<<"起点站"<<" "<<"终点站"<<" "<<"行车时间"<<" "<<"额定载客量"<<" "<<"已订票人数"<<endl; for(int i=0;i<c;i++) { cout<<car[i].Number<<" "<<car[i].Setout.hour<<":"<<car[i].Setout.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber<<" "<<car[i].Fixednumber<<endl; time_t tval; struct tm *now; tval = time(NULL); now = localtime(&tval); if((now->tm_hour==car[i].Setout.hour&&now->tm_min>car[i].Setout.minutes)||(now->tm_hour>car[i].Setout.hour)) cout<<"此车已发出"<<endl; } cout<<"输入回车键返回"<<endl; getchar(); getchar(); welcome(); } //车次查询子函数 void Numbersearch(); void Finalsearch(); void chaxun() { string t; cout<<"1.按班次查询"<<endl; cout<<"2.按终点站查询"<<endl; cout<<"请输入您想选择的查询方法前的数字:"<<endl; cin>>t; if(t=="1") Numbersearch(); if(t=="2") Finalsearch(); if(t!="1"||t!="2") { cout<<"输入有误,请重新输入"<<endl; chaxun(); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值