实验报告课程名称Java程序设计实验项目实验一类、对象与构造函数实验二派生类与继承系别___________理学院_____________专业/班级_________电技1302____________姓名______蔡超月____________实验日期_______________________成绩_______________________指导教师夏红科一、实验题目:实验一类、对象与构造函数实验二派生类与继承二、实验内容:(1)创建一个雇员类,该类中有数据成员有姓名、家庭住址和邮政编码等,其功能有修改姓名、显示数据信息。
要求:雇员类的定义作为.h保存雇员类功能函数的实现放在.cpp中。
雇员类的使用放在单独的.cpp文件中,该文件使用#include编译预处理命令包含类定义的头文件,在main()函数中使用雇员类创建几个对象并显示信息。
(2)定义一个哺乳动物类,再由此派生出人类、狗类和猫类,这些类中均有speak()函数,请设计相应的类层次结构并加以实现,观察在调用过程中,到底使用了哪个类的speak()函数。
(3)设计一个能细分为矩形、三角形、圆形和椭圆形的图形类,使用继承将这些图形分类,找出能作为基类部分的共同特征(如宽,高,中心点等)和方法(如初始化、求面积等),并设计多种继承模式来测试继承的属性。
三、程序清单及结果:(需要标明实现程序对应的实验内容,并给出合理的程序注释及运行结果)1)程序清单及注释内容1:#include<iostream>#include<string>using namespace std;class employee{protected:string name1;string address1;string shi1;string sheng1;string post1;char name[10];char address[20];char shi[10];char sheng[10];char post[7];int num;public:shuru();void changename(char str[]);void display();void moren(char n[],char s[],char c[],char p1[],char p2[]);};employee::shuru(){cout<<"请输入编号:";cin>>num;cout<<"请输入姓名:";cin>>name1;cout<<"请输入地址:";cin>>address1;cout<<"请输入所在市:";cin>>shi1;cout<<"请输入所在省:";cin>>sheng1;cout<<"请输入邮编:";cin>>post1;cout<<endl;cout<<endl;}void employee::moren(char n[],char s[],char c[],char p1[],char p2[]){strcpy(name,n);strcpy(address,s);strcpy(shi,c);strcpy(sheng,p1);strcpy(post,p2);cout<<"姓名:"<<name<<endl;cout<<"街道地址:"<<address<<endl;cout<<"所在市:"<<shi<<endl;cout<<"所在省:"<<sheng<<endl;cout<<"邮政编码:"<<post<<endl;}void employee::changename(char n[]){strcpy(name,n);}void employee::display(){cout<<"编号:"<<num<<endl;cout<<"姓名:"<<name1<<endl;cout<<"街道地址:"<<address1<<endl;cout<<"所在市:"<<shi1<<endl;cout<<"所在省:"<<sheng1<<endl;cout<<"邮政编码:"<<post1<<endl;cout<<endl;}void main(){while(1){employee a;int num;cout<<"显示默认值请输入1:"<<endl;cout<<"修改参数请输入2:"<<endl;cout<<endl;cin>>num;if(num==1){a.moren("CCY","MYX","BJS","BJ","101500");cout<<endl;}else if(num==2){a.shuru();a.display();}else{cout<<"错误!!!"<<endl;cout<<endl;}}}内容2#include<iostream.h>#include<string.h>class Animal{float weight;public:void speak(){}void setWeight(float wt){weight = wt;}float getWeight(){return weight;}};class Human:public Animal{public:void speak(){cout<<"说话"<<endl;}};class Cat:public Animal{public:void speak(){cout<<"喵喵"<<endl;}};class Dog:public Animal{public:void speak(){cout<<"汪汪"<<endl;}};void main(){ // 定义三个对象Human hm;Cat cat;Dog dog; // 调用不同类的speak函数 cout<<"人:"; hm.speak();cout<<"猫:"; cat.speak();cout<<"狗:"; dog.speak();内容3:#include<iostream>using namespace std;class Figure // 定义基类图形类{public: // 公有函数成员Figure(int wid){width = wid;}float area(){}int getWidth(){return width;}private: // 私有数据成员int width; // 宽度或半径};class Rectangle:public Figure{ // 定义矩形类int height;public:Rectangle(int wid, int hei):Figure(wid){height = hei;}float area(){return getWidth() * height;}};class Triangle:public Figure{ // 定义三角形类int height;public:Triangle(int wid, int hei):Figure(wid){height = hei;}float area(){return 1.0/2* getWidth() * height;} };class Circle:public Figure{ // 定义圆类public:Circle(int wid):Figure(wid){}float area(){return 3.14 * getWidth() * getWidth();} };void main(){Rectangle rect(5,4);Triangle tri(5,4);Circle cir(5);cout<<"矩形的面积是:"<<rect.area()<<endl<<"三角形的面积是:"<<tri.area()<<endl<<"圆的面积是:"<<cir.area()<<endl;}}2)程序运行结果内容1:内容2:内容3:四、程序调试报告及总结在本次试验中,遇到了程序无法运行等现象,经检查发现是代码语法错误。
经过多次核对,查询书籍一一解决。
这次实验也对前面的学习成果进行了检验,发现以后的学习中态度要更加严谨。
(调试中遇到的问题及解决方法,并说明实验过程中对Java知识点的认识及收获等)…。