版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、考试批次面向对象程序设计结课作业学生姓名 学习中心 学号 专 业 年级层次北京语言大学网络教育学院面向对象程序设计结课作业注意:本学期所布置的结课作业,请同学一律按照以下要求执行:1) 结课作业提交起止时间:2017年8月2日-9月11日。(届时平台自动关闭,逾期不予接收。)2) 结课作业课程均需通过“离线作业”栏目提交电子版,学院不收取纸介的结课作业,以纸介回寄的作业一律视为无效;3)截止日期前可多次提交,平台只保留最后一次提交的文档,阅卷时以最后一次提交的结课作业为准,截止日期过后将关闭平台,逾期不交或科目提交错误者,按0分处理;4) 提交文档要求:提交的文档格式为doc、rar,大小10
2、M以内;5) 必须严格按照每门课程的答题要求完成作业,没有按照学院要求来做的结课作业,将酌情扣分。一、【程序分析题】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题30分,本题要求读懂题目中的程序或函数,写出程序或函数的功能)1、#include void main() int i,s=0; for(i=2;i=30;i+=2) s+=i*i; couts=sendl; 答:计算并输出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、S1求得12+22+32+.+n2的值3、void fun5(char* a, const char* b) while(*b) *a+=*b+; *a=0; 答:实现字符串系统函数strcpy的功能把b所指的字符串拷贝到a所指的字符数组空间中4、void fun3(int aN, int m, int n, int& row, int& col) int x=a00; row=col=0; for(int i=0;im;i+) for(int j=0;jx) x=aij; row=i; col=j; 答:函数的功能是:找出数组中最大数所在的行和列5、char* f8(char* str1,
4、const char* str2) int i=0,j=0; while(str1i) i+; while(str2j) str1i+=str2j+ ; str1i=0; return str1; 答:函数的功能是:把str2 链接到str1后面。二、【编写程序实现算法】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题30分,根据题目要求编写算法实现,要求程序没有语法错误)1、按照函数原型语句“void p(int n);”编写一个递归函数显示出如下图形,此图形是n=5的情况。555554444333221答:void p(int n) if(n!=0) for(int i=0;
5、 in; i+) coutn;coutendl;p(n-1);2、按照函数原型语句“void p(int n);”编写一个递归函数显示出如下图形,此图形是n=5的情况。122333444455555答:void p(int n)if(n=1) printf(1n);return;elsep(n-1);for(int i=1; i=n; i+)printf(%d,n);printf(n);void main()p(5);3、按照下面函数原型语句编写一个递归函数计算出数组a中n个元素的平方和并返回。int f(int a,int n);答:int f(int a,int n)if(nms) cou
6、tError!endl; exit(1);MS=ms;n=nn;a=new intMS;for(int i=0; in; i+) ai=aai;int MaxMin(int& x, int& y); /从数组a的前n个元素中求出 /最大值和最小值,并分别由引用参数x和y带回, /同时若n大于0则返回1,否则返回0。;答:intAA:MaxMin(int&x,int&y) intmx,my; mx=my=a0;for(inti=1;imx)mx=ai;if(ai0)return1;elsereturn0; 5、如果A和B都是m行n列矩阵,且它们对应元素相等,则A= =B。试定义矩阵类,对“= =
7、”运算符重载。答:#includeusing namespace std;const int M=3;const int N=3;class Matrix private:int XMN;public:friend int operator=(Matrix &A,Matrix &B);int operator=(Matrix *A,Matrix *B) int i,j;for(i=0;iM;i+)for(j=0;jN;j+)if(Aij!=Bij)return 0;return 1;三、【程序设计题】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题40分,根据题目要求编写完整程序
8、实现,要求程序能够正常运行,没有语法错误)1、编写一个程序,计算三角形、正方形和圆形三种图形的面积和周长。(用多态性实现)答:#include#include using namespace std;class Shapeprivate:public:virtual double S() = 0;virtual double C() = 0;class Tri: public Shapeprivate:double r1,r2,r3;public:Tri(double d1 = 0, double d2 = 0, double d3 = 0):r1(d1),r2(d2),r3(d3);doub
9、le S()return(sqrt(0.5*(r1 + r2 + r3)*0.5*(r1 - r2 + r3)*0.5*(r1 + r2 - r3)*0.5*(- r1 +r2 + r3);double C() return (r1 + r2 + r3);class Qua: public Shapeprivate:double side;public:Qua(double ss):side(ss);double S()return (ss * ss);double C() return (4 * ss);class Cir: public Shapeprivate:double rad;pu
10、blic:Cir(double dd):rad(dd);double S() return (3.14 * rad * rad);double C() return (2 * 3.14 * rad); int main()Shape* a = new Tri(3,4,5);Shape* b = new Cir(2);Shape* d= new Qua(4);cout C() endl;cout S() endl;cout C() endl;cout S() endl;cout C() endl;cout S() endl;return 0;2、已有若干个学生数据,包括学号、姓名、成绩,编写程序
11、要求输出这些学生数据并计算平均分。答:#include#include class studentpublic:int no;char *name;int deg;student();student();void display();static int sum,num=3;static int avg(int sum);void main()int aver;student stu3;stu0.no=1;=li; stu0.deg=89;stu1.no=2;=chen;stu1.deg=78;stu2.no=3;=zheng;stu2.d
12、eg=94;for(int i=0;i3;i+)stui.display();sum+=stui.deg;coutthe sum is:aver=avg(sum);coutthe average is:student:student()no=0;name=(char*)malloc(sizeof(char)*8);deg=0;student:student()free(name);void student:display()coutstatic int avg(int sum)int aver;aver=sum/num;return aver;3、应用C的多态性编写一个程序,编写程序计算正方体
13、、球体和圆柱体的表面积和体积。答:#includeusing namespace std;#define n 3.14class Shuju public:virtual void biaomianji()=0;virtual void tiji()=0;class zhengfangti:public Shuju public:zhengfangti(int a)thisa=a;void biaomianji();void tiji();private:int a;void zhengfangti:biaomianji()cout正方形的表面积为6*a*aendl;void zhengfan
14、gti:tiji()cout正方形的体积为a*a*ab=b;void biaomianji();void tiji();private:int b;void qiuti:biaomianji() cout球体的表面积为4*n*b*bendl;void qiuti:tiji() cout球体的体积为(4.0/3.0)*n*b*b*br=r;thisd=d;void biaomianji();void tiji();private:int r,d; void yuanzhuti:biaomianji()cout圆柱体的表面积为2*n*r*r+2*n*r*dendl;void yuanzhuti:t
15、iji()cout圆柱体的体积为n*r*r*dbiaomianji();void fun1(Shuju *ptr)ptrtiji();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本以上)的图书和杂志名称显示出来。答:#includ
16、e #include 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请输入图书的名称:bookName;cout请输入图书销售的数量:bookNumber;if (bookNumber500) ai=bookName;i+; cout请问还有图书需要输入吗?有请按 1,没有请按 0c;while(c=1);do cout请输入杂志的名称:magazineName
17、;cout请输入杂志销售的数量:magazineNumber;if (magazineNumber2500) bj=magazineName;j+;cout请问还有杂志需要输入吗?有请按 1,没有请按 0d;while(d=1);cout销售良好的图书有:endl;for(int k=0;k!=i;k+)coutakn;cout销售良好的杂志有:endl;for(int x=0;x!=j;x+)coutbxn;return 0;system(pause);5、一名兽医要记录他所治疗的各种类型的狗以及治疗信息,尤其想了解不同的病症对带斑点的狗和不带斑点的狗所产生的影响。为该兽医设计一个程序,要求
18、记录狗的品种(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.
19、show_breed(); /显示狗品种 redSpot.spot_info(); /显示狗斑点信息 rover.show_name(); /显示狗名 rover.show_breed(); /显示狗品种 答:#includeusing namespace std;class unspotted_dog/定义无斑点的狗作为基类char breed20, color10; /定义字符数组,存放狗的品种和颜色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_bre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年能源管理系统开发合同协议
- 2025-2030中国棉及化纤纺织加工市场经营现状与未来营销发展趋势研究报告
- 高中生对地图导航算法偏见对出行选择影响的研究课题报告教学研究课题报告
- 2026年研究生入学考试政治英语数学逻辑试题及答案
- 初中生通过地理实验研究沙尘暴形成原因的课题报告教学研究课题报告
- 大学计算机编程中项目式学习效果评价研究教学研究课题报告
- 2025-2030中国健康服务行业发展分析及发展趋势研究报告
- 全国一级建造师建设工程经济管理测试题库及参考答案
- 建筑项目进度管理实务操作指南
- 2025-2030日用化工产品消费升级趋势调研发展策略方案
- (正式版)SHT 3046-2024 石油化工立式圆筒形钢制焊接储罐设计规范
- JJF 1033-2023 计量标准考核规范
- 《胆石通利胶囊新》课件
- 院感科对导尿管相关尿路感染核心防控措施执行率低原因分析品管圈鱼骨图柏拉图
- JGJ114-2014 钢筋焊接网混凝土结构技术规程
- (完整版)溢洪道工程施工方案
- 增资先决条件确认函
- 磷酸工艺知识
- GB/T 3906-20203.6 kV~40.5 kV交流金属封闭开关设备和控制设备
- 2023年电大当代中国政治制度机考拼音排版绝对好用按字母排序
- GB 39669-2020牙刷及口腔器具安全通用技术要求
评论
0/150
提交评论