




免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
琼州学院实验报告课程名称:面向对象程序设计 开课学期:_2014-2015(1)_ 院(部):电子信息工程学院 开课实验室:数字媒体技术实验室学生姓名:_古粤赣_专业班级:_13数字媒体_学 号:_13217051_ 琼州学院学生实验报告(2) 课程名称面向对象程序设计实验项目名称C#面向对象程序设计基础开课院(部)及实验室电子信息工程学院数字媒体技术实验室实验日期2014/9/16学生姓名古粤赣学号13217051专业班级13数字媒体指导教师杜红燕实验成绩教师评语: 教师签字: 批改时间:一、实验目的(1)初步掌握面向对象程序设计的3个概念:封装、继承、多态(2)了解封装、继承、多态以及运算符重载的作用(3)掌握封装、继承、多态以及运算符重载的C#实现方法 (4) 掌握通过委托调用对象方法的C#实现方法二、实验内容及要求(1)编写矩形类,要求可以提示用户输入矩形的长度和宽度,并显示该矩形的长度、宽度和面积。(2)下列程序定义了一实部为real,虚部为imag的复数类complex,要求重载运算符“+”、“-”、“*”实现复数对象的加法、减法、乘法运算,并编写测试程序。class Complexprivate:double real, imag;public:complex(double r, double i)real=r; imag=i; ;(3)定义磁盘类Disk以及派生类硬盘HardDisk、闪存Flash和光盘CDROM,在其中定义记录磁盘容量的字段,并通过虚拟方法和重载方法来模拟对磁盘内容的写入和删除。(4)设计基本几何图形的继承层次结构,并编程实现其中的主要类型,要求通过抽象方法、虚拟方法和重载方法来计算各种图形的面积和周长。三、实验环境(1)硬件:台式计算机;(2)软件:Visual Studio 2008四、实验步骤编辑、编译、调试运行五、实验小结 虽然此次试验用时较多,但效果不错。从一开始的杂乱的代码到最后有条有理的程序,我学到了要不断地去思考每一步的优化,在这种模式下,才真正地运用了所学知识,也进一步开拓了思考方式。例如,程序报错时,显示的是某一语句错误。但最后却发现是程序的整体结构有瑕疵。解决这一问题的过程不仅需要对语句重新审视,还要重新梳理结构的合理性。这无形中就增强了程序的编排意识。所以要重视写过的试验。六、附录(源程序代码及实验结果)1. using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 试验2 class Program static void Main(string args) Rectangle r1=new Rectangle (); Console.Write(请输入长:); r1.c=int.Parse(Console.ReadLine(); Console.Write(请输入宽:); r1.h=int.Parse(Console.ReadLine(); r1 .area(r1.c,r1.h); Console.WriteLine(长0 宽1 面积2,r1.c ,r1.h,r1.area(r1.c,r1.h); class Rectangle public int c,h,s; public int area(int c,int h) s=c*h; return s; 2. using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 试验2 class Program static void Main(string args) Console.WriteLine(请输入c1实部:); int a=int.Parse (Console .ReadLine(); Console.WriteLine(请输入c1虚部:); int b=int.Parse (Console.ReadLine(); Complex c1 =new Complex (a,b); Console.WriteLine(请输入c2实部:); int c = int.Parse (Console.ReadLine(); Console.WriteLine(请输入c2虚部:); int d = int.Parse (Console.ReadLine(); Complex c2 =new Complex (c,d); Complex c3=c1+c2; Complex c4 = c2 - c1; Complex c5 = c2 * c1; Console.WriteLine(0+(1)i, c3.Real, c3.Imag); Console.WriteLine(0+(1)i, c4.Real, c4.Imag); Console.WriteLine(0+(1)i, c5.Real, c5.Imag); class Complexprivate double real, imag;public double Real get return real; set real = value;public double Imag get return imag ; set imag = value; public Complex(double r, double i)Real=r; Imag=i; public static Complex operator +(Complex c1,Complex c2 ) return new Complex (c1.real+c2.real,c1.imag+c2.imag); public static Complex operator -(Complex c1, Complex c2) return new Complex(c1.real - c2.real, c1.imag -c2.imag); public static Complex operator *(Complex c1, Complex c2) return new Complex(c1.real *c2.real-c1.imag * c2.imag), (c1.real *c2.imag+c1.imag*c2.real); 3using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace _3 class Program static void Main(string args) HardDisk hd=new HardDisk (1000); Console .WriteLine (磁盘总空间:0,hd.Total); hd.Write(200); Console.WriteLine (磁盘剩余空间:0,hd.Free ); hd .Delete (100); Console .WriteLine (磁盘剩余空间:0,hd.Free); hd .Delete (1000); FlashDisk fd=new FlashDisk (); Console .WriteLine (磁盘总空间:0,fd.Total); fd.Write(200); Console .WriteLine (磁盘剩余空间:0,fd.Free ); fd.Delete (100); Console .WriteLine (磁盘剩余空间:0,fd.Free); fd.Delete (1000); CDROM cd=new CDROM (); Console .WriteLine (磁盘总空间:0,cd.Total); cd.Write(200); Console .WriteLine (磁盘剩余空间:0,cd.Free ); cd.Delete (100); Console .WriteLine (磁盘剩余空间:0,cd.Free); cd.Delete (1000); public abstract class Disk protected float total =3000,free=3000; public float Total get return total ; set total = value; public float Free get return free; public virtual void Write(float size) if (free=size) free-=size; else Console .WriteLine(剩余空间不足!); public abstract void Delete(float size); public class HardDisk:Disk public HardDisk (float size) this.total=this.free=size; public override void Delete(float size) if(free +size=total) free+=size; else Console .WriteLine (测试数据不合理!); public class FlashDisk:Disk public FlashDisk () this.total =this.free =64000; public override void Delete(float size) if(free +size=total) free+=size; else Console .WriteLine (测试数据不合理!); public class CDROM:Disk public override void Delete (float size) Console .WriteLine (光盘不可删除!); 4.using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace _4 class Program static void Main(string args) Circle c = new Circle(3); Console.WriteLine(圆的周长为: 0, c.perimeter(); Console.WriteLine(圆的面积为: 0, c.Area(); Rectangle r = new Rectangle(3, 2); Console.WriteLine(矩形的周长为: 0, r.perimeter(); Console.WriteLine(矩形的面积为: 0, r.Area(); public abstract class Shape protected const double PI=3.14; public abstract double perimeter() ; public abstract double Area(); public class Circle:Shape private double r; public double R get return r; set r=value; public override double perimeter() return 2*PI*r; public override double Area() return PI*r*r; public Circle (double r) this.r =r; public class Rectangle:Shape pri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国际贸易实务合同范本及案例分析
- 农民技能培训与服务协议条款
- 2025年信用风险管理与法律防控专业题库- 法律防控在信用合同执行中的作用
- 合同审核与签署标准化流程手册
- 建筑装修工程项目设计合同协议
- 专业展会展品信息管理系统建设合同
- 英文诗歌欣赏与朗读技巧训练教案初中篇
- 企业环保合规性检查清单及整改措施模板
- 小学数学下册重要概念归纳2024版
- 企业年终总结报告范文模板
- 桩基础平法施工图(平法施工图识读)
- GB/T 9113-2010整体钢制管法兰
- GB/T 23338-2018内燃机增压空气冷却器技术条件
- 癫痫的急救与护理课件
- 海姆立克急救法完整版本课件
- 国家地表水环境质量监测网采测分离实施方案课件
- 控压钻井技术及实践培训讲义工艺课件
- 厚度仪点检表
- 北京市水利工程维修养护定额
- 自然拼读法在小学英语教学中的应用的实践研究
- 无领导小组面试评分表模板
评论
0/150
提交评论