南华大学软件设计模式实验

合集下载

南华大学软件设计模式实验

南华大学软件设计模式实验
}
elseif(s.equals("GIF")){
reader=newlrz0101GifReaderFactory();
}
else{
reader=newlrz0101ImageReaderFactory();
}
returnreader;
}
}
Jpg图片读取工厂类:lrz0101JpgReaderFactory
25运行结果3抽象工厂模式31作业题目某软件公司要推出一款新的手机游戏软件该软件支持iosandroid和windowsphone等多个智能手机操作系统平台针对不同的手机操作系统该游戏软件提供了不同的游戏操作控制类operatioincontroller游戏界面控制类interfacecontroller并提供的相应的工厂类来封装这些类的初始化过程
}
}
测试类:Test
packagecom.bluesky1;
publicclasslrz0101Test{
publicstaticvoidmain(String[]args) {
lrz0101Testtest=newlrz0101Test();
lrz0101ImageReaderFactoryirf=newlrz0101ImageReaderFactory();
publicclasslrz0101Robotextendslrz0101Person{
publicvoidplay(){
System.out.println("大家好,我是机器人!我来未知星球!");
}
}
1.5 运行结果
2 工厂模式
2.1 作业题目
现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器ImgReader,如gif图片读取器GifReader用于读取gif格式的图片,jpg图片读取器JPGReader用于读取jpg格式的图片。图片读取器对象通过图片读取器工厂ImgReaderFactory来创建。ImgReaderFactory是一个抽象类,用于定义创建图片读取器的工厂方法,其GifReaderFactory和JPGReaderFactory用于创建具体的图片读取器对象。使用工厂方法模式,实现该程序的设计。

设计模式上机实验二实验报告

设计模式上机实验二实验报告

设计模式实验二实验报告书专业班级软件0703学号24姓名吉亚云指导老师刘伟时间2010年4月24日中南大学软件学院实验二设计模式上机实验二一、实验目的使用PowerDesigner和任意一种面向对象编程语言实现几种常用的设计模式,加深对这些模式的理解,包括装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式。

二、实验内容使用PowerDesigner和任意一种面向对象编程语言实现装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式,包括根据实例绘制相应的模式结构图、编写模式实现代码,运行并测试模式实例代码。

三、实验要求1. 正确无误绘制装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式的模式结构图;2. 使用任意一种面向对象编程语言实现装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式,代码运行正确无误。

四、实验步骤1. 使用PowerDesigner绘制装饰模式结构图并用面向对象编程语言实现该模式;2. 使用PowerDesigner绘制外观模式结构图并用面向对象编程语言实现该模式;3. 使用PowerDesigner绘制代理模式结构图并用面向对象编程语言实现该模式;4. 使用PowerDesigner绘制职责链模式结构图并用面向对象编程语言实现该模式;5. 使用PowerDesigner绘制命令模式结构图并用面向对象编程语言实现该模式;6. 使用PowerDesigner绘制迭代器模式结构图并用面向对象编程语言实现该模式;7. 使用PowerDesigner绘制观察者模式结构图并用面向对象编程语言实现该模式;8. 使用PowerDesigner绘制状态模式结构图并用面向对象编程语言实现该模式;9. 使用PowerDesigner绘制策略模式结构图并用面向对象编程语言实现该模式;10. 使用PowerDesigner绘制模板方法模式结构图并用面向对象编程语言实现该模式。

南华大学web课程设计实验报告[001]

南华大学web课程设计实验报告[001]

南华大学计算机科学与技术学院实验报告(2016 ~2017 学年度第1 学期)课程名称Web前端开发技术实验名称Web实验报告姓名刘让洲学号20144350101专业软件工程班级1班地点寝室教师刘洋第一章一、第一章所学内容知识点:在第一章中,我们学习了什么是web技术,对web技术有一定的了解,知道进行web开发以后要学习的各种技术以及对各种技术的简单介绍,为后面的学习打基础。

二、第一章实验:实验1-1源代码:<!doctype html><html lang="en"><head><meta charset="UTF-8"><title>Web前端技术初步应用</title><style type="text/css">p{font-size:20px;color:red;text-indent:2em;}h3{font-size:24px;font-style:bolder;color:#000099;}</style></head><body><h3>Web前端开发技术</h3><p>HTML</p><p>CSS</p><p>JavaScript</p><h3>网络学习资源</h3><a href="">HTML教程</a><script type="text/javascript">alert("Web前端开发工程师就业前景好,待遇高!");</script></body></html>实验1-2-1实验截图:实验1-2-2实验截图第二章一、第二章所学内容知识点:在第二章中,我们学习了HTML的基本文档结构以及基本的语法,包括<body><head><title>等标签的学习。

南华大学《MATLAB及应用》实验报告2

南华大学《MATLAB及应用》实验报告2

核科学技术学院实验报告实验项目名称MATLAB符号计算所属课程名称MATLAB及应用实验类型上机实验实验日期12月日指导教师谢芹班级学号姓名成绩一、实验名称MATLAB符号计算二、实验目的(1)掌握定义符号对象的方法(2)掌握符号表达式的运算法则以及符号矩阵运算(3)掌握求符号函数极限及导数的方法(4)掌握求符号函数定积分和不定积分的方法三、实验原理1. 函数极限及导数的方法(1)函数极限:limit(F,x,a) 求符号函数f(x)的极限值。

即计算当变量x趋近于常数a时,f(x)函数的极限值。

(2)limit(f):求符号函数f(x)的极限值。

符号函数f(x)的变量为函数findsym(f)确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。

(3)limit(f,x,a,'right'):求符号函数f的极限值。

'right'表示变量x从右边趋近于a。

(4)limit(f,x,a,‘left’):求符号函数f的极限值。

‘left’表示变量x从左边趋近于a。

2. 微分:diff(s):没有指定变量和导数阶数,则系统按findsym函数指示的默认变量对符号表达式s求一阶导数。

diff(s,'v'):以v为自变量,对符号表达式s求一阶导数。

diff(s,n):按findsym函数指示的默认变量对符号表达式s求n阶导数,n为正整数。

diff(s,'v',n):以v为自变量,对符号表达式s求n阶导数。

3. 函数定积分和不定积分的方法:int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分。

int(s,v):以v为自变量,对被积函数或符号表达式s求不定积分。

int(s,v,a,b):求定积分运算。

a,b分别表示定积分的下限和上限。

梯形法:trapz(x,y):x为分割点构成的向量,y为被积函数在分割点上的函数值构成的向量;抛物线法:quad(f,a,b,tol),f 是被积函数,[a,b]是积分区间,tol 是精度。

体系结构实验报告..

体系结构实验报告..

中南大学软件学院软件体系结构设计模式实验报告学生姓名:宋昂所在学院:软件学院学生学号: 3901080115 学生班级:软件0801 指导老师:刘伟完成日期: 2010-12-7一、实验目的熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。

二、实验内容使用PowerDesigner和任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。

(1) 简单工厂模式使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Circle)、方形(Rectangle)和三角形(Triangle) 对象,每个几何图形都要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个UnsupportedShapeException,绘制类图并编程实现。

(2) 简单工厂模式使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数“M”,则返回一个Man 对象,如果传入参数“W”,则返回一个Woman对象,使用任意一种面向对象编程语言实现该场景。

现需要增加一个新的Robot类,如果传入参数“R”,则返回一个Robot对象,对代码进行修改并注意女娲的变化。

(3) 工厂方法模式某系统日志记录器要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可以根据要求动态选择日志记录方式,现使用工厂方法模式设计该系统。

用代码实现日志记录器实例,如果在系统中增加一个中的日志记录方式——控制台日志记录(ConsoleLog),绘制类图并修改代码,注意增加新日志记录方式过程中原有代码的变化。

南华大学C语言实验报告

南华大学C语言实验报告

南华大学计算机科学与技术学院实验报告(2015 ~2016 学年度第1 学期)课程名称高级程序设计I实验名称C语言实验报告姓名刘让洲学号20140440734专业计算机类班级14级计类07班地点教师罗江琴实验一:计算定期存款本利之和1. 实验题目及要求设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计算n年后的本利之和deposit。

要求定期存款的年利率rate、存款期n和存款本金capital均由键盘输入。

2.实验内容1) 流程图:1.正确从键盘读入数据。

2.把读入的数据带入公式计算即可。

2)源程序#include <stdio.h>#include <stdlib.h>#include <math.h>void main (){int n;float deposit,rate,capital;printf ("请输入存款金额capital:");scanf ("%f",&capital);fflush(stdin);printf ("请输入存款年限n:");scanf (" %d",&n);fflush(stdin);printf ("请输入年存款利率rate:");scanf (" %f",&rate);deposit = capital*pow((rate+1),n) ;printf ("%d年以后您的余额为:%.2f",n,deposit);}4.实验运行结果及分析5.实验总结:注意格式控制符的匹配,定义的是float型,scanf中一定要是%f,我就因为这个错误,错了好几次;还有,scanf是取地址,&这个符号一定要注意加上,不然也会出错,我也好几次忘记这个&符号,找错找了好久。

(2021年整理)设计模式-软件体系结构-实验4-中南大学-软件学院

(2021年整理)设计模式-软件体系结构-实验4-中南大学-软件学院

设计模式-软件体系结构-实验4-中南大学-软件学院编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(设计模式-软件体系结构-实验4-中南大学-软件学院)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为设计模式-软件体系结构-实验4-中南大学-软件学院的全部内容。

《软件体系结构》实验报告项目名称结构型设计模式实验专业班级学号姓名实验成绩:批阅教师:年月日实验4 结构型设计模式实验实验学时: 2每组人数: 1实验类型: 3 (1:基础性 2:综合性 3:设计性 4:研究性)实验要求: 1 (1:必修 2:选修 3:其它)实验类别: 3 (1:基础 2:专业基础 3:专业 4:其它)一、实验目的熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的结构型设计模式,包括适配器模式、组合模式和外观模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。

二、实验内容1。

现有一个接口DataOperation定义了排序方法sort(int[])和查找方法search(int[], int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法,类BinarySearch 的binarySearch(int[], int)方法实现了二分查找算法。

试使用适配器模式设计一个系统,在不修改源代码的情况下将类QuickSort和类BinarySearch的方法适配到DataOperation接口中。

绘制类图并编程实现。

(要求实现快速排序和二分查找,使用对象适配器实现)2. Windows Media Player和RealPlayer是两种常用的媒体播放器,它们的API结构和调用方法存在区别。

软件设计模式实验报告

软件设计模式实验报告

应用4+1视图法及UML设计软件体系架构及设计模式实践一实验目的通过对实际案例进行软件设计来掌握软件体系架构模式的选择应用以及典型4+1视图软件架构设计方法的应用,并能熟练掌握如何利用Rational Rose 软件进行软件架构设计。

二实验内容(1)根据“信用卡申请件处理外包业务处理平台设计”需求选定软件体系结构模式(2)利用UML软件进行4+1视图架构设计,包括逻辑视图、开发视图、进程视图、物理视图和场景视图。

’A逻辑视图描述系统的功能需求,系统分解成一系列的功能抽象,采用时序图、协作图、类图等来表示;B开发视图描述软件在开发环境下的静态组织。

开发视图关注程序包,应用的统一框架,引用的类库、SDK和中间件,以及工程和包的划分规则等,规范、约束开发环境的结构;C进程试图侧重系统的运行特性,关注非功能性的需求(性能,可用性)。

服务于系统集成人员,方便后续性能测试。

强调并发性、分布性、集成性、鲁棒性(容错)、可扩充性、吞吐量等。

定义逻辑视图中的各个类的具体操作是在哪一个进程和线程中被执行,可以组件图为基础表示;D物理试图主要描述硬件配置。

服务于系统工程人员,解决系统的拓扑结构、系统安装、通信等问题。

主要考虑如何把软件映射到硬件上,也要考虑系统性能、规模、可靠性等。

可以与进程视图一起映射;E场景用于刻画构件之间的相互关系,将四个视图有机地联系起来。

可以描述一个特定的视图内的构件关系,也可以描述不同视图间的构件关系。

通常用Use Case图来描述。

(3)设计模式的实践,从创建者模式、结构型模式和行为模式三大类模式进行对象设计,每种类型的模式至少应用一种,并用应用了设计模式后的类设计修订逻辑视图中的类图。

三 SOA架构模式及流程分析(湛滨瑜)3.1 SOA架构介绍SOA是英文Service-Oriented Architecture,即面向服务架构的缩写。

面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。

基于ACM模式的程序设计类课程实验教学的几点做法_宁丹

基于ACM模式的程序设计类课程实验教学的几点做法_宁丹

Ne w Observation新观察36一、引言近来年,随着信息技术在社会各个应用领域的渗透和普及,程序设计类课程已经发展为高校计算机教育的重点课程。

理论教学与实验教学是程序设计类课程的重要组成部分,其中,实验教学是完整教学过程中的不可或缺的实践性教学环节。

实验的目的不仅仅是为了验证所编程序的正确与否,也是为了加深对程序设计语言知识的充分理解,更重要的是培养学生的实际操作能力和积累丰富的编程经验,从而引导他们利用程序设计语言编程来解决实际问题。

基于此,本文对如何更好的进行程序设计类课程的实验教学作一些探讨。

二、现状分析目前,我校计算机学院开设了高级语言如C、C++等多门程序设计类课程,这些课程的共同目标就是让学生通过上机实验和课程设计来巩固课堂上讲解的语法规则和算法技巧,锻炼编程能力。

但是现有的程序设计类课程实验教学存在着很多问题,导致整个教学效果得不到提高,与教学目标的要求不相符。

本节将主要从三个方面对其存在的问题进行总结:2.1实验教学安排我院程序设计类课程的上机实验课时是有限的,一般都是每周安排两个课时,或者最多四个课时,通常会在连续的几周内结束。

由于一般程序的编写和调试比较费时间,要是学生不事先做好充分的准备,仅仅靠在两个课时内去完成一个完整的程序编写是不太可能的,对所学内容也没能充分理解,很难在课堂上培养学生的实际编程能力。

2.2实验教学内容我院专业实验中心的机房环境是一个内部的局域网,不能连接到互联网,教师都是通过课件投影或屏幕广播教学软件来完成主要的实验教学过程。

实验内容基本上都是对课堂理论教学内容进行验证和实现,学生按照教材或课件来完成实验。

整个的实验教学环节中,教师根据实际的情况来选择是否进行案例教学,而当前多数实验教学过程中的案例所覆盖的知识点范围不够理想,不能将新旧知识点都包含进来。

案例陈旧,缺少更新,实用性和趣味性也不强,因此不能很好的激发学生的学习热情,不利于培养学生的独立思考和动手操作能力,未能达到教学目标的要求。

南华大学《MATLAB及应用》实验报告3

南华大学《MATLAB及应用》实验报告3

816.6667 3、 积分程序: t=0:0.01:10; syms x y z z=x^2+y^2; int(int(z,y,0,x),x,0,1) hold on ezplot('0',[0 2]) ezplot('x',[0 2]) plot([1,1],[-1e4,1e4],'r') 积分结果: ans =
实验报告实验项目名称matlab符号计算所属课程名称matlab及应用实实验验类类型上机实验实实验验日日期12月日指指导导教教师谢芹班级学号姓名成绩一实验名称matlab符号计算及应用二实验目的1掌握定义符号对象的方法2掌握符号表达式的运算法则以及符号矩阵运算3掌握求符号函数极限及导数的方法4掌握求符号函数定积分和不定积分的方法三实验原理略四实验内容1
五、实验过程及结果(含源代码)
1、程序如下:
x=linspace(0,pi/2,100); g=10;
v1=10; v2=15; v3=20; v4=25; y1=v1^2*sin(2*x)/g; y2=v2^2*sin(2*x)/g; y3=v3^2*sin(2*x)/g; y4=v4^2*sin(2*x)/g; subplot(2,2,1); plot(x,y1); title('v0=10'); text(pi/4,10,'Éä³ÌΪ10'); subplot(2,2,2); plot(x,y2); title('v0=15'); text(pi/4,22.5,'Éä³ÌΪ22.5'); subplot(2,2,3); plot(x,y3); title('v0=20'); text(pi/4,40,'Éä³ÌΪ40'); subplot(2,2,4); plot(x,y4);

软件设计模式实验报告

软件设计模式实验报告

计算机科学与技术学院实验报告课程名称:软件设计模式专业:计算机科学与技术班级:2011 级 1 班学号:201113137040 姓名:刘进平实验一单例模式的应用1 实验目的1) 掌握单例模式(Singleton)的特点2) 分析具体问题,使用单例模式进行设计。

2 实验内容和要求很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的参数数据。

通常客户端使用这个类是通过new一个AppConfig的实例来得到一个操作配置文件内容的对象。

如果在系统运行中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源。

事实上,对于AppConfig类,在运行期间,只需要一个对象实例就够了。

那么应该怎么实现呢?用C#控制台应用程序实现该单例模式。

绘制该模式的UML图。

UML图:源代码:class Program{static void Main(string[] args){AppConfig appConfigOne = AppConfig.GetParameterA();AppConfig appConfigTwo = AppConfig.GetParameterA();if (appConfigOne.Equals(appConfigTwo)){Console.WriteLine("appConfigOne 和appConfigTwo 代表的是同一个实例!");}else{Console.WriteLine("appConfigOne 和appConfigTwo 代表的是不同的实例!");}Console.ReadKey();}}}运行结果:实验小结:通过这次实验,我了解了单例模式的具体概念和使用方法,并且感受到了他的优点带来的方便,但是同时也知道了该设计模式的缺点:由于单例模式中没有抽象层,因此单例类的扩展有很大困难。

南华大学实验报告

南华大学实验报告

竭诚为您提供优质文档/双击可除南华大学实验报告篇一:南华大学实验报告模板南华大学计算机科学与技术学院实验报告(20XX~20XX学年度第一学期)课程名称嵌入式系统原理与设计文件系统构建实验名称姓名李谟军学号20XX9350103专业软件工程班级01班地点8-212教师陈灵娜一.实验目的理解根文件系统在linux系统中的作用,了解根文件的制作过程,进一步的掌握烧写开发板的流程。

二.实验环境AT91sAm9g45-eKes开发板三.实验任务1.学会mkfs.jffs2的使用方法。

2.制作根文件系统JFFs2,了解根文件系统目录构成。

3.将根文件系统通过sam-ba工具烧写到AT91sAm9g45-eKes开发板四.实验原理4.Linux内核启动完成以后,内核将寻找一个根文件系统,在AT91sAm9g45-eKes开发板选用的根文件系统是JFFs2。

通过mkfs.jffs2工具在x86平台下制作出可以在嵌入式平台系统上运行的文件系统,并通sam.ba工具烧写到目标板上进行验证。

mkfs.jffs2命令各参数含义如下(具体使用方法可以使用-h参数查看):-r指定内含根文件系统目录。

-o指定文件系统映像的输出文件名称。

-p表示在映像的结尾用0x0补全到block-i存储格式为小端格式。

-n每个擦除的block中不添加cleanmarker。

-c擦除block的大小。

busybox是标准linux工具的一个单个可执行实现。

busybox包含了一些简单的工具,例如cat和echo,还包含了一些更大,更复杂的工具,例如grep,find,mount以及telnet。

有些人将busbox称为linux工具里的瑞士军刀。

简单地说busybox就好像是个大工具箱。

它集成压缩了linux 的许多工具和命令。

五实验步骤和过程记录(1)准备制作JFFs2根文件系统的工具mkfs.jffs2;(2)建立目录(3)编译busybox;(4)复制动态连接库到lib目录中;(5)创建/etc/init.d/rcs/etc/prodile/etc/fastab/etc/inittab文件,并且复制主机中的/etc/passwd/etc/shadow/etc/group文件到相应的目录中;(6)移植bash,将其复制到/bin目录中;(7)执行mkfs.jffs2-r.orootfs.jffs2-n-e0x20000,生成jffs2根文件系统镜像;(8)通过sam-ba工具将文件系统烧写到开发板上,进行验证。

中南大学软件体系结构设计模式实验二全解

中南大学软件体系结构设计模式实验二全解

实验3 设计模式实验二实验学时: 4每组人数: 1实验类型: 3 (1:基础性2:综合性3:设计性4:研究性)实验要求: 1 (1:必修2:选修3:其它)实验类别: 3 (1:基础2:专业基础3:专业4:其它)一、实验目的熟练使用和任意一种面向对象编程语言实现几种常见的行为型设计模式,包括职责链模式、命令模式、观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。

二、实验内容1. 某企业的( ,供应链管理)系统中包含一个采购审批子系统。

该企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元与以上的采购单就需要开董事会讨论决定。

如下图所示:试使用职责链模式设计并模拟实现该系统。

2. 房间中的开关是命令模式的一个实例,现用命令模式来模拟开关的功能,可控制对象包括电灯和电风扇,绘制相应的类图并编程模拟实现。

3. 某软件公司欲开发一个基于平台的公告板系统。

系统提供一个主菜单(),在主菜单中包含了一些菜单项(),可以通过类的()方法增加菜单项。

菜单项的主要方法是(),每一个菜单项包含一个抽象命令类,具体命令类包括(打开命令),(新建命令),(编辑命令)等,命令类具有一个()方法,用于调用公告板系统界面类()的()、()、()等方法。

现使用命令模式设计该系统,使得类与类的耦合度降低,绘制类图并编程实现。

4. 某实时在线股票软件需要提供如下功能:当股票购买者所购买的某支股票价格变化幅度达到5%时,系统将自动发送通知(包括新价格)给购买该股票的所有股民。

试使用观察者模式设计并实现该系统,要求绘制相应的类图并编程模拟实现。

5. 某公司欲开发一套机房监控系统,如果机房达到某一指定温度,温度传感器()将自动传递信号给各种响应设备,例如警示灯()将闪烁(())、报警器()将发出警报(())、安全逃生门()将自动开启(())、隔热门()将自动关闭(())等,每一种响应设备的行为由专门的程序来控制。

南华大学计算机学院 VISUAL BASIC程序设计实验指导2

南华大学计算机学院 VISUAL BASIC程序设计实验指导2

南华大学计算机学院visual basic程序设计实验指导第二学期实验一(第5周)实验要求:掌握数组概念,包括控件数组、静态数组(一维数组、二维数组)等内容。

1、在名称为Form1的窗体上画出包含三个命令按钮的控件数组,名称为cmd1,下标分别为0、1、2,Caption分别为"开始"、"停止"和"退出",如图1(a)所示。

通过属性窗口设置各命令按钮的属性,使得程序开始运行时,"停止"按钮不可见,"退出"按钮不可用。

单击窗体时所有功能都恢复,编写程序实现。

如图1(b)所示。

注意:存盘时,将文件保存至考生文件夹下,且窗体文件名为sjt1.frm,工程文件名为sjt1.vbp。

图1(a)图1(b)2、创建一个工程文件sjt2.vbp,窗体文件sjt2.frm。

窗体上有一大一小两个名称分别为Shape2、Shape1的Shape控件。

请在属性窗口中将Shape1控件设置为圆形,并将其颜色设置为红色(颜色值为&H000000FF&),如图2所示。

要求:当单击窗体时,Shape1移动到矩形(即Shape2)左上角,再次单击窗体,则Shape1移动到矩形的右下角。

编写程序完成以上功能。

图23、随机生成数据输入到二维数组Mat中,在窗体上按5行、5列的矩阵形式显示出来,然后交换矩阵第二列和第四列的数据,并在窗体上输出交换后的矩阵,如图3所示。

图34、求Fibonacci序列1、1、2、3、5、8、…,前50项的和。

将数据存入使用数组F 中,要求在文本框输出1-50项的值,如图4所示。

要求单击输出按钮时在文本框输出序列,单击计算时,计算出总和。

图45、创建工程文件sjt5.vbp,窗体文件名为sjt5.frm。

在窗体上画一个文本框,名称为Text1(可显示多行),然后再画两个命令按钮,名称分别为Command1、Command2,标题分别为"读数"、"统计",如图5所示。

南华大学嵌入式系统概论课程设计Linux安装实验

南华大学嵌入式系统概论课程设计Linux安装实验

南华大学计算机科学及技术学院实验报告( 2015 ~2016 学年度第 1 学期)课程名称嵌入式系统原理及设计实验名称Linux系统安装姓名刘让洲学号20144350101专业软件工程班级01班地点9-120教师许纲理一.实验目的运用虚拟机学习安装Linux系统的方法,了解安装的步骤,基本设置以及Linux系统的基本操作。

二.实验内容利用Linux系统IO映像(Ubuntu 64版本)进行安装,配置相应设置。

1.新建一个Ubuntu 64 位Linux虚拟机2.安装Linux系统3启动系统创建用户登录系统三.实验环境Windows 10环境下,使用VMware虚拟机软件和Linux系统IO映像文件(Ubuntu 64版本)安装四.步骤如下1.创建新的虚拟机2.选择典型模式进行安装3.加载Linux镜像文件4.创建用户名和密码,用于登录5.设置相应属性(选择默认值)6.开始进行安装Linux系统(安装过程比较久,和安装windows系统一样,需要耐心等待)8.安装完毕,输入密码进行登录9.登录进入Linux系统操作界面10.进行打开文件夹并查看操作11.在Linux系统中打开浏览器12.在Linux系统中打开命令提示窗口12.在Linux系统中新建文件夹五.实验总结经过一番不懈的努力,终于在虚拟机上成功的安装了Linux系统,也是先百度了教程,发现其实版本不太对,索性就自己摸着石头过河算了。

Linux系统也有很多的版本,我选择的是目前比较流行的Ubuntu 版本,感觉界面很炫酷,虽然语言是英文的,但还是尝试着进行了新建文件夹,打开命令提示符窗口等操作。

Linux系统也是基于图形化接口的操作,即友好的图形化操作界面,这点和Windows很像,但好像Linux在某些方面更胜一筹。

体系结构实验报告

体系结构实验报告

中南大学软件学院软件体系结构设计模式实验报告学生姓名:宋昂所在学院:软件学院学生学号: 3901080115 学生班级:软件0801 指导老师:刘伟完成日期: 2010-12-7一、实验目的熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。

二、实验内容使用PowerDesigner和任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。

(1) 简单工厂模式使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Circle)、方形(Rectangle)和三角形(Triangle) 对象,每个几何图形都要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个UnsupportedShapeException,绘制类图并编程实现。

(2) 简单工厂模式使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数“M”,则返回一个Man 对象,如果传入参数“W”,则返回一个Woman对象,使用任意一种面向对象编程语言实现该场景。

现需要增加一个新的Robot类,如果传入参数“R”,则返回一个Robot对象,对代码进行修改并注意女娲的变化。

(3) 工厂方法模式某系统日志记录器要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可以根据要求动态选择日志记录方式,现使用工厂方法模式设计该系统。

用代码实现日志记录器实例,如果在系统中增加一个中的日志记录方式——控制台日志记录(ConsoleLog),绘制类图并修改代码,注意增加新日志记录方式过程中原有代码的变化。

南华大学计算机学院 VISUAL BASIC程序设计实验指导4

南华大学计算机学院 VISUAL BASIC程序设计实验指导4

南华大学计算机学院visual basic程序设计实验指导第7章菜单和常用ActiveX控件实验要求1、熟练掌握菜单设计,菜单事件及快捷菜单的弹出2、掌握通用对话框控件的使用实验1菜单及事件任务1在名称为Form1的窗体上画一个名称为Cmd1的命令按钮,标题为“命令按钮”。

然后建立一个菜单,标题为“控件”,名称为Menu1,包含两个子菜单项,一个是“显示命令按钮”,名称为SubMenu1;另一个是“隐藏命令按钮”,名称为SubMenu2,如图1所示。

编写适当的事件过程,使得程序运行时,如果选择“显示命令按钮”菜单命令,则显示命令按钮控件;而如果选择“隐藏命令按钮”菜单命令,则隐藏命令按钮控件。

注意:程序中不得使用变量,每个事件过程中只能写一条语句。

存盘时必须存放在文件夹下,工程文件名为sjt1.vbp,窗体文件名为sjt1.frm。

图1任务2在名称为Form1的窗体上设计一个菜单。

要求在窗体上添加名为menu0,标题为“菜单命令”的主菜单,再添加两个名称分别为“menu1”、“menu2”,标题分别为“不可用菜单项”、“上一菜单项可用”的子菜单,并且使程序运行时,menu1子菜单不可用,menu2子菜单已经选中(运行时的效果如图2所示)。

再编写适当的事件过程,使得程序运行时,单击“上一菜单项可用”,则“不可用菜单项”变为黑色(可用)。

要求程序中不得使用变量,且只有一条语句。

注意:存盘时必须存放在指定文件夹下,工程文件名为sjt2.vbp,窗体文件名为sjt2.frm图2任务3在名称为Form1的窗体上画一个名称为Txt1的文本框,再建立一个名称为mnuFormat的菜单,含五个菜单项,标题分别为“加粗”、“斜体”、“下划线”、分隔符、“退出”,名称分别为MnuFormat1、MnuFormat2、MnuFormat3、MnuFormat4、MnuExit。

请编写适当的事件过程,在运行时当用鼠标右键单击窗体时,弹出如图3(b)所示菜单,只显示菜单中的三个字体格式设置菜单项,选中一个菜单项后,则按所选菜单标题设置文本框中文本的格式。

南华大学tcp-ip课程设计实验分析报告

南华大学tcp-ip课程设计实验分析报告

南华大学tcp-ip课程设计实验报告————————————————————————————————作者:————————————————————————————————日期:根据老师这个学期所讲的tcpip协议内容,写的一个通过TCP协议,用C语言实现的同步聊天程序,中间测试环节,花了很多时间一直弄不出来,也问了很多班级里面的人,最后才搞定。

对字符串处理比较充分客户端源代码:服务器源代码编译源代码:gcc -Wall chq.c -o chqgcc -Wall server.c -o server 运行客户端程序:.chq 192.168.1.123 4567运行服务器程序:.server 192.168.1.123 4567运行的结果:客户端部分代码思路建立socketif((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1){perror("socket");exit(errno);}elseprintf("socket create success!\n");设置服务器ipbzero(&s_addr, sizeof(s_addr));s_addr.sin_family = AF_INET;s_addr.sin_port = htons(port);if (inet_aton(argv[1], (struct in_addr *)&s_addr.sin_addr.s_addr) == 0) {perror(argv[1]);exit(errno);}连接服务器*if(connect(sockfd,(struct sockaddr*)&s_addr,sizeof(struct sockaddr)) == -1){perror("connect");exit(errno);}elseprintf("conncet success!\n");服务器的部分代码思路设置侦听队列长度if(argv[3])listnum = atoi(argv[3]);elselistnum = 3;设置服务器ipbzero(&s_addr, sizeof(s_addr));s_addr.sin_family = AF_INET;s_addr.sin_port = htons(port);if(argv[1])s_addr.sin_addr.s_addr = inet_addr(argv[1]);elses_addr.sin_addr.s_addr = INADDR_ANY;把地址和端口帮定到套接字上if((bind(sockfd, (struct sockaddr*) &s_addr,sizeof(struct sockaddr))) == -1){perror("bind");exit(errno);}elseprintf("bind success!\n");侦听本地端口if(listen(sockfd,listnum) == -1){perror("listen");exit(errno);}else。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南华大学计算机科学与技术学院软件体系结构与设计模式作业(2016秋季学期)学号:***********班级:软件工程1班*名:***任课老师:蒋良卫作业内容:创建型设计模式日期:2016 年11 月6 日1 简单工厂模式1.1 作业题目使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W。

则返回一个对象Woman,用java语言实现该场景。

现在需要增加一个新的Robot类,如果传入参数R,则返回一个Robot对象,对代码进行修改并注意女娲的变化。

(1)绘制简单工厂模式结构视图;(2)请绘制该实例类图,并代码实现。

1.2 所用模式结构视图1.3 实例类图1.4 实例实现代码公共类:lrz0101Personpackage com.bluesky;public class lrz0101Person {public void play(){System.out.println("我还是一坨泥巴,女娲还没有构造我!");}}简单工厂类:lrz0101NvWapackage com.bluesky;public class lrz0101NvWa {public lrz0101Person madeMan(String s){lrz0101Person person = null;switch(s){case"M":person = new lrz0101Man();break;case"W":person = new lrz0101Woman();break;case"R":person = new lrz0101Robot();break;default:System.out.println("Sorry,女娲暂时没有造这种人的能力");person=new lrz0101Person();}return person;}}子类1:lrz0101Manpackage com.bluesky;public class lrz0101Man extends lrz0101Person{ public void play(){System.out.println("大家好,我是男人!我来自地球!");}}子类2:lrz0101Womanpackage com.bluesky;public class lrz0101Woman extends lrz0101Person{ public void play(){System.out.println("大家好,我是女人!我来自水星!");}}子类2:lrz0101Robotpackage com.bluesky;public class lrz0101Robot extends lrz0101Person{ public void play(){System.out.println("大家好,我是机器人!我来未知星球!");}}1.5 运行结果2 工厂模式2.1 作业题目现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器ImgReader,如gif图片读取器GifReader用于读取gif格式的图片,jpg图片读取器JPGReader用于读取jpg格式的图片。

图片读取器对象通过图片读取器工厂ImgReaderFactory来创建。

ImgReaderFactory是一个抽象类,用于定义创建图片读取器的工厂方法,其GifReaderFactory和JPGReaderFactory用于创建具体的图片读取器对象。

使用工厂方法模式,实现该程序的设计。

(1)绘制工厂模式结构视图(2)给出实例类图并实现代码。

2.2 所用模式结构视图2.3 实例类图2.4 实例实现代码图片读取工厂类:lrz0101ImageReaderFactorypackage com.bluesky1;public class lrz0101ImageReaderFactory {public lrz0101ImageReaderFactory productReaderFactory(String s) {lrz0101ImageReaderFactory reader =null;if(s.equals("JPG")){reader = new lrz0101JpgReaderFactory(); }else if(s.equals("GIF")){reader = new lrz0101GifReaderFactory();}else{reader =new lrz0101ImageReaderFactory(); }return reader;}}Jpg图片读取工厂类:lrz0101JpgReaderFactorypackage com.bluesky1;public class lrz0101JpgReaderFactory extendslrz0101ImageReaderFactory{public lrz0101ImageReader productImageReader(){ lrz0101ImageReader iread = newlrz0101GifReader();return iread;}}Gif图片读取工厂类:lrz0101JpgReaderFactorypackage com.bluesky1;public class lrz0101GifReaderFactory extendslrz0101ImageReaderFactory {public lrz0101ImageReader productImageReader(){ lrz0101ImageReader iread = newlrz0101GifReader();return iread;}}图片读取器类:lrz0101ImageReaderpackage com.bluesky1;public class lrz0101ImageReader {public void readImage(){}}Jpg图片读取器类:lrz0101JpgReaderpackage com.bluesky1;public class lrz0101JpgReader extendslrz0101ImageReader{public lrz0101ImageReader productImageReader(){ lrz0101ImageReader iread = newlrz0101JpgReader();return iread;}}Gif图片读取器类:lrz0101GifReaderpackage com.bluesky1;public class lrz0101GifReader extendslrz0101ImageReader{public void readImage(){System.out.println("Read GIF Image");}}测试类:Testpackage com.bluesky1;public class lrz0101Test {public static void main(String[] args) { lrz0101Test test = new lrz0101Test();lrz0101ImageReaderFactory irf = newlrz0101ImageReaderFactory();lrz0101ImageReaderFactoryir=irf.productReaderFactory("JPG");lrz0101ImageReaderFactoryir1=irf.productReaderFactory("GIF");lrz0101ImageReaderFactoryir2=irf.productReaderFactory("PNG");piti(ir);piti(ir1);piti(ir2);}public static voidcompiti(lrz0101ImageReaderFactory ir){if(ir instanceof lrz0101JpgReaderFactory ){ ir=(lrz0101JpgReaderFactory)ir;lrz0101ImageReaderireader=((lrz0101JpgReaderFactory)ir).productImageReader();ireader.readImage();}else if(ir instanceof lrz0101GifReaderFactory ) {ir=(lrz0101GifReaderFactory)ir;lrz0101ImageReaderireader=((lrz0101GifReaderFactory)ir).productImageReader();ireader.readImage();}else{System.out.println("无法读取该类型的图片格式");}}}2.5 运行结果3 抽象工厂模式3.1 作业题目某软件公司要推出一款新的手机游戏软件,该软件支持IOS、Android和Windows Phone等多个智能手机操作系统平台,针对不同的手机操作系统,该游戏软件提供了不同的游戏操作控制类(OperatioinController)游戏界面控制类(InterfaceController),并提供的相应的工厂类来封装这些类的初始化过程。

该软件要求具有较好的扩展性,以支持新的操作系统平台,为了满足上述要求,试采用抽象工厂模式对其进行设计。

(1)绘制抽象工厂模式结构视图;(2)请绘制该实例类图,并代码实现。

3.2 所用模式结构视图3.3 实例类图3.4 实例实现代码操作系统父类:lrz0101OperatingSystempackage com.bluesky4;public class lrz0101OperatingSystem {public lrz0101GameController gc;public lrz0101GameUiController guic;public lrz0101GameController getGameCtroller(){ return gc;}public lrz0101GameUiController getGameUiController(){return guic;}}游戏控制父类:lrz0101GameControllerpackage com.bluesky4;public class lrz0101GameController {public void play(){System.out.println("游戏控制加载中。

相关文档
最新文档