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

下载本文档

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

文档简介

面向对象技术实训课程实训报告客运站信息管理系统姓 名:班 级:学 号:指导教师:成 绩:完成时间:2016年12月完成地点:S4111设计题目(问题)描述和要求某客运站因春运即将到来,客流量急剧增加,工作人员无法按时完成服务工作,不能满足乘客的出行需求,于是想开发一套智能客运站系统,实现工作人员后台操作,乘客自主选票,订票,退票的程序,以缓解出行压力。要求: (1) 增加车辆信息(2) 更新车辆信息(3) 删除车辆信息(4) 乘客查票(5) 乘客买票(6) 乘客退票、2系统分析根据问题描述和要求,系统要求能够编写程序实现输入、输出、查询、增加、删除、修改、取消操作等功能,这些功能需要调用车辆类的成员函数实现。根据案例需求可以定义一个车辆类,车辆的基本信息有车辆编号、车辆路线、票价、余票和发车时间。由于需要对车辆信息进行读入和存储,在程序中需要文件的输入输出操作。先从相应的文件中读入车辆,管理员可以对信息处理后,在退出系统的时候将已修改资料重新存储到原文件中去。3设计3.1Bus类的设计3.1.1数据成员int id; /车辆编号int tag; /车辆数量char road20; /车辆路线3.1.2函数成员及其实现思路(1)获取行车路线,即返回车辆路线成员变量road的值char * Bus:getroad() return 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(char ro) strcpy(road,ro);3.2 User类的设计3.2.1数据成员int tag; /用户总数int id; /用户编号char name10; /用户姓名3.2.2函数成员及其实现思路(1)void User:adduser(int n,char * na)/用户注册信息 添加功能的设计思路是: 用户输入其型姓名; 系统分配用户编号;(2)void User:ytickets(int busid)/用户订票功能实现订票功能的设计思路是:用户选择要订票的汽车编号;系统检索汽车编号,若汽车存在则分配订单号并提醒订票成功;(3)int User:ntickets(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()函数,查找车辆信息;调用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()函数和void managelogin()函数,实现用户使用功能和管理员管理功能,分别使用上述两函数实现。(1) 某操作算法流程主程序调用流程图4调试分析、测试结果 4.1.1 分析 1.设计的时候,会出现很多错误,应细心检查数据成员及成员函数是否完整,定吗编辑过程中是否出现拼写错误。 2.在简单地基础上,逐步进行添加数据成员,进而添加相应功能的成员函数,实现设计预期的结果。 3.编程就是一个不断完善的过程,先搭建框架、逐步扩充,由简到繁,最后完善。边编程,边调试,边扩充。4.1.2 测试结果:执行结果:5小结通过对车辆管理系统的设计,自己学会独立运用所学知识,加强了对基础知识的掌握并进一步加强对较大程序的实现技能。在设计之初,首先要构思好系统应具有的功能,比如管理员添加,删除,更新车辆及用户信息,用户查询,订票,退票等等,根据要得到的信息,设计要实现的操作,即对这些信息的使用(成员函数)。准备好之后,根据C的知识,进行数据的类型选择,根据定义好的类型,选择相应的类型的函数,进行操作。在简单地程序之上,逐渐扩充,实现更多的功能。在调试的过程会遇到不少大大小小的问题,书写认真很重要,细心更重要,即便是检查错误,也要细心,经常见到的就是输入法导致的中英字符混用。编程时一个细心的过程,书写的规范,使得查看更方便。附录/*/ * bus.h 类声明头文件#ifndef BUS_H_#define BUS_H_#include#include#include#include#includeconst int maxuser=100;const int maxche=100;const int maxjie=2;using namespace std;#endif /*/ * sbus.h类声明头文件#ifndef SBUS_H_#define SBUS_H_#includebus.hclass Userpublic:User();int gettag();int getid();int ntickets(int busid);int gobusmaxjie;char * getname(); void setname(char na);void delbus();void adduser(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 getid();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);private:int top;int maxid;Bus busmaxche;#endif /*/ * sbus.cpp类声明头文件#includesbus.hUser:User() id=0; tag=0; for(int i=0;imaxjie;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() for(int i=0;imaxjie;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;imaxjie;i+) gobusi=0; coutendl用户添加成功,用户编号为:idendl; cout请牢记用户编号,这是你在系统中的登陆账号!endl;void User:ytickets(int busid) for(int i=0;imaxjie;i+) if(gobusi=busid) cout订票成功!endl; return; int User:ntickets(int busid) for(int i=0;imaxjie;i+) if(gobusi=busid) gobusi=0; cout订单取消成功!endl; return 1; return 0;void User:show() coutsetw(5)idsetw(10)namesetw(24)订单号为:; for(int i=0;imaxjie;i+) if(gobusi!=0)coutgobusi;coutendl;U_Data:U_Data() User s; top=0; fstream file(user.txt,ios:in); while(1) file.read(char *)&s,sizeof(s); if(!file) break; top+; usetop=s; maxid=usetop.getid(); file.close();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=top;i+) if(usei.getid()=userid&usei.gettag()=0) return &(usei); return NULL;void U_Data:show() if(top=0) coutendl没有用户记录endl;return; for(int i=1;i=top;i+) usei.show();void U_Data:usershow(int userid) useuserid.show();void U_Data:userdata() char choice=1; char rname20; int userid; User * r; while(choice!=0) coutendl*用户管理*endl;cout1.增加用户信息endl2.修改用户信息endl3.删除用户信息endl4.查找用户信息endl5.显示所有用户endl0.退出用户信息系统endlchoice;switch(choice)case 1:coutrname;adduser(rname);break; case 2:coutuserid;r=search(userid);if(r=NULL) coutendl不存在编号为:userid的用户endl; break;coutrname;r-setname(rname);break;case 3:coutuserid;r=search(userid);if(r=NULL) coutendl不存在编号为:userid的用户delbus();break;case 4:coutuserid;r=search(userid);if(r=NULL) cout该用户不存在!show();break;case 5: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)file.write(char *)&(usei),sizeof(usei);file.close();Bus:Bus() id=0; tag=1; onshelf=1;char * Bus:getname() return name;int 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; coutendl添加车辆成功!车辆编号为:idendl; cout请牢记车辆编号!endl;int Bus:ytickets() if(onshelf=1) onshelf=0; return 1; return 0;void Bus:ntickets() onshelf=1;void Bus:show()coutsetw(10)idsetw(20)namesetw(10)(onshelf=1?可定:已发车)endl;B_Data:B_Data() Bus b; top=0; fstream file(bus.txt,ios:in); while(1) file.read(char *)&b,sizeof(b); if(!file) break; top+; bustop=b; maxid=bustop.getid(); file.close();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 &(busi);return NULL;void B_Data:busdata() char choice=1; char bname40; int busid; Bus *b; while(choice!=0) coutendl*车辆管理*endl;cout1.增加车辆信息endl2.修改车辆信息endl3.删除车辆信息endl4.查找车辆信息endl5.显示所有车辆endl0.退出车辆信息系统endlchoice;switch(choice)case 1:coutbname;addbus(bname);break; case 2:coutbusid;b=search(busid);if(b=NULL) coutendl不存在编号为:getid()的车辆endl; break;coutbname;b-setname(bname);break;case 3:coutbusid;b=search(busid);if(b=NULL) coutendl不存在编号为:getid()的车辆delbus();break;case 4:coutbusid;b=search(busid);if(b=NULL)coutendl不存在编号为:getid()的车辆show();break;case 5:show();break;case 0:break;default:cout输入有误,请重新输入!endl; void B_Data:show() if(top=0) coutendl没有车辆记录endl; return; 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)file.write(char *)&(busi),sizeof(busi);file.close();/*/ * main.cpp主程序文件#includesbus.hvoid userlogin() U_Data UserDB; User * r; B_Data BusDB; Bus * b; char tempname20; char choice=1; int bid,rid; while(choice!=0) coutendl*用户专区*endl; cout1.用户登录endl2.用户注册endl0.退出endl请选择:choice; switch(choice) case 1:coutrid;r=UserDB.search(rid);if(r=NULL) cout用户不存在endl;elsechoice=0;break; case 2:coutendl输入用户姓名:tempname;UserDB.adduser(tempname);break;case 0:cout欢迎使用!endl;return;default:cout输入有误,请重新输入!endl; choice=1; while(choice!=0) coutendl*订票专区*endl; cout1.订票endl2.退票endl3.查看订单0.退出endl请选择:choice; switch(choice) case 1:coutbid;b=BusDB.search(bid);if(b=NULL) cout车辆不存在ytickets()=0) cout车辆getname()已发出

温馨提示

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

评论

0/150

提交评论