09考试批次面向对象程序设计结课作业.docx
- 文档编号:27887996
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:18
- 大小:24.53KB
09考试批次面向对象程序设计结课作业.docx
《09考试批次面向对象程序设计结课作业.docx》由会员分享,可在线阅读,更多相关《09考试批次面向对象程序设计结课作业.docx(18页珍藏版)》请在冰豆网上搜索。
09考试批次面向对象程序设计结课作业
201709考试批次
《面向对象程序设计》结课作业
学生姓名学习中心
学号
专业年级层次
北京语言大学网络教育学院
《面向对象程序设计》结课作业
注意:
本学期所布置的结课作业,请同学一律按照以下要求执行:
1)结课作业提交起止时间:
2017年8月2日--9月11日。
(届时平台自动关闭,逾期不予接收。
)
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="<
}
答:
计算并输出2^2+4^2+6^2+....+30^2的值
2、ints1(intn)
{
intx;
if(n==1)x=1;
elsex=s1(n-1)+n*n;
returnx;
}
答:
函数的功能是:
通过递归调用函数S1求得1^2+2^2+3^2+….+n^2的值
3、voidfun5(char*a,constchar*b)
{
while(*b)*a++=*b++;
*a=0;
}
答:
实现字符串系统函数strcpy的功能把b所指的字符串拷贝到a所指的字符数组空间中
4、voidfun3(inta[][N],intm,intn,int&row,int&col)
{
intx=a[0][0];
row=col=0;
for(inti=0;i for(intj=0;j if(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; } 答: 函数的功能是: 把str2链接到str1后面。 二、【编写程序实现算法】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题30分,根据题目要求编写算法实现,要求程序没有语法错误) 1、按照函数原型语句“voidp(intn);”编写一个递归函数显示出如下图形,此图形是n=5的情况。 55555 4444 333 22 1 答: voidp(intn){ if(n! =0){ for(inti=0;i cout< p(n-1); } } 2、按照函数原型语句“voidp(intn);”编写一个递归函数显示出如下图形,此图形是n=5的情况。 1 22 333 4444 55555 答: voidp(intn) { if(n==1) { printf("1\n"); return; } else { p(n-1); for(inti=1;i<=n;i++) { printf("%d",n); } printf("\n"); } } voidmain() { p(5); } 3、按照下面函数原型语句编写一个递归函数计算出数组a中n个元素的平方和并返回。 intf(inta[],intn); 答: intf(inta[],intn) {if(n<=0)return0; elsereturn(f(a,n‐1)+a[n‐1]*a[n‐1]); } 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。 }; 答: intAA: : MaxMin(int&x,int&y){ intmx,my;mx=my=a[0]; for(inti=1;i if(a[i]>mx)mx=a[i]; if(a[i] } x=mx;y=my; if(n>0)return1;elsereturn0;} 5、如果A和B都是m行n列矩阵,且它们对应元素相等,则A==B。 试定义矩阵类, 对“==”运算符重载。 答: #include usingnamespacestd; constintM=3; constintN=3; classMatrix{ private: intX[M][N]; public: friendintoperator==(Matrix&A,Matrix&B); }; intoperator==(Matrix*A,Matrix*B){ inti,j; for(i=0;i for(j=0;j { if(A[i][j]! =B[i][j]) return0; } return1; } 三、【程序设计题】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题40分,根据题目要求编写完整程序实现,要求程序能够正常运行,没有语法错误) 1、编写一个程序,计算三角形、正方形和圆形三种图形的面积和周长。 (用多态性实现) 答: #include #include usingnamespacestd; classShape{ private: public: virtualdoubleS()=0; virtualdoubleC()=0; }; classTri: publicShape{ private: doubler1,r2,r3; public: Tri(doubled1=0,doubled2=0,doubled3=0): r1(d1),r2(d2),r3(d3){}; doubleS(){return(sqrt(0.5*(r1+r2+r3)*0.5*(r1-r2+r3)*0.5*(r1+r2-r3)*0.5*(-r1+ r2+r3)));} doubleC(){return(r1+r2+r3);} }; classQua: publicShape{ private: doubleside; public: Qua(doubless): side(ss){}; doubleS(){return(ss*ss);} doubleC(){return(4*ss);} } classCir: publicShape{ private: doublerad; public: Cir(doubledd): rad(dd){}; doubleS(){return(3.14*rad*rad);} doubleC(){return(2*3.14*rad);} }; intmain(){ Shape*a=newTri(3,4,5); Shape*b=newCir (2); Shape*d=newQua(4); cout< cout< cout< cout< cout< cout< return0; }; 2、已有若干个学生数据,包括学号、姓名、成绩,编写程序要求输出这些学生数据并计算平均分。 答: #include #include classstudent { public: intno; char*name; intdeg; student(); ~student(); voiddisplay(); }; staticintsum,num=3; staticintavg(intsum); voidmain() { intaver; studentstu[3]; stu[0].no=1; stu[0].name="li"; stu[0].deg=89; stu[1].no=2; stu[1].name="chen"; stu[1].deg=78; stu[2].no=3; stu[2].name="zheng"; stu[2].deg=94; for(inti=0;i<3;i++) { stu[i].display(); sum+=stu[i].deg; } cout<<"thesumis: "< aver=avg(sum); cout<<"theaverageis: "< } student: : student() { no=0; name=(char*)malloc(sizeof(char)*8); deg=0; } student: : ~student() { free(name); } voidstudent: : display() { cout< } staticintavg(intsum) { intaver; aver=sum/num; returnaver; } 3、应用C++的多态性编写一个程序,编写程序计算正方体、球体和圆柱体的表面积和体积。 答: #include usingnamespacestd; #definen3.14 classShuju{ public: virtualvoidbiaomianji()=0; virtualvoidtiji()=0; }; classzhengfangti: publicShuju{ public: zhengfangti(inta){this‐>a=a;} voidbiaomianji(); voidtiji(); private: inta }; voidzhengfangti: : biaomianji() {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 09 考试 批次 面向 对象 程序设计 作业
![提示](https://static.bdocx.com/images/bang_tan.gif)