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包。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 数字证书原理,公钥私钥加密原理 – 因为这个太重要了[通俗易懂]

    文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出!1、基础知识这部分内容主要解释一些概念和术语,最好是先理解这…

  • javascript uint8数组和uint32之间的转换

    javascript uint8数组和uint32之间的转换低位在前,高位在后functionintTobytes(value){vara=newUint8Array(4)a[3]=(value>>24)&0xFFa[2]=(value>>16)&0xFFa[1]=(value>>8)&0xFFa[0]=value

  • JSONObject使用方法详解

    JSONObject使用方法详解/***项目名称:tools*项目包名:com.songfayuantools.json*创建时间:2017年7月31日上午11:58:51*创建者:Administrator-宋发元*创建地点:*/packagecom.songfayuantools.json;importcom.songfayuantools.entity.UserInfo;im

  • pycharm怎么添加项目_pycharm 其他

    pycharm怎么添加项目_pycharm 其他pycharm项目添加,在使用pycharm的过程中,有时想要在项目列表中展示多个项目需求第一种情况:原有项目的同级别目录展示另一个项目,如下面的截图操作路径:文件–打开–选择要添加的项目–点附加第二种情况:在原来的项目的主目录下添加拧一个项目,如下面的截图操作路径:文件–设置–项目–项目结构–添加内容根注意:以上两种添加方式:项目的根目录都是第一个项目创建时的根目录,查勘方式,点终端就会显示路径,这个路径也项目的…

  • 从零到熟悉,带你掌握Python len() 函数的使用

    从零到熟悉,带你掌握Python len() 函数的使用摘要:本文为你带来如何找到长度内置数据类型的使用len()使用len()与第三方数据类型提供用于支持len()与用户定义的类。本文分享自华为云社区《在Python中使用len()函数》,

  • 一个人决定离职的征兆有哪些?「建议收藏」

    一个人决定离职的征兆有哪些?

发表回复

您的电子邮箱地址不会被公开。

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