当前位置:   article > 正文

公交查询系统_flycode 查询语句if

flycode 查询语句if
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <iomanip>
  7. //公交中最大的账户数量
  8. #define MAXA 20000
  9. #define INITNUMBER 1
  10. int tol=0;//初始车辆为零
  11. using namespace std;
  12. //欢迎界面
  13. void welcome();
  14. //用户界面
  15. void mainFrame();
  16. //管理员登陆
  17. void login();
  18. //统计总共的车辆数
  19. int total=0;
  20. //用于查找车辆信息
  21. int searchAccount(long accNumber);
  22. //用于文件的读取
  23. void save();
  24. //用于文件的读取
  25. void read();
  26. //用于卡号的自增加
  27. long autoCreament();
  28. class Bus
  29. {
  30. public:
  31. Bus(){number=0;}
  32. long number; //公交编号
  33. char name[20]; //公交名称
  34. char type[20];//公交类型
  35. char start[20];//公交起点
  36. char terminal[20];//公交终点
  37. };
  38. //公交车中所有信息
  39. Bus array[MAXA];
  40. void AddBus();//增加车辆信息
  41. void DeleteBus_name();//删除车辆信息按照名字
  42. void DeleteBus_number();//删除车辆信息按照数字
  43. void FindBus_name(); //查找车辆信息通过站点
  44. void FindBus_number(); //通过数字超找信息
  45. void DispAll(); //显示所有信息
  46. void playstop(); //显示所有的车站
  47. void AddBus()
  48. {
  49. cout<<"请输入车辆名称:"<<endl;
  50. cin>>array[total].name;
  51. cout<<"请输入车辆类型:普通车 空调车 双层车 其他"<<endl;
  52. cin>>array[total].type;
  53. cout<<"请输入车辆起点"<<endl;
  54. cin>>array[total].start;
  55. cout<<"请输出车辆终点"<<endl;
  56. cin>>array[total].terminal;
  57. cout<<"添加公交车成功"<<endl;
  58. //写卡号
  59. array[total].number=autoCreament();
  60. cout<<"请您按任意键继续。。。。。。"<<endl;
  61. fflush(stdin);
  62. getchar();
  63. total++;
  64. mainFrame();
  65. }
  66. void welcome()
  67. {
  68. cout<<" +------------------------------------------+"<<endl;
  69. cout<<" |-----------欢迎登陆公交查询系统v1.0-------|"<<endl;
  70. cout<<" +------------------------------------------+"<<endl;
  71. }
  72. void save()
  73. {
  74. ofstream outfile("Bus.txt",ios::out);
  75. if(!outfile)
  76. {
  77. cerr<<endl<<"文件不存在!"<<endl;
  78. exit(1);
  79. }
  80. for(int i=0;i<total;i++) //依次写入文件
  81. {
  82. outfile<<array[i].number<<" "<<array[i].name<<" "<<array[i].type<<" "<<array[i].start<<" "<<array[i].terminal<<endl;
  83. }
  84. outfile.close();
  85. cout<<" 所有数据保存完毕!"<<endl;
  86. cout<<endl;
  87. mainFrame();
  88. }
  89. void read()
  90. {
  91. ifstream account("Bus.txt",ios::in);
  92. if(!account)
  93. {
  94. cerr<<"open error!"<<endl;
  95. exit(1);
  96. }
  97. while(!account.eof())
  98. {
  99. account>>array[total].number;
  100. account>>array[total].name;
  101. account>>array[total].type;
  102. account>>array[total].start;
  103. account>>array[total].terminal;
  104. total++;
  105. }
  106. total-=1;
  107. account.close();
  108. cout<<" 所有数据载入完毕!"<<endl;
  109. cout<<endl;
  110. }
  111. //管理员登陆
  112. void login()
  113. {
  114. char loginName[20];
  115. char loginPwd[20];
  116. int i;
  117. //测试
  118. for(i=1;i<4;i++)
  119. {
  120. cout<<"请输入管理员账号:";
  121. fflush(stdin);
  122. gets(loginName);
  123. cout<<"请输入管理员密码:";
  124. fflush(stdin);
  125. gets(loginPwd);
  126. //判断
  127. if(strcmp(loginName,"main")==0&&strcmp(loginPwd,"******")==0)
  128. {
  129. break;
  130. }
  131. else
  132. {
  133. if(i<3)
  134. {
  135. cout<<"账号或密码错误!请核对后重新输入\n";
  136. cout<<"您还有"<<3-i<<"次机会重新输入账号和密码。"<<endl;
  137. }
  138. else
  139. {
  140. cout<<"密码错误超过3次,退出系统……\n";
  141. exit(0);
  142. }
  143. }
  144. }
  145. }
  146. //用户界面
  147. void mainFrame()
  148. {
  149. int order,num;
  150. cout<<"请选择您要进行的操作;\n";
  151. cout<<" 1.添加车辆\n";
  152. cout<<" 2.删除车辆\n";
  153. cout<<" 3.显示全部车辆\n";
  154. cout<<" 4.查找车辆\n";
  155. cout<<" 5.查看所有车站\n";
  156. cout<<" 6.存储到文件\n";
  157. cout<<" 7.退出系统\n";
  158. cout<<"请输入操作指令:"<<endl;
  159. cin>>order;
  160. switch(order)
  161. {
  162. case 1: AddBus();
  163. break;
  164. case 2: cout<<"1.按照数字删除:"<<endl;
  165. cout<<"2.按照名字删除:"<<endl;
  166. cout<<"请您按键选着:"<<endl;
  167. cin>>num;
  168. if(num==1)
  169. {
  170. DeleteBus_number();
  171. }
  172. if(num==2)
  173. {
  174. DeleteBus_name();
  175. }else{
  176. cout<<"选择错误!"<<endl;
  177. mainFrame();
  178. }
  179. break;
  180. case 3: DispAll();
  181. mainFrame();
  182. break;
  183. case 4: cout<<"1.按照名称查找:"<<endl;
  184. cout<<"2.按照站点查找:"<<endl;
  185. cout<<"请您按键选着:"<<endl;
  186. cin>>num;
  187. if(num==1)
  188. {
  189. FindBus_number();
  190. }
  191. if(num==2)
  192. {
  193. FindBus_name();
  194. }else{
  195. cout<<"选择错误!"<<endl;
  196. mainFrame();
  197. }
  198. break;
  199. case 5: playstop();
  200. case 6: save();
  201. case 7: cout<<endl<<"祝您心情愉快!"<<endl;
  202. cout<<endl<<"欢迎您下次使用!"<<endl;
  203. cout<<endl;
  204. exit(1);
  205. default:
  206. break;
  207. }
  208. }
  209. int main()
  210. {
  211. //read();
  212. //欢迎界面
  213. int select;
  214. welcome();
  215. //登录
  216. login();
  217. while(1)
  218. {
  219. cout<<endl;
  220. cout<<"请选择数据来源:"<<endl;
  221. cout<<"1.文件读取:"<<endl;
  222. cout<<"2.键盘输入:"<<endl;
  223. cin>>select;
  224. if(select==2)
  225. {
  226. mainFrame();
  227. }
  228. if(select==1)
  229. {
  230. read();
  231. mainFrame();
  232. }
  233. }
  234. return 0;
  235. }
  236. //显示所有的站点
  237. void playstop()
  238. {
  239. int i,j,m;
  240. string name[400];
  241. cout<<"所有站点为:"<<endl;
  242. cout<<endl;
  243. cout<<array[0].start<<" "<<array[0].terminal<<" ";
  244. for(i=0;i<total;i++)
  245. {
  246. name[2*i]=array[i].start;
  247. name[2*i+1]=array[i].terminal;
  248. m=2*i+1;
  249. }
  250. for(j=0;j<m;j++)
  251. {
  252. if((name[j]!=array[0].start)&&(name[j]!=array[0].terminal))
  253. cout<<name[j]<<" ";
  254. }
  255. cout<<endl<<endl;
  256. mainFrame();
  257. }
  258. //实现卡号的涨涨
  259. long autoCreament()
  260. {
  261. if(total==0){
  262. return INITNUMBER;
  263. }else{
  264. return array[total-1].number+1;
  265. }
  266. }
  267. //按照名字删除车辆
  268. void DeleteBus_name()
  269. {
  270. char a[20],b;
  271. int i;
  272. DispAll();
  273. cout<<"请输入要删除的车辆(如109路):";
  274. cin>>a;
  275. for(i=0;i<total;i++)
  276. {
  277. if(strcmp(array[i].name,a)==0)
  278. {
  279. cout<<"您将删除该车的信息!!!!!!"<<endl;
  280. cout<<" 确定请按Y 按其他键返回主菜单 "<<endl;
  281. cin>>b;
  282. if(b=='Y' || b=='y')
  283. {
  284. getchar();
  285. array[i].number=-1;
  286. strcpy(array[i].name,"无");
  287. strcpy(array[i].type,"无");
  288. strcpy(array[i].start,"无");
  289. strcpy(array[i].terminal,"无");
  290. cout<<endl<<"删除成功,按enter键返回"<<endl;
  291. // total--;
  292. fflush(stdin);
  293. getchar();
  294. mainFrame();
  295. }
  296. else{
  297. mainFrame();
  298. }
  299. }
  300. }
  301. cout<<"输入错误!"<<endl;
  302. mainFrame();
  303. }
  304. //按照数字删除车辆
  305. void DeleteBus_number()
  306. {
  307. char a;
  308. int pos,accNum,m=0;
  309. cout<<endl<<"删除车的信息:"<<endl;
  310. DispAll();
  311. cout<<"请输入要删除车辆的序号:";
  312. cin>>accNum;
  313. pos=searchAccount(accNum);
  314. if(pos==-1)
  315. {
  316. //卡号有误
  317. m++;
  318. if(m>3)
  319. {
  320. mainFrame();
  321. }
  322. else{
  323. cout<<"序号不存在,请重新输入序号"<<endl;
  324. DeleteBus_number();
  325. }
  326. }
  327. else
  328. {
  329. cout<<"您将删除该车的信息!!!!!!"<<endl;
  330. cout<<" 确定请按Y 按其他键返回主菜单 "<<endl;
  331. cin>>a;
  332. if(a=='Y' || a=='y')
  333. {
  334. getchar();
  335. array[pos].number=-1;
  336. strcpy(array[pos].name,"无");
  337. strcpy(array[pos].type,"无");
  338. strcpy(array[pos].start,"无");
  339. strcpy(array[pos].terminal,"无");
  340. cout<<endl<<"删除成功,按enter键返回"<<endl;
  341. // total--;
  342. fflush(stdin);
  343. getchar();
  344. mainFrame();
  345. }
  346. else{
  347. mainFrame();
  348. }
  349. }
  350. }
  351. //显示所有车辆的信息
  352. void DispAll()
  353. {
  354. int i;
  355. cout<<setw(10)<<setiosflags(ios::left)<<"编号"<<setw(10)<<"名称"<<setw(10)<<"类型"<<setw(18)<<"起点站"<<setw(18)<<"终点站"<<endl;
  356. for(i=0;i<total;i++)
  357. {
  358. cout<<setw(10)<<setiosflags(ios::left)<<array[i].number<<setw(10)<<array[i].name<<setw(10)<<array[i].type<<setw(18)<<array[i].start<<setw(18)<<array[i].terminal<<endl;
  359. }
  360. }
  361. //输出指定车辆的信息
  362. void printAccount(int acc)
  363. {
  364. cout<<endl;
  365. cout<<setw(10)<<setiosflags(ios::left)<<"编号"<<setw(10)<<"名称"<<setw(10)<<"类型"<<setw(18)<<"起点站"<<setw(18)<<"终点站"<<endl;
  366. cout<<setw(10)<<setiosflags(ios::left)<<array[acc].number<<setw(10)<<array[acc].name<<setw(10)<<array[acc].type<<setw(18)<<array[acc].start<<setw(18)<<array[acc].terminal<<endl;
  367. }
  368. /*根据车卡号查找卡的下标
  369. * 若返回值>=0,车卡号是正确
  370. * 若返回值=-1,车卡号有误
  371. */
  372. int searchAccount(long accNumber)
  373. {
  374. int i,pos=-1;
  375. for(i=0;i<total;i++)
  376. {
  377. if(array[i].number==accNumber)
  378. {
  379. //找到了这张卡
  380. pos=i;
  381. break;
  382. }
  383. }
  384. return pos;
  385. }
  386. //按照数字查找车辆
  387. void FindBus_number()
  388. {
  389. char a[20];
  390. int i;
  391. cout<<"请输入要查找的车辆(如109路):";
  392. cin>>a;
  393. for(i=0;i<total;i++)
  394. {
  395. if(strcmp(array[i].name,a)==0)
  396. {
  397. printAccount(i);
  398. }
  399. }
  400. mainFrame();
  401. }
  402. //按照名字查找车辆
  403. void FindBus_name()
  404. {
  405. int i;
  406. char m[20];
  407. cout<<"请您输入查找的站点名字:"<<endl;
  408. cin>>m;
  409. for(i=0;i<total;i++)
  410. {
  411. if(strcmp(array[i].start,m)==0)
  412. {
  413. printAccount(i);
  414. }
  415. if(strcmp(array[i].terminal,m)==0)
  416. {
  417. printAccount(i);
  418. }
  419. }
  420. cout<<"查找结束!"<<endl<<endl;
  421. mainFrame();
  422. }



输出结果:


心得体会:

总结应用,实践一下!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/75770?site
推荐阅读
相关标签
  

闽ICP备14008679号