当前位置:文档之家› 基于java开发的蜘蛛纸牌程序设计

基于java开发的蜘蛛纸牌程序设计

基于java开发的蜘蛛纸牌程序设计
基于java开发的蜘蛛纸牌程序设计

编号:

本科毕业论文(设计)

题目:

学院

专业

学号

姓名

指导教师职称:

完成日期

诚信承诺

我谨在此承诺:本人所写的毕业论文《》均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担。

承诺人(签名):

年月日

基于java开发的蜘蛛纸牌程序设计

姓名:关俊生学号:200829010213 指导老师:李林国

摘要:java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java

语言)和Java平台的总称。Java是面向对象的语言。蜘蛛纸牌是一款受人喜欢的休闲游戏,微软

的每一代操作系统中都装有这种纸牌游戏,很多人都玩过蜘蛛纸牌,都熟悉蜘蛛纸牌游戏所需要的

功能。本人做的蜘蛛纸牌游戏开发理念是基于WINDOWS XP操作系统中自带蜘蛛纸牌游戏。利用java

语言实现了蜘蛛纸牌游戏的主要功能如纸牌的移动、放置、回收、重发。利用javax.swing包的类

实现纸牌游戏的用户界面,通为各个菜单组件添加监视器来实现鼠标单击事件所触发的接口方法,

使得用户可以单击菜单项来实现具体的功能。通过设置纸牌的等级来初始化纸牌随机分配纸牌,为

用户玩纸牌游戏提供相应的等级。意义:通过自己对蜘蛛纸牌游戏的开发,使我更加热爱java语

言,让我懂得和洗去了更多程序开发的知识及经验,为以后进入编程工作提供条件。

关键字:java语言、游戏背景、功能实现

Spider solitaire program based on java development Name: Guan Junsheng Student ID: 200 829 010 213 Instructor: Li Linguo

Abstract: java is the Java programming language from Sun Microsystems, Inc. in May 1995 (hereinafter referred to as the general term of the Java language) and Java platforms. Java is object-oriented languages. Spider Solitaire is a people like casual games, each generation of Microsoft's operating system are equipped with this card game, many people have played Spider Solitaire are all familiar with the functionality required by the spider card game. I do spider solitaire game development philosophy is based on the WINDOWS XP operating system comes with the spider solitaire game. Java language to achieve the main function of the spider solitaire game, such as movement of the playing cards, place, recycling, re-issued. The use of the javax.swing package class that implements the user interface of the card game pass for each menu component to add a monitor to the mouse click event triggered by the interface method, the user can click the menu items to achieve a specific function. To initialize the cards by the level of the set of cards randomly assigned to cards, to provide the appropriate level for users playing solitaire. Meaning: the spider solitaire game development, so that I more love the java language, so I know how to wash away the more knowledge and experience of program devel opment, and provide conditions for the future to enter the programming work.

Keywords: Java language, the background of the game functions

目录

1.绪论

1.1 游戏开发的背景知识.....................................

1.2 需要做的准备工作......................................

2.开发工具介绍................................................

2.1 java语言概述..........................................

2.2 java语言的特点........................................

2.3 Eclipse开发平台介绍...................................

3.总体设计...................................................

3.1代码功能模块的设计....................................

3.2 程序总体设计流程图...................................

3.3模块一的详细介绍......................................

3.3.1 主要的类.......................................

3.3.2 主要的变量......................................

3.3.3主要的方法.......................................

3.4 模块二的详细介绍.....................................

3.4.1主要的类.........................................

3.4.2 主要的变量.....................................

3.4.3主要的方法.......................................

3.5 模块三的详细介绍......................................

3.5.1主要的类..........................................

3.5.2主要的变量.......................................

3.5.3 主要的方法........................................

3.6模块四的详细.............................................

3.6.1主要的类...........................................

3.6.2主要的变量.......................................

3.6.3 主要的方法........................................

4.功能设计....................................................

4.1 需要实现的主要功能......................................

4.2 功能设计流程图..........................................

4.3 主要功能的代码实现......................................

4.3.1 游戏菜单栏内游戏菜单及帮助菜单功能展示............

4.3.2 主界面的设计.........................................

4.3.3 纸牌的初始化以及发牌操作.............................

4.3.4 纸牌的移动以及放置....................................

4.3.5显示当前纸牌可行的操作................................

4.3.6 回收纸牌.............................................

5.程序的运行及发布................................................

5.1 运行程序....................................................

5.2 发布程序....................................................

6.工作总结........................................................

参考文献..........................................................

1.绪论

1.1 游戏开发的背景知识

相信很多人都玩过蜘蛛纸牌这款休闲游戏,现在随着生活水平的提高,人们拥有充分的时间来享受休闲游戏带来的快乐,越来越多的人亲睐蜘蛛纸牌游戏。谈起这款游戏,大家并不陌生。从WINDOWS2000系统开始,就嵌入了蜘蛛纸牌游戏,可是随着微软系统的不段升级,蜘蛛纸牌游戏的功能业变得越来越强大,游戏的界面也更加美观。用户的体验感受也更加美好。所以,蜘蛛纸牌游戏的开发对于人类的生活娱乐更加有意义。了解蜘蛛纸牌的开发过程也是作为一名学习计算机专业大学生所应该尝试的过程。游戏的目标是以最少的移动次数将牌面中的十叠牌以及待发的五组,共计八副牌整理移除。当所有牌被移除整理到界面的左下方,游戏获胜。

1.2 需要做的准备工作

需要做的工作有学习掌握开发程序的方法,开了解发工具,进行需求分析,根据得到的需求规格说明书设计具体的程序流程图,编写程序,修改程序,运行程序,系统调试程序、测试程序,发布程序。

2.开发工具介绍

2.1 java语言概述:

java是由Sun Microsystems公司于1995年5月推出的java程序设计语言和java平台的总称。用java实现的浏览器显示它的魅力:跨平台的特点使得它越来越受到许多程序员的亲睐。java除了可以开发动态的Web页还可以开发各种系统软件。现在常用的浏览器比如说360浏览器,IE浏览器中均配备有java applet。

java平台由java虚拟机和各种java应用编程接口(简称API)构成。java 应用编程接口为java提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在操作系统上安装一个java平台就可以运行任何一个java程序啦。现在java平台已经几乎嵌入到所有的操作系统党章。这样java程序就可以只编译一次,就可以在各种系统当中运行啦。java目前最新的版本是java1.7版本的。

2.2 java语言的特点:

java语言是一种简单的、面向对象的、分布式的、健壮的、安全的、与平台无关的、多线程、高性能的、动态程序设计语言。

1.java语言简单易学的。 java语言的语法与C语言和C++语言很接近,使得多数程序员很容易学习和使用java。另一方面,java丢弃了C++中很少使用的,很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地。java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。

2.平台无关性平台无关性是指Java能运行于不同的平台。Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与机器无关,Java虚拟机(Java

Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供于不同平台的接口的。

3.安全性Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。

4.面向对象Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object类,Object类功能强大,经常会使用到它及其它派生的子类。

5.分布式Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP 和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。

6.健壮性Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。

7.解释型我们知道C,C++等语言,都是针对CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CPU有关。Java不像C或C++,它不针对CPU 芯片进行编译,而是把程序编译成称为自字节码的一种“中间代码”。字节码是很接近机器码的文件,可以在提供了java虚拟机(JVM)的任何系统上被解释执行。

8.动态java程序的基本组成单元就是类,有些类是自己编写的,有些是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分部环境中动态的维护程序及分类,而不像C++那样,没档期类库升级以后,如果想让程序具有新类库提供的功能,就需要修改程序,重新编译。

9.多线程

Java是支持多线程的语言。多线程是一种应用程序设计方法。线程是一大进程里分出来的,小的、独立的进程,使得在一个程序里可同时执行多个小任务。多线程带来的好处是具有更好的交互性能和实时控制性能。但采用传统的程序设计语言(如:C/C++)实现多线程程序并非易事。Java实现了多线程技术,提供了简便的实现多线程的方法,并拥有一组高复杂性的同步机制。

10.可以移植的。

这种可移植性来源于体系结构中立性,另外,java还严格规定了各个基本数据类型的长度。java系统本身也具有很强的可移植性,java编译器是用java实现的,java运行环境是用ANSIC实现的。

2.3 Eclipse开发平台简介:

Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而

言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C++ 和COBOL 等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。基于Eclipse 的应用程序的一个突出例子是IBM® Rational® Software Architect,它构成了 IBM Java 开发工具系列的基础。Eclipse IDE for Java EE Developers

44

3.总体设计:

3.1代码功能功能模块设计:

蜘蛛纸牌游戏共由4个部分组成,分别是:Spider.java,SpiderMenuBar.java,PKCard.java,AboutDialog.java。

SpiderMenuBar.java

包含名为SpiderMenuBar的public类,其主要功能为生成蜘蛛纸牌游戏的菜单栏,实现菜单栏中各个组件的事件侦听。主要包括3个模块:图形用户界面的构建;组件监听接口的实现:显示可执行操作的线程。

PKCard.java

包含名为PKCard的public类,其主要功能为:定义纸牌的属性,包括名称,位置等相关信息。并通过相关方法实现纸牌的移动等。

AboutDialog.java

包含名为AboutDialog的public类,其主要功能为生成蜘蛛纸牌游戏的帮助栏。

Spider.java

包含名为Spider的public类,其主要功能为生成蜘蛛纸牌游戏的框架,实现游戏中的方法,包括:纸牌的随机生成,位置的摆放等。

3.2程序的总体设计流程图:

3.3模块一的详细介绍:

SpiderMenuBar.java的功能是生成蜘蛛纸牌游戏的菜单栏。实现菜单栏中的各个组件的事件。

3.3.1主要的类:

JMenuBar类、JMenu类、JMenuItem类、JRadioButton类都是设计GUI(图形用户界面)的包javax.swing中的类。可以用import引用这些类。JMenuBar 类是JComponent类的子类负责创建菜单条的。即JMenuBar类的一个实例就是一个菜单条。

JMenu类是JComponent类的子类负责创建菜单组的。即JMenu类的一个实例化就是一个菜单。

JMenuItem类是JMenu类的父类负责创建菜单项。即JMenuItem类的一个实例化就是一个菜单项。

JRadioButtonMenuItem类负责一个单选按钮菜单项的实现。JRadioButtonMenuItem 是属于一组菜单项中的一个菜单项,该组中只能选择一个项。ButtonGroup 类用于为一组按钮创建一个多斥作用域。使用相同的ButtonGroup 对象创建一组按钮意味着“开启”其中一个按钮时,将关闭组中的其他所有按钮。

SpiderMenuBar类是此文件的一个主类是JMenuBar的子类。

Show类是Thread的子类用于创建线程。

3.3.2主要的变量:

jNewGame、jHelp变量分别是JMenu类创建的“游戏”、“帮助”菜单。

jItemAbout、jItemOpen、jItemPlayAgain、jItemExit、jItemValid变量分别是JMenuItem类创建的“关于”、“开局”、“重新发牌”、“退出”、“显示可行操作”菜单项。

jRMItemEasy、jRMItemNormal、jRMItemHard变量分别是JRadioButtonMenuItem类创建的“简单:单一花色”、“中级:双花色”、“高级:

四花色”的单选按钮菜单项。

group变量是ButtonGroup 类创建的一组按钮选择对象。

spider变量是Spider类创建的对象用于主界面窗口的实现。将在Spider.java文件中介绍。

3.3.3主要的方法:

public JMenuBar()创建新的菜单栏。

public JMenu(String text)构造一个新菜单,用提供的字符串作为其文本。

public JMenuItem(String text)创建带有指定文本的菜单项。

public JRadioButtonMenuItem(String text)创建一个带文本的单选按钮菜单项。

public ButtonGroup()创建一个新的单选按钮对象组。

public void add(MenuItem item)向菜单增加由参数item指定的菜单项对象。

public void add(AbstractButton b)将单选按钮添菜单项加到组中。

public void add(JMenu c)将指定的菜单添加加到菜单栏中。

public void addSeparator()将新分隔符追加到菜单的末尾。所需要添加的事件处理的接口方法将在后来的模块中进行介绍。事件源即能够产生的事件的对象。监视器用于对事件源进行监视以便对发生的事件做出处理。事件源通过调用相应的方法将某个对象作为自己的监视器。这个方法是addActionListen(ActionListener listen)该方法中的参数是ActionListener 类型的接口。因此必须用ActionListener接口的类创建的对象传递给该方法的参数,使得该对象成为事件源的的监视器。监视器负责调用特定的方法处理事件,创建监视器的类必须提供处理事件的特定的方法,即实现接口方法。

public void addMenuListener(MenuListener l)添加菜单事件的侦听器。void menuSelected(MenuEvent e)选择某个菜单时调用。

void menuDeselected(MenuEvent e)取消选择某个菜单时调用。

void menuCanceled(MenuEvent e)取消菜单时调用。

3.4模块二的详细介绍:

PKCard的功能是定义纸牌的属性,包括名称,位置等相关信息。并通过相关方法实现了纸牌的移动等。

3.4.1主要的类:

JDialog类是创建对话框窗口的主要类。可以使用此类创建自定义的对话框,或者调用 JOptionPane 中的多个类方法来创建各种标准对话框。

Jpanel类是一个面板类负责创建一个面板容器,再向这个面板添加组件,然后将面板添加到底层容器中。

JTabbedPane类负责创建一个组件,它允许用户通过单击具有给定标题和/或图标的选项卡,在一组组件之间进行切换。

JTextArea类负责创建一个显示纯文本的多行区域。它作为一个轻量级组件Container类负责创建一个容器对象,此容器可以包含其它组件。

AboutDialog类是JDialog类的子类,负责创建一个显示对话框。

3.4.2主要的变量:

jMainPane、jPanel1、jPanel2、变量是JPane1创建的面板容器。

jt1、jt2是JTextArea类创建的文本区对象。

jTabbedPane是JTabbedPane类创建的选项卡窗格对象。

c变量是Container类创建的容器。

3.4.3主要的方法:

public JTabbedPane()创建一个具有默认的 JTabbedPane.TOP 选项卡布局的空 TabbedPane.

public JDialog()创建一个没有标题并且没有指定 Frame 所有者的无模式对话框。一个共享的、隐藏的窗体将被设置为该对话框的所有者。

public JPanel()创建具有双缓冲和流布局的新面板容器。

public JTextArea(String text)构造显示指定文本为text的新的文本区。

public void setTittle(String s)设置一个标题为s的对话框。

public void setSize(int width,int heigth)创建宽为width,高位heigth 大小的对话框。

public void setResizable(boolean b)设置对话框是否可调整大小。b为true时,对话框可调整大小。

public void setDefaultCloseOperation(int operation)该方法用来设置单机窗体右上角的关闭图标后,程序会做出怎样的处理。operation取DISPOSE_ON_CLOSE时//隐藏当前窗口,并释放窗体所占有的其他资源。public void setVisible(boolean b)设置框口是可见还是不可见。b取true是为可见。

public Container getContentPane()方法可得到窗口的内容面板容器。

public void JTextArea.setSize(int width,int heigth)设置文本区的大小。

public void JTextArea.setEditable(boolean b)设置文本区是否可以编辑。

public void JTextArea.setLineWrap(boolean b)设置文本区中输入的文本是否可以实现在右边界自动换行。

public void JTextArea.setFont(Font f)设置文本区内的字体。

public void JTextArea.setForeground(Color c)设置文本区组件的前景色。

public void addTab(String title,Icon icon,Component component,String tip)添加由 title 和/或 icon 表示的 component 和 tip,其中任意一个都可以为 nul参数:title - 此选项卡中要显示的标题,icon - 此选项卡中要显示的图标,component - 单击此选项卡时要显示的组件,tip - 此选项卡要显示的工具提示。

public void pack()调整此窗口的大小,以适合其子组件的首选大小和布局。

3.5模块三的详细介绍:

PKCard的作用是定义纸牌的属性,包括名称、位置等相关信息。并通过相关方法实现纸牌的移动。

3.5.1主要类介绍:

JLable类负责创建标签对象。标签用于短文本字符串或图像或二者的显示区。

Thread类负责创建线程对象。

MouseListener接口、MouseMotionListener接口负责处理事件源所触发的鼠标事件,包括处理鼠标按下、释放、进入、退出、单击、连击、拖动、移动所触发鼠标事件。

Point类负责创建表示 (x,y) 坐标空间中的位置的点对象,以整数精度指定。

MouseEvent类负责创建鼠标所发生的事件对象。

Flash类负责创建线程对象,不断的获取下一张纸牌。

PKCard类是文件的主类,实现MouseListener接口的JLable的子类。负责创建纸牌对象。

3.5.2主要变量:

Point point变量表示纸牌的位置对象。

Point initPoint表示纸牌的初始化位置对象。

int value变量表示纸牌的内容值。

int type变量表示纸牌的类型。

String name变量表示纸牌的名称。

Container pane变量表示标签内主容器。

boolean canMove 变量表示纸牌是否可以移动,值为true时,可以移动。

boolean isFront变量表示纸牌是否正面显示,值为true时,则为正面显示。

PKCard previousCard变量表示上面一张纸牌

3.5.3主要方法:

public void flashCard(PKCard card)方法启动Flash线程不停的获取下一张纸牌直至完成。

public void run()方法为纸牌的正面设置白色图片。

card.updateUI()方法将UI属性重置为当前外观的值。

public void mousePressed(MouseEvent mp)方法按下鼠标时事件的处理方法。

public void mouseReleased(MouseEvent mr)方法释放鼠标时事件处理的方法。

public void setNextCardLocation(Point point)方法放置鼠标时事件处理方法。

public int whichColumnAvailable(Point point)方法为判断可用列。

public void mouseDragged(MouseEvent argO)方法鼠标拖动纸牌时事件处理方法。

public void moving(int x,int y)方法将纸牌移动(x,y)个位置。

pane.setComponentZOrder(this,1)方法将主件移动到容器中指定的顺序索引。

public PKCard(String name,Spider spider)方法纸牌的构造函数。

public void turnFront()方法令纸牌显示正面。

public void turnRear()方法令纸牌显示背面。

public void moveto(Point point()方法将纸牌移动到点point

public void setCanMove(boolean can)方法判断纸牌是否能够移动。

public boolean isCardFront()方法判断纸牌是否正面显示。

public boolean isCardCanMove()方法判断纸是否能够移动。

public int getCardValue()方法获得纸牌的内容值。

public int getCardType()方法获得纸牌的类型。

3.6模块四的详细介绍:

Spider.java文件是蜘蛛纸牌游戏的主类文件,其主要功能是生成蜘蛛纸牌游戏的框架,实现游戏中的方法,包括纸牌的随机生成、位置的摆放等。

3.6.1主要的类:

JFrame类及其子类负责创建的对象称为窗体。

JLable类负责创建标签对象。标签用于短文本字符串或图像或二者的显示区。

Container类负责创建一个容器对象,此容器可以包含其它组件。

PKCard类负责创建纸牌对象。

Hashtable类实现一个哈希表,该哈希表将键映射到相应的值。

3.6.2主要的变量:

public static final int EASY=1;代表“简单”等级。

public static finalint NATURAL=2 代表“普通”等级。

public static finalint HARD=3 代表“难”等级。

private int grade=Spider.EASY设定初始等级为简单等级;

private Container pane 变量为Container类创建的面板容器。

private PKCard card[]变量为PKCard类创建的纸牌数组[]。

private JLable clickLable1变量为JLable类创建的右下角发牌区的鼠标点击响应区域。

private JLable groudLable[]变量为JLable类创建的背景框数组。

Hshtable table变量为Hashtable类创建的一个哈希表对象,用于存储键值数据对。

private int c变量为纸牌的数量。

private int n变量为纸牌的等级。

private int a变量为纸牌所在的列号。

private int finish变量为纸牌从小到大排列成功的次数。

3.6.3主要的方法:

public void setTittle(String s)设置一个标题为s的窗体。

public void setVisible(boolean b)设置框体是可见还是不可见。b取true 是为可见。

public void setSize(int width,int heigth)创建宽为width,高位heigth 大小的窗体。

public void setDefaultCloseOperation(int operation)该方法用来设置单机窗体右上角的关闭图标后,程序会做出怎样的处理。operation取EXIT_ON_CLOSE时结束窗体所在的应用程序。

public void setMenuBar(MenuBar mb)将此窗体的菜单栏设置为指定的菜单

栏。

public void pane.setBackground(Color c)设置面板的背景颜色。

public void pane.setLayout(布局对象)设置面板的布局。

public Container getContentPane()方法可得到窗口的内容面板容器。

public void setBounds(int a,int b,int weidth, int heigth)设置出现在屏幕中的组件距离屏幕的左面a个像素,距屏幕上面b个像素,组件宽为weidth,高为heigth。

public void newGame()方法开始新游戏。

public int getC()方法返回纸牌的数量。

public void setGrade(int grade)方法设置纸牌游戏的等级。

public void initCards()方法进行初始化纸牌

public void randomCards()方法令纸牌随机分配。

public void setNA()方法设置还原纸牌游戏。

public void setCardsLocation()方法设置待展开纸牌级表面初始化纸牌的位置。

public void showEnableOperator()方法进行显示是否有可以移动的纸牌。

public void deal()方法开始运行游戏。

public PKCard getPreviousCard(PKCard card)方法获取当前纸牌上面的那一张纸牌。

public PKCard getNextCard(PKCard card)方法获取当前纸牌的下面的那一张纸牌。

public Point getLastCardLocation(int n)方法获取第n列纸牌最后一张纸牌的位置。

public Point getGroundLabelLocation(int n)方法获取第n列纸牌的背景框架的位置。

public void setGroundLabelZOrder()放置groundLable组件。将组件groundLable移动到容器中指定的顺序索引。顺序(105+i)确定了绘制组件的顺序;具有最高顺序的组件将第一个绘制,具有最低顺序的组建将最后一个绘制。在组建重叠的地方,具有较低顺序的组建将覆盖具有较高顺序的组件。

public void haveFinish(int column)判断纸牌的摆放是否成功。

4.功能设计:

4.1需要实现的主要功能:

(1)游戏主界面的设计包括背景颜色、框架大小、玩牌区域、发牌区域、回收纸牌的区域组件的设置。

(2)点击鼠标、释放鼠标、拖动鼠标时纸牌需要实现的事件处理程序。

(3)移动放置一组或者单个纸牌时。需要纸牌按照由小到大的顺序排列,并列类型相同。

(4)当某列的纸牌按照从A到K得顺序排列时,程序会自动回收这组纸牌到回收纸牌的区域。

(5)当用鼠标单击发牌区域的纸牌时,如果10列纸牌中没有空白列,则顺

序把纸牌发到每列纸牌的最下面。否则,弹出有空位不能发牌对话框。

(6)当玩家不知道当前游戏如何进行时,可以点击菜单项显示可行的操作提示玩家下一步该移动哪一张纸牌。

(7)等级设置,玩家通过单击游戏菜单里相应的等级菜单项来设置游戏的难度等级。游戏的默认等级是简单等级。

4.2功能设计流程图:

4.3主要功能的代码实现:

4.3.1游戏菜单栏内游戏菜单及帮助菜单功能展示:

4.3.2主界面的设计:

代码实现如下:

public Spider(){

setTitle("蜘蛛牌");

setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE); //设置框架的大小

setSize(1024, 742);

//生成SpiderMenuBar对象,并放置在框架之上

setJMenuBar(new SpiderMenuBar(this));

pane = this.getContentPane();

//设置背景颜色

pane.setBackground(new Color(0, 139, 69));

//将布局管理器设置成为null

pane.setLayout(null);

clickLabel = new JLabel();

clickLabel.setBounds(883, 606, 121, 96);\\设置发牌区组件的位置 pane.add(clickLabel);

clickLabel.addMouseListener(new MouseAdapter(){

public void mouseReleased(MouseEvent me){

if (c < 60){

Spider.this.deal();

}

}

});

this.initCards();

this.randomCards();

this.setCardsLocation();\\为纸牌设置位置

groundLabel = new JLabel[10];\\创建背景框组件数组

int x = 20;

for (int i = 0; i < 10; i++)

{

groundLabel[i] = new JLabel();\\创建背景框组件

groundLabel[i]

.setBorder(javax.swing.BorderFactory

.createEtchedBorder(javax.swing.border.Et chedBorder.RAISED));

groundLabel[i].setBounds(x, 25, 71, 96);\\设置组件的大小 x += 101;

this.pane.add(groundLabel[i]);\\向容器添加组件

}

this.setVisible(true);

this.deal();\\运行程序,从发牌去发出一组纸牌

...

4.3.3纸牌的初始化以及发牌操作

代码实现如下:

public void initCards(){

//如果纸牌已被赋值,即将其从框架的面板中移去

if (cards[0] != null){

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

pane.remove(cards[i]);

}

}

int n = 0;

//通过难度等级,为n赋值

if (this.grade == Spider.EASY){

n = 1;

}

else if (this.grade == Spider.NATURAL){

n = 2;

}

else{

n = 4;

}

//为card赋值

for (int i = 1; i <= 8; i++){

for (int j = 1; j <= 13; j++){

cards[(i - 1) * 13 + j - 1] = new PKCard((i % n + 1) + "-" + j,

this);假设n=1,此时i%n的值为0,则1%n+1的值为1,所以创建的图片应该是1-1到1-13全是黑桃,为同一花色,n等于其它值时类似。

}

}

如图所示:

简单,单一花色:

中级,双

高级,四花色:

//随机纸牌初始化

this.randomCards();\\将纸牌的顺序打乱 }

/**

**纸牌随机分配

*/

public void randomCards(){

PKCard temp = null;

//随机生成牌号

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

int a = (int) (Math.random() * 104);

int b = (int) (Math.random() * 104);

temp = cards[a];

cards[a] = cards[b];

cards[b] = temp;

}

}

设置纸牌的位置

public void setCardsLocation(){

table = new Hashtable();

c = 0;

finish = 0;

n = 0;

a = 0;

int x = 883;

int y = 580;\\坐标位于界面的右下角区域

//初始化待展开的纸牌

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

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

int n = i * 10 + j;

pane.add(cards[n]);

//将card转向背面

cards[n].turnRear();

//将card放在固定的位置上

cards[n].moveto(new Point(x, y));

//将card的位置及相关信息存入

table.put(new Point(x, y), cards[n]);

}

x += 10;\\x的值循环一次增10,表示下一叠纸牌的位置

}

x = 20;

y=4:\\坐标位于上方的玩牌区域最左边一个背景框的位置。

初始化表面显示的纸牌

for (int i = 10; i > 5; i--){

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

int n = i * 10 + j;\\生成索引值

if (n >= 104) continue;\\值超过104则退出本次循环

pane.add(cards[n]);\\将索引值所指的纸牌添加到面板容器 cards[n].turnRear();\\将纸牌转到背面去

cards[n].moveto(new Point(x, y));\\将纸牌移动的固定的位置上去

table.put(new Point(x, y), cards[n]);\\将纸牌及其对应的位置存入到哈希表中

x += 101;背景框间隔的X值为101

}

x = 20;X坐标回到原先的位置处

y -= 5;Y坐标会向下移动5个单位,表示第二行纸牌的初始化开始

}

}

方法:游戏运行

public void deal()

{

this.setNA();

//判断10列中是否空列

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

if (this.getLastCardLocation(i) == null){

JOptionPane.showMessageDialog(this, "有空位不能发牌!", "提示",

JOptionPane.WARNING_MESSAGE);

return;

}

}

int x = 20;

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

Point lastPoint = this.getLastCardLocation(i);

//这张牌应“背面向上”

if (c == 0){

lastPoint.y += 5;\\当还没有发过牌时,每列的纸牌中y坐标相差5个单位。

}

//这张牌应“正面向上”

else{

lastPoint.y += 20;否则是两张正面显示纸牌差值

}

table.remove(cards[c + i].getLocation());

cards[c + i].moveto(lastPoint);

table.put(new Point(lastPoint), cards[c + i]);

cards[c + i].turnFront();

cards[c + i].setCanMove(true);

//将组件card移动到容器中指定的顺序索引。

java程序设计实习报告

《Java程序设计》 实 习 报 告 中原工学院信息商务学院 经济管理系 2010年6月20号

目录 一、实习题目 (2) 二、实习目的 (2) 1、社会需求 (2) 2、专业需求 (2) 三、开发环境 (2) 四、实习内容 (3) 1、系统功能需求 (3) 2、数据库需求 (4) 五、设计过程 (4) 1、总体设计 (4) 2、详细设计 (5) 六、调试过程 (5) 七、实习小结 (5) 八、参考资料 (6)

一、实习题目 学生信息管理系统的设计与开发 二、实习目的 1、社会需求 一直以来学生的成绩管理是学校工作中的一项重要内容,随着办学规模的扩大和招生人数的增加,学校工作繁杂、资料重多,普通的成绩管理已不能适应时代的发展,它浪费了许多的人力和物力。在当今信息时代这种传统的管理方法必然被以计算机为基础的信息管理系统所代替。虽然管理信息系统已进入高校,但还未普及而且对于学生成绩管理来说,还没有一套完整的、统一的系统,建立一个成绩维护系统是非常必要的。建立学生成绩管理系统,采用计算机对学生成绩进行管理,能进一步提高办学效益和现代化水平。帮助广大教师提高工作效率,实现学生成绩维护工作流程的系统化、规范化和自动化。2、专业需求 《Java程序设计》课程是电子商务专业的一门专业必修课程,通过java实习不仅可以提升本专业我们对此课程中的理论知识的综合应用能力而且可以提高我们的逻辑思维能力、软件开发能力。我们通过Java技术在Windows平台下开发学生信息管理系统。能够切实提高我们的程序设计水平,在实践中掌握面向对象程序设计的开发思想。 三、开发环境 操作系统;Windows XP 编程环境:MyEclipse 6.0

Java课程设计报告—蜘蛛纸牌

面向对象程序设计课程设计报告JA V A程序设计 课程设计 之 蜘蛛纸牌 学院: 年级: 班级: 指导老师: 小组成员: 时间:

课程设计题目JAVA课程设计——蜘蛛纸牌 学院计算机学院专业网络工程年级2009 已知参数和设计要求: 蜘蛛纸牌的主要功能模块包括:a、游戏界面的布局以及纸牌的设定;b、能够设定不同等级以实现游戏难易度的不同;c、实现游戏主功能;d、实现帮助功能; e、实现退出功能。 要求以小组为单位,用JAVA实现蜘蛛纸牌的主要功能模块;可以根据自己对蜘蛛纸牌游戏的理解,对实现的内容进行扩展最后需要提供的材料包括课程设计报告1份,程序拷贝1份(包括源代码和可执行程序)。 学生应完成的工作: 根据JAVA程序设计的思想和编程技术,设计实现蜘蛛纸牌游戏。上机调试并能正确运行,并提交完整的设计报告和软件程序拷贝。 目前资料收集情况(含指定参考资料): 《Java程序设计》,朱庆生,古平等著,清华大学出版社,2011,1 《Java编程》,王伟平等著,清华大学出版社,2010,5 《Java课程设计案例精编》黄晓东编著,中国水利水电出版社出版 《Java程序设计实用教程》张永常主编,电子工业出版社出版 课程设计时间为一周,从15周星期一开始(2011年12月12日),到15周星期五结束(2011年12月16日)。课程设计以组为单位进行。每组3~4个人。 星期一进行蜘蛛纸牌游戏的内容和规则设计。 星期二查找资料解决具体的技术问题。 星期三用JAVA语言实现程序。 星期四精星课堂演示程序以及完成课程设计报告。 星期五提交程序和课程设计报告。 本组由组成 任务下达日期年月日完成日期年月日 指导教师(签名)学生(签名)

java课程设计报告书封面格式

存档资料成绩: 广西师范大学漓江学院 课程设计报告书 课程名称:面向对象程序设计课程设计 设计题目:多功能计算器 所在系部:理学系 班级:11计算机 学号: 学生姓名: 指导教师: 2012年12 月25 日

课程设计(论文)评阅意见 序号项目 等级 优秀良好中等及格不及格 1 课程设计态度及出勤情况 2 任务完成程度 3 设计中创新性 4 论文书写规范化 综合评定等级 课程设计软件演示及答辩成绩 序号项目 等级 优秀良好中等及格不及格 1 演示过程完成情况 2 对软件代码熟悉情况 3 回答问题准确性和逻辑性 综合评定等级 课程设计软件界面及功能设计成绩 序号项目 等级 优秀良好中等及格不及格 1 界面美观及可操作性 2 功能实现情况及创新性 3 代码的可读性和可维护性 综合评定等级 评阅人 年月日

课程设计任务书 一、本课程设计的目的 1.使学生能够更好地掌握Java程序设计语言和理解面向对象程序设计的基本概念与方法; 2.掌握类和对象的创建和使用,理解面向对象的封装性、继承性、多态性和面向接口编程的程序设计思想,学会利用Java语言和面向对象编程方法解决一般应用问题; 3.从实践中累积经验、培养学生分析、解决问题的能力; 4.提高学生实践论文撰写能力。 二、课程设计的教学过程与考核方法 1.课程设计以小项目的方式开展,以分组(1-2人一组)的形式进行。 2.第一次实验课时,任课教师下达课程设计题目任务,讲解课程设计的题目要求和注意事项,并要求学生根据题目要求进行界面的设计和功能代码编写工作,完成课程设计报告。 3.课程设计实验进行过程中,教师根据实验的进度分模块讲述课程设计题目的设计要点。教师给予技术和方法上的指导,让每个学生自己动手完成项目,并要求学生积极开展逻辑思维,充分发挥自己的创意,设计出优秀的课程设计作品。 4.课程设计结束后,要求学生完成课程设计报告,课程设计报告需包括目录、设计目标、实现思路、实现步骤、总结、参考文献、附录等; 5.最后需上交课程设计报告和设计的软件作品,并进行软件设计作品的演示和答辩。

Java程序设计实训实验指导书

J a v a程序设计实训实验 指导书 公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

《JAVA 程序设计实 训》 实验报告 班级: 学号: 姓名:

实验一开发简单的Java应用程序 一、上机目标: 开发“我行我素”购物管理系统: 1.制作系统登录菜单 2.制作系统主菜单 3.制作客户信息管理菜单 二、训练技能点 1.熟悉用Eclipse编写Java程序 2.会使用输出语句从控制台输出信息 3.会进行代码排错 三、实验内容 阶段1: 训练要点: 使用Eclipse平台开发Java程序 Java输出语句 需求说明: 从控制台输出一行信息:欢迎使用开心购物管理系统版实现思路: 创建一个Java项目:ShopManagementSystem 创建一个文本文件: 编写程序框架

编写输出语句 编写注释 代码: public class LoginMenu1{ public static void main(String[ ] args){ "); } } 阶段2: 需求说明: 从控制台输出多行信息 空行 代码: public class LoginMenu2 { public static void main(String[] args) { /*从控制台输出信息*/ ); );

} } 阶段3: 训练要点: 使用\n和\t控制输出格式 需求说明: 从控制台输出购物管理系统的登录菜单实现思路: 创建文件: 结合使用\n和\t控制菜单输出格式 代码: public class LoginMenu { /* * 显示系统登录菜单 */ public static void main(String[] args) { ); ); } } 阶段4: 需求说明:

蜘蛛纸牌游戏需求分析

蜘蛛纸牌需求分析报告 院系: 年级: 专业班级: 姓名: 学号:

目录 1、任务概述 1.1目标 (3) 1.2系统特点 (3) 2. 游戏程序设计 2.1 游戏设计的功能 (3) 2.2 程序设计主要功能流程 (4) 2.2.1 界面的设计 (4) 2.2.2 游戏设计主流程分析 (6) 2.2.3 界面设计主要实现方法 (6) 3. 游戏程序设计的基本要求 (7) 3.1 硬件配置 (7) 3.2 软件环境 (7) 4. 尚需解决的问题 4.1 网络功能 (7) 4.2 外部接口需求 (7)

1.任务概述: 1.1 目标:让工作学习之后疲惫的玩家有一个轻松愉快的放松方式, 以最少的移动次数移走玩牌区的所有牌。 1.2 系统特点: 蜘蛛纸牌用两副牌(共有104张牌)玩。根据难度级别, 牌由一种、两种或四种不同的花色组成。要想赢得一局, 必须按降序从K 到A 排列纸牌,将所有纸牌从玩牌区 移走。在中级和高级中,纸牌的花色还必须相同。在按 降序成功排列纸牌后,该列纸牌将从玩牌区飞走。在不 能移动纸牌时,可以单击玩牌区底部的发牌叠, Windows 就会开始新一轮发牌。不限制您一次仅移动一 张牌。如果一串牌花色相同,并且按顺序排列,则可以 像对待一张牌一样移动它们。起始分数为500 分。 Windows从该分数中减去完成游戏的移动操作次数。然 后加上从玩牌区移走的牌串数乘以100。 2、游戏程序设计: 2.1 游戏设计的功能: 2.1.1 游戏框架即游戏界面功能组件的设计包括:开始游戏,重新 发牌,设计等级(简单:单一花色;中级:双花色;高级: 四花色。)撤销,帮助,退出游戏,显示可行操作。 2.1.2 游戏功能键中对关于窗体的设计:即显示游戏规则和说明。

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! 欢迎使用!"); } }

java课程设计报告

《Java程序设计》课程设计报告 题目:万年历 学院:数学与统计 专业:信计 学生姓名:梦超然 学号:101428717522 指导教师:李志新 2017年7月9 日

1需求分析 1.1需求分析 本程序的要求为: (1)能够显示实现1800-2100年的日期,包括公历、农历、星期、二十四节气。 (2)能够按照月份格式显示,或按照星期格式显示。 (3)能够显示系统时间。 (4)能够设置闹钟。 (5)能够查询若干国际大城市(分布在不同时区)的时间。 1.2功能设计 本程序要构建的万年历程序,其功能有以下几个方面: 一、设计程序运行界面,具有显示各种功能的面板模块,并对各功能按钮就行时间监听; 二、程序需要显示1800年到2100年的日历,包括公历、农历、时间所对应的星期。要求系统能够从界面上的操作获取公历日期,计算其所对应的星期和相应的农历并显示到界面上; 三、程序要求显示系统时间,并能设置闹铃。要求可以自己设置一个时间点,在这一时间点做出相应的响应; 四、查询显示若干国际城市不同时区的时间,这里只需要调用Java的系统里就可以解决。 五、对时间的更新,日历显示要求关联系统时间,能在进入程序时显示系统时间对应的日历,并能返回当天日历; 六、程序界面的美观设计和人性化结构,要求具有良好的人机交互,容易理解界面内容,易操作; 七、就现在的水平来说,功能1、2、3、5是可以实现,功能4 有待研究,可能遇到的问题是按钮对时间的监听处理可能难度较大,还有就是在公历转农历中可能比较难获取相应的公历变化日期。 2.概要设计 2.1程序设计思路 1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是 闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令

《Java程序设计实训》课程教学大纲

《Java程序设计实训》课程教学大纲 一、课程性质 本大纲适合于软件技术专业。 Java实训是软件技术专业的一门专业课,Java实训的先修课是《数据结构》、《数据库》、《计算机网络》、《Java基础》。它们为本课程提供了基础知识。本课程为学生将来毕业的就业打下了既专业又实用的基础。 二、课程目标 通过本课程的学习掌握基于C/S结构和B/S结构的网络编程技术。理论教学上达到学生能撑握基于C/S结构和B/S结构的网络编程的应用协议和常用类的API,培养学生的逻辑思维能力。实践上能让学生编写基于C/S结构和B/S结构的网络应用程序。 三、课程要求 本课程教学计划84 课时,其中理论课时:28课时,实践课时:56课时。 本课程在教学上应结合当前市场需要,紧跟软件设计技术前沿,考虑学生实际专业水平和学习能力,参考社会培训机构相关课程的教学计划进行教学设计和组织。并要求教师具有比较强的驾驭课堂的能力;具有良好的职业道德和责任心。 四、课程内容 (一)理论教学 1、Java基础技术。(2学时) 教学内容:主要介绍Java语言基础、面向好对象程序设计、程序流程控制语句。常用javaAPI应用程序接口的介绍,数据转换、时间日期、多线程、文件管理等常用类的使用方法、使用案例。GUI组件、事件处理。 重点:常用javaAPI应用程序接口的应用和GUI程序设计。 难点:GUI程序设计中事件处理。 知识目标:让学生进一步熟悉掌握利用GUI编程技术编写应用程序。 2、 java多线程机制(2学时) 教学内容:主要介绍多线程机制的原理及实现。 重点:Java多线程同步控制技术。 难点:Java多线程同步控制技术。 知识目标:让学生能掌握Java多线程同步控制技术,灵活应用解决实际问题。 3、Java网络编程(4学时)

java课程设计 蜘蛛纸牌游戏设计课程设计报告

xx xx学号 》序设计对面向象程《 告计报课程设 计设题目:下拉列表运算器 xxxxx专业: xxx班级: xx 姓名:指导教师:xx 成绩:

xx 日年xxxx x 月 xx 《面向对象程序设计》课程设计报告计算机学院 目录 ....................................................2设计内容及要求1 ....................................................2设计内容 1.1 ....................................................2设计要求 1.2 ..........................................................3概要设计2 .......................................3代码功能功能模块设计: 2.1 ........................................3: 2.2 程序的总体设计流程图.........................................3. 的详细介绍: 2.3模块一.............................................3 2.3.1 主要的类:...........................................4 2.3.2 主要的变量:...........................................4 2.3.3 主要的方法:...........................................5 2.4 模块二的详细介绍:.............................................5 主要的类:2.4.1 ...........................................5 主要的变量:2.4.2 ...........................................5 主要的方法:2.4.3 ............................................6 模块三的详细介绍:2.5 ...........................................6 主要类介绍:2.5.1 .............................................7主要变量: 2.5.2 .............................................7主要方法: 2.5.3 ...........................................8模块四的详细介绍: 2.6 .............................................8主要的类: 2.6.1 ...........................................8主要的变量: 2.6.2 ...........................................8主要的方法: 2.6.3 ................................................9 3 设计过程或程序代码.........................................9 3.1 需要实现的主要功能:............................................10 3.2 功能设计流程图:........................................10 主要功能的代码实现:3.3 ..............10 游戏菜单栏内游戏菜单及帮助菜单功能展示:3.3.1 ........................................11主界面的设计: 3.3.2 ..............................13纸牌的初始化以及发牌操作 3.3.3

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)角色。

java课程设计报告材料-俄罗斯方块

JAVA程序设计课程设计 之 俄罗斯方块 年级:13级 班级:T412 网络工程 指导老师:朱林 小组成员: 20138346021 许浩洋

时间:2015年11月11日 目录 摘要................................................................. 第一章课程设计要求.................................................. 第二章设计概要...................................................... 2.1 功能设计...................................................... 2.2 功能分析...................................................... 2.2.1 系统操作界面............................................... 2.2.2 程序主要功能说明........................................... 第三章调试分析与测试结果............................................ 3.1 游戏运行界面.................................................. 3.2 测试项目...................................................... 3.2.1 功能区按键测试............................................ 3.2.2 键盘功能测试.............................................. 3.2.3 游戏结束测试.............................................. 第四章设计总结...................................................... 4.1 改进意见...................................................... 4.2 《Java课程设计》心得体会 ......................................

Java程序设计实验报告分析

学生实验报告 (理工类) 课程名称: JAVA程序设计专业班级: 13电子信息工程(2)学生学号: 1305102056 学生姓名:许伟铭 所属院部:软件工程学院指导教师:王倩倩 20 15 ——20 16 学年第 2 学期 金陵科技学院教务处制

实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。 实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:JAVA编程基础实验学时: 4 同组学生姓名:————实验地点: 1514/A203 实验日期: 2016.04.08 实验成绩: 批改教师:王倩倩批改时间:

一、实验目的和要求 (1)熟练掌握JDK1.7及Eclipse Kepler Service Release 1(下简称Eclipse)编写调试Java应用程序及Java小程序的方法; (2)熟练掌握Java应用程序的结构; (3)了解Java语言的特点,基本语句、运算符及表达式的使用方法; (4)熟练掌握常见数据类型的使用; (5)熟练掌握if-else、switch、while、do-while、for、continue、break、return 语句的使用方法; (6)熟练掌握数组和字符串的使用; (7)调试程序要记录调试过程中出现的问题及解决办法; (8)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验; (9)做完实验后给出本实验的实验报告。 二、实验仪器和设备 奔腾以上计算机,Windows 操作系统,装有JDK1.7和Eclipse软件。 三、实验过程 (1)分别使用JDK命令行和Eclipse编译运行Java应用程序。记录操作过程。 Java应用程序参考如下: 思考:1. 适当添加注释信息,通过javadoc生成注释文档; 2. 为主方法传递参数“Hello world”字符串,并输出; 3. 压缩生成".jar"文件。 (2)分别使用JDK命令行和Eclipse编译Java Applet,并建立HTML文档运行该Applet。 记录操作过程。 Java小应用程序参考如下:

大富翁纸牌游戏说明

大富翁纸牌游戏说明 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

大富翁纸牌游戏说明 游戏开始前,先将游戏卡牌覆转洗混,再分发各玩家5张卡牌作手牌之用。馀下卡牌即作牌叠。由最年青的玩家开始,玩家依顺时针方向轮流进行自己的游戏回合。 玩家在其游戏回合中,依次执行以下步骤。 1.抽牌 玩家从牌叠顶抽取2张卡牌加入其手牌中。 若玩家已无手牌,则从牌叠顶抽取5张卡牌作其手牌。 2.打牌 玩家可从其手牌中,以任何次序最多打出3张卡牌。 玩家可打出货币牌或行动牌,叠放到自己面前桌面的右方作为银行户口。在银行户口中的行动牌即作金钱论,其价值即其角落数字。玩家若需支付金钱,即从其银行户口支付。若其银行户口金钱总额不足,即要交付其面前桌面的物业牌。 货币只可单纯放到玩家的银行户口中。玩家支付金钱时是没有找赎的。 玩家可打出物业牌放到自己面前桌面。这些即玩家拥有的物业。物业牌需依颜色分组放置。不同颜色的物业牌有不同数目,贵价地皮各有2张、一般地皮有3张、车站则有4张。玩家若需支付金钱而其银行户口金钱总额不足,即要交付其面前桌面的物业牌,物业牌价值即其角落数字。 玩家可打出行动牌,依行动牌上说明抽取卡牌、收取租金、抢夺物业、物业增值等。 3.弃牌 玩家手牌只可保有最多7张卡牌。玩家手牌若多於7张,则必须丢弃多馀的卡牌。 轮至左方玩家进行其回合。 游戏持续至一人凑齐3组全套的物业牌,该人即胜出游戏。 游戏卡牌:

盗取 玩家可强夺他人面前的1张物业牌,但对已凑齐一套的物业牌无效。 物业接管 玩家可强夺他人面前一整套的物业牌。 收取债务 向任何一位玩家索取5M金钱。 租金 依卡牌指定颜色,玩家必须拥有该色的物业,并依该色的物业牌数目向所有玩家收取金钱。双倍租金 与租金牌合用,所有玩家需支付两倍租金。 房子或酒店 放到一整套的物业牌上,以增加该色物业的租金。一整套的物业牌上必须先有房子牌,然後才可有酒店牌。公共机构上不可放房子或酒店牌。 强制交易 玩家可强制用自己面前的1张物业牌,指定交换他人面前的1张物业牌。 作出反对 只有此牌可在他人的游戏回合中使用。当他人行使行动牌侵害玩家时,玩家可打出此牌以取消打出卡牌的效果。但对方亦可以另一「作出反对」来让此牌无效。 我的生日 玩家向所有玩家收取2M。 彩色租金 玩家可向任何一位玩家,收取其拥有某一颜色物业的租金。 通行证

javaEE课程设计报告35858

课程设计 课程名称:JAVAEE/.NET课程设计设计题目:校园超市商品信息管理系统学院:信息工程与自动化学院 专业:计算机科学与技术 年级:2011年级 学生姓名: 指导教师: 日期:2014-6-30——2014-7-11 教务处制

课程设计任务书 信息工程与自动化学院计算机科学与技术专业2011 年级学生姓名:张建兴 课程设计题目:校园超市商品信息管理系统 课程设计主要内容: 本次课程设计自主完成一个系统,题目学生自定。我设计的是一个校园超市商品信息管理系统,是一个小型系统,适用于一些小型超市,对库存商品,售出商品,日常业务进行管理。主要采用jsp+servlet+数据库配合的方式工作。Jsp 负责页面显示,servlet处理逻辑业务,后台数据库采用mysql数据库。用到连接数据库,对数据库的操作,servlet跳转,实现部件之间的合作,前台(jsp)获取并显示后台(数据库)数据,或者后台(数据库)获取并存储前台数据。 设计指导教师(签字): 教学基层组织负责人(签字): 年月日

摘要 本次课程设计题目有学生自定,学生可以受日常学习生活启发来设计一个系统。这次课程设计主要要求学生掌握javaEE网络编程,老师要求学生自主完成规模不限的系统,自定题目,自主设计。对于这次课程设计,我把它当做一次实践的机会,设计过程中希望通过跟同学讨论,提问老师等方式使自己得到提升,毕竟平时自己一个人琢磨很难解决一些问题,也很难提高技巧。之前对于MVC 编程方法的逻辑不是那么清晰,很难衔接好各个层之间的接口。如果时间足够,希望这一次通过各种方法,在采用MVC的编程思想的前提下,自己完成一个完整的系统。这一次我自主设计并完成了校园超市商品信息管理系统,旨在复习javaEE/.net的知识,并从这一次实践中获得技术的提升。熟练编程中的一些技巧和编程中常见的错误 每个校园内都会有好几个小型的超市,虽然说是小型,但也提供了上万学生日常所需的任何商品,在我印象中在校园里的超市能找到你所需要的一切。超市的商品肯定很多,零零碎碎很繁杂,难管理,所以一个管理超市商品信息和业务的系统根由必要。可以减轻店员的工作量,提高效率。 超市商品信息管理系统是一个规划管理超市商品的价格,库存,利润和日常的一些业务的一个小型系统,适用于一些小型超市。它包括三个主要功能:库存商品管理,售出商品管理和日常业务管理。在这三大功能下又各自包括对商品的添加,查询和删除等功能。是一个小型,便捷地系统。

java程序设计实训心得体会

java程序设计实训心得体会这次实训,我们更多学到的是不懂就问和自己应该尽自己的全力去尝试,哪怕失败,只要自己尽自己的全力,和身边同学一起探讨而不是抄袭,团结合作,发挥团队意识,最后在自己的努力下,终于运行成功,这种成就感美不可言,心情愉悦至极。下面是小编整理的相关内容,欢迎大家阅读! 回顾这次的实训,这次或许是最后的实训机会。我是一名大二的学生,明年或许就要出去实习了,所以我很珍惜这次的实训机会,因为它能够让我了解自己的不足以及以后自己努力的方向,同时也能让我了解软件开发的流程,增加一点软件开发经验和社会经验。让我在以后的实习中会更好的融入到其中,增加自己的就业机会,因为纵观现在的就业形势很不让人乐观,由于之前的经济危机,就业机会越来越少,就业也越来越难,这就给了我们很大的压力,所以要是没有真本事,就业岗位就无从谈起,因此,在以后的学习中,我会更加好好努力。 通过这次的实训,我学到了很多: 首先,对JAVA识比以前有了更深的了解。在这之前由于种种原因我JAVA学的很不好,编程我几乎写不出来。但经过这次的实训,我对JAVA的理解,虽然还有很多都不懂,但我会在今后的实训和学习中加以学习了解,力求弄懂,增

强自己对JAVA的理解。 其次,在这次的实训中我的动手操作能力有了一点的提高,刚开始的时候JDK的配置,数据库的安装都出现了一定的问题,JAVA 可实话开发工具的不熟悉,所以开始的时候进程很慢,时间都用在了JDK的配置,数据库的安装以及熟悉JAVA可视化开发工具上,但付出有了回报,成功的配置了JDK,安装了数据库,熟悉了JAVA可视化开发工具,总的说来,自己还是有一定的收获的。因为自己的动手操纵能力得到了提高。 最后是团队协作。在整个项目完成过程中团队协作有着不可替代的作用。从在刚拿到项目时对项目的分析到最后的项目完结的都有一定的体现。刚拿到项目时,我们团队进行了分析,并分配了各自的任务。当我们其中一人遇到问题的时候,我们其他人都会去帮忙,效率提升了很多。但可能由于不是一个宿舍的,大家彼此间都不是很了解,所以交流中还是存在了一定的问题。 在这次的实训当中我收获颇丰。但仅仅靠这一个月的学习还是远远不够的。所以在以后的学习中我会更加努力,提高自己的能力,让自己在以后的社会道路上打下坚实的基础。 此次只实训了短短的三周。虽说时间很短,但其中的每一天都使我收获很大、受益匪浅,它不但极大地加深了我对

基于java开发的蜘蛛纸牌程序设计图文稿

基于j a v a开发的蜘蛛纸牌程序设计 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

编号:本科毕业论文(设计) 题目: 学院 专业 学号 姓名 指导教师职称: 完成日期 诚信承诺 我谨在此承诺:本人所写的毕业论文《》均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担。 承诺人(签名): 年月日 基于java开发的蜘蛛纸牌程序设计 姓名:关俊生学号:指导老师:李林 国 摘要:java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。Java是面向对象的语言。蜘蛛纸牌是一款受人喜欢的休闲游戏,微 软的每一代操作系统中都装有这种纸牌游戏,很多人都玩过蜘蛛纸牌,都熟悉蜘蛛纸牌游戏所需要的功能。本人做的蜘蛛纸牌游戏开 发理念是基于WINDOWS XP操作系统中自带蜘蛛纸牌游戏。利用java语言实现了蜘蛛纸牌游戏的主要功能如纸牌的移动、放置、回

收、重发。利用javax.swing包的类实现纸牌游戏的用户界面,通 为各个菜单组件添加监视器来实现鼠标单击事件所触发的接口方 法,使得用户可以单击菜单项来实现具体的功能。通过设置纸牌的 等级来初始化纸牌随机分配纸牌,为用户玩纸牌游戏提供相应的等 级。意义:通过自己对蜘蛛纸牌游戏的开发,使我更加热爱java 语言,让我懂得和洗去了更多程序开发的知识及经验,为以后进入 编程工作提供条件。 关键字:java语言、游戏背景、功能实现 Spider solitaire program based on java development Name: Guan Junsheng Student ID: 200 829 010 213 Instructor: Li Linguo Abstract: java is the Java programming language from Sun Microsystems, Inc. in May 1995 (hereinafter referred to as the general term of the Java language) and Java platforms. Java is object-oriented languages. Spider Solitaire is a people like casual games, each generation of Microsoft's operating system are equipped with this card game, many people have played Spider Solitaire are all familiar with the functionality required by the spider card game. I do spider solitaire game development philosophy is based on the WINDOWS XP operating system comes with the spider solitaire game. Java language to achieve the main function of the spider solitaire game, such as

javaEE课程设计报告

课程设计 课程名称: JAVAEE/.NET课程设计 设计题目:校园超市商品信息管理系统 学院:信息工程与自动化学院 专业:计算机科学与技术 年级: 2011年级 学生姓名: 指导教师: 日期: 2014-6-30——2014-7-11 教务处制

课程设计任务书 信息工程与自动化学院计算机科学与技术专业 2011 年级学生姓名:张建兴 课程设计题目:校园超市商品信息管理系统 课程设计主要内容: 本次课程设计自主完成一个系统,题目学生自定。我设计的是一个校园超市商品信息管理系统,是一个小型系统,适用于一些小型超市,对库存商品,售出商品,日常业务进行管理。主要采用jsp+servlet+数据库配合的方式工作。Jsp 负责页面显示,servlet处理逻辑业务,后台数据库采用mysql数据库。用到连接数据库,对数据库的操作,servlet跳转,实现部件之间的合作,前台(jsp)获取并显示后台(数据库)数据,或者后台(数据库)获取并存储前台数据。 设计指导教师(签字): 教学基层组织负责人(签字): 年月日

摘要 本次课程设计题目有学生自定,学生可以受日常学习生活启发来设计一个系统。这次课程设计主要要求学生掌握javaEE网络编程,老师要求学生自主完成规模不限的系统,自定题目,自主设计。对于这次课程设计,我把它当做一次实践的机会,设计过程中希望通过跟同学讨论,提问老师等方式使自己得到提升,毕竟平时自己一个人琢磨很难解决一些问题,也很难提高技巧。之前对于MVC 编程方法的逻辑不是那么清晰,很难衔接好各个层之间的接口。如果时间足够,希望这一次通过各种方法,在采用MVC的编程思想的前提下,自己完成一个完整的系统。这一次我自主设计并完成了校园超市商品信息管理系统,旨在复习javaEE/.net的知识,并从这一次实践中获得技术的提升。熟练编程中的一些技巧和编程中常见的错误 每个校园内都会有好几个小型的超市,虽然说是小型,但也提供了上万学生日常所需的任何商品,在我印象中在校园里的超市能找到你所需要的一切。超市的商品肯定很多,零零碎碎很繁杂,难管理,所以一个管理超市商品信息和业务的系统根由必要。可以减轻店员的工作量,提高效率。 超市商品信息管理系统是一个规划管理超市商品的价格,库存,利润和日常的一些业务的一个小型系统,适用于一些小型超市。它包括三个主要功能:库存商品管理,售出商品管理和日常业务管理。在这三大功能下又各自包括对商品的添加,查询和删除等功能。是一个小型,便捷地系统。 关键字:超市,管理商品,业务,功能

java课程设计 蜘蛛纸牌游戏设计课程设计报告

《面向对象程序设计》 课程设计报告 题目: 下拉列表运算器设计 专业: xxxxx 班级: xxx 姓名: xx 指导教师: xx 成绩: xx xxxx 年 x 月xx 日 xx

目录 1设计内容及要求 (2) 1.1 设计内容 (2) 1.2 设计要求 (2) 2概要设计 (2) 2.1代码功能功能模块设计: (2) 2.2程序的总体设计流程图: (3) 2.3模块一的详细介绍: (3) 2.3.1主要的类: (3) 2.3.2主要的变量: (4) 2.3.3主要的方法: (4) 2.4模块二的详细介绍: (5) 2.4.1主要的类: (5) 2.4.2主要的变量: (5) 2.4.3主要的方法: (5) 2.5模块三的详细介绍: (6) 2.5.1主要类介绍: (6) 2.5.2主要变量: (6) 2.5.3主要方法: (7) 2.6模块四的详细介绍: (7) 2.6.1主要的类: (8) 2.6.2主要的变量: (8) 2.6.3主要的方法: (8) 3设计过程或程序代码 (9) 3.1需要实现的主要功能: (9) 3.2功能设计流程图: (10) 3.3主要功能的代码实现: (10) 3.3.1游戏菜单栏内游戏菜单及帮助菜单功能展示: (10) 3.3.2主界面的设计: (11) 3.3.3纸牌的初始化以及发牌操作 (13) 3.3.4纸牌的移动以及放置 (18) 3.3.5显示当前纸牌可行的操作: (19) 3.3.6回收纸牌: (21) 4设计结果与分析 (22) 4.1运行程序: (22) 4.2发布程序: (23) 4.3总结: (24) 5参考文献 (24)

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)计算器主界面

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