C#课程设计.doc_第1页
C#课程设计.doc_第2页
C#课程设计.doc_第3页
C#课程设计.doc_第4页
C#课程设计.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

辽宁工业大学软件学院C#网络编程技术综合实验报告一题目: 面向对象程序设计 院(系): 软件学院 专业班级: 软件工程092 学 号: 091301053 学生姓名: 苏志新 指导教师: 翟宝峰 教师职称: 副教授 起止时间:2010.9.6至2010.9.27面向对象程序设计一、 问题描述C#与.NET 的关系,C#的结构和方法论反映了.NET基础方法论,在许多情况下C#的特定动能取决于.NET的功能或.NET类,C#是一种相当新的编程语言,作为为.NET Framework而专门设计的语言将与其一起被使用,其强大支持平台.NET,使其一开始就充满了活力,让人能看到其良好的发展前景。C#就其本身而言只是一种语言,尽管它是用于生成面向.NET环境的代码,但它本身不是.NET的一部分。NET支持的一些特性,C#并不支持。而C#支持的另一些特性,.NET却不支持。二、 问题分析1.面向对象的基本概念面向对象(object-oriented;简称:OO)至今还没有统一的概念,我这里把它定义为:按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的办法。通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。(1)对象:对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。(2)对象的状态和行为:对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。(3)类:具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。(4)类的结构:在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般-具体结构关系,整体-部分结构关系。一般具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。整体部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。2.面向对象的特征(1) 和其他编程语言一样拥有其语法规则、命名空间、数据支持,但究其根本而言,与C+等面向对象的语言有其惊人的相似之处。常量、变量、变量的类型、类型的转换、表达式运算符、流程控制、方法和函数、泛型。定义和使用一些基础的数据方式与C+及其它面向对象编程语言相似。变量的类型包括文本类型,数值类型和其它类型。(1)文本类型主要包括char、string。char用来存放单个字符, string用来存放字符串。(2)数值类型主要包括整数,浮点数,长整数等。(3)类型转换提供隐式转换和显式转换两种方式。(4)表达式,表达式是符号和运算的组合,简单的表达式可以是一个变量,常量,列或标量函数,也可以是两个或两个以上的表达式连接起来,组合成复杂的表达式。如:年int a=1;int b=2;int x=a+b;就是几个表达式。(5)流程控制语句:C#提供5种流程控制语句:if、switch、for、foreach、while。(6)方法和函数:包括方法和函数的定义,函数的参数,函数的重载.(7)委托:委托是一种引用方法的类型,一旦为委托分配了方法,委托将与该方法具有完全相同的行为,委托方法的使用可以像其它任何方法一样,具有参数和返回值。(8)泛型:这是C#2.0新添加的类型,泛型将类型参数的概念引入.NET Framework,其优点是类和方法将对类型的指定推迟到实例化该类和方法的时候,泛型类和泛型方法同时具备可重用性,类型安全和效率,这是非泛型类和非泛型方法无法具备的,泛型通常用在集合和在集合上运行的方法中。三、 程序设计本程序主要为了体现面向对象的编程思想,本程序采用面向接口编程技术,在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程就是指按照这种思想来编程。本程序采用了策略模式进行设计。程序实现定义抽象类DotaHero代码如下:using System;namespace Dotapublic abstract class DotaHero public abstract void Name();public abstract void Weizhi();public abstract void Leixing();public WeiZhi weizhi;public LeiXing leixing;定义子类LiuLangJianKe代码如下:using System;namespace Dota/ / LiuLangJianKe 的摘要说明。/ public class LiuLangJianKe : DotaHeropublic LiuLangJianKe()weizhi = new Ganker();leixing = new LiLiang();public override void Name() / TODO 自动生成方法存根Console.WriteLine(Im 流浪剑客!);public override void Weizhi() / TODO 自动生成方法存根weizhi.Xingwei();public override void Leixing()leixing.LeiXing();public static int xuhao;public static bool state = false;定义接口LeiXing代码如下:using System;namespace Dota/ / LeiXing 的摘要说明。/ public interface LeiXingvoid LeiXing();定义实现接口ZhiLi类代码如下:using System;namespace Dota/ / / public class ZhiLi : Dota.LeiXingpublic ZhiLi()/Console.WriteLine(我是智力型英雄);/ / TODO: 在此处添加构造函数逻辑/public void LeiXing()Console.WriteLine(智力型英雄);定义实现接口LiLiang类代码如下:using System;namespace Dota/ / LiLiang 的摘要说明。/ public class LiLiang : LeiXingpublic LiLiang()/Console.WriteLine(我是力量型英雄);/ TODO: 在此处添加构造函数逻辑/public void LeiXing()Console.WriteLine(力量型英雄);四、 实验总结这次的课程不仅让我们了解到了更多更好的C#,而且让我们懂得了更多的道理。可能是随着年龄的增长,学到的东西也越来越深奥吧,感觉到了数据库对我们的用途是广泛的,学习与做人我认为有相同之处,因为我感觉都是需要在摸索中前进的,也许对于某些成功的人来说这些算不了什么大事,但是在我们学生眼中它不单纯是一个简单的课程设的分数,更重要的是我们今后走向社会的法宝。在本次实验中,把曾经认为难的不能再难的东西也一点点变成自己的东西,理解、掌握。在这个过程中,我又学得到很多在书本上学不到的东西,才发现自己学习到的书本上的知识只是一些皮毛的知识,同时我也在筛选资料的过程中更细致的了解了有关内容。意识到真正需要学习的还有很多。发现这些问题的主要原因就是在网上查找资料时,我们可以看到的相关网页真的是很多,但是自己能看的懂的也就是其中几个网页

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论