综合实验四参考答案课案Word文档格式.docx
- 文档编号:19500677
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:49
- 大小:27.42KB
综合实验四参考答案课案Word文档格式.docx
《综合实验四参考答案课案Word文档格式.docx》由会员分享,可在线阅读,更多相关《综合实验四参考答案课案Word文档格式.docx(49页珍藏版)》请在冰豆网上搜索。
1008
姓名:
张三
性别:
男
工资:
2500
1009
李四
女
2600
参考程序:
/********************************************************
2012IMISC++Practice4(Objectorientedprogramming)
Task1
Programmedby
YEHuanzhuo
Lakeside
Nov.28,2012
********************************************************/
#include<
iostream>
string>
usingnamespacestd;
classEmployee
{
protected:
intnum;
charname[18];
charsex[3];
intwage;
staticintcount;
staticinttotalWage;
public:
Employee(intnu,char*nm,char*sx,intwg);
~Employee();
voidShowBase();
staticvoidShowStatic();
};
intEmployee:
:
count=0;
totalWage=0;
Employee:
Employee(intnu,char*nm,char*sx,intwg)
num=nu;
strcpy(name,nm);
strcpy(sex,sx);
wage=wg;
count++;
totalWage+=wg;
}
~Employee()
count--;
totalWage-=wage;
voidEmployee:
ShowBase()
cout<
<
"
\n"
;
num<
endl;
name<
sex<
wage<
ShowStatic()
count<
totalWage<
元"
intmain()
intn,i,nu,wg;
charnm[18],sx[3];
cin>
>
n;
Employee**a=newEmployee*[n];
for(i=0;
i<
i++)
{
cin>
nu>
nm>
sx>
wg;
a[i]=newEmployee(nu,nm,sx,wg);
}
Employee:
ShowStatic();
a[i]->
ShowBase();
deletea[i];
if(i!
=n-1)
cout<
delete[]a;
return0;
2.日期类Date的设计(构造函数)
定义一个日期类Date,能提供和设置由年、月、日组成的日期。
编写程序,提供类的构造函数用于根据输入初始化日期类Date的对象;
提供函数用于输出日期类对象的日期,按照如下格式输出:
yyyy-mm-dd
初始化日期类Date对象的数据,分别是年、月、日。
程序有多个测试用例。
按照指定格式输出的日期。
20101230
20121830
2012610
2010-12-30
ERRORDATE
2012-06-10
Task2
iomanip>
classDate
intyear;
intmonth;
intday;
Date(inty,intm,intd);
voidshow();
Date:
Date(inty,intm,intd)
year=y;
month=m;
day=d;
voidDate:
show()
setfill('
0'
)<
year<
-"
setw
(2)<
month<
day<
'
inty,m,d,leap,md[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
while(cin>
y>
m>
d)
if(y>
=0&
&
y<
=9999&
=1&
m<
=12)
{
leap=y%4==0&
y%100!
=0||y%400==0;
if((m==2&
d<
=md[m]+leap)||(m!
=2&
=md[m]))
{
DateD(y,m,d);
D.show();
}
else
cout<
ERRORDATE"
}
else
3.复数类Imaginary(友元函数)
根据以下主函数的功能来设计复数类Imaginary,使其能正确运行。
类Imaginary中应该具有描述复数的实部和虚部的私有数据成员a和b,还有相应的构造函数和按照“a±
bi”格式显示复数的成员函数print()。
设计类Imaginary的2个友元函数分别进行复数的加、减运算,并在这些函数调用类Imaginary的成员函数print()显示结果。
floatx1,y1,x2,y2;
x1>
y1>
x2>
y2;
//输入4个数据,分别表示进行运算的两个复数的实部和虚部
Imaginaryimag1(x1,y1),imag2(x2,y2);
//用x1、y1创建Imaginary类对象imag1
Add(imag1,imag2);
//调用友元函数求两个复数之和,按a±
bi的格式显示运算结果(a和b均为实数)
Sub(imag1,imag2);
//求两个复数之差并显示运算结果
}
输入4个数据,分别表示进行运算的两个复数的实部和虚部
2行,分别显示两个复数进行加、减运算的结果
1325
3+8i
-1-2i
Task3
classImaginary
private:
floata,b;
Imaginary(floatx,floaty):
a(x),b(y){}
voidprint()
if(a)
a;
if(b>
0)
+"
elseif(b==0)
0;
return;
if(b==1)
i"
elseif(b==-1)
-i"
elseif(b)
b<
friendvoidAdd(Imaginaryc,Imaginaryd);
friendvoidSub(Imaginaryc,Imaginaryd);
voidAdd(Imaginaryc,Imaginaryd)
Imaginarye(c.a+d.a,c.b+d.b);
e.print();
voidSub(Imaginaryc,Imaginaryd)
Imaginarye(c.a-d.a,c.b-d.b);
4.二进制类
(1)——运算符重载
将一个16位二进制数表示成0和1的字符序列,即用一个字符数组来存放这个二进制数。
在这个类中设置两个构造函数,一个是传递整数参数的,另一个是传递字符串参数的。
因为用户在创建对象时传递的二进制数,可能是以整数形式给出,也可能是以数字串形式给出,系统应该都能接受。
另外有一个类型转换函数int(),用来将类类型向整型转换。
两个重载运算符“+”,“-”,用来完成两个二进制数之间的加减运算。
classbinary{//定义二进制类
charbits[16];
//二进制字模数组
binary(char*);
//字符串参数构造函数
binary(int);
//整型参数构造函数
friendbinaryoperator+(binary,binary);
//重载“+”
friendbinaryoperator-(binary,binary);
//重载“-”
operatorint();
//类类型转换函数
voidprint();
主函数设计如下:
binaryn1="
1011"
binaryn2=int(n1)+15;
binaryn3=n1-binary(7);
n1.print();
n2.print();
n3.print();
int(n2)+5<
n2-binary(5)<
n3+binary(5)<
int(n3)-5<
}
无
略
0000000000001011
0000000000011010
0000000000000100
31
21
9
-1
Task4
//iftheprogramisjudgedbyOJ,pleasefollowC++headfilestandard
iostream.h>
string.h>
//usingnamespacestd;
voidprint();
binary:
binary(char*b)
inti,slen=strlen(b);
slen;
i++)//youcanchoosedifferentorder
bits[i]=b[slen-1-i]-'
//youmayuseintorchar
for(;
16;
i++)//filltherestwithzero
bits[i]=0;
binary(inta)
inti=0;
while(a)
bits[i++]=a%2;
a/=2;
//a>
=1;
operatorint()
inta=0,b=1,i;
if(bits[i])
a+=b;
b<
//b*=2;
returna;
voidbinary:
print()
inti;
for(i=15;
i>
=0;
i--)
cout<
(int)bits[i];
binaryoperator+(binaryx,binaryy)
binaryz(0);
inti,a=0;
z.bits[i]=x.bits[i]+y.bits[i]+a;
a=z.bits[i]/2;
z.bits[i]%=2;
returnz;
binaryoperator-(binaryx,binaryy)
z.bits[i]=x.bits[i]-y.bits[i]-a;
if(z.bits[i]<
a=1;
z.bits[i]+=2;
a=0;
5.二进制类
(2)——运算符重载
在上一题的基础上,将+、-运算符定义为binary类的成员函数。
并且重载运算符~、&
、|,分别将二进制数按位取反、数按位与及按位或。
binaryn4=n1&
n2;
binaryn5=n1|n2;
binaryn6=~n1;
n4.print();
n5.print();
n6.print();
0000000000001010
0000000000011011
111111*********0
Task5
binaryoperator+(binary);
binaryoperator-(binary);
binaryoperator~();
//重载“~”
binaryoperator&
(binary);
//重载“&
”
binaryoperator|(binary);
//重载“|”
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 综合 实验 参考答案
![提示](https://static.bdocx.com/images/bang_tan.gif)