实验C大学教程第10章实验报告.docx
《实验C大学教程第10章实验报告.docx》由会员分享,可在线阅读,更多相关《实验C大学教程第10章实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
实验C大学教程第10章实验报告
【关键字】实验
班级:
计科1203姓名:
日期:
2013.11.15学号:
实验1创建SavingAccount类
1.实验内容:
创建一个SavingAccount类。
使用一个static数据成员annualInterestRate保存每个存款者的年利率。
2.代码实现:
//SavingAccount.h
classSavingAccount
{
public:
SavingAccount(double);
staticvoidmodifyInterestRate(double);
doublecalculateMonthlyInterest();//计算月利息与余额
voidshow();//显示余额
private:
doublestaticannualInterestRate;
doublesavingsBalance;
};
//SavingAccount.cpp
#include
usingstd:
:
cout;
usingstd:
:
cin;
usingstd:
:
endl;
usingstd:
:
fixed;
#include
usingstd:
:
setw;
usingstd:
:
setprecision;
#include"SavingAccount"
SavingAccount:
:
SavingAccount(doubleBalance)//传递余额参数
{
savingsBalance=Balance;
}
voidSavingAccount:
:
modifyInterestRate(doubleRate)//传递利率参数
{
annualInterestRate=Rate;
}
doubleSavingAccount:
:
calculateMonthlyInterest()
{
savingsBalance+=savingsBalance*(annualInterestRate/12);
returnsavingsBalance;
}
voidSavingAccount:
:
show()
{
cout<<"Thismonth'snewsavingsbalanceis:
";
cout<(2);
cout<}
//testSavingAccount.cpp
#include"SavingAccount.h"
doubleSavingAccount:
:
annualInterestRate=0.00;
intmain()
{
doublea,b;
SavingAccountsaver1(2000.00);
saver1.modifyInterestRate(0.03);
a=saver1.calculateMonthlyInterest();
saver1.show();
SavingAccountsaver2(3000.00);
saver2.modifyInterestRate(0.03);
b=saver2.calculateMonthlyInterest();
saver2.show();
SavingAccountsaver11(a);
saver11.modifyInterestRate(0.04);
saver11.calculateMonthlyInterest();
saver11.show();
SavingAccountsaver22(b);
saver22.modifyInterestRate(0.04);
saver22.calculateMonthlyInterest();
saver22.show();
return0;
}
3.执行结果:
实验2创建IntegerSet类
1.实验内容:
创建IntegerSet类,它的每个对象可存储0到100范围内的整数。
集合在内部表示为0和1的数组。
默认构造函数将集合初始化为所谓的“空集合”,提供另一个构造函数,它接受一个整数的数组以及该数组的大小,并使用该数组初始化集合对象。
2.代码实现:
//IntegerSet.h
#ifndefINTEGER_SET_H
#defineINTEGER_SET_H
classIntegerSet
{
public:
IntegerSet()//默认构造函数初始化为空集合
{
emptySet();
}
IntegerSet(int[],int);//构造函数传入一个数组初始化
IntegerSetunionOfSets(constIntegerSet&);//并集
IntegerSetintersectionOfSets(constIntegerSet&);//交集
voidemptySet();//设为空集合
voidinputSet();//输入数组及大小
voidinsertElement(int);
voiddeleteElement(int);
voidprintSet()const;
boolisEqualTo(constIntegerSet&)const;
private:
intset[101];
intvalidEntry(intx)const
{
return(x>=0&&x<=100);
}
};
#endif
//IntegerSet.cpp
#include
usingstd:
:
cout;
usingstd:
:
cin;
usingstd:
:
cerr;
#include
usingstd:
:
setw;
#include"IntegerSet.h"
IntegerSet:
:
IntegerSet(intarray[],intsize)
{
emptySet();//初始化为空集合
for(inti=0;iinsertElement(array[i]);//接受传入的数组和数组大小
}
voidIntegerSet:
:
emptySet()
{
for(inti=0;i<101;i++)
set[i]=0;
}
voidIntegerSet:
:
inputSet()
{
intnumber;
do
{
cout<<"Enteranelement(-1toend):
";
cin>>number;
if(validEntry(number))
set[number]=1;
elseif(number!
=-1)//数值为-1时,停止输入
cerr<<"InvalidElement\n";
}while(number!
=-1);
cout<<"Entrycomplete\n";
}
voidIntegerSet:
:
printSet()const
{
intx=1;
boolempty=true;
cout<<'{';
for(intj=0;j<101;j++)
{
if(set[j])
{
cout<"\n":
"");
empty=false;
x++;
}
}
if(empty)
cout<cout<}
IntegerSetIntegerSet:
:
unionOfSets(constIntegerSet&r)
{
IntegerSettemp;
for(intn=0;n<101;n++)
if(set[n]==1||r.set[n]==1)
temp.set[n]=1;
returntemp;
}
IntegerSetIntegerSet:
:
intersectionOfSets(constIntegerSet&p)
{
IntegerSettemp;
for(inti=0;i<101;i++)
if(set[i]==1&&p.set[i]==1)
temp.set[i]=1;
else
temp.set[i]=0;
returntemp;
}
voidIntegerSet:
:
insertElement(intk)
{
if(validEntry(k))
set[k]=1;
else
cerr<<"Invalidinsertattempted!
\n";
}
voidIntegerSet:
:
deleteElement(intnumber)
{
for(inti=0;i<101;i++)
if(i==number)
set[i]=0;
}
boolIntegerSet:
:
isEqualTo(constIntegerSet&r)const
{
for(intj=0;j<101;j++)
if(set[j]!
=r.set[j])
returnfalse;
returntrue;
}
//testIntegerSet.cpp
#include
usingstd:
:
cout;
usingstd:
:
endl;
#include
#include"IntegerSet.h"
intmain()
{
IntegerSeta;
IntegerSetb;
IntegerSetc;
IntegerSetd;
cout<<"EntersetA:
\n";
a.inputSet();
cout<<"\nEntersetB:
\n";
b.inputSet();
system("pause");
system("cls");
c=a.unionOfSets(b);
cout<<"\nUnionofAandBis:
\n";
c.printSet();
d=a.intersectionOfSets(b);
cout<<"IntersectionofAandBis:
\n";
d.printSet();
if(a.isEqualTo(b))
cout<<"SetAisequaltoset