欢迎来到天天文库
浏览记录
ID:21688507
大小:99.00 KB
页数:7页
时间:2018-10-23
《c#课程设计new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、辽宁工业大学软件学院《C#网络编程技术》综合实验报告一题目:面向对象程序设计院(系):软件学院专业班级:软件工程091学号:学生姓名:指导教师:翟宝峰教师职称:副教授起止时间:7面向对象程序设计一、问题描述面向对象是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。二、问题分析1.传统开发方法存在问题(1)软件重用性差重用性是指同一事物不经修改或稍加修改就可多次重复使用的性质。软件重用性是软件工程追求的目
2、标之一。(2)软件可维护性差软件工程强调软件的可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的配置成分组成。在软件开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。实践证明,用传统方法开发出来的软件,维护时其费用和成本仍然很高,其原因是可修改性差,维护困难,导致可维护性差。(3)开发出的软件不能满足用户需要用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。用结构化方法开发的软件,其稳定性、可修改性和可重用性都比较差,这是因为结构化方法的本
3、质是功能分解,从代表目标系统整体功能的单个处理着手,自顶向下不断把复杂的处理分解为子处理,这样一层一层的分解下去,直到仅剩下若干个容易实现的子处理功能为止,然后用相应的工具来描述各个最低层的处理。因此,结构化方法是围绕实现处理功能的“过程”来构造系统的。然而,用户需求的变化大部分是针对功能的,因此,这种变化对于基于过程的设计来说是灾难性的。用这种方法设计出来的系统结构常常是不稳定的,用户需求的变化往往造成系统结构的较大变化,从而需要花费很大代价才能实现这种变化。2.面向对象的基本概念(1)对象:对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅
4、能表示具体的事物,还能表示抽象的规则、计划或事件。(2)对象的状态和行为:对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。(3)类:具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。7(4)类的结构:在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,
5、即一般--具体结构关系,整体--部分结构关系。①一般——具体结构称为分类结构,也可以说是“或”关系,或者是“isa”关系。②整体——部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“hasa”关系。(5)消息和方法:对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。类中操作的实现过程叫做方法,一个方法有方法名、参数、
6、方法体。一、程序设计本程序主要实现功能为模拟DOTA随机选取英雄功能。为了体现面向对象的编程思想,本程序采用面向接口编程技术,在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程就是指按照这种思想来编程。本程序采用了策略模式进行设计,程序主要类图如下:二、程序实现程序运行界面如下:7定义抽象类Duck代码如下:usin
7、gSystem;namespaceTestDuck{//////Duck的摘要说明。///publicabstractclassDuck{publicDuck(){////TODO:在此处添加构造函数逻辑//}publicvirtualvoiddisplay(){}publicvoidperformFly()7{flyBehavior.fly();}publicFlyBehaviorflyBehavior;}}定义子类FunDuck代码如下:usingSystem;namesp
此文档下载收益归作者所有