已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
福建工程学院信息科学与工程学院实验报告 2013 2014 学年第 一 学期 任课老师: 王晨阳 课程名称C#程序设计班级信管1102座号20姓名郭明光实验题目C#面向对象程序设计训练实验时间2013/10/24实验目的、内容3.设计题阅读下面说明和代码,在(n)处填充代码。(1)【说明】单件模式(Singleton)在某种程度上来说是限制而不是促进类的创建。单件模式确保类有且仅有一个实例,并提供了一个对该实例的全局访问点。在实际程序中,有很多类是需要确保有且仅有一个实例的。【代码】using System;class SingletonDemo private static SingletonDemo theSingleton = null; private (1)SingletonDemo () public (2)static SingletonDemo Instance() /静态全局 if (null = theSingleton) theSingleton = (3) new SingletonDemo() ; return theSingleton; static void Main(string args) SingletonDemo s1 = SingletonDemo.Instance(); SingletonDemo s2 = SingletonDemo.Instance(); if (s1.Equals(s2) Console.WriteLine(See, Only One Instance!); 【程序输出结果】(2)【说明】某高校的部门组织结构如图3-1所示,现采用组合(Composition)设计模式来设计,得到如图3-2所示的类图。其中Department为抽象类,定义了在组织结构图上添加(add)、删除(delete)部门和获取子部门列表的方法接口以及部门名称字段和封装部门名称字段的属性。类ConcreteDepartment表示具体的系部,各系部下还可以设置不同的子部门或教研室。类HRDepartment和类FinanceDepartment分别表示人事处和财务处。简述组合(Composition)设计模式的特征?图3-1组织结构图图3-2类图【代码】using System;using System.Collections.Generic;using System.Text;namespace Composition public (1)abstract class Department protected string name; public string Name (2) get return ; public abstract void add(Department d); public abstract void delete(Department d); public abstract List getChildren(); public class ConcreteDepartment : Department private List children = new List(); public ConcreteDepartment(string name) = name; public override void add(Department d) (3)children.add(d) ; public override void delete(Department d) children.Remove(d); public override List getChildren() return this.children; public class HRDepartment : Department public HRDepartment(string name) = name; public override void add(Department d) public override void delete(Department d) public override List getChildren() return null; public class FinanceDepartment : Department public FinanceDepartment(string name) = name; public override void add(Department d) public override void delete(Department d) public override List getChildren() return null; class Program static void Display(Department department) Console.WriteLine(department.Name); if (department.getChildren()!=null) foreach (Department d in department.getChildren() Display(d); static void Main(string args) ConcreteDepartment college = new ConcreteDepartment(福建工程学院); college.add(new HRDepartment(人事处); ConcreteDepartment csDepartment = new ConcreteDepartment(计算机与信息科学系); csDepartment.add(new ConcreteDepartment(软件工程教研室); csDepartment.add(new ConcreteDepartment(信息管理教研室); ConcreteDepartment basicDepartment = new ConcreteDepartment(计算机基础教研室); basicDepartment.add(new ConcreteDepartment(计算机一级教研组); basicDepartment.add(new ConcreteDepartment(计算机二级教研组); csDepartment.add(basicDepartment); college.add( (4)csDepartment ); college.add(new FinanceDepartment(财务处); Display( (5)college ); /打印整个学院各部门名称 【程序输出结果】(3)【说明】类UniversityList提供了只读的属性用于访问类中常量字段count;提供了索引器用于读取或设置类中数组型字段universityName,该索引器有个int型索引参数,在索引器中需判断该索引参数,如果超出09范围,则抛出一个异常,异常信息为“索引下标越界”。【代码】using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1 public class UniversityList private const int count = 10; private string universityName = new stringcount; #region public int Count get return count; #endregion #region public string thisint index get if (index = 0 & index = 0 & index = count) universityNameindex = value; else throw new Exception(索引下标越界); #endregion class Program static void Main(string args) UniversityList u = new UniversityList(); Console.WriteLine(u.Conut=0, u.Count); try u0 = 福建工程学院; Console.WriteLine(u0); u10 = 福州大学; Console.WriteLine(u0); catch (System.Exception ex) Console.WriteLine(ex.Message); 【程序输出结果】(4)【说明】以下程序中类Control发布了一个事件SomeEvent,该事件在用户按下键盘按键E时触发。【代码】using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1 public delegate void SomeHandler(); public class Control /发布一个事件SomeEvent public event /*/ SomeHandler /*/ SomeEvent; public void RaiseSomeEvent() /触发事件SomeEvent /*/ if (this.SomeEvent != null) this.SomeEvent(); /*/ class Program public static void Main() Control ctrl = new Control(); /订阅事件SomeEvent /*/ ctrl.SomeEvent += new SomeHandler(ProcessSomeEvent);/*/ Console.Write(请输入一个按键:); ConsoleKeyInfo cki = Console.ReadKey
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年文员年终工作总结(汇编2篇)
- 2025年劳动纠纷预防试题及答案
- 2025年菏泽教师历史真题及答案
- 直播行业市场分析报告
- 广东国考笔试真题及答案
- 化学趣味实验科普
- 师德师风培训教师的行为规范
- 乡镇消防考试题库及答案
- 药理学职称考试题及答案
- 小学篮球课前测试题及答案
- 网络安全教师培训会议
- 《发票发票知识培训》课件
- 2024年秋季新版苏科版八年级上册物理课件 跨学科实践 乐器的调查与制作
- 民兵潜力数据调查培训
- 辽海版综合实践活动七年级上册同步课件教案81用好电子小帮手之活动一电子产品走近你我他
- 离职员工不损害公司声誉保证书
- 3.8 第1课时弧长的计算 浙教版数学九年级上册课件
- 初中语+文+第9课《从百草园到三味书屋》课件+统编版语文七年级上册
- 2024年共青团入团积极分子团校结业考试试题库及答案
- 高标准农田改造提升建设项目投标方案(技术标)
- 市政设施养护维修服务规范(TZSZX002-2022)
评论
0/150
提交评论