面向对象C++实验报告

面向对象C++实验报告
面向对象C++实验报告

面向对象程序设计-C++

上机实验报告

第一次:熟悉Visual C++开发环境及上机过程实验

实验时间: 2015 年3月 11 日实验室: S311

实验题目:

使用Visual C++ 6.0集成环境来编辑、编译并运行程序1:

#include

using namespace std;

class TAdd

{

public:

TAdd(int a,int b)

{

x=a;y=b;

cout<<"constructor."<

cout<

}

~TAdd()

{ cout<<"destructor."<

cout<

int add(){return x+y; }

private:

int x,y;

};

int main()

{

TAdd p1(3,4);

cout<<"x+y="<

TAdd p2(30,40);

cout<<"x+y="<

return 0;}

实验目的:

1、了解和使用该相应的软件;

2、熟悉VC环境的基本命令和功能键;

3、熟悉常用的功能菜单命令;

4、会编译、链接、运行程序;

5、调试程序时若出现报错,能改正相应的错误;

6、学习使用VC++环境的帮助;

7、学习完整的C++程序开发过程;

8、理解简单的C++程序结构。

实验要求:

1.复习教材有关内容。

2.掌握VC控制台应用程序的开发、调试步骤。

3.完成实验报告。

实验主要步骤:

1、创建新工程

(1)单击菜单“文件/新建”,显示“新建:”对话框。

(2)在此对话框的列表栏中,选择“Win32 Console A pplication”(Win32控制

台应用程序”)。在“工程”栏中输入一个工程名。在位置文本框中选择工程所在的路径,单击“确定”按钮。

(3)在弹出的“Win32 Consol Application-Step 1 of 1” 对话框中选择An empty project单选项。然后单击“Finish”按钮。

(4)在“新建工程信息”对话框中单击“确认”按钮,完成工程创建过程。

2、创建C++源程序文件

(1)编辑C++源程序:编辑C++源程序时,选择“文件”菜单项,在弹出的子菜单中选择新建(热键为Ctrl+N)。

(2)选择“文件”选项卡,在此属性页中选择“C++ Source File”,单击“确定”。(3)在“C++源程序编辑”窗口下编辑C++源程序。在编辑窗口键入相应的C++源程序。

3.编译连接和运行源程序

(1)选择菜单项“编译”,出现“编译”的下拉菜单,在该下拉式菜单中选择“编译eg1-1.cpp”菜单项,这时系统开始对当前的源程序进行编译,在编译过程中,编译器会将错误信息显示在屏幕下方的“编译”窗口中。错误信息包括错误所在大致位置和错误的性质。用户可根据这些错误信息进行修改。

(2)编译无错误后,可进行连接生成可执行文件(.exe),这时选择“编译”下拉菜单中的“构件eg1-1.exe”选项。“编译”窗口出现如图1-8所示的信息说明编译连接成功,并生成以源文件名为名字的可执行文件(eg1-1.exe)。

(3)执行可执行文件的方法是选择“编译”菜单项中“执行eg1-1.exe”选项。这时,运行该可执行文件,并将结果显示在另外一个显示执行文件输出结果的窗口中。4.关闭工作区、打开工作区

单击菜单“文件/关闭工作区”,关闭工作区。

单击菜单“文件/打开工作区”,在弹出的对话框中选定“H:\C++实验\实验一\实验一.dsw”,单击“打开”按钮,则可打开工作区,对已建立的工程文件进行修改。

实验结果:

心得体会:

这个实验要求不高,只是希望我们能够初步了解C++的运行和开发环境。在实验的时候,我电脑的VisualC++6.0被卸载了,我又去网上下载安装了,在上机调试的过程中慢慢对C++有了一定的了解。

第二次:类的定义和对象的使用实验

实验时间:2015年 3 月25 日实验室:S311

实验题目:

1.定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。

要求:

(1)使用成员函数实现输入、输出;

(2)使用构造函数和析构函数,构造函数中实现对数据的输入、析构函数中实现输出;

(3)编写主函数,定义对象,完成相应功能。

2.定义日期类Date。要求:

(1)可以设置日期;

(2)日期加一天操作;

(3)输出函数,输出格式为“XXXX年XX月XX日”;

(4)编写主函数,定义对象,完成相应功能。

实验目的:

1、掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装;

2、类对象的定义;

3、理解类的成员的访问控制的含义,共有、私有和保护成员的区别;

4、掌握构造函数和析构函数的含义与作用、定义和实现,能够根据要求正确定

义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数。

实验要求:

1、根据实验要求写出相应的程序、调试程序;

2、给出程序结果;

3、真正理解实验内容,学到相应的知识。

实验主要步骤:

1.#include

#include

using namespace std;

class student

{

public:

student()

{

}

student(char *id,char *name,int age)

{

strcpy(stuId,id);

strcpy(stuName,name);

stuAge = age;

}

void display()

{

cout<<"学号:"<

}

private:

char stuId[10];

char stuName[20];

int stuAge;

};

int main()

{

student st("001","刘阳",15);

st.display();

return 0;

}

2. # include

# include

using namespace std;

class Date

{

private:

int year,month,day;

public:

void set(int y,int m,int d);

bool isLeapYear()

{ return (year%4==0&&year%100!=0)||(year%400==0);} friend Date & operator++(Date & a);

void print();};

void Date::set(int y,int m,int d)

{

if(!(m<1||m>12))

{ month=m;

if(m==12||m==10||m==8||m==7||m==5||m==3||m==1) {if(!(d<1||d>31)) day=d;}

else

{ if(!(d<1||d>30))

day=d;

else exit(1);}

}

else

exit(1);year=y;

}

void Date::print()

{ cout<

{

bool mend=0,yend=0;

switch(a.month)

{case 12: yend=a.day==31;

break;

case 10: case 8: case 3: case 1: mend=a.day==31;

break;

case 2: mend=a.day==28+a.isLeapYear();

break;

case 4: case 6: case 9: case 11: mend=a.day==30;

break;}

yend?(a.day=1,a.month=1,a.year++):(mend?a.day=1,a.month++:a.day++); return a;

}

int main()

{

Date d1;

d1.set(2013,4,20);

d1.print();

++d1;

d1.print();

}

实验结果:

实验截图1:

实验截图2:

心得体会:

对实验的程序代码不是很懂,就翻阅了书籍和查找了百度,实验过程中,发

现自己对C++的知识不是特别敏感,后来找来课本开始温习一遍,真发现学习

是一个要瞻前顾后,循序渐进的过程。还有很多知识需要自己去认真学习,通过

实验也加深了对知识的了解和实际的运用,我相信以后的实验过程一定会事半功

倍的。

第三次:多文件结构及静态成员和对象数组的使用

实验

实验时间: 2015年4月 1 日实验室: S311

实验题目:

1、编写一个函数,求从n个不同的数中取r个数的所有选择的种数。

要求:

(1)将main()函数放在一个.cpp文件中;

(2)将fn(int n) ,Cnr(int n, int r)放在另一个.cpp文件中;

(3)将函数原型说明放在一个头文件中;

(4)建立一个项目,将这三个文件加到你的项目中,编译连接使你的程序正常运行。

实验目的:

1、掌握自定义头文件的方法;

2、学会建立和调试多文件程序;

3、了解静态成员的使用;

4、掌握对象数组的使用。

实验要求:

1、学会自定义头文件的方法。

2、调试程序并修改相应错误的地方。

3、给出相应结果。

实验主要步骤:

一、编写一个函数,求从n个不同的数中取r个数的所有选择的种数。

要求:

(1)将main()函数放在一个.cpp文件中;

(2)将fn(int n) ,Cnr(int n, int r)放在另一个.cpp文件中;

(3)将函数原型说明放在一个头文件中;

(4)建立一个项目,将这三个文件加到你的项目中,编译连接使你的程序正常运行。

实验结果:

(1)函数原型说明:int fn(int n);int cnr(int n,int r);

(2)主函数声明:void main();

(3)函数实现:#include"函数原型.h"

int fn(int n)

{int s;

for(s=1;n>=1;n--)s*=n;return s;};

int cnr(int n,int r)

{int s;for(s=1;n>r;n--) s*=n;return s;};

(4)主函数实现:#include"函数原型.h"

#include"主函数声明.h"

#include

using namespace std;

void main(){

cout<<"从8个不同的数中取出3个数的所有选择种数的算法如下:"<

cout<<"fn(3)="<

cout<<"cnr(8,3)="<

cout<<"种数="<<"cnr(8,3)/fn(3)="<

}

(5)实验截图:

心得体会:

实验开始时,真的不知道该如何下手,感觉大脑是空白的,后来通过重新看

书和查阅资料,总算有了一点起色。最大的问题就是头文件,源文件,cpp执行,

建立这几个文件,把程序的相关部分放在相应文件中还不熟练。在实验的过程中,

我还发现细心也比较重要,细小的问题就不会被放掉,C++试验的魅力相信在以

后的实验过程我会更加有所体会。

第四次:类的继承和派生实验

实验时间: 2015年 4 月 15 日实验室: S311

实验题目:

1、编写一个程序计算出球、圆柱和圆锥的表面积和体积。

要求:

(1)定义一个基类,至少含有一个数据成员半径,并设为保护成员;

(2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函

数和输出函数;

(3)编写主函数,求球、圆柱、圆锥的表面积和体积

2、编写一个学生和教师数据输入和显示程序。其中,学生数据有编号、姓

名、班级和成绩,教师数据有编号、姓名、职称和部门。

要求:

(1)将编号、姓名输入和显示设计成一个类person;

(2)设计类person的派生类:学生类student和教师类teacher;

(3)各个类的声明放在相应的头文件中(*.h),类的实现放在相应的实现文件中(*.cpp):person.h,person.cpp,student.h,student.cpp,teacher.h,teacher.cpp;

(4)编写一个主文件(SY4_2.cpp),在该文件中分别定义student、teacher 的对象,完成相应功能。

实验目的:

1、理解继承的含义,掌握派生类的定义方法和实现;

2、理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地访

问继承层次中的各种类成员;

3、理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派

生类成员可以访问基类的部分非公开的成员;

4、条件编译的运用。多文件结构的进一步使用。

实验要求:

1、根据实验指导书给出的题目写出相应的程序代码

2、掌握好所涉及的相关内容

实验主要步骤:

1、# include

#include

using namespace std;

const float PI=3.14f;

//几何类

class Geometry

{

public:

void getR(float r)

{

this->r=r;

}

protected:

float r;

};

//球类

class Qiu:public Geometry

{

public:

float getArea(float r)

{

getR(r);

s=4*PI*r*r;

return s;

}

float getVolume(float r)

{

getR(r);

v=(4*PI*r*r*r)/3;

return v;

}

private:

float s,v;

};

//柱类

class Zhu:public Geometry

{

public:

float getArea(float r,float h)

{

getR(r);

this->h=h;

s=2*PI*r*h+2*PI*r*r;

return s;

}

float getVolume(float r,float h)

{

getR(r);

this->h=h;

v=PI*r*r*h;

return v;

}

private:

float s,v,h;

};

//锥类

class Zhui:public Geometry

{

public:

float getArea(float r,float h)

{

getR(r);

float l=sqrt(h*h+r*r);

s=PI*r*l+PI*r*r;

return s;

}

float getVolume(float r,float h

)

{

getR(r);

this->h=h;

v=(PI*r*r*h)/3;

return v;

}

private:

float s,v,h;

};

void main()

{

Qiu a;

Zhu b;

Zhui c;

float s1,s2,s3;

float v1,v2,v3;

s1=a.getArea(3);

v1=a.getVolume(3);

s2=b.getArea(3,2);

v2=b.getVolume(3,2);

s3=c.getArea(3,2);

v3=c.getVolume(3,2);

cout<<"球类:"<

cout<<"柱类:"<

cout<<"锥类:"<

2、#include

#include

using namespace std;

class person{

public:

void print()

{cout<<"输入编号:";

cin>>number;

cout<<"输入姓名:";

cin>>name;

}

void show()

{cout<<"编号:"<

cout<<"姓名:"<

}

protected:

int number;

string name;

};

class student:virtual public person{ public:

void print()

{person::print();

cout<<"输入班号:";

cin>>NO;

cout<<"输入成绩:";

cin>>score;

}

void show()

{person::show();

cout<<"班号:"<

cout<<"成绩:"<

}

protected:

int NO;

float score;

};

class teacher:virtual public person{ public:

void print()

{person::print();

cout<<"输入职称:";

cin>>title;

cout<<"输入部门:";

cin>>dept;

}

void show()

{person::show();

cout<<"职称:"<

cout<<"部门:"<

}

protected:

string title,dept;

};

int main()

{student stu1,stu2;

teacher teac1,teac2;

cout<<"请根据提示输入学生信息"<

cout<<"学生信息如下"<

stu1.show();

cout<

cout<<"请根据提示输入老师信息"<

cout<<"老师信息如下"<

teac1.show();

cout<

return 0;

}

实验结果:

实验截图1:

实验截图2:

心得体会:

在C++的理论课上,就觉得这部分的内容比较难,掌握得并不好,本来想放弃不做这个实验的,可后来老师要求这个实验必须做,所以只好硬着头皮开始,翻开课本重新阅读,又在网上查阅了一些相关资料,发现好像并不是太难,还是可以理解的,虽然在实验的过程中遇到了一些困难,但是最后都圆满解决了,突然发觉每次实验其实就是一次重新发现问题以及解决问题的过程,既然都知道不

会,还不去解决,那是可悲的,这次实验着实让我受益匪浅。

第 5 次:多继承实验

实验时间:2015 年 4 月29 日实验室:S311

实验题目:

1、输入以下程序,分析运行结果。

#include

using namespace std;

class B1

{

public:

B1(int i)

{

b1 = i;

cout<<"构造函数B1."<

int b1;

};

class B2

{

public:

B2(int i)

{

b2 = i;

cout<<"构造函数B2."<

int b2;

};

class B3

{

public:

B3(int i)

{

b3 = i;

cout<<"构造函数B3."<

private:

int b3;

};

class A : public B2, public B1

{

public:

A(int i, int j, int k, int l):B1(i), B2(j), bb(k) {

a = l;

cout<<"构造函数A."<

{

B1::print();

B2::print();

cout<

private:

int a;

B3 bb;

};

void main()

{

A aa(1, 2, 3, 4);

aa.print();

}

2、修改上面的4个类,添加析构函数,在析构函数中输出各私有数据成员的值。并分析结果。

实验目的:

1、理解多继承的概念

2、多继承中构造与析构的应用

实验要求:

1、输入题目给出的程序,分析运行的结果

2、修改所给出程序中的4个类,添加析构函数,在析构函数中输出各私有数据

成员的值。并分析结果

实验主要步骤:

1、建立一个源文件,将所给出的程序输入该文件中,调试程序,并修改相应的

错误

2、在各个类中添加相应的析构函数,调试程序,修改相应的错误,分析结果

实验结果:

#include

using namespace std;

class B1

{

public:

B1(int i)

{ b1 = i;

cout<<"构造函数B1."<

void print() { cout<

~B1(){cout<<"析构函数B1.b1="<

private:

int b1;

};

class B2

{

C++实验报告 第四章 类与对象

C++实验报告 实验4 类与对象 一、实验目的 1、掌握类的声明和使用 2、掌握类的声明和对象的声明 3、复习具有不同访问属性的成员的访问方式 4、观察构造函数和析构函数的执行过程 5、学习类的组合使用方法 6、使用DEBUG调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序 二、实验任务 1、声明一个CPU类,包含等级rank、频率frequency、电压voltage等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU-Rank,声明为enum CPU-Rank{P1=1,P2,P3,P4,P5,P6,P7}, frequency为MHz的整数型,voltage为浮点型的电压值。观察构造函数好析构函数的调用顺序。 2、声明一个简单的Computer类,有数据成员芯片cpu、内存ram、光驱cdrom 等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM 类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。 3、设计一个用于人事管理的People类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number编号、sex性别、birthday出生日期、id身份证号等。其中出生日期声明为一个日期类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内嵌成员函数、组合。 三、实验内容 任务1:首先声明枚举类型,在这里出现了知识性错误,不清楚具体应如何声明,经查询相关书籍,知道应在类外进行声明。初次用类来进行编程,在概念上是有一些混乱的,例如构造函数和析构函数的调用顺序等。在用debug单步调试后,明白其中道理。 源程序: //Lab4_1.cpp #include using namespace std; enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7}; class CPU { //CPU类的定义 private: //私有数据成员 CPU_Rank rank; int frequency;

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值说明了一个类的多个对象拥有各自的实例成员变量。

面向对象程序设计实验报告完整版

资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 综合实验报告 面向对象程序设计 专业名称: 物联网工程 ___班级: _____ 级2班__ ___________姓名: 你哥哥 学号: 02051928 信息科学与工程学院 二零一三年七月

第一题: (1) 1.1题目概述 (1) 1.2设计思路 (2) 1.3设计说明与调试分析 (2) 1.4编码实现 (2) 1.5程序运行结果 (5) 1.6设计心得 (5) 第二题: (6) 2.1题目概述 (6) 2.2设计思路 (7) 2.3设计说明与调试分析 (7) 2.4编码实现 (7) 2.5程序运行结果 (11) 2.6设计心得 (11)

第一题: 1.1题目概述 用抽象类设计计算二维平面图形图形面积的程序, 在基类TDshape中设计纯虚函数area()和printName(), area()用于计算几何图形的面积, printName()用于打印输出几何图形的类名, 如Triangle类的对象就打印输出”Triangle”。每个具体形状的类则从抽象类TDshape派生, 各自需要定义其它独有的数据成员和成员函数, 而且定义area()和printName()的具体实现代码, 如图所示。 要求编写以TDshape为接口的函数, 借以访问具体类如

Triangle和Rectangle类的成员函数area(), printName ()。1.2设计思路 由简到繁, 逐步实现。 1.3设计说明与调试分析 编写基类TDshape->编写虚函数->编写继承类Triangle ->实例化TDshape和Triangle ->调用基类虚函数实现调用继承类相应函数->同样的方式处理继承类Rectangle. 1.4编码实现 #include using namespace std; class TDshape{ public: virtual void area()=0; virtual void printName()=0; }; class Triangle:public TDshape{ private: double width,height;

C++实验九类和对象的使用实验报告

实验九类和对象的使用实验报告 一实验目的 1、学会用构造函数对类对象进行初始化 2、掌握析构函数,并了解构造函数和析构函数的调用顺序 3、了解对象数组和对象指针的用法 4、学会共用数据的保护,了解常对象、常成员函数等的使用限制 二实验内容和要求 1.回顾课本知识,掌握重点和难点,认真分析例题熟悉本章内容。 2.完成本章课后习题2、6、7题,认真分析每一题的代码。 三实验环境 Visual C++6.0开发环境 四源程序 2、 #include using namespace std; class Date { public: Date(int,int,int); Date(int,int); Date(int); Date(); void display(); private: int month; int day; int year; }; Date::Date(intm,intd,int y):month(m),day(d),year(y) {} Date::Date(intm,int d):month(m),day(d) {year=2005;} Date::Date(int m):month(m) { day=1; year=2005; }

Date::Date() { month=1; day=1; year=2005; } void Date::display() { cout< using namespace std; class Student { public: Student(intn,float s):num(n),score(s) {}; void change(intn,float s) { num=n; score=s; } void display() { cout<

实验一 Java面向对象基础 实验报告

实验一Java面向对象基础、数组实验报告 一、实验目的 1. 理解面向对象编程基本思想 2. 了解类的封装方法,以及如何创建类和对象 3. 掌握面向对象程序设计的方法,了解类的继承性和多态性的作用 4. 掌握Java 中的数组定义、引用 二、实验要求 编写程序时要注意体现面向对象思想,体会不同访问控制符的作用。 1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。(要求:程序要有构造方法重载;要能体现类的多态性) 2. 定义一个由若干个整数组成的数组,要求输出该数组的平均值以及所有的奇数之和。 3. 随机生成30个0-9之间的数字,分别统计0-9这10个数字分别出现了多少次。 三、实验内容及结果 1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。 public class Vehicle { private String color; public Vehicle() { this("black"); } public Vehicle(String color) { this.color = color; } public String toString() { return "this is a " + this.color + " vehicle"; } } class Bus extends Vehicle { private int passagerNumber; public Bus() { this(50, "black"); } public Bus(int number) { this(number, "black"); } public Bus(int number, String color) { super(color); this.passagerNumber = number; } public String toString() {

面向对象分析与设计实验报告

面向对象分析与设计实验报告 题目:宿舍管理系统 学号:200*********** 姓名:****** 班级:09软件*****04 完成时间:2011.11.09

目录 1 系统功能需求 (3) 1.1管理系统模块 (3) 1.2查询学生模块 (3) 1.3学生管理模块 (4) 1.4资料修改模块 (5) 1.5楼栋管理模块 (6) 1.6出入登陆模块 (6) 2 建立需求模型 (7) 2.1 划分子系统 (7) 2.2 识别参与者 (8) 2.3 识别用况 (8) 2.4 对需求进行捕获与描述 (9) 3 系统分析 (11) 3.1 寻找类 (11) 3.2 建立状态机图 (12) 3.3 建立类图 (12) 3.4 建立顺序图 (13) 4 系统设计........................................................................... 1错误!未定义书签。 4.1 问题域部分设计 (14) 4.2 人机界面部分设计 (14) 5 总结 (16) 参考文献 (17)

1.系统的功能需求 我校学生公寓现为手工管理,效率低、易出错、手续繁琐,而且耗费大量的人力,物力,财力。故设计一个学生公寓管理系统,管理学生住宿情况,员工情况,处理学生离校,管理人员来访情况等功能。通过此系统,后勤人员可以对学生公寓的各项情况实行电脑化管理,以提高工作效率,也使得公寓管理所需的各项信息能方便快速进行录入,查询,删除和更新。 面对学生公寓管理工作的特点以及该管理工作的具体问题, 本系统可以解决以下问题: (1)录入公寓各学生的基本情况。 (2)全面查询学生的基本情况。 (3)对学生离校进行处理。 (4)每学期对学生住宿进行注册。 (5)对来访人员进行出入管理。 (6)对学生的财务进行登记管理。 (7)对楼栋物资和楼栋的管理。 (8)对各项情况进行修改,删除,更新。 (9)友好的操作界面, 以及简单快速的操作. (10)多种查询方式。 本系统针对学生公寓管理日常的工作程式, 对学生公寓的各项情况例如:学生信息,学生个人财产信息,来访人员信息等进行有效管理,并能通过各方法进行快速方便的查询。使学生公寓管理工作运作简明、清晰,各状况一目了然,使学生公寓管理工作更加科学化、规范化。 1.1管理系统模块:实现用户退出功能。 1.2查询学生模块:该模块包括五个子模块 1.按学号查询——实现按学号查询学生信息 2.按姓名查询——实现按姓名查询学生信息 3.按学生班级查询——实现按学生班级查询学生信息 4.按家庭住址查询——实现按家庭住址查询学生信息 5.混合查询——实现按混合查询学生信息

实验报告_实验3 类与对象

实验报告_实验3 类与对象(学生学号_姓 名) 一、实验目的 1.熟悉类的组成,掌握类的声明方法; 2.理解构造方法的作用,并掌握构造方法的定义; 3.熟练使用访问器和设置器实现信息隐藏和封装; 4.熟悉一般方法、构造方法的重载; 5.能够正确地区分静态变量与实例变量、静态方法与实例方法的不同,掌握静态变量和静态方法的使用;6.掌握对象的创建、引用和使用及向方法传递参数的方式; 7.掌握this关键字的使用以及对象数组的创建和访问; 8.掌握Java包的创建、包成员的各种访问方式; 9.掌握一维数组:声明,创建,初始化,数组元素的访问; 10.掌握多维数组的概念:二维数组的声明,初始化,元素的访问。 二、实验内容与步骤 1.请回答下列问题: (1)Cirecle类定义了几个属性?它们的类型、访问权限各为什么? 答:两个PI,floatl类型,静态私有权限 Radius,float;类型,私有权限 (2)类中的“PI”的值可以在程序的方法中更改吗? 答:不可以,因为PI为静态变量 (3)Cirecle类定义了几个方法?它们的访问权限怎样?

答:四个,getRadius(),setRadius(float radius),getPerimeter(),getArea()都是公有权限 2.写出Rectangle类的程序代码: class Rectangle { private float width; private float length; public float getWidth( ) //获取矩形宽度 {return width;} public float getLength( ) //获取矩形长度 {return length;} public float getPerimeter( ) //获取矩形周长 {return 2*(width+length);} public float getArea( ) //获取矩形面积 {return (width*length);} public void setWidth(float w) //设置矩形宽度 {width=w;} public void setLength(float l) //设置矩形长度 {length=l;} } 3.回答下列问题: (1)该程序中有几个类?主类是什么?如果将这两个类放在一个文件中,源程序文件名应是什么?答:两个类:Circle、CircleTest;主类是CircleTest;源程序文件名是CircleTest。

C上机实验报告实验四

实验四数组、指针与字符串 1.实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准C++库的使用 4.掌握指针的使用方法 5.练习通过Debug观察指针的内容及其所指的对象的内容 6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准C++库练习处理字符串的方法 2.实验要求 1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。 2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。 5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。实现并测试这个类。 6.定义包含5个元素的对象数组,每个元素都是Employee类型的对象。 7. (选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。 3.实验内容及实验步骤 1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。 2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。 4.使用string类定义字符串对象,编程实现两字符串的连接。在string类中已重载了运算符“+=”实现字符串的连接,可以使用这个功能。程序名:lab6_4.cpp。 5.在employee.h文件中定义Employee类。Employee类具有姓名、街道地址、城市和邮编等私有数据成员,在成员函数中,构造函数用来初始化所有数据成员;display()中使用cout显示

实验2:Java面向对象程序设计

实验2:Java面向对象程序设计(一) 实验目的 ●掌握类的定义;掌握构造方法的使用;掌握对象的创建。 ●掌握静态变量与静态方法的使用;了解静态变量和成员变量的区别。 ●熟悉访问修饰符的作用;掌握访问修饰符的使用方法。 ●掌握方法的重载;掌握访问器get/set方法。 实验步骤 一、类和对象的创建 1. 创建一个圆类,成员变量有半径radius和圆周率pi,提供计算圆面积的方法,并在main方法中创建圆类的对象,调用其计算面积的方法进行测试。 2. 编写上述代码,编译运行代码,查看程序执行结果。 ●试述程序中两个类的各自作用。 ●类Circle都封装了什么?求圆面积的初始数据是通过哪个方法实现的?请修改程序采用构造函数的方法初始化数据。 ●类Circle是如何声明的?在类中都声明了什么?在主函数中是如何创建Circle类对象的? 二、静态变量和静态方法的设计 (一). 静态变量和实例变量练习 1. 创建一个类,类名为StaticVariableTest,包含static变量和实例变量,类型为int型,在main方法中分别调用这2个变量并且输出结果。 2. 部分源代码如下: 3. 将上述代码中的main方法补充完整后,编译运行代码,查看程序执行结果。 ●根据完善后的源码,分析调用静态变量和实例变量有什么不同? (二). 静态方法和实例方法练习 1. 创建一个类,类名为StaticMethodTest,包含一个静态方法和一个实例方法,在main方法中分别调用这个两个方法进行测试。

2. 部分源代码如下: 3. 将上述代码中的main函数补充完整,编译运行代码,查看程序执行结果。 ●根据完善后的源码,分析如何调用静态方法和实例方法? 三、访问修饰符与方法的重载 (一). 访问修饰符练习 1. 创建一个Person类,在该类中用不同的访问修饰符设立不同的person属性,再创建一个PersonTest类,包括main方法,在此类中分别访问Person类中各个属性。 2. 源代码如下: 3. 先填写下面的表格,在预测结果中,如果能打印输出,填写程序输出结果,否则填“N”。 ●记录程序运行结果。 表4-3-1 预测和验证结果

面向对象技术-实验报告

实验报告 课程名称Java程序设计 实验项目实验一类、对象与构造函数 实验二派生类与继承 系别___________理学院_____________ 专业/班级_________电技1302____________姓名______蔡超月____________ 实验日期_______________________ 成绩_______________________ 指导教师夏红科

一、实验题目:实验一类、对象与构造函数 实验二派生类与继承 二、实验内容: (1)创建一个雇员类,该类中有数据成员有姓名、家庭住址和邮政编码等,其功能有修改姓名、显示数据信息。 要求:雇员类的定义作为.h保存 雇员类功能函数的实现放在.cpp中。 雇员类的使用放在单独的.cpp文件中,该文件使用#include编译预处理命令包含类定义的头文件,在main()函数中使用雇员类创建几个对象并显示信息。 (2)定义一个哺乳动物类,再由此派生出人类、狗类和猫类,这些类中均有speak()函数,请设计相应的类层次结构并加以实现,观察在调用过程中,到底使用了哪个类的speak()函数。 (3)设计一个能细分为矩形、三角形、圆形和椭圆形的图形类,使用继承将这些图形分类,找出能作为基类部分的共同特征(如宽,高,中心点等)和方法(如初始化、求面积等),并设计多种继承模式来测试继承的属性。 三、程序清单及结果:(需要标明实现程序对应的实验内容,并给出合理的程序注释及运行结果) 1)程序清单及注释 内容1: #include #include 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();

实验一.类与对象实验报告

浙江理工大学信息学院 面向对象程序设计实验报告 实验名称:类的定义与使用学时安排:3 实验类别:设计性实验实验要求:1人1组姓名:邵旸珂学号:2016329621068  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的 1)掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性; 2)掌握类对象的定义; 3)理解类的成员的访问控制的含义,公有、私有和保护成员的区别; 4)掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数; 二、实验原理介绍 通过建立类及对象,用类的成员函数和对象访问类的成员; 利用建立类的构造函数,完成类的成员的初始化工作; 三、实验设备介绍 软件需求: windows或linux下的c++编译器 硬件需求: 对于硬件方面的要求,建议配置是Pentium III 450以上的CPU

处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。 四、实验内容 编写一个程序,模拟电梯的功能。功能接口包括电梯上行按钮、下行按钮、楼层选择和电梯在行驶过程中的楼层显示。 要求: 1.由用户选择按上行按钮还是下行按钮,选择操作后再由用户输入要进入的楼层,进而电梯开始运行,显示所到的每一楼层层数。 2.如果是上行,则选择输入的楼层号不能比当前楼层号小,否则应给出不合法提示。 3. 如果是下行,则选择输入的楼层号不能比当前楼层号大,否则应给出不合法提示。 4.电梯一旦开始运作就会始终运行,直到窗口关闭。 5.电梯在经过不同楼层时,最好每个楼层的显示之间能有延迟,最终停靠的楼层的输出形式能更加醒目。如果可以,在电梯最初开始运行时,能在电梯由内部显示当前日期(提示:实现这些功能时,需要调用系统api,实现时间显示功能可以使用CDate类)。 五程序清单 #include #include #include using namespace std;

Java面向对象程序设计_习题解答

Java面向对象程序设计 清华大学出版社 (编著耿祥义张跃平) 习题解答 建议使用文档结构图 (选择Word菜单→视图→文档结构图)

习题1 1.James Gosling 2. (1)使用一个文本编辑器编写源文件。 (2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。 (3)使用J ava解释器(java.exe)运行Java程序 3.Java的源文件是由若干个书写形式互相独立的类组成的。 应用程序中可以没有public类,若有的话至多可以有一个public类。 4.系统环境path D\jdk\bin; 系统环境classpath D\jdk\jre\lib\rt.jar;.; 5. B 6.Java源文件的扩展名是.java。Java字节码的扩展名是.class。 7.D 8.(1)Speak.java (2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8.class (3)java Xiti8 (4)执行java Speak的错误提示 Exception in thread "main" https://www.360docs.net/doc/777936084.html,ng.NoSuchMethodError: main 执行java xiti8得到的错误提示 Exception in thread "main" https://www.360docs.net/doc/777936084.html,ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示 Exception in thread "main" https://www.360docs.net/doc/777936084.html,ng.NoClassDefFoundError: Xiti8/class 执行java Xiti8得到的输出结果 I'm glad to meet you 9.属于操作题,解答略。

面向对象程序设计实验报告

. , 面向对象程序设计实验报告 班级:计算机科学与技术11-5 学号:0505 ( 姓名:高冉冉 日期:2012/7/2 \

题目3: 1.问题描述: 假设有图书类Book,包括书名、出版社名称、作者姓名、图书定价等数据成员。编程序完成Book类的设计,从键盘读入10本图书的各项数据,并将这10本图书的相关数据写入磁盘文件中,然后从中读出各图书数据,计算所有图书的总价值,并显示每本图书的详细信息,每本图书的信息显示在一行上。 2.实现代码: #include · #include #include #include<> using namespace std; class Book { private: char bookName[20]; etPrice(); - ioFile<>book[i]; cout<

JAVA类的继承实验报告

《面向对象程序设计》实验报告 实验六、类的继承 课程代码:1H10500学分:6 实验类型:实践型实验学时:4个学时 实验时间:2017.11.23 实验地点:5407 班级:计算机164 专业:计算机科学与技术专业学号:2016011147 姓名:林文辉 一、实验目的 (1)学习JAVA继承的思想 (2)了解JAVA语言继承的实现 二、实验内容及步骤 内容:在圆柱体类Cylinder里,用一个构造方法调用另一个构造方法 步骤:方案的设计与分析(类结构图。。。。。。) (1)找出对象的共同属性和行为 (2)设计代表共同状态与行为的类 (3)决定子类是否需要让某项行为有特定的不同的运行方式 (4)寻找更多抽象化的机会 (5)完成类的继承层次 三、实验过程及结果 实验1代码: abstract class Graphics { abstract void parameter(); abstract void area(); } class Rectangle extends Graphics{ double h,w; Rectangle(double u,double v){h=u;w=v;} void parameter() { S ystem.out.println("矩形高度为:"+h+",矩形宽度为:"+w); } void area() { S ystem.out.println("矩形面积为:"+(h*w)); } }

class Circle extends Graphics{ double r; String c; Circle(double u,String v){r=u;c=v;} void parameter() { System.out.println("圆半径为:"+r+",圆颜色为:"+c); } void area() { System.out.println("圆面积为:"+(Math.PI*r*r)); } } class ExamAbs{ public static void main(String args[]) { Rectangle rec=new Rectangle(2.0, 3.0); Circle cir=new Circle(4.0, "Red"); Graphics[]g= {rec,cir}; for(int i=0;i

《面向对象分析与设计》实验报告

《面向对象分析与设计》 实验报告 班级:计科09-4班 姓名:郑翼 学号:08093435

实验一用例图 一、实验目的 1.学会分析系统中的参与者和用例 2.掌握用例图的绘制方法 二、实验器材 1. 计算机一台; 2. Rational Rose 工具软件; 三、实验内容 画出A TM系统的用例图 四、实验截图

五、实验体会 通过这次实验,理解了用例图的基本用法,并且初步掌握了Rational Rose软件的使用。对以后面向对象的学习都是十分重要的。

实验二交互图 一、实验目的 1.学会用协作图实现用例 2.掌握顺序图的绘制方法以及顺序图和协作图的相互转换。 二、实验器材 1. 计算机一台; 2. Rational Rose 工具软件; 三、实验内容 画出A TM取款的顺序图,并转换为协作图。 四、实验截图 顺序图

协作图 五、实验体会 通过实验,学会了用协作图实现用例,掌握了顺序图的绘制方法以及顺序图和协作图相互转换的方法,进一步的加深了对软件的使用。

实验三类图 一、实验目的 1.理解类的基本概念 2.理解类间的关系 3.掌握类图的绘制方法 二、实验器材 1. 计算机一台; 2. Rational Rose 工具软件; 三、实验内容 分析选课系统中的类及关系,然后画出它们的类图。 四、实验步骤 1.分析 在选课系统中,通过分析可抽象出如下几个类: 1.学生类 2.管理员类 3.课程类 学生类和管理员类的属性较容易分析,这里只列出课程类的属性和方法:(1)课程名称 (2)开课教室 (3)课程号 (4)授课教师 (5)选课的学生 (6)开课起始时间 (7)允许选课的学生人数 (8)设置课程号 (9)设置课程名称 (10)查询课程号

java实验报告——对象和类

成绩: 面向对象原理与Java实践课程实验报告 实验1:对象和类 姓名 ____ 班级 ____ 学号 ____ 实验地点 ____ 实验时间 ____ 指导教师 ____

面向对象原理与Java实践课程实验报告 实验1:对象和类 一、实验目的: ●掌握类的定义及应用方法 ●掌握对象的创建方法,了解实例变量、实例方法和静态字段的特性 ●体会Java在类和对象的设计中体现的面向对象的思想 二、实验要求: ●具备Java基础知识(教材第1、2章内容) ●掌握Java中对象和类的基本概念和应用方法(教材第3章内容) ●设计类时注意保证类的封装性 ●编写程序完成以下实验内容并上交实验报告(包括电子文档与纸质文档) 三、实验内容: 设计并实现一个“广石化院电信学院学生通信录”系统。系统采用字符界面,在出现的主界面中按提示输入相应字符以选择“增加”、“删除”、“修改”、“查找”等功能进行操作(其中“查找”功能除能够查找某个学生的信息之外,还能够显示所有学生的信息)。记录的存储可采用数组或链表的方式。 四、设计思路: 为了实现该系统,首先要需要两个类;一个类为主界面服务,用于接收用户输入信息以及做出相关反应;一个类为学生信息服务,定义学生通讯录信息的各个字段,以及操作字段的各个方法,考虑到部分字段的属性问题,所以将操作方法都写在学生类中,不再另外放置在其他类中。学生信息将会采用学生类的对象数组来储存。 五、程序源代码: 下面是ZhuJieMian 主界面类 package pkg_TXL; import java.util.Scanner; public class ZhuJieMian { /** * * 该类为通讯录系统的主界面提供主要功能显示,以及负责主菜单与子菜单的正常跳转 */ public static void main(String[] args) {

面向对象程序设计,实验报告

安徽工业大学 面向对象程序设计实验报告 实验课程:《C++语言程序设计》 学生姓名: 学号: 专业班级: 2011年 12 月 18 日

目录 实验1熟悉C++开发环境及简单程序设计和应用 (3) 实验2基本控制结构程序设计 (6) 实验3 类与对象 (10) 实验4友元函数与友元类 (13) 实验5数组与指针 (16) 实验6静态成员 (20) 实验7类的继承 (22) 实验8多态 (24)

安徽工业大学实验报告 学生姓名:张虹学号:6100409033 专业班级:网络工程091 实验类型:□验证□综合□设计□创新实验日期:实验成绩: 实验1熟悉C++开发环境及简单程序设计和应用 一、实验目的 1.初步了解C++程序的编译、连接和运行的过程。 2.掌握和理解C++程序的结构。 二、实验内容 1.使用VC 2.运行一个简单的C++程序 3.编程求出对任意输入的两个整数,求出该两个整数的最大公约数和最小公倍数 三、实验步骤 1.启动VC 或

2.建立工程并输入以下程序 #include using namespace std; void main() { int i(1), sum(0); do { sum+=i; i++; }while(i<=10); cout<<"sum="<

3.保存文件、运行程序、退出VC程序、打开已经存在的文件 4.编程求出对任意输入的两个整数,求出该两个整数的最大公约数和最小公倍数编写以下代码: #include using namespace std; void main() { int a,b,c,d,i; cout<<"a="; cin>>a; cout<<"b="; cin>>b; for(i=1;i<=a && i<=b;i++) if(a%i==0 && b%i==0) c=i; for(i=a*b;i>=a && i>=b;i--) if(i%a==0 && i%b==0) d=i; cout<<"a和b的最大公约数为"<

c++类和对象实验报告

实验一类和对象 实验课程名:面向对象程序设计(C++) 专业班级:学号:姓名: 实验时间:实验地点:指导教师: 一、实验目的和要求 (1) 理解类和对象的概念,掌握声明类和定义对象的方法。 (2) 掌握构造函数和析构函数的实现方法。 (3) 初步掌握使用类和对象编制C++程序。 (4) 掌握对象数组、对象指针和string类的使用方法。 (5) 掌握使用对象、对象指针和对象引用作为函数参数的方法。 (6) 掌握类对象作为成员的使用方法。 (7) 掌握静态数据成员和静态成员函数的使用方法。 (8) 理解友元的概念和掌握友元的使用方法。 二、实验内容 1.设计一个静态数组存储结构的顺序表类,要 求编程实现如下任务:建立一个线性表,首先 依次输人数据元素1,2,3,…,10,然后删除 数据元素6,最后依次显示当前线性表中的数 据元素。要求采用顺序表实现,假设该顺序表 的数据元素个数在最坏情况下不会超过50个。实验代码:#include using namespace std; const int MaxSize=100; //100只是示例性的数据,可根据实际问题具体定义 template //定义模板类SeqList class SeqList { public:

SeqList( ) {length=0;} //无参构造函数 SeqList(T a[ ], int n); //有参构造函数 ~SeqList( ) { } //析构函数为空 int Length( ) {return length;} //求线性表的长度 T Get(int i); //按位查找,取线性表的第i个元素 int Locate(T x ); //按值查找,求线性表中值为x的元素序号 void Insert(int i, T x); //在线性表中第i个位置插入值为x的元素 T Delete(int i); //删除线性表的第i个元素 void PrintList( ); //遍历线性表,按序号依次输出各元素 private: T data[MaxSize]; //存放数据元素的数组 int length; //线性表的长度 }; template SeqList::SeqList(T a[ ], int n) { int i; if (n>MaxSize) throw "参数非法";

C++类和对象实验报告

计算机科学与技术实验报告 实验二类和对象(1) 姓名:易XX 班级:计科二班学号:2015110121 实验目的:深入理解类和对象,学会定义类,申明私有、公有变量,学会定义对象,并调用成员函数,解决实际问题。 实验内容: (一)、题目要求: 定义一个描述角度的类CAngle,包含的内容如下: (1)私有成员变量value,表示角度,类型为double; (2)公有成员变量SetValue,实现功能是使用形参为value赋值。 声明为:viod SetValue(double); (3)公有成员函数GetCos,实现功能计算余弦值,并作为返回值返回。 声明为 double GetCos(); 编程实现如下功能:定义一个Cangle类的对象deg,调用成员函数设置deg的角度为30度,调用成员函数计算并输出deg的余弦值。 代码: #include #include using namespace std; #define PI 3.1415 //定义宏常量PI class CAngle{ double value; //定义角度 public: void Setvalue(double x){ value =x/180*PI; //把角度转化为弧度 } double Getcos(){ return ( cos(value) ); //计算cos值 } }; int main(){ CAngle deg; //定义一个Cangle类的对象deg deg.Setvalue(30); cout<

相关文档
最新文档