客运站信息管理系统_第1页
客运站信息管理系统_第2页
客运站信息管理系统_第3页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象技术实训课程实训报告客运站信息管理系统姓名:班级:学号:指导教师:成绩:完成时间: 2016 年 12 月完成地点: S4111 设计题目(问题)描述与要求某客运站因春运即将到来, 客流量急剧增加, 工作人员无法按时完成服务工作,不能满足乘客得出行需求, 于就是想开发一套智能客运站系统, 实现工作人员后台操作,乘客自主选票,订票,退票得程序,以缓解出行压力。要求:( 1) 增加车辆信息( 2) 更新车辆信息( 3) 删除车辆信息( 4) 乘客查票( 5) 乘客买票( 6) 乘客退票 、2 系统分析根据问题描述与要求, 系统要求能够编写程序实现 输入、 输出、查询、增加、删除、修改、 取

2、消操作等功能,这些功能需要调用车辆类得成员函数实现。根据案例需求可以定义一个车辆类, 车辆得基本信息有车辆编号、 车辆路线、票价、余票 与发车时间。由于需要对车辆信息进行读入与存储,在程序中需要文件得输入输出操作。 先从相应得文件中读入车辆, 管理员可以对信息处理后, 在退出系统得时候将已修改资料重新存储到原文件中去。3 设计3、1Bus 类得设计3、1、1 数据成员int id;/int tag;/char road20;/车辆编号车辆数量车辆路线3、1、2 函数成员及其实现思路( 1)获取行车路线,即返回车辆路线成员变量 road 得值 char * Bus:getroad() retur

3、n road;获取车辆编号,即返回车辆成员变量id 得值int Bus:getid() return id;获取车辆数量,即返回车辆成员变量tag 得值int Bus:gettag()return tag;获取用户名,返回用户名name得值char * User:getname() return name;获取用户人数,返回 tag 得值int User:gettag() return tag;获取用户编号,返回 id 得值int User:getid() return id;( 2)设置车辆路线,即设置车辆成员变量road 得值 road=newroad。void User:setroad(

4、char ro) strcpy(road,ro); 3、2 User 类得设计3、2、1 数据成员i nt tag;/i nt id;/char name10;/用户总数用户编号用户姓名3、2、2 函数成员及其实现思路( 1) void User:adduser(int n,char * na)/添加功能得设计思路就是:用户输入其型姓名;系统分配用户编号;( 2) void User:ytickets(int busid)/订票功能得设计思路就是:用户选择要订票得汽车编号;用户注册信息用户订票功能实现系统检索汽车编号,若汽车存在则分配订单号并提醒订票成功;( 3) int User:ntick

5、ets(int busid)/用户取消订单退票设计思路如下:用户输入需要退票得汽车编号;系统检索车辆编号,成功则完成退票,反之退票失败;( 4) void User:show()/输出用户所要信息。设计思路如下:包括用户姓名,编号等基本信息;系统检索用户操作信息,用户当前所有订单;3、3 主程序得设计3、3、1 全局变量、全局函数得设计(1)void B_Data:busdata()/管理员向更新系统车辆信息。设计思路如下:调用 void Bus:addbus()函数,添加车辆信息;调用 void Bus:setname()函数,更新车辆信息;调用 Bus * B_Data:search()函

6、数,查找车辆信息;调用 void Bus:show()函数,显示用户信息;调用 void Bus:del()函数,删除车辆信息;(2) void U_Data:userdata()/ 管理员向更新用户信息。调用 void User:addbus()函数,添加用户信息;调用 void User:setname()函数,更新用户信息;调用 Bus * U_Data:search()函数,查找用户信息;调用 void User:show()函数,显示用户信息;调用 void User:del()函数,删除用户信息;3、2、2 主函数设计在主函数中调用void userlogin()函数与 voidm

7、anagelogin()函数, 实现用户使用功能与管理员管理功能,分别使用上述两函数实现。(1) 某操作算法流程开始打开文件读入文件中的电脑信息循环显示界面,输入选项Ni=1 , j=1Y用户专区,订票Ni=1,j=2Y用户专区,退票Ni=1,j=3Y退出N管理员专区,更i=2,j=1Y新车辆Ni=2,j=2Y管理员专区,删除车辆N管理员专区,删i=2,j=3Y除车辆Ni=0,j=0Y退出Ni=0结束主程序调用流程图4 调试分析、测试结果4、 1、1 分析1、设计得时候, 会出现很多错误, 应细心检查数据成员及成员函数就是否完整,定吗编辑过程中就是否出现拼写错误。2、在简单地基础上, 逐步进行

8、添加数据成员, 进而添加相应功能得成员函数,实现设计预期得结果。3、编程就就是一个不断完善得过程,先搭建框架、逐步扩充,由简到繁,最后完善。边编程,边调试,边扩充。4、1、2 测试结果 :执行结果:5 小结通过对车辆管理系统得设计, 自己学会独立运用所学知识, 加强了对基础知识得掌握并进一步加强对较大程序得实现技能。在设计之初,首先要构思好系统应具有得功能,比如管理员添加,删除,更新车辆及用户信息,用户查询,订票,退票等等,根据要得到得信息,设计要实现得操作,即对这些信息得使用(成员函数)。准备好之后,根据C 得知识,进行数据得类型选择,根据定义好得类型,选择相应得类型得函数,进行操作。在简单

9、地程序之上, 逐渐扩充,实现更多得功能。 在调试得过程会遇到不少大大小小得问题,书写认真很重要,细心更重要,即便就是检查错误,也要细心,经常见到得就就是输入法导致得中英字符混用。编程时一个细心得过程,书写得规范,使得查瞧更方便。附录/*/ * bus 、h 类声明头文件#ifndef BUS_H_#define BUS_H_#include<iostream>#include<iomanip>#include<string>#include<fstream>#include<stdlib 、 h>const int maxuser=1

10、00;const int maxche=100;const int maxjie=2;using namespace std;#endif/*/ * sbus、 h 类声明头文件#ifndef SBUS_H_#define SBUS_H_#include"bus 、h"class Userpublic:User();int gettag();int getid();int ntickets(int busid);int gobusmaxjie;char * getname();void setname(char na);void delbus();void adduser(

11、int n,char * na);void ytickets(int busid);void show();private:int tag;int id;char name10;class U_Datapublic:U_Data();U_Data();int adduser(char * na);void show();void usershow(int userid);void userdata();User * search(int userid);private:int top;int maxid;User usemaxuser;class Buspublic:Bus();int get

12、id();int gettag();int ytickets();char * getname();void setname(char na);void delbus();void addbus(int n,char * na);void ntickets();void show();private:int id;int tag;int onshelf;char name20;class B_Datapublic:B_Data();B_Data();int addbus(char * na);void busdata();void show();Bus * search(int busid);

13、private:int top;int maxid;Bus busmaxche;#endif/*/ * sbus、 cpp 类声明头文件#include"sbus 、h"User:User()id=0;tag=0;for(int i=0;i<maxjie;i+)gobusi=0;char * User:getname()return name;int User:gettag()return tag;int User:getid()return id;void User:setname(char na)strcpy(name,na);void User:delbus()

14、for(int i=0;i<maxjie;i+)if(gobusi!=0)cout<<" 用户 "<<name<<" 取消订单失败,请检查操作就是否正确!"<<endl;return;tag=1;cout<<" 用户删除成功 "<<endl;void User:adduser(int n,char * na)tag=0;id=n;strcpy(name,na);for(int i=0;i<maxjie;i+)gobusi=0;cout<<e

15、ndl<<" 用户添加成功,用户编号为:"<<id<<endl;cout<<" 请牢记用户编号,这就是您在系统中得登陆账号!"<<endl;void User:ytickets(int busid)for(int i=0;i<maxjie;i+)if(gobusi=busid)cout<<" 订票成功! "<<endl;return;int User:ntickets(int busid)for(int i=0;i<maxjie;i+)if

16、(gobusi=busid)gobusi=0;cout<<" 订单取消成功!"<<endl;return 1;return 0;void User:show()cout<<setw(5)<<id<<setw(10)<<name<<setw(24)<<"订单号为: "for(int i=0;i<maxjie;i+)if(gobusi!=0)cout<<""<<gobusi<<""c

17、out<<endl;U_Data:U_Data()User s;top=0;fstream file("user 、txt",ios:in);while(1)(char *)&s,sizeof(s);if(!file) break;top+;usetop=s;maxid=usetop 、 getid();();int U_Data:adduser(char * na)top+;maxid+;usetop、 adduser(maxid,na);return 1;User * U_Data:search(int userid)for(int i=1;i<

18、;=top;i+)if(usei 、 getid()=userid&&useireturn &(usei);return NULL;、gettag()=0)void U_Data:show()if(top=0)cout<<endl<<" 没有用户记录 "<<endl;return;for(int i=1;i<=top;i+)usei、 show();void U_Data:usershow(int userid)useuserid、 show();void U_Data:userdata()char choi

19、ce=1;char rname20;int userid;User * r;while(choice!='0')cout<<endl<<"*用户管理 *"<<endl;cout<<"1 、增加用户信息 "<<endl<<"2 、修改用户信息 "<<endl<<"3 、删除用户信息 "<<endl<<"4 、查找用户信息 "<<endl<<

20、"5 、显示所有用户 "<<endl<<"0 、退出用户信息系统 "<<endl<<" 请选择您要进行得操作:"cin>>choice;switch(choice)case '1':cout<<" 输入用户姓名:"cin>>rname;adduser(rname);break;case '2':cout<<" 输入用户编号:"cin>>userid;r=se

21、arch(userid);if(r=NULL)cout<<endl<<" 不存在编号为:"<<userid<<" 得用户 "<<endl;break;cout<<" 输入新得用户名:"cin>>rname;r->setname(rname);break;case '3':cout<<" 输入用户编号:"cin>>userid;r=search(userid);if(r=NULL)cout

22、<<endl<<" 不存在编号为:"<<userid<<" 得用户 "<<endl;break;r->delbus();break;case '4':cout<<" 输入用户编号:"cin>>userid;r=search(userid);if(r=NULL)cout<<" 该用户不存在!"<<endl;break;r->show();break;case '5':

23、show();break;case '0':break;default:cout<<" 输入有误,请重新输入!"<<endl;U_Data:U_Data()fstream file("user 、 txt",ios:out);for(int i=1;i<=top;i+)if(usei 、 gettag()=0)(char *)&(usei),sizeof(usei);();Bus:Bus()id=0;tag=1;onshelf=1;char * Bus:getname()return name;int

24、 Bus:getid()return id;int Bus:gettag()return tag;void Bus:setname(char na)strcpy(name,na);void Bus:delbus()onshelf=1;tag=1;void Bus:addbus(int n,char * na)tag=0;id=n;strcpy(name,na);onshelf=1;cout<<endl<<" 添加车辆成功!车辆编号为:"<<id<<endl;cout<<" 请牢记车辆编号!"&l

25、t;<endl;int Bus:ytickets()if(onshelf=1)onshelf=0;return 1;return 0;void Bus:ntickets()onshelf=1;void Bus:show()cout<<setw(10)<<id<<setw(20)<<name<<setw(10)<<(onshelf=1?"可定 ":" 已发车 ")<<endl;B_Data:B_Data()Bus b;top=0;fstream file("

26、bus 、txt",ios:in);while(1)(char *)&b,sizeof(b);if(!file) break;top+;bustop=b;maxid=bustop 、getid();();int B_Data:addbus(char * na)top+;maxid+;bustop 、addbus(maxid,na);return 1;Bus * B_Data:search(int busid)for(int i=1;i<=top;i+)if(busi 、getid()=busid&&busi、gettag()=0)return &

27、(busi);return NULL;void B_Data:busdata()char choice='1'char bname40;int busid;Bus *b;while(choice!='0')cout<<endl<<"*车辆管理 *"<<endl;cout<<"1 、增加车辆信息 "<<endl<<"2 、修改车辆信息 "<<endl<<"3 、删除车辆信息 "<<

28、;endl<<"4 、查找车辆信息 "<<endl<<"5 、显示所有车辆 "<<endl<<"0 、退出车辆信息系统 "<<endl<<" 请选择您要进行得操作:"cin>>choice;switch(choice)case '1':cout<<" 输入车辆路线:"cin>>bname;addbus(bname);break;case '2':

29、cout<<" 输入车辆编号:"cin>>busid;b=search(busid);if(b=NULL)cout<<endl<<" 不存在编号为:"<<b->getid()<<" 得车辆 "<<endl;break;cout<<" 输入新得路线:"cin>>bname;b->setname(bname);break;case '3':cout<<" 输入车辆

30、编号:"cin>>busid;b=search(busid);if(b=NULL)cout<<endl<<" 不存在编号为:"<<b->getid()<<" 得车辆 "<<endl;break;b->delbus();break;case '4':cout<<" 输入车辆编号:"cin>>busid;b=search(busid);if(b=NULL)cout<<endl<<&q

31、uot; 不存在编号为:"<<b->getid()<<" 得车辆 "<<endl;break;b->show();break;case '5':show();break;case '0':break;default:cout<<" 输入有误,请重新输入!"<<endl;void B_Data:show()if(top=0)cout<<endl<<" 没有车辆记录"<<endl;retur

32、n;for(int i=0;i<=top;i+)if(busi 、 gettag()=0)busi 、 show();B_Data:B_Data()fstream file("bus 、txt",ios:out);for(int i=1;i<=top;i+)if(busi 、gettag()=0)(char *)&(busi),sizeof(busi);();/*/ * main 、cpp 主程序文件#include"sbus、 h"void userlogin()U_Data UserDB;User * r;B_Data BusDB

33、;Bus * b;char tempname20;char choice='1'int bid,rid;while(choice!='0')cout<<endl<<"*用户专区 *"<<endl;cout<<"1 、用户登录 "<<endl<<"2 、用户注册 "<<endl<<"0 、退出 "<<endl<<" 请选择: "<<en

34、dl;cin>>choice;switch(choice)case '1':cout<<" 输入用户编号:"cin>>rid;r=UserDB 、 search(rid);if(r=NULL)cout<<" 用户不存在 "<<endl;elsechoice='0'break;case '2':cout<<endl<<" 输入用户姓名:"<<endl;cin>>tempname;Us

35、erDB 、 adduser(tempname);break;case '0':cout<<" 欢迎使用! "<<endl;return;default:cout<<" 输入有误,请重新输入!"<<endl;choice='1'while(choice!='0')cout<<endl<<"*订票专区 *"<<endl;cout<<"1 、订票 "<<endl&l

36、t;<"2 、退票 "<<endl<<"3 、查瞧订单 "<<"0 、退出 "<<endl<<" 请选择: "<<endl;cin>>choice;switch(choice)case '1':cout<<" 输入车辆编号:"cin>>bid;b=BusDB 、 search(bid);if(b=NULL)cout<<" 车辆不存在 "

37、<<endl;break;if(b->ytickets()=0)cout<<" 车辆 "<<b->getname()<<" 已发出 "<<endl;break;r->ytickets(b->getid();cout<<endl<<" 订票成功 "<<endl;break;case '2':cout<<endl<<" 输入想要退票车辆得编号:"<<

38、endl;cin>>bid;b=BusDB 、 search(bid);if(b=NULL)cout<<" 不存在编号为 "<<b->getid()<<" 得车辆 "<<endl;break;b->ntickets();r->ntickets(b->getid();cout<<" 车辆已返回 "<<endl;break;case'3':UserDB 、 usershow(rid);break;case '0':cout<<" 欢迎使用! "<&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论