已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验2 类和对象(1)班级 学号 姓名 成绩 一实验目的1 掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;2 掌握类对象的定义,对象的初始化;3 理解类的成员的访问控制的含义,公有、私有和保护成员的区别;4 掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数;二实验内容1分析找出以下程序中的错误,说明错误原因,给出修改方案使之能正确运行。#includeclass one int a1,a2; public:one(int x1=0, x2=0);void main()one data(2,3); coutdata.a1endl; coutdata.a2endl;2分析以下程序的错误原因,给出修改方案使之能正确运行。#include class Amplifier float invol,outvol;public: Amplifier(float vin,float vout) invol=vin;outvol=vout; float gain(); Amplifier:float gain() return outvol/invol; void main() Amplifier amp(5.0,10.0); coutgain()endl;3定义盒子Box类,要求具有以下成员:可设置盒子形状;可计算盒子体积;可计算盒子的表面积。4定义计数器类Counter。要求具有以下成员:计数器值;可进行增值和减值记数;可提供记数值。5编写一个程序计算两个给定的长方形的周长和面积。6编写一个程序,采用一个类求n!,并输出10!的值。7编写一个程序,设计一个Cdate类,它应该满足下面的条件:1)用这样的格式输出日期:日-月-年;2)输出在当前日期上加两天后的日期;3)设置日期。三、实验源程序、测试与结论1. 分析:出错原因:构造函数one(int x1=0, x2=0);没有给x1,x2付值。(coutdata.a1endl; coutdata.a2endl;)main()函数中直接调用class one类的私有成员错误。修改方案:#includeclass one int a1,a2; public: one(int x1=0,int x2=0) a1=x1; a2=x2; one() couta1endl; couta2endl; ;void main() one data(2,3); 测试数据截图:2. 分析:出错原因:Amplifier:float gain() 类体外定义格式错误,main()函数输出gain()错误。修改方案:#include class Amplifier float invol,outvol;public: Amplifier(float vin,float vout) invol=vin;outvol=vout; float gain();float Amplifier:gain() return outvol/invol; void main() Amplifier amp(5.0,10.0); coutamp.gain()endl;测试数据截图:3.代码:方案一:#include#include#define pi 3/声明常量pi为using namespace std;class Box /定义为box的类private:double heights; /若干成员double widths;double lengths;double area;public: void create_data(double length,double height,double width=0) /数据创建函数 heights=height; widths=width; lengths=length; double creat_area(int n) /底面积函数 area=double(n)/(4*tan(pi/n)*lengths*lengths; /针对正多边形的面积公式 return 2*area+n*lengths*heights; /返回表面积 double creat_bulk() /体积函数 return area*heights; double creat_area_oblong() /普通的四边形的面积 return 2*(widths*lengths+heights*lengths+heights*widths); double creat_bulk_oblong() /普通四边形的体积 return heights*widths*lengths;void main() Box T; int i=1,a; double l,h,w; coutttt欢迎进入BOX计算应用endl; system(title BOX盒子计算应用); while(i) /循环 cout3:底面的边数):; cina; if(a4) /判断输入的正确性 coutaaa输入错误!endl; /发出错误警告 cin.clear(); /清除fail状态 cin.sync(); /清除缓冲区 if(a=4) /进入普通底面为四边形的盒子的计算 coutlwh; T.create_data(l,h,w); cout该盒子的表面积为:T.creat_area_oblong()endl; cout该盒子的体积为:T.creat_bulk_oblong()4) /进入底面积为正多边形的盒子的计算 coutlh; T.create_data(l,h); cout底面为正a边形的盒子的表面积为:T.creat_area(a)endl; cout底面为正a边形的盒子的体积为:T.creat_bulk()endl; couti; system(pause);测试数据截图:方案二:简单的盒子计算#includeusing namespace std;class Box /定义为box的类private:double heights; /若干成员double widths;double lengths;double area;public: void create_data(double length,double width,double height) /数据创建函数 heights=height; widths=width; lengths=length; double creat_area() /四边形的面积 return 2*(widths*lengths+heights*lengths+heights*widths); double creat_bulk() /四边形的体积 return heights*widths*lengths;void main() Box T; int i=1; double l,h,w; coutttt欢迎进入BOX计算应用endl; system(title BOX盒子计算应用); while(i) /循环 coutlwh; T.create_data(l,w,h); cout面积为:T.creat_area()endl; cout体积为:T.creat_bulk()endl; couti; system(pause);4. 代码:方案一:#include /声明头文件#include /包含Sleep() 用于起停顿作用#include /包含kbhit函数 #include using namespace std;class counter /定义counter类 double count; public: void counte(double c)count=c; void variation(int i); void again();void counter:variation(int i) / cout当输入变量后每隔1秒将自动增减,键盘按任意键可停止!endl; couttttt计数正在进行loading.原始数据:; coutsetprecision(15)count; int j=0;while(!_kbhit() Sleep(1000); coutr; count+=i; j+; coutsetprecision(15)count;coutr已计数j次,此时的数值为:countendl; void counter:again() double data;int choose,m,l=1; coutdata; counte(data); coutt 1:计数增减量endlt 2:重新开始endlt 0:退出endl; coutchoose; if(choose=0&choose=4&!cin.fail() while(l) switch(choose) case 1: coutm;variation(m);coutl;break; case 2:coutendl;again();l=0;break; case 0: l=0;exit(0); else cout输入有误!aendl; void main() int k;counter T; system(title 计算应用); couttttt计数器应用endl; while(k) T.again();coutk; system(pause);测试数据截图:方案二:#include#includeusing namespace std;class Counter static int num; int data100;public: void create(); void show();int Counter:num=0;void Counter:create() int a,b; couta; if(a0) cout请输入你的数值endl; for(int i=0;ib; datai+num=b; num+=a; if(a0&num=0)|(anum) cout输入错误,计数器内没有可减的数值或超出可减范围!endl; if(a0&num!=0&-a=num) num+=a; cout你已减少了-a个数值endl; if(a=0) exit (0); void Counter:show() cout现在有num个数值endl; for(int i=0;inum;i+) coutdatait; if(i10)coutendl;void main() Counter T; int k=1; system(title 计数器); while(k) T.create (); T.show (); coutendl; coutk; system(pause);测试数据截图:5.代码:#includeusing namespace std;class oblong /定义长方形的类private: float wides,lengths; /成员周长和面积public: oblong(float wide,float length) /构造函数 wides=wide; lengths=length;oblong() /析构函数 cout该长方形的周长为:2*(wides+lengths)endl该长方形的面积为:wides*lenlengthsendl; ;void main() float a,b;int i=0; system(title 长方形计算); while(i2) cout请输入第i+1ab; oblong:oblong(a,b); i+; coutendl; system(pause);测试数据截图:6.代码:#include#includeusing namespace std;class fact /定义阶乘的类 long double facts; int numbers; public: fact(int number) /构造函数 numbers=number; facts=1; for(int i=1;i=number;i+) facts=facts*i; fact() /析构函数 coutnumbers的阶乘为:setprecision(20)factsendl;void main() int a; system(title 阶乘计算); couta; fact:fact(a);system(pause);测试数据截图:7.代码:#include#include #define N 2using namespace std;class Cdate int year,month,day,k; public: void setcalendar(int years,int months,int days) year=years;month=months;day=days; void setyear(); void setmonth(); void putout() cout两天后的日期是:day日-month月-year年endl; int result()return k; ;void Cdate:setyear() if(year%4=0) coutyear年是闰年endl; k=0;if(month=12&(day=31|day=30) year+=1;month=1;k=1; if(day=30) day=1; else day=2;void Cdate:setmonth() if(month=1|month=3|month=5|month=7|month=8|month=10|month=12) for(int i=0;iN;i+) if(day31) day+; else month+=1; day=1; if(month=4|month=6|month=9|month=11) for(int i=0;iN;i+) if(day30) day+; else month+=1; day=1; if(year%4=0&month=2) for(int i=0;iN;i+) if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品生命周期管理效果总结
- 一标准的论文格式字体要求
- 日语系本科毕业论文排版格式-论文格式-
- 对论文的学术评语
- 基于价值链的营销战略成本管理-以小米科技为例
- 毕业论文开题报告主要研究内容怎么写
- 毕业论文格式范本
- 合并高血压患者围手术期血压调控方案
- 《我遇见了神仙》小品剧本润色版本
- 合并营养不良胃癌患者术前营养支持疗程优化方案
- 【微整形注射的基本操作】注射基本操作、护理及并发症
- 胸腔闭式引流术临床技能操作指南
- 水平一(二年级)一带一跳-跳短绳教学设计
- 低压单体设备的停送电操作规程
- 幼儿园讲故事小鸭子找朋友
- 眼眶病眼眶肿瘤七制讲课4
- 2023年小升初英数题附答案
- GB/T 34940.2-2017静态切换系统(STS)第2部分:电磁兼容性(EMC)要求
- GB/T 21198.4-2007贵金属合金首饰中贵金属含量的测定ICP光谱法第4部分:999‰贵金属合金首饰贵金属含量的测定差减法
- 第六章分子的结构与性质
- 大学英语-My Stroke of Luck优秀课件
评论
0/150
提交评论