版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.面向对象技术实训课程实训报告客运站信息管理系统姓名:班级:学号:指导教师:成绩:完成时间: 2016 年 12 月完成地点: s411;.1 设计题目(问题)描述和要求某客运站因春运即将到来, 客流量急剧增加, 工作人员无法按时完成服务工作,不能满足乘客的出行需求, 于是想开发一套智能客运站系统, 实现工作人员后台操作,乘客自主选票,订票,退票的程序,以缓解出行压力。要求:( 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();. r
3、eturn 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 us
4、er:setroad(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
5、 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_dat
6、a: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
7、()函数和 voidmanagelogin()函数, 实现用户使用功能和管理员管理功能,分别使用上述两函数实现。(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#include#include#include#includeconst int maxuser=100;const int maxche=100;const int maxjie=2;using namespace std;#endif/*
10、/ * 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 nam
11、e10;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(
12、);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.hus
13、er: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;
14、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(g
15、obusi=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
16、=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+)u
17、sei.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(
18、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()
19、;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
20、;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()couts
21、etw(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
22、: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;
23、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)cout
24、endl 不存在编号为: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.writ
25、e(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=use
26、rdb.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()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年送花的教学设计
- 2025-2026学年盘古上单教学设计模板
- 某钢厂环保标准制度
- 排水构筑物质量验收报告
- 酒店餐饮空间设计方案
- 建筑工程碳排放核算规范
- 架空输电线路缺陷处理报告
- 2026数学核心素养图形认识测量教案
- 给排水防水套管工程作业指导书
- 2026北师大四下小数的意义一同步课件
- 2025年高频考点国企《人力资源管理岗》专业知识考试卷(含解析)及答案
- GB/T 26952-2025焊缝无损检测磁粉检测验收等级
- 化学安全和防护知识培训课件
- 工业产品批生产记录标准模板
- 兴文县竹纤维环保餐具生产项目环评报告
- 2024年淮北市濉溪县事业单位笔试真题(附答案)
- 动物疫病检疫培训课件
- 下肢静脉血栓介入护理查房
- 急性胰腺炎护理查房
- 粉尘(铝粉)爆炸预防措施安全培训
- DB4201-T 704-2024 武汉市党政机关物业管理服务规范
评论
0/150
提交评论