java报告

时间:2024.5.9

课程设计

  

设计课程:    java程序设计报告

            java三子棋程序

 

                              

                 学生姓名                                      

                             

学    号                                       

                 学    院   

 


专    业     

 

指导教师      

二O一三    9    23  

目录

1、简单程序概述…………………………………1

2、程序设计目的…………………………………1

3、程序设计要求…………………………………1

4、程序总框架……………………………………2

5、主要设计………………………………………2

6、运行效果………………………………………12

7、问题探讨………………………………………14

8、参考文献………………………………………14

一、   简单程序概述

三子棋游戏又称井字形游戏。

棋盘大小为3×3,在方格内下棋。

只要有一方有3颗棋子连成一条线(行、列及对角线),则该方获胜,且游戏结束。

如果所有位置都已经下满棋子,且没有哪一方能够赢就是和局。

二、   程序设计目的

通过学习java,了解java中类的概念。快速熟悉类与对象,继承,接口,组件及事件处理等概念,在编程的同时,掌握输入输出流,数据库,多线程机制这些比较难理解的内容,编写出界面友好的java Applet程序。发现自己的不足,从软件开发实例中真正的对java环境熟悉,并能较好的运用它。

三、   程序设计要求

1.初始化界面时棋盘的规格;

2.响应鼠标点击并在相应位置画出棋子;

3.有一定的智能(可以判断胜负);

4.利用java语言放置棋盘显示棋子

四、   程序总框架

五、   主要设计

1. 引入含有各种类的包,方便类调用各种方法。

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.*;

2. 主方法

public static void main(String[]args) {

           Game6 game2 = new Game6();

      }

3. 图标,菜单,按钮,文本框等等重要组件和容器的声明

Container cp;

      JLabel lbl;

      JButton [] btn = new JButton[9];  //设置九宫格来纺织按钮,通过点击按钮来实现下棋

      JButton btn_start;   //声明按钮类

      JPanel jp1,jp2;

      int count = 0;

      ImageIcon icon1,icon2;      //声明图标

      JMenuBar mBar;    //菜单条

      JMenu JMenu1,JMenu2,JMenu3;   //声明菜单

      JMenuItem mItem1,mItem2,mItem3,mItem4;    //声明菜单项

4. 主类的构造方法

窗口的设计

setSize(300,400);

           setLocation(312,234);

           setVisible(true);

九宫格和整个窗口内容的设计

cp = getContentPane();

           cp.setLayout(new BorderLayout());

          

           mItem1 = new JMenuItem("开始");//以下是创建对象

           mItem2 = new JMenuItem("退出");

           JMenu3 = new JMenu("帮助");

           mItem3 = new JMenuItem("游戏介绍");

           mItem4 = new JMenuItem("作者介绍");

           mItem3.addActionListener(this);//创建监视器

           mItem4.addActionListener(this);

           JMenu1 = new JMenu("游戏");

           JMenu2 = new JMenu("帮助");

           mBar = new JMenuBar();

           JMenu1.add(mItem1);//add是把组件添加到容器中,就是把开始菜单项添加到游戏菜单中

           JMenu1.addSeparator();   //分隔线

           JMenu1.add(mItem2);//在游戏菜单中添加退出菜单项

           JMenu2.add(JMenu3);

           JMenu3.add(mItem3);

           JMenu3.add(mItem4);

           mBar.add(JMenu1);//把游戏添加到菜单条

           mBar.add(JMenu2);

           setJMenuBar(mBar);//将菜单条放入窗口中

          

           mItem1.addActionListener(this);//创建监视器

           mItem2.addActionListener(this);

           lbl = new JLabel("红方先手");

           cp.add(lbl,BorderLayout.NORTH);//通过布局管理器把标签放在最上面

           jp1 = new JPanel();

           jp1.setLayout(new GridLayout(3,3));//创建格子九宫格布局

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

                 btn[i] = new JButton();

              jp1.add(btn[i]);

                 btn[i].addActionListener(this);//在每一格中放入放入一个按钮,并且设置监视器,按钮一旦触动就会产生事件

           }

           cp.add(jp1,BorderLayout.CENTER);//在容器中间放入九宫格面板

           btn_start = new JButton("重新开始");

           jp2 = new JPanel();

           cp.add(jp2,BorderLayout.SOUTH);

           jp2.add(btn_start);//在底部显示重新开始按钮

           this.setResizable(false);

           icon1 = new ImageIcon("001.jpg");

           icon2 = new ImageIcon("002.jpg");

          

           btn_start.addActionListener(this);//创建按钮的监视器,一旦点击确定按钮产生事

点击确定按钮和帮助按钮出现的效果

if (e.getSource() == mItem1) {

                      this.dispose();

                      new Game6();

           }//开始游戏

          

           if (e.getSource() == mItem2) {

                 this.dispose();

                 System.exit(0);//点击退出按钮,释放空间,什么也不做

           }

           else if (e.getSource() == mItem3) //如果点击帮助按钮

                 JOptionPane.showMessageDialog(null,"游戏规则:"+"\n"

                            +"先用三种同色的子连成一线就算胜,如同五子棋下法");

           else if (e.getSource() == mItem4)

                 JOptionPane.showMessageDialog(null,"作者:沈倩文");

          

           else if (e.getSource() == btn_start) {

                 this.dispose();     //销毁当前对象

                 new Game6();

           }

点击九宫格会出现的情况

else {

           count++;

           if (count%2 == 1) {

                 lbl.setText("绿方下");

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

                      if (e.getSource() == btn[i]) {

                      btn[i].setIcon(icon1);

                      btn[i].removeActionListener(this);//撤销监视器组件

           //    btn[i].setEnabled(false);    //这样会使按钮图片变灰;

                      this.win();

                      }

                 }

           }

           else if (count%2 == 0) {

                 lbl.setText("红方下");

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

                      if (e.getSource() == btn[i]) {

                      btn[i].setIcon(icon2);

                      btn[i].removeActionListener(this);

           //    btn[i].setEnabled(false);    //这样会使按钮图片变灰;

                      this.win();

                      }

                 }

           }

      }

游戏方法设计

public void win() {

          

           for (int j = 0; j<9; j=j+3)     {

                 if (btn[j].getIcon()==btn[j+1].getIcon() && btn[j+1].getIcon()==btn[j+2].getIcon())

                 {

                 if (btn[j].getIcon() == icon1)               this.bbb();

                 else if (btn[j].getIcon() == icon2)        this.ccc(); 

                 }

           }

          

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

                 if (btn[j].getIcon()==btn[j+3].getIcon() && btn[j+3].getIcon()==btn[j+6].getIcon())

                 {

                 if (btn[j].getIcon() == icon1)            this.bbb();

                 else if (btn[j].getIcon() == icon2)        this.ccc();

                 }

           }

           if (btn[0].getIcon()==btn[4].getIcon() && btn[4].getIcon()==btn[8].getIcon())

                 {

                 if (btn[0].getIcon() == icon1)               this.bbb();

                 else if (btn[0].getIcon() == icon2)      this.ccc();

                 }

           if (btn[2].getIcon()==btn[4].getIcon() && btn[4].getIcon()==btn[6].getIcon())

                 {

                 if (btn[2].getIcon() == icon1)              this.bbb();    

                 else if (btn[2].getIcon() == icon2)      this.ccc();

                 }

      }

     

      public void bbb() {

           lbl.setText("游戏结束了!!!");

           JOptionPane.showMessageDialog(null, "帅胜利!将要加油哦!")

                 for (int i = 0; i<9; i++) btn[i].removeActionListener(this);

      }

     

      public void ccc() {

           lbl.setText("game is over!");

           JOptionPane.showMessageDialog(null,"将胜利,帅要加油哦!”);

                 for (int i = 0; i<9; i++) btn[i].removeActionListener(this);

      }

六、运行效果

七、问题探讨

通过本次程序的编写,我发现了很多问题,当然这个程序也并非我一下子编写出来的,我还请教了中兴公司的一个学长,参考了百度文库的一些内容,然后自己加以理解,然后编写而成。进一步学习和巩固了java的知识,但是其中一些地方仍然不是很好,需要进一步改进。

八、参考文献

Java课程书

百度文库

豆丁网


第二篇:java项目的工作计划


20##715工作总结

软件开发

·开发人员:

琳、玥

·工作环境:

Windows版本:

Windows7家庭普通版

版权所有©2009 Microsoft Corporation。保留所有权利。

Service Pack 1

系统:

制造商:Dell

型号:N5110

处理器:Intel(R) Core(TM) i5-2430M CPU @ 2.30GHz 2.40GHz

安装内存(RAM):4.00GB

系统类型:64位操作系统

笔和触摸:没有可用于此显示器的笔或触控输入

·开发模块

主框架模块

菜单模块

选择分类模块

结果显示模块

·开发模块用到的类

JPanel\JButton\JScrollPane\JTabbedPane\JMenuBar\JMenu\JMenuItem

·模块开发历时

10:30-12:30 AM

13:30-17:30PM

·模块开发步骤

?         如何编写数据模块展开讨论

?         开始编写程序

?         进行内部调试

?         提交结果

?         进行工作总结

·所使用数据类型

标量型

复合型

·数据库版本

MySQL5.0

·完成进度

部分完成

·预估全部完成所需时间

5小时

·待解决问题

未实现模块间的组合及总体调试

·工作总结

完成主框架的编写,实现部分模块的基本功能,仍未完成模块间的整合和调试故程序未实现最终理想的运行结果,要完善各项功能和美化界面仍需时间。

测试环境及质量管理

·测试及管理人员:

薇、君

·工作环境:

Windows版本:

Windows7家庭普通版

版权所有©2009 Microsoft Corporation。保留所有权利。

Service Pack 1

系统:

制造商:Dell

型号:N5110

处理器:Intel(R) Core(TM) i5-2430M CPU @ 2.30GHz 2.40GHz

安装内存(RAM):4.00GB

系统类型:64位操作系统

笔和触摸:没有可用于此显示器的笔或触控输入

·测试模块:

主框架模块

菜单模块

选择分类模块

·涉及方法及类名:

    JPanel\JButton\JScrollPane\ JMenu\JMenuItem

·测试步骤:

?         根据所得到的程序进行初步功能测试

?         分析运行结果

?         进行故障分析

?         进行工作总结

·测试结果:

分类模块不能正确显示数据

·bug类型:

引用方法错误

·工作总结:

经测试部分模块未能实现理想运行效果,要进行完整测试仍需部分时间。

环境配置

·配置人员:

   阳、平

·工作环境:

系统:

  Microsoft windows XP

 Professinal

版本2002

Service Pack3

注册到

User

China

76481-640-8834005-23520

AMD Athlon? 64 X2 Dual

Core Processor 4400+

2.30 GHz,1.96GB的内存

物理地址扩展

·配置次数

5

·配置缘由:

为实现开发及测试人员工作环境的统一

·故障分析:

未发现故障

·待解决配置问题:

·工作总结:

    实现开发及测试人员工作环境的统一且未出现故障。

更多相关推荐:
java实习报告

石家庄学院习报告王荣传20xx0502027数学与信息科学系信息与计算科学专业本科一班崔永刚讲师姓名:学号:院系:专业:班级:指导教师:教师职称:实习基本情况河北中信联信息技术有实习单位:限公司实习时间:201…

java实习报告

实习工作总结一转眼,这段实习的生活过去了,回首这段时间的实习,最大的收获是学到了更多的知识,增加了自己的经验,锻炼了自己,提高了自己的能力。下面,我将实习的工作总结如下:在注重素质教育的今天,社会实习一直被视为…

java 实习报告

实习报告系别传媒工程系专业班级计算机科学与技术B0901学生姓名吴康学号09405020xx6指导教师李成海二○一二年十二月实习目的:在internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重…

Java实习报告

目录1实习摘要211实习目的212开发环境22课设内容221系统功能需求222数据库需求33设计过程431总体设计432详细设计44调试过程541系统测试542出现问题543解决方法55设计体会与小结66参考文...

java实习报告

实习题目java软件开发豆豆网开发实习目的进一步了解java开发的相关知识掌握java开发的基本技术丰富java开发的实战经验学习SQL的基础知识及正确的运用方法和有用的相关技术提高自己的工作效率通过实习巩固大...

java实习报告

生产实习报告姓名院系软件学院专业班级指导教师成绩时间20xx年7月12日至20xx年7月26日第三方物流企业运营管理系统软件需求说明书目录参观感受2任务概述221目标222用户特点323具体开发任务要求324系...

java程序设计实习报告

中原工学院信息商务学院Java程序设计实习报告中原工学院信息商务学院经济管理系20xx年6月20号1中原工学院信息商务学院目录一实习题目2二实习目的21社会需求22专业需求2三开发环境2四实习内容31系统功能需...

java生产实习报告

武汉工程大学计算机科学与工程学院专班学学生指导实习实习生产实习报告业计算机科学与技术计算机科学方向级01号0905090112姓名Xx教师xx教授校外教师姓名职称时间20xx20xx学年第一学期20xx904至...

java暑期生产实习报告 5000字

华中科技大学文华学院生产实习报告学部信息科学与技术年级20xx8专业计算机科学与技术班级二班姓名学号指导老师袁成绩日期20xx年9月10日JAVA软件开发实习报告一二三实习的时间20xx年7月8日20xx年7月...

Java实训报告

PINGDINGSHANUNIVERSITYJava专业实训项目报告题目超市管理系统院系软件学院专业年级10级软件工程java工程师2班姓名学号1015302指导教师黄淼20xx年5月26日1目录一项目简介31...

java超市进销存管理系统实训报告

基于Java的超市管理系统姓名学号课程名称JavaCS架构超市管理系统综合实训指导老师CS摘要超市的日常管理工作往往是很复杂很繁琐的再加上管理的货物种类繁多因此超市管理必须实现计算机化超市进销存管理系统是用计算...

Java实践报告

1实习目的缺乏工作经验和社会经验成为在校大学生与其他就业群体最明显的劣势如果能够在毕业前找到一个合适的企业进行生产实习在与自己未来工作相似的企业环境中积累一定的工作经验必将是大学生增强就业力的一笔宝贵财富对于计...

java实习报告(35篇)