• 火车票管理系统c++


    学习目标:

    折腾


    学习内容:

    c语言


    学习时间:

    暑假


    学习产出:

    火车票管理系统: 要求用面向对象的方法实现火车票管理系统, 车票信息包
    括车次号、 发车时间、 到站时间、 出发地、 到达地、 行车时间、 剩余车票
    数、 票价等, 如:

    车次发车时间到站时间出发地到达地行车时间剩余车票数票价
    G67146:408:30石家庄站北京西站1时50分9129
    Z507:2810:05石家庄站北京西站2时37分1843.5
    T1467:4811:18石家庄站北京西站3时30分1743.5
    ................................................

    具体实现的管理功能如下:
    (1) 录入车次信息(文本文件保存) , 可随机地增加车次数据。
    (2) 浏览车次信息, 途径站。
    (3) 查询车票: 按照出发地、 到达地查询车次.
    (4) 售票功能: 自动更新剩余车票数。
    程序所显示的菜单内容如下:
    请选择下面的菜单:
    1.录入车次信息
    2.浏览车次信息
    3.查询车票信息
    4.售票
    5.退出
    请选择

    1. #include
    2. #include
    3. #include
    4. using namespace std;
    5. int number;//功能键
    6. int n;//车次的个数
    7. class Ticket
    8. {
    9. public:
    10. char no[10];//车次号
    11. int month;//发车时间
    12. int day;//发车时间
    13. int hour;//发车时间
    14. int minute;//发车时间
    15. char start_station[20];//出发地
    16. char last_station[20];//到达地
    17. float time;//行车时间
    18. int price;//票价
    19. int last_ticket;//剩余车票数
    20. char tu_station[20];//途径站
    21. };
    22. Ticket t[1000];
    23. void menu();//菜单
    24. void chose(int);//功能的选择
    25. void input(Ticket t[]);//录入车次信息,可随机地增加车次数据
    26. void show(Ticket t[]);//浏览车次信息,途径站。
    27. void findtic(Ticket t[]);//查询车票:按照出发地、到达地查询车次.
    28. void selltic(Ticket t[]);//售票功能,自动更新剩余车票数
    29. int main()
    30. {
    31. cout<<"输入车次数:"<
    32. cin>>n;
    33. while(1)
    34. {
    35. menu();
    36. cin>>number;
    37. chose(number);
    38. }
    39. return 0;
    40. }
    41. void chose(int number)
    42. {
    43. switch(number)
    44. {
    45. case 1:
    46. input(t);// 录入车次信息
    47. break;
    48. case 2:
    49. show(t);//可在最后追加一批学生信息
    50. break;
    51. case 3:
    52. findtic(t);//查询车票信息
    53. break;
    54. case 4:
    55. selltic(t);//售票功能
    56. break;
    57. case 5:
    58. exit(0);//退出
    59. break;
    60. default:
    61. break;
    62. }
    63. }
    64. void menu()//菜单
    65. {
    66. cout<<"\n***********请选择下面的菜单:***********\n";
    67. cout<<"\t 1.录入车次信息\n";//
    68. cout<<"\t 2.浏览车次信息\n";//可在最后追加一批学生信息
    69. cout<<"\t 3.查询车票信息\n";//输入数据
    70. cout<<"\t 4.售票\n";// 按总分降序进行排序
    71. cout<<"\t 5.退出\n";//任意输入一个学号,能显示该学生的基本信息。
    72. cout<<"\t 请选择";
    73. cout<<"\n***************************************\n";
    74. }
    75. void input(Ticket t[])//录入车次信息
    76. {
    77. int k;
    78. cout<<" 录入输1 增加输2 "<
    79. cin>>k;
    80. if(k==1)
    81. {
    82. for(int i=0; i
    83. {
    84. cout<<"请输入车次号:"<
    85. cin>>t[i].no;
    86. cout<<"请输入发出时间:"<
    87. cout<<"月:"<
    88. cin>>t[i].month;
    89. cout<<"日:"<
    90. cin>>t[i].day;
    91. cout<<"时:"<
    92. cin>>t[i].hour;
    93. cout<<"分:"<
    94. cin>>t[i].minute;
    95. cout<<"请输入始发站:"<
    96. cin>>t[i].start_station;
    97. cout<<"请输入途径站:"<
    98. cin>>t[i].tu_station;
    99. cout<<"请输入终点站:"<
    100. cin>>t[i].last_station;
    101. cout<<"请输入行车时间:"<
    102. cin>>t[i].time;
    103. cout<<"请输入票价:"<
    104. cin>>t[i].price;
    105. cout<<"请输入剩余车票数"<
    106. cin>>t[i].last_ticket;
    107. }
    108. }
    109. if(k==2)
    110. {
    111. int x;
    112. cout<<"请输入要添加的车次数:"<
    113. cin>>x;
    114. for(int i=n; i<(n+x); i++)
    115. {
    116. cout<<"请输入车次号:"<
    117. cin>>t[i].no;
    118. cout<<"请输入发出时间:"<
    119. cin>>t[i].month>>t[i].day>>t[i].hour>>t[i].minute;
    120. cout<<"请输入始发站:"<
    121. cin>>t[i].start_station;
    122. cout<<"请输入途径站:"<
    123. cin>>t[i].tu_station;
    124. cout<<"请输入终点站:"<
    125. cin>>t[i].last_station;
    126. cout<<"请输入行车时间:"<
    127. cin>>t[i].time;
    128. cout<<"请输入票价:"<
    129. cin>>t[i].price;
    130. cout<<"请输入剩余车票数"<
    131. cin>>t[i].last_ticket;
    132. }
    133. n=n+x;
    134. }
    135. char c;
    136. cout<<"你要保存到文本文件中吗(y/n)"<
    137. cin>>c;
    138. if(c=='y')
    139. {
    140. ofstream ofs;//写到文本文件当中去
    141. ofs.open("ticket.txt",ios::out);
    142. for(int i=0; i
    143. {
    144. ofs<<"车次号:"<
    145. ofs<<"发出时间:"<"月"<"日"<"时"<"分"<
    146. ofs<<"始发站:"<
    147. ofs<<"途径站:"<
    148. ofs<<"终点站:"<
    149. ofs<<"行车时间:"<
    150. ofs<<"票价:"<
    151. ofs<<"剩余车票数:"<
    152. }
    153. cout<<"保存成功!"<
    154. }
    155. }
    156. void show(Ticket t[])//浏览车次信息,
    157. {
    158. for(int i=0; i
    159. {
    160. cout<<"车次号:"<
    161. cout<<"发出时间:"<"月"<"日"<"时"<"分"<
    162. cout<<"始发站:"<
    163. cout<<"途径站:"<
    164. cout<<"终点站:"<
    165. cout<<"行车时间:"<
    166. cout<<"票价:"<
    167. cout<<"剩余车票数:"<
    168. cout<
    169. }
    170. }
    171. void findtic(Ticket t[])//查询功能:
    172. {
    173. // int i;//按时间的
    174. // int m,d;
    175. // cout<<"请输入发车时间(*月*日):"<
    176. // cin>>m>>d;
    177. // for( i=0;i
    178. // {
    179. // if((t[i].month==m)&&(t[i].day==d))
    180. // {
    181. // cout<<"车次号:"<
    182. // cout<<"发出时间:"<
    183. // cout<<"始发站:"<
    184. // cout<<"终点站:"<
    185. // cout<<"行车时间:"<
    186. // cout<<"票价:"<
    187. // cout<<"剩余车票数:"<
    188. // }
    189. //
    190. // }
    191. char startplace[20];
    192. char getplace[20];
    193. cout<<"请输入出发站:"<
    194. getchar();
    195. gets(startplace);
    196. cout<<"请输入到达站"<
    197. getchar();
    198. gets(getplace);
    199. for(int i=0; i
    200. {
    201. if((strcmp(startplace,t[i].start_station)==0)&&(strcmp(getplace,t[i].last_station)))
    202. {
    203. cout<<"车次号:"<
    204. cout<<"发出时间:"<"月"<"日"<"时"<"分"<
    205. cout<<"始发站:"<
    206. cout<<"途径站:"<
    207. cout<<"终点站:"<
    208. cout<<"行车时间:"<
    209. cout<<"票价:"<
    210. cout<<"剩余车票数:"<
    211. cout<
    212. }
    213. }
    214. }
    215. void selltic(Ticket t[])//售票功能
    216. {
    217. char cc[20];
    218. int k;
    219. cout<<"请输入你要买的车次号:"<
    220. getchar();
    221. gets(cc);
    222. cout<<"你要买几张:"<
    223. cin>>k;
    224. cout<<"购买成功!"<
    225. for(int i=0; i
    226. {
    227. if(strcmp(cc,t[i].no)==0)
    228. {
    229. t[i].last_ticket-=k;
    230. }
    231. }
    232. }

  • 相关阅读:
    第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