[离线作业] 北语201706批次《面向对象程序设计》(结课作业)答案

[复制链接]
发表于 2017-6-8 22:13:45 | 显示全部楼层 |阅读模式
北京语言大学网络教育学院
《面向对象程序设计》结课作业
注意:
本学期所布置的结课作业,请同学一律按照以下要求执行:
一、学生必须预约才能在学生平台看见相关课程的“结课作业”按钮;
二、提交路径:个人平台首页--学习中的课程,点击该课程名称--点击“结课作业”--点击“浏览”按钮,选择要上传的文档后点击“提交作业”即可。
三、结课作业提交起止时间:201752--619(届时平台自动关闭,逾期不予接收。)
四、提交的文档格式必须为word文档,截止日期前可多次提交,平台只保留最后一次提交的文档;
五、严格按照课程名称提交相应课程结课作业,提交错误的结课作业,按0分处理。

file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif


一、【程序分析题】(本大题共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;
        }
2int s1(int n)
       {
           int x;
           if(n==1) x=1;
           else x=s1(n-1)+n*n;
           returnx;
       }
3void fun5(char*a, const char* b)
        {
            while(*b) *a++=*b++;
            *a=0;
        }
4void fun3(inta[][N], int m, int n, int& row, int& col)
        {
            int x=a[0][0];
            row=col=0;
            for(int i=0;i<m;i++)
                for(int j=0;j<n;j++)
                    if(a[j]>x) {
                        x=a[j]; row=i; col=j;
                    }
        }
5char*f8(char* str1, const char* str2)
        {
            int i=0,j=0;
            while(str1)i++;
            while(str2[j]) str1[i++]=str2[j++] ;
            str1='\0';
            return str1;
        }
二、【编写程序实现算法】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题30分,根据题目要求编写算法实现,要求程序没有语法错误)
1按照函数原型语句“void  p(int n);”编写一个递归函数显示出如下图形,此图形是n=5的情况。
55555
4444
333
22
1
2按照函数原型语句“void  p(int n);”编写一个递归函数显示出如下图形,此图形是n=5的情况。
1
22
333
4444
55555
3按照下面函数原型语句编写一个递归函数计算出数组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 int[MS];
        for(int i=0; i<n; i++)a=aa;
    }
int MaxMin(int& x,int& y); //从数组a的前n个元素中求出
         //最大值和最小值,并分别由引用参数x和y带回,
         //同时若n大于0则返回1,否则返回0。
};
5、如果AB都是mn列矩阵,且它们对应元素相等,则A= =B。试定义矩阵类,
对“= =”运算符重载。
三、【程序设计题】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题40分,根据题目要求编写完整程序实现,要求程序能够正常运行,没有语法错误)
1、编写一个程序,计算三角形、正方形和圆形三种图形的面积和周长。(用多态性实现)
2、已有若干个学生数据,包括学号、姓名、成绩,编写程序要求输出这些学生数据并计算平均分。
3、应用C++的多态性编写一个程序,编写程序计算正方体、球体和圆柱体的表面积和体积。
4、编写一个程序,实现图书和杂志销售管理。当输入一系列图书和杂志销售记录后,将销售良好(图书每月售500本以上,杂志每月2500本以上)的图书和杂志名称显示出来。
5、一名兽医要记录他所治疗的各种类型的狗以及治疗信息,尤其想了解不同的病症对带斑点的狗和不带斑点的狗所产生的影响。为该兽医设计一个程序,要求记录狗的品种(breed),身高(height),体重(weight),颜色(color)等信息。为斑点狗和不带斑点的狗设计不同的类。下面的程序使用你设计的类。
         void main()
          {// 定义一个白色的Dalmatian斑点狗,它身高24,体重60
斑点为红色
            spotted_dogredSpot("Dalmatian",24,60,"white","red");
            //定义一个黄色的Labrador无斑点狗,它身高30,体重40
unspotted_dog rover("LabradorRetriever",30,40,"yellow");
           redSpot.show_name(); //显示狗名
           redSpot.show_breed(); //显示狗品种
           redSpot.spot_info();  //显示狗斑点信息
           rover.show_name();  //显示狗名
           rover.show_breed();  //显示狗品种
          }  

快速回复 返回顶部 返回列表