欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    面向对象程序设计实验项目及答案资料.docx

    • 资源ID:16844341       资源大小:38.92KB        全文页数:64页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    面向对象程序设计实验项目及答案资料.docx

    1、面向对象程序设计实验项目及答案资料实验一 C+面向过程练习(一) (2学时) 实验目的和要求:1. 掌握C程序的基本格式与规范,学会编写简单的C程序。2. 理解C程序的结构和特点。3. 熟悉C程序基本的输入和输出操作。4. 掌握C数据类型、常量和变量以及修饰符的使用方法。5. 掌握C的各种流程控制语句的使用。6. 熟悉C语言实验环境,能够在VC6.0环境下调试与运行程序。 实验内容:7. 求解方程在复数域上的解,a,b,c由终端输入。注意分析的全面性。#include#includeusing namespace std;int main() double a,b,c,d,e,m,n; cou

    2、ta; coutb; coutc; while(1) if(a=0) m=-b/c; coutx1=x2=m=0) e=sqrt(d); m=(-b+e)/(2*a); n=(-b-e)/(2*a); if(m!=n) coutx1=mendlx2=nendl; else coutx1=x2=mendl; else e=sqrt(-d); m=-b/(2*a); n=e/(2*a); coutx1=m+niendl; coutx2=m-niendl; couta; coutb; coutc; return 0;8. 猴子吃桃子问题:一天一只小猴子摘下一堆桃子,当即吃掉一半,还觉得不过瘾,又多吃

    3、了一个。第二天接着吃了前一天剩下的一半,馋不忍罢又多吃了一个。以后每天如此。到第十天小猴子去吃时,只剩下一个桃子了。问小猴子共摘下了多少个桃子。 #includeusing namespace std;int f(int n);int main() coutf(1)endl; return 0;int f(int n) if(n=10) return 1; else return (f(n+1)+1)*2;9. 用,求e之值,直到为止。#includeusing namespace std;int fact(int n);int main() int i=1; double sum=1,a;

    4、do a=1./fact(i); sum+=a; i+; while(a0.000001); coute=sumendl;int fact(int n) if(n=1) return 1; else return fact(n-1)*n; 实验二C+面向过程练习(二)(2学时) 实验目的和要求:10. 掌握一维数组、二维数组的定义与使用。11. 掌握函数定义、函数调用和函数说明的方法。12. 掌握函数递归调用的概念和使用方法。 实验内容:13. 编程求若干个整数中的最大和次大,最小和次小这四个数。#includeusing namespace std;# define M 100int mai

    5、n() int aM,n,t; cinn; for(int k=0;kak; for(int i=1;in;i+) for(int j=0;jaj+1) t=aj; aj=aj+1; aj+1=t; coutmax=an-1 cmax=an-2endl; coutmin=a0 cmin=a1endl; return 0;14. 由键盘输入两个整数,试编写两个函数分别求出这两个数的最大公约数和最小公倍数。#includeusing namespace std;int main() int m,n,t,lcm,gcd; cinmn; if(m=0|n=0) coutm = 0 or n = 0en

    6、dl; else if(mn) t=m; m=n; n=t; gcd=m; while(gcd%n!=0) gcd+=m; lcm=gcd/(m*n); coutlcm=lcmendlgcd=gcdendl; return 0; 15. 编写一个递归函数void reverse(int a,int n),将数组a中的数倒置。如a数组原来为:1 2 3 4 5,则调用reverse函数后,a数组内容变为:5 4 3 2 1。#includeusing namespace std;const int M=100;void reverse(int a,int n);int main() int aM

    7、,n; cinn; for(int i=0;iai; reverse(a,n); coutendl; return 0;void reverse(int a,int n) if(n!=0) n-; reverse(&a1,n); couta0 ; return;实验三 C+在非面向对象方面的扩充(2学时) 实验目的和要求:16. 掌握函数重载的方法及定义重载函数时的注意事项。17. 掌握函数缺省参数的使用。18. 掌握指针的定义及使用方法,理解void型指针。19. 理解动态内存分配意义,掌握new和 delete使用方法。20. 掌握引用的声明方法及使用。21. 掌握const修饰符及其内联

    8、函数的使用。22. 熟悉C+在非面向对象方面的其他扩充特性。 实验内容:23. 编写10个重载函数max,分别求两个整数、实数、双精度数、字符及三个整数、单精度数、双精度数、字符中的最大数。#includeusing namespace std;int max(int x,int y) return xy?x:y;int max(int x,int y,int z) int t=xy?x:y; return tz?t:z;float max(float i,float j) return ij?i:j;float max(float i,float j,float k) float s=ij?

    9、i:j; return sk?s:k;double max(double m,double n) return mn?m:n;double max(double m,double n,double o) double l=mn?m:n; return lo?l:o;char max(char p,char q) return pq?p:q;char max(char p,char q,char r) char v=pq?p:q; return vr?v:r;int main() int x,y,z,t; float i,j,k; double m,n,o; char p,q,r; cout1.

    10、两个整数比较大小endl2.两个单精度数比较大小endl3.两个双精度数比较大小endl4.两个字符比较大小endl; cout5.三个整数比较大小endl6.三个单精度数比较大小endl7.三个双精度数比较大小endl8.三个字符比较大小endl; while(1) coutt; switch(t) case 1: cinxy; coutmax(x,y)ij; coutmax(i,j)mn; coutmax(m,n)pq; coutmax(p,q)xyz; coutmax(x,y,z)ijk; coutmax(i,j,k)mno; coutmax(m,n,o)pqr; coutmax(p,q

    11、,r)endl;break; return 0;24. 编写函数void add1(int sum),void add2(int * sum),void add3(int & sum),功能如下:输入若干个整数,以0结束,并用参数sum返回这若干个整数之和。在主程序中分别调用这三个函数,观察结果,总结值传递和地址传递的规律。 #include#includeusing namespace std;void add1(int sum) int i; while(i!=0) cini; sum+=i; void add2(int *p) int i; while(i!=0) cini; *p+=i

    12、; void add3(int &sum) int i; while(i!=0) cini; sum+=i; int main() int sum1=0,sum2=0,sum3=0; int *p; p=&sum2; add1(sum1); add2(p); add3(sum3); coutsum1endlsum2endlsum3endl; return 0; 25. 矩阵中填数:当给出 N*N 的矩阵,要求用程序填入下列形式的数:(1)S形填数,例如N=5 (2)回转填数,例如N=51234510987611121314152019181716 21222324251234516171819

    13、6152425207142322218131211109 要求:用new和delete动态分配空间(提示:可用一维数组来表示二维数组)。#include#includeusing namespace std;int row,temp;void gorigh(int *q,int &m,int &a) for(temp=0;temprow;temp+) if(qa*row+temp=0) qa*row+temp=m+; a+;void godown(int *q,int &m,int &b) for(temp=0;temp0;temp-) if(qc*row+temp=0) qc*row+tem

    14、p=m+; c-;void goup(int *q,int &m,int &d) for(temp=row-1;temp0;temp-) if(qtemp*row+d=0) qtemp*row+d=m+; d-;int main() int a,b,c,d,m,n=100; for(a=1;a=n;a+) coutrow; int *p=new int row*row; m=1; for(a=0;arow*row;a+) pa=0; a=d=0; c=b=row-1; while(m=row*row) gorigh(p,m,a); godown(p,m,b); goleft(p,m,c); g

    15、oup(p,m,d); cout回旋方阵:endl; for(a=0;a0) coutendl; for(b=0;brow;b+) coutsetw(3)pa*row+b; coutendl; for(a=0;arow*row;a+) pa=0;d=1;b=1; for(a=0;arow;a+) if(b=1) for(c=0;c=0;c-) pa*row+c=(d+); b=-b; coutS形方阵:endl; for(a=0;a0) coutendl; for(b=0;brow;b+) coutsetw(3)pa*row+b; coutendl; delete p; return 0; 实

    16、验四 类与对象(一)(4学时) 实验目的和要求:26. 掌握类、类的数据成员、类的成员函数的定义方式。27. 理解类成员的访问控制方式。28. 掌握对象的定义和操作对象的方法。29. 理解和掌握构造函数、析构函数、拷贝构造函数的定义与执行过程。30. 掌握重载构造函数的方法。31. 理解浅拷贝与深拷贝。32. 了解对象的生存期。 实验内容:33. 设计三个图形类:Circle(圆)、Rectangle(矩形)、Triangle(三角形),要求:(1) Circle 类基本信息:圆心坐标、半径;Rectangle 类基本信息:长、宽;Triangle 类基本信息:三个顶点坐标;其中:成员变量为

    17、private 属性,成员函数为public 属性。(2) 为Circle类设计缺省的构造函数,并用init成员函数进行数据成员的初始化。(3) 为其余两个类设计多个构造函数:无参、带参、参数值缺省的构造函数。(4) 每个图形类有计算图形的面积GetArea(),计算图形的周长GetPerimeter(),显示图形的基本信息函数Show(),修改基本信息的函数Set(形参)。以Circle 类为例:通过GetArea()计算圆的面积,GetPerimeter()计算圆的周长,Show()函数中显示圆心坐标、直径、周长、面积等基本信息;Set(int x,int y, int r)函数可以修改圆

    18、心坐标和半径。(5) 注意多个构造函数的声明方式与定义的实现。(6) 当输入数据为不合理数据时(例如:输入的三角形的顶点是否能组成一个三角形),提示用户输入错误。#includeusing namespace std;#includeclass Circlepublic: void setCircle(int a,int b, int c) x=a;y=b;r=c; double GetArea(int a=0,int b=0, int c=0) return 3.14*c*c; double GetPerimeter(int a,int b, int c) return 2*3.14*c;

    19、void showCircle() cout圆的坐标为:(x,y)endl; cout圆的直径为:2*rendl; coutArea=GetArea(x,y,r) Perimeter=GetPerimeter(x,y,r)width=wid; / Rectangle double Area(double len,double wid) return len*wid; double Perimeter(double len,double wid) return 2*(len+wid); void showRectangle() coutArea=Area(length,width) Perime

    20、ter=Perimeter(length,width)endl; private: double length,width;class Trianglepublic: void setTriangle(double x,double y,double r) a=x;b=y;c=r; double getArea(double x,double y,double r) return sqrt(x+y+r)/2)*(x+y+r)/2-x)*(x+y+r)/2-y)*(x+y+r)/2-r); double getPerimeter(double x,double y,double r) retur

    21、n x+y+r; void showTriangle() cout三角形的三边分别为a=a b=b c=cendl; coutArea=getArea(a,b,c) Perimeter=getPerimeter(a,b,c)endl; private: double a,b,c;int main() int a,b,c,d,e,f,i,j,k,p; double r,s,t,m,n; cout计算 圆 请输入 : 1endl计算 矩形 请输入 : 2endl计算三角形请输入 : 3p; switch(p) case 1: Circle circle1; coutijk; circle1.set

    22、Circle(i,j,k); circle1.showCircle(); break; case 2: Rectangle rectangle1; coutmn; rectangle1.setRectangle(m,n); rectangle1.showRectangle(); break; case 3: Triangle triangle1; coutabcdef; r=sqrt(pow(a-c,2)+pow(b-d,2); s=sqrt(pow(a-e,2)+pow(b-f,2); t=sqrt(pow(c-e,2)+pow(f-d,2); triangle1.setTriangle(r,s,t); if(r+s)=t|(r+t)=s|(t+s)=r) cout对不起!您输入的三个坐标构


    注意事项

    本文(面向对象程序设计实验项目及答案资料.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开