1、 10信计2011-2012 (二)Java程序设计课程设计设计题目 猜数字游戏 设计时间 2012.6.18 至 2012.6.24 学生姓名 李越 学生学号 20100406220 所在班级 10 信计(2) 指导教师 刘 风 华 徐州工程学院数学与物理科学学院成 绩目 录1 设计任务与要求 21.1 设计任务与要求 21.2 选题目的与意义 22 系统总体设计 22.1 总体设计分析 22.2 程序结构 33 测试运行 33.1 源程序 33.2 运行结果84 课程设计总结 9参考文献 1011、设计任务与要求1.1 设计任务与要求功能要求:该程序用图形界面实现下面功能:用计算机产生一个
2、 100 以内的随机数,游戏者进行猜数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜对为止。具体要求:1) 欢迎界面:通过这里提供的选项(或按钮),进入游戏界面。2) 游戏界面提供“得到一个随机数”按钮,系统获取到随机数,游戏者输入自己的猜测结果,通过按“确认”按钮完成输入。每次提示输入猜测结果时,给出猜测的准确度提示。3) 按“得到一个随机数”按钮,继续游戏。1.2 选题目的与意义通过猜数游戏这个课题我可以学到文本框、标签框、按钮、布局、对话框方面的知识和应用,达到设计登陆界面、加入图像显示功能以及设计按钮的目的,让我更加的掌握和理解 java 面向对象语言的需求分析、系统设计,所以
3、我选择猜数游戏这个课题。2、系统设计2.1 总体设计分析1 随机数的获取:玩家输入一个数字,数字的范围在 1-100 之间,系统获取随机数。2 输入输出模块:对玩家输入的数字进行判断和提示。如果玩家输入的不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入.。如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。3 结果输出模块:直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统.22.2 程序结构点击“得到一个随机数”按
4、钮,系统获取到一个随机数。 玩家输入一个数,如果玩家输入的数比系统给出的随机数小,系统会提示“猜小了”。如果玩家输入的数比系统给出的随机数大,系统提示“猜大了”。 如果玩家猜对了数,系统会提示“猜对了”。3、测试运行3.1 源程序import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.Box;import javax.swi
5、ng.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JTextField;3class WindowButton extends JFrame implements ActionListener/* */private static final long serialVersionUID = 1L;int number;JTextField inputNumber;JLabel feedBack;JButton butto
6、nGetNumber,buttonEnter;WindowButton(String s)super(“猜数字小游戏“);buttonGetNumber=new JButton(“得到一个随机数“);feedBack=new JLabel(“无反馈信息“,JLabel.CENTER);feedBack.setBackground(Color.green);inputNumber=new JTextField(“0“,5);buttonEnter=new JButton(“确定“);buttonEnter.addActionListener(this);buttonGetNumber.addAc
7、tionListener(this);4buttonGetNumber.addActionListener(this);Box boxH1=Box.createHorizontalBox();boxH1.add(new JLabel(“获取 1-100 之间的随机数:“);boxH1.add(buttonGetNumber);Box boxH2=Box.createHorizontalBox();boxH2.add(new JLabel(“输入您的猜测: “);boxH2.add(inputNumber);Box boxH3=Box.createHorizontalBox();boxH3.ad
8、d(new JLabel(“单击确定按钮: “);boxH3.add(buttonEnter);Box boxH4=Box.createHorizontalBox();boxH4.add(new JLabel(“反馈信息: “);boxH4.add(feedBack);Box baseBox=Box.createVerticalBox();baseBox.add(boxH1);baseBox.add(boxH2);baseBox.add(boxH3);baseBox.add(boxH4);Container con=getContentPane();con.setLayout(new Flow
9、Layout();5con.add(baseBox);con.validate();setBounds(120,125,279,200);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100,100,150,150);setVisible(true);validate();public void actionPerformed(ActionEvent e)if(e.getSource()=buttonGetNumber)number=(int)(Math.random()*100)+1;els
10、e if(e.getSource()=buttonEnter)int guess=0;6tryguess=Integer.parseInt(inputNumber.getText();if(guess=number)JOptionPane.showMessageDialog(this,“猜对了“); else if(guessnumber)JOptionPane.showMessageDialog(this,“猜大了“); inputNumber.setText(null);else if(guessnumber)JOptionPane.showMessageDialog(this,“猜小了“
11、); inputNumber.setText(null);catch(NumberFormatException event)JOptionPane.showMessageDialog(this,“请输入数字字符“); 7public class 猜数字游戏 public static void main(String args)new WindowButton(“猜数字小游戏“);3.2 运行结果84、课程设计总结猜数字是一款非常经典的脑力游戏,游戏规则简单,但是玩起来难度较大,是消磨时间、锻炼脑力的好选择。通过选择猜数字这个游戏,可以让我掌握Java 中的包和类,并且可以灵活使用 MyElipse 软件。同时更加深入的了解字符界面的编程过程。使我们更熟练掌握 Java 程序框架的搭建和类的创建格式。在分析阶段,要进行面向对象的需求分析、系统设计等,这些工作更能锻炼我们的逻辑思维,更能培养我思考的全面性。让我学会了多角度思考问题,对我以后的编程奠定了更好的基础。