面向对象程序设计实验报告样本
面向对象程序设计-试验报告

《面向对象程序设计》实验报告一.实验目的与要求1.学习类与对象的定义。
2.掌握类与对象的使用方法。
3.学习类与对象的声明。
4.学习数据成员与成员函数的访问方式。
5.理解构造函数和析构函数的定义与执行过程。
6.学会构造函数的重载方法。
二.实验准备与内容1.可以定义出一个类,并且在程序中创建一个该类的对象。
2.实现类的定义,借助VC++的方法建立一个新的类。
3.体现出构造函数和析构函数的调用。
4.重载构造函数。
5.为了提高对相关知识的综合应用能力,编写一个较为复杂的类和对象的应用程序。
三.实验设计(分析)1.建立一个空的工程chap2。
2.在工程chap2中,建立一个源程序文件,在此文件中建立一个新的类。
将新建的类命名为Rect。
//--------------------------------------------------------------------------------------------------class Rect{public:int Area_int();double Area_double();Rect(double1, doublew);Rect(int 1,int w);virtual ~Rect();private:int nLength;int nWidth;double dLength;double dWidth;};//--------------------------------------------------------------------------------------------------3.向Rect类中添加数据成员及成员函数,并完善成员函数功能。
如设计一个Area_int()函数,计算机边长为整形的长方形的面积;设计一个Area_double()函数,计算机边长为double的长方形的面积。
4.重载构造函数。
一种构造函数用整形变量记录长方形的长和宽,另一种构造函数用double型记录。
面向对象编程实验报告

面向对象编程实验报告一、实验目的本次实验旨在通过面向对象编程的方式,设计并实现一个简单的学生信息管理系统,加深对面向对象编程原理和概念的理解,并掌握面向对象编程的应用技巧。
二、实验内容1. 设计学生类(Student):包括学生的基本信息(学号、姓名、性别、年龄等)以及相关操作(添加信息、修改信息、删除信息等)。
2. 设计班级类(Class):包括班级的基本信息(班级编号、班级名称等)以及与学生类的关联关系(一个班级包含多个学生)。
3. 设计主程序类(Main):用于对学生信息进行管理和操作,包括添加学生、删除学生、修改学生信息、查询学生信息等功能。
4. 编写测试用例:对设计的学生信息管理系统进行测试,保证系统能够正常运行并实现预期功能。
三、实验步骤1. 设计学生类(Student):首先确定学生类的属性和方法,定义学生类的成员变量(学号、姓名、性别、年龄)以及成员方法(添加学生信息、修改学生信息、查询学生信息等)。
2. 设计班级类(Class):确定班级类的属性和方法,包括班级编号、班级名称以及一个包含学生信息的集合,设计班级类与学生类的关联关系。
3. 编写主程序类(Main):在主程序类中实现学生信息的管理功能,通过用户输入选择对学生信息的操作,调用学生类和班级类中的方法实现相应功能。
4. 编写测试用例:设计多个测试用例,分别测试添加学生、删除学生、修改学生信息等功能,确保系统能够正确运行并实现预期功能。
四、实验结果分析经过测试,学生信息管理系统能够正常运行并实现预期功能。
用户可以通过主程序类对学生信息进行添加、删除、修改和查询操作,操作界面友好,操作流程清晰,便于用户操作和管理学生信息。
五、实验总结通过本次实验,我深入理解了面向对象编程的原理和概念,掌握了面向对象编程的应用技巧,提升了对Java编程语言的熟练程度。
面向对象编程具有代码复用、维护方便和高扩展性等优点,是一种高效的编程思想。
在今后的学习和工作中,我将继续深入研究面向对象编程,不断提升自己的编程能力。
面向对象程序设计(C++)实验报告

面向对象程序设计(C++)实验报告姓名:刘九州学院:数学与计算机学院班级:10级计算机大类三班学号:100511314实验5 单继承一、实验目的1.掌握派生的类别与方式;2.了解派生类中如何使用基类的成员、基类成员在派生类中的访问控制;3. 掌握继承中构造函数和析构函数的调用过程。
二、实验内容及步骤1.给出一个Document类,从Document派生出Book类,增加PageCount变量。
在主函数中进行测试,创建Book类对象并进行初始化,输出书名和页数。
2.设计一个单基继承的类层次程序,利用Person类派生出Student类,增加属性xh(学号),Person类中至少有姓名、年龄等数据成员,成员函数中构造函数对其初始化,析构函数释放相应存储单元,输出函数输出其数据成员的值,其它成员函数根据需要添加,在主函数中进行测试。
3.设计一个人员类person和一个日期类date,由人员类派生出学生类student和教师类professor,学生类和教师类的数据成员birthday为日期类。
在主函数中进行测试。
三、实验源程序和运行结果实验(一)源程序:#include<iostream>#include<string>using namespace std;class Document{public:Document(){};~Document();Document(char*name);char *Name;void PrintNameOf();};Document::Document(char*name){Name=new char[strlen(name+1)];strcpy(Name,name);}Document::~Document(){delete []Name;}void Document::PrintNameOf(){cout<<Name<<endl;}class Book:public Document{public:int PageCount;Book(char *a,int b):Document(a){PageCount=b;}};void main(){char BookName[20];int n;cout<<"请输入书名:"<<endl;cin>>BookName;cout<<"请输入书的页数:"<<endl;cin>>n;Book b(BookName,n);cout<<"书名为:"<<<<endl;cout<<"页数为:"<<b.PageCount<<endl;}运行结果:实验(二)源程序:#include<iostream>#include<string>using namespace std;class person{public:person(){name="张三";age=0;}person(string c,int a){name=c;age=a;}~person(){}void setname(string c){name=c;}string getname(){return name;}void setage(int a){age=a;}int getage(){return age;}private:string name;int age;};class student:public person{public:student(){xh=0;}student(int d){xh=d;}student(string c,int a,int d):person(c,a){xh=d;}~student(){}void setxh(int d){xh=d;}int getxh(){return xh;}private:int xh;};void main(){string c;cout<<"请输入学生的姓名:\n";cin>>c;cout<<"请输入学生的年龄:\n";int a;cin>>a;cout<<"请输入学生的学号:\n";int d;cin>>d;student n(c,a,d);cout<<"请输入学生的姓名为:"<<n.getname()<<endl;cout<<"请输入学生的年龄为:"<<n.getage()<<endl;cout<<"请输入学生的学号为:"<<n.getxh()<<endl; }运行结果:实验(三)源程序:#include<iostream>using namespace std;class person{public:person(){name="张三";age=0;}person(string c,int a){name=c;age=a;}~person(){}void setname(string c){name=c;}string getname(){return name;}void setage(int a){age=a;}int getage(){return age;}private:string name;int age;};class date{public:date(){year=2011;month=12;day=17;}~date(){}date(int y,int m,int d){year=y;month=m;day=d;}int getyear(){return year;}int getmonth(){return month;}int getday(){return day;}private:int year;int month;int day;};class student:public person{public:student(){// birthday.date();}student(int y,int m,int d):birthday(y,m,d){}~student(){}void getbirthday(){cout<<"学生的生日为:\n";cout<<birthday.getyear()<<"年"<<birthday.getmonth()<<"月"<<birthday.getday()<<"日"<<endl;}private:date birthday;};class teacher:public person{public:teacher(){// birthday.date();}teacher(int y,int m,int d):birthday(y,m,d){//birthday.date(y,m,d);}~teacher(){}void getbirthday(){cout<<"老师的生日为:\n";cout<<birthday.getyear()<<"年"<<birthday.getmonth()<<"月"<<birthday.getday()<<"日"<<endl;}private:date birthday;};void main(){cout<<"请输入学生的生日:"<<endl;int y,m,d;cin>>y>>m>>d;student s(y,m,d);cout<<"请输入老师的生日:"<<endl;cin>>y>>m>>d;teacher t(y,m,d);s.getbirthday();t.getbirthday();}运行结果:实验6 多继承一、实验目的1.掌握多基继承的使用,访问方法;2.理解类层次中访问规则;3.掌握虚基类的定义及使用。
面向对象程序设计C++实验报告书

面向对象程序设计C++实验报告书班级:姓名:学号:
1、
2、
3、在一个程序或一个编辑单元(即一个程序文件)中当需要进行标准I/O操作时,则必须包含头
文件iostream.h,当需要进行文件I/O操作时,则必须包含头文件fstream.h。
由它提供的输入文件流类ifstream、输出文件流类ofstream和输入输出文件流类fstream定义用户所需要的文件流对象,然后利用该对象调用相应类中的open成员函数,按照一定的打开方式打开一文件。
文件打开后,就看可以通过流对象访问它了,访问结束后再通过流对象关闭它。
签名:
年月日。
Java面向对象程序设计实验报告参考模板

一、实验目的及内容目的:掌握和巩固Java面向对象程序设计的概念、方法。
内容:1.设计一个Java程序,该程序运行后,说明:一个类的所有对象共享同一个类成员变量;一个类的多个对象拥有各自的实例成员变量。
2.编写一个表示人的类Person,该类满足以下要求:●有两个private成员变量:name(名字)、age(年龄);在Person类外访问这两个成员变量均通过接口器函数(getXXX,setXXX)。
●该类具有一个有两个参数的构造函数,这两个参数分别用来初始化name和age成员变量。
●该类包含一个方法public boolean older(Person r),用于比较当前对象年纪是否比参数r的年纪大,若是,则返回true,否则,返回false。
编写另外一个类:TestPerson,该类包含下面函数:public static void sortPerson(Person[] personList),在该函数中利用Person类的older方法实现对数组personList按年龄从小到大排序。
main函数位于该类中。
在main函数中(1)创建Person类的10个对象,并保存到一个数组中,创建10个对象时,每个对象的年龄为0~100的一个随机数(用Math.random()函数得到)。
(2)输出这个数组中每个对象的名字、年龄。
(3)调用sortPerson方法,对这个数组中的10个Person对象按年龄排序。
(4)输出排序后数组中每个对象的名字、年龄。
二、要求1.给出上述程序的中涉及到的类的类图(可用visio画)、解决上述问题的思路、代码和测试结果。
1.设计一个Java程序,该程序运行后,说明:一个类的所有对象共享同一个类成员变量;一个类的多个对象拥有各自的实例成员变量。
设计思路:要实现一个类的所有对象共享同一个类成员变量;一个类的多个对象拥有各自的实例成员变量。
我创建了一个Number类,并创建了两个对象number1和number2,该类有一个类成员函数static int numberofsum(int a, int b)来求和,一个类成员变量countnumber来统计对象的个数,还有实例成员变量num,通过两个对象求和以及统计对象个数,说明了一个类的所有对象共享同一个类成员变量,两个对象都有自己的num值说明了一个类的多个对象拥有各自的实例成员变量。
面向对象程序设计(C++)课程实验报告

河南财经政法大学(计算机与信息工程)实验报告实验项目名称类与成员函数课程名称面向对象程序设计(C++) 成绩评定实验类型:验证型□综合型□设计型□实验日期指导教师学生姓名学号专业班级一、实验项目训练方案二、实验总结与评价实验总结(包括实验数据分析、实验结果、实验过程中出现的问题及解决方法等):1.针对二维坐标系上的点,定义一个点类,实现简单的数据输入输出。
#include<iostream.h>class Point{private:int x,y;public:void setpoint(int,int);void putpoint(int *a,int *b){*a=x;*b=y;}void print(void){cout<<"输出为:"<<"x="<<x<<" "<<"y="<<y<<endl;}};void Point::setpoint(int a,int b){ cin>>a>>b;x=a;y=b;}void main(){Point s1;int a,b;s1.setpoint(100,300);s1.putpoint(&a,&b);cout<<"输入为:"<<"x="<<a<<" "<<"y="<<b<<endl;s1.print();}s1.getstudent();s1.putstudent();return 0;}(如留存空白不足,可附A4纸)对实验的自我评价:对于结构体和指针的知识还不够熟练,因此在学习类的时候有很大困难,需要及时回顾。
面向对象程序设计课程实验报告

出口参数:无
功能:用s初始化p指空栈
intsize (const STACK *constp)
入口参数:无
出口参数:int max
功能:返回p指得栈得最大元素个数max
int howMany (const STACK*const p)
入口参数:无
出口参数:intpos
7。2用户使用说明书ﻩ39
7.3源代码ﻩ39
实验一。面向过程得整型栈编程
1、需求分析
1.1题目要求
整型栈就是一种先进后出得存储结构,对其进行得操作通常包括判断栈就是否为空、向栈顶添加一个整型元素、出栈等、整型栈类型及其操作函数采用非面向对象得纯C语言定义,请将完成上述操作得所有函数采用面向过程得方法编程,然后写一个main函数对栈得所有操作函数进行测试、
2.系统设计
2。1概要设计
函数结构图见图1.1
图1.1
总体流程图见图1。2
图1、2
2.2详细设计
voidinitSTACK(STACK*constp,int m)
入口参数:int m
出口参数:无
功能:初始化栈,可存m个元素
void initSTACK(STACK *constp, constSTACK&s)
6.过程与体会15
6.1遇到得主要问题与解决方法ﻩ15
6.2课程设计得体会ﻩ15
7、源码与说明ﻩ15
7。1文件清单及其功能说明ﻩ15
7、2用户使用说明书15
7、3源代码15
实验三.基于算符重载得整型栈编程19
1。需求分析ﻩ19
1、1题目要求19
1、2需求分析19
2、系统设计20
面向对象程序设计实验报告

面向对象程序设计实验报告实验报告(1)2015.6【实验作者】学号:姓名:班级:教学站:【实验名称】实验一:熟悉C++程序的风格和C++程序的上机全过程【实验目的】1.熟悉C++程序的风格,熟悉实验环境。
2.练习C++程序的输入、修改、编译、连接与运行的全过程。
3.本实验有4个程序【实验内容】1. 习题2.2下面是一个C程序,改写它,使它采用C++风格的I/O语句。
(1)该程序做什么工作?输入两个整数,求两个整数的大于1 的最小公约数[(另外请教下毛老师:如果最小公约数与最小数相等时,我觉得也有可能这个数是两个数的大于1 的最小公约数)即7与14的公约数为1,7按题意的话,要大于1,那么7也是这两个数的最小公约数,但程序不认为它们具有公约数]。
(2)该程序中那几个数是由键盘输入的?那几个数是输出的?那几个数是临时变量?a与b 由键盘输入;d 是输出的;a,b,d,min 都是临时变量。
(3)用C++风格的I/O语句是什么?#include <iostream.h> cout<<与cin>>(4)写出该程序的算法(用流程图表示)框图1:(5)该程序你有否上机编译、连接、运行通过。
有上机编译连接并运行通过,但有些疑问!2. 习题 2.20分析下面程序的输出结果:(1)该程序做什么工作?利用引用函数改变一个变量的值。
(2)该程序有几个函数?其中f函数是什么函数?其功能是什么?一个函数,F函数是一个引用返回值的函数,并且该函数参数也为一个引用,函数功能是送入一个对变量引用,将变量+10后送回。
成为对返回值的引用。
(3)写出该程序的算法(用流程图表示)框图2:(4)该程序你有否上机编译、连接、运行通过。
该程序有上机编译并连接运行通过。
3. 习题2.23 建立一个被称为sroot( )的函数,返回其参数的二次根。
重载sroot( )三次,让它分别返回整数、长整数与双精度数的二次根(为了实际计算二次根,可以使用标准库函数sqrt( ))。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《面向对象程序设计》实验报告
合肥院学院计算机科学与技术系
实验名称 _____________________日期_________________
姓名/学号__________/__________ 专业/班级 _____________/___________
指导老师_________________成绩_______________________________
一、实验目的:(详见指导书,宋体小四)
二、实验要求:(详见指导书,宋体小四)
三、实验内容及过程:(宋体小四,)
四、实验中的问题思考及讨论:(列出你实验中出现的问题,及解决的问题和解决的
思路)
五、实验总结: (简单、准确的总结本次实验的主要内容,个人收获)
六、源代码及运行结果
注:报告内容不得雷同,否则视为抄袭,无成绩