Java编写简单计算器的完整实现过程

前言

本文用Javaswing来实现一个简单计算器,主要内容为图形用户界面GUI的实现以及运算表达式核心算法的设计编写。

程序运行环境为Windows10 ,编译环境为MyEclipse 。

一、具体功能:

1、:输入,输出

输入:允许输入带有括号的完整计算式(例 8*(4-95)+5÷2*e-pi)
输出:输出Double类型的结果
输出:整个运算表达式并保存于历史记录中

2、:功能

基本的加,减,乘,除,四则运算
 平方运算
 开方运算
 求余运算

最终界面如下图:

除了常规的数字按钮和运算符,还有两个常数e,pi(π),清空键AC,括号运算符(),平方(x^x)和开方(sqrt)运算符,输入显示框以及历史记录文本框,文本框的垂直滚动条和水平滚动条。

二、主要思想:

1:中缀表达式转为后缀表达式

准备:

①后缀表达式队列:postQueue,用于存储逆波兰表达式(其实不用队列排序直接输出也行)
②操作符栈:opStack,对用户输入的操作符进行处理,用于存储运算符

算法思想:

从左向右依次读取算术表达式的元素X,分以下情况进行不同的处理:
(1)如果X是操作数,直接入队
(2)如果X是运算符,再分以下情况:
a)如果栈为空,直接入栈。
b)如果X==”(“,直接入栈。
c)如果X==”)“,则将栈里的元素逐个出栈,并入队到后缀表达式队列中,直到第一个配对的”(”出栈。(注:“(”和“)”都不 入队)
d)如果是其他操作符(+ - * /),则和栈顶元素进行比较优先级。 如果栈顶元素的优先级大于等于X,则出栈并把栈中弹出的元素入队,直到栈顶元素的优先级小于X或者栈为空。弹出完这些元素后,才将遇到的操作符压入到栈中。
(3)最后将栈中剩余的操作符全部入队。

示意图:

2、计算后缀表达式

准备:

需要用到一个结果栈Res_Stack :用于存放计算的中间过程的值和最终结果

算法思想:

1、从左开始向右遍历后缀表达式的元素。
2、如果取到的元素是操作数,直接入栈Res_Stack,如果是运算符,从栈中弹出2个数进行运算,然后把运算结果入栈
3、当遍历完后缀表达式时,计算结果就保存在栈里了。

示意图:

三、结果测试

分析:

1、可实现基本四则运算及平方、开方、求余运算。
2、运算表达式可显示于输入界面并保存于历史记录栏
3、输入界面和历史记录栏皆可实现不断字自动换行功能以及滚动条功能
4、不足之处:进行平方和开方运算时其保存在历史记录中的表达式会出现两个等号及两个结果。

四、完整源代码(每行代码已附有详细注释)

package software;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

//Calculator类,继承JFrame框架,实现事件监听器接口
public class Calculator extends JFrame implements ActionListener {
  private String[] KEYS = { "7", "8", "9", "AC", "4", "5", "6", "-", "1", "2", "3", "+", "0", "e", "pi", "/", "sqrt",
	  "%", "x*x", "*", "(", ")", ".", "=" };
  private JButton keys[] = new JButton[KEYS.length];
  private JTextArea resultText = new JTextArea("0.0");// 文本域组件TextArea可容纳多行文本;文本框内容初始值设为0.0
  private JTextArea History = new JTextArea();// 历史记录文本框初始值设为空
  private JPanel jp1=new JPanel();
  private JPanel jp2=new JPanel();
  private JScrollPane gdt1=new JScrollPane(resultText);//给输入显示屏文本域新建一个垂直滚动滑条
  private JScrollPane gdt2=new JScrollPane(History);//给历史记录文本域新建一个垂直滚动滑条
  // private JScrollPane gdt3=new JScrollPane(History);//给历史记录文本域新建一个水平滚动滑条
  private JLabel label = new JLabel("历史记录");
  private String b = "";

// 构造方法
  public Calculator() {
	super("Caculator");//“超”关键字,表示调用父类的构造函数,
	resultText.setBounds(20, 18, 255, 115);// 设置文本框大小
	resultText.setAlignmentX(RIGHT_ALIGNMENT);// 文本框内容右对齐
	resultText.setEditable(false);// 文本框不允许修改结果
	History.setBounds(290, 40, 250,370);// 设置文本框大小
	History.setAlignmentX(LEFT_ALIGNMENT);// 文本框内容右对齐
	History.setEditable(false);// 文本框不允许修改结果
	label.setBounds(300, 15, 100, 20);//设置标签位置及大小
	jp2.setBounds(290,40,250,370);//设置面板窗口位置及大小
	jp2.setLayout(new GridLayout());
	jp1.setBounds(20,18,255,115);//设置面板窗口位置及大小
	jp1.setLayout(new GridLayout());
	resultText.setLineWrap(true);// 激活自动换行功能
	resultText.setWrapStyleWord(true);// 激活断行不断字功能
	resultText.setSelectedTextColor(Color.RED);
	History.setLineWrap(true);//自动换行
	History.setWrapStyleWord(true);
	History.setSelectedTextColor(Color.blue);
	gdt1.setViewportView(resultText);//使滚动条显示出来
	gdt2.setViewportView(History);
	gdt1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//设置让垂直滚动条一直显示
	gdt2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//设置让垂直滚动条一直显示
	gdt2.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);//设置让水平滚动条一直显示
	jp1.add(gdt1);//将滚动条添加入面板窗口中
	jp2.add(gdt2);
	this.add(jp1);//将面板添加到总窗体中
	this.add(jp2);//将面板添加到总窗体中
	this.setLayout(null);
	this.add(label);// 新建“历史记录”标签
	//this.add(resultText);// 新建文本框,该语句会添加进去一个新的JTextArea导致带有滚动条的文本无法显示或者发生覆盖
	//this.add(History);// 新建历史记录文本框,该语句会添加进去一个新的JTextArea导致带有滚动条的文本无法显示

	// 放置按钮
	int x = 20, y = 150;
	for (int i = 0; i < KEYS.length; i++)
	{
	  keys[i] = new JButton();
	  keys[i].setText(KEYS[i]);
	  keys[i].setBounds(x, y, 60, 40);
	  if (x < 215) {
		x += 65;
	  } else {
		x = 20;
		y += 45;
	  }
	  this.add(keys[i]);
	}
	for (int i = 0; i < KEYS.length; i++)// 每个按钮都注册事件监听器
	{
	  keys[i].addActionListener(this);
	}
	this.setResizable(false);
	this.setBounds(500, 200, 567, 480);
	this.setDefaultCloseOperation(EXIT_ON_CLOSE);
	this.setVisible(true);
  }

// 事件处理
  public void actionPerformed(ActionEvent e)
  {
	//History.setText(b);//使输入的表达式显示在历史记录文本框中
	String label=e.getActionCommand();//获得事件源的标签
	if(label=="=")//
	{
	  resultText.setText(this.b);
	  History.setText(History.getText()+resultText.getText());
	  if(label=="=")//调用计算方法,得出最终结果
	  {
		String s[]=houzhui(this.b);
		String result=Result(s);
		this.b=result+"";
		//更新文本框,当前结果在字符串b中,并未删除,下一次输入接着此结果以实现连续运算
		resultText.setText(this.b);
		History.setText(History.getText()+"="+resultText.getText()+"\n");
	  }
	}
	 else if(label=="AC")//清空按钮,消除显示屏文本框前面所有的输入和结果
	  {
		this.b="";
		 resultText.setText("0");//更新文本域的显示,显示初始值;
	  }
	else if(label=="sqrt")
	{
	  String n=kfys(this.b);
	  resultText.setText("sqrt"+"("+this.b+")"+"="+n);//使运算表达式显示在输入界面
	  History.setText(History.getText()+"sqrt"+"("+this.b+")"+"=");//获取输入界面的运算表达式并使其显示在历史记录文本框
	  this.b=n;
	}
	else if(label=="x*x")
	{
	  String m=pfys(this.b);
	  resultText.setText(this.b+"^2"+"="+m);//使运算表达式显示在输入界面
	  History.setText(History.getText()+this.b+"^2"+"=");//获取输入界面的运算表达式并使其显示在历史记录文本框
	  this.b=m;
	}
	else if(label=="e"||label=="pi")
	{
	  if(label=="e")
	  {
		String m=String.valueOf(2.71828);//将e的值以字符串的形式传给m
		 this.b=this.b+m;//保留显示m之前输入的运算符或数字字符继续下一步运算
		 resultText.setText(this.b);
		// History.setText(History.getText()+this.b);
	  }
	  if(label=="pi")
	  {
		String m=String.valueOf(3.14159265);
		 this.b=this.b+m;
		 resultText.setText(this.b);
		// History.setText(History.getText()+this.b);
	  }
	}
	else
	{
	  this.b=this.b+label;
	  resultText.setText(this.b);
	 // History.setText(History.getText()+this.b);

	}
	//History.setText(History.getText()+this.b);//使输入的表达式显示在历史记录文本框中
  }
//将中缀表达式转换为后缀表达式
  private String[] houzhui(String str) {
	String s = "";// 用于承接多位数的字符串
	char opStack[] = new char[100];// 静态栈,对用户输入的操作符进行处理,用于存储运算符
	String postQueue[] = new String[100];// 后缀表达式字符串数组,为了将多位数存储为独立的字符串
	int top = -1, j = 0;// 静态指针top,控制变量j
	for (int i = 0; i < str.length(); i++)// 遍历中缀表达式
	// indexof函数,返回字串首次出现的位置;charAt函数返回index位置处的字符;
	{
	  if ("0123456789.".indexOf(str.charAt(i)) >= 0) // 遇到数字字符的情况
	  {
		s = "";// 作为承接字符,每次开始时都要清空
		for (; i < str.length() && "0123456789.".indexOf(str.charAt(i)) >= 0; i++) {
		  s = s + str.charAt(i);
		}
		i--;
		postQueue[j] = s;// 数字字符直接加入后缀表达式
		j++;
	  } else if ("(".indexOf(str.charAt(i)) >= 0) {// 遇到左括号
		top++;
		opStack[top] = str.charAt(i);// 左括号入栈
	  } else if (")".indexOf(str.charAt(i)) >= 0) {// 遇到右括号
		for (;;)// 栈顶元素循环出栈,直到遇到左括号为止
		{
		  if (opStack[top] != '(') {// 栈顶元素不是左括号
			postQueue[j] = opStack[top] + "";// 栈顶元素出栈
			j++;
			top--;
		  } else { // 找到栈顶元素是左括号
			top--;// 删除栈顶左括号
			break;// 循环结束
		  }
		}
	  }
	  if ("*%/".indexOf(str.charAt(i)) >= 0)// 遇到高优先级运算符
	  {
		if (top == -1) {// 若栈为空则直接入栈
		  top++;
		  opStack[top] = str.charAt(i);
		} else {// 栈不为空,把栈中弹出的元素入队,直到栈顶元素优先级小于x或者栈为空
		  if ("*%/".indexOf(opStack[top]) >= 0) {
			// 栈顶元素也为高优先级运算符
			postQueue[j] = opStack[top] + "";// 栈顶元素出栈进入后缀表达式
			j++;
			opStack[top] = str.charAt(i);// 当前运算符入栈
		  } else if ("(".indexOf(opStack[top]) >= 0) {// 栈顶元素为左括号,当前运算符入栈
			top++;
			opStack[top] = str.charAt(i);
		  } else if ("+-".indexOf(str.charAt(i)) >= 0) {// 遇到低优先级运算符
			postQueue[j] = opStack[top] + "";// 栈顶元素出栈进入后最表达式
			j++;
			opStack[top] = str.charAt(i);// 当前元素入栈
		  }
		}
	  } else if ("+-".indexOf(str.charAt(i)) >= 0) {
		if (top == -1) {
		  top++;
		  opStack[top] = str.charAt(i);
		} else {
		  if ("*%/".indexOf(opStack[top]) >= 0) {
			// 栈顶元素也为高优先级运算符
			postQueue[j] = opStack[top] + "";// 栈顶元素出栈进入后缀表达式
			j++;
			opStack[top] = str.charAt(i);// 当前运算符入栈
		  } else if ("(".indexOf(opStack[top]) >= 0) {// 栈顶元素为左括号,当前运算符入栈
			top++;
			opStack[top] = str.charAt(i);
		  } else if ("+-".indexOf(str.charAt(i)) >= 0) {// 遇到低优先级运算符
			postQueue[j] = opStack[top] + "";// 栈顶元素出栈进入后最表达式
			j++;
			opStack[top] = str.charAt(i);// 当前元素入栈
		  }
		}
	  }
	}
	for (; top != -1;) {// 遍历结束后将栈中剩余元素依次出栈进入后缀表达式
	  postQueue[j] = opStack[top] + "";
	  j++;
	  top--;
	}
	return postQueue;
  }

//开方运算方法
  public String kfys(String str) {
	String result = "";
	double a = Double.parseDouble(str), b = 0;
	b = Math.sqrt(a);
	result = String.valueOf(b);//将运算结果转换为string类型并赋给string类型的变量result
	return result;
  }

//平方运算方法
  public String pfys(String str) {
	String result = "";
	double a = Double.parseDouble(str), b = 0;
	b = Math.pow(a, 2);
	result = String.valueOf(b);
	return result;
  }

// 计算后缀表达式,并返回最终结果
  public String Result(String str[]) {
	String Result[] = new String[100];// 顺序存储的栈,数据类型为字符串
	int Top = -1;// 静态指针Top
	for (int i = 0; str[i] != null; i++) {
	  if ("+-*%/".indexOf(str[i]) < 0) {
		Top++;
		Result[Top] = str[i];
	  }
	  if ("+-*%/".indexOf(str[i]) >= 0)// 遇到运算符字符,将栈顶两个元素出栈计算并将结果返回栈顶
	  {
		double x, y, n;
		x = Double.parseDouble(Result[Top]);// 顺序出栈两个数字字符串,并转换为double类型
		Top--;
		y = Double.parseDouble(Result[Top]);
		Top--;
		if ("-".indexOf(str[i]) >= 0) {
		  n = y - x;
		  Top++;
		  Result[Top] = String.valueOf(n);// 将运算结果重新入栈
		}
		if ("+".indexOf(str[i]) >= 0) {
		  n = y + x;
		  Top++;
		  Result[Top] = String.valueOf(n);// 将运算结果重新入栈
		}
		if ("*".indexOf(str[i]) >= 0) {
		  n = y * x;
		  Top++;
		  Result[Top] = String.valueOf(n);// 将运算结果重新入栈

		}
		if ("/".indexOf(str[i]) >= 0)
		{
		  if (x == 0)// 被除数不允许为0
		  {
			String s = "error!";
			return s;
		  } else {
			n = y / x;
			Top++;
			Result[Top] = String.valueOf(n);// 将运算结果重新入栈
		  }
		}
		if ("%".indexOf(str[i]) >= 0)
		{
		  if (x == 0)// 被除数不允许为0
		  {
			String s = "error!";
			return s;
		  } else {
			n = y % x;
			Top++;
			Result[Top] = String.valueOf(n);// 将运算结果重新入栈
		  }
		}

	  }
	}
	return Result[Top];// 返回最终结果
  }

  // 主函数
  public static void main(String[] args) {
	Calculator a = new Calculator();
  }
}

到此这篇关于Java编写简单计算器的文章就介绍到这了,更多相关Java编写简单计算器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java实现简单年龄计算器

    本文实例为大家分享了java实现简单年龄计算器的具体代码,供大家参考,具体内容如下 制作一个如下图年龄计算器 根据题目,我做了一个由Calendar类以及年月日各相减得到的年龄,当然正确的方法不止一个,以下为我的源代码和结果截图: package com.Date; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.uti

  • java 简单的计算器程序实例代码

    java 简单的计算器程序 实现实例: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator { public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { CalculatorFrame frame = new Calculato

  • java简单模仿win10计算器

    本文实例为大家分享了Java实现win10计算器的具体代码,供大家参考,具体内容如下 这个小demo是我上学时的远古代码(嘻嘻嘻),今天整理代码时看到的,看着以前的代码,突然感觉这些是啥?看不懂了都,而且写得也不规范. 运行一下,还是可以的,先截张图 试了一下,bug还是有的,但是可以基本的运算,有兴趣的可以试一下 代码就贴在这里: package com.waking.call; import java.awt.BorderLayout; import java.awt.Dimension;

  • Java实现简单的表达式计算器功能示例

    本文实例讲述了Java实现简单的表达式计算器功能.分享给大家供大家参考,具体如下: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔.没有非法表达式.当一行中只有0时输入结束,相应的结果不要输出. Output 对每个测试用例输出1行,即该表达式的值,精确到小数点后2位. Sample Input 1 + 2 4 + 2 * 5 - 7 / 11 0 S

  • Java Swing实现简单的体重指数(BMI)计算器功能示例

    本文实例讲述了Java Swing实现简单的体重指数(BMI)计算器功能.分享给大家供大家参考,具体如下: BMI,Body Mass Index,身体质量指数,是用体重公斤数 除以 身高米数平方得出的,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准. 而本文通过运用Java Swing实现了一个简单的BMI计算器.虽然现在网页上也有相应的网页应用,但是能够做出这个计算器来,还是有点成就感的,希望自己以后做出更多比这个好的应用. 最终运行效果: 功能:可以选择三个标准:中国.亚洲.WH

  • java实现简单的计算器类实例

    本文实例讲述了java实现简单的计算器类.分享给大家供大家参考.具体如下: package chap; import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text

  • Java对象简单实用案例之计算器实现代码

    对 Java中的对象与属性,方法的使用,简单写了个案例 import java.util.Scanner; class Calculste { int a; //定义两个整数 int b; String option; //定义接收操作符的字符串 public void count(){ //对操作符进行判断 switch(option){ case "+": System.out.println("计算和:"+a+"+"+b+"=&q

  • java图形化界面实现简单混合运算计算器的示例代码

    写了好几天了终于写完了这个四则运算计算器,总代码放在后面 截图如下: 首先是布局都比较简单,最上面的一个框是总的输出框, 第二个框是每次输入的数字显示在框内, 对于每一个按钮都增加监听器, 对于数字按钮:当长度大于8的 或者等号已经出现之后就不再处理按钮事件 if(e.getSource().equals(button1)) { s=numberText.getText(); //数字长度大于8或者等号已出现 if(s.length()>8 || equalbook == 1) { } else

  • 使用jsp调用javabean实现超简单网页计算器示例

    以下是代码: Calculator.java 复制代码 代码如下: package com.amos.model; import java.math.BigDecimal; /** * @ClassName: Calculator * @Description: 计算器 * @author: amosli * @email:amosli@infomorrow.com * @date Mar 20, 2014 1:04:59 AM  */ public class Calculator {    

  • Java编写简单计算器的完整实现过程

    前言 本文用Java的swing来实现一个简单计算器,主要内容为图形用户界面GUI的实现以及运算表达式核心算法的设计编写. 程序运行环境为Windows10 ,编译环境为MyEclipse . 一.具体功能: 1.:输入,输出 输入:允许输入带有括号的完整计算式(例 8*(4-95)+5÷2*e-pi) 输出:输出Double类型的结果 输出:整个运算表达式并保存于历史记录中 2.:功能 基本的加,减,乘,除,四则运算  平方运算  开方运算  求余运算 最终界面如下图: 除了常规的数字按钮和运

  • 使用python编写简单计算器

    ​本文实例为大家分享了python编写简单计算器的具体代码,供大家参考,具体内容如下 做一个计算器,这是我们想要的效果. 1.准备工作 导入time.tqdm.math库 from tqdm import* from time import* from math import* 2.开始 添加一个重复循环并添加变量s while True:     #清屏     print('\033c')     while True:         #如果用法输入的是str类型将打印输入错误,再次循环

  • java编写简单的E-mail发送端程序

    本文实例介绍了简单E-mail发送端程序的Java实现代码,分享给大家供大家参考,具体内容如下 在这个代码中,有几个注意点强调一下: 1.使用 Socket 与 SMTP 邮件服务器取得连接,注意 SMTP 服务器的主机名: 2.使用 data 命令时,若写了 subject (主题)之后,邮件的正文部分必须与 subject 之间有一个空行,即"回车+换行",在代码中则是 \r\n : 3.同样需要将发件人的邮箱用户名.密码进行 BASE64 编码之后再传给 SMTP 服务器: 4.

  • Java实现简单双色球摇奖功能过程解析

    这篇文章主要介绍了Java实现简单双色球摇奖功能过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 双色球:从1-33号球中选取6个红球,且红球不重复 从1-16号球中选取一个篮球 话不多说 上代码~~~ package Javaee; import java.util.Arrays; import java.util.Random; public class DoubleChromosphere { public static void

  • java实现简单计算器

    本文实例为大家分享了java实现简单计算器的具体代码,供大家参考,具体内容如下 思路:定义一个主框架Frame,我们对原设计的草图进行划分,以方便后面的布局 下面我们来对主框架进行划分 如图,我们将主框架划分为四个JPanel,其中panel1,2,3使用GridLayout布局,GridLayout(1,2), 对于panel4我们使用流式布局,主框架设置为FlowLayout, 由此我们把主要的布局设计好了,接下来我们将个标签,文本框,按钮对应按钮按如上设计图依次放入各个panel中,忘了说

  • Java实现简单计算器小程序

    本文实例为大家分享了Java实现简单计算器小程序的具体代码,供大家参考,具体内容如下 这学期没事学了一点点Java,想写个程序练手,因为只学了一点点,所以暂时只能先写个实现简单功能的计算器练练. 由于期末来了,没太多时间,所以暂时就实现最简单的功能. 个人不喜欢用大量文字记叙程序,而且该程序也相对简单,所以直接画了张程序框架图,再配合代码的注释,就明白程序的原理了. 图 计算器程序框架 代码如下: package tst.jframe; import java.awt.EventQueue; i

  • 用Java实现简单计算器功能

    本项目为大家分享了Java实现简单计算器功能的具体代码,供大家参考,具体内容如下 一 项目说明 实训目的:掌握 Java GUI 开发中的布局管理和事件处理机制. 实训要求: (1)要使用 java 的 GUI 设计出计算器界面. (2)通过界面按钮,可以实现整数或浮点数的四则运算,并能将结果显示在界面中. (3)计算可以有小数点,和正负整数的计算. (4)要有清零功能. 二.类设计 中缀表达式的计算solution(String str) 用来中算后缀表达式的值,并将结果返回.准备一个数字栈,

  • 使用JavaScript 编写简单计算器

    本文方法超级简单,思路非常的值得推荐,小伙伴们参考下吧 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />      <title>javascript 简单计算器</title>     <script>     

  • java实现简单登录界面的实战过程

    目录 一.概要 二.分类部分 三.代码实现 总结 一.概要 我们可以用java实现简单的登录界面. 如上效果,直观但也需要一步一步来完成,从界面弹窗的设置,图片的插入,文本框的设置,到登录的按钮,全由代码来实现. 二.分类部分 LoginUI类:实现界面的设置,构建方法,封装好所有的界面开发代码 ①initUI方法 :1.创建窗体对象: 2.设置窗体的相关属性(标题.尺寸.大小.关闭.可视化): 3.创建组件对象,按钮,输入框: 4.界面窗口添加按钮: 5.按钮添加监听器. ②main方法 :用

  • Java编写简单猜数游戏

    Java基础编写猜数游戏,供大家参考,具体内容如下 设计内容及要求 产生一个100以内的随机数,游戏者进行猜数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜对为止.游戏结束后计算出玩家所猜的次数. 目的及意义 通过猜数游戏的设计过程,深刻了解掌握面向对象程序设计语言Java的j核心概念和特性: 了解编程技术知识,会处理异常情况. 掌握Java应用软件的开发环境和开发过程: 灵活选择程序设计思想. 思路 使用Random()函数生成一个100以内的随机数,作为被猜数字. 使用Scanner

随机推荐