}
四、完善程序(每空2分,供20分)
1.下面的程序中定义了圆类Circle、长方形类Rect、圆角长方形类RoundRect,其中
RoudRect共有继承于Circle和Rect类。
试完成程序。
#include
#include
classCircle
{
doubleradius;
public:
Circle(doubler):
{}
doublearea(){return3.14*radius*radius;}
};
classRect
{
doublewidth,height;
public:
Rect(doublew,doubleh){width=w;height=h;}
doublearea(){returnheight*width;}
};
classRoundRect:
publicCircle,Rect
{
charcolor[5];
public:
RoundRect():
Circle(r),Rect(w,h)
{
strcpy(color,c);
}
char*getcolor(){returncolor;}
};
voidmain(void)
{
RoundRectrr(0.8,1,0.25,"白色");
cout<}
2.下列程序通过重载运算符“*”,直接实现两个一维数组对应元素相乘运算。
设数组
a,
b分别为:
inta[10]={1,2,3,4,5,6,7,8,910};
intb[10]={1,2,3,4,5,6,7,8,9,10};
相乘后的结果为{1,4,9,16,25,36,49,64,81,100}。
同时通过重载运算符“=”,直接
实现
两个一维数组的赋值运算。
试完善程序。
#include
#include
classA
{
intx[10];
public:
A(){for(inti=0;i<10;i++)x[i]=0;}
A(int*p)
{
for(inti=0;i<10;i++)
}
Aoperator*(Aa)
{
At;
for(inti=0;i<10;i++)
returnt;
}
Aoperator=(Aa)
{
for(inti=0;i<10;i++)
return*this;
}
voidshow(){for(inti=0;i<10;i++)cout<};
voidmain(void)
{
inta[10]={1,2,3,4,5,6,7,8,9,10};
intb[10]={1,2,3,4,5,6,7,8,9,10};
Aa1(a),a2(b),a3;
a3=a1*a2;
a3.show();
}
3.下面的程序的功能是比较两个字符串是否相等,若相等返回1,否则返回0。
请完成
程序。
#include
intf(char*s1,char*s2)
{
char*p=s1,*q=s2;
while()
{
q++;
p++;
}
return();
}
voidmain(void)
{
chars1[100],s2[100];
cin.getline(s1,100);
cin.getline(s2,100);cout<}
4.下列函数的功能是将一个新生成的链表按照从小到大的顺序插入到现有的链表中,请完成函数。
structnode{
intdata;
node*next;
};
node*Insert(node*head,node*p)〃将p指向的结点插入到head代表的链表中
{
node*p1,*p2;
if(head==O){〃空链表,插入到链表首部
head=p;
p->next=head;
returnhead;
}
if(head->data>=p->data){〃非空链表,p的数据项比首节点的数据项小,插入到
链首
p->next=head;
head=p;returnhead;
}
p2=p仁head;
while(p2->next&&p2->datadata_){〃找到要插入的位置
p仁p2;p2=p2->next;
}
if(p2->datadata){//p代表的结点的数据项最大,插入到表尾
p2->next=p;p->next=0;
}
else{//插入到p1和p2指向的结点之间
p>next=p2;p1->next=p;
}
}
五、上机编程题(每题50分,共100分)
1.建立一个str类,完成对字符串循环左移的功能。
即从第二个字符开始,以后的每
个字符都依次前移一个字符,而原来的第一个字符放在串中的最后一个字符。
当要平移m
个字符时,则要进行m次的循环左移。
例如:
“ABCD循环左移2个字符后为“CDAB。
要求如下:
(1)私有数据成员
char*w;指向待左移字符串。
intm,len;分别用于存储循环左移的次数及字符串的长度。
(2)公有成员函数
构造函数str(char*p,intn,intk):
初始化各数据成员。
voidmove():
循环左移。
voidshow():
输出字符串数据成员
(3)编写一个程序测试该类,使用以下测试数据:
a[]=”ABCD,左移3个字符。
要求输出字
符串。
2.请将压缩包中的文本文件in.dat的内容读入到数组A[3][3]中,并将转置后的数组
A的内容写入到文本文件out.dat中。
请完成程序。
欢迎您的下载,
资料仅供参考!
致力为企业和个人提供合同协议,策划案计划书,学习资料等等
打造全网一站式需求