面向对象程序设计结课作业.docx
《面向对象程序设计结课作业.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计结课作业.docx(7页珍藏版)》请在冰豆网上搜索。
![面向对象程序设计结课作业.docx](https://file1.bdocx.com/fileroot1/2023-1/26/f1166905-7030-4707-9ea0-0ea936b6933c/f1166905-7030-4707-9ea0-0ea936b6933c1.gif)
面向对象程序设计结课作业
集团标准化办公室:
[VV986T-J682P28-JP266L8-68PNN]
面向对象程序设计结课作业
201509考试批次
《面向对象程序设计》结课作业
学生姓名陈明飞学习中心黑龙江鸡西市委党校奥鹏学习中心
学号45考号9
专业计算机科学与技术年级层次1403
北京语言大学网络教育学院
《面向对象程序设计》结课作业
注意:
本学期所布置的结课作业,请同学一律按照以下要求执行:
1)结课作业提交起止时间:
2015年8月1日—9月28日。
(届时平台自动关闭,逾期不予接收。
)
2)结课作业课程均需通过“离线作业”栏目提交电子版,学院不收取纸介的结课作业,以纸介回寄的作业一律视为无效;
3)截止日期前可多次提交,平台只保留最后一次提交的文档,阅卷时以最后一次提交的结课作业为准,截止日期过后将关闭平台,逾期不交或科目提交错误者,按0分处理;
4)提交文档要求:
提交的文档格式为doc、rar,大小10M以内;
5)必须严格按照每门课程的答题要求完成作业,没有按照学院要求来做的结课作业,将酌情扣分。
一、【程序分析题】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题30分,本题要求读懂题目中的程序或函数,写出程序或函数的功能)
1、#include<>
voidmain()
{
inti,s=0;
for(i=2;i<=30;i+=2)s+=i*i;
cout<<"s="<
}
1、答:
程序的功能是:
计算并输出22+42+62+……+302的值
2、ints1(intn)
{
intx;
if(n==1)x=1;
elsex=s1(n-1)+n*n;
returnx;
}
3、voidfun5(char*a,constchar*b)
{
while(*b)*a++=*b++;
*a=0;
}
4、voidfun3(inta[][N],intm,intn,int&row,int&col)
{
intx=a[0][0];
row=col=0;
for(inti=0;ifor(intj=0;jif(a[i][j]>x){
x=a[i][j];row=i;col=j;
}
}
5、char*f8(char*str1,constchar*str2)
{
inti=0,j=0;
while(str1[i])i++;
while(str2[j])str1[i++]=str2[j++];
str1[i]='\0';
returnstr1;
}
二、【编写程序实现算法】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题30分,根据题目要求编写算法实现,要求程序没有语法错误)
1、按照函数原型语句“voidp(intn);”编写一个递归函数显示出如下图形,此图形是n=5的情况。
55555
4444
333
22
1
1、答:
#include<>
voidp(intn)
{
if(n==1)
{
printf("1\n");
return;
}else
{
for(inti=1;i<=n;i++)
{
printf("%d",n);}
printf("\n");
p(n-1);
}
}
voidmain()
{
p(5);
}
2、按照函数原型语句“voidp(intn);”编写一个递归函数显示出如下图形,此图形是n=5的情况。
1
22
333
4444
55555
3、按照下面函数原型语句编写一个递归函数计算出数组a中n个元素的平方和并返回。
intf(inta[],intn);
4、根据下面类中MaxMin函数成员的原型和注释写出它的类外定义。
classAA{
int*a;
intn;
intMS;
public:
voidInitAA(intaa[],intnn,intms){
if(nn>ms){cout<<"Error!
"<(1);}
MS=ms;
n=nn;
a=newint[MS];
for(inti=0;i}
intMaxMin(int&x,int&y);//从数组a的前n个元素中求出
//最大值和最小值,并分别由引用参数x和y带回,
//同时若n大于0则返回1,否则返回0。
};
5、如果A和B都是m行n列矩阵,且它们对应元素相等,则A==B。
试定义矩阵类,
对“==”运算符重载。
三、【程序设计题】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题40分,根据题目要求编写完整程序实现,要求程序能够正常运行,没有语法错误)
1、编写一个程序,计算三角形、正方形和圆形三种图形的面积和周长。
(用多态性实现)
2、已有若干个学生数据,包括学号、姓名、成绩,编写程序要求输出这些学生数据并计算平均分。
3、应用C++的多态性编写一个程序,编写程序计算正方体、球体和圆柱体的表面积和体积。
4、编写一个程序,实现图书和杂志销售管理。
当输入一系列图书和杂志销售记录后,将销售良好(图书每月售500本以上,杂志每月2500本以上)的图书和杂志名称显示出来。
4、答:
#include
#include
usingnamespacestd;
intmain(){
stringbookName;
stringmagazineName;
stringa[100],b[100];
intbookNumber;
intmagazineNumber;
inti=0,j=0,c,d;
do{cout<<"请输入图书的名称:
"<cin>>bookName;
cout<<"请输入图书销售的数量:
"<cin>>bookNumber;
if(bookNumber>500)
{a[i]=bookName;
i++;}
cout<<"请问还有图书需要输入吗有请按1,没有请按0"<cin>>c;
}while(c==1);
do{cout<<"请输入杂志的名称:
"<cin>>magazineName;
cout<<"请输入杂志销售的数量:
"<cin>>magazineNumber;
if(magazineNumber>2500)
{b[j]=magazineName;
j++;
}
cout<<"请问还有杂志需要输入吗有请按1,没有请按0"<cin>>d;
}
while(d==1);
cout<<"销售良好的图书有:
"<for(intk=0;k!
=i;k++)
cout<cout<<"销售良好的杂志有:
"<for(intx=0;x!
=j;x++)
cout<
return0;
system("pause");
}
5、一名兽医要记录他所治疗的各种类型的狗以及治疗信息,尤其想了解不同的病症对带斑点的狗和不带斑点的狗所产生的影响。
为该兽医设计一个程序,要求记录狗的品种(breed),身高(height),体重(weight),颜色(color)等信息。
为斑点狗和不带斑点的狗设计不同的类。
下面的程序使用你设计的类。
voidmain()
{//定义一个白色的Dalmatian斑点狗,它身高24,体重60,
斑点为红色
spotted_dogredSpot("Dalmatian",24,60,"white","red");
//定义一个黄色的Labrador无斑点狗,它身高30,体重40
unspotted_dogrover("LabradorRetriever",30,40,"yellow");
();//显示狗名
();//显示狗品种
();//显示狗斑点信息
();//显示狗名
();//显示狗品种
}