综合性、设计性实验报告
姓名 学号
姓名 学号
专业 通信工程 班级 13级通信1301 班
实验课程名称 面向对象程序设计
指导教师及职称 邵金侠 讲师
开课学期 20## 至 2015 学年 上 学期
上课时间 2014年 12 月 18 日
湖南科技学院教务处编印
一、实验设计方案
二、实验报告
北京理工大学珠海学院实验报告
ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY
班级:13级计算机3班 学号:130201031037 姓名:郑永雄 指导教师:谭忠兵
实验题目:类和对象 实验时间:20##-04-09 成绩:
一、实验内容
程序1.声明一个日期类,日期的属性有年、月和日。方法有构造函数、析构函数、日期的显示。要求使用构造函数的重载,分别定义无参构造函数(使年月日的值分别为20##、1、1)和有参构造函数,并编写程序测试日期类。
程序2.创建一个Employee类,该类中有字符数组,表示姓名、街道地址、邮政编码。其功能有修改姓名、显示输出数据。要求函数放在类定义中,构造函数初始化每个成员,显示信息函数要求把对象中的完整信息打印出来。
程序3.建立类cylinder,cylinder的构造函数被传递了两个double值,分别表示圆柱体的半径和高度。用类cylinder计算圆柱的体积,并存储在一个double变量中。在类cylinder中包含一个成员函数vol,用来显示每个cylinder对象的体积。
程序4.定义一个复数类,要求定义构造函数和析构函数,并能够为用户提供复数的加法和减法运算。编写程序测试复数类。
程序5.定义一个矩形类。矩形的属性是左上角的顶点、长和宽,方法有构造函数、析构函数、显示、移动等。编写程序测试矩形类。
二、问题分析(类的数据成员、成员函数等的确定,对象的创建等)
程序1:首先声明一个日期类date,日期的属性(数据成员)有年year、月month和日day。成员函数是构造函数date、析构函数、日期的显示show()。在主函数中使用构造函数的重载,分别定义无参构造函数(使年月日的值分别为20##、1、1)和有参构造函数,并调用输出成员函数显示结果。
程序:2:首先创建一个Employee类,该类中有数据成员字符数组,表示姓名name、街道地址stree、邮政编码num。成员函数有修改姓名setname、显示输出数据show。在主函数中用构造函数初始化每个成员,调用显示信息函数把对象中的完整信息打印出来。
程序3:首先定义类cylinder,cylinder的构造函数被传递了两个double值,分别表示圆柱体的半径r和高度h。用类cylinder计算圆柱的体积,并存储在一个double变量v中。在类cylinder中包含一个成员函数vol,用来显示每个cylinder对象的体积。
程序:4:首先定义一个复数类complex,并定义构造函数和析构函数,设置成员函数set()为用户提供复数的加法和减法运算。并用输出函数print输出结果。
程序:5:定义一个矩形类。矩形的数据成员是左上角的顶点(x,y)、长long和宽wide,并定义构造函数、析构函数、还有成员函数print显示、move移动等。
三、程序实现(完整程序)
第一题:
#include<iostream>
using namespace std;
class Date
{
private:
int year,month,day;
public:
Date()
{
year=2013;
month=1;
day=1;
}
Date(int y,int m,int d)
{
year=y;
month=m;
day=d;
}
~Date()
{
cout<<"析构函数"<<endl;
}
void show()
{
cout<<"显示日期"<<year<<"."<<month<<"."<<day<<endl;
}
};
int main()
{
Date a;
a.show();
Date b(2014,4,10);
b.show();
getchar();
getchar();
return 0;
}
第二题
#include<iostream>
#include<cmath>
using namespace std;
class Employee{
private:
char *name,*stree;
int post;
public:
Employee(char *x,char *y,int z)
{
strcpy(name,x);
strcpy(stree,y);
post=z;
}
void setname(char *a)
{
strcpy(name,a);
}
void Print_employee()
{
cout<<name[10]<<" "<<stree[50]<<" "<<post<<endl;
}
};
int main()
{
Employee m("ben","zhbit",519000);
char *b;
cin>>b;
m.setname(b);
m.Print_employee();
return 0;
}
第三题:
#include<iostream>
#include<cmath>
using namespace std;
class cylinder
{
private:
double radius,high;
public:
cylinder(double h,double r)
{
radius=r;
high=h;
}
double jisuan()
{
double v,pi=3.14159262;
v=pi*radius*radius*high;
return v;
}
void vol(double m)
{
cout<<"体积="<<m<<endl;
}
};
int main()
{
cylinder m(2,2);
double n;
n=m.jisuan();
m.vol(n);
getchar();
getchar();
return 0;
}
第四题:
#include<iostream>
#include<cmath>
using namespace std;
class Complex
{
private:
double real,imag;
public:
Complex(double r,double i)
{
real=r;
imag=i;
}
~Complex()
{
cout<<"析构函数"<<endl;
}
void jisuan(double x,double y)
{
real=real+x;
imag=imag+y;
}
void show()
{
cout<<"复数:"<<real<<"+"<<imag<<"i"<<endl;
}
};
int main()
{
Complex m(5,7);
m.jisuan(2,2);
m.show();
getchar();
getchar();
return 0;
}
第五题:
#include<iostream>
#include<cmath>
using namespace std;
class Rectangle
{
private:
double x,y,lond,wide;
public:
Rectangle(double a,double b,double c,double d)
{
x=a;
y=b;
lond=c;
wide=d;
}
~Rectangle()
{
cout<<"析构函数"<<endl;
}
void jisuan(double a,double b)
{
x=a+x;
y=b+y;
}
void show()
{
cout<<"左上角坐标"<<"("<<x<<","<<y<<")"<<endl;
cout<<"右上角坐标"<<"("<<x+lond<<","<<y<<")"<<endl;
cout<<"左下角坐标"<<"("<<x<<","<<y+wide<<")"<<endl;
cout<<"右下角坐标"<<"("<<x+lond<<","<<y+wide<<")"<<endl;
}
};
int main()
{
Rectangle n(0,4,5,3);
cout<<"显示矩形:"<<endl;
n.show();
cout<<"移动矩形"<<endl;
n.jisuan(2,2);
n.show();
getchar();
getchar();
return 0;
}
四、调试与运行
程序1:
程序2:
程序3:
程序4:
程序5:
五、实验总结:
1、学到了构造函数的构建,还有析构函数,成员函数等。通过对象调用成员函数实现某些功能。还有学会了运用string函数,简化了程序。
2、遇到了什么问题,如何解决的。
在运用new分配空间时,发现自己对字符串的知识忘记了很多。后来发现后面学习的string类很好用,可以简化程序。总的来说第一次试验都比较简单,做的比较顺利。
3、实验中需要特别注意什么,有哪些细节和技巧。
做实验前要熟悉试验运用的知识,写程序前最好先构思好再写。构造函数要注意没有返回类型的,可以有形参,而析构函数是没有参数的。
面向对象程序设计之课程设计上海电力学院课题名称院系专业学号姓名时间地点指导教师课程设计报告面向对象程序设计20xx20xx学年第一…
面向对象程序设计实验报告姓名学号班级专业学院实验三函数的应用一实验目的掌握函数的定义和调用方法练习重载函数使用练习函数模板的使用练…
题目11问题描述建立一个二维坐标系的类TwoCoor用xy表示坐标值实现两坐标点的加减运算计算两坐标点间的距离并重载输入输出运算符…
综合实验报告面向对象程序设计专业名称班级姓名学号信息科学与工程学院二零一三年七月信息科学与工程学院面向对象程序设计综合实验报告目录…
课程实验报告课程名称面向对象程序设计实验名称面向过程的整型栈编程院系计算机科学与技术专业班级学号姓名指导教师年日面向对象程序设计实…
综合实验报告面向对象程序设计专业名称班级姓名学号信息科学与工程学院二零一三年七月信息科学与工程学院面向对象程序设计综合实验报告目录…
课程实验报告课程名称面向对象程序设计实验名称面向过程的整型栈编程院系计算机科学与技术专业班级学号姓名指导教师年日面向对象程序设计实…
面向对象程序设计之课程设计上海电力学院课题名称院系专业学号姓名时间地点指导教师课程设计报告面向对象程序设计20xx20xx学年第一…
面向对象程序设计Java实验报告20xx20xx学年第2学期班级学号姓名指导教师序号班级学号姓名序号班级学号姓名序号班级学号姓名
课程实验报告课程名称面向对象程序设计实验名称面向对象的整型队列编程院系计算机科学与技术专业班级学号姓名指导教师月日面向对象程序设计…