




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、类的设计和实现 专业:xxxxxxx 姓名:xxxxxx 学号:xxxxxxxx计算机与信息技术学院综合性、设计性实验报告专业:计算机科学与技术 年级/班级:2010级 20102011学年第二学期课程名称.NET程序设计指导教师xxxxx本组成员学号姓名xxxxxxxxxxxxxxx实验地点xxxxxxxxx实验时间xxxxxxxxxx。项目名称类实验类型综合性实验目的:掌握类的声明和对象的创建掌握对象的封装性掌握类的访问修饰符掌握类的继承的实现掌握派生类、抽象类、抽象方法的使用掌握类的多态性掌握运算符的重载了解接口的实现了解事件的实现实验仪器或设备:安装有visual Studio2008
2、的计算机总体设计(设计原理、设计方案及流程等)(1) 通过实验表明类的概念,类的对象,类的成员;(2) 分别例举不同对象的类;实验步骤(包括主要步骤、代码分析等)实验5-1 创建类MyMath,计算周长、面积和球的体积。实验要求:创建类MyMath,包含常量;PI;静态方法:Perimeter(周长)、Area(面积)、Volumne(体积)。运行结果如图5-1所示。操作提示:程序代码如下。按F5键运行:实验5-1的程序运用c+语言编写,其代码如下#include #include const double PI= 3.1415926;class MyMathpublic : MyMath(i
3、nt R)r=R;static double Perimeter(double r)double p=2*PI*r;return p;static double Area(double r)double a=PI*r*r;return a;static double Volume(double r)double v=4*PI*r*r*r/3;return v;void output()cout圆的周长=Perimeter(r)nendl;cout圆的面积=Area(r)nendl;cout圆的体积=Volume(r)nendl;private:double p;double a;double
4、v;double r;void main()double r;coutr;MyMath math(r);math.output ();运行结果是: 实验5-2 创建表示摄氏温度的类TemperatureCelsius实验要求:创建类TemperatureCelsius,包含实例字段degree(表示摄氏温度)和实例方法ToFahreheirt(将摄氏温度转换为华氏温度)。运行结果如图5-2所示操作提示:程序代码如下按F5键运行:实验5-2运用c+语言的代码如下:#includeclass TemperatureCelsiuspublic:TemperatureCelsius(double d)
5、degree=d;double ToFahrenheit(double degree)p=(degree*9/5)+32;return p;private:double degree;double p;void main()double d,cel;coutd;TemperatureCelsius tem(d); cout摄氏温度=dendl;cout华氏温度=tem.ToFahrenheit(d)endl;运行结果是:实验5-3 类的继承的实现实验要求:创建基类Person和派生类Teacher。基类Person包含实例字段name和age;虚函数GetInfo()显示个人信息。派生类Tea
6、cher除了包含基类的namw和age字段。还包含自己的TeacherID字段,并使用关键字override来重写方法GetInfo()。运行结果如图5-3所示按F5键运行:实验5-3运用C+语言编写的代码是:#include#include#includeclass Personpublic:char * name;int age;Person(char * Name ,int Age)name=Name;age=Age;class Teacher:virtual public Personpublic:int id; Teacher(char * Name,int Age,int Id):
7、Person(Name,Age)id=Id;void output()cout姓名:namen年龄:agen编号:idendl;void main() char name20;strcpy(name,Mr.Yu);Teacher t1(name,40,1990108001);t1.output();运行结果是:实验5-4 抽象类、抽象方法、多态性的实现实验要求:创建抽象基类Shape和派生类Rectangle、Circle。利用多态性实现Area(计算面积)和Show(显示图形名称和面积)抽象方法。按F5键运行:实验5-4运用C+语言编写的代码是:#includeclass Shapepubl
8、ic:virtual float area()=0;class Triangle:public Shapepublic:Triangle(float h,float w)H=h;W=w;float area()return (float)(H*W*0.5);private:float H,W;class Circle:public Shapepublic: Circle(float r) R=r; float area() return(float)(3.1415926*R*R); private:float R;void main()Shape *p;Triangle tri(1.0,2.0
9、);coutRectangle:小矩形,area:tri.area()endl;Circle cir(3.5);coutCircle:大圆,area:cir.area()endl;运行结果是:实验5-5 运算符重载 实验要求:使用符重载创建定义复数相加、相减和相乘的复数类Complex。运行结果如图5-5按F5键运行:实验5-5运用C+语言编写的代码如下:#includeclass Complexpublic:Complex(double r=0,double i=0)realPart=r;imagePart=i;void print()coutrealPart+imagePartiendl;
10、Complex operator +(Complex &c);Complex operator -(Complex &c);Complex operator *(Complex &c);private:double realPart;double imagePart;Complex Complex:operator+(Complex &c)Complex temp;temp.realPart=realPart+c.realPart;temp.imagePart=imagePart+c.imagePart;return temp;Complex Complex:operator - (Compl
11、ex &c)Complex temp;temp.realPart=realPart-c.realPart;temp.imagePart=imagePart-c.imagePart;return temp;Complex Complex:operator*(Complex &c)Complex temp;temp.realPart=realPart*c.realPart-imagePart*c.imagePart;temp.imagePart=realPart*c.imagePart+imagePart*c.realPart;return temp;void main()Complex c1(4
12、,5),c2(3,2),sum,sub,mul;sum=c1+c2;sub=c1-c2;mul=c1*c2;cout第一个复数:;c1.print();cout第二个复数:;c2.print();cout两个复数之和:;sum.print ();cout两个复数之差;sub.print ();cout两个复数之积;mul.print ();其运行结果如下:实验5-6 接口的实现实验要求:声明一个接口ICDPlayer,包含4个接口方法:Play()、Stop()、NextTrack()和PreviousTrack(),以及一个只读属性CurrentTrank。创建类CDPlayer实现该接口,
13、模拟CD的播放、停止、下一音轨、上一音轨的操作。按F5键运行:实验5-7 事件的实现实验要求:(1)声明提供事件数据的类。(2)、声明事件处理委托 。(3)、声明引发事件的类(4)、在事件生产类中声明事件。(5)在事件生产类中实现产生事件代码。(6)声明处理事件的类(事件消费类)。(7)在事件消费类中声明事件处理方法。(8)在事件消费类中订阅或取消事件。按F5键运行:(一)结果分析与总结:(1)、一个常量可以依懒于同一程序内的其他常量。只要关系不是循环的,编译器会自动滚屏的安排的顺序来计算各个常量的声明。常量名称的第一个字母一般都是大写,也可以全部都大写。多个字符之间可用下划线连接成为常量名(
14、2)、通过使用operator关键字定义静态成员函数重载运算符,c#中的有的可以重载,但是和()不能重载。但可以用索引来代替的重载,用户定义的数据类型转换代替()的重载。比较运算符必须成对出现。(3)、抽象类使用关键字abstract添加到实例方法的返回结果。抽象类不能实例化对象,一般用于提供多个派生类的基类的公共定义。抽象类不能直接实例化,用new初始化对象会出现编译错误。可以定义抽象类型的变量,但是它必须是null,或是其派生类非抽象类的实例引用。当从抽象类派生非抽象类时,非抽象必须实现所继承的所有抽象成员,故而重写那些抽象成员(二)类在C#和C+中的区别与联系(1)在C+中,继承的分类有单继承和多继承,而且在继承方式上分为公有继承、私有继承和保护继承;而在C#中继承只分为实现继承和接口继承。(2)在C+中抽象类是指至少包含一个纯虚函数的特殊的类,它本身不能被实例化,必须通过继承得到派生类后,在派生类中定义了纯虚函数的具体的实现代码,才能获得一个派生类的对象;C#中将关键字abstract置于关键字cla
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 巴音郭楞蒙古自治州轮台县2025-2026学年三年级数学第一学期期末调研试题含解析
- 安徽省宿州市灵璧县2025-2026学年数学三年级第一学期期末教学质量检测试题含解析
- 患者安全护理管理
- 冲刺抢分卷02 备战2025年高考考前仿真模拟卷冲刺抢分卷化学试题02 (辽宁、黑龙江、吉林、内蒙古专用) 含解析
- 节能环保设施安装维修合同
- 数字媒体技术知识点练习题
- 工程经济项目价值评估题目试题及答案
- 通信设备研发与技术支持服务合同
- 商业法案例阅读题
- 农业养殖技术应用与指导协议
- 2025年公共文化服务体系建设考试试题及答案
- 经纪公司聘用协议书
- 2025-2030年中国保健食品行业市场发展分析及竞争格局与投资发展研究报告
- 温州市普通高中2025届高三第三次适应性考试物理试题及答案
- 装修合同工人免责协议
- 初中化学基础试题及答案
- 《导数及其应用》复习课教学课件
- 林业高级工试题及答案
- 出纳岗面试试题及答案
- 【公开课】+埃及+课件-2024-2025学年七年级地理下学期湘教版
- 六下试卷计算题目及答案
评论
0/150
提交评论