Java课程设计_java课设
1.代码截图:
2.设计思路
建⽴GUI界⾯,系统产⽣⼀个随机数(对⽤户不可见),然后⽤户输⼊猜测数,系统根据⽤户每次输⼊的数据给出评语(偏⼤,偏⼩,猜测成功)。当⽤户最终猜测成功后,就把当次的随机数和猜测次数放到⽂件夹内。
3.遇到的问题:
(1).Guess⾥⾯每次产⽣的随机数m和最终猜测次数n⼀直不知道怎么传到sava⾥并保存输出到⽂件。
(2).怎么在⽣成的guessgame⽂件⾥追加内容,⽽不是每次运⾏程序后guessgame⾥的内容就被清空。
第(2)题解决:
4.代码
(1)猜数
package work1;
import javax.swing.*;
import java.awt.event.;
java生成随机数的方法
import java.util.;
public class Guess extends JFrame implements ActionListener { //Guess继承JFrame类,继承 ActionListener接⼝;
private JLabel userlabel; //私有属性;
private JTextField usertext;
private Random random = new Random(); //调⽤Ramdom()⽅法,获取随机数;
public int m=(int)(Math.random()*100)+1;
public int n = 1;
public Guess() { //猜数游戏函数;
setTitle("GuessGame"); //设置⽂本框标题;
setLocation(300,400);//设置整个⽂本框位置
setSize(400, 200); //设置⽂本框的⼤⼩;
System.out.println("程序随机分配的值为:"+m);
getContentPane().setLayout(null); //设置布局管理器
userlabel = new JLabel("请输⼊⼀个猜想数(1-100) ;
userlabel.setBounds(20, 20, 180, 40);//设置组件(请输⼊⼀个猜想数(1-100))并调整其⼤⼩。由 x(左边坐标) 和 y(上边坐标) 指定左上⾓的新位置,由 width(宽度) 和 height(⾼度)指定新的⼤⼩。
usertext = new JTextField(10);
usertext.setBounds(100, 60, 150, 40); //设置组件(输⼊⽅框)并调整其⼤⼩。由 x(左边坐标) 和 y(上边坐标) 指定左上⾓的新位置,由width(宽度) 和 height(⾼度)指定新的⼤⼩。
getContentPane().add(userlabel); // contentPane 对象,往容器添加上述两个组件;
getContentPane().add(usertext);
usertext.addActionListener(this); // 添加指定的操作侦听器以从此⽂本字段接收操作事件;
setVisible(true); //图形界⾯设置为可见
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
save.saveMandN(m, n);//将随机数和猜测次数保存
}
});
}
public void actionPerformed(ActionEvent e) { //游戏内容;
int text = Integer.Text());
if (n != 10) { //10次及以下;
if (text == m) {//当⽤户猜对时,根据所⽤次数不同,显⽰不同内容;
if(n == 1){
JOptionPane.showMessageDialog(null,n+"次就猜对了,你太有才了! 优秀");
save.saveMandN(m, n);
}
else if((n >=2) && (n<=6)){
JOptionPane.showMessageDialog(null,"猜了" + n +"次猜出来了,还不错哦! 良好");
save.saveMandN(m, n);
}
else if(n >6){
JOptionPane.showMessageDialog(null,"猜了" + n +"次才猜出来,尚需努⼒啊!合格");
save.saveMandN(m, n);
}
}
else if(text<1 || text>100)
JOptionPane.showMessageDialog(null, "输⼊数字⾮法哦!请重新输⼊⼀个1~100之间的数。");
else if (text < m) //对⽤户输⼊数据的提醒;
JOptionPane.showMessageDialog(null, "很遗憾!偏⼩了,请重新再猜。");
else if (text > m)
JOptionPane.showMessageDialog(null, "很遗憾!偏⼤了,请重新再猜。");
n++;
} else{
JOptionPane.showMessageDialog(null, "10次都猜不出来...,猜测次数已⽤尽"); //超过⼗次,⾃动结束游戏;save.saveMandN(m, n);
}
}
public static void main(String[] args) {
Guess mathgame = new Guess();
mathgame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //退出整个程序
}
}
(2)保存数据
package work1;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class save {
public static void saveMandN(int m,int n)
{
try {
FileWriter fw = new FileWriter("d:/", true); //定义FileWriter变量fw.write("随机数: "+m+"\n"+"猜测所⽤次数 : "+n+"\n");//写⼊数据
fw.close();//关闭⽂件
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
5.感受:
GUI界⾯之前只了解⼀点点,这次是想到⼀点就百度或请教别⼈该怎么实现,所以这次做的很艰难。多数并未了解原理,只是拿来能⽤就⾏。
另外我学会了怎么从Eclipse导出可执⾏jar包。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。