java课程设计报告书
Java课程设计报告1
Java程序设计课程设计报告院别:计算机系班级:XXXX学号: ******XXXXX姓名: XXX指导教师:XXX日期:2013-5-24目录1概述 (3)1.1实验题目和内容 (3)1.2实验目的和要求 (3)2计算器的设计与实现 (4)2.1程序步骤 (4)2.2程序源代码 (4)3运行调试及讨论分析 (4)4实验小结与心得 (12)1概述1.1设计目的及思路通过本课程设计能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。
利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。
给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。
除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。
当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现!1.2功能模块设计以下为标准计算器的基本功能:(1)加法两个数据进行加操作,可以为小数。
(2)减法两个数据进行减操作,可以为负数相减。
(3)乘法两个数相乘操作。
(4)除法两个数相除操作(5)清零将运算框清除(6)返回退回一格2计算器的设计与实现2.1程序界面2.2程序源代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class Calculator extends JFrame implements ActionListener{JPanel vv1,vv2,vv3,vv4;JTextField kk1 ; //添加数字框和符号框JButton[] r={new JButton("7"),new JButton("8"),new JButton("9"),new JButton("/"),new JButton("4"),new JButton("5"),new JButton("6"),new JButton("*"),new JButton("1"),new JButton("2"),new JButton("3"),new JButton("-"),new JButton("0"),new JButton("."),new JButton("+"),new JButton("="),new JButton("←"),new JButton("清空")};double a=0,b=0,c=0,fuhao=5;Boolean has=false;Boolean hav=true;Boolean haw=true;Calculator(String S){setTitle(S);kk1=new JTextField("0",20);kk1.setEditable(false);kk1.setFont(new Font("宋体",Font.BOLD,25));kk1.setBackground(Color.YELLOW);for(int i=16;i<18;i++){r[i].setFont(new Font("黑体",Font.BOLD,15));r[i].setForeground(Color.blue);}vv1=new JPanel(new GridLayout(4,5,5,5));vv2=new JPanel(new GridLayout(1,2,1,1));vv3=new JPanel(new FlowLayout());vv4=new JPanel(new BorderLayout());vv3.add(kk1);vv4.add(vv2,BorderLayout.NORTH);vv4.add(vv1,BorderLayout.CENTER);for(int i=0;i<16;i++)r[i].setForeground(Color.black);this.add(vv3,BorderLayout.NORTH);this.add(vv4,BorderLayout.CENTER);for(int i=16;i<18;i++)vv2.add(r[i]);for(int i=0;i<16;i++)vv1.add(r[i]);for(int i=0;i<18;i++)r[i].addActionListener(this);for(int i=16;i<18;i++){setSize(350,300);setLocation(210,205);setResizable(false);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }public void actionPerformed(ActionEvent e){if(e.getSource()==r[12]){ if(hav&&haw&&!kk1.getText().equals("0"))kk1.setText(kk1.getText()+"0");else {kk1.setText("");kk1.setText(kk1.getText()+"0");hav=true;haw=true;}}else if(e.getSource()==r[8]){ if(hav&&haw&&!kk1.getText().equals("0"))kk1.setText(kk1.getText()+"1");else {kk1.setText("");kk1.setText(kk1.getText()+"1");hav=true;haw=true;}}else if(e.getSource()==r[9]){ if(hav&&haw&&!kk1.getText().equals("0"))kk1.setText(kk1.getText()+"2");else {kk1.setText("");kk1.setText(kk1.getText()+"2");hav=true;haw=true;}}else if(e.getSource()==r[10]){ if(hav&&haw&&!kk1.getText().equals("0"))kk1.setText(kk1.getText()+"3");else {kk1.setText("");kk1.setText(kk1.getText()+"3");hav=true;haw=true;}}else if(e.getSource()==r[4]){ if(hav&&haw&&!kk1.getText().equals("0")) kk1.setText(kk1.getText()+"4");else {kk1.setText("");kk1.setText(kk1.getText()+"4");hav=true;haw=true;}}else if(e.getSource()==r[5]){ if(hav&&haw&&!kk1.getText().equals("0")) kk1.setText(kk1.getText()+"5");else {kk1.setText("");kk1.setText(kk1.getText()+"5");hav=true;haw=true;}}else if(e.getSource()==r[6]){ if(hav&&haw&&!kk1.getText().equals("0")) kk1.setText(kk1.getText()+"6");else {kk1.setText("");kk1.setText(kk1.getText()+"6");hav=true;haw=true;}}else if(e.getSource()==r[0]){ if(hav&&haw&&!kk1.getText().equals("0")) kk1.setText(kk1.getText()+"7");else {kk1.setText("");kk1.setText(kk1.getText()+"7");hav=true;haw=true;}}else if(e.getSource()==r[1]){ if(hav&&haw&&!kk1.getText().equals("0")) kk1.setText(kk1.getText()+"8");else {kk1.setText("");kk1.setText(kk1.getText()+"8");hav=true;haw=true;}}else if(e.getSource()==r[2]){ if(hav&&haw&&!kk1.getText().equals("0")) kk1.setText(kk1.getText()+"9");else {kk1.setText("");kk1.setText(kk1.getText()+"9");hav=true;haw=true;}} //数字键else if(e.getSource()==r[14]){if(kk1.getText().trim().length()>0){ a=Double.valueOf(kk1.getText());kk1.setText("");fuhao=0;has=true;hav=true;haw=false;}else if(!haw){fuhao=0;}}//+else if(e.getSource()==r[11]){if(kk1.getText().trim().length()>0){ a=Double.valueOf(kk1.getText());kk1.setText("");fuhao=1;has=true;hav=true;haw=false;} else if(!haw){fuhao=1; }}//-else if(e.getSource()==r[7]){if(kk1.getText().trim().length()>0){ a=Double.valueOf(kk1.getText());kk1.setText("");fuhao=2;has=true;hav=true;haw=false;} else if(!haw){fuhao=2;}}//*else if(e.getSource()==r[3]){if(kk1.getText().trim().length()>0){ a=Double.valueOf(kk1.getText());kk1.setText("");fuhao=3;has=true;hav=true;haw=false;} else if(!haw){fuhao=3;}}// 运算符号/else if(e.getSource()==r[15]){if(kk1.getText().length()>0&&has){b=Double.valueOf(kk1.getText()); // =if(fuhao==0){c=a+b;kk1.setText(String.valueOf(c));has=false;hav=false;}else if(fuhao==1){c=a-b;kk1.setText(String.valueOf(c));has=false;hav=false;}else if(fuhao==2){c=a*b;kk1.setText(String.valueOf(c));has=false;hav=false;}else if(fuhao==3){ if(b!=0){c=a/b;kk1.setText(String.valueOf(c));}else JOptionPane.showMessageDialog(null, "除数不能为0");has=false;hav=false;}}} // 计算else if(e.getSource()==r[13]){if(kk1.getText().indexOf(".")==-1&&kk1.getT ext().length()>0) kk1.setText(kk1.getText()+".");} //添加小数点else if(e.getSource()==r[16]){if(kk1.getText().length()>1)kk1.setText(kk1.getT ext().substring(0, kk1.getText().length()-1));else kk1.setText("0");hav=true;} //Backspaceelse if(e.getSource()==r[17]){kk1.setText("0");has=false;hav=true;}}// CEpublic static void main(String[] args){new Calculator("计算器");}}3运行调试及讨论分析将代码写好之后检查代码的正确性,检查代码无误后将代码进行调试和运行将会出现一个JavaApplet计算器界面。
java课程设计报告
java课程设计报告
本次Java课程设计项目主题为“学生成绩管理系统”,通过本次课程设计项目,我们深入学习了Java编程语言和面向对象编程思想。
1. 需求分析
学生成绩管理系统是一款基于数据库的应用程序,为学校教务管理部门提供学生信息、课程信息、成绩信息的管理功能。
该系统需要能够实现添加、修改、删除、查询以上信息,并且能够生成有意义的报表。
2. 总体设计
学生成绩管理系统的总体设计采用了三层架构,分为表现层、业务逻辑层、数据访问层。
其中,表现层采用了JavaFX框架,业务逻辑层使用了JavaBean和Service类的方式进行设计,数据访问层使用了JDBC技术进行数据库连接和操作。
3. 详细设计
在表现层设计中,我们使用了JavaFX框架提供的Scene Builder设计界面,采用了Fxml文件的方式进行加载。
在业务逻辑
层和数据访问层设计中,我们使用了JavaBean的技术,采用了面
向对象编程的思想,通过定义JavaBean和Service类,来实现数据的操作和处理。
在数据库操作中,我们使用了JDBC技术,同时
采用了连接池技术来提高数据库连接的效率。
4. 系统测试
在系统测试中,我们主要运用了黑盒测试和白盒测试两种方法,通过对系统的功能、界面、操作、性能进行测试,并对测试结果
进行分析和修复,最后保证系统的稳定性和可靠性。
5. 总结
通过本次课程设计项目,我们深入了解了Java编程语言和面向
对象编程思想,同时提高了我们的编程设计能力和团队协作能力。
在未来的学习和工作中,我们会继续深化对Java编程语言的了解,更好地将其应用于实际项目中。
java课程设计报告word
java课程设计报告word一、教学目标本课程的教学目标是使学生掌握Java编程语言的基本语法、概念和编程技巧,培养学生独立编程和解决问题的能力,并提高学生对计算机科学的热情和兴趣。
1.理解Java编程语言的基本语法和结构。
2.掌握Java中的数据类型、运算符、控制语句、数组、字符串等基本概念。
3.学习Java中的面向对象编程,包括类、对象、继承、多态、封装等概念。
4.熟悉Java中的异常处理、文件操作、集合框架等高级概念。
5.能够使用Java编程语言编写简单的程序,解决问题。
6.具备基本的编程能力和代码调试能力。
7.能够运用面向对象编程思想设计和实现程序。
8.能够阅读和理解Java编程相关的文档和资料。
情感态度价值观目标:1.培养学生对计算机科学的兴趣和热情。
2.培养学生独立思考、解决问题的能力。
3.培养学生团队合作、交流分享的学习态度。
二、教学内容根据课程目标,本课程的教学内容主要包括Java编程语言的基本语法、概念和编程技巧。
1.Java基本语法:数据类型、运算符、控制语句、数组、字符串等。
2.面向对象编程:类、对象、继承、多态、封装等。
3.高级概念:异常处理、文件操作、集合框架等。
教学内容将按照教材的章节顺序进行讲解和练习,并结合实际案例和习题进行教学。
三、教学方法本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解和演示,向学生传授Java编程的基本概念和技巧。
2.讨论法:学生进行小组讨论,促进学生之间的交流和思考。
3.案例分析法:通过分析实际案例,让学生理解和应用Java编程知识。
4.实验法:安排实验课程,让学生亲自动手编写代码,培养学生的编程能力。
四、教学资源本课程将使用教材《Java编程思想》作为主要教学资源,并结合多媒体资料、实验设备和网络资源进行教学。
1.教材:《Java编程思想》2.多媒体资料:教学PPT、视频教程等。
java课程设计报告_五子棋
目录第一章软件平台……………………………游戏设计思路…………………………第二章小游戏五子棋的开发过程………………第一节JAVA基础知识………………………第二节启动程序的分析……………………第三节游戏设计过程………………………第三章总结…………………………………………第四章参考文献……………………………………第五章附录…………………………………………游戏设计思路:第一节 java程序基础知识本系统有4个程序每个程序都导入了不同的包和类运用了不同的所学知识。
不同的类和包提供的方法、类型等都不同,本程序还使用了继承。
以至使其能够完成不同的功能。
本节主要讲述本系统所使用的基础知识。
1、类的基础<1、类的定义JAVA中的类实质上是一种对象类型,它是对具有相同属性和相同行为对象的一种抽象。
类是java程序中最小的组成单位。
<2、 Java中类定义的格式为:[类修饰符] class 类名 [extends 基类] [implements 接口]{// 成员变量声明(Member variable declaration)// 成员方法声明(Member method declaration)}其中,class、extends和implements都是Java的关键字。
类修饰符、extends和implements是关于修饰符、继承和接口的容。
2、继承继承性是面向对象程序设计语言的一个重要特征,通过继承可以实现代码的复用。
Java语言中,所有的类都是直接或间接的继承 ng.object类而得到的。
被继承的类称为基类或父类,继承而的来的类成为子类。
子类继承基类的方法和属性,同时也可以修改基类的方法和属性,并增加自己新的属性和方法。
Java不支持多重继承。
即一个子类不能拥有两个或以上的父类。
3、包<1、包的定义在Java中,把相关的代码组织到一起,称为“包”。
包市一种将相关类、接口或其他包组织起来的集合体,目的是为了将包含类代码的文件组织起来,易于查找和使用。
《Java》课程设计》记事本
《Java课程设计》记事本课程设计报告书目录一、设计课题二、设计目的三、操作环境四、设计场所(机房号、机器号或自己机器)五、设计过程(设计内容及主要程序模块)六、本次设计中用到的课程知识点(列出主要知识点)七、设计过程中遇到的问题及解决办法八、程序清单五、设计过程(设计内容及主要模块,不少于3000字)1.设计要求1)界面设计2)功能实现(1)文件菜单:新建、打开、保存、另存为、退出等。
(2)其中新建菜单项可以新建一个记事本程序;打开菜单项可以打开一个用户指定的文本文件,并将其内容显示在记事本的文本区域;保存和另存为菜单项可分别实现文件的保存和另存为3)编辑菜单:复制、剪切和粘贴等4)帮助菜单:软件版本信5)右键弹出快捷菜单2.总体设计1)功能模块图:图一功能模块图2)功能描述1、打开记事本。
首先是标准型的记事本,拥有文件、编辑。
格式和帮助。
如图1所示:图1标准型记事本界面2、在标准型的记事本界面中,进行的新建一个本件名字叫新记事本。
如图2记事本文件帮助新建打开保存另存为退出复制剪切粘贴编辑关于记事本右键快捷格式字体颜色图2新建记事本功能3、用打开文件打开刚刚新建的新记事本。
如图三所示。
图3—打开文件4、点击退出即可退出,如图4所示:图4—退出记事本5、点击帮助可以看到有关记事本的相关信息,其中有作者名、版本、许可条款、隐私声明等必要信息。
如图5所示:图5—帮助相关信息6、右键可实现复制、粘贴、剪切、清除等常用功能,方便用户可以快捷方便的使用记事本。
如图6所示:图6—右键功能7、编辑也可实现制、粘贴、剪切、清除等常用功能,方便用户选择自己适合的方式,自由选择方便的快捷方式使用。
如图7:图7—编辑八、程序清单package test;import java.io.File;import java.io.*;import java.awt.event.*;import java.awt.Toolkit;import java.awt.*;import javax.swing.*;import javax.swing.filechooser.*;public class Notebook extends JFrame implements ActionListener,ItemListener{ //组件创建JButton b_save,b_close; //按钮JTextArea textArea; //文本框File tempFile; //文件JPanel jp; //面板JMenu file,edit,style,help; //菜单JMenuItemf_new,f_open,f_save,f_close,f_saveas,e_copy, e_paste,e_cut,e_clear,e_selectAll,e_find,e_rep lace,s_font,s_color,h_editor,h_help; //菜单条JMenuBar jmb;JScrollPane jsp; //滚动面板JPopupMenu popUpMenu = new JPopupMenu(); //右键弹出式菜单JLabel stateBar;//标签JLabel jl,jj;JFileChooser jfc = new JFileChooser(); //文件选择JMenuItemje_copy,je_paste,je_cut,je_clear,je_selectAll,je _find,je_replace; //弹出式菜单条public Notebook(){jfc.addChoosableFileFilter(new FileNameExtensionFilter("文本文件(*.txt)","txt"));jmb = new JMenuBar();textArea = new JTextArea();jsp = new JScrollPane(textArea);file = new JMenu("文件");edit = new JMenu("编辑");style = new JMenu("格式");help = new JMenu("帮助");je_copy = new JMenuItem("复制(C) ");je_paste = new JMenuItem("粘贴(P) ");je_cut = new JMenuItem("剪切(X) ");je_clear = new JMenuItem("清除(D) ");je_selectAll = new JMenuItem("全选(A) ");je_find = new JMenuItem("查找(F) ");je_replace = new JMenuItem("替换(R) ");je_copy.addActionListener(this); //给弹窗式的各组件添加监听器je_paste.addActionListener(this);je_cut.addActionListener(this);je_clear.addActionListener(this);je_selectAll.addActionListener(this);je_find.addActionListener(this);je_replace.addActionListener(this);//给界面上方的菜单条添加监听器f_new = new JMenuItem("新建(N)");f_new.setAccelerator(KeyStroke.getKeyS troke('N',InputEvent.CTRL_MASK,false)); //设置带修饰符快捷键f_new.addActionListener(this);f_open = new JMenuItem("打开(O)");f_open.setAccelerator(KeyStroke.getKey Stroke('O',InputEvent.CTRL_MASK,false));f_open.addActionListener(this);f_save = new JMenuItem("保存(S)");f_save.setAccelerator(KeyStroke.getKey Stroke('S',InputEvent.CTRL_MASK,false));f_save.addActionListener(this);f_saveas = new JMenuItem("另存为");f_saveas.setAccelerator(KeyStroke.getKe yStroke(KeyEvent.VK_S,InputEvent.CTRL_ MASK|InputEvent.SHIFT_MASK));f_saveas.addActionListener(this);f_close = new JMenuItem("退出(W)");f_close.setAccelerator(KeyStroke.getKey Stroke('W',InputEvent.CTRL_MASK,false));f_close.addActionListener(this);e_copy = new JMenuItem("复制(C)");e_copy.setAccelerator(KeyStroke.getKey Stroke('C',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_paste = new JMenuItem("粘贴(V)");e_paste.setAccelerator(KeyStroke.getKeyStro ke('V',InputEvent.CTRL_MASK,false));e_paste.addActionListener(this);e_cut = new JMenuItem("剪切(X)"); e_cut.setAccelerator(KeyStroke.getKeyStroke ('X',InputEvent.CTRL_MASK,false));e_cut.addActionListener(this);e_clear = new JMenuItem("清除(D)");e_clear.setAccelerator(KeyStroke.getKeyStrok e('D',InputEvent.CTRL_MASK,false));e_clear.addActionListener(this);e_selectAll = new JMenuItem("全选(A)");e_selectAll.setAccelerator(KeyStroke.getKey Stroke('A',InputEvent.CTRL_MASK,false));e_selectAll.addActionListener(this);e_find = new JMenuItem("查找(F)");e_find.setAccelerator(KeyStroke.getKeyStrok e('F',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_replace = new JMenuItem("替换(R)");e_replace.setAccelerator(KeyStroke.getK eyStroke('R',InputEvent.CTRL_MASK,false)) ;e_replace.addActionListener(this);s_font = new JMenuItem("字体(T)");s_font.setAccelerator(KeyStroke.getKeyStrok e('T',InputEvent.CTRL_MASK,false));s_font.addActionListener(this);s_color = new JMenuItem("颜色(C)...");s_color.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_C,InputEvent.CTRL_MAS K | InputEvent.SHIFT_MASK));s_color.addActionListener(this);h_editor = new JMenuItem("关于记事本");h_editor.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_E,InputEvent.CTRL_MAS K));h_editor.addActionListener(this);h_help = new JMenuItem("帮助信息(H)");h_help.setAccelerator(KeyStroke.getKeyStrok e(KeyEvent.VK_I,InputEvent.CTRL_MASK) );h_help.addActionListener(this);//添加右键弹出式菜单popUpMenu.add(je_copy);popUpMenu.add(je_paste);popUpMenu.add(je_cut);popUpMenu.add(je_clear);popUpMenu.addSeparator();popUpMenu.add(je_selectAll);popUpMenu.add(je_find);popUpMenu.add(je_replace);//编辑区鼠标事件,点击右键弹出"编辑"菜单textArea.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e) {if(e.getButton() == MouseEvent.BUTTON3)popUpMenu.show(e.getComponent(), e.getX(), e.getY());} //e.getComponent()和textArea具有同等效果public void mouseClicked(MouseEvent e){if(e.getButton() == MouseEvent.BUTTON1)popUpMenu.setVisible(false);}});this.setJMenuBar(jmb);this.setTitle("记事本程序");file.add(f_new); //添加文件菜单组件file.add(f_open);file.addSeparator(); //加分隔线file.add(f_save);file.add(f_saveas);file.addSeparator();file.add(f_close);edit.add(e_copy); //添加编辑菜单组件edit.add(e_paste);edit.add(e_cut);edit.add(e_clear);edit.addSeparator();edit.add(e_selectAll);edit.add(e_find);edit.add(e_replace);style.addSeparator();style.add(s_font);style.add(s_color);jmb.add(file); //添加格式菜单组件jmb.add(edit);jmb.add(style);jmb.add(help);help.add(h_editor); //添加帮助菜单组件help.add(h_help);//textArea.setWrapStyleWord(true); //设置在单词过长的时候是否要把长单词移到下一行。
java课程设计报告
java课程设计报告Java课程设计报告。
一、引言。
Java作为一种跨平台的编程语言,具有广泛的应用领域和强大的功能,因此在计算机专业课程中占据着重要的地位。
本次课程设计旨在通过对Java语言的学习和实践,提高学生对于面向对象程序设计的理解和应用能力,同时锻炼学生的编程实践能力和团队协作能力。
二、课程设计内容。
1. 课程设计主题。
本次课程设计的主题为“学生成绩管理系统的设计与实现”。
通过该主题的设计,旨在让学生通过实际的项目开发,掌握Java语言的基本语法和面向对象的编程思想,同时对软件开发的整个流程有一个清晰的认识。
2. 课程设计目标。
(1)掌握Java语言的基本语法和面向对象的编程思想;(2)了解软件开发的整个流程,包括需求分析、设计、编码、测试和维护;(3)培养学生的团队协作能力和解决问题的能力;(4)通过实际项目的开发,提高学生的编程实践能力。
三、课程设计过程。
1. 需求分析。
首先,团队成员对学生成绩管理系统的功能需求进行了详细的分析和讨论,确定了系统的基本功能模块,包括学生信息管理、课程信息管理、成绩管理等。
通过需求分析,明确了系统的功能和性能需求,为后续的设计和编码工作奠定了基础。
2. 系统设计。
在需求分析的基础上,团队成员进行了系统的整体设计和模块设计。
通过UML建模工具,绘制了系统的用例图、类图、时序图等,明确了各个模块之间的关系和交互流程。
同时,团队成员还对数据库的设计进行了详细的讨论和设计,确定了数据库的表结构和字段。
3. 编码实现。
在系统设计完成后,团队成员按照设计文档进行了编码实现工作。
在编码的过程中,严格按照Java语言的规范进行编码,同时注重代码的可读性和可维护性。
通过团队的协作和沟通,确保了各个模块的功能实现和整体功能的完整性。
4. 测试与调试。
在编码实现完成后,团队成员进行了系统的测试与调试工作。
通过单元测试、集成测试和系统测试,发现并修复了系统中存在的各种问题和bug。
JAVA_课程设计报告
《J AVA 程序设计》课程设计报告设计题目:学生信息管理系统学院名称:信息工程学院专业班级:13计本 1姓名:学号:目录一需求分析。
3二概要设计。
3三详细设计。
33.1 数据库设计。
33.2 模块及窗体设计。
33.2.1 数据库模块设计。
33.2.2 用户登录识别模块。
53.2.3 用户信息管理模块。
6(1)密码修改。
6(2)用户信息添加和删除。
83.2.4 学生息管理模块。
10(1)添加信息。
10(2)信息查看。
11(3)信息修改。
12(4)删除信息。
143.2.5 系统管理模块。
153.2.6 主窗体菜单设计。
15四软件测试。
15五总结。
15 参考资料:....................................................... 17一需求分析本系统的主要目的就是实现学生信息管理,使学生信息管理工作更加容易,从而提高工作效率,降低管理成本.系统中需要对拥护身份进行管理,采取登陆进入系统的形式.二概要设计/************************************************************************概要设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。
项目的成功取决于设计的好坏,而概要设计则是整个设计的关键部分。
概要设计的主要任务是将用户的需求划分为不同的功能,然后将这些功能细分成模块,并给模块一些规则约束,以达到各个模块之间可以相互交流的目的。
概要设计关乎到系统的整体架构,因此想做好一个概要设计,不仅仅要熟悉用户的业务流程,还要具备相当丰富的设计经验。
2.1概要设计的原则概要设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。
概要设计要坚持以下几个原则。
(1)细分原则:软件系统都是由很多不同的模块组成,当设计一套软件时,要先将所有的功能分解。
java课程设计报告册
java课程设计报告册一、教学目标本章节的教学目标包括以下三个方面:1.知识目标:使学生掌握Java编程语言的基本语法、数据类型、控制结构、面向对象编程等核心知识。
2.技能目标:培养学生具备编写简单的Java程序的能力,能运用Java语言解决实际问题。
3.情感态度价值观目标:培养学生对编程语言的兴趣,激发学生主动学习和探索编程的热情。
在教学过程中,我们将根据学生的实际情况,调整教学节奏和内容,确保学生能够达到上述目标。
二、教学内容本章节的教学内容主要包括以下几个部分:1.Java简介:介绍Java编程语言的发展历程、特点和应用领域。
2.基本语法:讲解Java编程语言的基本语法,包括数据类型、变量、运算符等。
3.控制结构:教授Java编程语言的控制结构,如条件语句、循环语句等。
4.面向对象编程:介绍Java编程语言的面向对象编程思想,包括类、对象、继承、多态等。
5.常用类库:讲解Java编程语言常用类库,如java.util、ng等。
6.编程实践:通过编写实际的Java程序,使学生巩固所学知识,提高编程能力。
三、教学方法为了实现本章节的教学目标,我们将采用以下几种教学方法:1.讲授法:讲解Java编程语言的基本语法、控制结构和面向对象编程等理论知识。
2.案例分析法:分析实际编程案例,使学生理解并掌握Java编程的方法和技巧。
3.实验法:安排上机实验,让学生动手编写Java程序,培养学生的实际编程能力。
4.讨论法:学生进行小组讨论,分享学习心得和编程经验,提高学生的合作能力。
四、教学资源为了保证本章节的教学质量,我们将准备以下教学资源:1.教材:选用权威、实用的Java编程教材,如《Java核心技术》等。
2.参考书:提供相关的Java编程参考书籍,供学生课后自学。
3.多媒体资料:制作精美的PPT课件,辅助讲解知识点。
4.实验设备:保证学生上机实验的需求,提供足够的计算机设备。
5.在线资源:推荐一些优质的在线教程和编程论坛,方便学生随时查阅和交流。
java课程设计报告
java课程设计报告1. 引言Java作为一种全球广泛使用的编程语言,具有跨平台、可靠性强、安全性高等优点,因而备受程序员和开发者的青睐。
本篇报告旨在对我所参与的Java课程设计进行总结和评估,分享学习过程中的经验和收获,以及对未来的展望。
2. 项目背景本次课程设计项目是一个在线购物平台的开发,团队共有3名成员,我们合作进行了2个月的开发工作。
通过这个项目,我学到了许多Java编程的实践经验,不仅提高了编程技能,也增进了团队合作和沟通能力。
3. 设计过程在设计初期,我们进行了需求分析和系统设计。
我们通过与用户进行会议和讨论,了解了用户的需求和期望。
然后,我们进行了功能拆解和流程设计,使用UML建模工具绘制了用例图和类图,明确了系统的整体结构。
4. 技术选型在技术选型上,我们选择了Spring框架作为项目的基础框架,使用了Spring Boot来简化开发流程。
为了实现用户认证和授权功能,我们使用了Spring Security。
此外,为了提高系统性能和扩展性,我们采用了Spring Cloud微服务架构,使用了Eureka作为注册中心、Ribbon作为负载均衡器。
5. 开发实践在开发过程中,我们遵循了面向对象的编程思想,并且使用了版本控制工具Git,实现了团队的协同开发。
我们按照模块划分任务,每个成员负责一个或多个模块的开发。
通过定期的代码审查和团队会议,我们保持了代码的质量和一致性。
6. 问题与挑战在项目开发中,我们也遇到了一些问题和挑战。
例如,数据一致性的处理、性能优化、多线程并发等。
但通过团队成员的共同努力和合作,我们成功地克服了这些问题,并取得了较好的开发效果。
7. 项目成果与展望在项目完成后,我们实现了一个功能完备、用户友好的在线购物平台。
用户可以注册、登录、浏览商品、下订单并进行支付等操作。
同时,我们也考虑到了扩展性和性能优化的问题,系统具备一定的容错和弹性。
未来,我们希望能继续完善和优化这个系统,并根据用户的反馈做出进一步的改进。
java课程设计报告(完整版)
目录1、摘要2、概要设计3、详细设计4、测试分析5、总结6、参考文献【前言】Java不依赖平台的特点使得它受到广泛的关注,Java已成为网络时代最重要的语言之一。
Java语言不仅是一门正在被广泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门基础语言。
目前,很多新的技术领域都涉及Java语言,国内外许多大学已将Java语言列入了本科教学计划,掌握Java已经成为共识。
本次课程设计就是利用java语言来编写简单的计算器,能进行加、减、乘、除四则运算,下面给出了该设计的理论分析和具体步骤。
一、摘要本计算器可以进行简单的四则运算(加、减、乘、除),但仅限于十进制下。
“Backspace”按钮表示退格,“CE”按钮表示清除当前文本框内的数据,“C”按钮表示清除文本框内数据,同时var、answer清零。
该程序可在JCreator环境下直接运行。
二、概要设计1、自定义说明(1)类名:Calculator作用:主类继承的父类:JFrame类实现的接口:ActionListener类public class Calculator extends JFrame implements ActionListener{private static String[] btnTexts = {"0","1","2","3","4","5","6","7","8","9","+","-","*","/",".","+/-"}; //定义数组bstTexts来存放计算器上的各个按钮Button button[] = new Button[16];Button BkButton,CeButton,CButton,EqButton;boolean clickable; //控制当前能否按键double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd)short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用来保存前次进行何种运算DecimalFormat df; //设置数据输出精度private JTextField displayField = new JTextField(" "); //计算结果显示区public Calculator(){………}public void actionPerformed(ActionEvent event){………}}(2)方法名:Calculator作用:设置窗体布局public Calculator(){//Frame frame = new Frame("Calculator");super("Calculator"); //显示主窗口标题“Calculator”df = new DecimalFormat("0.00000000"); //设置数据输出精度(对于double型值)BkButton = new Button("Backspace");BkButton.setForeground(Color.red);CeButton = new Button("CE");tForeground(Color.red);CButton = new Button("C");CButton.setForeground(Color.red);EqButton = new Button("=");EqButton.setForeground(Color.red); //将“Backspace”、“CE”、”C”、“=”显示为红色BkButton.addActionListener(this);nListener(this);CButton.addActionListener(this);EqButton.addActionListener(this);displayField.setHorizontalAlignment(JTextField.RIGHT); //将计算结果显示在displayField的右面JPanel p1 = new JPanel(new FlowLayout()); //以FlowLayout布局p1 p1.add(BkButton);p1.add(CeButton);p1.add(CButton);p1.add(EqButton); //设置四个按钮:"Backspace","CE","C","="JPanel p2 = new JPanel(new GridLayout(2,1)); //以GridLayout布局p2 p2.add(displayField);p2.add(p1); //加入显示结果的JTextField和p1JPanel p3 = new JPanel(new GridLayout(4,4)); //以GridLayout布局p3 for(int i = 0;i < btnTexts.length;i++){button[i] = new Button(btnTexts[i]); //将数组btnTexts[]的值赋给数组button[] button[i].setForeground(Color.blue); //组件button的前景色显示蓝色p3.add(button[i]);button[i].addActionListener(this);}Container cp = this.getContentPane(); //采用默认的BorderLayout布局cpcp.add(p2,BorderLayout.NORTH);R);}(3)方法名:actionPerformed作用:设置各个按钮的行为public void actionPerformed(ActionEvent event){boolean sign = false; //判断是否是double型数参与运算,是为true,不是为falseObject temp = event.getSource();try{for (int i = 0; i <= 9; i++) //如果按下数据按钮,将按下的按钮代表的数据插入的当前文本框字符串之后displayField.setText(displayField.getText() + Integer.toString(i));//按下'.'按钮时,判断当前文本框内字符串中含不含'.',如果已含,则不允许再插入'.'if (temp == button[14] && clickable == true){……….}if ( (temp == button[10] || temp == button[11] || temp == button[12] || temp == button[13]) && clickable == true){//'+'操作if (temp == button[10]){…………}//'-'操作if (temp == button[11]){…………}//'*'操作if (temp == button[12]){…………}//'/'操作if (temp == button[13]){…………}//'='操作if (temp == EqButton && clickable == true){…………}//按下'+/-'按钮时处理{…………}//按下'Backspace'键,利用循环将当前字符串中的最后一个字母删除if (temp == BkButton && clickable == true){…………}//按下'CE'按钮,将当前文本框内数据清除if (temp == CeButton){………}//按下'C'按钮,文本框内数据清除,同时var,answer清0if (temp == CButton){………}}//输入中如果有操作非法,比如按下两次'+',捕获异常catch (Exception e){displayField.setText("操作非法");clickable = false;}2、界面设计下图为该程序运行时的界面截图:三、详细设计以下为该程序的主要代码:import javax.swing.*;import java.awt.*;import javax.swing.event.*;import java.awt.event.*;imalFormat;public class Calculator extends JFrame implements ActionListener{private static String[] btnTexts ={"0","1","2","3","4","5","6","7","8","9","+","-","*","/",".","+/-"};Button button[] = new Button[16];Button BkButton,CeButton,CButton,EqButton;boolean clickable; //控制当前能否按键double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd)short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用来保存前次进行何种运算DecimalFormat df; //设置数据输出精度private JTextField displayField = new JTextField(" ");//计算结果显示区public Calculator(){super("Calculator"); //显示主窗口标题“Calculator”df = new DecimalFormat("0.00000000"); //设置数据输出精度(对于double型值)BkButton = new Button("Backspace");BkButton.setForeground(Color.red);CeButton = new Button("CE");CeButton.setForeground(Color.red);CButton = new Button("C");CButton.setForeground(Color.red);EqButton = new Button("=");EqButton.setForeground(Color.red); //将“Backspace”、“CE”、”C”、“=”显示为红色BkButton.addActionListener(this);CeButton.addActionListener(this);CButton.addActionListener(this);EqButton.addActionListener(this);displayField.setHorizontalAlignment(JTextField.RIGHT); //将计算结果显示在displayField的右面JPanel p1 = new JPanel(new FlowLayout()); //以FlowLayout布局p1 p1.add(BkButton);p1.add(CeButton);p1.add(CButton);p1.add(EqButton); //设置三个按钮:"Backspace","CE","C","="JPanel p2 = new JPanel(new GridLayout(2,1)); //以GridLayout布局p2 p2.add(displayField);p2.add(p1); //加入显示结果的JTextField和p1JPanel p3 = new JPanel(new GridLayout(4,4)); //以GridLayout布局p3 for(int i = 0;i < btnTexts.length;i++){button[i] = new Button(btnTexts[i]); //将数组btnTexts[]的值赋给数组button[] button[i].setForeground(Color.blue); //组件button的前景色示蓝色p3.add(button[i]);button[i].addActionListener(this);}Container cp = this.getContentPane(); //采用默认的BorderLayout布局cpcp.add(p2,BorderLayout.NORTH);cp.add(p3,BorderLayout.CENTER);}//设置各个按钮行为public void actionPerformed(ActionEvent event){boolean sign = false; //判断是否是double型数参与运算,是为true,不是为falseObject temp = event.getSource();try{for (int i = 0; i <= 9; i++) //如果按下数据按钮,将按下的按钮代表的数据插入的当前文本框字符串之后if (temp == button[i] && clickable == true)displayField.setText(displayField.getText() + Integer.toString(i));//按下'.'按钮时,判断当前文本框内字符串中含不含'.',如果已含,则不允许再插入'.'if (temp == button[14] && clickable == true){boolean isDot = false;if (displayField.getText().length() == 0)isDot = true;for (int i = 0; i < displayField.getText().length(); i++)if ('.' == displayField.getText().charAt(i)){isDot = true;break;}if (isDot == false)displayField.setText(displayField.getText() + ".");}if ( (temp == button[10] || temp == button[11] || temp == button[12] || temp == button[13]) && clickable == true){//'+'操作if (temp == button[10]){switch (prekey){case 0:answerd += Double.parseDouble(displayField.getText());break;case 1:answerd -= Double.parseDouble(displayField.getText());break;case 2:answerd *= Double.parseDouble(displayField.getText());break;case 3:if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}elseanswerd /= Double.parseDouble(displayField.getText());break;default:le(displayField.getText());}displayField.setText("");prekey = key = 0;}//'-'操作if (temp == button[11]){switch (prekey){case 0:answerd += Double.parseDouble(displayField.getText());break;case 1:answerd -= Double.parseDouble(displayField.getText());break;case 2:answerd *= Double.parseDouble(displayField.getText());break;case 3:if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}elseanswerd /= Double.parseDouble(displayField.getText());break;default:answerd = Double.parseDouble(displayField.getText());}displayField.setText("");prekey = key = 1;}//'*'操作if (temp == button[12]){switch (prekey){case 0:answerd += Double.parseDouble(displayField.getText());break;case 1:answerd -= Double.parseDouble(displayField.getText());break;case 2:answerd *= Double.parseDouble(displayField.getText());break;case 3:if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}elseanswerd /= Double.parseDouble(displayField.getText());break;default:answerd = Double.parseDouble(displayField.getText());}displayField.setText("");prekey = key = 2;}//'/'操作if (temp == button[13]){switch (prekey){case 0:answerd += Double.parseDouble(displayField.getText());break;case 1:answerd -= Double.parseDouble(displayField.getText());break;case 2:answerd *= Double.parseDouble(displayField.getText());break;case 3:if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}elseanswerd /= Double.parseDouble(displayField.getText());break;default:answerd = Double.parseDouble(displayField.getText());}displayField.setText("");prekey = key = 3;}}//'='操作if (temp == EqButton && clickable == true){//如果连续按'=',则进行连续运算if (prekey == 5){if (key == 0){answerd += vard;displayField.setText(df.format(answerd));}if (key == 1){answerd -= vard;displayField.setText(df.format(answerd));}if (key == 2){answerd *= vard;displayField.setText(df.format(answerd));}if (key == 3){if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}else{answerd /= vard;displayField.setText(df.format(answerd));}}}else{vard = Double.parseDouble(displayField.getText());if (key == 0){prekey = -1;answerd += Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}if (key == 1){prekey = -1;answerd -= Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}if (key == 2){prekey = -1;answerd *= Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}if (key == 3){prekey = -1;if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}else{answerd /= Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}}prekey = 5;}//按下'+/-'按钮时处理if (temp == button[15] && clickable == true){boolean isNumber = true;String s = displayField.getText();for (int i = 0; i < s.length(); i++)if (! (s.charAt(i) >= '0' && s.charAt(i) <= '9' || s.charAt(i) == '.' || s.charAt(i) == '-')){isNumber = false;break;}if (isNumber == true){//如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉if (s.charAt(0) == '-'){displayField.setText("");for (int i = 1; i < s.length(); i++){char a = s.charAt(i);displayField.setText(displayField.getText() + a);}}//如果当前字符串第一个字符不是符号,则添加一个符号在首字母处elsedisplayField.setText('-' + s);}}//按下'Backspace'键,利用循环将当前字符串中的最后一个字母删除if (temp == BkButton && clickable == true)String s = displayField.getText();displayField.setText("");for (int i = 0; i < s.length() - 1; i++){char a = s.charAt(i);displayField.setText(displayField.getText() + a);}}//按下'CE'按钮,将当前文本框内数据清除if (temp == CeButton){displayField.setText("");clickable = true;}//按下'C'按钮,文本框内数据清除,同时var,answer清0if (temp == CButton){vard = answerd = 0;displayField.setText("");clickable = true;}}//输入中如果有操作非法,比如按下两次'+',捕获异常catch (Exception e){displayField.setText("操作非法");clickable = false;}}public static void main(String args[]){Calculator calculator = new Calculator();calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);calculator.setSize(300,200);calculator.setVisible(true);}}四、测试分析(1)程序运行情况该程序正常的响应按钮事件,能进行简单的加、减、乘、除四则运算,在输入之前须先进行清零处理,然后再输入数值进行运算。
《Java课程设计》说明书
《Java课程设计》说明书
课程设计报告书目录
一、设计课题
二、设计目的
三、操作环境
四、设计场所(机房号、机器号或自己机器)
五、设计过程(设计内容及及各源代码板块)
六、本次设计中用到的课程知识点(列出主要知识点)
七、设计过程中遇到的问题及解决办法
八、设计心得总结
2.总体设计
本程序是为了实现计算器的基本功能的运行。
利用监听器去实现计算器的基本功能。
3.科学计算器界面截图:
1)功能描述
1、打开计算器。
首先是标准型的计算器,具有基本的加减乘除,开方等
基本功能。
同时,在标准型的计算器中还可以存储文本框中的内容。
如图1所示:
图1标准型计算器界面
2、在标准型的计算器界面中,进行的运算--加法运算。
如计算
2+3=5.0。
如图2
图2加法功能
3、实现减法运算.如计算:4-2=2.0 如图3
图3 减法运算
4、实现取余运算.如计算 12%20=12.0 如图4
图4取余计算
4.程序整体设计说明
【1】程序中所用到的变量
count、line1、line2、leng、input、input1 【2】代码列表:
import java.awt.FlowLayout;。
JAVA课程设计报告_完整版
《JAVA面向对象程序设计》课程设计报告(2011-2012学年第2学期)系别:厦门理工学院计算机科学与技术系专业名称:10级网络工程1班课程设计科目:《JAVA面向对象程序设计》课程设计学生姓名:学号:指导教师:***成绩:完成时间:2012年7月6日题目JAVA程序课程设计任务一手机号码检测器(一)设计任务与目标任务:手机号码是由11位数字构成,用户在输入手机号码时经常混乱输入若干位数字或字母,要求你编写一个程序检测用户所输入的手机号码是否符合规则。
要求目标:检测所输入的手机号码是否是11位检测每一位是否都为数字。
分析论证:本题目要求对用户输入的手机号码进行检测,判断输入的正确性。
曾经有做过类似字符比较的题目,可以借鉴。
将字符的比较运用进来,把用户的输入字符和正确的进行比较。
但是必须满足多次输入和错误提醒。
同时还可以添加提示错误的位置和错误字符是什么。
程序正确运行时可以满足以上功能,基本可以达到题目要求了。
(二)方案设计与论证为了满足多次输入的要求,将提示和输入的操作放在一个循环体中,我采用了do_whiele()循环。
每次输入结束后提示是否继续输入。
在循环中逐步对输入的号码位数和字符类型进行检测。
位数可以分超出和不足,并均给出错误提示。
如果位数满足要求后对手机号码类型进行检测。
一般手机号在0~9之间,所以不满足的字符将报错。
通过将输入的整个字符串调用charAt(int i)方法对字符串逐位比较。
本程序的特点在于可以满足了多次输入和错误字符的显示(内容和位置)。
在程序的调试过程中,有过多次输入正确的号码也会报错(还会报错0位错误),这是因为记录错误位子的变量放在错误条件下并且未在循环体中初始化为0。
最终解决了此问题。
(三)程序框图或流程图,程序清单与调用关系(四)程序运行的测试与分析实现了多次输入和错误提示,可以判断输入的号码的错误位置及字符,错误类型,满足了设计构思要求。
最终结果如下图:实验结果截图:(五)结论心得实验过程中对于判断条件的选择出现了问题,开始时觉得要对输入的字符一个一个的比较,这样增加了难度也不方便实现。
java课程设计实验报告
java课程设计实验报告Java课程设计实验报告。
一、实验目的。
本次实验旨在通过设计一个简单的Java程序,加深对Java语言的理解和应用,同时锻炼学生的编程能力和解决问题的能力。
二、实验内容。
本次实验要求设计一个简单的学生成绩管理系统,实现对学生成绩的录入、查询、修改和删除等功能。
具体要求如下:1. 设计一个学生类,包括学生的基本信息(学号、姓名、性别等)和成绩信息(语文、数学、英语等科目成绩)。
2. 实现学生成绩的录入功能,可以一次性录入多个学生的成绩信息。
3. 实现学生成绩的查询功能,可以根据学号或姓名查询学生的成绩信息。
4. 实现学生成绩的修改功能,可以修改指定学生的成绩信息。
5. 实现学生成绩的删除功能,可以删除指定学生的成绩信息。
三、实验设计。
在本次实验中,我首先设计了一个学生类,包括学号、姓名、性别和成绩等属性,并提供了相应的构造方法和get、set方法。
然后,我设计了一个学生成绩管理系统的主类,其中包括录入、查询、修改和删除等功能的实现。
在录入功能中,我使用Scanner类实现了从控制台输入学生信息的功能,并将学生信息保存到一个ArrayList中。
在查询功能中,我通过学号或姓名遍历ArrayList,找到相应的学生信息并输出。
在修改功能中,我同样通过遍历ArrayList找到指定学生信息,并提供修改选项,用户可以选择要修改的成绩信息进行修改。
在删除功能中,我也是通过遍历ArrayList找到指定学生信息,并进行删除操作。
四、实验结果。
经过一系列的调试和测试,我成功实现了学生成绩管理系统的设计要求。
用户可以通过简单的命令行界面,实现学生成绩的录入、查询、修改和删除等功能。
系统运行稳定,操作简单,符合设计要求。
五、实验总结。
通过本次实验,我对Java语言的面向对象编程有了更深入的理解,掌握了ArrayList的使用方法,提高了编程能力和问题解决能力。
同时,通过设计一个实用的学生成绩管理系统,我也加深了对Java语言的应用和实践,为以后的学习和工作打下了坚实的基础。
《JAVA程序设计》课程设计五篇
《JAVA程序设计》课程设计五篇第一篇:《JAVA程序设计》课程设计JAVA程序设计》课程设计------Chatter即时聊天工具班级:姓名:学号:指导老师:日期:《目录1.引言.....................................................................................3 2.功能简介..............................................................................3 3.开发环境..............................................................................3 4.课程设计目的.......................................................................3 5.使用手册..............................................................................3 6.程序源代码...........................................................................4 4.1 serverJFrame.java (4)4.2 clientJFrame.java...............................................................9 7.程序运行效果图. (14)8.心得体会 (16)1.引言相信大家一想到基于TCP/IP协议的通信,都会想到利用Socket 类对象建立一条可靠的连接,这样就客户机/服务器就在这条连接上可靠地传输数据。
java游戏课程设计报告
java游戏课程设计报告一、课程目标知识目标:1. 让学生掌握Java语言的基本语法和程序结构,理解面向对象编程的核心概念;2. 使学生了解游戏开发的基本流程,掌握游戏设计的基本框架;3. 帮助学生掌握Java游戏编程中常用的数据结构和算法。
技能目标:1. 培养学生运用Java语言进行游戏开发的能力,能够独立设计和编写简单的Java游戏;2. 提高学生分析问题和解决问题的能力,能够在游戏开发过程中灵活运用所学知识;3. 培养学生的团队协作能力,学会与他人合作共同完成游戏项目。
情感态度价值观目标:1. 激发学生对编程和游戏开发的兴趣,培养其探索精神和创新意识;2. 培养学生积极向上的学习态度,养成自主学习、合作学习的良好习惯;3. 引导学生正确对待游戏,认识到游戏在娱乐和学习中的积极作用,树立正确的价值观。
课程性质:本课程为选修课程,适用于对Java编程和游戏开发感兴趣的学生。
学生特点:学生具备一定的Java编程基础,对游戏开发有浓厚的兴趣,具有较强的动手能力和创新意识。
教学要求:结合学生特点和课程性质,注重实践操作,以项目为导向,培养学生的实际动手能力和团队协作能力。
在教学过程中,关注学生的个体差异,提供个性化的指导和帮助,确保课程目标的实现。
通过本课程的学习,使学生能够掌握Java游戏编程的基本技能,为后续深入学习奠定基础。
二、教学内容1. Java基本语法和程序结构复习:包括变量、数据类型、运算符、控制结构等,涉及教材第一章至第三章内容。
2. 面向对象编程基础:类与对象、构造方法、继承与多态、接口与实现,涉及教材第四章至第六章内容。
- 游戏设计基本框架:游戏循环、游戏状态、场景切换等。
3. Java游戏编程常用数据结构和算法:数组、链表、堆栈、队列、排序和搜索算法等,涉及教材第七章至第八章内容。
4. Java游戏开发实践:- 游戏项目策划:学习如何撰写游戏设计文档,明确游戏类型、玩法、角色设定等。
Java课程设计报告书-学生版
实验报告Java进程与线程【实验目的】1. 熟练掌握Java中进行与线程的概念,编程原理,及应用领域。
2. 正确理解进程与线程的区别和应用领域。
【实验内容】1. 编写一个计时精度为1/24秒的数字秒表程序,具有开始、暂停、继续和复位功能。
下图给出截图程序代码:/**** 初始化UI ****/private void init() {setLayout(new BorderLayout());JButton startBtn = new JButton("开始");JButton pauseBtn = new JButton("暂停");JButton resumeBtn = new JButton("继续");JButton resetBtn = new JButton("复位");pauseBtn.setEnabled(false); // 设置各按钮的初始状态resumeBtn.setEnabled(false);resetBtn.setEnabled(false);JPanel top = new JPanel();top.add(startBtn);top.add(pauseBtn);top.add(resumeBtn);top.add(resetBtn);add(top, BorderLayout.NORTH);contentLab.setFont(new Font("Tohoma", Font.BOLD, 40)); contentLab.setHorizontalAlignment(JLabel.CENTER);add(contentLab, BorderLayout.CENTER);/**** 按钮点击事件处理 ****/startBtn.addActionListener(e -> {b = true; // 刷新时间total = 0; // 总逝去时间清零begin = System.currentTimeMillis(); // 修改开始时间 startBtn.setEnabled(false); // 修改各按钮的状态pauseBtn.setEnabled(true);resetBtn.setEnabled(true);});pauseBtn.addActionListener(e -> {b = false; // 停止刷新时间total += elapsed; // 累加到总逝去时间pauseBtn.setEnabled(false);resumeBtn.setEnabled(true);});resumeBtn.addActionListener(e -> {b = true;begin = System.currentTimeMillis();pauseBtn.setEnabled(true);resumeBtn.setEnabled(false);});resetBtn.addActionListener(e -> {b = false;contentLab.setText("00 : 00 : 00.00");startBtn.setEnabled(true);pauseBtn.setEnabled(false);resumeBtn.setEnabled(false);resetBtn.setEnabled(false);});setDefaultCloseOperation(EXIT_ON_CLOSE);setSize(400, 200);setVisible(true);}public void on() {new Thread(() -> { // 创建线程对象(参数为Lambda表达式)while (true) { // 死循环if (b) { // 刷新时间elapsed = System.currentTimeMillis() - begin; // 计算当前逝去的时间 int h = (int) ((total + elapsed) / (60 * 60 * 1000)); // 计算各分量 int m = (int) ((total + elapsed) % (60 * 60 * 1000) / (60 * 1000)); int s = (int) ((total + elapsed) % (60 * 1000) / 1000);int ms = (int) ((total + elapsed) % 1000 / (1000 / 24));程序输出结果截图:(要求对上面的界面按钮的颜色进行简单修改)。
java课程设计课程设计报告16
java课程设计课程设计报告16概述利用eclipse实现了计算器界面的设计和操作,完成计数器中加、减、乘、除功能。
通过实践,该设计具有强大的实用性,界面简洁,功能基础,给用户提供了很多的便利。
设计任务及要求(1)编写一个Java计算器程序(2)运用组件的方法来布局窗口,运用接口,事情监听程序来完成计算器的功能(3)简洁直观的操作界面(4)实现简单加、减、乘、除的运算(包括小数和整数的运算)(5)Clear按钮用于实现全部输入的清空操作,直接显示为零设计方案(1)设计思路开始在使用计算器时,一般有以下操作:输入第一操作数,输入加减乘除运算符,再输入第二个操作数,然后按“=”按键执行按键并显示结果[1]。
输入第一个数点击运算符输入第二个数点击等号结束输出结果界面设计计算器界面主要分为显示窗口和操作按钮,其中操作按钮包括数字、四则运算符、“=”、小数点。
用无参构造法实现界面的初始化,将显示窗口设置成44的网格布局,将按钮添加入网格布局中。
程序设计用无参构造法实现界面的初始化,实例化并声明按钮名称为clear按钮赋值并设置监听器设置显示窗口的大小以及布局并将其命名“简易计算器”编写运算程序并将文本框中的字符串强制转化为Double类型具体程序如下:importjava.awt.BorderLayout;importjava.awt.Font;importjava.a wt.GridLayout;importjava.awt.Toolkit;importjava.awt.event.Actio nEvent;importjava.awt.event.ActionListener;importjavax.swing.;@ SuppressWarnings("serial")publicclassCalculator444extendsJFr ameimplementsActionListener{//定义界面上的按钮控件finalStringJButtonName[]={"7","8","9","+","4","5","6","-","1","2","3","×",".","0","=","÷"};//定义字体内容Fontfont=newFont("黑体",Font.PLAIN,17);//定义面板,有二个面板,第一个就是输入框和clear,第二个就是下面的操作的按钮JPanelp1,p2;//创建按钮数组JButtonJb[]=newJButton[JButtonName.length];//创建cle arJButtonclear;//创建输入框JTextFieldtf;//创建构造方法,使用继承了JFrame后,界面的初始化是需要在无参构造方法中实现publicCalculator444(){//为每一个按钮进行点击事件for(inti=0;ion(""+JButtonName[i]);//设置字体Jb[i].setFont(font);//设置按钮透明Jb[i].setContentAreaFilled(false);Jb[i].addActionListener(this);}//设置成4X4的网格布局p1=newJPanel(newGridLayout(4,4));//把按钮添加到网格布局中for(inti=0;i面板p2=newJPanel(newBorderLayout());//为clear按钮赋值clear=newJButton("clear");clear.setContentAreaFilled(false);//为clear按钮设置监听器clear.addActionListener(this);//输入框tf=newJTextField("0");tf.setFont(font);p2.add(clear,"East");p2.add(tf,"Center");this.add (p2,BorderLayout.NORTH);this.add(p1,BorderLayout.CENTER );this.setVisible(true);this.setTitle("简易计算器");//使窗口居中intwindowsWedth=400;intwindowsHeight=300;intwidth=Toolkit.getDefaultT ool kit().getScreenSize().width;intheight=Toolkit.getDefaultToolkit() .getScreenSize().height;this.setBounds((width-windowsWedth)/2,(height-windowsHeight)/2,windowsWedth,windowsHeight);}pu blicvoidactionPerformed(ActionEvente){//返回的是按的按钮名Stringlabel=e.getActionCommand();if(e.getSource()==clear)Reset();els eif("0123456789.".indexOf(label)>=0)RunNumber(label);else RunOperator(label);}//是否是第一次按数字booleanisFirstDigit=true;publicvoidRunNumber(Stringkey){if(isFirstDigit)tf.setText(key);//如果是第一次按数字,覆盖文本框的内容elseif((key.equals("."))&&(tf.getText().indexOf(".")<0))//按了点并且文本框中之前没有点tf.setText(tf.getText()+".");//如果按了多个".",只显示一个elseif(!key.equals("."))tf.setText(tf.getT ext()+key);//叠加显示在文本框中isFirstDigit=false;}doublenumber=0.0;Stringoperator="=";publicvoidReset(){//重置tf.setText("0");isFirstDigit=true;operator="=";}publicvoidRunOperator(Stringkey ){if(operator.equals("+"))//将文本框中的字符串强制转化为Double类型number+=Double.valueOf(tf.getText());elseif(operator.equals("-"))number- =Double.valueOf(tf.getText());elseif(operator.equals("×"))nu mber=Double.valueOf(tf.getText());elseif(operator.equals("÷")){number/=Double.valueOf(tf.getText());}elseif(operator.equa ls("="))number=Double.valueOf(tf.getText());tf.setText(String .valueOf(number));operator=key;isFirstDigit=true;}publicstatic voidmain(String[]args){newCalculator444();}}结论分析该实验利用Java中的JFrame窗口、组件、布局管理器、监听器来设计简易计算机的程序。
软件工程JAVA课程设计报告
软件工程JAVA课程设计报告1. 引言本报告是软件工程JAVA课程设计的最终报告,旨在总结和评估我们小组在课程设计中的工作和成果。
本课程设计旨在让学生深入了解软件工程的基本概念和开发流程,并通过实践设计和开发一个完整的JAVA软件项目来加深理解。
2. 项目背景为了更好地掌握JAVA编程技巧和软件工程的开发方法,我们小组决定设计一个学生成绩管理系统作为我们的课程设计项目。
该学生成绩管理系统旨在帮助学校或教育机构管理学生的学习成绩。
系统将具有管理员和教师两个角色,管理员可以添加学生和教师信息,教师可以管理学生成绩和课程信息。
学生可以登录系统查看自己的成绩和课程信息。
3. 技术选型为了实现该学生成绩管理系统,我们选择使用JAVA作为开发语言,并结合使用Spring Boot和MySQL数据库。
JAVA是一种面向对象的编程语言,拥有广泛的应用领域和强大的生态系统。
Spring Boot是一个快速开发和简化配置的JAVA框架,它提供了全面的集成和自动化配置,方便我们快速搭建和开发项目。
MySQL是一个常用的关系型数据库管理系统,具有稳定性和扩展性优势。
4. 系统功能和模块设计学生成绩管理系统主要包含以下功能模块:4.1 登录模块登录模块负责用户身份验证和权限管理,包括学生、教师和管理员登陆功能。
4.2 学生信息管理模块学生信息管理模块负责学生信息的增删改查操作,包括添加学生、修改学生信息、查询学生信息等功能。
4.3 教师信息管理模块教师信息管理模块负责教师信息的增删改查操作,包括添加教师、修改教师信息、查询教师信息等功能。
4.4 课程信息管理模块课程信息管理模块负责课程信息的增删改查操作,包括添加课程、修改课程信息、查询课程信息等功能。
4.5 成绩管理模块成绩管理模块负责学生成绩的增删改查操作,包括添加成绩、修改成绩、查询成绩等功能。
5. 开发过程和方法在该项目的开发过程中,我们采用了敏捷开发方法,并使用了Scrum框架来进行项目管理。
java课程设计报告.doc
java课程设计报告.doc一、教学目标本课程旨在通过Java编程语言的学习,让学生掌握Java编程的基本语法、流程控制、数据结构、面向对象编程等知识,培养学生编写简单Java应用程序的能力,提高学生解决实际问题的实践能力。
1.掌握Java基本语法和常用数据类型。
2.理解面向对象编程的基本概念,如封装、继承、多态。
3.熟悉Java常用类库和API。
4.掌握Java程序的调试和运行方法。
5.能够使用Java编写简单的应用程序。
6.能够运用面向对象编程思想解决实际问题。
7.具备基本的Java程序调试和优化能力。
情感态度价值观目标:1.培养学生的团队合作意识和沟通能力。
2.培养学生热爱编程、积极探索的精神。
3.增强学生对计算机科学的兴趣和自信心。
二、教学内容本课程的教学内容主要包括Java基本语法、流程控制、数据结构、面向对象编程等。
具体安排如下:1.Java基本语法:变量、数据类型、运算符、表达式、语句等。
2.流程控制:顺序结构、选择结构、循环结构等。
3.数据结构:数组、链表、栈、队列、树等。
4.面向对象编程:类、对象、封装、继承、多态等。
5.Java常用类库和API:String类、数学类、日期类等。
6.综合实践:编写简单的Java应用程序,如计算器、通讯录等。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解Java编程的基本概念和知识点,使学生掌握相关知识。
2.案例分析法:分析实际案例,让学生了解Java编程在实际应用中的优势和特点。
3.实验法:引导学生动手实践,培养学生的编程能力和实际问题解决能力。
四、教学资源1.教材:《Java编程思想》、《Java核心技术》等。
2.参考书:《Java编程指南》、《Java并发编程》等。
3.多媒体资料:PPT、教学视频、在线教程等。
4.实验设备:计算机、网络环境、编程软件等。
五、教学评估本课程的评估方式包括平时表现、作业、考试等,以全面、客观、公正地评价学生的学习成果。
java课程设计设计实验报告
java课程设计设计实验报告一、教学目标本课程旨在通过Java编程语言的学习,让学生掌握Java编程的基本语法、流程控制、数据结构、面向对象编程等基本知识,培养学生运用Java语言解决实际问题的能力。
具体目标如下:1.知识目标:(1)理解Java编程语言的基本语法和编程规范;(2)掌握Java中的基本数据类型、运算符、表达式;(3)了解Java的流程控制语句,如if、for、while等;(4)熟悉Java数组、字符串、集合等数据结构的使用;(5)理解面向对象编程的基本概念,如类、对象、封装、继承、多态等;(6)掌握Java异常处理机制和文件操作。
2.技能目标:(1)能够使用Java编写简单的程序,实现基本的功能;(2)能够运用面向对象编程思想,设计并实现具有一定复杂度的程序;(3)具备阅读Java代码的能力,能够理解并修改他人编写的程序;(4)掌握使用Java开发工具,如Eclipse、IntelliJ IDEA等;(5)了解Java程序的调试和性能优化方法。
3.情感态度价值观目标:(1)培养学生对编程语言的兴趣,激发学生主动学习的动力;(2)培养学生团队合作精神,提高学生沟通协作能力;(3)培养学生面对挑战、解决问题的信心和勇气;(4)培养学生具有良好的代码规范和编程习惯。
二、教学内容本课程的教学内容主要包括Java编程语言的基本语法、流程控制、数据结构、面向对象编程等。
具体安排如下:1.第一章:Java入门,介绍Java编程语言的基本概念、环境搭建和基本语法;2.第二章:基本数据类型和运算符,学习Java中的整数、浮点数、字符、布尔等数据类型以及运算符;3.第三章:流程控制语句,学习if、for、while等流程控制语句的使用;4.第四章:数组和字符串,学习数组的声明、初始化和使用,字符串的创建、操作和转换;5.第五章:集合框架,学习List、Set、Map等集合接口及其实现类的使用;6.第六章:面向对象编程,学习类、对象、封装、继承、多态等概念及应用;7.第七章:异常处理和文件操作,学习Java异常处理机制和文件读写方法;8.第八章:Java编程实践,通过案例分析法和实验法,巩固所学知识,提高实际编程能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Java程序设计》课程设计报告2015—2016学年第二学期设计题目:《数字连连看》学生:黄杰学号: 2专业班级:软件工程1402指导教师:国权2016 年 7 月 2 日目录1.JAVA程序设计书 31.1《简易连连看》31.1.1具体要求 31.2本系统设计的知识点 32.功能设计 32.1算法设计 32.2部分模块流程图 43.代码设计 54.界面及运行效果,测试工具与测试效果145.设计总结 165.1.程序调试情况:165.2.本人在程序设计中感想: 166.致 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算法设计本系统需要实现的功能要求:图一,数字按钮功能模块图二,三个功能按钮模块图三,数据记录模块图四,鼠标操作模块2.2部分模块流程图:3代码设计package mybase.programe;/** lianliankan总体算法思路:由两个确定的按钮。
若这两个按钮的数字相等,就开始找它们相连的路经。
这个找路经* 分3种情况:(从下面的这三种情况,我们可以知道,需要三个检测,这三个检测分别检测一条直路经。
这样就会有* 三条路经。
若这三条路经上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了)* 1.相邻** 2. 若不相邻的先在第一个按钮的同行找一个空按钮。
1).找到后看第二个按钮横向到这个空按钮* 所在的列是否有按钮。
2).没有的话再看第一个按钮到与它同行的那个空按钮之间是否有按钮。
3).没有的话,再从* 与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮。
没有的话路经就通了,可以消了.** 3.若2失败后,再在第一个按钮的同列找一个空按钮。
1).找到后看第二个按钮竖向到这个空按钮所在的行是否有按钮。
* 2).没有的话,再看第一个按钮到与它同列的那个空按钮之间是否有按钮。
3).没有的话,再从与第一个按钮同列的* 那个空按钮横向到与第二个按钮同列看是否有按钮。
没有的话路经就通了,可以消了。
** 若以上三步都失败,说明这两个按钮不可以消去。
*/import javax.swing.*;import java.awt.*;import java.awt.event.*;public class LianLianKan implements ActionListener {JFrame mainFrame; // 主面板Container thisContainer;JPanel centerPanel, southPanel, northPanel; // 子面板JButton diamondsButton[][] = new JButton[6][5];// 游戏按钮数组JButton exitButton, resetButton, newlyButton; // 退出,重列,重新开始按钮JLabel fractionLable = new JLabel("0"); // 实例化分数标签,并初始化为“0”JButton firstButton, secondButton; // 分别记录两次被选中的按钮// 储存游戏按钮位置(这里其实只要6行,5列。
但是我们用了8行,7列。
是等于在这个面板按钮的周围还围//了一层是0的按钮,这样就可以实现靠近面板边缘的两个按钮可以消去)int grid[][] = new int[8][7];static boolean pressInformation = false; // 判断是否有按钮被选中int x0 = 0, y0 = 0, x = 0, y = 0, fristMsg = 0, secondMsg = 0, validateLV; // 游戏按钮的位置坐标int i, j, k, n;// 消除方法控制public void init(){mainFrame = new JFrame("JKJ连连看");//实例化thisContainer = mainFrame.getContentPane();//将thisContainer放入mainFrame的容窗口中thisContainer.setLayout(new BorderLayout());//为thisContainer创建Borderlayout布局管理器centerPanel = new JPanel();//实例化southPanel = new JPanel();//实例化northPanel = new JPanel();//实例化thisContainer.add(centerPanel, "Center");//以下三行是为thisContainer容器添加不同方位的新的面板组件thisContainer.add(southPanel, "South");thisContainer.add(northPanel, "North");centerPanel.setLayout(new GridLayout(6, 5));//为centerPanel面板设置网格式布局管理器(6行5列)的容纳组建的网格for (int cols = 0; cols < 6; cols++) {for (int rows = 0; rows < 5; rows++) {diamondsButton[cols][rows] = new JButton(String.valueOf(grid[cols+ 1][rows+ 1]));//将数组的行数与列数各自加一后对应元素转化为字符串类型并赋值给对应的原始数组按钮diamondsButton[cols][rows].addActionListener(this);//为每个网格单元设置事件监听接口centerPanel.add(diamondsButton[cols][rows]);}}exitButton = new JButton("退出");//实例特定按钮并添加时间监听接口exitButton.addActionListener(this);resetButton = new JButton("重列");resetButton.addActionListener(this);newlyButton = new JButton("再来一局");newlyButton.addActionListener(this);southPanel.add(exitButton);//将三个特定接口添加到三个确定方位布局的面板组件容器中southPanel.add(resetButton);southPanel.add(newlyButton);fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText()))); //嵌套,把整形对象Integer转换成基本数据类型int(整数)再转化为字符串型。
northPanel.add(fractionLable);mainFrame.setBounds(280, 100, 500, 450);//设置主界面的大小mainFrame.setVisible(true);//设置可见mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}//设置当点击后界面仍旧停留且不会退出进程public void randomBuild() {//随机数int randoms, cols, rows;for (int twins = 1; twins <= 15; twins++) {//一共15对button,30个 button上的数字randoms = (int) (Math.random() * 25 + 1);//强制转换随机函数产生的数值,并进行必要运算避免“0”for (int alike = 1; alike <= 2; alike++) {cols = (int) (Math.random() * 6 + 1);//随机选取连连看中的单元网格rows = (int) (Math.random() * 5 + 1);while (grid[cols][rows] != 0) {//等于0说明这个空格有了buttoncols = (int) (Math.random() * 6 + 1);rows = (int) (Math.random() * 5 + 1);}this.grid[cols][rows] = randoms;}}}public void fraction() {fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable .getText()) + 100));}public void reload() {int save[] = new int[30];int n = 0, cols, rows;int grid[][] = new int[8][7];for (int i = 0; i <= 6; i++) {for (int j = 0; j <= 5; j++) {if (this.grid[i][j] != 0) {save[n] = this.grid[i][j];//记下每个button的数字n++;//有几个没有消去的button}}}n = n - 1;this.grid = grid;while (n >= 0) {//把没有消去的button重新放一次cols = (int) (Math.random() * 6 + 1);rows = (int) (Math.random() * 5 + 1);while (grid[cols][rows] != 0) {cols = (int) (Math.random() * 6 + 1);rows = (int) (Math.random() * 5 + 1);}this.grid[cols][rows] = save[n];n--;}mainFrame.setVisible(false);pressInformation = false; // 这里一定要将按钮点击信息归为初始init();for (int i = 0; i < 6; i++) {for (int j = 0; j < 5; j++) {if (grid[i + 1][j + 1] == 0)diamondsButton[i][j].setVisible(false);}}}public void estimateEven(int placeX, int placeY, JButton bz) {if (pressInformation == false) {x = placeX;y = placeY;secondMsg = grid[x][y];secondButton = bz;pressInformation = true;} else {x0 = x;y0 = y;fristMsg = secondMsg;firstButton = secondButton;x = placeX;y = placeY;secondMsg = grid[x][y];secondButton = bz;if (fristMsg == secondMsg && secondButton != firstButton) {xiao();}}}public void xiao() { // 相同的情况下能不能消去。