《面向对象程序设计》实验册Word文件下载.docx

上传人:b****3 文档编号:18510204 上传时间:2022-12-18 格式:DOCX 页数:44 大小:249.04KB
下载 相关 举报
《面向对象程序设计》实验册Word文件下载.docx_第1页
第1页 / 共44页
《面向对象程序设计》实验册Word文件下载.docx_第2页
第2页 / 共44页
《面向对象程序设计》实验册Word文件下载.docx_第3页
第3页 / 共44页
《面向对象程序设计》实验册Word文件下载.docx_第4页
第4页 / 共44页
《面向对象程序设计》实验册Word文件下载.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

《面向对象程序设计》实验册Word文件下载.docx

《《面向对象程序设计》实验册Word文件下载.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》实验册Word文件下载.docx(44页珍藏版)》请在冰豆网上搜索。

《面向对象程序设计》实验册Word文件下载.docx

一、实验目的和要求

1.了解VisualC++6.0或者VisualC++2005以上版本的特点。

2.学会VisualC++6.0或者VisualC++2005以上版本的开发环境,来创建和调试标准的C++控制后台应用程序。

3.学会使用VisualC++6.0或者VisualC++2005以上版本的开发环境中的程序调试功能,例如单步执行、设置断点、观察变量值等。

4.掌握string类型的用法。

5.掌握C++语言编程时输入和输出格式控制。

6.掌握多文件结构的使用。

7.掌握重载函数的使用。

二、实验设备和环境

1.计算机每人一台。

2.安装WindowsXP或者以上版本操作系统。

3.安装VisualC++6.0或者VisualC++2005以上版本。

三、实验内容及步骤

1.给出VisualC++调试一个简单应用程序的步骤,要求程序输出字符串“Hello!

WelcometoC++!

”。

程序:

#include<

iostream>

usingnamespacestd;

intmain()

{

cout<

<

"

Hello!

endl;

WelcometoC++!

return0;

}

运行结果:

2.调试以下程序,观察运行结果。

voidmain()

inta,b=10;

int&

ra=a;

a=20;

a<

ra<

&

ra=b;

b<

运行结果及结果分析:

3.编写一程序,实现九九乘法表的2中格式输出,格式如下:

(1)123456789

1123456789

224681012141618

336·

·

448·

5510·

6612·

7714·

8816·

9918·

(2)123456789

11

224

3369

4481216

5510152025

661218243036

77142128354249

8816243240485664

991827364554637281

注:

要求每种输出格式均写成函数形式

#include<

inti,j;

显示1:

for(i=1;

i<

10;

i++)

{

for(j=1;

j<

j++)

{

cout<

i*j<

\t"

;

}

cout<

}

endl<

显示2:

i++)

{

=i;

j++)

{

j*i<

}

}

4.将第3题改成多文件结构实现。

要求该工程中有3个.cpp文件和1个.h文件。

.h:

intcfb1(intx,inty);

intcfb2(intx,inty);

.cpp:

(1)

#include"

3head.h"

cfb1(i,j)<

cfb2(i,j)<

(2)

intcfb1(inti,intj)

(3)

intcfb2(inti,intj)

5.编程实现比较两个数的大小,求较大值(要求使用重载函数实现)。

intmax(inta,intb)

returna>

b?

a:

b;

intm,n;

Entertwointeger:

cin>

>

m>

n;

Thebiggeris:

max(m,n)<

6.编写一个程序,判断一个字符串是否为另一个字符串的子串,若是,返回字串在主串中的位置。

要求不适用strstr函数,自己编写一个子函数实现。

(建议使用string类型,而非字符数组。

string.h"

chara[]="

howareyou?

charb[]="

are"

inti=0,j,na,nb,flag;

na=strlen(a);

nb=strlen(b);

flag=1;

for(i=0;

i!

='

\0'

if(a[i]==b[j])j++;

四、实验体会

熟悉了C++开发环境的使用,对C++编程有了初步的了解,能够编写一些简单的和C类似的程序。

类与对象实验学时:

9.25实验成绩:

吴刚批改时间:

1.掌握类和对象的概念、定义方法以及类与对象的简单用法。

2.掌握成员函数的实现与调用方法。

3.深刻领会类与对象的区别。

4.理解类实现数据隐藏和封装的原理。

5.掌握构造函数、拷贝构造函数、分析构造函数的定义和使用,尤其注意组合类中它们的调用顺序。

1.用面向对象的程序设计方法实现栈的操作。

栈又叫堆栈,是一个常用的数据结构,它是一种运算受限的线性表,仅允许在表的一端进行插入和删除运算,是一种后进先出表。

提示:

栈用一维整型数组来表示,栈的大小定义为10;

栈定义为一个类stack;

实现栈的创建、进栈和出栈、栈的消亡。

进栈函数:

voidpush(intn);

出栈函数:

intpop(void);

constintmaxsize=10;

classstack

public:

voidinit()

top=-1;

voidpush(intn);

intpop();

voiddead();

private:

inttop;

intdata[maxsize];

};

voidstack:

:

push(intn)

if(top==maxsize)

栈已满!

else

top++;

data[top]=n;

intstack:

pop()

if(top<

0)

栈下溢!

return0;

top--;

returndata[top+1];

dead()

栈中还剩"

(top+1)<

个元素"

stackseqstack;

inti,x,m;

seqstack.init();

请输入10个数字:

maxsize;

cin>

x;

seqstack.push(x);

请输入你所需要的操作:

1<

元素出栈!

2<

栈的消亡!

m;

switch(m)

case1:

{

for(i=0;

cout<

seqstack.pop();

break;

}

case2:

seqstack.dead();

return0;

2.将第1题中的实验内容改为多文件结构实现。

#defineN10

staticinttop;

inta[N];

voidpush(intn);

voidpop();

voiddie();

head.h>

top=0;

if(top<

N)

a[top++]=n;

cout<

进栈数据:

n<

else

堆栈已经满了,不能再加数进去了!

=0)

堆栈已经空了,没有数据了!

出栈数据:

a[--top]<

die()

inti;

for(i=0;

N;

a[i]=0;

消亡堆栈!

head.h"

intn,m;

输入两个你要输入的数据N和M:

cin>

n>

stacks;

s.push(n);

s.push(m);

s.pop();

s.die();

3.设计一个用于人事管理的People(人员)类。

考虑到通用性,这里只抽象出所有类型人员都具有的属性:

number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等。

其中“出生日期”声明为一个“日期”类内嵌子对象。

用成员函数实现对人员信息的录入和显示。

要求包括:

构造函数和折构函数、拷贝构造函数、内联成员函数、组合类等。

string>

classDate

intyear;

intmonth;

intday;

Date(){}

Date(inty,intm,intd)

year=y;

month=m;

day=d;

voidset()

year>

month>

day;

voiddisplay()

year<

年"

month<

月"

day<

日"

classPerson

intnum;

charsex;

Datebirthday;

charID[18];

Person(){}

Person(intn,inty,intm,intd,charid[18],chars='

m'

):

birthday(y,m,d)

num=n;

sex=s;

strcpy(ID,id);

Person(Person&

p)

num=p.num;

sex=p.sex;

birthday=p.birthday;

strcpy(ID,p.ID);

voidinput()

录入数据:

编号:

num;

性别(m/f):

sex;

生日:

birthday.set();

身份证号:

ID;

ID[18]='

voidoutput()

num<

性别:

sex<

birthday.display();

ID<

~Person()

"

号人员已经录入"

Personp1;

p1.input();

p1.output();

4.设计一个计算薪水的类Payroll,它的数据成员包括:

单位小时的工资、已经工作的小时数、本周应付工资数。

在主函数定义一个具有10个元素的对象数组(代表10个雇员)(可以定义普通对象数组,也可以定义堆对象数组)。

程序询问每个雇员本周已经工作的小时数,然后显示应得的工资。

要求:

输入有效性检验:

每个雇员每周工作的小时数不能大于60,同时也不能为负数。

string.h>

stdio.h>

classPayroll

doublemoney;

doubletotal;

inttime;

intGetTime()

do

printf("

inputtime:

);

scanf("

%d"

&

time);

while(time<

0&

time>

60);

money=100;

intGetTotalMoney()

return(total=time*money);

voidPrint()

printf("

total:

%lf\n"

total);

main()

Payrollp[10];

p[0].GetTime();

p[0].GetTotalMoney();

p[0].Print();

对多文件有了更深了解,能够熟练的掌握多文件的使用方法。

学习了C++的构造函数,以及拷贝构造函数,接触友元组合类等新知识,需要课后多加练习。

静态成员与友元实验学时:

无实验地点:

10.09实验成绩:

吴刚批改时间:

1.掌握类中静态成员的定义的方法。

2.掌握静态数据成员初始化的方法。

3.掌握静态数据成员和数据函数成员的访问和使用方法。

4.掌握友元函数的定义和使用方法。

5.了解友元类的使用方法。

1.任意输入10个数,计算器总和及平均值。

设计程序测试该功能(要求用类、静态友员实现)。

classnumber

intNo;

intfigure;

staticdoublesum;

staticintsumpeople;

number(intn,intifigure)

No=n;

figure=ifigure;

sum+=figure;

sumpeople++;

staticintSum()

returnsum;

staticdoubleAverage()

returnsum/sumpeople;

intnumber:

sumpeople=0;

doublenumber:

sum=0;

Thetennumberis:

=10;

j;

number(i,j);

Thesumis:

number:

Sum()<

Theaverageis:

Average()<

2.求两点之间的距离(要求定义点Point类,并用友员函数实现)。

cmath>

classPoint

doublex,y;

Point(doublem,doublen):

x(m),y(n){}

frienddoubleDistance(Point&

px,Point&

py);

doubleDistance(Point&

py)

doubled;

d=sqrt((px.x-py.x)*(px.x-py.x)+(px.y-py.y)*(px.y-py.y));

returnd;

Pointp1,p2;

inta1,b1,a2,b2;

a1>

b1>

a2>

b2;

p1=Point(a1,b1);

p2=Point(a2,b2);

thedistanceis"

Distance(p1,p2)<

3.定义一个经理类Manager,其成员数据包括编号id,姓名name和年龄age,均声明为private访问属性。

再定义一个员工类Employee,其成员数据及访问属性与经理类相同。

将Manager类声明为Employee类的友员函数,并在Manager类中定义一个函数访问Employee类的私有数据成员并进行输出。

stdlib.h>

classEmployee

friendclassManager;

private:

intid;

char*n;

intage;

Employee()

id=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1