当前位置:文档之家› JAVA课设华容道总的

JAVA课设华容道总的

JAVA课设华容道总的
JAVA课设华容道总的

一、课程设计任务及要求

1本程序主要练习使用布局管理器设计一个华容道游戏界面,并练习使用事件监听器(鼠标事件、键盘事件和焦点事件)实现按钮的移动。

2编写一个按钮的子类,使用该子类创建的对象代表华容道中的人物。通过焦点事件控制人物颜色,当人物获得焦点时颜色为红色,当失去焦点时颜色为黄色。

3通过键盘事件和鼠标事件来实现曹操、关羽等人物的移动。当人物上发生鼠标事件或键盘事件时,如果鼠标指针的位置是在人物的下方(也就是组件的下半部分)或按下键盘的“↓“键,该人物向下移动。向左、向右和向上的移动原理类似。

4点击“重新开始”可以使各个按钮复位,重新开始游戏。

二、需求分析

要满足的容道游戏的基本操作:

1.各人物按钮按相应的顺序和大小排列,按钮上标注人物名字,界面美观。

2.通过焦点事件控制人物按钮的颜色,得到焦点呈红色,失去焦点为淡黄色。

3.可以通过键盘控制各个按钮的移动:按“↓”键,人物按钮向下移动其它方向类似。

4.可以通过鼠标点击来控制各个人物按钮的移动:如果点击的位置在按钮的上半部分则向上移动,如果点击按钮的下半部分则向下,左右原理类似。

5.有“重新开始按钮”点击重新开始按钮各个人物按钮复位,能重新开始游戏。

6.小程序能够自由的缩小,放大,关闭。

三、设计思路

1.首先是界面设计,该界面主要包括十个人物按钮(马、曹操、关羽等)

以及旁边的四个边框按钮和重新开始按钮。对于人物按钮,创建Button 按钮的子类,在该类中定义按钮的一些新的属性和焦点事件监听器,如:按钮的标签名、按钮的颜色、按钮的排号(如这里有十个人物按钮,从1排到十,在程序中可以依靠这个属性区分人物按钮)、按钮颜色、按钮获得或失去焦点事件。同时在设计该界面时要考虑到各个按钮的位置、大小等情况。

2.对界面上的各人物按钮添加相应的相应事件

焦点事件:通过焦点事件各个按钮的是焦点。

鼠标事件、键盘事件:通过这两种事件去完成界面上各人物按钮的移动。对重新开始按钮定义动作事件(ActionEvent)完成界面初始化功能也

就是各人物按钮重新归位。

四、详细设计

详细设计主要是关于代码,编程思想和程序实现的具体描述。其中包含具体的运行界面,操作界面,运行结果图,和运行前图形界面。此外,还有一定的流程展示,各个运行模块的结构关系展示,对华容道小游戏的具体实现的具体展示,以及部分主要的代码的展示和分析说明,编程思想的体现。

1.结构建立:

在road的project下建立road包中建立Road类,如下图

图4-1在road的project下建立road包中建立Road类

2.上机模块建立

1、界面设计

界面设计主要是根据功能要求构建界面,界面中的每个元素均应有其作用,以支持功能的实现,界面设计还要考虑到界面风格的一致、符合一般Applet的图像协调。设计应简洁实用,大方美观,界面协调,便于使用者进行操作,按钮布局合理,大小适中,还应具有使用方法的温馨提示,告诉使用者如何运用程序。

图4-2华容道小游戏运行界面

程序构造:

利用以下代码对按钮构造name=s;this.number=number;

left_x=x;left_y=y;width=w;height=h;setBackground(Color.gray);当人物没有获取焦点的时候为灰色。road.add(this); addKeyListener(road);setBounds(x,y,w,h);addFocusListener(this);rect=new Rectangle(x,y,w,h);载入事件并响应。

优化程序:

根据程序员自己的要求设计更为美观的图形界面,创造更加丰富的按钮颜色,和其它颜色,达到优化图形界面的目的。具体实现方法如下:public void focusGained(FocusEvent e){Color myColor=new Color(20,100,180); this.setBackground(myColor);}

程序员可以更改括号中的数值来改变按钮获取焦点后的颜色,达到美观的目的。此处我选择了(20,100,180)获取颜色为浅蓝色。

程序初始化:

对华容道小游戏程序中的人物、边框、按钮、计步器进行初始化。People people[]=new People[10];Rectangle left,right,above,below;//华容道的边界.Button restart=new Button("重新开始");int count=0;TextField t=new TextField(20);//此为计步器的初始化。

界面布局:

对程序中应有的按钮、边框、计步器显示进行合理的安排,将其放在图形界面中的适当位置。t.setBounds(180,330,20,20);t.setEnabled(false); restart.setBounds(105,15,100,25);restart.addActionListener(this);//以上为对重新开始按钮进行的坐标设置。people[0]=new People(0,"曹操",104,54,100,100,this);people[1]=new People(1,"关羽",104,154,100,50,this); people[2]=new People(2,"张飞",54,154,50,100,this);以及people[8]=new People(8,"兵",104,204,50,50,this)people[9]=new People(9,"兵",154,204,50,50,this);等是为人物进行的位置设置。还有left=new Rectangle(49,49,5,260);above=new Rectangle(49,49,210,5);都是对坐标位置进行设置。

键盘控制操作获得焦点的人物活动:

图4-3控制兵向下

图4-4控制兵向右

图4-5控制兵向左

图4-6控制兵向上

键盘事件:

public void keyPressed(KeyEvent e){People man=(People)e.getSource(); //鼠标获取事件源man.rect.setLocation(man.getBounds().x, man.getBounds().y);if(e.getKeyCode()==KeyEvent.VK_DOWN)

键盘控制向下代码为man.left_y=man.left_y+50;

man.setLocation(man.left_x,man.left_y);

man.rect.setLocation(man.left_x,man.left_y);

count++;t.setText(""+count+"");//此为计步器的代码

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

{if((man.rect.intersects(people[i].rect))&&(man.number!=i))

{man.left_y=man.left_y-50;

man.setLocation(man.left_x,man.left_y);

man.rect.setLocation(man.left_x,man.left_y);

count--;t.setText(""+count+"");}}

if(man.rect.intersects(below)){man.left_y=man.left_y-50;

man.setLocation(man.left_x,man.left_y);

man.rect.setLocation(man.left_x,man.left_y);

count--;t.setText(""+count+"");}}//以上为判断是否和其它人物或下边界出现重叠,若出现重叠就退回50个单位距离。

键盘控制向上、向左、向右代码和控制向下的代码类似。

使用方法提示:

g.drawString("使用方法:",10,10);

g.drawString("点击相应的人物,",10,20);

g.drawString("按键盘上的上下",10,30);

g.drawString("左右键进行移动",10,40);

在图形界面的左上角进行使用方法提示,方便使用者了解华容道小游戏的操作步骤。能够利用鼠标和键盘进行游戏控制。

程序提高部分:添加计步器

图4-7计步器初始时刻为空

图4-8当兵向下行走一步时计步器显示为1

图4-9当使用者点击了重新开始的按钮后步数自动归0计步器的实现;

int count=0;TextField t=new TextField(20);

创建一个大小为20的文本框,令count为0.

t.setBounds(180,330,20,20);

将文本框的位置进行设置

public void keyPressed(KeyEvent e)

{if(e.getKeyCode()==KeyEvent.VK_DOWN

count++;

t.setText(""+count+"");

当键盘点击向下操作时,计步器的步数加一。

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

{if((man.rect.intersects(people[i].rect))&&(man.number!=i)) {man.left_y=man.left_y-50;

man.setLocation(man.left_x,man.left_y);

man.rect.setLocation(man.left_x,man.left_y);

count--;t.setText(""+count+"");

当和其它人物或下边界出现重叠时,退回50个单位距离后,count就减一当向左,向右,向上操作时计步器的基本操作和向下一样。

this.count=0;

t.setText(""+count+"");

当点击重新开始的按钮时计步器的步数变为0。

重新开始的实现:

图4-10当游戏进行到难以进行的时候,进行重新开始

图4-11游戏恢复到初始状态Button restart=new Button("重新开始");

setLayout(null);add(restart);add(t);

restart.setBounds(105,15,100,25);

restart.addActionListener(this);对重新开始设置

this.count=0;

t.setText(""+count+"");//当点击重新开始的按钮时步数清零

五、运行调试与分析讨论

图5-1运行的图形界面

经过不断的改进,实现了鼠标获取事件,键盘控制移动事件,对按钮的背景颜色进行修改,使得图形界面更加的美观合理。对使用者进行操作方法的提示,使得使用者方便操作。对使用者使用的步数进行记录,对使用者进行提示。运用了多个类,和继承方法,图形界面设置等多个内容,对华容道小游戏进行编辑,最终完成了这个程序的编辑。

六、设计体会与小结

经过数天时间的不断努力,我终于编成了华容道这个传统的中国小游戏,在编写的过程中,我经常从网上学习一些编程过程中遇到的困难,在编写计步器的时候,出现了按重新开始的按钮计步器无法归零的问题,在同学的帮助下得到了解决。我还从《Java程序设计导论》和《Java程序设计大

全》中获得了对按钮的背景颜色进行更改的方法,受益匪浅。我体会到学习Java不能闭门造车,必须从多个方面进行不断学习,从各个方面解决问题才能完成好对程序的编写。

七、参考文献

(1)丁振凡.Java语言实用教程(第2版)[M].北京邮电大学出版社.2008.1(2)丁振凡.Java语言实用教程实验指导(第2版)[M].北京邮电大学出版社.2008.1

(3)杨树林等.Java语言最新实用案例教程(第2版)[M].清华大学出版社. 2010.7

JAVA课程设计打砖块(含代码)

Java程序课程设计任务书 一、主要容 打砖块游戏是一种动作电子游戏的名称。玩家操作一根萤幕上水平的“棒子”,让一颗不断弹来弹去的“球”在撞击作为过关目标消去的“砖块”的途中不会落到萤幕底下。球碰到砖块、棒子与底下以外的三边会反弹,落到底下会失去一颗球,把砖块全部消去就可以破关。 二、具体要求 通过图形用户界面(Graphics User Interface,GUI)和线程,使用户和程序之间可以方便地进行交互。运用Swing组件,编写小应用程序游戏,加深对Java语言的理解,深入地了解图形用户界面的设计,更加熟练地运用编程软件。 功能要求: (1)游戏运行需键盘的操作; (2)游戏可统计分数; (3)球落到底下会失去一颗,按ENTER可重新开始。 开发工具:JCreater软件; 开发技术:J2ME。 三、进度安排 12月28日:课程设计选题,查找参考资料 12月29日:完成打砖块游戏程序设计分析 12月30日~ 1月3日:完成程序代码的编写 1月4日~ 1月5日:游戏测试与完善 1月6日~ 1月7日:完成课程设计报告,准备答辩 四、主要参考文献 [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程序课程设计任务书 JAVA聊天室的系统的设计与开发 1.主要内容: 用JA V A实现基于C/S模式的聊天室系统。聊天室分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的信息,客户端需要登陆到服务器端才可以实现正常的聊天功能。 2.具体要求(包括技术要求等): 系统的功能要求: A.服务器端主要功能如下: 1.在特定端口上进行侦听,等待客户端连接。 2.用户可以配置服务器端的侦听端口,默认端口为8888。 3.向已经连接到服务器端的用户发送系统消息。 4.统计在线人数。 5.当停止服务时,断开所有的用户连接。 B.客户端的主要功能如下: 1.连接到已经开启聊天服务的服务器端。 2.用户可以配置要连接的服务器端的IP地址和端口号。 3.用户可以配置连接后显示的用户名。 4.当服务器端开启的话,用户可以随时登录和注销。 5.用户可以向所有人或某一个人发送消息。 学习并掌握一下技术:Java JavaBean 等 熟练使用一下开发工具:Eclipse,JCreator 等 实现系统上诉的功能。 3.进度安排: 12月28日~ 12月29日:课程设计选题,查找参考资料 12月30日~ 1月1日:完成系统设计 1月2日~ 1月5日:完成程序代码的编写 1月6日:系统测试与完善 1月7日:完成课程设计报告,准备答辩 4.主要参考文献: [1].张广彬孟红蕊张永宝.Java课程设计(案例精编)[M].清华大学出版社.2007年版

摘要 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。基于Java网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。 一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Soket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQL Server2000完成并通过JDBC-ODBC桥访问数据库。 本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。使用JAVA语言编写,开发工具采用Eclipse。服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。大大增强了程序对服务器资源的利用。 聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。 关键词:多线程;客户机/服务器;JA V A ;Socket ;Eclipse ;TCP/IP

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课程设计-拼图游戏代码

package love; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; import javax.swing.*; public class Games extends JFrame implements ActionListener { private JButton buttons[][];// 存储按键的数组 private Container container;// 一个容器 private GridLayout layout;// 布局方式为GridLayout private int count = 0, is[] = new int[8];// count的作用是计算按键移动的次数,is[]储存一个随机产生的1到8数字数组 public Games() { super("拼图游戏");// 设置标题 layout = new GridLayout(3, 3);// 3行3列 container = getContentPane();// 该容器的布局方式,及其重要,否则产生空引用异常 container.setLayout(layout);// 将该布局方式作用于容器 buttons = new JButton[3][3];// 给按键数组分配储存空间 int locate1, locate2;// locate1用来指示当前产生的元素 locate2用来指示locate1之前的元素 for (locate1 = 0; locate1 < 8; locate1++) {// 该方法作用是产生1到8这8个数,随机分配给数组,即无序排列 int g = new Random().nextInt(8) + 1;// 随机产生一个空白按键,即不显示的那个 is[locate1] = g; for (locate2 = locate1 - 1; 0 <= locate2; locate2--) { if (is[locate1] == is[locate2]) break; } if (locate2 != -1) locate1--; } int temp = 0; int r = new Random().nextInt(3);// 随机产生一个0到3的数,代表空白按键的行 int l = new Random().nextInt(3);// 随机产生一个0到3的数,代表空白按键的列 for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) {

5_Java课程设计源代码

package zhouchuan; import java.applet.*; import java.awt.*; import java.awt.event.*; import https://www.doczj.com/doc/4710904749.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课设走迷宫(含代码)

目录1.设计目的 课程设计的目的 2.总体设计 设计思路 设计方法 3.关键技术 4.程序流程 5.主要源代码 6. 运行结果及结论 7. 参考文献

1.设计目的 课程设计的目的 随着科技进步,时代发展,计算机走进了大家的生活。计算机程序强大的功能为使用者提供服务,编程语言也变得越来越流行。 Java 语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。 为了进一步巩固课堂上所学到的知识,深刻把握 Java 语言的重要概念及其面向对象的特性,熟练应用面向对象的思想和设计方法解决实际问题的能力,也是为了增加同学们娱乐游戏选择而开发了一个适合学生的,能提升思考力的迷宫冒险游戏,这既锻炼了动手能力,还能进行消遣娱乐,可谓一举两得。 2.总体设计设计思路 根据对游戏系统进行的需求分析,本系统将分为 6 个模块:分别是迷宫 主界面模块、记时设计模块、迷宫设计模块、道路和障碍设计模块、动漫冒险者设计模块、出入口设计模块。实现的功能有:

(1)迷宫的选择 玩家可以根据自身需求来进行选择简单迷宫、中等迷宫、难度迷宫三类中选择一类迷宫进行游戏。 (2)选择道路和障碍的图像 玩家可以根据个人喜好对迷宫中的道路和障碍的图片进行选择,但是图片的格式有规定,必须是“ jpg ”或“ gif ”格式的。 (3)游戏记时 当玩家控制迷宫中的动漫人物进行游戏时,计时器就开始进行记时,直 到动漫人物到达出口时,记时结束,并在屏幕上显示游戏用时。 (4)开始游戏 玩家将鼠标移动至迷宫中的动漫冒险者,即可看到“单击我然后按键盘 方向键”,单击后,游戏开始。玩家即可通过键盘上的方向键进行游戏。 (5)游戏结束 玩家控制动漫冒险者移动至迷宫地图的出口处时,游戏的计时器停止计时,并弹出信息框“恭喜您通关了” ,游戏结束 (6)冒险脚步声 玩家单击动漫冒险者后,便可以用键盘方向键进行控制。动漫冒险者每移动一步便会发出一声“嘟”的响声。

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

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

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

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

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课程设计计算器源程序代码.

package jisuanqi; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; public class JiSuanQi extends JFrame implements ActionListener{// JiSuanQi 继承Frame实现ActionListener接口 JMenuBar menubar;//定义一个菜单 JMenu menu1,menu2,menu3;//定义菜单组件各个部分的对象 JMenuItem menuitem1,menuitem2,menuitem3,menuitem4,menuitem5;//定义对象下的菜单项 JLabel label; JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b01,b02, b03,b04,b05; JPanel panel1,panel2,panel3;//定义三个面板 String a="0"; boolean b,c; Double m=0.0,n=0.0,r=0.0; Integer h=0;

int d; public JiSuanQi({ setTitle("jisuanqi"; panel1=new JPanel(; panel2=new JPanel(; panel3=new JPanel(; menubar=new JMenuBar(;//以下生成菜单组件对象menu1=new JMenu("File"; menu2=new JMenu("Edit"; menu3=new JMenu("Help"; menuitem1=new JMenuItem("ON"; menuitem2=new JMenuItem("OFF"; menuitem3=new JMenuItem("Close"; menuitem4=new JMenuItem("Copy"; menuitem5=new JMenuItem("Help"; label=new JLabel(""; b1=new JButton("7"; b2=new JButton("8"; b3=new JButton("9";

java课程设计

课程设计报告(2016—2017学年第2学期) 课程名称Java课程设计报告 学生姓名张晓甜 班级 学号 指导教师康军 完成日期2017.6.23

目录 一、设计目的及要求 (1) 1.1课程设计目的 (1) 1.2课程设计内容和要求 (1) 二、系统需求分析 (2) 2.1系统目标 (2) 2.2游戏需求 (2) 2.3开发环境 (2) 三、系统总体设计 (3) 3.1系统的功能模块划分 (3) 3.2系统流程图 (4) 四、系统详细设计 (5) 4.1具体的设计步骤如下:? (5) 4.2界面设计 (5) 4.3关键功能的实现 (6) 五、代码调试 (11) 六、小结 (14) 参考文献 (15) 七、附录 (15)

一、设计目的及要求 1.1课程设计目的 通过本游戏的设计,综合自己在校期间所学的理论知识,设计开发24点游戏,使自己熟悉应用系统的开发过程,进一步理解面向对象程序设计的思想和方法,利用Java语言进行程序设计的能力,培养自主思考能力,检验学习效果和动手能力,初步掌握基础编程知识,并锻炼发现问题、分析问题和解决问题的能力。从而达到理论与实践相结合的目的。 加深对《Java语言与面向对象技术》课程基础知识的理解,掌握Java语言面向对象程序设计的开发方法和步骤。 1.2课程设计内容和要求 24点游戏是一种使用扑克牌来进行的益智的游戏,游戏内容为:从一副扑克牌四个花色的1到K等52张牌中,任意抽取4张牌,运用加、减、乘、除和括号等运算符把牌面上的数进行运算得到24。游戏有不同的版本,其实是对J、Q、和K的处理有所不同。有的版本版本是把J、Q、和K去除,只用1到10来进行游戏;有的版本是把J、Q、和K当成10;还有的版本是用J表示11,Q表示12,K表示13。此次课程设计采用的是把J表示11,Q表示12,K表示13,使游戏的四张牌在1~K这13张牌中随机取牌。具体功能如下:? ⑴对游戏设计三个难易级别,分别为初级、中级和高级。每次开始游戏前可以根据玩家的需要进行难度设置,如若不设置,系统默认难度级别为初级,设置完难度级别之后就可以开始游戏了,单击“发牌”按钮,桌面上出现四张翻开的扑克牌,与此同时,游戏开始计时,时间条开始前进。? ⑵在规定的时间内,玩家可以在“输入结果”的编辑框中输入自己想好的算式,然后点击“验算”按钮:如果输入的算式经运算后所的答案正确,则会弹出“恭喜,你成功答对了一题”的窗口;如果输入的数字与给出的牌的数字不符或者符号不合法,则会弹出“抱歉,你答错了”的窗口;如果未输入任何的数字和算符,则会弹出“输入不能为空!”的窗口。 ⑶?程序中可以记录游戏的历史记录。 ⑷如果在规定的时间内,玩家没有点击验算按钮,则会弹出“对不起,你失败了”的窗口。 ⑸在结束本轮游戏后,如果玩家想继续游戏,则可点击“发牌”按钮即可重新发牌,开始下一轮的游戏;如果玩家想结束游戏,则可点击“结束”按钮即可结束游戏

java课程设计——客户管理系统源代码

完整代码: 1.客户类(class person):package客户管理系统; publicclass Person { privateint num; private String name; private String address; private String sex; public Person(){} public Person(int num,String name,String address,String sex){ this.num=num; https://www.doczj.com/doc/4710904749.html,=name; this.address=address; this.sex=sex; } publicvoid setNum(int num){ this.num=num; } publicint getNum(){ return num; } publicvoid setName(String name){ https://www.doczj.com/doc/4710904749.html,=name; } public String getName(){ return name; } publicvoid setAddress(String address){ this.address=address; } public String getAddress(){ return address; } publicvoid setSex(String sex){ this.sex=sex;

} public String getSex(){ return sex; } public String toString() { return"\t"+num+"\t"+name+"\t"+address+"\t"+sex; } } 2.菜单类(class Menu): package客户管理系统; import java.util.Scanner; publicclass Menu { Scanner input=new Scanner(System.in); public Menu() {} publicint showMenu() { System.out.println("******************************* ****"); System.out.println("客户管理系统"); System.out.println("=============================== ===="); System.out.println("【1】增加"); System.out.println("【2】删除"); System.out.println("【3】修改"); System.out.println("【4】查询"); System.out.println("【5】浏览"); System.out.println("【6】退出"); System.out.println("******************************* ****"); System.out.print("请选择操作:"); return input.nextInt(); } publicint subMenu() { System.out.println("\t【查询客户】"); System.out.println("\t[1]按客户编号查询");

面向对象课程设计java大作业报告含源代码

Java程序设计报告年级专业信息管理与信息系统 学号 学生姓名 指导教师 二○一四年六月 一、所用到的表的结构及数据类型 customer顾客表 操作人员表

列名说明数据类型约束 用户名用户登录名nchar(10) 主码 密码登录密码nchar(3) 非空 职位担任职务nchar(10) 1、登录功能 打开Java文件运行后 输入错误的用户名后出现: 输入用户名Lucy 密码:123点击登录进入操作界面: 2、添加功能 下拉顾客信息系统菜单,选择添加客户信息 添加信息前数据库客户表的内容: 没有编号0000013 添加客户0000013: 数据库内表变为: 注:0000015号是截图之前添加进去的 3、查询功能 下拉客户信息系统菜单,选择查询客户信息,输入客户编码0000013后点击确定查询此顾客: 4、修改功能 下拉菜单客户信息系统,选择修改客户信息,重新输入相应的正确信息,将错误的覆盖掉,此处将0000013张蔷年龄改为32: 数据库表内内容: 5、删除功能 下拉菜单客户信息系统,选择删除客户信息,输入客户编码0000013点击确认: 数据库信息变为: 0000013号信息已经删除 6、退出系统功能 下拉菜单客户信息管理选择退出: 然后就退出了界面。 三、程序源代码 package LoginSystem; import .*; import .*; import .*; import .*; quals(pwds))){ (null,"用户名或密码错误!","错误",;

}else{ new Goods(); dispose(); } (con); (state); (rs); }catch(SQLException e){ (null,"用户名或密码错误!","错误",; } } }); } public static void closeConn(Connection conn){ try { if(conn != null) { (); } } catch (SQLException e) { (); } } public static void closeState(Statement state) { try { if(state != null) { (); } } catch (SQLException e) { (); } } public static void closeRs(ResultSet rs) { try { if(rs != null) { (); } } catch (SQLException e) { (); } } //连接数据库 public static Connection getConnection(){ String userName = "sa"; String userPwd = "123"; Connection conn=null; try { (driverName); conn = (dbURL, userName, userPwd); }catch (Exception e){ (); }

java课程设计

课程设计报告( 2016—2017学年第2学期) 课程名称Java课程设计报告学生姓名张晓甜 班级2015240701 学号201524070134 指导教师康军 完成日期2017.6.23

目录 一、设计目的及要求 (1) 1.1课程设计目的 (1) 1.2课程设计内容和要求 (1) 二、系统需求分析 (2) 2.1 系统目标 (2) 2.2游戏需求 (2) 2.3 开发环境 (2) 三、系统总体设计 (3) 3.1系统的功能模块划分 (3) 3.2系统流程图 (4) 四、系统详细设计 (5) 4.1具体的设计步骤如下: (5) 4.2界面设计 (5) 4.3关键功能的实现 (6) 五、代码调试 (12) 六、小结 (15) 参考文献 (16) 七、附录 (17)

一、设计目的及要求 1.1课程设计目的 通过本游戏的设计,综合自己在校期间所学的理论知识,设计开发24点游戏,使自己熟悉应用系统的开发过程,进一步理解面向对象程序设计的思想和方法,利用Java语言进行程序设计的能力,培养自主思考能力,检验学习效果和动手能力,初步掌握基础编程知识,并锻炼发现问题、分析问题和解决问题的能力。从而达到理论与实践相结合的目的。 加深对《Java语言与面向对象技术》课程基础知识的理解,掌握Java语言面向对象程序设计的开发方法和步骤。 1.2课程设计内容和要求 24点游戏是一种使用扑克牌来进行的益智的游戏,游戏内容为:从一副扑克牌四个花色的1到K等52张牌中,任意抽取4张牌,运用加、减、乘、除和括号等运算符把牌面上的数进行运算得到24。游戏有不同的版本,其实是对J、Q、和K的处理有所不同。有的版本版本是把J、Q、和K去除,只用1到10来进行游戏;有的版本是把J、Q、和K当成10;还有的版本是用J表示11,Q表示12,K表示13。此次课程设计采用的是把J表示11,Q表示12,K表示13,使游戏的四张牌在1~K这13张牌中随机取牌。具体功能如下: ⑴对游戏设计三个难易级别,分别为初级、中级和高级。每次开始游戏前可以根据玩家的需要进行难度设置,如若不设置,系统默认难度级别为初级,设置完难度级别之后就可以开始游戏了,单击“发牌”按钮,桌面上出现四张翻开的扑克牌,与此同时,游戏开始计时,时间条开始前进。 ⑵在规定的时间内,玩家可以在“输入结果”的编辑框中输入自己想好的算式,然后点击“验算”按钮:如果输入的算式经运算后所的答案正确,则会弹出“恭喜,你成功答对了一题”的窗口;如果输入的数字与给出的牌的数字不符或者符号不合法,则会弹出“抱歉,你答错了”的窗口;如果未输入任何的数字和算符,则会弹出“输入不能为空!”的窗口。 ⑶程序中可以记录游戏的历史记录。 ⑷如果在规定的时间内,玩家没有点击验算按钮,则会弹出“对不起,你失败了”的窗口。 ⑸在结束本轮游戏后,如果玩家想继续游戏,则可点击“发牌”按钮即可重新发牌,开始下一轮的游戏;如果玩家想结束游戏,则可点击“结束”按钮即可结束游戏

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

Java学生课程设计源码.

package com.lb.view; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Login extends JFrame { private TextField f1; private TextField f2; private JButton b1; private JButton b2; private JButton b3; //登陆界面 public Login(){ Container cp=getContentPane();//容器 cp.setBackground(Color.cyan); cp.setLayout(new GridLayout(4,1));//四行一列布局 Panel p1=new Panel(); Panel p2=new Panel(); Panel p3=new Panel(); Panel p4=new Panel(); f1=new TextField(15); f2=new TextField(15); f2.setEchoChar('*');//回显字符为* b1=new JButton("登录"); b2=new JButton("重置"); b3=new JButton("退出"); p1.add(new Label(" ")); p2.add(new Label("用户名")); p2.add(f1); p3.add(new Label("密码")); p3.add(f2); p4.add(b1); p4.add(b2); p4.add(b3); cp.add(p1); cp.add(p2); cp.add(p3); cp.add(p4); b1.addActionListener(new Enter()); b2.addActionListener(new ReWrite()); b3.addActionListener(new Close()); } class Enter implements ActionListener{ public void actionPerformed(ActionEvent e) { if((f1.getText()).equals("任艳云")&&(f2.getText()).equals("ren12")) {

java课程设计源代码

附录:源程序 /////////////// // Jsq.java // // @范富强 /////////////// // 简介: // 简单计算器 /////////////// package zy7; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Jsq { public static void main(String[] args) { MyFrame mm = new MyFrame(); } } class MyFrame extends Frame { TextField tf = new TextField(25); JButton b3 = new JButton("DEL"); JButton b33 = new JButton("AC/ON"); JButton b4 = new JButton("0"); JButton b41 = new JButton("="); JButton b42 = new JButton("+"); JButton b1 = new JButton("1"); JButton b2 = new JButton("2"); JButton b_3 = new JButton("3"); JButton b_4 = new JButton("4"); JButton b5 = new JButton("5"); JButton b6 = new JButton("6"); JButton b7 = new JButton("7"); JButton b8 = new JButton("8"); JButton b9 = new JButton("9"); JButton b_chu = new JButton("÷");

java课程设计代码

1.Zodiac.java package java课程设计; import java.util.HashMap; import java.util.Map; publicclass Zodiac { publicstaticvoid main(String[] args){ new MainFrame();//创建窗体 } public String queryZodiac(int year){ /*根据年份判断生肖*/ String zodiac = ""; //通过switch语句判断生肖 switch(year % 12){//年份与12求余 case 0: zodiac = "猴"; break; case 1: zodiac = "鸡"; break; case 2:

zodiac = "狗"; break; case 3: zodiac = "猪"; break; case 4: zodiac = "鼠"; break; case 5: zodiac = "牛"; break; case 6: zodiac = "虎"; break; case 7: zodiac = "兔"; break; case 8: zodiac = "龙"; break; case 9: zodiac = "蛇";

break; case 10: zodiac = "马"; break; case 11: zodiac = "羊"; break; } return zodiac; } /*根据生肖查询运势*/ public String getFate(String str){ Mapmap = fateMap(); String fate = map.get(str); return fate;//返回指定生肖运势 } /*创建一个保存生肖和运势的Map对象*/ private MapfateMap(){ Mapmap = new HashMap(); /*创建Map键值对put(key,value)对应get(key),二者key相对应*/

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