汉诺塔课程设计

汉诺塔课程设计
汉诺塔课程设计

课程设计(论文)任务书

软件学院学院软件工程专业 4 班

一、课程设计(论文)题目Hannoi塔

二、课程设计(论文)工作自 2011 年 12 月12 日起至2011 年12 月 16 日止。

三、课程设计(论文) 地点: 软件学院实训中心

四、课程设计(论文)内容要求:

1.本课程设计的目的

(1)掌握Java语言的程序设计方法;

(2)理论联系实际,进一步提高学生的软件开发技术;

(3)培养学生分析、解决问题的能力;

(4)提高学生实践论文撰写能力。

2.课程设计的任务及要求

1)课程设计任务:

设计GUI界面的Hannoi塔,用户可以通过拖动鼠标移动各个塔上的盘子,程序也可以自动演示盘子的移动过程。

2)创新要求:

1.有三个表示塔的对象,分别命名为A、B和C。A塔上有若干个盘子,盘子的大

小不等,并按着大小顺序依次摆放在A塔上,大盘在下,小盘在上。用户可以用鼠标拖动盘子,把A 塔上的盘子全部移动到另外两个塔中的任何一个塔上。要求每每次只能移动一个盘子,在任何时候不允许大盘压在小盘的上面。

2.用户也可以选择让程序自动演示。选择自动演示后,程序将以动画形式演示把A

塔上的盘子全部移到C塔的过程,并将移动过程以文本形式显示在一个文本区中。3)课程设计论文编写要求

(1)课程设计任务及要求

(2)设计思路--工作原理、功能规划

(3)详细设计---数据分析、算法思路、类设计、功能实现(含程序流程图、主要代码及注释)、界面等。

(4)运行调试与分析讨论---给出运行屏幕截图,分析运行结果,有何改进想法等。(5)设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。

(6)参考文献(必须按标准格式列出,可参考教材后面的参考文献格式)

(7)报告按规定排版打印,要求装订平整,否则要求返工;

(8)课设报告的装订顺序如下:封面---任务书---中文摘要---目录----正文---附录(代码及相关图片)

(9)严禁抄袭,如有发现,按不及格处理。

4)课程设计评分标准:

(1)学习态度:20分;

(2)程序检查:20分;

(3)课设答辩:20分;

(4)课设报告:40分。

5)参考文献:

(1)丁振凡. Java语言实用教程(第2版)[M]. 清华大学出版社. 2008.1

6)课程设计进度安排

1.准备阶段(4学时):选择设计题目、了解设计目的要求、查阅相关资料

2.程序模块设计分析阶段(4学时):程序总体设计、详细设计

3.代码编写调试阶段(8学时):程序模块代码编写、调试、测试

4.撰写论文阶段(4学时):总结课程设计任务和设计内容,撰写课程设计论文

学生签名:

2011 年12 月12 日

课程设计(论文)评审意见

(1)学习态度(20分):优()、良()、中()、一般()、差();(2)程序检查(20分):优()、良()、中()、一般()、差();(3)课设答辩(20分):优()、良()、中()、一般()、差();(5)论文撰写(40分):优()、良()、中()、一般()、差();

评阅人:钟小妹职称:讲师

2011 年12 月16 日

中文摘要

汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上安大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

汉诺塔的游戏规则:把三根柱子分别命名为A,B,C。大小不同的圆盘起始按照由下至上由大到小的顺序放在A柱上,最后需要通过移动使之按照由下至上由大到小的顺序放在C柱上,且在移动过程中不允许有大小错误,只允许小盘放在大盘上面。移到C柱即成功。

本汉诺塔游戏程序是使此古老的游戏通过JAVA算法的实现在计算机上运行,且不丢失任何规则。

目录

一、课程设计任务及要求 (1)

二、需求分析 (2)

三、设计思路 (3)

四、详细设计 (5)

五、运行调试与分析讨论 (10)

六、设计体会与小结 (15)

七、参考文献 (16)

一、课程设计任务及要求

设计内容

设计GUI界面的Hannoi塔,用户可以通过拖动鼠标移动各个塔上的盘子,程序也可以自动演示盘子的移动过程。

设计要求

1.有三个表示塔的对象,分别命名为A、B和C。A塔上有若干个盘子,盘子的大小不等,并按着大小顺序依次摆放在A塔上,大盘在下,小盘在上。用户可以用鼠标拖动盘子,把 A 塔上的盘子全部移动到另外两个塔中的任何一个塔上。要求每次只能移动一个盘子,在任何时候不允许大盘压在小盘的上面。

2.用户也可以选择让程序自动演示。选择自动演示后,程序将以动画形式演示把A塔上的盘子全部移到C塔的过程,并将移动过程以文本形式显示在一个文本区中。

二、需求分析

2.1 界面及布局设计

系统的整体布局为BorderLayout布局,采用了按钮、面板、复选框、文本框、文本区和拆分窗格等组件,按钮的有以下几个功能:1.可以改变盘子数目;2.可以改变盘子大小;3.可以改变盘子的颜色和背景颜色;4.可以重新开始游戏和自动演示搬运盘子;5.可以保存自动演示的文本信息;复选框可以控制背景音乐的播放和暂停,拆分窗格放入几个面板,面板全都是采用空布局。

2.2 A、B、C 座的实现方法

Java支持图形与图像功能,A,B,C座的实现就是利用java的这个功能,就是利用java 2D技术。java拥有强大的二维图形处理能力,绘制A,B,C 座就是使用paint(Graphics g)方法,通过Graphics对象g调用drawLine()方法来绘制三条竖线,然后通过Graphics对象g调用fillRect()方法绘制出矩形区域,然后根据盘子数目在每条竖线上调用g.fillOval()方法绘制相同数目点,最后调用drawString()方法绘出A座,B座,C座,这样就实现了A座,B座,C座的绘制。

2.3 圆盘的实现方法

JButton是java系统提供的类,实现圆盘的类Disc继承JButton类,所以Disc类是JButton的一个子类,创建的一个对象是Tower容器中的一个按钮用来表示Tower中的“盘子”,盘子对象是一个按钮,这样可以加入监视器,从而可以移动盘子。

2.4 改变背景和盘子颜色的方法

Javax.Swing包中有类JColorChooser,该类有一个静态方法public static Color showDialog(Component component,String title,Color initalColor),该方法是创建一个颜色对话框,颜色对话框可果然那句用户在颜色对话框中选择的颜色返回一个颜色对象,当获取到这个颜色对象后,组件通过调用setBackground()方法来设置背景颜色和盘子颜色。

三、设计思路

本程序要求实现用图形界面,画出3个柱子和若干个大小不一的圆盘,同时圆盘数目可以人工设定,当点击“开始”按钮后,系统自动展现圆盘的移动过程,从而实现汉诺塔问题,其中圆盘移动速度是每秒移动一次。汉诺塔算法属于递归算法,该算法过程为:

假定要把n个盘子按题目规定由a杆借助b杆移动到c杆。模拟这一过程的算法称为autoMoveDisk(n,a,b,c)。则有:

第一步:先把上面的n-1个盘子设法借助b杆放到c杆,如图1.1中的箭头1)所示,记做autoMoveDisk(n,a,c,b);

第二步:把第n个盘子从a杆直接移到b杆,如图1.1中箭头2)所示;

第三步:把c杆上的n-1个盘子借助a杆移到b杆,如图1.1中的箭头3)所示,记做autoMoveDisk(n,c,a,b);

1、本程序定义了四个类,分别为:

1) Disk类,此类是继承了Button类,是他的一个子类,用于实现画出图形界面中的盘子,包括定义盘子数量,设置盘子的颜色,判断柱子最上面是否有盘子(设置和返回盘子的状态)。该类在TowerPoint类和HannioTower类中都有被调用。

2)TowerPoint类,本类用于实现定义盘子的放置位置,即一个坐标点(盘子的中心点在塔上的位置),同时还能够判断柱子上某点上是否有盘子(设置和返回该点上盘子的状态),还能够完成在该点上放置盘子,将盘子加到容器里。该类的初始化和真正实现是在HannioTower类中。

3)HannioTower类,此类中主要包括两个部分:

第一个部分:设置塔上点的属性,根据盘子数来存储三根柱子上点的坐标(即盘子的放置位置)并设置该点上没有盘子。同时设置盘子的属性,包括设置盘子的宽度和高度以及将盘子放到柱子上,并设置柱子最上面有

盘子。在图形界面上画柱子(即三根直线和一根水平直线),灰色矩形长条作为底座,用红色点标注盘子的放置位置和用A、B和C来标明三根柱子。

第二个部分:也是核心部分,即汉诺塔算法通过函数的实现。该算法在上面已有介绍,但在算法的第二步中(把第n个盘子从a杆直接移到b杆),要考虑到取a杆上的第n个盘子时,要判断是否有该盘子和获得该盘子,并获得该盘子的位置(为设置拿走后该位置上没有盘子的属性),以及在塔中获得盘子的放置位置。最后将盘子的整个移动过程追加于文本域中。

4)Tower类,该类为主类。主类使用Frame容器作为Java Application 程序图形用户界面的。用于实现整个图形界面的布局(界面布局为边界布局),两个按钮、下拉按钮和文本域的定义及事件的监听。若点击“自动演示”按钮,判断线程是否存活,若不存活则创建线程;若点击“重新开始”按钮,若线程不存活,则重新构建图形界面,恢复到原始状态;若重新选择盘子数,则也重新构建图形界面,恢复到新的原始状态。

线程的实现是通过该类实现了Runnable接口,并在该类中定义Runnable接口的run()方法,该方法代表了线程的执行起点。

四、详细设计

程序流程图(汉诺塔程序流程图)

程序代码说明

开始

输入盘数(初始化三个)

判断盘数是

否为1

盘子数大于1,继续进行递归

过程

输出移动步骤

执行移位操作

执行移位操作

输出移动步骤

结束

程序中引入的包:

package code;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

(1)盘子类:

类名:Disk

作用:定义图形界面中的盘子属性

继承的父类名:Button

public class Disk extends Button {}

定义的对象:

int number //盘子的个数

boolean isTop = false //判断柱子最上面是否有盘子

主要成员方法:

public boolean getIsTop() //返回最上面是否有盘子的属性public void setIsTop(boolean b) //设置最上面是否有盘子的属性

public int getNumber() //返回盘子个数

(2)盘子的放置位置类

类名:TowerPoint

作用:定义塔上点的坐标,即盘子的放置位置

public class TowerPoint {}

定义的对象:

int x, y //塔上的点位置,即盘子的放置位置

boolean isHaveDisk //判断点上是否有盘子

Disk disk //定义盘子类的对象

HannoiTower con //定义一个HannoiTower类的对象主要成员方法:

public boolean getIsHaveDisk() //返回点上是否有盘子的属性public void setIsHaveDisk(boolean boo) //设置点上是否有盘子的属性

public int getX() //获得点位置坐标x

public int getY() //获得点位置坐标y

public void putDisk(Disk disk, HannoiTower con) //在点上放盘子

public Disk getDisk() //返回Disk类型

(3)汉诺塔模拟程序类

类名:HannoiTower

作用:设置踏上点属性、设置盘子属性、汉诺塔模拟程序

继承的父类名:JPanel

public class HannoiTower extends JPanel{}

定义的对象:

TowerPoint point[] //塔上点数组

boolean move = false //判断是否移动

Disk disks[] //盘子数组

int diskNum = 0 //定义盘子个数

int width, height //盘子的宽度和高度

char towerName[] = { 'A', 'B', 'C' } //塔名

TextArea infoArea //定义一个文本域

int autoNum = 1 //计算步数

主要成员方法:

public void paint(Graphics g) //画主界面中的柱子

public void autoMoveDisk(int diskNum, char one, char two, char three)//自动演示函数

public Disk getTopDisk(char towerN)//取最上面的盘子

public int getTopDiskUp(char towerN) //在塔中获取盘子的放置位置

public int getTopDiskPosition(char towerN)//获得最上面盘子的位置

public void pause() //盘子移动速度是每秒移动一次

(4)主类

类名:Tower

作用:设置界面布局,和进行事件监听

继承的接口名:ActionListener, ItemListener, Runnable

继承的父类名:Frame

public class Tower extends Frame implements ActionListener, ItemListener, Runnable{}

定义的对象:

HannoiTower tower //定义一个HannoiTower类的对象

JButton renew, auto //定义两个按钮

Choice diskNumComBox //定义一个下拉按钮

char towerName[] = { 'A', 'B', 'C' }//定义塔名

int diskNum, diskWidth, diskHeight//存储盘子数目、宽度和高度Thread thread //定义一个线程

TextArea infoArea //定义一个文本域

主要的成员方法:

public void actionPerformed(ActionEvent e)//事件的响应程序public void itemStateChanged(ItemEvent e)// 事件的响应程序public void run() //线程的启动public static void main(String args[])//主函数

五、运行调试与分析讨论

(1) 调试过程中遇到的主要问题及解决方法

如何利用线程控制盘子的移动?Java语言是第一个语言本身就支持线程的主流编程语言,其对线程的支持主要通过https://www.360docs.net/doc/cf18355262.html,ng.Thread类和https://www.360docs.net/doc/cf18355262.html,ng.Runnable接口来实现。本类实现了Runnable接口,并在该类中定义Runnable接口的run()方法。当点击“自动演示”时,创建线程,从新布局界面。在此函数中用到了remove()函数,它是Frame中的函数,从此窗体中移除指定的菜单栏。

如何获得盘子的宽度和长度?以及如何将盘子放到指定的位置?经过上网查询,获得盘子的宽度和长度需要getBounds()此函数,它以Rectangle 对象的形式获取组件的边界。如果不知道如何将盘子放到指定的指定的位置,则得到如图1的结果:

图1

为了使盘子放在指定的位置,需要setBounds()此函数,它能移动组件并调整其大小,他有四个参数,前两个参数表示控件的位置坐标,后面两个参数表示控件的宽度和高度。

在汉诺塔算法的第二步中,如何把第n个盘子从a杆移到b杆?要考

虑到取a杆上的第n个盘子时,要判断是否有该盘子和获得该盘子,并获得该盘子的位置(为设置拿走后该位置上没有盘子的属性),以及在塔中获得盘子的放置位置。

在paint()函数中super.paint(g),它同repaint()的功能是一样的,都是重新画界面。

当执行汉诺塔算法时,如果将盘子从一个塔上移动到另一个塔上时,该盘子应该从第一个塔上移除,否则会出现下面的情况:

图2

盘子移动后,仍然在之前的柱子上,因此需要用到Frame中的remove()函数用来移除。正确结果如图3:

图3

(2) 程序运行的时空效率分析

该应用程序并没使用多少数据结构的知识,主要是在求解汉诺塔

问题时,涉及到递归调用的算法。所谓递归,就是一个直接调用自己

或通过一系列的调用语句间接地调用自己的过程。随着盘子的增多,

它占用的时间也会越来越多,n个盘子从一根杆移到另一根杆需要

2n-1次。同时还有点的存储和盘子的存储都用到了数组。其他的部分

只是使用了面向对象中的方法和对象,都是一些基本的语句,并没有

用到多少数学算法。

(3) 测试数据集

分别编译这4个Java源文件,或运行“javac *.java”命令,编译全部的源文件,然后运行主文件,即Tower类。

初始化界面,结果如图4:

图4

点击下拉按钮,选中3个盘子,结果如图5:

图5

结果分析:当在下拉按钮中选中3时,事件监听者会调用事件响应程序,即public void itemStateChanged(ItemEvent e),重新构建界面,盘子数设置为3,同时将文本域设置为空,重新画盘子数

点击“自动演示”后,结果如图6:

图6

结果分析:点击“自动演示”按钮后,会根据汉诺塔算法自动将盘子从A塔转移到C塔上,同时将移动过程追加到文本域中。

点击“重新开始”,结果如图7:

图7

结果分析:点击“重新开始”按钮后,他会判断如果不存活的话,就会从此窗体移除指定的菜单栏,然后从新设置文本域和从画HannoiToewer 类中的界面。

点击下拉按钮,选中5个盘子,结果如图8:

图8

六、设计体会与小结

现在,计算机在我们生活中日趋重要,计算机已经影响到我们生活的方方面面,很多时候我们都离不开计算机,如何学好计算机是我们当前应解决的问题,特别是作为软件工程专业的学生来说。现在我们用计算机完成日常的办公及休闲时间的娱乐,虽然现在有很多的软件在我们生活中存在,但是我们也希望有朝一日在一个新的程序下署下我们的名字,Hannoi 塔游戏是一个常见的智力游戏,但在电脑上运用JAVA的程序实现使得很容易地得到最快的解答。

这个Hannoi塔游戏是在原有的程序基础上增加了改变盘子大小功能、改变背景颜色功能、改变盘子颜色功能、按键位置以及自动演示的功能,由于是在原有的基础上修改的,所以做起来比较简单,没有花费太多的时间。当然在编程过程中也遇到很多小问题,有些问题比较简单但就不知道错在哪里,后来经过自己的不断调试,这个Hannoi塔游戏终于大功告成。

经过编写这个Hannoi塔游戏,我认识到应该注意细节问题,虽然是很小的问题,但可以提高自己编程的能力,而且还可以培养自己编程的严谨性,同时还可以为以后的编程积累经验。编写完这个Hannoi塔游戏,我发现自己有很多的不足,我想如果让我来单独来编写这个游戏,我感觉很吃力,因为这个游戏涉及到好多算法。

七、参考文献

[1]丁振凡,薛清华. JAVA语言程序设计. 北京:清华大学出版社,2010

[2]miao471236401,https://www.360docs.net/doc/cf18355262.html,/view/4fe57a87b9d528ea81c779b7.html?from=related&hasrec=1 [3]charmer21

https://www.360docs.net/doc/cf18355262.html,/view/329e733e5727a5e9856a61d6.html

第16 页

java课程设计报告书

《Java程序设计》课程设计报告2015—2016学年第二学期 设计题目:《数字连连看》 学生:黄杰 学号: 2 专业班级:软件工程1402 指导教师:国权 2016 年7 月2 日

目录 1.JAVA程序设计书 3 1.1《简易连连看》 3 1.1.1具体要求 3 1.2本系统设计的知识点 3 2.功能设计 3 2.1算法设计 3 2.2部分模块流程图 4 3.代码设计 5 4.界面及运行效果,测试工具与测试效果14 5.设计总结 16 5.1.程序调试情况:16 5.2.本人在程序设计中感想: 16 6.致 16 主要参考文献16

: 1.1Java程序课程设计任务书 1.1《简易连连看游戏》 本程序基本实现了小游戏连连看的功能,玩家找出游戏中2个相同图案的方块,如果它们之间的连接线不多于3根直线,则将其连接起来,就可以成功将图案相同的方块消除,否则不会消失,当游戏中已没有满足条件的图案时,点击重列,可重新排序,游戏结束会跳出所得分数,该游戏的特点是与自己竞争,超过自己之前所创纪录。 1.1.1具体要求(包括技术要求等): <1>. 该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是6行5列方块拼接,共有30格小方块。方块上随机分布一些数字,数字的要至少两两相同,位置随机打乱。 <2>. 当将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则无效,若连接一对成功就消失于界面,继续游戏,直到游戏结束,并能返回所得分数。 <3>. 重列按钮(帮助)的功能:游戏过程中,遇到困难难以寻找下一符合要求的一对数字,可按左下按钮重置重新排列方可继续游戏。 <4>. 退出按钮:击左下方的“退出游戏”按钮,即可结束游戏。 1.2本系统涉及的知识点: 循环,javaGUI组件,函数,数组,分支等 2.功能设计 2.1算法设计 本系统需要实现的功能要求: 图一,数字按钮功能模块 图二,三个功能按钮模块

07141326汉诺塔-课程设计

汉诺塔课程设计 报告 目录 一、需求分析 (3) 二、概要设计 (4) 三、详细设计 (6) 四、测试与分析 (7) 五、总结 (7)

六、附录:源程序清单 (8) 一、需求分析 1.1问题描述 汉诺塔(又称河内塔)问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。 这是一个著名的问题,几乎所有的教材上都有这个问题。由于条件是一次只能移动一个盘,且不允许大盘放在小盘上面,所以64个盘的移动次数是:

18,446,744,073,709,551,615 这是一个天文数字,若每一微秒可能计算(并不输出)一次移动,那么也需要几乎一百万年。我们仅能找出问题的解决方法并解决较小N值时的汉诺塔,但很难用计算机解决64层的汉诺塔。 后来,这个传说就演变为汉诺塔游戏: 1.有三根杆子A,B,C。A杆上有若干圆盘 2.每次移动一块圆盘,小的只能叠在大的上面 3.把所有圆盘从A杆全部移到C杆上 经过研究发现,汉诺塔的破解很简单,就是按照移动规则向一个方向移动圆盘:如3阶汉诺塔的移动:A→C,A→B,C→B,A→C,B→A,B→C,A→C 此外,汉诺塔问题也是程序设计中的经典递归问题。 将n个盘子从a座移动到c座可以分解为以下3个步骤: (1)将a上n-1个盘借助c座先移到b座上。 (2)把a座剩下的一个盘移到c座上。 (3)将n-1个盘从c座借助于a座移到c座上。 1.2基本要求 (1)输入的形式和输入值的范围: 输入圆盘的数量,类型为整型,大于零。 (2)输出的形式: 运行结果为用字母表示移动盘子的方案,而并非是真正移动盘子。 (3) 程序所能达到的功能; 输入圆盘数量为定值时的移盘方案。帮助我们更清晰的理解汉诺塔问题,及递归调用的应用。 二、概要设计 分析问题,找出移动圆盘的正确算法。 将n个盘子从a座移动到c座可以分解为以下3个步骤: (1)将a上n-1个盘借助c座先移到b座上。 (2)把a座剩下的一个盘移到c座上。 (3)将n-1个盘从c座借助于a座移到c座上。

Java课程设计参考范文

基于B/S模式的小区物业管理系统的设计与实现 计算机科学与技术2009级一班 学生姓名:陆国良指导老师:陶世明 摘要:相比于C/S模式的物业管理系统,B/S模式的管理系统却极少。做一个B/S模式的物业管理系统,既可以让业主使用,又可以让物业管理人员使用,通过这个系统,获取到各自需要的信息,从而给管理带来便利。这也是我们开发物业管理系统的初衷。住户最基本的要求有以下几点:界面的友好性、易用性、实用性和吸引性。本设计将从以上几个方面进行系统的开发工作。物业管理人员除了有住户的以上要求外,管理的便利性也要考虑。在系统的开发中,使用JavaScript、CSS样式和HTML对界面进行布局,然后使用DOTNET平台下C#语言进行全面的开发,其中使用了三层架构的思想。 关键词:C/S, B/S, DOTNET, 三层架构 一、前言 物业管理系统在市场上已经是一项相当成熟的技术,例如思源物业,凤凰物业等。他们为许多开发物业管理的开发人员提供了成功的案例。为什么要使用信息化系统呢?在以前我们不都是使用一张纸,一支笔就搞定了么,为什么还要兴师动众来开发这样一个系统呢。下面进行一下前后的对比。 手工模式 ?传统的文档记录管理模式,易出错丢失; ?采用人工统计核算,工作量大且容易出错; ?不利于公司领导了解各部门的工作情况,影响企业整体决策; ?管理缺乏有效控制,工作流程不够规范; ?服务不及时,客户满意度低; 信息化后 ?数据管理容易; ?采用计算机进行运算,效率高且精确; ?操作简单方便; ?能够充分利用资源,做出合理的安排; 之所以人们对物业管理系统津津乐道,主要是因为小区是城市生活的基本单位,小区的管理直接影响到我们的生活质量。系统有使用Java开发的,有使用.Net开发的,有基于B/S模式的,有基于C/S 模式的,它们的共同出发点都是开发出高效的,便于管理的物业管理系统,这也是许多物业公司不惜高

Java课程设计报告模板

Java课程设计报告 模板

浙江科技学院 《Java程序设计》课程设计报告 设计题目:学生信息管理系统 姓名:邱焕明 学号: 所属院系:信息学院 专业:软件工程 小组成员:邱焕明 设计时间: -1-6 指导教师:虞建东

一、课程设计目的 (1)实验目的:结合开发的系统,给出学生信息管理系统 二、课程设计完成的任务 三、设计过程 (一)需求分析 1、基础资料管理 基础资料管理包括对院系、班级和学期的设置。该模块可实现以下功能: 添加、修改、删除和显示院系代码、院系名称和电话号码。 添加、修改、删除和显示班级代码、班级名称、学生人数和所属院系名。 添加、修改、删除和显示学期代码、学期名称。 2、学生信息管理 学生信息管理包括对学生档案和学籍的管理。该模块可实现以下功能: 添加、修改、查询和显示学生的基本信息、所属班级和院系。 记录学生学籍、学生离校信息和学生调动信息。 3、课程信息管理 课程信息管理包括对课程设置和班级选课的管理。该模块可实

现以下功能: 添加、修改、删除和显示课程代码、课程名称、学分和院系名称。 添加、删除和提交班级所选课程。 4、成绩信息管理 成绩信息管理包括对成绩录入和成绩分析的管理。该模块可实现以下功能: 录入班级课程成绩,以不同形式(列表统计、图表分析)显示班级课程成绩。 (二)系统设计概念、流程初定义 1、实体名:院系 2、实体名:班级 3、实体名:学生 4、实体名:课程 (三)系统内容规划 1、班级信息表 表3-1 班级信息表 2、课程信息表 表3-2 课程信息表

(四)系统总体设计 内 (五)系统详细设计 (六)系统测试 列名 数据类型 长度 备注 课程代码 char 10 主键 课程名称 varchar 50 无 学 分 tinyint 1 无 所属院系 varchar 50 无

java,汉诺塔,课程设计,心得体会

java,汉诺塔,课程设计,心得体会 篇一:基于JAVA汉诺塔游戏设计与实现 基于JAVA汉诺塔游戏设计与实现 院系:计算机与电子系 专业班:计算机应用技术0902班 姓名:高亚 学号:XX2911057 指导教师:彭文艺 XX 年6月 基于JAVA汉诺塔游戏设计与实现 JAVA Tower of Hanoi-based Game Design and Implementation 摘要 Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 随着时代的不断发展进步,计算机已经融入我们的日

常生活。很多时候,很多的问题想通过人的手来亲自解决已变得十分困难了,这时我们就要运用计算机来帮我们解决这些复杂的问题,汉诺塔问题就是这类较复杂的问题。 此次,我们通过Eclipse软件来解决汉诺塔问题。程序运行后会出现一个界面,界面上有各种操作提示,按照提示进行各种操作后会得到汉诺塔游戏的运行过程及结果。 关键词: Java 汉诺塔 Eclipse Abstract Java is a cross-platform application software can write object-oriented programming language by Sun Microsystems, Inc. in May 1995 launch of the Java programming language and the Java platform (namely JavaSE, JavaEE, of JavaME) the general excellent versatility, efficiency, platform portability, and security of Java technology, widely used in personal PC, the data center, game consoles, scientific supercomputers, mobile phones and the Internet, while the world's largest developer of professional community. Global cloud computing and mobile Internet industry environment, Java has significant advantages and broad prospects. With the continual development and progress, the

java课设记事本说明书

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2012年秋季学期 Java 课程设计 题目:记事本系统设计 专业班级: 姓名: 学号: 指导教师: 成绩:

目录 摘要 (1) 序言 (2) 正文 (3) 1.系统设计与分析 (3) 2.详细设计 (3) 3.系统测试 (14) 4.软件使用说明书 (17) 设计总结 (18) 参考文献 (19) 致谢 (20) 附录(程序源代码) (21)

摘要 本次课程设计的题目是用java语言编写记事本程序,要求是:用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。 本程序主要用到了Java swing组件和事件监听器,还用到了文件的输入输出流。记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。 关键字:记事本程序;Java语言;Jcreator

序言 Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。Java的平台标准有Java ME,Java SE和Java EE。Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持Java的开发工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。 在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少, 所以选择了适合初学者使用的JCreator开发工具。

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位完全相同的情况,只 有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

汉诺塔课程设计

汉诺塔课程设计 一、教学内容: 1、了解汉诺塔的历史。 2、讲解汉诺塔的游戏规则。 二、课程设计目的: 1、让伙伴们了解汉诺塔的历史,勾起孩子们的学习兴趣,让伙伴们更加热爱数学。 2、在掌握汉诺塔玩法的基础上,锻炼伙伴们的观察力,变通里,和右脑开发。 3、增强伙伴们的空间想象能力和动手能力。 4、让伙伴们体会到数学的神奇,从而对数学产生更加浓厚的兴趣。 三、培养技能:观察力、想象力、变通里、右脑开发。 四、所需工具:汉诺塔、记号笔。 五、教学流程概述: 第一节课:1、讲一个关于汉诺塔的故事。2、带领伙伴们一起观察和了解汉诺塔的游戏规则。(以三盘为例说明)(30分钟) 第二节课:汉诺塔4盘的移法。(30分钟) 第三节课:汉诺塔5盘的移法。(30分钟) 第四节课: 汉诺塔月底考核。(30分钟) 六、教学流程详细解读: 第一节课:让伙伴们了解汉诺塔的历史,勾起孩子们的学习 兴趣,让伙伴们更加热爱数学。 1、讲关于汉诺塔的故事: 在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄 铜板上插着三根宝石针。印度教的主神梵天在创造世界的时 候,在其中一根针上从下到上地穿好了由大到小的64片金 片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在 按照下面的法则移动这些金片:一次只移动一片,不管在哪 根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移

、告诉伙伴们游戏规则: 以三个环为例说明: (一)先让伙伴们自己观察有几个柱子,有几个盘,并且盘是怎么排列的? 答:有三根相邻的柱子,第一根柱子上从下到上放着3个不同大小的圆盘,并且顺序是由大到小依次叠放。 (二)分别为这3个相邻的柱子编号A柱、B柱、C柱;在为这3个圆盘编号盘1、盘2、盘3。 让伙伴们自己动脑想想:如何要把A柱上的3个盘子一个一个移动到C柱上,并且每次移动同一根柱子上都必须保持大点的盘子在下,小点的盘子在上。最后也要使移动到C 柱的圆盘从下到上按照盘3,2,1金字塔的形状排列。 (三)带领伙伴们一起动手操作: (1)、盘1移动到C柱。 (2)、盘2移动到B柱。 (3)、盘1在移动到B柱上,这时盘1在盘2上。 (4)、盘3移动到C柱上。 (5)、再将盘1移动到A柱,这时B柱就只剩盘2。 (6)、将盘2移动到C柱,在盘3上边。 (7)、再将盘1移动到C柱,这时就成功了。 (四)鼓励伙伴们再来一次,按照刚才的移动方法 将C柱的圆盘移动到A柱。 (五)等所有伙伴都移动成功都移动成功后,引导伙伴们仔细思考,看看各位伙伴在移动的过程中有发现什么规律和技巧没有? 带领伙伴再来熟悉一遍: 第一步:盘1移动到C柱;第二步:盘2移动到B柱;......第四步:盘3移动到C柱上......

java课程设计报告书

《Java程序设计》课程设计报告 2015—2016学年第二学期 设计题目:《数字连连看》 学生:黄杰 学号: 2 专业班级:软件工程1402 指导教师:国权 2016 年 7 月 2 日 目录 1.JAVA程序设计书 3 1.1《简易连连看》3 1.1.1具体要求 3 1.2本系统设计的知识点 3

2.功能设计 3 2.1算法设计 3 2.2部分模块流程图 4 3.代码设计 5 4.界面及运行效果,测试工具与测试效果14 5.设计总结 16 5.1.程序调试情况:16 5.2.本人在程序设计中感想: 16 6.致 16 主要参考文献16

: 1.1Java程序课程设计任务书 1.1《简易连连看游戏》 本程序基本实现了小游戏连连看的功能,玩家找出游戏中2个相同图案的方块,如果它们之间的连接线不多于3根直线,则将其连接起来,就可以成功将图案相同的方块消除,否则不会消失,当游戏中已没有满足条件的图案时,点击重列,可重新排序,游戏结束会跳出所得分数,该游戏的特点是与自己竞争,超过自己之前所创纪录。 1.1.1具体要求(包括技术要求等): <1>. 该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是6行5列方块拼接,共有30格小方块。方块上随机分布一些数字,数字的要至少两两相同,位置随机打乱。 <2>. 当将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则无效,若连接一对成功就消失于界面,继续游戏,直到游戏结束,并能返回所得分数。 <3>. 重列按钮(帮助)的功能:游戏过程中,遇到困难难以寻找下一符合要求的一对数字,可按左下按钮重置重新排列方可继续游戏。 <4>. 退出按钮:击左下方的“退出游戏”按钮,即可结束游戏。 1.2本系统涉及的知识点: 循环,javaGUI组件,函数,数组,分支等 2.功能设计 2.1算法设计 本系统需要实现的功能要求: 图一,数字按钮功能模块 图二,三个功能按钮模块

汉诺塔课程设计

攀枝花学院课程设计 题目:汉诺塔演示程序设计院(系): 年级专业: 姓名: 学号: 指导教师: 二〇〇九年十二月十四日 攀枝花学院教务处制

攀枝花学院本科学生课程设计任务书 注:任务书由指导教师填写。

课程设计(论文)指导教师成绩评定表

摘要 汉诺塔(又称河内塔)问题是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。 利用计算机图形学进行汉诺塔演示程序设计,是利用C语言绘图函数实现汉诺塔的递归算法图形界面演示过程。通过C语言实现图形学的绘图,程序控制,以及区域填充,并根据汉诺塔的算法原理实现大小不同的盘子移动的全过程演示。 关键词汉诺塔,变换矩阵,种子填充算法,递归调用

目录 摘要 .......................................................................................................................................... I 1 需求分析 (1) 1.1 需求概述 (1) 1.2 需求环境 (1) 1.3 功能描述 (2) 2 概要设计 (3) 2.1 程序功能模块 (3) 2.2 程序流程图 (3) 2.3 数据结构的设计 (4) 3 详细设计 (5) 3.1 程序初始化 (5) 3.1.1 代码功能 (5) 3.1.2 功能实现代码 (5) 3.2 盘块的移动过程 (5) 3.2.1代码功能 (5) 3.2.2 功能实现代码 (5) 3.3 递归函数 (6) 3.3.1 流程图 (6) 3.3.2 功能实现代码 (7) 4 测试与运行 (8) 结束语 (9) 参考文献 (10)

Java课程设计报告书

华东交通大学理工学院课程设计报告书( 2010-- 2011年度第 2 学期) 所属课程名称 Java面向对象程序设计题目设计一个多功能计算器分院电信分院 专业班级 09信管<1>班 学号 20090210450106 蔡炜指导教师黄建华 2011年06月23日

华东交通大学理工学院 课程设计(论文)任务书专业09信管班级 <1>班姓名蔡炜 一、课程设计(论文)题目设计一个多功能计算器 二、课程设计(论文)工作:自 2011 年06 月 13日起至2011年 06 月 23日止。 三、课程设计(论文)的内容要求: 本应用程序继承自框架类(JFrame),此程序使用Frame布局管理器BorderLayout,将单行文本框加入到“North”区域,包含各种按钮的面板Panel p加入到”Center”区域。包含各种按钮的面板Panel p 采用4行5列的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中。同时注册按钮事件监听器。如:Button b=new Button(); b.addActionListener(事件监听器); 事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”1/x”)、清零按钮事件(“C”)。

在事件处理触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。 计算器完成的是一个数学表达式,如:3+2,所以可以采用一个链表(LinkedList类)来存储数字或字符,如3,+,2分别存储在链表中,最后运算时,可以一一取出来进行运算。 学生签名: ( ) 2011 年06 月 23 日 课程设计(论文)评阅意见 评阅人职称 20 年月日

汉诺塔课程设计

学 号: 200840420149 课 程 设 计 题 目 汉诺塔 教 学 院 计算机学院 专 业 计算机 班 级 网络技术 姓 名 指导教师 2010 年 12 月 17 日

课程设计任务书 2009 ~2010 学年第一学期 学生姓名:专业班级:网络技术 指导教师:工作部门:计算机学院 一、课程设计题目 汉诺威塔 二、课程设计内容(含技术指标) 1.在移动盘子的每一步骤,形象直观地显示各针上的盘子。 2.考虑到学“VC 语言”课程的学生同时学习了“数据结构”课程,所以用灵活的数据结构解决汉诺威塔问题,灵活的处理数据结构中的经典问题。 3.使用VC++,因用面向对象的方法去处理数据结构已经是当今的潮流。 三、进度安排 1. 初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2. 完成最低要求:实现5层汉诺威塔的调整过程; 3.进一步要求:直至实现n=9时的情况。 四、基本要求 1.界面友好,函数功能要划分好 2.总体设计应画流程图 3.程序要加必要的注释 4.要提供程序测试方案 5.程序一定要经得起测试,宁可功能少一些,也要能运行起来。 教研室主任签名: 2010年12 月 17 日

目录 1、概述 (3) 2、设计目的 (4) 3、问题分析 (4) 4、逻辑设计 (5) 5、流程图 (5) 6、程序代码: (6) 7、程序调试与测试 (9) 8、结果分析 (12) 9、总结 (13) 一、概述 数据结构是计算机学科非常重要的一门专业基础理论课程,要想编写针对非数值计算问题的高质量程序,就必须要熟练的掌握这门课程设计的知识。另外,他与计算机其他课程都有密切联系,具有独特的承上启下的重要位置。拥有《数据结构》这门课程的知识准备,对于学习计算机专业的其他课程,如操作系统、数据库管理系统、软件工程的都是有益的。

Java课程设计说明书要点

1 需求分析 随着21世纪信息化的到来,计算机的应用日益广泛,计算机在代替体力、脑力劳动方面发挥着不可或缺的作用,在工业方面及日常工作中也越来越离不开它。在企业里,要处理大量的数据信息,为了提高员工管理的工作效率,降低操作出错的概率,因而开发出一套员工信息管理系统是很有必要的。员工信息管理系统,可实现了公司员工信息管理系统的电子化,减轻管理人员的工作负担,能够规范、高效地管理大量的劳动人事信息,减小管理成本,提高工作效率,避免人为操作错误和不规范行为。 该软件实现了员工对个人工资的查询以及管理人员对员工信息进行动态管理的功能,例如基本信息的查询,修改,添加,删除;员工工资的查询,修改,添加,删除等。 2 具体功能 (1)新员工注册功能。 (2)员工登陆功能。 (3)员工查看个人工资功能。 (4)管理人员登录功能。 (5)管理人员对员工基本资料的修改,添加,删除,查询功能。 (6)管理人员对员工工资信息的修改,添加,删除,查询功能。 3 系统设计 3.1、功能示意图

系统功能如图3-1所示: 图3-1系统功能图 3.2、数据库设计 本软件数据库类型为MYSQL ,数据库“employee.mdb ”,其中共包含三种表,其一是 登录用户信息表 user (如表3-1),其二是员工基本信息表emps (如表3-2),其三是员工工资信息表salary (如表3-3)。对应的数据库截图分别为:登录用户信息表users 截图(如图3-2),员工基本信息表emps 截图(如图3-3),员工工资信息表salary 截图(如图3-4)。 员工 管理员 个人工资显示 showSalaryFrm.java 登陆界面 loginFrm.java 主界面mainFrm.java 员 工 基 本 信 息 的 删 除 工 资 信 息 的 查 询 工 资 信 息 的 修 改 工 资 信 息 的 删 除 工 资 信 息 的 添 加 员 工 基 本 信 息 的 添 加 员 工 基 本 信 息 的 查 询 员 工 基 本 信 息 的 修 改 版 本 信 息

c语言课程设计--汉诺塔

课程设计报告 课程设计名称:C语言课程设计 课程设计题目:汉诺塔问题求解演示 院(系):计算机学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 完成时间:2010年3月18日

沈阳航空航天大学课程设计报告 目录 第1章需求分析 (3) 1.1 课程设计的题目及要求 (3) 1.2 总体分析 (3) 第2章系统设计 (4) 2.1 主要函数和函数功能描述 (4) 2.2 功能模块图 (4) 第3章详细设计 (5) 3.1主函数流程图 (5) 3.2各功能模块具体流程图 (6) 第4章调试分析 (10) 4.1.调试初期 (10) 4.2.调试中期 (10) 4.3.调试后期 (10) 参考文献 (11) 附录 (12)

第1章需求分析 1.1 课程设计的题目及要求 题目:汉诺塔问题求解演示 内容: 在屏幕上绘出三根针,其中一根针上放着N个从大到小的盘子。要求将这些盘子从这根针经过一个过渡的针移到另外一根针上,移动的过程中大盘子不能压在小盘子上面,且一次只能移动一个盘子。要求形象直观地演示盘子移动的方案和过程。 要求: 1)独立完成系统的设计,编码和调试。 2)系统利用C语言实现。 3)安照课程设计规范书写课程设计报告。 4)熟练掌握基本的调试方法,并将程序调试通过 1.2总体分析 本题目需要使用C语言绘制图形,所以需要turbo C,需要绘图函数,而汉诺塔的函数属于经典的函数,在书本上都学习过,所以这个题目的难点在于需要绘制汉诺塔图形。攻克这一点其他的问题都迎刃而解。但是我个人以前也没有学过一些关于turboC 方面的知识。所以我将重点放在了对#include下的一系列绘图函数的研究与应用,对屏幕上的图像坐标分析是一个难点。其中用到了graphics.h头文件中的bar, outtextxy, setfillstyle,closegraph函数。进行了画图(利用bar函数进行画框的操作),填充颜色(利用setfillstyle函数填充白色和黑色,以分辨图形与图形背景),在特定位置输出特定字符等操作(利用outtextxy函数)。

Java课程设计--个人通讯录管理系统

《JAVA程序设计》课程设计说明书

目录 1 引言 (1) 1.1课程设计选题 (1) 1.2课程设计的目的 (1) 1.3本选题的设计背景 (1) 2 需求分析 (1) 2.1 功能需求 (1) 2.2 系统的开发运行环境 (2) 3 总体设计 (2) 3.1 系统体系结构设计 (2) 3.2系统功能模块及主要类设计 (3) 3.3数据库设计 (5) 4 详细设计与实现 (7) 4.1 登录模块 (7) 4.2 注册新用户模块 (8) 4.3 查询模块 (9) 4.4 添加模块 (11) 4.5 修改模块 (13) 4.6删除模块 (16) 4.7备份模块 (18) 4.8退出模块 (19) 5 小结和展望 (20) 参考文献 (22) 附录 (22) 使用说明书 (22)

1引言 1.1课程设计选题 《个人通讯录管理系统》 1.2课程设计的目的 通过编写并调试一个Java应用软件,熟悉和掌握使用Java开发应用程序的完整过程。 使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。 1.3本选题的设计背景 一直以来就想做一个比较实用的通讯录管理系统,这样可以方便我对于身边联系人信息的管理,防止遗忘和丢失。 在这样一个信息化的社会里,人们的生活也越来越离不开电脑了,本次通过做个人通讯录管理系统,希望摈弃传统的纸质记录的弊端,发挥电脑软件的优势,方便人们对自己的联系人信息的管理。 2需求分析 2.1 功能需求 2.1.1个人通讯录功能需求 (1)登陆功能。用户可以直接输入用户名和密码,登陆进入通讯录的主功能界面。 (2)注册功能。其他用户可以输入自己的用户名和密码及确认密码,来实现注册成为该通讯录的使用者。 (3)查询功能。在该功能里,用户可以采用模糊查询和精确查询两种查询方式来对自己存储的联系人信息进行查询。 (4)添加功能。在该功能里,用户可以添加自己的常用联系人和分组信息。

java课程设计2013级大纲以及设计报告

珠海学院课程教学大纲 课程名称:java程序课程设计 适用专业: 2013级计算机科学与技术 课程类别:专业基础课 制订时间:2014年12月 计算机科学与技术系制

目录 1java程序课程设计教学大纲 2 java程序课程设计说明书 3 java程序课程设计报告(模板) 4 java程序课程设计成绩评定表 java程序课程设计教学大纲 (2011年制订,2014年修订) 一、课程编号: 二、前修课程:java程序设计 三、学分:2学分 四、学时: 32学时 五、课程性质与任务: 1.课程性质:《java程序课程设计》是吉林大学珠海学院计算机科学与技术系为本科生各专业开设的专业实践课。计算机科学与技术系本科生在完成《java 程序设计》课程学习后,通过本课程进入专业实践训练环节,其主要目的是使学生深入理解并实践在《java程序设计》课程中所学的有关知识,通过课程设计增强学生的实践动手能力,提高学生独立分析和解决实际问题的能力。培养学生配合完成任务的能力,为学生毕业后的实际工作打好基础。 课程设计是培养学生综合运用所学知识锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。Java语言的应用十分广泛,例如大型信息系统、通信、网络控制等。java课程设计对增强学生对基础知识的掌握和综合运用是非常必要,对后续许多专业课程的学习和实践训练都具十分重要的意义。 2.课程任务:本课程要求学生在学习了java基础编程的相关技术后,将课本中多个章节的编程技术灵活运用到一些复杂的综合例题中去,使学生了解应用问题

的分析方法和设计解决实际问题的具体过程,掌握应用java进行程序设计的基本规范和技巧,掌握面向对象编程的设计思想,重点掌握java的基本语法规则、输入输出方法、网络编程、多线程编程、小应用程序、数据库编程的综合应用。通过编程掌握调试java程序的基本技巧、模块化应用程序和测试运行复杂应用程序的基本流程。 六、课程教学基本要求提供足够多的程序设计选题,题目应覆盖面较为广泛,部分题目要具有开放性,要求每个学生根据自己的实际情况选择题目,经教师批准后即可进入实际工作阶段。 课程设计结束对每个学生进行验收,要求每个学生提交合格的课程设计报告,还要保证程序能够运行,能够讲清楚自己的工作。老师在检查过程中可针对程序提出问题,学生回答,若程序无法运行得到结果并且具有大量编译错误,而且对程序的内容无法正确解释,则实践老师可以根据实际情况给予评分为不及格,若程序可以运行,但完成的界面以及方法不够完善,则酌情扣分,若程序运行无问题,则提问回答不好的也要相应扣分。课程设计课程集中安排在第十一周。每个同学都要提交初期、中期和最后的文档,提交课程设计报告,要求在规定时间内提交文档。最后验收时,若文档不全,成绩受到一定影响。 七、学时分配表 2011年 12 月8日 java程序课程设计说明书

汉诺塔课程设计报告

汉诺塔游戏 学院:理学院 班级:信科102班 组长:李万东 组员1:袁雪娇 组员2:张瑜 设计期限2012 年3月1开始 至2012年6月20 结束 课程设计题目:汉诺塔游戏 课程设计目的: 《JA V A程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JA V A程序设计》课程后,进行的一次全面的综合训练,JA V A程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。 随着社会的进步,我们用来娱乐的游戏世界也越来越丰富,越来越复杂。本程序的汉诺塔游戏不但包括了游戏最基本的功能,而且还能培养用户的逻辑思维能力,同时也给玩家提供了一定的娱乐空间。本游戏还包括一个自动演示搬移汉诺塔的功能,此功能能够帮助初次接触此游戏的用户了解此游戏的玩法。 课程设计理论: 本程序要求实现用图形界面,画出3个杆和若干个大小不一的矩形盘子,形成3个塔,分别为A塔,B塔,C塔,同时盘子数目可以人工设定。用户可以用鼠标选中盘子,然后通过拖动鼠标来移动该盘子、释放鼠标来放置该盘子。用户在移动盘子的过程中,可以随时单击汉诺塔菜单栏的菜单中提供的按钮,重新开 1格式已调整,word版本可编辑.

始游戏,并且可以通过单击汉诺塔菜单栏的菜单提供的按钮,让程序自动完成把A塔上的盘子全部移动到C塔上,实现自动演示。 汉诺塔算法属于递归算法,该算法过程为: 假定要把n个盘子按题目规定由A杆借助B杆移动到C杆。 第一步:先把上面的n-1个盘子借助C杆放到B杆。 第二步:把第n个盘子从A杆直接移到C杆。 第三步:把B杆上的n-1个盘子借助A杆移到B杆。 概要设计: 1.课程设计内容: 有三个表示塔的对象,分别命名为A、B和C。A塔上有若干个盘子,盘子的大小不等,并按着大小顺序依次摆放在A塔上,大盘在下,小盘在上。用户可以用鼠标拖动盘子,把A塔上的盘子全部移动到另外两个塔中的任何一个塔上。要求每次只能移动一个盘子,在任何时候不允许大盘压在小盘的上面。用户也可以选择让程序自动演示。选择自动演示后,程序将以动画形式演示把A塔上的盘子全部移到C塔的过程。 2.课程设计功能: (1)设计GUI界面的汉诺塔。汉诺塔中有三个座,名字分别是A、B和C。初始状态是A座上有四个大小不等的盘子,这些盘子从座底到座顶按着大小顺序依次摆放在A座上。用户可以用鼠标选中盘子,然后通过拖动鼠标来移动该盘子、释放鼠标来放置该盘子。 (2)程序要求用户在移动盘子过程中,不允许把大盘子放在小盘子的上面,用户最终要完成的是把A座上的全部盘子移动到B座或C座上。 (3)用户可以通过单击汉诺塔菜单栏的菜单提供的按钮,让程序自动完成把A座上的盘子全部移动到B座或C座上。 (4)用户在移动盘子的过程中,可以随时单击汉诺塔菜单栏的菜单提供的按钮,重新开始游戏。 3. 2.

java课程设计实践

课程设计说明书(论文) 课程名称 Java程序设计实践 题目文字聊天软件设计 专业软件工程班级软件1201 学号 1211030115姓名赵阳 起止日期 2012.06.24----2012.06.28 指导教师王洪亮成绩 辽宁石油化工大学计算机与通信工程学院

摘要 计算机网络的迅速发展,对人类社会诸多领域产生了巨大的影响。尤其是,随着信息时代的来临,人们之间愈来愈趋向于通过网络来交流和传递信息。而聊天系统正是当前人们使用最多的中介。在这个平台上,许多认识或不认识的人们彼此间能够随意的相互交流。因此,开发和构架这种平台符合时代发展的需要。 本系统在开发中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流分析,包含了一些基本的软件工程方法。 Abstract The rapid development of computer networks, many areas of human society had a huge impact. In particular, with the advent of the information age, more and more people tend to pass between the networks to communicate and convey information. The chat system is currently the most people to use intermediaries. On this platform, a lot of people know or do not know each other can freely mutual exchange. Therefore, the development and architecture of this platform meets the needs of the times. The system used in the development of a local area network communication mechanism principle, through the direct successor to the Thread class to create multiple threads. Developed a computer network using basic theoretical knowledge of programming, such as TCP / IP protocol, the client / server mode (Client / Server mode) network programming design method. In network programming to read the information, sending, is the use of the exchange of information flow to achieve, which describes the realization of a systematic information flow analysis, contains some basic software engineering methods.

相关文档
最新文档