JAVA课程设计连连看(含代码)

JAVA课程设计连连看(含代码)
JAVA课程设计连连看(含代码)

Java程序课程设计任务书

1、主要内容:

本程序基本实现了小游戏连连看的功能,玩家找出游戏中2个相同图案的方块,如果它们之间的连接线不多于3根直线,则将其连接起来,就可以成功将图案相同的方块消除,否则不会消失,当游戏中已没有满足条件的图案时,点击重列,可重新排序,游戏结束会跳出所得分数,该游戏的特点是与自己竞争,超过自己之前所创纪录。

2、具体要求(包括技术要求等):

a. 该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是

6行5列方块拼接,共有30格小方块。方块上随机分布一些数字,数字的要求是至少两两相同,位置随机打乱。

b.当将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,

否则无效,若连接一对成功就消失于界面,继续游戏,直到游戏结束,并能返回所得分数。

c. 重列按钮(帮助)的功能:游戏过程中,遇到困难难以寻找下一符合要求

的一对数字,可按左下按钮重置重新排列方可继续游戏。

d. 退出按钮:击左下方的“退出游戏”按钮,即可结束游戏。

e.运用基于SWING的图形用户界面设计知识等。

3、学习并掌握以下技术:Java等

4、熟练使用以下开发工具:Jcreate 等

实现系统上述的功能。

三、计划进度

12月28日-12月29 日:课程设计选题,查找参考资料

12月30日-12月31日:完成需求分析、程序设计

1月1日-1月3日:完成程序代码的编写

1月4日-1月6日:系统测试与完善

1月7日-1月8日:完成课程设计报告,准备答辩

四、主要参考文献

[1] (美)埃克尔著陈昊鹏,饶若楠等译. Java编程思想[J]. 机械工业出版社,2005

[2](美)Gary J.Bronson著张珑刘雅文译. Java编程原理[J]. 清华大学出版社,2004

[3](美)Michael Morrison著徐刚,于健,薛雷译. 游戏编程入门[J]. 人民邮电出版社,2005.9

[4](美)Wendy Stahler著冯宝坤,曹英译. 游戏编程中的数理应用[J]. 红旗出版社,2005

[5](美)克罗夫特(David Wallace Croft)著彭晖译. Java游戏高级编程[J]. 清华大学出版社,2005

[6](美)David Brackeen著邱仲潘译. Java游戏编程[J]. 科学出版社,2004

[7] 聂庆亮编著. Java应用开发指南[J]. 清华大学出版社,2010

[8] 耿祥义,张跃平编著. Java面向对象程序设计[J]. 清华大学出版社,2010

[9] 杨绍方编著. Java编程实用技术与案例[J]. 清华大学出版社,2000.11

[10] 明日科技编著. Java编程全能词典[J]. 电子工业出版社,2010

摘要

随着Java语言的不断发展和壮大,现在的Java已经广泛的应用于各个领域,包括医药,汽车工业,手机行业,游戏,等等地方。Java游戏的开发为满足人们娱乐所需而设计。

本游戏为连连看游戏,是基于Java的图形用户界面而开发的,可以放松心情的小游戏。游戏从系统操作简便、界面友好、灵活、上手即会的基本要求出发,完成整款游戏的开发。游戏更设置了重列、再来一局、退出等功能,简单易懂,为用户带来愉悦的体验。

本课程设计报告介绍了游戏的构想,分析,开发,实现的过程。论述了游戏的功能开发,设计构思。给出了游戏的设计步骤,游戏系统关键的设计思想;在游戏系统实现章节给出了部分功能流程和相关代码。

关键词:游戏,连连看

目录

JA VA程序课程设计任务书.......................................................................................................................................I 摘要.............................................................................................................................................................................. I II 目录............................................................................................................................................................................ IV 第一章引言.. (1)

1.1背景 (1)

1.2课程设计内容 (1)

1.3任务分工 (1)

第二章连连看小游戏应用程序 (2)

2.1连连看小游戏应用程序概述 (2)

2.2连连看小游戏系统任务及目的 (2)

2.3本章小结 (2)

第三章连连看系统的设计 (3)

3.1算法设计 (3)

3.2系统开发及运行环境 (3)

3.3系统主要功能要求 (4)

3.4.1 连连看的总体结构 (4)

3.5连连看游戏系统流程图 (5)

3.6本章小结 (7)

第四章结束语 (8)

致谢 (9)

参考文献 (10)

附录源代码 (11)

第一章引言

1.1 背景

游戏是全球最大的娱乐经济项目之一,已经被命名为“第九艺术”。而由“游戏”派生出来的职业,除了软件开发外,游戏包装宣传推广、攻略指导、网络游戏管理员和职业游戏玩家等,已成为了一系列专门的岗位。面对游戏产业如此巨大的市场空间,国内各大城市纷纷加大了这方面的人才培养,中国的游戏人才培训已随着游戏行业的总体发展开始逐步迈入了正轨。

虽然说中国的游戏行业开始逐步的迈入了正轨,但是现今,游戏人才出现严重的瓶颈时期,高校的扩招、金融危机的侵袭直接影响着我们最关心的就业问题,但是另一方面游戏人才的缺乏又直接制约着行业的发展,这就更加严格了对社会培训机构的稳定性和正规性的要求。在我国,游戏人才培养体系还未健全,部分开设了相关专业的高校,游由于理论和实践的脱离无法完全满足网游公司对人才的需求。

所以,就中国目前的市场分析来看,加强游戏产业必须在多渠道人才培养体系上加快突破,尽快建立起多渠道人才培养体系,来满足社会对游戏人才的需求。

1.2 课程设计内容

本程序基本实现了小游戏连连看的功能,玩家找出游戏中2个相同图案的方块,如果它们之间的连接线不多于3根直线,则将其连接起来,就可以成功将图案相同的方块消除,否则不会消失,当游戏中已没有满足条件的图案时,点击重列,可重新排序,游戏结束会跳出所得分数,该游戏的特点是与自己竞争,超过自己之前所创纪录。

1.3 任务分工

第二章连连看小游戏应用程序

2.1 连连看小游戏应用程序概述

此程序设计是一个小游戏(连连看)的实现,主要运用了用户图形界面,程序接口和基本函数绘制来实现,事件监听(包括鼠标事件,键盘事件,响应时间)也是这个程序的特色。加入复选框,按钮,标签等来实现本游戏用户界面布局。本游戏在用户界面的可操作性、游戏的美观度、计分结果方便都基本完善,有一定的可玩性。

2.2连连看小游戏系统任务及目的

此小程序是为群众闲暇消遣之用,进入游戏界面,即可开始游戏,接着是“重列”、“退出”、“再来一局”方便对游戏的控制。

2.3 本章小结

虽然游戏在功能和界面上不能算的上很棒,但是麻雀虽小,五脏俱全,游戏具备了弹砖块这个经典游戏锁应该具有的基本雏形。通过这一章,我们对这个游戏应该有了比较宏观的了解,我们将在这一基础上探究游戏更完美的改变。

第三章连连看系统的设计

这一章时连连看系统的设计,从系统需求分析开始,介绍开发环境和用到的开发工具,系统主要的功能设计,系统的数据流程图。

3.1 算法设计

在检验两个方块能否消掉的时候,我们要让两个方块同时满足两个条件才行,就是两者配对并且连线成功。

分三种情况:(从下面的这三种情况,我们可以知道,需要三个检测,这三个检测分别检测一条直路径。这样就会有三条路径。若这三条路径上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了)

1相邻

2若不相邻的先在第一个按钮的同行找一个空按钮找到后看第二个按钮横向到这个空按钮所在的列是否有按钮,没有的话再看第一个按钮到它同行的那个空按钮之间是否有按钮,没有的话再从与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮,没有的话路径就通了,可以消了。

3若2失败后,再在第一个按钮的同列找一个空按钮,找到后看第二个按钮竖向到这个空按钮所在的行是否有按钮,没有的话再看第一个按钮到与它同列的那个空按钮之间是否有按钮,没有的话路径就通了,可以消了。

若以上三步都失败,说明这两个按钮不可以消去。

3.2 系统开发及运行环境

硬件平台:

?CPU:INTEL-I5。

?内存:1024MB以上。

软件平台:

?操作系统:Windows XP。

?数据库:TXT文档。

?开发工具包:JDK V ersion1.6.2。

?分辨率:最佳效果1024×768像素

3.3 系统主要功能要求

本系统为了实现游戏连连看。本系统主要实现如下功能:

?系统界面美观大方舒适。

?实现游戏一些基础信息的保存和读取。

?画面流畅,具有可玩性

?没有较大的游戏BUG。

?显示游戏者的积分。

?实现多种数字的排列模型。

?系统最大限度地实现了易维护性和易操作性。

?系统运行稳定、安全可靠。

3.4.1 连连看的总体结构

连连看游戏是基于基本的软件和普通硬件基础上的传统优秀游戏,一个游戏应该包括以下几大功能,如图3.1所示

图3.1 系统功能结构图3.5连连看游戏系统流程图

程序的流程图如下:

3.6 本章小结

本章是连连看游戏系统的具体设计过程,有具体的需求分析、系统功能模块、系统流程图。这里我们开始接触连连看游戏系统开发的最初步骤,也是很重要的一步。

第四章结束语

由于市场需要,游戏的更新速度步步加快,为了适应社会的需要,社会对游戏开发人员的需求,在游戏编程的学习过程中,必须理论与实践结合,提高编程能力与水平。通过小游戏的设计,对以学过的内容加深理解,对游戏开发的过程有初步的认识,为以后的游戏开发设计和更加深入的学习计算机语言打下夯实的基础。

目前竞争日益激烈的行业环境,对于未来行业的前景,还是要保持乐观的心态。毕竟游戏并不是一下子就可以编写成的。需要不断的技术积累,需要团队的合作,提高了工作的效率,才算是在游戏开发的道路上成功了一半。在现在这个信息化飞速发展的道路上,要成为一名合格的编程人员,那就必须走好每一步现在的路。

基于Java的连连看小游戏,满足了用户娱乐的需求,已经达到了预期的目标。虽然该游戏大部分功能基本上已经实现,但是还是会存在一些不足。在今后的进步中,会逐步改进。

致谢

参考文献

[1] (美)埃克尔著陈昊鹏,饶若楠等译. Java编程思想[J]. 机械工业出版社,2005

[2](美)Gary J.Bronson著张珑刘雅文译. Java编程原理[J]. 清华大学出版社,2004

[3](美)Michael Morrison著徐刚,于健,薛雷译. 游戏编程入门[J]. 人民邮电出版社,2005.9

[4](美)Wendy Stahler著冯宝坤,曹英译. 游戏编程中的数理应用[J]. 红旗出版社,2005

[5](美)克罗夫特(David Wallace Croft)著彭晖译. Java游戏高级编程[J]. 清华大学出版社,2005

[6](美)David Brackeen著邱仲潘译. Java游戏编程[J]. 科学出版社,2004

[7] 聂庆亮编著. Java应用开发指南[J]. 清华大学出版社,2010

[8] 耿祥义,张跃平编著. Java面向对象程序设计[J]. 清华大学出版社,2010

[9] 杨绍方编著. Java编程实用技术与案例[J]. 清华大学出版社,2000.11

[10] 明日科技编著. Java编程全能词典[J]. 电子工业出版社,2010

附录源代码

package mybase.programe;

/*

* lianliankan总体算法思路:由两个确定的按钮。若这两个按钮的数字相等,就开始找它们相连的路经。这个找路经

* 分3种情况:(从下面的这三种情况,我们可以知道,需要三个检测,这三个检测分别检测一条直路经。这样就会有

* 三条路经。若这三条路经上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了)

* 1.相邻

*

* 2. 若不相邻的先在第一个按钮的同行找一个空按钮。1).找到后看第二个按钮横向到这个空按钮

* 所在的列是否有按钮。2).没有的话再看第一个按钮到与它同行的那个空按钮之间是否有按钮。3).没有的话,再从

* 与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮。没有的话路经就通了,可以消了.

*

* 3.若2失败后,再在第一个按钮的同列找一个空按钮。1).找到后看第二个按钮竖向到这个空按钮所在的行是否有按钮。

* 2).没有的话,再看第一个按钮到与它同列的那个空按钮之间是否有按钮。3).没有的话,再从与第一个按钮同列的

* 那个空按钮横向到与第二个按钮同列看是否有按钮。没有的话路经就通了,可以消了。

*

* 若以上三步都失败,说明这两个按钮不可以消去。

*/

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class LianLianKan implements ActionListener {

JFrame mainFrame; // 主面板

Container thisContainer;

JPanel centerPanel, southPanel, northPanel; // 子面板

JButton diamondsButton[][] = new JButton[6][5];// 游戏按钮数组

JButton exitButton, resetButton, newlyButton; // 退出,重列,重新开始按钮JLabel fractionLable = new JLabel("0"); // 分数标签

JButton firstButton, secondButton; // 分别记录两次被选中的按钮

// 储存游戏按钮位置(这里其实只要6行,5列。但是我们用了8行,7列。是等于在这个面板按钮的周围还围

//了一层是0的按钮,这样就可以实现靠近面板边缘的两个按钮可以消去)

int grid[][] = new int[8][7];

static boolean pressInformation = false; // 判断是否有按钮被选中

int x0 = 0, y0 = 0, x = 0, y = 0, fristMsg = 0, secondMsg = 0, validateLV; // 游戏按钮的位置坐标

int i, j, k, n;// 消除方法控制

public void init() {

mainFrame = new JFrame("JKJ连连看");

thisContainer = mainFrame.getContentPane();

thisContainer.setLayout(new BorderLayout());

centerPanel = new JPanel();

southPanel = new JPanel();

northPanel = new JPanel();

thisContainer.add(centerPanel, "Center");

thisContainer.add(southPanel, "South");

thisContainer.add(northPanel, "North");

centerPanel.setLayout(new GridLayout(6, 5));

for (int cols = 0; cols < 6; cols++) {

for (int rows = 0; rows < 5; rows++) {

diamondsButton[cols][rows] = new JButton(String

.valueOf(grid[cols + 1][rows + 1]));

diamondsButton[cols][rows].addActionListener(this);

centerPanel.add(diamondsButton[cols][rows]);

}

}

exitButton = new JButton("退出");

exitButton.addActionListener(this);

resetButton = new JButton("重列");

resetButton.addActionListener(this);

newlyButton = new JButton("再来一局");

newlyButton.addActionListener(this);

southPanel.add(exitButton);

southPanel.add(resetButton);

southPanel.add(newlyButton);

fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable

.getText())));

northPanel.add(fractionLable);

mainFrame.setBounds(280, 100, 500, 450);

mainFrame.setVisible(true);

mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }

public void randomBuild() {

int randoms, cols, rows;

for (int twins = 1; twins <= 15; twins++) {//一共15对button,30个randoms = (int) (Math.random() * 25 + 1);//button上的数字

for (int alike = 1; alike <= 2; alike++) {

cols = (int) (Math.random() * 6 + 1);

rows = (int) (Math.random() * 5 + 1);

while (grid[cols][rows] != 0) {//等于0说明这个空格有了button cols = (int) (Math.random() * 6 + 1);

rows = (int) (Math.random() * 5 + 1);

}

this.grid[cols][rows] = randoms;

}

}

}

public void fraction() {

fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable .getText()) + 100));

}

public void reload() {

int save[] = new int[30];

int n = 0, cols, rows;

int grid[][] = new int[8][7];

for (int i = 0; i <= 6; i++) {

for (int j = 0; j <= 5; j++) {

if (this.grid[i][j] != 0) {

save[n] = this.grid[i][j];//记下每个button的数字

n++;//有几个没有消去的button

}

}

}

n = n - 1;

this.grid = grid;

while (n >= 0) {//把没有消去的button重新放一次

cols = (int) (Math.random() * 6 + 1);

rows = (int) (Math.random() * 5 + 1);

while (grid[cols][rows] != 0) {

cols = (int) (Math.random() * 6 + 1);

rows = (int) (Math.random() * 5 + 1);

}

this.grid[cols][rows] = save[n];

n--;

}

mainFrame.setVisible(false);

pressInformation = false; // 这里一定要将按钮点击信息归为初始

init();

for (int i = 0; i < 6; i++) {

for (int j = 0; j < 5; j++) {

if (grid[i + 1][j + 1] == 0)

diamondsButton[i][j].setVisible(false);

}

}

}

public void estimateEven(int placeX, int placeY, JButton bz) {

if (pressInformation == false) {

x = placeX;

y = placeY;

secondMsg = grid[x][y];

secondButton = bz;

pressInformation = true;

} else {

x0 = x;

y0 = y;

fristMsg = secondMsg;

firstButton = secondButton;

x = placeX;

y = placeY;

secondMsg = grid[x][y];

secondButton = bz;

if (fristMsg == secondMsg && secondButton != firstButton) {

xiao();

}

}

}

public void xiao() { // 相同的情况下能不能消去。仔细分析,不一条条注释if ((x0 == x && (y0 == y + 1 || y0 == y - 1))

|| ((x0 == x + 1 || x0 == x - 1) && (y0 == y))) { // 判断是否相邻

remove();

} else {

for (j = 0; j < 7; j++) {

if (grid[x0][j] == 0) { // 判断和第一个按钮同行的哪个按钮为空

//如果找到一个为空的,就按列值的三种情况比较第二个按钮与空按钮的位置

if (y > j) {//第二个按钮在空按钮右边

for (i = y - 1; i >= j; i--) { //检测从第二个按钮横向左边到空格所在列为止是否全是空格

if (grid[x][i] != 0) {

k = 0;

break;//存在非空格的就退出,这一退出就不可能k==2了,所以就会到下而215行出同理的判断列

} else {

k = 1;

} // K=1说明全是空格通过了第一次验证,也就是从第二个按钮横向左边到空格所在列为止全是空格

}

if (k == 1) {

linePassOne();//进入第二次验证,也就是从第一个按钮到它同行的空格之间的空格判断

}

}

if (y < j) { // 第二个按钮在空按钮左边

for (i = y + 1; i <= j; i++) {//检测从第二个按钮横向右边到空格所在列为止是否全是空格

if (grid[x][i] != 0) {

k = 0;

break;

} else {

k = 1;

}

}

if (k == 1) {

linePassOne();

}

}

if (y == j) {//第二个按钮和空按钮同列

linePassOne();

}

}

//第三次检测,检测确定为空的第j列的那个按钮竖向到第二个按钮,看是不

是有按钮

if (k == 2) {

if (x0 == x) {//第一,二按钮在同行

remove();

}

if (x0 < x) {//第一按钮在第二按钮下边

for (n = x0; n <= x - 1; n++) {//从空按钮竖向到第二个按钮所在行是否有按钮

if (grid[n][j] != 0) {

k = 0;

break;

}

//没有按钮,说明这条路经就通了

if (grid[n][j] == 0 && n == x - 1) {

remove();

}

}

}

if (x0 > x) {//第一按钮在第二按钮上边

for (n = x0; n >= x + 1; n--) {

if (grid[n][j] != 0) {

k = 0;

break;

}

if (grid[n][j] == 0 && n == x + 1) {

remove();

}

}

}

}

}//-------------------------------------for

//当上面的检测与第一个按钮同行的空格按钮失败后(不能找到与第二个按钮的相连路经),下面就执行

//检测与第一个按钮同列的空格按钮

for (i = 0; i < 8; i++) {

if (grid[i][y0] == 0) {// 判断和第一个按钮同列的哪个按钮为空

if (x > i) {//第二个按钮在这个空按钮的下面

for (j = x - 1; j >= i; j--) {

if (grid[j][y] != 0) {

k = 0;

连连看-JAVA课程设计报告

课程设计 2013 ~ 2014学年第二学期 设计题目连连看游戏程序 院(系) 专业软件工程 班级学号 学生姓名 设计时间 2014年6月24日~2014年6月27日 指导教师 提交日期 2014年6月27日

目录 目录 (2) 1.课程设计的目的与要求 (3) 1.1课程设计目的与要求 (3) 1.2课程设计内容 (3) 1.3课程设计的实验环境 (3) 1.4课程设计的预备知识 (3) 2.系统模块结构图 (4) 2.1 模块设计 (4) 2.1.1 菜单控制模块 (4) 2.1.2 算法模块 (5) 2.1.3 界面显示模块 (7) 3.详细设计 (9) 3.1总体算法思路 (9) 3.2代码实现 (9) 4.小结 (9)

1.课程设计的目的与要求 1.1课程设计目的与要求 1.掌握JA V A语言中面向对象的概念,并能在程序中熟练运用。 2.了解面向对象程序设计(JA V A)的基本概念以及运用面向对象技术进行程序设计的基本思 想。 3.能正确编写和调试JA V A程序。 4.了解在JA V A环境下进行程序设计的基本思想和方法。 1.2课程设计内容 1.设计一个连连看的游戏程序。 2.在JA V A环境下,将上述程序使用GUI、数据结构等内容完成 3.设计思路: (1)界面设计 1)初始测试界面可以考虑使用简单的按钮来代表连连看游戏中的图标。 2)布局可以考虑使用GRID方式。 3)设计菜单选择连连看难度等内容,具体可参照QQ连连看,也可自定义。 4)考虑完善界面,例如动画等。 (2)代码设计 1)本设计的核心为练练看算法的设计,可以考虑数据结构中的图的遍历章 节,合理设计算法,将界面中各按钮的分布映射入数学矩阵进行路径规划。 (可以上网搜索相关算法)。 2)完成连连看游戏的图形、算法等代码的设计。 4.实验步骤(包括操作方法、数据处理) (1)界面设计 (2)算法设计 (3)代码设计 1.3课程设计的实验环境 硬件要求能运行Windows xp/7操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境, ECLIPSE开发工具。 1.4课程设计的预备知识 熟悉JAVA语言及ECLIPSE开发工具。

java记事本课程设计论文附源码

设计题目:记事本课程设计 专业:电子信息科学与技术 班级:电子1202班 学号:20121210606 姓名:王鹏 2015 年7月

XXX学院本科学生课程设计任务书

摘要 目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。此次课程设计主要通过编写一个简单的记事本程序使我们深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等内容。此简易记事本程序,使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能。该程序主要用到了Java swing和事件监听等。 关键词记事本程序,java语言,Java swing

目录 摘要 (1) 1 需求分析 (3) 1.1需求分析 (3) 1.2功能设计 (3) 2 概要分析 (4) 2.1概要设计思想 (4) 2.2程序运行界面 (4) 2.3程序模块说明 (4) 2.4流程图 (5) 2.5程序相关说明 (6) 3 程序详细设计与分析 (8) 3.1构建菜单栏及其下拉菜单 (8) 3.2“文件”菜单操作的事件监听 (8) 3.3“编辑”、“格式”等菜单的事件监听 (10) 3.4异常处理 (11) 4 测试分析 (12) 5 源程序清单 (15) 结论 (22) 参考文献 (23)

1 需求分析 1.1需求分析 现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。 1.2功能设计 本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面: 1、菜单中有“文件”,“编辑”,“格式”,“查看”,“帮助”五个主菜单。 2、“文件”有“新建”“打开”“保存”“另存为”“退出”五个子菜单:分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。 3、“编辑”中有“撤销”“剪切”“复制”“粘贴”“全选”“时间/日期”六个字菜单:用于撤销操作,剪切文字,复制文字,粘贴文字。全部选择,插入日期、时间。 4、“格式”菜单中有“自动换行”和“字体”两个子菜单。 5、“查看”菜单只是显示状态栏。 6、“帮助”菜单中只有“关于记事本”子菜单,主要用于显示该程序的名字,版本等信息。

文件加密与解密—Java课程设计报告

JAVA课程设计题目:文件的加密与解密 姓名: 学号: 班级: 日期:

目录 一、设计思路 (3) 二、具体实现 (3) 三、运行调试与分析讨论 (8) 四、设计体会与小结 (11) 五、参考文献 (12) 六、附录 (12)

一、设计思路 自从Java技术出现以业,有关Java平台的安全性用由Java技术发展所引发的安全性问题,引起了越来越多的关注。目前,Java已经大量应用于各个领域,研究Java的安全性对于更好地利用Java具有深远的意义。使用Java的安全机制设计和实现安全系统更具有重要的应用价值。 本课程设计,主要实践Java安全中的JCE模块,包括密钥生成,Cipher对象初始化、加密模式、填充模式、底层算法参数传递,也涉及文件读写与对象输入输出流。 二、具体实现 本系统通过用户界面接收三个参数:明文文件、密文文件、口令。采用DES加密算法,密码分组链(Cipher Block Chaining,CBC)加密模式,PKCS#5-Padding的分组填充算法。因为CBC涉及到底层算法参数的解密密钥的传递,所以将明文文件中的字节块以密封对象(Sealed Object)的方式加密后,用对象流输出到密文文件,这样就将密文、算法参数、解密密钥三都密封到一个对象中了。口令的hash值作为产生密钥的参数。设计流程图如下所示: 文件加密与解密设计流程图

本系统中,包含Default,Shares,SecretKey,EncAndDec四个包共6个类组成。定义的几个参数:MAX_BUF_SIZE为每次从文件中读取的字节数,也是内存缓冲区的大小;加密算法为DES;加密模式是密码分组链(CBC)模式;分组填充方式是PKCS#5Padding。包和类结构图如下所示: 本课程设计,包和类结构图: 以下为包中的类的方法实现说明 Package Shares类结构图

连连看C++程序设计

源程序代码 //main.cpp #include using namespace std; #include #include #include"class.h" void main() { GridInfor g; initgraph(M,N); mciSendString("play game_begin.mp3 repeat", NULL, 0, NULL); g.InitFace(); while(1) { mouse = GetMouseMsg(); switch(mouse.uMsg) { case WM_MOUSEMOVE: g.Mousemove(mouse.x,mouse.y); break; case WM_LBUTTONDOWN: if(Single_click_judge(mouse.x,mouse.y)) { g.Leftbottondown(mouse); } break; default: break; } } closegraph(); } void GridInfor::RandGrid() //产生图片的标记{ for(int iCount = 0, x = 1; x <= ROW; ++x ) { for( int y = 1; y <= COL; ++y ) { ::GridID[x][y] = iCount++ % GridNum + 1; } } } void GridInfor::Shuffle( ) //打乱棋盘

int ix, iy, jx, jy, grid; for( int k = 0; k < 84; ++k ) { ix = rand() % ROW + 1; // 产生1 - COL 的随机数 iy = rand() % COL + 1; // 产生1 - ROW 的随机数 jx = rand() % ROW + 1; // 产生1 - COL 的随机数 jy = rand() % COL + 1; // 产生1 - ROW 的随机数 if( ::GridID[ix][iy] != ::GridID[jx][jy] ) //如果不相等就交换数据 { grid = ::GridID[ix][iy]; ::GridID[ix][iy] = ::GridID[jx][jy]; ::GridID[jx][jy] = grid; } } } ////////////////////////////////初始化界面/////////////////////////////////////// void GridInfor::InitFace() { srand((unsigned)time(NULL)); a.Load_picture(); a.RandGrid(); IMAGE image3; loadimage(&image3,"res\\bg.bmp"); putimage(0,0,&image3); getimage(&image2,3 * 42,2 * 48,42, 48); a.Shuffle(); a.ShowGrid(); } void GridInfor::Load_picture() //加载图片{ IMAGE image1,background; loadimage(&image1,"IMAGE","grids"); SetWorkingImage(&image1); for(int i = 1 ;i < GridNum + 1 ;i ++) for(int j = 0;j < 2;j++) getimage(&image[i][j],j * 42,i * 48,42, 48); loadimage(&background,"IMAGE","bg"); SetWorkingImage(&background); getimage(&image2,3 * 42,2 * 48,42, 48); SetWorkingImage(); putimage(0,0,&background); }

学生信息管理系统java课程设计含源代码完整版

学生信息管理系统j a v a 课程设计含源代码 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

JAVA程序设计课程设计报告 课题: 学生信息管理系统 姓名: 学号: 同组姓名: 专业班级: 指导教师: 1 2 1、功能模块划分 (3) 2、数据库结构描述 (4) 3、系统详细设计文档 (6) 4、各个模块的实现方法描述 (9) 5、测试数据及期望结果 (11)

一、系统描述 1、需求实现的功能 、录入学生基本信息的功能 学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,则不能再插入该学号。 、修改学生基本信息的功能 在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。 、查询学生基本信息的功能 可使用“姓名”对已存有的学生资料进行查询。 、删除学生基本信息的功能 在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。 、用户登陆 用不同的登录权限可以进入不同的后台界面,从而实现权限操作。 、用户登陆信息设置 可以修改用户登陆密码 2、设计目的 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的

JAVA实验报告3-“连连看”游戏程序设计

目录 一、实验目的与要求 (2) 二、实验方案 (2) 三、实验结果和数据处理 (3) 四、结论 (20) 五、问题与讨论 (20)

一、实验目的与要求 (1)实验目的:通过在指定的窗口界面完成“连连看”小游戏程序的编写和调试,加深对面向对象程序设计的理解。 (2)实验要求:按照Java程序设计教程的要求完成第三章中“连连看”游戏程序的编写和调试。 二、实验方案 定义了一个lianliankan类,实现了接口ActionListener: ①main()方法:主函数; ②actionPerformed()方法,用来实现重来一局按钮的响应事件; ③go()方法:初始化界面,排列图形; ④ex()方法:设置“退出游戏”窗体界面; ⑤suiji()方法:产生随机数,来填充游戏界面对应的数组的各个位置; ⑥chonglie()方法:当无符合条件的图形可消去时,需要重新排列图形; ⑦ling()方法:将数组中为零的成员所对应的按钮消去(设为不可见); ⑧wei()方法:判断并记录每次单击按钮的一些信息; ⑨xiao()方法:判断两个按钮在对应数组元素的值相同时能不能消去。

三、实验结果和数据处理 整个游戏最重要的方法,xiao()方法,用来判断两个按钮在对应数组元素的值相同时能不能消去: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class lianliankan implements ActionListener { JFrame mainFrame; //主面板 Container thisContainer; JPanel centerPanel,southPanel,northPanel; //子面板 JButton diamondsButton[][] = new JButton[6][5];//游戏按钮数组 JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮JLabel fractionLable=new JLabel("0"); //分数标签 JButton firstButton,secondButton; //分别记录两次被选中的按钮 int grid[][] = new int[8][7];//储存游戏按钮位置 static boolean pressInformation=false; //判断是否有按钮被选中 int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateL V; //游戏按钮的位置坐标 int i,j,k,n;//消除方法控制 public void init(){ mainFrame=new JFrame("JKJ连连看"); thisContainer = mainFrame.getContentPane();

学生信息管理系统java课程设计(含源代码)

JAVA程序设计课程设计报告 课题: 学生信息管理系统 姓名: 学号: 同组姓名: 专业班级: 指导教师: 设计时间: 评阅意见: 评定成绩:

目录 一、系统描述 (2) 1、需要实现的功能 (3) 2、设计目的 (3) 二、分析与设计 (3) 1、功能模块划分 (3) 2、数据库结构描述 (4) 3、系统详细设计文档 (6) 4、各个模块的实现方法描述 (9) 5、测试数据及期望结果 (11) 三、系统测试 (16) 四、心得体会 (23) 五、参考文献 (24) 六、附录 (24)

一、系统描述 1、需求实现的功能 、录入学生基本信息的功能 学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,则不能再插入该学号。 、修改学生基本信息的功能 在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。 、查询学生基本信息的功能 可使用“姓名”对已存有的学生资料进行查询。 、删除学生基本信息的功能 在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。 、用户登陆 用不同的登录权限可以进入不同的后台界面,从而实现权限操作。 、用户登陆信息设置 可以修改用户登陆密码 2、设计目的 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,

Java课程设计报告

湖北大学 本科课程设计 题目 ATM 自助机模拟程序姓名 学号 专业年级 指导教师 职称

目录 第一章系统描述 (2) 1 前言 (2) 2 系统功能需求 (2) 第二章系统分析与设计 (3) 1 功能模块划分 (3) 2 功能模块的描述 (3) 3 系统设计流程图 (4) 4 测试数据及期望结果 (6) 第三章系统详细设计 (7) 1 主界面开发设计 (7) 2 功能选择界面开发设计 (7) 3 取款界面开发设计 (7) 4 存款界面开发设计 (8) 5 转账界面开发设计 (8) 6 查询界面开发设计 (9) 7 修改密码界面开发设计 (9) 8 界面开发设计使用函数 (9) 第四章系统测试 (11) 第五章源程序部分清单 (21) 第六章实验心得 (30) 参考文献 (31)

第一章系统描述 1 前言 Java技术是一门简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言,它也是一个平台,它基于Java虚拟机技术,借助这个东西建立了跨平台的优势。Java编程语言与众不同之处在于:Java程序既是编译型的,又是解释型的。 Java平台是一种纯软件平台,它有三个版本Java SE、Java EE、Java ME。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 本课程设计采用Eclipse作为开发工具,并采用Window Builder下的SWT Designer来实现相应的功能。着重通过模拟实现当前非常快捷又使用的ATM机来加深对java开发设计的了解,从而进一步提高自己对java图像界面的设计及相关知识的认识。 2 系统功能需求 当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM 柜员机系统,用户可以按照以下规则进行: (1)查询余额:初始余额为10000元。 (2)ATM取款:每次取款金额为100的倍数,一次取款不能超过1000,总额不 超过5000元,支取金额不允许透支,有快捷取款和用户自定义取款。 (3)ATM存款:每次存款金额为100的倍数,一次存款不能超过1000,不能出 现负存款。 (4)ATM转账:只有在两次输入账号相同且输入转账金额正确的情况下才允许 转账,不允许透支。 (5)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只 有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

C语言程序设计连连看

#include #include <> #include <> #include <> #include using namespace std; #include int mai() // 倒计时 { for (int i=3; i>=0; i--) { long t = time(NULL); for(;;) { long n = time(NULL); if(n != t) break; } system("cls"); cout<<" "< << " ** 秒

"<>d; *** cout<<" "<

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页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

java(源代码)连连看课程设计

目录 第一章引言 (2) 1.背景 (2) 1.1课程设计内容 (3) 第二章系统介绍 (4) 1.连连看游戏规则 (4) 1.1游戏基本规则 (4) 1.2操作规则 (4) 1.3胜利和失败 (4) 2.游戏流程图分析 (4) 第三章系统游戏设计 (7) 1.系统分析 (7) 1.1游戏系统需求分析 (7) 1.2系统开发及运行环境 (7) 1.3系统功能主要要求 (7) 2.系统总体结构 (8) 3. 系统各模块功能介绍 (8) 第四章系统的具体实现 (9) 1.系统主要运行界面 (9) 1.1运行界面 (9) 1.2执行界面,进入游戏正常运行 (9) 1.3时间到界面 (10) 1.4赢家界面 (11) 1.5进度条界面 (12) 图4.5程序运行进度条 (12) 2.游戏实现代码 (12) 2.1主面板内所需要的组件的声明 (12) 2.2填充一个矩形框,进行显示时间 (12) 2.3主面板及各组件初始化 (13) 2.4创建时间对象,每隔100毫秒刷新一次 (13) 2.5分数代码。 (13) 3.消除图片具体情况 (14) 3.1两次点击相同图片相邻 (14)

3.2水平方向消去算法 (14) 3.3竖直方向消去算法 (15) 第五章程序清单 (16) 第六章结束语 (24) 第七章参考文献 (25) 第一章引言 1.背景 游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。 游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。并于2004年,取得了国家版权局的计算机软件著作权登记证书。 随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。如“水晶连连看”、“果蔬连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。 2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。 网络小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。连连看游戏就是典型。 不管走到哪个网页游戏网站,连连看游戏总是排在受玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络、单机休闲小游戏。 游戏《连连看》,只要将相同的两张牌用三根以内的直线连在一起就可以消除,规则简单容易上手。游戏速度节奏快,画面清晰可爱,适合细心的玩家。丰富的道具和公共模式的加入,增强游戏的竞争性。多样式的地图,使玩家在各个游戏水平都可以寻找到挑战的目标,长期地保持游戏的新鲜感。 该游戏由30张不同的图片组成,游戏开始将会出现30张随机组合的图片,在规则下点击两张相同的图片后图片将会消失。图片全部消完为游戏成功。游戏还将设置退出,再来一局的按钮,并实现该功能,方便用户进行操作。

JAVA-课程设计报告

《JA V A程序设计》 课程设计报告 设计题目:学生信息管理系统学院名称:信息工程学院 专业班级:13计本1 姓名: 学号:

目录 一需求分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 二概要设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 三详细设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.1 数据库设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2 模块及窗体设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2.1 数据库模块设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2.2 用户登录识别模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5 3.2.3用户信息管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6 (1)密码修改。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6 (2)用户信息添加和删除。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8 3.2.4 学生息管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 (1)添加信息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 (2)信息查看。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。11 (3)信息修改。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12 (4)删除信息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。14 3.2.5 系统管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 3.2.6 主窗体菜单设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 四软件测试。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 五总结。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 参考资料:.......................................................17

LabVIEW连连看课程设计报告

成绩评定表

课程设计任务书

目录 1目的及基本要求 (1) 2 连连看设计原理 (2) 3连连看设计和仿真 (2) 3.1 主程序设计 (2) 3.2 子程序详细设计 (3) 3.3 设计中遇到的问题 (10) 4 结果及性能分析 (11) 4.1 运行结果 (11) 4.2 性能分析 (11) 参考文献 (12)

1目的及基本要求 虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。灵活高效的软件能帮助您创建完全自定义的用户界面,模块化的硬件能方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定时应用的需求。这也正是NI近30年来始终引领测试测量行业发展趋势的原因所在。只有同时拥有高效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,才能充分发挥虚拟仪器技术性能高、扩展性强、开发时间少,以及出色的集成这四大优势。LabVIEW(Laboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器集成环境)是一种图形化的编程语言(又称G语言),它是由美国NI公司推出的虚拟仪器开发平台,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。使用这种语言编程时,基本上不用写程序代码,取而代之的是程序框图。 虚拟仪器(VI) 的概念虚拟仪器[1](virtual instrument)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。上面的框图反映了常见的虚拟仪器方案。尽可能采用了通用的硬件,各种仪器的差异主要是软件。同时可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。 熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现电子时钟的设计和仿真。要求通过本课程设计使学生熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器设计原理、设计方法和实现技巧,使学生掌握通信系统设计和仿真工具,为毕业设计做准备,为将来的学习及今后从事科学研究、工程技术工作打下较坚实的基础。

5_Java课程设计源代码

package zhouchuan; import java.applet.*; import java.awt.*; import java.awt.event.*; import https://www.360docs.net/doc/6116491781.html,.*; public class zhouchuan extends Applet implements ActionListener { AudioClip clip; Button buttonPlay, buttonLoop, buttonStop; public void init(){ try{ URL url=new URL("file:"+"F://ding.wav"); clip=getAudioClip(url);}catch(Exception e){ } buttonPlay=new Button("开始播放"); buttonLoop=new Button("循环播放"); buttonStop=new Button("停止播放"); buttonPlay.addActionListener(this); buttonStop.addActionListener(this); buttonLoop.addActionListener(this); add(buttonPlay); add(buttonLoop); add(buttonStop); } public void stop(){ clip.stop(); } public void actionPerformed(ActionEvent e){ if(e.getSource()==buttonPlay) clip.play(); else if(e.getSource()==buttonLoop) clip.loop();

Java下连连看算法

两点之间只需要一条直线连接: ( 注意:为了简单省事,我们用java.awt 包中的 Poin(x, y)t 来描述二维数组中元素的坐标,但是有 一点要特别小心,x 和y 与二维数组中元素的下 标值恰好相反,如左上图中A 的下标为 array[1][0] ,Point 的描述却是为Point(0, 1) , 如果不注意这一点,程序会出错的。) 两点之间需要两条直线连接: 如上图, A 、 B 两点如果需要两条直线连接起 来,有可能有两种方式,于是,我们可以巧妙的构 建一个 C 点和一个 D 点,并且规定C 点的横 坐标为 A 点的横坐标,C 点的纵坐标为B 点 的纵坐标, D 点的横坐标为B 点的横坐标,D 点的纵坐标为A 点的纵坐标(这一点很重要,因 为 C 、D 决定了AC 、BC 、AD 、BD 的 连线方式),如下图: 如果此时C 点(或D 点)能同时满足AC (AD )、BC (BD )只需要一条直线相连, 就表示 A 、B 之前能够使用两条直线连接起来, 并且C 点( D 点)为拐点(以后会用上的) //A 、B 之间有一个拐点 boolean oneCorner(Point a, Point b) { Point c, d; boolean isMatch; c = new Point(a.x, b.y); d = new Point(b.x, a.y); if (map[c.x][c.y] == 0) { //C 点上必须没有 障碍 isMatch = horizonMatch(a, c) && verticalMatch (b, c); if (isMatch) { return isMatch; } } if (map[d.x][d.y] == 0) { //D 点上必须没有 障碍 isMatch = verticalMatch (a, d) && horizonMatch (b, d);

JAVA课程设计报告

计算机科学技术与工程系 《Java课程设计》 课 程 设 计 报 告 题目:简易媒体播放器 班级:0633081 姓名:063308123郭伟 063308164张志朋 063308125靳浩兵063308168周小晨指导教师:陈红军、赵军民 设计日期:2010.01.11-15 专业:计算机网络技术

目录 1 、引言................................ 错误!未定义书签。 2 、设计依据 ........................... 3错误!未定义书签。 2.1设计平台 ..............................................................错误!未定义书签。 2.2设计思想 ..............................................................错误!未定义书签。 3、主要框架图、......................... 错误!未定义书签。 4、详细设计 (4) 5 、软件调试分析......................... 错误!未定义书签。 6 、源程序代码.......................... 6错误!未定义书签。 7、执行结果 (15) 8、学习心得 ........................... 15错误!未定义书签。 9、参考文献 ........................... 16错误!未定义书签。

1、引言: 旨在考察在经过一个学期的学习,对JA V A知识的理解与应用。同时把所学的理论知识用于实战编程,进而培养同学们的动手能力和团结协作的团队意识。综合应用java语言的相关知识,独立设计中型的Java应用程序。通过本课程设计,使学生巩固《JA V A课程设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手能力,闯过编程关。 2、设计依据: 1、设计平台 Eclipse是开发源码项目,由于其开放源码,任何人都可以免费使用,并可以在此基础上开发各自的插件,eclipse不只作为一个JA V A IDE的开发平台,而且是作为一个平台框架,各种各样的插件都可以安装在它上面,从而形成各种各样的工具,它有开源软件,使用插件功能,可以完成比较复杂的开发等优点。此Java程序设计就是在Eclipse环境平台下开发的。 Java API文档: Java API文档包含了Java的大部分类,方面查询不熟悉的类,所以它是一款不错的帮助文档! 2、设计思想 根据一学期对JA V A知识的学习,在Eclipse平台下,导入JMF包通过不断查询API 文档,编写媒体播放器在现有类的基础上组织一个新类。有时,我们也将组织称作“包含”关系。播放器主要针对面向对象,并且实现序列化接口,多线程等知识。 对象的组织具有极大的灵活性。新类的“成员对象”通常设为“私有”(Private),使用这个类的客户程序员不能访问它们。这样一来,我们可在不干扰客户代码的前提下,从容地修改那些成员。也可以在“运行期”更改成员,这进一步增大了灵活性。后面要讲到的“继承”并不具备这种灵活性,因为编译器必须对通过继承创建的类加以限制。 由于继承的重要性,所以在面向对象的程序设计中,它经常被重点强调。作为新加入这一领域的程序员,或许早已先入为主地认为“继承应当随处可见”。沿这种思路产生的设计将是非常笨拙的,会大大增加程序的复杂程度。相反,新建类的时候,首先应考虑“组织”对象;这样做显得更加简单和灵活。利用对象的组织,我们的设计可保持清爽。一旦需要用到继承,就会明显意识到这一点。 3、程序主要框架图

相关文档
最新文档