折腾
c语言
暑假
火车票管理系统: 要求用面向对象的方法实现火车票管理系统, 车票信息包
括车次号、 发车时间、 到站时间、 出发地、 到达地、 行车时间、 剩余车票
数、 票价等, 如:
车次 | 发车时间 | 到站时间 | 出发地 | 到达地 | 行车时间 | 剩余车票数 | 票价 |
G6714 | 6:40 | 8:30 | 石家庄站 | 北京西站 | 1时50分 | 9 | 129 |
Z50 | 7:28 | 10:05 | 石家庄站 | 北京西站 | 2时37分 | 18 | 43.5 |
T146 | 7:48 | 11:18 | 石家庄站 | 北京西站 | 3时30分 | 17 | 43.5 |
...... | ...... | ...... | ...... | ...... | ...... | ...... | ...... |
具体实现的管理功能如下:
(1) 录入车次信息(文本文件保存) , 可随机地增加车次数据。
(2) 浏览车次信息, 途径站。
(3) 查询车票: 按照出发地、 到达地查询车次.
(4) 售票功能: 自动更新剩余车票数。
程序所显示的菜单内容如下:
请选择下面的菜单:
1.录入车次信息
2.浏览车次信息
3.查询车票信息
4.售票
5.退出
请选择
- #include
- #include
- #include
- using namespace std;
-
- int number;//功能键
- int n;//车次的个数
-
-
- class Ticket
- {
- public:
- char no[10];//车次号
- int month;//发车时间
- int day;//发车时间
- int hour;//发车时间
- int minute;//发车时间
- char start_station[20];//出发地
- char last_station[20];//到达地
- float time;//行车时间
- int price;//票价
- int last_ticket;//剩余车票数
- char tu_station[20];//途径站
- };
- Ticket t[1000];
-
- void menu();//菜单
- void chose(int);//功能的选择
- void input(Ticket t[]);//录入车次信息,可随机地增加车次数据
- void show(Ticket t[]);//浏览车次信息,途径站。
- void findtic(Ticket t[]);//查询车票:按照出发地、到达地查询车次.
- void selltic(Ticket t[]);//售票功能,自动更新剩余车票数
-
- int main()
- {
- cout<<"输入车次数:"<
- cin>>n;
- while(1)
- {
- menu();
- cin>>number;
- chose(number);
- }
- return 0;
- }
-
-
- void chose(int number)
- {
- switch(number)
- {
- case 1:
- input(t);// 录入车次信息
- break;
- case 2:
- show(t);//可在最后追加一批学生信息
- break;
- case 3:
- findtic(t);//查询车票信息
- break;
- case 4:
- selltic(t);//售票功能
- break;
- case 5:
- exit(0);//退出
- break;
- default:
- break;
- }
- }
-
-
-
- void menu()//菜单
- {
- cout<<"\n***********请选择下面的菜单:***********\n";
- cout<<"\t 1.录入车次信息\n";//
- cout<<"\t 2.浏览车次信息\n";//可在最后追加一批学生信息
- cout<<"\t 3.查询车票信息\n";//输入数据
- cout<<"\t 4.售票\n";// 按总分降序进行排序
- cout<<"\t 5.退出\n";//任意输入一个学号,能显示该学生的基本信息。
- cout<<"\t 请选择";
- cout<<"\n***************************************\n";
- }
-
-
-
- void input(Ticket t[])//录入车次信息
- {
- int k;
- cout<<" 录入输1 增加输2 "<
- cin>>k;
- if(k==1)
- {
- for(int i=0; i
- {
- cout<<"请输入车次号:"<
- cin>>t[i].no;
-
- cout<<"请输入发出时间:"<
- cout<<"月:"<
- cin>>t[i].month;
- cout<<"日:"<
- cin>>t[i].day;
- cout<<"时:"<
- cin>>t[i].hour;
- cout<<"分:"<
- cin>>t[i].minute;
-
- cout<<"请输入始发站:"<
- cin>>t[i].start_station;
-
- cout<<"请输入途径站:"<
- cin>>t[i].tu_station;
-
- cout<<"请输入终点站:"<
- cin>>t[i].last_station;
-
- cout<<"请输入行车时间:"<
- cin>>t[i].time;
-
- cout<<"请输入票价:"<
- cin>>t[i].price;
-
- cout<<"请输入剩余车票数"<
- cin>>t[i].last_ticket;
- }
- }
- if(k==2)
- {
- int x;
- cout<<"请输入要添加的车次数:"<
- cin>>x;
- for(int i=n; i<(n+x); i++)
- {
- cout<<"请输入车次号:"<
- cin>>t[i].no;
-
- cout<<"请输入发出时间:"<
- cin>>t[i].month>>t[i].day>>t[i].hour>>t[i].minute;
-
- cout<<"请输入始发站:"<
- cin>>t[i].start_station;
-
- cout<<"请输入途径站:"<
- cin>>t[i].tu_station;
-
- cout<<"请输入终点站:"<
- cin>>t[i].last_station;
-
- cout<<"请输入行车时间:"<
- cin>>t[i].time;
-
- cout<<"请输入票价:"<
- cin>>t[i].price;
-
- cout<<"请输入剩余车票数"<
- cin>>t[i].last_ticket;
- }
-
- n=n+x;
- }
- char c;
- cout<<"你要保存到文本文件中吗(y/n)"<
- cin>>c;
- if(c=='y')
- {
-
- ofstream ofs;//写到文本文件当中去
- ofs.open("ticket.txt",ios::out);
- for(int i=0; i
- {
- ofs<<"车次号:"<
- ofs<<"发出时间:"<
"月"<"日"<"时"<"分"< - ofs<<"始发站:"<
- ofs<<"途径站:"<
- ofs<<"终点站:"<
- ofs<<"行车时间:"<
- ofs<<"票价:"<
- ofs<<"剩余车票数:"<
- }
- cout<<"保存成功!"<
- }
-
- }
-
-
-
- void show(Ticket t[])//浏览车次信息,
- {
-
- for(int i=0; i
- {
- cout<<"车次号:"<
- cout<<"发出时间:"<
"月"<"日"<"时"<"分"< - cout<<"始发站:"<
- cout<<"途径站:"<
- cout<<"终点站:"<
- cout<<"行车时间:"<
- cout<<"票价:"<
- cout<<"剩余车票数:"<
- cout<
- }
-
-
- }
-
-
-
- void findtic(Ticket t[])//查询功能:
- {
- // int i;//按时间的
- // int m,d;
- // cout<<"请输入发车时间(*月*日):"<
- // cin>>m>>d;
- // for( i=0;i
- // {
- // if((t[i].month==m)&&(t[i].day==d))
- // {
- // cout<<"车次号:"<
- // cout<<"发出时间:"<
- // cout<<"始发站:"<
- // cout<<"终点站:"<
- // cout<<"行车时间:"<
- // cout<<"票价:"<
- // cout<<"剩余车票数:"<
- // }
- //
- // }
- char startplace[20];
- char getplace[20];
- cout<<"请输入出发站:"<
- getchar();
- gets(startplace);
- cout<<"请输入到达站"<
- getchar();
- gets(getplace);
- for(int i=0; i
- {
- if((strcmp(startplace,t[i].start_station)==0)&&(strcmp(getplace,t[i].last_station)))
- {
- cout<<"车次号:"<
- cout<<"发出时间:"<
"月"<"日"<"时"<"分"< - cout<<"始发站:"<
- cout<<"途径站:"<
- cout<<"终点站:"<
- cout<<"行车时间:"<
- cout<<"票价:"<
- cout<<"剩余车票数:"<
- cout<
- }
-
- }
-
- }
- void selltic(Ticket t[])//售票功能
- {
- char cc[20];
- int k;
- cout<<"请输入你要买的车次号:"<
- getchar();
- gets(cc);
- cout<<"你要买几张:"<
- cin>>k;
- cout<<"购买成功!"<
- for(int i=0; i
- {
- if(strcmp(cc,t[i].no)==0)
- {
- t[i].last_ticket-=k;
- }
- }
- }
-
相关阅读:
第2-4-4章 规则引擎Drools规则属性-业务规则管理系统-组件化-中台
Godot Identifier “File“ not declared in the current scope.
AD域控-漫游账户-同步中心
支付模块实现
Android --- SharedPreferences
The Sandbox 中的建设者:走进 Sandja Studio
轻松掌握组件启动之MongoDB:快速入门、Linux安装和Docker配置指南
unity2022版本 实现手机虚拟操作杆
长尾关键词 挖掘出来的长尾关键词要怎么筛选?筛选条件有哪些
SpringCloud小项目——订单积分商城 & 使用Nacos、Open Feign、Gateway、Sentinel技术栈
-
原文地址:https://blog.csdn.net/m0_68176382/article/details/126190142