版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.z."面向对象技术实训"课程实训报告客运站信息管理系统姓名:班级:学号:指导教师:成绩:完成时间:2021年12月完成地点:S411-.z.1设计题目〔问题〕描述和要求*客运站因春运即将到来,客流量急剧增加,工作人员无法按时完成效劳工作,不能满足乘客的出行需求,于是想开发一套智能客运站系统,实现工作人员后台操作,乘客自主选票,订票,退票的程序,以缓解出行压力。要求:增加车辆信息更新车辆信息删除车辆信息乘客查票乘客买票乘客退票、2系统分析根据问题描述和要求,系统要求能够编写程序实现输入、输出、查询、增加、删除、修改、取消操作等功能,这些功能需要调用车辆类的成员函数实现。根据案例需求可以定义一个车辆类,车辆的根本信息有车辆编号、车辆路线、票价、余票和发车时间。由于需要对车辆信息进展读入和存储,在程序中需要文件的输入输出操作。先从相应的文件中读入车辆,管理员可以对信息处理后,在退出系统的时候将已修改资料重新存储到原文件中去。3设计3.1Bus类的设计3.1.1数据成员 intid;//车辆编号 inttag;//车辆数量 charroad[20];//车辆路线3.1.2函数成员及其实现思路〔1〕获取行车路线,即返回车辆路线成员变量road的值char*Bus::getroad(){returnroad;}获取车辆编号,即返回车辆成员变量id的值intBus::getid(){returnid;}获取车辆数量,即返回车辆成员变量tag的值intBus::gettag(){returntag;}获取用户名,返回用户名name的值char*User::getname(){returnname;}获取用户人数,返回tag的值intUser::gettag(){returntag;}获取用户编号,返回id的值intUser::getid(){returnid;}〔2〕设置车辆路线,即设置车辆成员变量road的值road=newroad。voidUser::setroad(charro[]){strcpy(road,ro)};3.2User类的设计数据成员inttag;//用户总数 intid;//用户编号 charname[10];//用户**3.2.2函数成员及其实现思路〔1〕voidUser::adduser(intn,char*na)//用户注册信息添加功能的设计思路是:用户输入其型**;系统分配用户编号;〔2〕voidUser::ytickets(intbusid)//用户订票功能实现订票功能的设计思路是:用户选择要订票的汽车编号;系统检索汽车编号,假设汽车存在则分配订单号并提醒订票成功;〔3〕intUser::ntickets(intbusid)//用户取消订单退票设计思路如下:用户输入需要退票的汽车编号;系统检索车辆编号,成功则完成退票,反之退票失败;〔4〕voidUser::show()//输出用户所要信息。设计思路如下:包括用户**,编号等根本信息;系统检索用户操作信息,用户当前所有订单;3.3主程序的设计全局变量、全局函数的设计(1)voidB_Data::busdata()//管理员向更新系统车辆信息。设计思路如下:调用voidBus::addbus()函数,添加车辆信息;调用voidBus::setname()函数,更新车辆信息;调用Bus*B_Data::search()函数,查找车辆信息;调用voidBus::show()函数,显示用户信息;调用voidBus::del()函数,删除车辆信息;(2)voidU_Data::userdata()//管理员向更新用户信息。调用voidUser::addbus()函数,添加用户信息;调用voidUser::setname()函数,更新用户信息;调用Bus*U_Data::search()函数,查找用户信息;调用voidUser::show()函数,显示用户信息;调用voidUser::del()函数,删除用户信息;3.2.2主函数设计在主函数中调用voiduserlogin()函数和voidmanagelogin()函数,实现用户使用功能和管理员管理功能,分别使用上述两函数实现。(1)*操作算法流程主程序调用流程图4调试分析、测试结果分析1.设计的时候,会出现很多错误,应细心检查数据成员及成员函数是否完整,定吗编辑过程中是否出现拼写错误。2.在简单地根底上,逐步进展添加数据成员,进而添加相应功能的成员函数,实现设计预期的结果。3.编程就是一个不断完善的过程,先搭建框架、逐步扩大,由简到繁,最后完善。边编程,边调试,边扩大。测试结果:执行结果:5小结通过对车辆管理系统的设计,自己学会独立运用所学知识,加强了对根底知识的掌握并进一步加强对较大程序的实现技能。在设计之初,首先要构思好系统应具有的功能,比方管理员添加,删除,更新车辆及用户信息,用户查询,订票,退票等等,根据要得到的信息,设计要实现的操作,即对这些信息的使用〔成员函数〕。准备好之后,根据C的知识,进展数据的类型选择,根据定义好的类型,选择相应的类型的函数,进展操作。在简单地程序之上,逐渐扩大,实现更多的功能。在调试的过程会遇到不少大大小小的问题,书写认真很重要,细心更重要,即便是检查错误,也要细心,经常见到的就是输入法导致的中英字符混用。编程时一个细心的过程,书写的标准,使得查看更方便。附录//*****************************************************************//*bus.h
类声明头文件
#ifndefBUS_H_#defineBUS_H_#include<iostream>#include<iomanip>#include<string>#include<fstream>#include<stdlib.h>constintma*user=100;constintma*che=100;constintma*jie=2;usingnamespacestd;#endif//*****************************************************************//*sbus.h类声明头文件
#ifndefSBUS_H_#defineSBUS_H_#include"bus.h"classUser{public: User(); intgettag(); intgetid(); intntickets(intbusid); intgobus[ma*jie]; char*getname();voidsetname(charna[]); voiddelbus(); voidadduser(intn,char*na); voidytickets(intbusid); voidshow();private: inttag; intid; charname[10];};classU_Data{public: U_Data(); ~U_Data(); intadduser(char*na); voidshow(); voidusershow(intuserid);voiduserdata(); User*search(intuserid);private: inttop; intma*id; Useruse[ma*user];};classBus{public: Bus(); intgetid(); intgettag(); intytickets(); char*getname(); voidsetname(charna[]); voiddelbus(); voidaddbus(intn,char*na); voidntickets(); voidshow();private: intid; inttag; intonshelf; charname[20];};classB_Data{public: B_Data(); ~B_Data(); intaddbus(char*na); voidbusdata(); voidshow(); Bus*search(intbusid);private: inttop; intma*id; Busbus[ma*che];};#endif//*****************************************************************//*sbus.cpp类声明头文件
#include"sbus.h"User::User(){id=0;tag=0;for(inti=0;i<ma*jie;i++) gobus[i]=0;}char*User::getname(){returnname;}intUser::gettag(){returntag;}intUser::getid(){returnid;}voidUser::setname(charna[]){strcpy(name,na);}voidUser::delbus(){for(inti=0;i<ma*jie;i++){if(gobus[i]!=0){cout<<"用户"<<name<<"取消订单失败,请检查操作是否正确!"<<endl; return;}}tag=1;cout<<"用户删除成功"<<endl;}voidUser::adduser(intn,char*na){tag=0;id=n;strcpy(name,na);for(inti=0;i<ma*jie;i++)gobus[i]=0;cout<<endl<<"用户添加成功,用户编号为:"<<id<<endl;cout<<"请牢记用户编号,这是你在系统中的登陆账号!"<<endl;}voidUser::ytickets(intbusid){for(inti=0;i<ma*jie;i++){if(gobus[i]=busid) cout<<"订票成功!"<<endl;return;}}intUser::ntickets(intbusid){for(inti=0;i<ma*jie;i++){if(gobus[i]==busid){gobus[i]=0; cout<<"订单取消成功!"<<endl; return1;}}return0;}voidUser::show(){cout<<setw(5)<<id<<setw(10)<<name<<setw(24)<<"订单号为:";for(inti=0;i<ma*jie;i++)if(gobus[i]!=0) cout<<"["<<gobus[i]<<"]"; cout<<endl;}U_Data::U_Data(){Users;top=0;fstreamfile("user.t*t",ios::in);while(1){file.read((char*)&s,sizeof(s));if(!file)break;top++;use[top]=s;}ma*id=use[top].getid();file.close();}intU_Data::adduser(char*na){top++;ma*id++;use[top].adduser(ma*id,na);return1;}User*U_Data::search(intuserid){for(inti=1;i<=top;i++) if(use[i].getid()==userid&&use[i].gettag()==0) return&(use[i]); returnNULL;}voidU_Data::show(){if(top==0){cout<<endl<<"没有用户记录"<<endl; return;}for(inti=1;i<=top;i++)use[i].show();}voidU_Data::usershow(intuserid){use[userid].show();}voidU_Data::userdata(){charchoice=1;charrname[20];intuserid;User*r;while(choice!='0'){cout<<endl<<"********************用户管理*********************"<<endl; cout<<"1.增加用户信息"<<endl<<"2.修改用户信息"<<endl<<"3.删除用户信息"<<endl<<"4.查找用户信息"<<endl<<"5.显示所有用户"<<endl<<"0.退出用户信息系统"<<endl<<"请选择您要进展的操作:"; cin>>choice; switch(choice) { case'1': cout<<"输入用户**:"; cin>>rname; adduser(rname); break;case'2': cout<<"输入用户编号:"; cin>>userid; r=search(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<<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': show(); break; case'0': break;default: cout<<"输入有误,请重新输入!"<<endl; }}}U_Data::~U_Data(){ fstreamfile("user.t*t",ios::out);for(inti=1;i<=top;i++) if(use[i].gettag()==0) file.write((char*)&(use[i]),sizeof(use[i])); file.close();}Bus::Bus(){id=0;tag=1;onshelf=1;}char*Bus::getname(){returnname;}intBus::getid(){returnid;}intBus::gettag(){returntag;}voidBus::setname(charna[]){strcpy(name,na);}voidBus::delbus(){onshelf=1;tag=1;}voidBus::addbus(intn,char*na){tag=0;id=n;strcpy(name,na);onshelf=1;cout<<endl<<"添加车辆成功!车辆编号为:"<<id<<endl;cout<<"请牢记车辆编号!"<<endl;}intBus::ytickets(){if(onshelf==1){onshelf=0;return1;}return0;}voidBus::ntickets(){onshelf=1;}voidBus::show(){ cout<<setw(10)<<id<<setw(20)<<name<<setw(10)<<(onshelf==1""可定":"已发车")<<endl;}B_Data::B_Data(){Busb;top=0;fstreamfile("bus.t*t",ios::in);while(1){file.read((char*)&b,sizeof(b));if(!file)break;top++;bus[top]=b;}ma*id=bus[top].getid();file.close();}intB_Data::addbus(char*na){top++;ma*id++;bus[top].addbus(ma*id,na);return1;}Bus*B_Data::search(intbusid){ for(inti=1;i<=top;i++) if(bus[i].getid()==busid&&bus[i].gettag()==0) return&(bus[i]); returnNULL;}voidB_Data::busdata(){charchoice='1';charbname[40];intbusid;Bus*b;while(choice!='0'){cout<<endl<<"*********************车辆管理*********************"<<endl; cout<<"1.增加车辆信息"<<endl<<"2.修改车辆信息"<<endl<<"3.删除车辆信息"<<endl<<"4.查找车辆信息"<<endl<<"5.显示所有车辆"<<endl<<"0.退出车辆信息系统"<<endl<<"请选择您要进展的操作:"; cin>>choice; switch(choice) { case'1': cout<<"输入车辆路线:"; cin>>bname; addbus(bname); break;case'2': 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<<"输入车辆编号:"; 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<<"不存在编号为:"<<b->getid()<<"的车辆"<<endl; break; } b->show(); break; case'5': show(); break; case'0': break;default: cout<<"输入有误,请重新输入!"<<endl; }}}voidB_Data::show(){if(top==0){cout<<endl<<"没有车辆记录"<<endl;return;}for(inti=0;i<=top;i++)if(bus[i].gettag()==0) bus[i].show();}B_Data::~B_Data(){ fstreamfile("bus.t*t",ios::out); for(inti=1;i<=top;i++) if(bus[i].gettag()==0) file.write((char*)&(bus[i]),sizeof(bus[i])); file.close();}//*****************************************************************//*main.cpp主程序文件#include"sbus.h"voiduserlogin(){U_DataUserDB;User*r;B_DataBusDB;Bus*b;chartempname[20];charchoice='1';intbid,rid;while(choice!='0'){cout<<endl<<"************************用户专区************************"<<endl;cout<<"1.用户登录"<<endl<<"2.用户注册"<<endl<<"0.退出"<<endl<<"请选择:"<<endl;cin>>choice;switch(choice){case'1': cout<<"输入用户编号:"; cin>>rid; r=UserDB.search(rid); if(r==NULL) { cout<<"用户不存在"<<endl; } else choice='0'; break;case'2': cout<<endl<<"输入用户**:"<<endl; cin>>tempname; UserDB.adduser(tempname); break; case'0': cout<<"欢送使用!"<<endl; return;default: cout<<"输入有误,请重新输入!"<<endl;}}choice='1';while(choice!='0'){cout<<endl<<"************************订票专区************************"<<endl;cout<<"1.订票"<<endl<<"2.退票"<<endl<<"3.查看订单"<<"0.退出"<<endl<<"请选择:"<<endl;cin>>choice;switch(choice){case'1': cout<<"输入车辆编号:"; cin>>bid; b=BusDB.search(bid); if(b==NULL) { cout<<"车辆不存在"<<endl; break; } if(b->ytickets()==0) { cout<<"车辆"<<b->getname()<<"已发出"<<endl; break; } r->ytickets(b->getid()); cout<<endl<<"订票成功"<<endl; break;case'2': cout<<endl<<"输入想要退票车辆的编号:"<<endl; cin>>bid; b=BusDB.search(bid); if(b==NULL) { cout<<"不存在编号为"<<b->getid()<<"的车辆"<<endl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度内陆水路货物运输代理合同样本
- 二零二五年度广告传媒行业设计人员派遣合同范本2篇
- 二零二五年度土地征收与补偿安置合同模板
- 2025年度上市公司人事劳动合同模板2篇
- 2025年度个人旅游线路设计服务合同4篇
- 二零二五年度电梯钢结构高空作业安全防护承包合同2篇
- 2025版智慧苗圃基地规划设计施工一体化合同4篇
- 二零二五版内墙批灰与智能家居照明系统合同4篇
- 课题申报参考:面向破损兵马俑修复的碎片多尺度全局T o k e n掩码学习分类研究
- 2025年度商铺租赁合同(含租赁物安全责任)
- 吉林省吉林市普通中学2024-2025学年高三上学期二模试题 生物 含答案
- 《电影之创战纪》课件
- 教学查房及体格检查评分标准
- 西方经济学(第二版)完整整套教学课件
- 人教版高一数学上册期末考试试卷及答案
- 围术期下肢深静脉血栓预防的术中护理
- 三方采购协议范本
- 《材料分析测试技术》全套教学课件
- 安全学原理第2版-ppt课件(完整版)
- 倾听是一种美德
- 武汉东湖宾馆建设项目委托代建合同
评论
0/150
提交评论