2015面向对象程序设计结课作业答案(共6页).doc
精选优质文档-倾情为你奉上考试批次面向对象程序设计结课作业北京语言大学网络教育学院面向对象程序设计结课作业注意:本学期所布置的结课作业,请同学一律按照以下要求执行:一、学生必须预约才能在学生平台看见相关课程的“结课作业”按钮;二、提交路径:个人平台首页-学习中的课程,点击该课程名称-点击“结课作业”-点击“浏览”按钮,选择要上传的文档后点击“提交作业”即可。三、结课作业提交起止时间:2015年1月26日3月22日。(届时平台自动关闭,逾期不予接收。)四、提交的文档格式必须为word文档,截止日期前可多次提交,平台只保留最后一次提交的文档;五、严格按照课程名称提交相应课程结课作业,提交错误的结课作业,按0分处理。一、【程序分析题】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题30分,本题要求读懂题目中的程序或函数,写出程序或函数的功能)1、#include<iostream.h> void main() int i,s=0; for(i=2;i<=30;i+=2) s+=i*i; cout<<"s="<<s<<endl; 1、答:程序的功能是:计算并输出22+42+62+302的值2、int s1(int n) int x; if(n=1) x=1; else x=s1(n-1)+n*n; return x; 3、void fun5(char* a, const char* b) while(*b) *a+=*b+; *a=0; 4、void fun3(int aN, int m, int n, int& row, int& col) int x=a00; row=col=0; for(int i=0;i<m;i+) for(int j=0;j<n;j+) if(aij>x) x=aij; row=i; col=j; 5、char* f8(char* str1, const char* str2) int i=0,j=0; while(str1i) i+; while(str2j) str1i+=str2j+ ; str1i='0' return str1; 二、【编写程序实现算法】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题30分,根据题目要求编写算法实现,要求程序没有语法错误)1、按照函数原型语句“void p(int n);”编写一个递归函数显示出如下图形,此图形是n=5的情况。5555544443332211、 答:#include<stdio.h>void p(int n)if(n=1)printf("1n");return;elsefor(int i=1; i<=n; i+)printf("%d",n);printf("n");p(n-1);void main()p(5);2、按照函数原型语句“void p(int n);”编写一个递归函数显示出如下图形,此图形是n=5的情况。1223334444555553、按照下面函数原型语句编写一个递归函数计算出数组a中n个元素的平方和并返回。int f(int a,int n);4、根据下面类中MaxMin 函数成员的原型和注释写出它的类外定义。class AA int* a;int n;int MS;public:void InitAA(int aa, int nn, int ms) if(nn>ms) cout<<"Error!"<<endl; exit(1);MS=ms;n=nn;a=new intMS;for(int i=0; i<n; i+) ai=aai;int MaxMin(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 <iostream> #include <string> using namespace std; int main() string bookName;string magazineName; string a100,b100; int bookNumber; int magazineNumber; int i=0,j=0,c,d; do cout<<"请输入图书的名称:"<<endl; cin>>bookName; cout<<"请输入图书销售的数量:"<<endl; cin>>bookNumber; if (bookNumber>500) ai=bookName; i+; cout<<"请问还有图书需要输入吗?有请按1,没有请按0"<<endl; cin>>c; while(c=1); do cout<<"请输入杂志的名称:"<<endl; cin>>magazineName; cout<<"请输入杂志销售的数量:"<<endl; cin>>magazineNumber; if (magazineNumber>2500) bj=magazineName; j+; cout<<"请问还有杂志需要输入吗?有请按1,没有请按0"<<endl; cin>>d; while(d=1); cout<<"销售良好的图书有:"<<endl; for(int k=0;k!=i;k+) cout<<ak<<'n' cout<<"销售良好的杂志有:"<<endl; for(int x=0;x!=j;x+) cout<<bx<<'n' return 0; system("pause"); 5、一名兽医要记录他所治疗的各种类型的狗以及治疗信息,尤其想了解不同的病症对带斑点的狗和不带斑点的狗所产生的影响。为该兽医设计一个程序,要求记录狗的品种(breed),身高(height),体重(weight),颜色(color)等信息。为斑点狗和不带斑点的狗设计不同的类。下面的程序使用你设计的类。 void main() / 定义一个白色的Dalmatian斑点狗,它身高24,体重60,斑点为红色 spotted_dog redSpot("Dalmatian",24,60,"white","red"); /定义一个黄色的Labrador无斑点狗,它身高30,体重40unspotted_dog rover("Labrador Retriever",30,40,"yellow"); redSpot.show_name(); /显示狗名 redSpot.show_breed(); /显示狗品种 redSpot.spot_info(); /显示狗斑点信息 rover.show_name(); /显示狗名 rover.show_breed(); /显示狗品种 专心-专注-专业