请问这段代码要怎么修改?

img

img

请问如果要让运行结果为
请输入第一个数字:5
请输入第二个数字:5
请输入符号+ -* /
*
计算结果:5*5=25
要怎么修改这段代码呀?

该回答引用chatgpt:参考一下

img


package com.test;

import java.util.Scanner;

public class Calculator1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入第一个数字:");
        double num1 = scanner.nextDouble();

        System.out.print("请输入第二个数字:");
        double num2 = scanner.nextDouble();

        System.out.print("请输入符号(+ - * /):");
        char operator = scanner.next().charAt(0);

        double result = 0;
        switch (operator) {
            case '+':
                result = num1 + num2;
                break;
            case '-':
                result = num1 - num2;
                break;
            case '*':
                result = num1 * num2;
                break;
            case '/':
                result = num1 / num2;
                break;
            default:
                System.out.println("无效的符号");
                System.exit(0); // 终止程序
        }


        System.out.println("计算结果:" + num1 + operator + num2 + "=" + result);
    }
}


后面计算这儿转为字符串,不然会报错

img

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7578166
  • 这篇博客你也可以参考下:舒尔特表-5*5表格1-25个数字随机生成且不重复
  • 除此之外, 这篇博客: 计算机组成原理课程设计:复杂模型机中的 5、模型机控制器微程序设计 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 5.1机器指令周期分析
             根据课堂所掌握的知识,我们可以知道机器指令周期可以分为两部分:取指周期和执行周期。在本模型机中不同的机器指令取指周期都是相同的,都需要经过两个CPU周期和P<1>测试。其中,两个CPU周期在数据通路.上先后完成PC->AR,PC+1和MEM->IR的控制和传送操作;在P<1>测试阶段,对机器指令的操作码进行测试,确定指令实现的功能。对于执行周期,每个机器指今执行过程互不相同,所经过的CPU周期数以及在不同周期对应的数据通路操作也不尽相同。设计过程中,我们组根据每- -条机器指令所要实现的功能,设计出其在执行过程中每个CPU周期在数据通路上完成的操作,并绘制出它的微程序流程图。

    5.2模型机硬件译码电路
            和前面的实验相比,复杂模型机实验指令多,寻址方式多,只用一种测试已不能满足设计要求,为此指令译码电路需要重新设计。如图5-3-3所示在IR单元的INS、DEC 中实现。
    在这里插入图片描述

    其中,|[7] ~ |[0]为机器指令的第7位到第0位, T4表示在T4为高电平时有效。本实验用到4个通用寄存器R0~R3,对寄存器的选择是通过指令的第四位,为此还得设计一个寄存器译码电路:
    在这里插入图片描述

    5.3微程序流程图设计
             微程序流程图与方框图表示的指令的指令周期是一致的,一个方框是一个CPU周期,-一个CPU周期对应一条为指令。
    在这里插入图片描述

    5.4微指令格式设计

    ①由上述程序流程图可知,本模型机共用到了60条微指令,所以直接微地址需要6位
    ②控制数据通路开关的为命令共有16种(包括3种P测试),但考虑本机硬件上最大支持24位的微指令,若用直接表示法,微指令字较长, 24位可能不够,因此本模型机采用混合表示法;考虑到后期拓展及同组互斥的性质,将上述的微命令分到A,B,C三个字段中,每个字段长3位。
    ③模型机中有针对运算器的操作,因此需要5位控制参数CN和S3~S0控制运算器的工作方式
    ④模型机中有针对主存及外设的操作,所以需要3位微命令I0/M, WR和RD,分别表示针对外设/主存,读操作或写操作。
    综上所述,我们所设计的模型机的微指令字长应为23位,但综合考虑到后后期功能的拓展以及设计.上的便捷,所以我们决定将字长拓展至24位。
    微指令格式如下所示:

    在这里插入图片描述

    5.5微程序编码设计
    微指令中A、B、C三个字段的编码方案如下表:
    在这里插入图片描述

    其中,M23为补充位,无效,置为0;I0M位置0时为主存,置1时为I0外设;WR和RD置1时有效,置0时无效。
    

    5.6微指令地址及控存存储器设计
             首先确定取值过程中两条微指令在控存中地址,以及第二条指令的直接微地址。其次,在此模型机中,所有机器指令执行过程中第一条微指令所在的微地址由P<1>测试前的默认微地址和机器指令操作码经P<1>测试后决定;其次,执行过程中最后-条微指令的直接地址应该设为第-条取值微指令所在的微地址;然后,设置其余微指令所在的微地址,我们组采用的方法为对于每一道微程序,若不存在P<2>和P<3>测试,则入口地址从低到高从上向下为每条微指令分配微地址,因为下一条微指令的微地址即为上一条微指令的直接微地址,若存在P<2>或P<3>测试,则还应通过译码电路来求其后续微地址;最后,分配完微地址后,将所有微指令写入控存对应的位置中。对于控存的要求,控存的容量至少要等于所有微指令的个数,即控存的位数应大于等于直接微地址的位数。

  • 您还可以看一下 CSDN讲师老师的知识图谱系统架构剖析课程中的 知识图谱系统架构剖析-5小节, 巩固相关知识点