JAVA课程设计猜数字游戏.doc
成绩南阳师范学院物理与电子工程学院JAVA语言程序设计课程设计报告 完 成 人: 班 级:学 号:专 业:摘要猜数字是一款非常经典的脑力游戏,游戏规则简单,但是玩起来难度较大,是消磨时间、锻炼脑力的好选择。这个课程设计可以更加深入的了解字符界面的编程过程,更熟练的掌握Java程序框架的搭建和类的创建格式。在分析阶段,要进行面向对象的需求分析、系统设计、画出相应的需求分析图、系统设计模型图,这些工作更能锻炼逻辑思维,更能培养思考的全面性。一. 概要设计1.1 设计任务与要求 功能要求:该程序用图形界面实现下面功能:用计算机产生一个100以内的随机数,游戏者进行猜数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜对为止。 1.2 选题目的与意义 通过猜数游戏这个课题我可以学到文本框、标签框、按钮、布局、对话框方面的知识和应用,达到设计登陆界面、加入图像显示功能以及设计按钮的目的,让我更加的掌握和理解java面向对象语言的需求分析、系统设计,所以我选择猜数游戏这个课题。1.3程序结构图二.详细设计2.1总体设计分析1随机数的获取:玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。2 输入输出模块:对玩家输入的数字进行判断和提示。如果玩家输入的不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入.。如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。3 判断模块:算出所用时间在玩家猜中时给出其所用时间,系统给出对其水平的判断和是否继续的提示;对玩家要求判断执行。4 自动计数模块:系统根据您猜数字的次数,自动计数.5 结果输出模块:直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统.2.2源程序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.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JTextField;class WindowButton extends JFrame implements ActionListener/* * */private static final long serialVersionUID = 1L;int number;JTextField inputNumber;JLabel feedBack;JButton buttonGetNumber,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.addActionListener(this);buttonGetNumber.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.add(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 FlowLayout();con.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;else if(e.getSource()=buttonEnter)int guess=0;tryguess=Integer.parseInt(inputNumber.getText();if(guess=number)JOptionPane.showMessageDialog(this,"恭喜您,猜对了"); else if(guess>number)JOptionPane.showMessageDialog(this,"您猜的太大了,请继续猜"); inputNumber.setText(null);else if(guess<number)JOptionPane.showMessageDialog(this,"您猜的太小了,请继续猜"); inputNumber.setText(null);catch(NumberFormatException event)JOptionPane.showMessageDialog(this,"请输入数字字符"); public class 猜数字游戏 public static void main(String args)new WindowButton("猜数字小游戏");三. 运行调试与分析讨论3.1 系统测试方案1点击运行程序后,显示出图形界面。2点击“获取随机数”按钮,系统获取到一个随机数。3 玩家输入一个数,点击“确定”按钮。如果玩家输入的数比系统给出的随机数小,系统会提示“您猜的太小了,请继续猜!”。如果玩家输入的数比系统给出的随机数大,系统提示“您猜的太大了,请继续猜!”。4 如果玩家猜对了数,但是所用时间大于十秒,系统会提示“这么久才猜出来,有点笨!”,并且会计算出玩家所用的时间和所猜的次数。如果玩家猜对了数,而且所用时间小于十秒,系统会提示“恭喜您,猜对了!您真棒,智商真高!”,并且会计算出玩家所用的时间和所猜的次数。5 如果玩家想重新再玩一次,点击“获取随机数”按钮即可继续玩下一轮游戏。3.2 运行结果分析开始运行程序时图形界面的显示玩家输入一个数“25”后,点击“确定”,系统提示“您猜的太小了,请继续猜!”。玩家再次输入一个数“70”后,点击“确定”,系统提示“您猜的太大了,请继续猜!”。图9 系统提示图b玩家再次输入一个数“32”,点击“确定”,系统提示“这么久才猜出来,有点笨!您总共猜了3次,您猜数字总共花了73秒”。玩家再重新玩一次,获取随机数后,玩家输入一个随机数“90”,点击“确定”,系统提示“恭喜您,猜对了!您真棒,智商真高!您总共猜了1次,您猜数字总共花了2秒”。四. 总结与体会通过这次的课程设计,使将我从书本上学习到的理论知识用到了实践上,从而进一步巩固和丰富了我所学过的知识,让我更深层次地认识到Java及其强大的功能。同时,做这门课程设计也进一步加强了我的动手能力。为了完成好这次课程设计,我提前做了较多的准备,一边上网查找相关资料,另一方面查阅相关书籍。在这过程中也无形中锻炼了我的思维分析、遇到问题及想方设法通过各种途径解决问题的能力。但是,设计过程中也存在一些问题,本来一开始想给这个记事本程序加上一张背景图片,以及添加字体设置功能,但是由于本人知识浅陋以及各种其他原因,使得这些想法没有实现,这是这次课程设计的一点遗憾。五.参考文献1 张广彬,孟红蕊,张永宝. Java课程设计案例精编M清华大学出版社.2007.2 黄晓东. Java课程设计案例精编(第一版) M中国水利水电出版社 2004.3 美Cay S.Horstmann程峰等译. JAVA2核心技术M机械工业出版社 2003.