Java课程设计_java课设「建议收藏」

Java课程设计_java课设「建议收藏」1.代码截图:2.设计思路建立GUI界面,系统产生一个随机数(对用户不可见),然后用户输入猜测数,系统根据用户每次输入的数据给出评语(偏大,偏小,猜测成功)。当用户最终猜测成功后,就把当次的随机数和猜测次数放到文件夹内。3.遇到的问题:(1).Guess里面每次产生的随机数m和最终猜测次数n一直不知道怎么传到sava里并保存输出到文件。(2).怎么在生成的guessgame文件里追加内容,而不是每…

大家好,又见面了,我是你们的朋友全栈君。

1.代码截图:

aeaf8c864192795a738a290ad0f88d11.png

2.设计思路

建立GUI界面,系统产生一个随机数(对用户不可见),然后用户输入猜测数,系统根据用户每次输入的数据给出评语(偏大,偏小,猜测成功)。当用户最终猜测成功后,就把当次的随机数和猜测次数放到文件夹内。

3.遇到的问题:

(1).Guess里面每次产生的随机数m和最终猜测次数n一直不知道怎么传到sava里并保存输出到文件。

(2).怎么在生成的guessgame文件里追加内容,而不是每次运行程序后guessgame里的内容就被清空。

第(2)题解决:

52a538d4432597f4b8bc1eaf57bc2367.png

4.代码

(1)猜数

package work1;

import javax.swing.*;

import java.awt.event.;

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);//将随机数和猜测次数保存

System.exit(0);

}

});

}

public void actionPerformed(ActionEvent e) { //游戏内容;

int text = Integer.parseInt(usertext.getText());

if (n != 10) { //10次及以下;

if (text == m) {//当用户猜对时,根据所用次数不同,显示不同内容;

if(n == 1){

JOptionPane.showMessageDialog(null,n+”次就猜对了,你太有才了! 优秀”);

save.saveMandN(m, n);

System.exit(0);

}

else if((n >=2) && (n<=6)){

JOptionPane.showMessageDialog(null,”猜了” + n +”次猜出来了,还不错哦! 良好”);

save.saveMandN(m, n);

System.exit(0);

}

else if(n >6){

JOptionPane.showMessageDialog(null,”猜了” + n +”次才猜出来,尚需努力啊!合格”);

save.saveMandN(m, n);

System.exit(0);

}

}

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);

System.exit(0);

}

}

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:/guessgame.txt”, true); //定义FileWriter变量

fw.write(“随机数: “+m+”\n”+”猜测所用次数 : “+n+”\n”);//写入数据

fw.close();//关闭文件

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

45aa87541ec36b3b57abcd09bfd19102.png

4a00ed80794bab4979656ac5d4b5d851.png

0ef3313d321cd12704e1a3f152532c2a.png

c531c95aab35225a99dc31d6067fddbb.png

5.感受:

GUI界面之前只了解一点点,这次是想到一点就百度或请教别人该怎么实现,所以这次做的很艰难。多数并未了解原理,只是拿来能用就行。

另外我学会了怎么从Eclipse导出可执行jar包。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158027.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mybatis if语句_java中的if else语句

    mybatis if语句_java中的if else语句https://www.cnblogs.com/buzheng/p/12485464.htmlMyBatis中if-elseif-else的使用有表user(id,name,state,sex,age)1、单个if-else使用。  根据状态不同进行查询  <selectid=”selectUserByState”resultType=”com.bz.model.entity.User”>SELECT…

    2022年9月26日
    0
  • Myeclipse SVN插件使用

    Myeclipse SVN插件使用1.安装svn插件网络不好采用link方式安装也方便以后卸载,首先下载site-1.10.9.zip文件从中解压出features与plugins文件夹,复制到E:\MyEclipse\svn(该文件夹位置随意)里面在E:\MyEclipse\MyEclipse10.0\dropins(myeclipse安装位置)下新建文件svn.link,内容是:path=E:\\MyEclipse\\s

    2022年7月20日
    13
  • tomcat启动时乱码(tomcat打开是乱码)

    一、乱码图示二、解决方案1.进入安装路径下的conf文件夹>>找到logging.properties使用记事本打开2.找出图中的代码,将其修改为java.util.logging.ConsoleHandler.encoding=GBK三、验证是否解决问题进入命令行窗口,输入startup.bat运行乱码问题解决…

    2022年4月17日
    38
  • pki的应用包括哪些技术_新技术应用情况

    pki的应用包括哪些技术_新技术应用情况一、概述公钥基础设施(PublicKeyInfrastructure,简称PKI)是目前网络安全建设的基础与核心,是电子商务安全实施的基本保障,因此,对PKI技术的研究和开发成为目前信息安全领域的热点。本文对PKI技术进行了全面的分析和总结,其中包括PKI组成、PKI应用等,并对CA的开发做了简要分析。本文对PKI,特别是CA的开发、应用和普及具有一定的促进作用。二、PKI技术的信任服务…

    2022年10月26日
    0
  • OpenWrt添加启动脚本

    OpenWrt添加启动脚本

    2021年9月11日
    62
  • 起用与启用有什么区别_启用跟起用的区别

    起用与启用有什么区别_启用跟起用的区别"起用"与"启用":"起用"多用于与人有关,如"起用一代新人";"启用"一般用于与物有关,如&quo

    2022年8月2日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号