




已阅读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年事业单位工勤技能-湖南-湖南工程测量员五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-湖南-湖南地图绘制员五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北公路养护工五级(初级工)历年参考题库典型考点含答案解析
- 2025-2030中国糕点轮切割器行业应用规模及发展趋势预判报告
- 2025年事业单位工勤技能-河南-河南放射技术员一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-河北-河北殡葬服务工一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-江西-江西无损探伤工一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西机械冷加工一级(高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东理疗技术员三级(高级工)历年参考题库含答案解析
- 2025玛纳斯县司法局招聘编制外专职人民调解员(5人)笔试模拟试题及答案解析
- 2025年陕西华山旅游集团有限公司招聘(50人)笔试备考试题及答案解析
- 中医基础理论试题及答案
- 信访业务培训课件
- 2025年秋期人教版2年级上册数学核心素养教案(第6单元)(教学反思有内容+二次备课版)
- 马拉松赛事全案策划
- 2025年国企财务招聘笔试题和答案(基础知识测试题)
- 公路工程检测员考试试题及答案
- 220KV间隔扩建(四措一案最终)
- 2025年广东华南农业大学招聘事业编制工作人员考试笔试试题(含答案)
- 2025年会计继续教育试题及答案
评论
0/150
提交评论