201509考试批次《面向对象程序MATCH_
word
word文档格式规范word作业纸小票打印word模板word简历模板免费word简历
_1715445660590_0》结课作业学生姓名学习中心学习中心学号考号专业计算机科学与技术
年级
六年级体育公开课教案九年级家长会课件PPT下载六年级家长会PPT课件一年级上册汉语拼音练习题六年级上册道德与法治课件
层次专科起点本科北京语言大学网络教育学院《面向对象程序设计》结课作业注意:本学期所布置的结课作业,请同学一律按照以下要求执行:一、学生必须预约才能在学生平台看见相关课程的“结课作业”按钮;二、提交路径:个人平台首页--学习中的课程,点击该课程名称--点击“结课作业”--点击“浏览”按钮,选择要上传的文档后点击“提交作业”即可。三、结课作业提交起止时间:2015年8月1日—9月7日。(届时平台自动关闭,逾期不予接收。)四、提交的文档格式必须为word文档,截止日期前可多次提交,平台只保留最后一次提交的文档;五、严格按照课程名称提交相应课程结课作业,提交错误的结课作业,按0分处理。 一、【程序分析题】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题30分,本题要求读懂题目中的程序或函数,写出程序或函数的功能)1、#include<iostream.h>voidmain(){inti,s=0;for(i=2;i<=30;i+=2)s+=i*i;cout<<"s="<<s<<endl;}答:程序的功能是:计算并输出22+42+62+„„+302的值2、ints1(intn){intx;if(n==1)x=1;elsex=s1(n-1)+n*n;returnx;}答:函数的功能是:通过递归调用函数S1求得1+22+32+….+n2的值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<m;i++)for(intj=0;j<n;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的情况。555554444333221答:voidp(intn){if(n!=0){for(inti=0;i<n;i++)cout<<n;cout<<endl;p(n-1);}}2、按照函数原型语句“voidp(intn);”编写一个递归函数显示出如下图形,此图形是n=5的情况。122333444455555voidp(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);int f(int a[],int n) {if(n<=0) return 0; else return(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!"<<endl;exit(1);}MS=ms;n=nn;a=newint[MS];for(inti=0;i<n;i++)a[i]=aa[i];}intMaxMin(int&x,int&y);//从数组a的前n个元素中求出//最大值和最小值,并分别由引用参数x和y带回,//同时若n大于0则返回1,否则返回0。};答:int AA::MaxMin(int& x, int& y) { int mx,my; mx=my=a[0]; for(int i=1; i<n; i++) { if(a[i]>mx) mx=a[i]; if(a[i]<my) my=a[i]; } x=mx; y=my; if(n>0) return 1; else return 0; }5、如果A和B都是m行n列矩阵,且它们对应元素相等,则A= =B。试定义矩阵类, 对“= =”运算符重载。 #include<iostream> using namespace std; const int M=3; const int N=3; class Matrix { private: int X[M][N]; public: friend int operator==(Matrix &A,Matrix &B); }; int operator==(Matrix *A,Matrix *B) { int i,j; for(i=0;i<M;i++) for(j=0;j<N;j++) { if(A[i][j]!=B[i][j]) return 0; } return 1; } 三、【程序设计题】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题40分,根据题目要求编写完整程序实现,要求程序能够正常运行,没有语法错误)1、编写一个程序,计算三角形、正方形和圆形三种图形的面积和周长。(用多态性实现)#include#include<iostream>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<<a->C()<<endl;cout<<a->S()<<endl;cout<<b->C()<<endl;cout<<b->S()<<endl;cout<<d->C()<<endl;cout<<d->S()<<endl;return0;};2、已有若干个学生数据,包括学号、姓名、成绩,编写程序要求输出这些学生数据并计算平均分。#include#include<iostream>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++的多态性编写一个程序,编写程序计算正方体、球体和圆柱体的
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
面积和体积。 #include<iostream> using namespace std; #define n 3.14 class Shuju { public: virtual void biaomianji()=0; virtual void tiji()=0; }; class zhengfangti:public Shuju { public: zhengfangti(int a){this‐>a=a;} void biaomianji(); void tiji(); private: int a }; void zhengfangti::biaomianji() { cout<<"正方形的表面积为"<<6*a*a<<endl; } void zhengfangti::tiji() { cout<<"正方形的体积为"<<a*a*a<<endl; } class qiuti:public Shuju { public: qiuti(int b){this‐>b=b;} void biaomianji(); void tiji(); private: int b }; void qiuti::biaomianji() { cout<<"球体的表面积为"<<4*n*b*b<<endl; } void qiuti::tiji() { cout<<"球体的体积为"<<(4.0/3.0)*n*b*b*b<<endl; } class yuanzhuti:public Shuju { public: yuanzhuti(int r,int d){this‐>r=r;this‐>d=d;} void biaomianji(); void tiji(); private: int r,d; }; void yuanzhuti::biaomianji() { cout<<"圆柱体的表面积为"<<2*n*r*r+2*n*r*d<<endl; } void yuanzhuti::tiji() { cout<<"圆柱体的体积为"<<n*r*r*d<<endl; } void fun(Shuju *ptr) { ptr‐>biaomianji(); } void fun1(Shuju *ptr) { ptr‐>tiji(); } void main() { zhengfangti zheng(3); qiuti qiu(4); yuanzhuti yuanzhu(3,4); fun(&zheng); fun1(&zheng); fun(&qiu); fun1(&qiu); fun(&yuanzhu); fun1(&yuanzhu); } 4、编写一个程序,实现图书和杂志销售管理。当输入一系列图书和杂志销售
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
后,将销售良好(图书每月售500本以上,杂志每月2500本以上)的图书和杂志名称显示出来。 #include <iostream> #include <string> using namespace std; int main() { string bookName; string magazineName; string a[100],b[100]; int bookNumber; int magazineNumber; int i=0,j=0,c,d; do { cout<<"请输入图书的名称:"<<endl; cin>>bookName; cout<<"请输入图书销售的数量:"<<endl; cin>>bookNumber; if (bookNumber>500) { a[i]=bookName; i++; } cout<<"请问还有图书需要输入吗?有请按1,没有请按0"<<endl; cin>>c; }while(c==1); do { cout<<"请输入杂志的名称:"<<endl; cin>>magazineName; cout<<"请输入杂志销售的数量:"<<endl; cin>>magazineNumber; if (magazineNumber>2500) { b[j]=magazineName; j++; } cout<<"请问还有杂志需要输入吗?有请按1,没有请按0"<<endl; cin>>d; } while(d==1); cout<<"销售良好的图书有:"<<endl; for(int k=0;k!=i;k++) cout<<a[k]<<'\n'; cout<<"销售良好的杂志有:"<<endl; for(int x=0;x!=j;x++) cout<<b[x]<<'\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,体重40 unspotted_dog rover("Labrador Retriever",30,40,"yellow"); redSpot.show_name(); //显示狗名 redSpot.show_breed(); //显示狗品种 redSpot.spot_info(); //显示狗斑点信息 rover.show_name(); //显示狗名 rover.show_breed(); //显示狗品种 } #include<iostream> using namespace std; class unspotted_dog{ //定义无斑点的狗作为基类 char breed[20], color[10]; //定义字符数组,存放狗的品种和颜色 float height, weight; public: unspotted_dog(char* br, char* co, float he, float we) //形参为字符型指针,对应实参为字符串(字符数组) { strcpy(breed, br); strcpy(color, co); height=he; weight=we; } //字符赋值得用strcpy void show_breed( ) { cout<<"Breed is: "<<breed<<endl; } //输出无斑点狗的品种 //还可定义其它函数输出身高、体重和颜色 }; class spotted_dog: public unspotted_dog{ //定义有斑点狗为无斑狗的派生类 char spot_color[10]; //斑点颜色为新增成员 public: spotted_dog(char* br, float he, float we, char* co, char* sp_co) : unspotted_dog(br, he, we, co) //初始化基类成员 { strcpy(spot_color,sp_co); } //初始化新增成员 void spot_info( ) { cout<<"spot_color is: "<<spot_color<<endl; } //输出有斑点狗的斑点颜色 }; int main(void) { spotted_dog redSpot("Dalmatian", 24, 60, "white", "red"); //定义斑点狗类的对象 unspotted_dog rover("Labrador Retriever", 30, 40, "yellow"); //定义无斑点狗类的对象 redSpot.show_name(); //显示狗名 redSpot.show_breed(); //显示狗品种 redSpot.spot_info(); //显示狗斑点信息 rover.show_name(); //显示狗名 rover.show_breed(); //显示狗品种 return 0; }