前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java课程设计_java课设「建议收藏」

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

作者头像
全栈程序员站长
发布2022-09-14 10:36:42
5100
发布2022-09-14 10:36:42
举报
文章被收录于专栏:全栈程序员必看

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

1.代码截图:

aeaf8c864192795a738a290ad0f88d11.png
aeaf8c864192795a738a290ad0f88d11.png

2.设计思路

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

3.遇到的问题:

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

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

第(2)题解决:

52a538d4432597f4b8bc1eaf57bc2367.png
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
45aa87541ec36b3b57abcd09bfd19102.png
4a00ed80794bab4979656ac5d4b5d851.png
4a00ed80794bab4979656ac5d4b5d851.png
0ef3313d321cd12704e1a3f152532c2a.png
0ef3313d321cd12704e1a3f152532c2a.png
c531c95aab35225a99dc31d6067fddbb.png
c531c95aab35225a99dc31d6067fddbb.png

5.感受:

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年7月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档