基于C++地车信息管理系统_第1页
基于C++地车信息管理系统_第2页
基于C++地车信息管理系统_第3页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、WORD格式皖西学院信息工程学院School of Information and Engineering, West Anhui University"C+面向对象课内程序设计 "实验报告20212021 学年第二学期专业资料整理WORD格式专业计算机科学与技术专业专业资料整理WORD格式班级计科1301专业资料整理WORD格式姓名学号专业资料整理WORD格式任课教师专业资料整理WORD格式" C+面向对象课内程序设计"实验 报 告专业资料整理WORD格式学号:*班级:计科1301成绩:专业资料整理WORD格式实验名称:小型车信息管理系统实验地点 :P

2、C专业资料整理WORD格式所使用的工具软件及环境:个人计算机,Windows7, VC+6.0一、实验目的:进一步了解面对对象编程的优点, 学会如何使用面向对象的方法来编写一个较大的应用程序。总结本书所学的内容,编写一个综合性的程序。二、实验任务:设计一个程序,用来查询不同种类车的价格,性能等。自行车包含车的名称,价格,最大速度,高度。摩托车包含车的名称,价格,最大速度,最大里程。汽车包含车的名称,价格,最大速度,车载人数。可以实现录入车的信息,查询车的信息,实现名称查找并在屏幕显示车的信息。查找不存在时提示不存在。三、实验说明:本次实验是表达了,类和对象,对象数组、静态成员、类的组合,继承。

3、文件的输入,输出等综合使用。本系统中的 3 种不同种类的对象:自行车、摩托车和小汽车,抽取共性特征,形成一个基类:根本信息类vehicyle ,然后在这个基类的根底上,分别派生出3 个类:自行车类 bicycle 、摩托车类 motorcycle 和小汽车类 car 。系统管理类实现界面的输出,信息的查询。共同构成小型车信息管理系统。本系统的实用性在于,可以用于 4s 店或车辆专卖,二手车交易市场使用,用于录入商品信息并在客人问询时查询相对应的信息。四、实验分析:( 一 ) 根本信息类的属性和操作1、根本类的信息类的属性汽车类的编号、名称、价格、最大速度。为了方便信息的读取,程序给每类车设置了

4、一个车类别编号,以便区分各类车型。2、根本信息类的操作数据输入 输入各车对象的信息:车名,车的价格,车的最大车速;数据输出 输出各车对象的信息:车名,车的价格,车的最大车速。( 二 ) 各种车类的属性和操作各类车型继承了根本信息类的共性特征,并增加了自己特有的属性。1、自行车类的属性和操作自行车类的属性有:( 1继承了根本信息类的属性:车型编号、车名、价格和车的最大速度;( 2增加了自行车类区别与其他类的特殊属性:高度。专业资料整理WORD格式自行车类的操作有:( 3数据输入:除了继承根本信息类的数据输入功能外, 增加了输入自行车类特殊属性“高度信息的功能;( 4数据输出:除了继承根本信息类的

5、数据输入功能外, 增加了输入自行车类特殊属性“高度信息的功能。2、摩托车类的属性和操作摩托车类的属性有:( 1继承了根本信息类的属性:车型编号、车名、价格和车的最大速度;( 2增加了摩托车类区别与其他类的特殊属性:最大里程。自行车类的操作有:( 3数据输入:除了继承根本信息类的数据输入功能外, 增加了输入摩托车类特殊属性“最大里程信息的功能;( 4数据输出:除了继承根本信息类的数据输入功能外, 增加了输入摩托车类特殊属性“最大里程信息的功能。3、小汽车类的属性和操作小汽车类的属性有:( 1继承了根本信息类的属性:车型编号、车名、价格和车的最大速度;( 2增加了小汽车车类区别与其他类的特殊属性:

6、车载人数。自行车类的操作有:( 3数据输入:除了继承根本信息类的数据输入功能外, 增加了输入小汽车类特殊属性“车载人数信息的功能;( 4数据输出:除了继承根本信息类的数据输入功能外, 增加了输入小汽车类特殊属性“车载人数信息的功能。( 三 ) 系统管理类的操作系统的管理功能自成一个类:系统管理类。类的操作:1输入车的根本信息;2根据车名查询某车的信息。( 四 ) 基类和派生类的设计根据上面的分析,需要设计一个基类 vehicyle 根本信息类和它的三个派生类 bicycle 自行车类, motorcycle 摩托车类和 car 小汽车类。根本信息类 vehicyle 中的数据成员是 num(车

7、型类别编号、 name车名、 price 车的价格和 maxspeed最大速度。3 个车类除了继承基类 vehicyle 的数据外,类 bicycle 增加了数据成员 height 高度,类 motorcycle 增加了数据成员 maxmile最大里程,类 car 增加了数据成员 seat 车载人数。在基类中定义了构造函数和对所有类型车的一样操作, 成员函数 Get_num负责取出车型类别编号,成员函数 Getname负责取出车名, Get_price 负责取出车的价格,成员函数 Get_maxspeed负责取出车的最大车速,成员函数 Input 负责输入, Output 负责输出。专业资料整

8、理WORD格式系统管理类 System的主要操作是:成员函数 In_formation 负责输入车信息,成员函数 search 负责查询车信息,成员函数 Interface 负责界面的输出五系统管理类的设计1信息的输入信息的输入功能由成员函数 In_formation 来完成,它根据要输入车的类别分别调用相对应的车信息输入功能函数完本钱类车的输入。有三个类别的车信息输入函数:专业资料整理WORD格式void infor1();/void infor2();void infor3();以 infor1说明一条车信息的输入实现过程:void System:infor1()/输入类对象数据输入自行车

9、类对象数据专业资料整理WORD格式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();2信息的查询信息查询功能由成员函数search 来完成。它接收从键盘输入车类别编号和车名,在对应的对象数组中查找,找到后通过调用对象的数据输出成员函数Outout 来显示车信息。五、参考答案:实验代码:专业资料整理WORD

10、格式#include<iostream>#include<string>#include<fstream>using namespace std;#define N 9/char fileName="super.dat"/各类车的最大数存放车信息的数据文件专业资料整理WORD格式class vehicleprotected:int num;/车类编号char name20;/车名int price;/车的价格int maxspeed;/车的最大车速public:vehicle (char *R_name=" ",int

11、 price=0,int maxspeed=0); / vehicle()/ 取值函数构造函数初始化专业资料整理WORD格式int Get_num();int Get_peice();int Get_maxpeed();char *Getname();void Input();void Output();class bicycle:public vehicle/自行车类public:bicycle( char *R_name=" ",int price=0,int maxspeed=0,int height=0);bicycle()void Input();void Out

12、put();private:专业资料整理WORD格式int height;/高度专业资料整理WORD格式;专业资料整理WORD格式class motorcycle:public vehiclepublic:motorcycle(char *R_name=" ",int price=0,int maxspeed=0,int maxmile=0); motorcycle()void Input();void Output();private:专业资料整理WORD格式int maxmile;/最大里程专业资料整理WORD格式;class car: public vehiclepu

13、blic:专业资料整理WORD格式car(char *R_name=" ",int price=0,int maxspeed=0,int seat=0);car()void Input();void Output();private:专业资料整理WORD格式int seat;/车载人数专业资料整理WORD格式;专业资料整理WORD格式class System/系统管理类专业资料整理WORD格式private:vehicle A;专业资料整理WORD格式motorcycle C3;car D3;static int i1,i2,i3;void infor1();/输入类对象数

14、据void 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

15、_peice() return price; int vehicle:Get_maxpeed() return maxspeed; char*vehicle:Getname() return name;void vehicle:Input()专业资料整理WORD格式cout << "tt车名: "专业资料整理WORD格式cin >> name;专业资料整理WORD格式cout << "tt车的价格:"专业资料整理WORD格式cin >> price;专业资料整理WORD格式cout << &qu

16、ot;tt车的最大速度:"专业资料整理WORD格式cin >> maxspeed;void vehicle:Output()专业资料整理WORD格式cout << endl;cout << "ttcout << "tt所要查看车信息: " << endl;类别号: " << num << endl;" << name << endl;专业资料整理WORD格式cout << "tt价格: " <

17、;< price << endl;cout << "tt最大车速: " << 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:Out

18、put()vehicle:Output();cout<<"tt高度: "<<height<<endl;motorcycle:motorcycle(char*R_name,intprice,intmaxspeed,intmaxmile) :vehicle( R_name,price,maxspeed)num = 2;void motorcycle:Input()vehicle:Input();cout<<"tt最大里程 :"cin>>maxmile;void motorcycle:Output()

19、vehicle:Output();cout<<"tt高度: "<<maxmile<<endl;car:car(char*R_name,intprice,intmaxspeed,intseat) :vehicle( R_name,price,maxspeed)num =3;void car:Input()专业资料整理WORD格式vehicle:Input();cout<<"tt车载人数 :"cin>>seat;void car:Output()vehicle:Output();cout<&l

20、t;"tt车载人数: "<<seat<<endl;int System:i1=0;int System:i2=0;int System:i3=0;void System:interface1()/界面输出cout << "nn"cout << "tt*按车类别进展管理 *" << endl;cout << "tt*车 类 别 选 择 *" << endl;cout << "tt1.自行车类 " <

21、;< endl;cout << "tt2.摩托车类 " << endl;cout << "tt3.小汽车类 " << endl;cout << "tt4.退出 " << endl;cout << "tt请您选择车类别 " << endl;void System:In_information()int rev1;int again = 1;char t;while (again)interface1();cin &g

22、t;> rev1;switch (rev1)case 1:infor1();break;case 2:infor2();break;case 3:infor3();break;专业资料整理WORD格式case 4:Interface();break;default:专业资料整理WORD格式cout << "ttt没有此类车" << endl;专业资料整理WORD格式continue;专业资料整理WORD格式cout << "tttcout << "ttt信息储存成功!是否继续输入" <

23、< endl;y/n ""专业资料整理WORD格式cin >> t;cout << endl;if (!(t = 'Y' | t = 'y')again = 0;Interface();专业资料整理WORD格式专业资料整理WORD格式void System:infor1()/输入自行车类对象数据专业资料整理WORD格式专业资料整理WORD格式bicycle A;fstream datafile(fileName,ios:in|ios:out|ios:binary);datafile.seekp(0,ios:end

24、);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|ios:binary);datafile.seekp(0,ios:end);A.Input();datafile.write(char*)&A,sizeof(class motorcycle);Ci2=A;datafile.close();void S

25、ystem: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 car);Di3=A;专业资料整理WORD格式datafile.close();void System:save()int a;fstream datafile(fileName,ios:out|ios:in|ios:binary); datafile.rea

26、d(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);i1+;break;case 2:datafile.seekp(-1 * sizeof(class vehicle), ios:cur);datafile.read(char*)&Ci2, sizeof(motorcycle

27、);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);datafile.close();void System:search1(int h, char ch20)int s = 0, found = 0;专业资料整理WORD格式switch (h)case 1:while (s<N)if

28、(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)专业资料整理WORD格式cout << "nntt对不起,该类别中没有您所要查询的车!" << endl;专业资料整理WORD格式v

温馨提示

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

评论

0/150

提交评论