




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
说明:指导教师评分后,实验报告交院(系)办公室保存。 实验2 类及对象的封装性1实验目的及要求:1)掌握类及其成员的定义方法;2)掌握对象的创建方法;3)掌握对象数组、对象指针及*this指针的使用。3实验内容:31 分析下面的程序,指出错误的地方class CSample int a=2.5 ; /在类中定义成员变量只能定义该变量的数据类型,不能赋初值更加不能给一个整型变量赋予一个实数型的值。改为:int a;public: int b ; void Print( )couta+bn ; void Set (int , int); / 类定义结束得有一个“;”号结束 /为了说明Set函数是类CSample,所以必须在函数名前面加上CSample类名和“:”,否则,函数Set是无法使用类CSample的成员变量和成员函数的。void Set(int x , int y) a=x ; y=b ; /逻辑错误,应改为:b=y;void main( )CSample Sam1 , Sam2 ;Sam1.Set(2,3);Sam2.Set(5,6);Sam1.Print( ) ;Sam2.Print( ) ;Coutsam1.a+sam2.aendl; /由于a定义为私有变量,CSample外是不允许对a的任何使用的。即a的使用受限制的。 应把a改为共有变量或者删去此语句coutSam1.b+Sam2.bendl; 读入Sam1.a=2,Sam1.b=3读入Sam2.a=5, Sam2.bname1num1=num1score1= english;score2= mathscore3= computer输出学生信息计算平均分:(english+math+computer)/3输出平均分类图代码实现:#include #include class students private:char name7; char num15; float english,math,computer;public:void set(char,char ,float,float,float);void print();float calculate();void students:set(char name1,char num1 ,float score1,float score2,float score3) strcpy(name,name1);strcpy(num,num1);english=score1;math=score2;computer=score3;void students:print() int i;cout姓名:;for(i=0;namei!=0;i+)coutnamei;coutn;cout学号:;for(i=0;numi!=0;i+)coutnumi;coutn;cout英语成绩是 englishendl;cout数学成绩是 mathendl; cout计算机成绩是computerendl;float students:calculate() float a;a=(english+math+computer)/3;return a;void main()students John;float average;John.set(John,071511042,85.5,92,90.5);John.print();average=John.calculate();cout平均分是averageendl;编码实现与结果:2)按下面要求编程定义一个满足下列要求的类CDate: 有三个成员数据:年、月、日; 有设置日期的成员函数; 有用格式月/日/年输出日期的成员函数; 有对当前日期加一天的成员函数。 设计主函数,在主函数里创建对象;调用设置日期的成员函数,设置当天的日期;调用输出日期的成员函数输出当天日期;调用对当前日期加一天的成员函数,然后再调用输出日期的成员函数,输出第二天的日期。注意:闰年的2月的天数为29天,其它年份2月28天闰年是指:年份能被4且不能被100整除,或者年份能被400整除;分析设计:1. 依据题意,CDate类图如下CDate-year:int-month:int-day:int+set(a:int ,b:int,c:int):void +print():void+tomorrow():void2.N-S图如下:CDate todayYear=2008; month=12; day=29 TFday+=1;break;day+1=31T F Moth=12?TFmonth+;day=1;break;day+=1;break;month+;day=1;break;day+=1;break;Day+1=32?day+1=32?TFFTFyear+;month=1;day=1;break;day+=1;break;month+;day=1;break;day+=1;break;coutmonth月day日year年3.代码实现#include class CDateprivate:int year;int month;int day;public:void set(int,int,int);void print();void tomorrow();void CDate:set(int a,int b,int c)year=a;month=b;day=c;void CDate:print()coutmonth月day日year年endl;void CDate:tomorrow()switch(month)case 2:if(year%4=0 & year%100!=0)|(year%400=0)if(day+1=30)month+;day=1;break;else if(day+1=29)month+;day=1;break;case 4:case 6: case 9:case 11:if(day+1=31)month+;day=1;break;case 1:case 3:case 5:case 7:case 8:case 10:if(day+1=32)month+;day=1;break;case 12:if(day+1=32)year+;month=1;day=1;break;default:day+=1;break;void main()CDate today;today.set(2008,12,31);today.print();today.tomorrow();today.print();4.编程实现和运行结果:3)有一个类说明如下: Class fun int i ,j ; public: int s ,k ; void SetData(int,int,int,int); void print(); ; 要求: 完成函数SetData(int,int,int,int)的定义,该函数用于设置各成员数据; 完成函数void print()的定义;该函数用于输出各成员数据; 设计主函数,在主函数里定义两个对象:Fun s1,s2 ; 在主函数里调用SetData()成员函数,设置各个对象的数据, 调用print()成员函数输出数据成员函数,实现各对象的数据的输出。1.依题意,可作类图fun-i:int-j:int+s:int+k:int+SetData(int,int,int,int):void+print():void2.设计:a.成员函数的定义设计void fun:SetData(int a,int b,int c,int d)i=a;j=b;s=c;k=d;Void fun:print()Couti” “j” “s” “kendl;b.主函数的设计void main()Fun s1,s2;s1.SetData(18,23,25,56);s1.print();s2.SetData(24,56,89,47);s2.print();3.实现和结果:*4 课后练习调试下列程序,指出程序实现的功能及程序输出结果。进一步理解类的定义和使用。#include#includeclass CTriafloat x , y, z;public:void SetData(float a ,float b, float c)if(a+bc&a+cb&b+ca)x=a ; y=b ; z=c; else x=y=z=0;float Area()float t=(x+y+z)/2;re
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年消防安全教育培训考试题库-隐患排查与消防安全演练试题
- 2025年危险化学品从业人员安全生产技能试题卷
- 2025年大学华文教育专业题库- 小学语文综合素养培养策略研究
- 2025年大学人文教育专业题库- 人文教育的实践研究
- 2025年大学社会体育指导与管理专业题库- 体育风险防范与应急管理
- 2025年大学移民管理专业题库- 移民青年教育与成长路径
- 2025年大学劳动教育专业题库- 大学生劳动教育实践活动设计
- 2025年执业药师药学专业知识考题与解析试卷
- 2025年大学人文教育专业题库- 人文素质培养的学习与实践
- 2025年大学社会体育指导与管理专业题库- 体育场馆运营费用控制
- 股权代持协议(模板)8篇
- 《AI创意课件之设计》课件
- 医院会计笔试题目及答案
- 河南豫信电科所属公司招聘笔试题库2025
- GB/T 45345-2025金属及其他无机覆盖层工程用直流磁控溅射银镀层镀层附着力的测量
- 无人机教员聘用协议书
- 药物非临床研究质量管理规范
- 脑科生理病理图谱解读
- 全国青少年科技辅导员专业水平认证笔试考题
- (行业)常用表面处理工艺详解(行业讲座教学培训课件)
- 配电网安健环设施标准
评论
0/150
提交评论