当前位置:文档之家› 软件设计模式(JAVA) 06_适配器模式_实验指导书

软件设计模式(JAVA) 06_适配器模式_实验指导书

软件设计模式(JAVA) 06_适配器模式_实验指导书
软件设计模式(JAVA) 06_适配器模式_实验指导书

实验(上机)六适配器模式

实验(上机)目的

1、练习使用结构型设计模式;

2、练习使用适配器模式的设计思路;

3、练习使用适配器模式实现“教务学生成绩排序查找”案例的实现。

实验(上机)课时

2学时

实验(上机)环境

JDK1.8\Eclipse Mars

预备知识

1、结构型模式;

2、适配器模式概述;

3、适配器模式的结构与实现;

4、适配器模式的应用实例;

5、缺省适配器模式;

6、双向适配器模式;

7、适配器模式的优缺点与适用环境。

实验(上机)内容

在为某学校开发教务管理系统时,开发人员发现需要对学生成绩进行排序和查找,该系统的设计人员已经开发了一个成绩操作接口ScoreOperation,在该接口中声明了排序方法Sort(int[]) 和查找方法Search(int[], int),为了提高排序和查找的效率,开发人员决定重用现有算法库中的快速排序算法类QuickSortClass和二分查找算法类BinarySearchClass,其中QuickSortClass的QuickSort(int[])方法实现了快速排序,BinarySearchClass的BinarySearch (int[], int)方法实现了二分查找。

由于某些原因,开发人员已经找不到该算法库的源代码,无法直接通过复制和粘贴操作来重用其中的代码;而且部分开发人员已经针对ScoreOperation接口(自己开发的接口)编程,如果再要求对该接口进行修改或要求大家直接使用QuickSortClass类和BinarySearchClass类将导致大量代码需要修改。

现使用适配器模式设计一个系统,在不修改已有代码的前提下将类QuickSortClass 和类BinarySearchClass的相关方法适配到ScoreOperation接口中。

新建解决方案,新建一个控制台应用程序,编写适配器模式类实现代码,实现以上需求的案例,要求编写为控制台应用程序,并能调试运行。

实验(上机)步骤

1、本实例类图:

OperationAdapter

--sortObj

searchObj

: QuickSortClass

: BinarySearchClass

+ + +OperationAdapter ()

Sort (int[] array)

Search (int[] array, int key) ...

: int[]

: int

ScoreOperation

+ +Sort (int[] array)

Search (int[] array, int key)

...

: int[]

: int

QuickSortClass

+

+

+

+

QuickSort (int[] array)

Sort (int[] array, int p, int r)

Partition (int[] a, int p, int r)

Swap (int[] a, int i, int j)

...

: int[]

: void

: int

: void

BinarySearchClass

+BinarySearch (int[] array, int key)

...

: int

Client

2、创建Adapter的工程,并根据模式的角色创建对应的包。

3、新建ScoreOperation:抽象成绩操作类,充当目标接口

p ackage Target;

public interface ScoreOperation {

// 成绩操作类:用户希望的接口方法

// 成绩排序

int[] Sort(int[] array);

// 成绩查找

int Search(int[] array, int key);

}

4、新建QuickSortClass:快速排序类,充当适配者

p ackage Adaptee;

public class QuickSortClass {

// 快速排序类

// 实现对数组的快速排序

public int[] QuickSort(int[] array) {

Sort(array, 0, array.length - 1);

return array;

}

public void Sort(int[] array, int p, int r) { int q = 0;

if (p < r) {

q = Partition(array, p, r);

Sort(array, p, q - 1);

Sort(array, q + 1, r);

}

}

public int Partition(int[] a, int p, int r) { int x = a[r];

int j = p - 1;

for (int i = p; i <= r - 1; i++) {

if (a[i] <= x) {

j++;

Swap(a, j, i);

}

}

Swap(a, j + 1, r);

return j + 1;

}

public void Swap(int[] a, int i, int j) {

int t = a[i];

a[i] = a[j];

a[j] = t;

}

}

5、新建BinarySearchClass:二分查找类,充当适配者package Adaptee;

public class BinarySearchClass {

// 二分查找,如果找到,返回1,找不到返回-1

// 查找的数组

// 查找的关键字

public int BinarySearch(int[] array, int key) { int low = 0;

int high = array.length - 1;

while (low <= high) {

int mid = (low + high) / 2;

int midVal = array[mid];

if (midVal < key) {

low = mid + 1;

} else if (midVal > key) {

high = mid - 1;

} else {

return 1; // 找到元素返回1

}

}

return -1; // 未找到元素返回-1

}

}

6、新建OperationAdapter:操作适配器,充当适配器

package Adapter;

import Adaptee.BinarySearchClass;

import Adaptee.QuickSortClass;

import Target.ScoreOperation;

public class OperationAdapter implements ScoreOperation {

// 维护与适配者之间的关联关系

private QuickSortClass sortObj; // 定义适配者QuickSortClass对象

private BinarySearchClass searchObj; // 定义适配者BinarySearchClass 对象

// 构造函数,初始化适配者对象

public OperationAdapter() {

sortObj = new QuickSortClass();

searchObj = new BinarySearchClass();

}

// 排序方法实现

public int[] Sort(int[] array) {

return sortObj.QuickSort(array); // 调用适配者类QuickSortClass 的排序方法

}

// 实现成绩查找方法

public int Search(int[] array, int key) {

return searchObj.BinarySearch(array, key); // 调用适配者类BinarySearchClass的查找方法

}

}

7、Client:客户端测试类

package Test;

import Adapter.OperationAdapter;

import Target.ScoreOperation;

public class Client {

public static void main(String[] args) {

// 针对抽象目标接口编程

ScoreOperation operation = new OperationAdapter();

// 定义成绩数组

int[] scores = { 84, 76, 50, 69, 90, 91, 88, 96 };

int[] result;

int score;

System.out.println("成绩排序结果:");

result = operation.Sort(scores);

// 遍历输出成绩

for (int i : result) {

System.out.println(i + ",");

}

System.out.println();

System.out.println("查找成绩90:");

score = operation.Search(result, 90);

if (score != -1) {

System.out.println("找到成绩90。");

} else {

System.out.println("没有找到成绩90。");

}

System.out.println("查找成绩92:");

score = operation.Search(result, 92);

if (score != -1) {

System.out.println("找到成绩92。");

} else {

System.out.println("没有找到成绩92。");

}

}

}

8、结果及分析

结束

考核内容

1、上交各自建立的电子版解决方案及项目。

2、用EA建模工具编制以上类图。

3、上交实验报告。

大学java课程设计实验报告_计算器

JAVA课程设计报告 组员信息: 第(二)组 计算器的实现问题 问题描述:制作一个计算器 基本要求:要求实现类似Windows操作系统里面的标准计算器。 在此基础上实现部分科学性的功能。 测试数据:分别对加、减、乘、除和sin、cos、tan函数进行测试 算法思想:使用String定义的数组a[25]对每个按钮进行按钮赋值,创建一个Panel进行字符和数字的存放,调用 addActionListener()对各个时间进行监听。调用 系统库函数对数值进行运算。 模块划分:1、主函数main()创建一个计算器。 2、void actionPerformed(ActionEvent e)对鼠标 点击的事件进行响应以及在文本框中的显示。 3、各Buuton对应的功能: “开方”:对输入数字开方 “平方”:对输入数字平方

“getResult()”:对四则运算进行分别运算操 作 “backspace”:取消上一次的操作 “CE”:取消上一次运算的操作 “C”:清空作用 “sin”:对输入数据进行sin运算 “cos”:对输入数据进行cos运算 “tan”:对输入数据进行tan运算 “+/-”:对输入的数据取反 “+”,“-”,“*”,“/”:对数据进行四则 运算 源程序: package hechongwei; import https://www.doczj.com/doc/5012670948.html,ng.String; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import https://www.doczj.com/doc/5012670948.html,ng.Math; class Calculator extends JFrame implements ActionListener

【3】微机原理与汇编语言程序设计课程设计实验指导书_图文_百.

《微机原理与汇编语言程序设计课程设计》 实验指导书 本课程设计包含软件部分和硬件部分两个环节。 软件部分完成在有限的课内实验环节无法涉及到的具有综合设计性的软件实验,如中断程序设计、I/O程序设计、宏设计等。硬件部分利用伟福试验系统设计一个电子钟电路,并编制一个程序使电子钟能正常运行。通过软硬件环节的设计和调试,巩固所学知识,增强动手能力,提高综合性工程素质。 总实验学时:共计2周 实验一:电话号码本设计完善 实验类型:综合性、设计性实验 学时:1天 适用对象:信息安全专业 实验二:显示器I/O程序设计 实验类型:综合性、设计性实验 学时:1天 适用对象:信息安全专业 实验三:中断程序设计 实验类型:综合性、设计性实验 学时:1天 适用对象:信息安全专业

实验四:发声系统设计 实验类型:综合性、设计性实验 学时:1天 适用对象:信息安全专业 实验五:键盘程序设计 实验类型:综合性、设计性实验 学时:1天 适用对象:信息安全专业 实验六:电子钟设计 实验类型:综合性、设计性实验 学时:5天 适用对象:信息安全专业 一、实验目的和要求 软件实验部分要求进一步熟悉汇编语言开发环境,掌握汇编语言程序设计的方法和步骤,并根据教师意见和讨论,完善改进课内环节所进行的实验及进行其他综合性、设计性较强的实验内容,具体如下: 1. 熟练掌握汇编语言程序设计环境,根据前期掌握程度,可选择Masm for windows集 成实验环境(实验室配备,或自行安装masm5.0、masm6.0、Emu8086,Tasm等,软件开发环境可由学生根据使用爱好自选。

2.根据课内实验验收时指导教师提出的意见,以及和同学讨论的结果,设计实现一个功能比较完善的电话号码本,并在设计中体现自己的工作特色,即具备和其他设计不同之处。 3. 显示器I/O程序设计,完成屏幕窗口控制程序。 要求在屏幕上开出三个窗口,它们的左上角和右下角的坐标分别是(5,10,(15,30和(5,50,(15,70和(18,15,(22,65,如从键盘输入字符,则显示在右窗口,同时也显示在下窗口的最下面一行。若需要将字符显示于左窗口,则先按下←键,接着再从键盘输入字符,字符就会从左窗口的最下行开始显示,同时下窗口也显示出左窗口的内容。如果再按下→键,输入字符就会接在先前输入的字符之后显示出来。当一行字符显示满后,窗口自动向上卷动一行,输入字符继续显示与最低一行,窗口最高一行向上卷动后消失。 4. 中断程序设计,完成内部中断服务程序和外部中断服务程序设计。具体要求为: (1.编写一个内部中断服务程序,使其能够显示以“0”结尾的字符串(利用显示器功能调用INT 10H。字符串缓冲区首地址为入口参数,利用DS:DX传递此参数。 (2.编写一个可屏蔽的外部中断服务程序,中断请求来自8259A的IRQ0,在新的外部中断服务程序(新08H中断中,使得每55ms的中断在屏幕上显示一串信息“A 8259A Interrupt!”,显示10次后,恢复原中断服务程序,返回DOS。 5.发声系统设计,参考教材中的例9.1,利用扬声器控制原理,编写一个简易乐器程序。 要求当按下1~8数字键时,分别发出连续的中音1~7和高音i(对应频率依次为524Hz、588Hz、660Hz、698Hz、784Hz、880Hz、988Hz和1048Hz;当按下其他键时,暂停发声。如果时间允许,可在此基础上自行发挥,如增加按键功能、编辑歌曲等。

java实验报告完整版

实验报告 (计算机与信息工程学院实验中心) 学期: 2014-2015 课程名称:《Java程序设计实验》 班级:信息1202 姓名:方逸梅 学号: 31 指导老师:费玉莲

《Java程序设计》 独立实验教学安排 一、实验的教学方式、安排及实验环境 (一)教学方式 对照本课程的实验教材,实验一至实验十一,由教师提示实验原理、方法、步骤等内容,在教师的指导下,学生独立完成程序设计及调试工作。实验十二的内容由学生自行设计完成。 (二)教学安排 学时数:30课时 学时安排:每次实验3学时,从学期第五周开始,共十次上机实验。 (三)实验环境 实验环境为JDK 。 (四)具体安排 地点:信息大楼实验室。 辅导:每个班次一名辅导老师,原则上由任课老师担任。 登记:实验完成,由辅导老师登记实验纪录。 学生:实验做完,完成实验报告内容,并在学期末上交实验册。 老师:批改实验,成绩与平时成绩一起占期末的30%。 二、实验的具体内容和要求 见实验报告。

浙江工商大学 计算机与信息工程学院实验报告(1)日期:地点:成绩: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 实验目的、实验原理和内容: 一、实验目的:熟悉Java开发环境及简单程序Java设计。 二、实验原理:SDK 的下载与安装,设置环境变量,安装java 虚拟机,使用Eclipse,编译Java 源程序,运行Java 程序。 三、实验内容及要求: 1.下载、安装并设置Java SDK 软件包。 2.熟悉Eclipse 编辑软件。 3.掌握运行Java 程序的步骤。 4.分别编写Application和Applet程序,显示字符串”Hello Java!欢迎使用!”。 要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。 程序一 public class hello { public static void main(String[] args) { for(int i=0;i<=4;i++) { "Hello java! 欢迎使用!"); } }

仲恺软件设计模式实验指导书全解

设计模式实验指导 一、实验目的 使用合理的UML建模工具(ROSE或者Visio)和任意一种面向对象编程语言实现几种常用的设计模式,加深对这些模式的理解,包括简单工厂模式、工厂方法模 式、抽象工厂模式、单例模式、适配器模式、组合模式、装饰模式、外观模式、、命令模式、迭代器模式、观察者模式、策略模式等12种模式。 二、实验内容 根据以下的文档描述要求,使用合理的UML建模工具(ROSE或者Visio)和任意一种面向对象编程语言实现以下设计模式,包括根据实例绘制相应的模式结构图、编写模式实现代码,运行并测试模式实例代码。 (1)、简单工厂模式 使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,请实现该场景。现需要增加一个新的Robot类,如果传入参数R,则返回一个Robot对象,对代码进 行修改并注意女娲的变化。 (2)、工厂方法模式 海尔工厂(Haier)生产海尔空调(HaierAirCondition),美的工厂(Midea)生产美的空调(MideaAirCondition) 。使用工厂方法模式描述该场景,绘制类图并编程实现。 (3)、抽象工程模式 电脑配件生产工厂生产内存、CPU等硬件设备,这些内存、CPU的品牌、型号并不一定相同,根据下面的“产品等级结构-产品族”示意图,使用抽象工厂模式实现电脑配件生产过程并绘制相应的类图,绘制类图并编程实现。

(4)、单例模式 用懒汉式单例实现在某系统运行时,其登录界面类LoginForm只能够弹出一个,如果第二次实例化该类则提示“程序已运行”。绘制类图并编程实现。 提示:不要求做界面,用类模拟界面就可以了。 (5)、组合模式 使用组合模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件ImageFile、音频视频文件MediaFile。绘制类图并编程实现。 (6)、适配器模式 现有一个接口DataOperation定义了排序方法sort(int[]) 和查找方法search(int[], int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法,类BinarySearch 的binarySearch(int[], int)方法实现了二分查找算法。现使用适配器模式设计一个系统,在不修改源代码的情况下将类QuickSort和类BinarySearch的方法适配到DataOperation接口中。绘制类图并编程实现。(要求实现快速排序和二分查找) (7)、装饰模式 某图书管理系统中,书籍类(Book)具有借书方法borrowBook()和还书方法returnBook() 。现需要动态给书籍对象添加冻结方法freeze()和遗失方法lose()。使用装饰模式设计该系统,绘制类图并编程实现。 (8)、外观模式 在电脑主机(Mainframe)中,只需要按下主机的开机按钮(on()),即可调用其他硬

Java课程设计实验报告

Java课程设计实验报告 导语:日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。以下是小编为大家整理分享的Java课程设计实验报告,欢迎阅读参考。 1、加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2、使用本学期学习的Java SE技术完成多功能日历GUI 程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3、在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 1、问题描述准确、规范。 2、程序结构合理,调试数据准确、有代表性、。 3、界面布局整齐,人机交互方便。 4、输出结果正确。 5、正确撰写实验报告。 编写一个GUI程序实现日历的功能。一年日历用12页

显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农 历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报 时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 1、在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2、在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3、各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4、根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5、详细的上机实验步骤见任务分工及程序设计进度表。 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能

数据结构课程设计实验指导书

《数据结构课程设计》实验指导书 1.1 实验报告撰写的基本要求 1.1.1 问题描述 这一部分需要简单介绍题目内容,即该实验到底要做什么。 1.1.2 算法说明 这一部分需要详细描述解决问题需要用到算法和重要的数据结构,即该实验到底应该怎么做。 基本要求:处理问题中所用到的关键算法都要描述清楚,而不是仅描述主函数。算法和数据结构可用伪码和图示描述,不要只写源代码和注释。 1.1.3 测试结果 这一部分内容需要紧扣实习的题目类型和要求,涉及提供相应的测试方法和结果。 对于需要利用某算法解决某问题的题目,应设计并填写一张测试用例表。每个测试用例一般包括下列内容: (1)测试输入:设计一组输入数据; (2)测试目的:设计该输入的目的在于测试程序在哪方面可能存在漏洞; (3)正确输出:对应该输入,若程序正确,应该输出的内容; (4)实际输出:该数据输入后,实际测试得到的输出内容; (5)错误原因:如果实际输出与正确输出不符,需分析产生错误的可能原因; (6)当前状态:分为“通过”(实际输出与正确相符)、“已改正”(实际输出与正确输出不符,但现在已修改正确)、“待修改”(实际输出与正确输出不符,且尚未改正)三种状态; (7)测试结果分析:需要详细解释测试策略,对得到的数据进行分析,总结出算法的时空复杂度,得出自己对算法性能等方面分析的结论。 附录:源代码 源代码列在附录中,要求程序风格清晰易理解,有充分的注释,有意义的注释行少于代码的30%将不能得分。

1.2 实习作业的提交要求 每个实习项目结束后,学生按照实验报告格式和内容要求提交实验报告(打印稿)1份,与此同时提交压缩后的电子资料1份,电子资料要求按照如下方式打包: 文档夹:包括电子版的实验报告 学号姓名.rar 源代码文件 代码夹:源代码文件对应的可执行文件 readme.txt文件,告知如何编译源代码,生 成可执行文件

java设计模式结课论文

论文 2012 — 2013学年第 2 学期 论文题目备忘录模式 学生姓名 学号 专业班级 指导教师 2013 年7 月 1 日

备忘录模式 1.备忘录模式概述 对象的状态依赖于它的变量的取值情况,对象在程序运行期间的各个时刻可能具有不同的状态。在某些应用中,程序可能需要使用一种合理的方式来保存对象在某一时刻的状态,以便在需要时,对象能恢复原先保存的状态。在备忘录模式中,称需要保存状态的对象为“原发者”,称负责保存原发者可以访问备忘录中的细节,即可以访问备忘录中的数据,以便恢复原发者的状态,而负责人只能保存和得到备忘录,但访问备忘录中的数据收到一定的限制。备忘录模式使原发者可以将自己的状态暴露内部数据的同时,又保证了数据的封装性。另外,经过精心设计的备忘录通过保存原发者状态中最本质的数据,就能使原发者根据此备忘录中的数据恢复原始状态。 2.备忘录模式的定义 备忘录模式是关于怎样保存对象状态的成熟模式,其关键是提供一个备忘录对象,该备忘录负责存储一个对象的状态,程序可以在磁盘或内存中保存这个备忘录,这样以后就可将该对象恢复到原先保存的状态。 3. 备忘录模式的结构和使用 3.1备忘录模式包括三种角色:

原发者(Originator):需要在某个时刻保存其状态的对象。原发者负责创建备忘录,比如使用createMemento()方法创建一个备忘录,然后原发者该备忘录记录自己的状态。当原发者需要恢复某个时刻的状态是,它通过获得相应的备忘录中的数据来恢复那个时刻的状态,比如原发者调用restoreFromMemento(Memento mem)方法,并通过参数men制定的备忘录恢复状态。 备忘录(Memento):负责存储原发者状态的对象,创建备忘录的类和创建原发者的类在同一个包中,该类提供的访问数据的方法都是友好方法,是的只有和原发者在同一个包中的类的实例才可以访问备忘录中的数据。 负责人(Caretaker):负责管理保存备忘录的对象。负责人如果不和原发者在同一个包中,就不能对备忘录中的内容进行修改或读取。如果需要将备忘录保存到磁盘,负责人可以使用对象流将备忘录写入文件。 3.2备忘录模式的UML类图 备忘录模式的类图如图所示,备忘录模式中原发者角色,Recoder 类的实例是备忘录(Menmento)角色,SaveRecoder类的实例是负责人(Caretaker)角色。

统一建模语言实验教学大纲

《统一建模语言》实验教学大纲 课程名称:统一建模语言 英文名称:Unified Modeling Language 课程编号:22151202 课程性质:课程类型:专业必修是否为独立设课的实验课:否 适用专业:软件工程专业应用软件方向 学时与学分:总学时:90 总学分:4 实验学时:36 实验学分:1 执笔人:陈昊 制定时间:2010年7月修订 一、实验课的任务、性质与目的: 《统一建模语言》是软件工程专业应用软件方向专业必修课程。该课程的特点是涉及面广、实用性强。本课程的目的是使学生在学习面向对象程序设计的基本原理以及掌握一门面向对象编程语言之后,进一步了解和掌握建模语言——UML(统一建模语言),从而提高软件开发的能力与水平。该课程不仅要求掌握UML的基础知识,而且还要求学生通过本课程实验,掌握UML的应用技术,并具备使用UML建模工具来支持软件开发过程的基本技能。 本课程实验目的是验证、巩固和实现课堂讲授的UML基础知识,并依据课程讲授的案例来对一个待开发系统进行建模。本课程实验能培养与提高学生使用UML进行面向对象系统分析与设计的能力,为今后的从事软件开发工作打下基础。 实验内容主要围绕熟悉UML图形元素、模型元素、通用机制以及建模过程而进行。实验的安排和要求是:使用建模工具实现结构建模、行为建模、体系结构建模;使用建模工具进行团队开发;使用建模工具进行正向与逆向工程;在建模工具的支持下,使用UML的基本元素建模设计模式;依据课堂案例中所采用的软件开发过程,在建模工具的支持下,进行软件建模。本课程实验内容能使学生加深对UML基础知识的理解,进一步提高使用建模工具进行软件建模的能力,并使他们对软件开发过程有初步的认识。 二、主要仪器设备及环境: 硬件设备: 高档微机 软件环境: Windows XP中文版 IBM Rational Software Architect 6.0 or IBM Rational Modeler 6.0 IBM Rational Rose 2003 JDK 5.0 Visual Studio 6.0开发环境 三、实验项目的设置与实验内容

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

《面向对象程序设计》课程设计实验指导书2013

《面向对象程序设计》课程设计 实验指导书 武汉理工大学理学院 物理科学与技术系 2013年2月1日

目录 设计一简单计算器 (1) 设计二模拟时钟程序 (4) 设计三 24点游戏 (8) 设计四多媒体视频播放器 (11) 设计五幸运52 (14) 设计六简单画图程序 (17) 课程设计说明书要求 (20)

设计一简单计算器 一、概述 在运算过程中,通过使用计算器能减少运算量。既可以用“计算器”的标准视图执行简单的计算,也可以用其科学型视图执行高级的科学计算。用户使用“计算器”执行所有通常用手持计算器完成的标准操作。 简单计算器包括双目运算和单目运算功能。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,阶乘,对数,开方,倒数等运算。简单计算器可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算,同时包含清除,退格,退出功能。简单计算器出现错误会给出相应错误提示。而且可以操作与运算按钮相对应的菜单项。 通过对简单计算器的设计,可以熟悉MFC编程,包括Visual C++在数学计算方面的知识、算法设计、对话框和控件的使用及应用程序的调试,同时对面向对象与可视化程序设计有一定的认识,并提高动手编程的能力。 二、设计任务 1、提出总体方案的设计思想和原理,绘制程序流程图和描述程序的功能,并说明程序的特点和难点。具体如下: 执行简单计算: (1) 键入计算的第一个数字。 (2) 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。 (3) 键入计算的下一个数字。 (4) 输入所有剩余的运算符和数字。 (5)单击“=”。 执行科学计算:能够执行阶乘、正弦、余弦和指数运算。 2、添加相关控件,制作与用户交互性较好的应用程序界面。

浅谈课程设计模式

?89? □王 哲,郭长侠,董 光 (吉林省经济管理干部学院,吉林 长春130012) [摘要]课程设计是教学过程中的一项重要环节,是完成教学计划达到教学目标的重要方法,它有助 于学生深入地理解课堂上所学的理论知识、掌握实验课程中所学的实践技能,也有助于全面地提高学生的综合素质。为培养符合高职高专教学特色的应用型人才,高职高专院校各专业的课程设计必须要实现实用性、理论性与实践性的紧密衔接。[关键词]课程设计;模式;步骤[中图分类号]G423[文献标识码]A [文章编号]1009-0657(2006)04-0089-03 [收稿日期]2005—12—15 [作者简介]王哲(1981—),男,吉林省长春市人,吉林省经济管理干部学院计算机系教师,主要从事计算机基础和计算机 网络方面的教学与研究工作。 随着我国社会经济发展的多样化,对高等职业技术学院的办学思路、专业结构、管理方式和培养模式提出了新的任务和要求,坚持搞好实践性教学环节既是培养社会所欢迎的应用型人才的必经之路,更是人才培养模式的重要内容。强化学生设计能力和实际动手能力,突出创新意识和创新精神的培养模式是高职院校素质教育的核心和基本特征之一。所以,高等职业院校在建立人才培养模式和深化教学改革的过程中应高度重视实践性教学环节。实践教学环节主要包括课程实验、课程设计、毕业设计三部分,而课程设计在实践教学环节中起到关键的纽带作用。 在实践教学过程中,我们通常模糊了课程实验与课程设计的概念。课程实验应具有时间要求,即与该课程的理论学习同步进行,还应按统一的格式要求写出相应的实验报告。课程实验是帮助学生理解和巩固基础理论,培养学生实验技能、独立工作能力和科学研究方法的重要环节。课程实验的考核一般是对课程实验项目及实验操作水平的考核;课程设计是围绕一门专业基础课或专业课的内容所进行的实践性教学环节,是理工类专业学生必须完成的实践教学内容之一。它是根据教学计划的要求,在浅谈课程设计模式 教师指导下对学生进行阶段性的实践技能的训练;是实现由知识向智能的初步转化,也是对学生综合分析能力、独立工作能力的培养与检查过程。课程设计的任务就是把社会发展的客观要求、知识增长的客观趋势和学生成长的客观需要转化为具有适当水准、适当内容和结构优化的教学实践内容。同时,培养学生具有独立设计、开发、总结的能力以及协作和创新意识。课程设计主要考核学生综合运用已学过的理论知识和实践技能去分析和解决实际问题的能力。根据课程专业性质的不同,理工类各专业至少应安排三至四门课程的课程设计,时间安排是在教学过程中一般停课1至2周去完成某门课程的课程设计。 就目前而言,大多数的高职院校对课程设计不够重视,课程设计的要求不够规范,在教学计划制定过程中对课程设计的课时及实施步骤的叙述不明确,甚至遗漏。为规范课程设计这一实践性教学环节,以培养学生综合素质和专业知识的应用能力,我们认为:形成一套完整的课程设计模式是十分必要的。在课程设计过程中对设计题目、设计方法和设计手段进行全面改革,以培养学生的创新能力、综合分析能力、系统设计能力、协作能力以及形成市场意识。在课程设 第20卷第4期吉林省经济管理干部学院学报 V ol.20No.42006年8月Journal of Jilin Province Economic Management Cadre College August 2006

JavaWeb课程设计实验报告

湖南科技大学计算机科学与工程学院 WEB编程课程设计报告 题目:网上购物商店 学号:1111111111 姓名: 1 指导老师: 1 完成时间:111111111

目录 一、设计内容 (3) 二、设计方法 (4) 1、网站的整体结构设计 (4) 2、网站设计的技术方案 (5) 3、网站的界面设计 (6) 三、实现方法 (8) 1、数据库的设计 (8) 2、网站具体的实现过程 (10) 开发环境: (10) 设计思路 (10) 四、心得体会 (11)

随着互联网时代的迅猛发展,人们的生活方式已经发生了翻天覆地的变化,传统的实体店购物方式已经不能满足人们的需求,传统购物方式购物不方便,非得出门才能购物,去到了实体店有不一定有自己满意的商品,有时候会浪费大量的时间和精力。 随着网络的全面覆盖,网上支付系统的逐步完善,物流业的快速兴起,网上购物已经成为了当今购物的潮流。 网上购物商店主要满足人们足不出户就能买到自己想要的物品的需要,同时也为商家省去了昂贵的门面租赁费用,而且商品还可以卖到全国各地,大大的扩大了客源又节省了成本。 网上购物商店主要有以下几个方面的功能: 顾客可以浏览整个网站的商品,可以再网站进行注册,注册之后可以登录并购买商品,同时也可以查看和修改自己的个人信息,为了安全的需求,还可以修改密码。 商家,也就是店主,管理员,可以管理网站所出售的所有商品,同时也可以对在网站进行注册的用户进行管理。 1、用户登录、注册功能 (1)注册功能:用户进入网站,如果有兴趣在该商店购买商品,那么用户就可以注册。 (2)登录功能。已经注册的用户可以登录,登录之后方可购买商品。 (3)查看、修改用户信息功能。 (4)修改密码,为了用户安全的需要,经常更换密码可以保证用户账户的安全。 2、购物功能 (1)物品浏览:顾客进入网站,就可以浏览网站的商品。 (2)商品购买:顾客注册自己的账户,并登录之后就可以在网站购买商品了。购买商品的步骤如下; a)添加商品到购物车 b)确定购买 3、商品管理:管理网站所出售的商品。 4、用户管理:管理员对在网站注册的用户进行管理。 5、订单管理:对用户的订单进行管理。

软件工程课程设计指导书

软件工程课程设计指导书 作者:周兵 软件工程课程设计是为了加强和巩固软件工程这门学科知识及技能的学习而开设的,它是一门实践性的课程,上机实验是其主要的环节。本实验指导书是帮助同学们进行上机实验而制订的。 一、实验目的: 1.能按照软件工程的思想,采用面向对象的方法开发出一个小型软件系统。 2.在此过程中,能综合利用以前所学习的专业知识。 3.加深对软件工程这门学科知识的理解,并掌握其基本的技能及方法,培养良好的软件开发素养。 二、面向专业:计算机科学与技术 三、先修课程:一门计算机高级语言、C++语言、数据库系统概论 四、上机学时数:10学时 五、实验环境 1.单机模式 操作系统:Windows 开发工具:C++ Builder 6.0、Access 2000 六、课程设计的基本要求 1. 基本了解和掌握面向对象的开发的过程与方法。 2. 基本能够完成所要求的系统。 3. 报告文档符合具体要求。 七、设计内容 题目:选课系统 1.说明:本设计选择广大学生最熟悉的选课系统最为设计任务,便于同学联系实际,学以至用。但限于具体条件和时间的限制,宜采用C++ Builder 6.0、Access 2000。 2.具体要求: 1)数据要求 所存储和查询的数据要符合本学校的具体情况,所涉及的字段至少应包括(名称可 以不同):学生姓名、学号、登陆密码、性别、出生年月、籍贯、地址、学生电话、家庭地址、教师号、教师姓名、教研室、职称、性别、教师电话、课名、课号、学 分、先行课号、课时、开课教室、人数限制、选课人数、考试成绩、平时成绩、总 评成绩。 2)功能要求 功能至少应有:等录、查询开课情况、查询选课情况、查询成绩、选课、退课等。 3)设计要求 整个系统的开发过程及方法应符合软件工程的要求,软件能够正常运行。 八、报告

软件工程实践实验指导书XXXX

《软件工程实践》实验指导书 学院:数学与计算机学院 专业:计算机专业 年级: 指导教师:汪璟玢 系主任(或教研室主任):

本课程实验教学目的和基本要求: 知识方面:通过本课程设计,让学生进一步了解软件项目管理、需求分析、系统设计和软件测试的基本原理和方法,在软件开发的各个阶段熟悉并掌握一种表达工具,实现一个小规模的系统开发。 能力方面:在本课程设计过程中,注重培养学生分析问题和独立解决问题的能力。 素质方面:通过本课程设计,着重培养学生具备以下两方面的良好素质:一是针对实际系统中存在的问题,能够善于运用所学基本理论知识分析问题;二是规范地表达分析和设计方案。 本课程设计要求学生3-6人一组完成一个系统,并按照软件工程的规范形成相关文档资料。 参考资料: 1.《软件工程实践者的研究方法》(第六版)(美)Roger S.Pressman著, 郑人杰马素霞白晓颖译,机械工业出版社 2.《软件工程实践者的研究方法》(第五版)(美)Roger S.Pressman著, 梅宏译,机械工业出版社 3.《软件工程》(第六版)(英)Ian Sommerville著,程一剑陈霞译,机 械工业出版社 4.《软件工程》郑人杰主编, 清华大学出版社 5.《软件工程—理论、方法与实践》孙家广主编,刘强编著,高等教育出版 社

实验一:项目选择与用例图表达 目的:结合具体的项目,要求学生结合用例图和用例文本的方法将系统功 能表达清楚。 内容:项目选择、参与者确定、用例识别、用例间的关系表达,用例文本的表达 要求:能够发现任务与用例的关系、用例间的关系并准确表达、用规范的 用例文本描述用例。 开发环境和工具要求掌握:Windows200 Advanced Server、Rational Rose2003、MS visio2003 实验二:系统需求分析报告—类图 目的:通过本次实验掌握对具体项目进行类的识别和分析,并完成系统类图。 内容:识别类、确定类的属性和操作、分析类间的关系完成类图 要求:调查工作要深入,对系统的业务流程要充分了解;结合系统的功能 进行类的分析。 开发环境和工具要求掌握:Windows200 Advanced Server、MS visio2003、Rational Rose2003 实验三:系统需求分析报告—数据流图 目的:结合具体项目,训练学生的抽象分析及分层描述问题的能力,联系 数据和功能,分层次表达系统的功能。 内容:任务分解;识别外部实体、加工、数据存储和数据流;分层次表达的方法。 要求:调查工作要深入,对系统的业务流程要充分了解;结合系统的功能 分解进行数据流图的绘制。 开发环境和工具要求掌握:Windows200 Advanced Server、MS visio2003

java课程设计实验报告

Java课程设计实验报告实验题目:打字游戏小程序 专业:计算机科学与技术系 班级:1202班 成员:

Java课程设计(打字游戏小程序) 一、课程设计目的 经过一学期的java学习,能灵活运用书中和实验中所学习的各类知识和技巧,并且能在程序开发中得以很好的运用和发挥。在以后的学习和工作中,可以从中获取很好的经验,并且锻炼自己开发程序和创新的意识。 二、课程设计内容 1.课程设计简介 设计的是一个打字的小游戏,屏幕上不断地有英文字母下落,键盘输入字母,屏幕上与输入的字母形同的就会消失,并计分,如果有没有消去的字母掉到屏幕底,将扣分。 2.设计说明 因为要进行键盘操作,所以引用了event包,还要注册事件监听。字母是随机产生的,又要用。注册了线程。还要对窗口定义坐标,防止字母出现在同一位子。并且通过一位数组来给随机出现的字母做坐标定义。主要通过一位数组来控制字母的坐标,并且通过字母坐标的改变来对整个游戏的流程进行控制。 3.设计流程图 4.实现功能 随机产生字母,运用了键盘操作当按对屏幕中出现的字母时,该字母全部消失,并且在分数上相应的增加或减少。 5.详细设计(源代码) 1) packageDownCharGame; import import import /** *下落的字母实体类 *@authorshenbf * */ publicclassCharEntity{ raw(g); } etY()>=480){ etX((int)()*580)+30); chs[i].setY(0);

chs[i].setColor(newColor((int)()*256), (int)()*256),(int)()*256))); chs[i].setCh((char)(65+(int)()*26))); } chs[i].down(); } repaint();tart(); } publicvoidkeyTyped(KeyEvente){ } publicvoidkeyPressed(KeyEvente){ } publicvoidkeyReleased(KeyEvente){ etCh()||key==chs[i].getCh()+32){ etY()

数据结构课程设计实验指导书

数据结构课程设计 指 导 书 东华大学计算机科学与技术学院 2017年1月

目录 1.前言 (1) 1.1指导思想 (1) 1.2设计任务 (1) 1.3参考进度 (2) 1.4成绩评定 (2) 1.5注意事项 (3) 1.6参考书目 (3) 2.个人任务 (4) 2.1 排序算法设计 (4) 2.2 应用算法设计 (4) 3 小组任务 (6) 3.1 有向图问题 (6) 3.2 最小生成树问题 (6) 3.3 关键路径问题 (6)

1.前言 《数据结构》是计算机科学与技术专业的一门核心专业基础课程,其主要任务是培养学生的算法设计能力及良好的程序设计习惯。通过学习,要求学生掌握典型算法的设计思想及程序实现,能够根据实际问题选取合适的存储方案、设计出简洁、高效、实用的算法,并为后续课程的学习及软件开发打下良好的基础。 1.1指导思想 本次课程设计的指导思想是: 1、学习获取知识的方法; 2、提高发现问题、分析问题和解决实际问题的能力; 3、加强创新意识和创新精神; 4、加强团队的分工与合作; 5、掌握面向实际背景思考问题的方法。 1.2设计任务 本次课程设计任务主要分为个人任务和小组任务两种。 个人基本任务: 在DHU-OJ平台上按要求完成“个人任务”部分的设计任务,其中选做题不是必须完成的任务。 小组任务: 完成“小组任务”部分的设计任务,其中选做题不是必须完成的任务。1.1要求 1、每项目小组人员为3~5名。 2、每项目小组提交一份课程设计报告,内容包括:课题名称,课题参加人 员名单和分工,课题的目的,课题内容,需求分析、概要设计、主要代码 分析、测试结果、课题特色和创新之处、收获与体会、使用说明。 3、每人必须在完成个人任务的基础上提交个人任务的设计报告,内容包括:

java课程设计实验报告

一实验目的 加深学生对课堂讲授内容的理解,从计算机语言的基本概念、程序设计的基本方法、语法规则等方面加深理解,打好程序设计、开发软件的良好基础。在上机实验中,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。在对Java 程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。通过上机实践,加深学生对计算机软件运行环境,以及对操作系统与计算机语言支持系统相互关系的了解。 二、实验要求 (1)问题描述准确、规范; (2)程序结构合理,调试数据准确、有代表性; (3)界面布局整齐,人机交互方便; (4)输出结果正确; (5)正确撰写实验报告。 三、设计内容 1、计算器 计算器要有GUI界面,用户可以输入所需计算的数值,可以进行加、减、乘、除四种最基本的运算和混合运算,可以求一个数值的平方及倒数,可以进行阶乘运算,要能运算小数,并且不会产生精度损失,在必要情况下,可以进行四舍五入的运算。允许正负数间的运算。要求使用Applet实现该计算器,当用浏览器运行程序时,点击网页中的按钮,则计算器弹出,浮在网页上,再次点击按钮时,计算器消失。 2、文本编辑器 可以设置文本的字体、大小、颜色等基本参数,可以读取计算机中TXT文件,可以生成一个新的TXT文件。其他功能参照windows的文本编辑器。

四.实验步骤 (1)上机实验之前,为课程设计的内容作好充分准备。对每次上机需要完成的任务进行认真的分析,画出程序流程图,手工写出符合任务要求的程序清单,准备出调试程序使用的数据,以便提高上机实验的效率。 (2)按照实验目的和实验内容进行上机操作。录入程序,编译调试,反复修改,直到使程序正常运行,得出正确的输出结果为止。 (3)根据实验结果,写出实验报告。 五. 源代码及运行结果 1.计算器源代码 import .*; import .*; import .*; public class jisuanqi extends WindowAdapter { , "=", "+","n!" ,"关闭" }; static double a, sum=1; static String s, str ;rame(); } public void frame() { etBackground; txt = new TextField(""); (false);ddActionListener(new buttonlistener());ddActionListener(new close()); (this); (new BorderLayout());.计算器运行界面(1)计算器主界面

算法设计与分析课程设计-实验指导书

算法设计与分析课程设计 实验指导书 上海第二工业大学 计算机与信息学院软件工程系

一、运动员比赛日程表 设有n=2k个运动员要进行网球比赛。设计一个满足以下要求的比赛日程表: ●每个选手必须与其它n-1个选手各赛一次 ●每个选手一天只能赛一次 ●循环赛一共进行n-1天 1、运用分治策略,该问题的递归算法描述如下,根据算法编制程序并上机 通过。 输入:运动员人数n(假定n恰好为2的i次方) 输出:比赛日程表A[1..n,1..n] 1. for i←1 to n //设置运动员编号 2. A[i,1]←i 3. end for 4. Calendar(0,n) //位移为0,运动员人数为n。 过程Calendar(v, k) //v表示位移(v=起始行-1),k表示运动员人数。 1. if k=2 then //运动员人数为2个 2. A[v+2,2]←A[v+1,1] //处理右下角 3. A[v+1,2]←A[v+2,1]//处理右上角 4. else 5. Calendar(v,k/2) //假设已制定了v+1至v+k/2运动员循环赛日程表 6. Calendar(v+k/2,k/2) //假设已制定了v+k/2+1至v+k运动员循环赛日程表 7. comment:将2个k/2人组的解,组合成1个k人组的解。 8. for i←1 to k/2 9. for j←1 to k/2 10. A[v+i+k/2,j+k/2]←A[v+i,j] //沿对角线处理右下角 11. end for 12. end for 13. for i←k/2+1 to k 14. for j←1 to k/2 15. A[v+i-k/2,j+k/2]←A[v+i,j] //沿对角线处理右上角 16. end for 17. end for 18. end if 2、编制该问题的非递归算法,上机通过。 将如上文件保存在命名为“学号+姓名+实验一”的文件夹中并上传到指定的服务器。

相关主题
文本预览
相关文档 最新文档