版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、皖西学院信息工程学院School of Information and Engineering, West Anhui UniversityC+面向对象课内程序设计 实验报告 20142015学年第二学期 专 业计算机科学与技术专业班 级计科1301姓 名学 号任课教师 1 / 15C+面向对象课内程序设计实 验 报 告 学号: 姓名 班级:计科1301 成绩:实验名称:小型车信息管理系统 实验地点:PC所使用的工具软件及环境:个人计算机,Windows7,VC+6.01、 实验目的:进一步了解面对对象编程的优点,学会如何使用面向对象的方法来编写一个较大的应用程序。总结本书所学的内容,编写一个
2、综合性的程序。二、实验任务: 设计一个程序,用来查询不同种类车的价格,性能等。 自行车包含车的名称,价格,最大速度,高度。 摩托车包含车的名称,价格,最大速度,最大里程。 汽车包含车的名称,价格,最大速度,车载人数。 可以实现录入车的信息,查询车的信息,实现名称查找并在屏幕显示车的信息。查找不存在时提示不存在。三、实验说明: 本次实验是体现了,类和对象,对象数组、静态成员、类的组合,继承。文件的输入,输出等综合使用。 本系统中的3种不同种类的对象:自行车、摩托车和小汽车,抽取共性特征,形成一个基类:基本信息类vehicyle,然后在这个基类的基础上,分别派生出3个类:自行车类bicycle、摩
3、托车类motorcycle和小汽车类car。 系统管理类实现界面的输出,信息的查询。共同构成小型车信息管理系统。本系统的实用性在于,可以用于4s店或车辆专卖,二手车交易市场使用,用于录入商品信息并在客人问询时查询相对应的信息。四、实验分析:(一) 基本信息类的属性和操作1、 基本类的信息类的属性汽车类的编号、名称、价格、最大速度。为了方便信息的读取,程序给每类车设置了一个车类别编号,以便区分各类车型。2、 基本信息类的操作数据输入 输入各车对象的信息:车名,车的价格,车的最大车速;数据输出 输出各车对象的信息:车名,车的价格,车的最大车速。(二) 各种车类的属性和操作 各类车型继承了基本信息类
4、的共性特征,并增加了自己特有的属性。1、 自行车类的属性和操作自行车类的属性有:(1) 继承了基本信息类的属性:车型编号、车名、价格和车的最大速度;(2) 增加了自行车类区别与其他类的特殊属性:高度。 自行车类的操作有:(3) 数据输入:除了继承基本信息类的数据输入功能外,增加了输入自行车类特殊属性“高度”信息的功能;(4) 数据输出:除了继承基本信息类的数据输入功能外,增加了输入自行车类特殊属性“高度”信息的功能。2、 摩托车类的属性和操作摩托车类的属性有:(1) 继承了基本信息类的属性:车型编号、车名、价格和车的最大速度;(2) 增加了摩托车类区别与其他类的特殊属性:最大里程。 自行车类的
5、操作有:(3) 数据输入:除了继承基本信息类的数据输入功能外,增加了输入摩托车类特殊属性“最大里程”信息的功能;(4) 数据输出:除了继承基本信息类的数据输入功能外,增加了输入摩托车类特殊属性“最大里程”信息的功能。3、 小汽车类的属性和操作小汽车类的属性有:(1) 继承了基本信息类的属性:车型编号、车名、价格和车的最大速度;(2) 增加了小汽车车类区别与其他类的特殊属性:车载人数。 自行车类的操作有:(3) 数据输入:除了继承基本信息类的数据输入功能外,增加了输入小汽车类特殊属性“车载人数”信息的功能;(4) 数据输出:除了继承基本信息类的数据输入功能外,增加了输入小汽车类特殊属性“车载人数
6、”信息的功能。(三) 系统管理类的操作系统的管理功能自成一个类:系统管理类。类的操作:(1) 输入车的基本信息;(2) 根据车名查询某车的信息。(四) 基类和派生类的设计根据上面的分析,需要设计一个基类vehicyle(基本信息类)和它的三个派生类bicycle(自行车类),motorcycle(摩托车类)和car(小汽车类)。基本信息类vehicyle中的数据成员是num(车型类别编号)、name(车名)、price(车的价格)和maxspeed(最大速度)。3个车类除了继承基类vehicyle的数据外,类bicycle增加了数据成员height()高度,类motorcycle增加了数据成员
7、maxmile(最大里程),类car增加了数据成员seat(车载人数)。在基类中定义了构造函数和对所有类型车的相同操作,成员函数Get_num负责取出车型类别编号,成员函数Getname负责取出车名,Get_price负责取出车的价格,成员函数Get_maxspeed负责取出车的最大车速,成员函数Input负责输入,Output负责输出。系统管理类(System)的主要操作是:成员函数In_formation负责输入车信息,成员函数search负责查询车信息,成员函数Interface负责界面的输出(五)系统管理类的设计(1)信息的输入 信息的输入功能由成员函数In_formation来完成,
8、它根据要输入车的类别分别调用相对应的车信息输入功能函数完成本类车的输入。有三个类别的车信息输入函数:void infor1(); /输入类对象数据void infor2();void infor3();以infor1说明一条车信息的输入实现过程:void System:infor1() /输入自行车类对象数据bicycle A;fstream datafile(fileName,ios:in|ios:out|ios:binary);datafile.seekp(0,ios:end);A.Input();datafile.write(char*)&A,sizeof(class bicyc
9、le);Bi1=A;datafile.close();(2)信息的查询信息查询功能由成员函数search来完成。它接收从键盘输入车类别编号和车名,在对应的对象数组中查找,找到后通过调用对象的数据输出成员函数Outout来显示车信息。五、参考答案:实验代码:#include<iostream>#include<string>#include<fstream>using namespace std;#define N 9 /各类车的最大数char fileName="super.dat" /存放车信息的数据文件class vehiclepro
10、tected:int num; /车类编号char name20; /车名int price; /车的价格int maxspeed; /车的最大车速public:vehicle (char *R_name=" ",int price=0,int maxspeed=0); /构造函数初始化 vehicle()/取值函数int Get_num();int Get_peice();int Get_maxpeed();char *Getname(); void Input();void Output(); class bicycle:public vehicle /自行车类publ
11、ic:bicycle( char *R_name=" ",int price=0,int maxspeed=0,int height=0);bicycle()void Input();void Output();private:int height; /高度;class motorcycle:public vehiclepublic:motorcycle(char *R_name=" ",int price=0,int maxspeed=0,int maxmile=0); motorcycle() void Input(); void Output();
12、private:int maxmile; /最大里程;class car: public vehiclepublic:car(char *R_name=" ",int price=0,int maxspeed=0,int seat=0);car()void Input();void Output();private:int seat; /车载人数;class System /系统管理类private:vehicle A;bicycle B3;motorcycle C3;car D3;static int i1,i2,i3;void infor1(); /输入类对象数据voi
13、d infor2();void infor3();void save(); /将文件输出到了内存void search1(int h,char ch20); /查找函数void interface1(); /界面输出public:System()void In_information();void search();void Interface();vehicle:vehicle (char *R_name,int price,int maxspeed)strcpy(name,R_name);int vehicle:Get_num() return num; int vehicle:Get_p
14、eice() return price; int vehicle:Get_maxpeed() return maxspeed; char*vehicle:Getname() return name;void vehicle:Input()cout << "tt 车名:"cin >> name;cout << "tt 车的价格:"cin >> price;cout << "tt 车的最大速度:"cin >> maxspeed;void vehicle:Output(
15、)cout << endl;cout << "tt 所要查看车信息:" << endl;cout << "tt 类别号:" << num << endl;cout << "tt 车名:" << name << endl;cout << "tt 价格:" << price << endl;cout << "tt 最大车速:" <<
16、maxspeed << endl;bicycle:bicycle(char* R_name, int price, int maxspeed, int hegiht) :vehicle( R_name,price,maxspeed)num = 1;void bicycle:Input()vehicle:Input();cout<<"tt 高度:"cin>>height;void bicycle:Output()vehicle:Output();cout<<"tt 高度:"<<height<
17、<endl;motorcycle:motorcycle(char* R_name, int price, int maxspeed, int maxmile) :vehicle( R_name,price,maxspeed)num = 2;void motorcycle:Input()vehicle:Input();cout<<"tt 最大里程:"cin>>maxmile;void motorcycle:Output()vehicle:Output();cout<<"tt 高度:"<<maxmile&
18、lt;<endl;car:car(char* R_name, int price, int maxspeed, int seat) :vehicle( R_name,price,maxspeed)num =3;void car:Input()vehicle:Input();cout<<"tt 车载人数:"cin>>seat;void car:Output()vehicle:Output();cout<<"tt 车载人数:"<<seat<<endl;int System:i1=0;int S
19、ystem:i2=0;int System:i3=0;void System:interface1() /界面输出cout << "nn"cout << "tt *按车类别进行管理*" << endl;cout << "tt *车 类 别 选 择 *" << endl;cout << "tt 1.自行车类" << endl;cout << "tt 2.摩托车类" << endl;cout
20、<< "tt 3.小汽车类" << endl;cout << "tt 4.退出" << endl;cout << "tt 请您选择车类别" << endl;void System:In_information()int rev1;int again = 1;char t;while (again)interface1();cin >> rev1;switch (rev1)case 1:infor1();break;case 2:infor2();bre
21、ak;case 3:infor3();break;case 4:Interface();break;default:cout << "ttt 没有此类车" << endl;continue;cout << "ttt 信息储存成功! " << endl;cout << "ttt 是否继续输入(y/n)?"cin >> t;cout << endl;if (!(t = 'Y' | t = 'y')again = 0;Inte
22、rface();void System:infor1() /输入自行车类对象数据bicycle A;fstream datafile(fileName,ios:in|ios:out|ios:binary);datafile.seekp(0,ios:end);A.Input();datafile.write(char*)&A,sizeof(class bicycle);Bi1=A;datafile.close();void System:infor2() /输入自行车类对象数据motorcycle A;fstream datafile(fileName,ios:in|ios:out|io
23、s:binary);datafile.seekp(0,ios:end);A.Input();datafile.write(char*)&A,sizeof(class motorcycle);Ci2=A;datafile.close();void System:infor3() /输入自行车类对象数据car A;fstream datafile(fileName,ios:in|ios:out|ios:binary);datafile.seekp(0,ios:end); /写指针到文件尾部A.Input();datafile.write(char*)&A,sizeof(class
24、car);Di3=A;datafile.close();void System:save()int a;fstream datafile(fileName,ios:out|ios:in|ios:binary); datafile.read(char*)&A,sizeof(vehicle);while (!datafile.eof()a = A.Get_num();switch (a)case 1:datafile.seekp(-1 * sizeof(class vehicle), ios:cur);datafile.read(char*)&Bi1, sizeof(bicycle
25、);i1+;break;case 2:datafile.seekp(-1 * sizeof(class vehicle), ios:cur);datafile.read(char*)&Ci2, sizeof(motorcycle);i2+;break;case 3:datafile.seekp(-1*sizeof(class vehicle), ios:cur);datafile.read(char*)&Di3, sizeof(car);i3+;break;default:break;datafile.read(char*)&A, sizeof(vehicle);dat
26、afile.close();void System:search1(int h, char ch20)int s = 0, found = 0;switch (h)case 1:while (s<N)if (strcmp(ch,Bs.Getname() = 0)Bs.Output();cout << "ttt*" << endl;found = 1;s+;break;case 2:while (s < N)if (strcmp(ch, Cs.Getname() = 0)Cs.Output();cout << "ttt*" << endl;found = 1;s+;break;case 3:while (s < N)if (strcmp(ch, Ds.Getname() = 0)Ds.Output();cout << "ttt*" << endl;found = 1;s+;break;default:break;if (found = 0)cout << "nntt 对不起,该类别中没有您所要查询的车!" << endl;void System:search()int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宠物饲料加工新技术与新设备考核试卷
- 2025年度商业综合体车位出租及商业合作合同
- 保健器材的终端用户培训考核试卷
- 2025年度私人门面出租附带装修费用结算合同
- 勘察项目项目管理农村环境保护与勘察考核试卷
- 2025年度美发美容院跨区域经营与品牌扩张合同
- 冷藏车运输企业运营效率提升策略考核试卷
- 健身器材行业法律法规与合规管理考核试卷
- 太阳能光伏电站远程监控与诊断考核试卷
- 多币种国际支付客户关系管理服务考核试卷
- 万达广场装修手册
- 云南省律师服务收费管理办法及标准
- 华为C语言通用编程规范
- 搞笑诗朗诵《生活》4人
- 团建活动满意度调查问卷
- 数独题目难度系数3级共100题后附参考答案
- 齐鲁医学数字疼痛评分表
- GB∕T 7588.1-2020 电梯制造与安装安全规范 第1部分:乘客电梯和载货电梯
- 植物种植施工方案与技术措施
- 空调工程竣工验收单(共1页)
- STM32固件库使用手册(中文版)
评论
0/150
提交评论