前言


  之前在学习完Java的方法后,我发现自己可以开始写计算器这个“经典”的项目了,于是我花了一点时间写下了这个计算器的程序,也写下了这篇文章。

  在这里,我需要说明一下,这个程序只是我自己花了很少时间去写下来的代码,具体一点的时间是不到一个小时,更具体的时间不能透露更多了(doge),可能源码不是很好,仅供参考。好了,话不多说,我们开始讲解吧!

思路


  我的思路很简单,就是在运行界面能够实现一些基础的而且是必要的用户交互,而且我们也要满足项目的具体要求,即:

写一个计算器,要求实现加减乘除功能,并且能够循环接受新的数据,并通过用户交互实现

  • 传递需要操作两个数

  • 输出结果

  于是我就作了一个简单的设计思路(可以理解为程序流程图):

源码


  根据上面的简单的设计思路,我写下了这个程序源码:

 1 import java.util.Scanner;     //题目有输入,所以要引入输入
2
3 public class Calculator {
4 // 计算器
5 public static void main(String[] args) {
6 Scanner scanner = new Scanner(System.in);
7 while (true){                           //循环实现循环接受新的数据
8 System.out.println("请输入第一个数:");
9 double a = scanner.nextDouble();
10 System.out.println("请输入第二个数:");
11 double b = scanner.nextDouble();     //使用两个变量记录用户输入的两个数
12 menu(a,b); //进入menu方法进行计算
13 exit();                              //判断用户是否继续传入新的数据进行新的计算
14 int Select2 = scanner.nextInt();
15 switch (Select2){
16 case 1:
17 System.out.println("正在加载...");
18 break;
19 case 2:
20 System.out.println("谢谢您的使用,再见!");
21 scanner.close();                    //关闭输入
22 return;
23 default:
24 System.out.println("输入序号非法,程序即将结束!");
25 scanner.close();return;
26 }
27 }
28 }
29
30 public static void exit(){                       //输出交互相关文字
31 System.out.println("***您需要继续计算吗?***");
32 System.out.println("***1.需要,请继续******");
33 System.out.println("***2.不需要,退出程序***");
34 System.out.println("*请输入对应序号进行选择:*");
35 }
36
37 public static double menu(double a,double b){
38 Scanner scanner = new Scanner(System.in);
39 System.out.println("==========MENU==========");          //输出交互相关文字
40 System.out.println("=======1.计算加法=========");
41 System.out.println("=======2.计算减法=========");
42 System.out.println("=======3.计算乘法=========");
43 System.out.println("=======4.计算除法=========");
44 System.out.println("请输入菜单对应序号进入对应功能:");
45 int Select1 = scanner.nextInt();                    
46 switch (Select1){                            //判断用户交互内容,并执行
47 case 1:
48 jia(a,b);
49 break;
50 case 2:
51 jian(a,b);
52 break;
53 case 3:
54 cheng(a,b);
55 break;
56 case 4:
57 chu(a,b);
58 break;
59 default:
60 System.out.println("输入序号有误,请重新输入!");          //输入不相关字符,让用户重新输入
61 return menu(a,b);
62 }
63 return 0;
64 }
65
66 public static void jia(double a,double b){                  //加法方法
67 System.out.println("计算结果为:"+(a+b));
68 }
69
70 public static void jian(double a,double b){                  //减法方法
71 System.out.println("计算结果为:"+(a-b));
72 }
73
74 public static void cheng(double a,double b){                //乘法方法
75 System.out.println("计算结果为:"+(a*b));
76 }
77
78 public static void chu(double a,double b){                //除法方法
79 System.out.println("计算结果为:"+(a/b));
80 }
81 }

  最后,十分感谢您的阅读,如果您觉得有用,欢迎您关注幽离,幽离后续会更新更多优质内容!

java计算器(简单版)的更多相关文章

  1. Java实现简单版SVM

    Java实现简单版SVM 近期的图像分类工作要用到latent svm,为了更加深入了解svm,自己动手实现一个简单版的.         之所以说是简单版,由于没实用到拉格朗日,对偶,核函数等等.而 ...

  2. 红警大战JAVA简单版

    代码结构: 相关源码: 武器类: 属性:武器,攻击力,子弹数量. 方法:给属性赋值(set属性()方法) 获取属性值(get属性()方法) package 红警大战简单版; public class ...

  3. PAT(B) 1089 狼人杀-简单版(Java)逻辑推理

    题目链接:1089 狼人杀-简单版 (20 point(s)) 题目描述 以下文字摘自<灵机一动·好玩的数学>:"狼人杀"游戏分为狼人.好人两大阵营.在一局" ...

  4. 《仙剑奇侠传柔情版》Java的简单实现(二)

    基于<仙剑奇侠传柔情版>Java的简单实现(二) 2018-12-02 by Kris 需要上次的GameFrame.class中窗口框架承载:https://www.cnblogs.co ...

  5. 基于《仙剑奇侠传柔情版》利用Java的简单实现(一)

    基于<仙剑奇侠传柔情版>利用Java的简单实现(一) 2018-12-01 23:55:36   by Louis  一,新建一个类GameFrame.class,具体代码如下: pack ...

  6. JavaMail简单版实验测试

    前言: 最近由于实现web商城的自动发送邮件功能的需求,故涉猎的邮箱协议的内部原理.现将简单版的Java Mail实例做个代码展示,并附上其中可能出现的bug贴出,方便感兴趣的读者进行测试! 1.载入 ...

  7. 工厂方法模式(Java与Kotlin版)

    前文推送 设计模式 简单工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次 ...

  8. 抽象工厂模式(Java与Kotlin版)

    前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操 ...

  9. 建造者模式(Java与Kotlin版)

    前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) 抽象工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比J ...

  10. 《Effective Java中文版第二版》读书笔记

    说明 这里是阅读<Effective Java中文版第二版>的读书笔记,这里会记录一些个人感觉稍微有些重要的内容,方便以后查阅,可能会因为个人实力原因导致理解有误,若有发现欢迎指出.一些个 ...

随机推荐

  1. 成本计算?(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 成本各种输入以后就该计算了是吗? 其实,计算有我什么事啊,不都是些四则运算吗?Project要是连这都搞不定,他还在地球上 ...

  2. org.apache.jasper.runtime.ELContextImpl cannot be cast to org.apache.jasper.el.ELContextImpl

    org.apache.jasper.runtime.ELContextImpl cannot be cast to org.apache.jasper.el.ELContextImpl错误怎么解决: ...

  3. Android4.4开机动画播放视频

    Android4.4系统启动时,播放自定义bootanimation.zip动画时,由于分辨率为1280x720,bootanimation.zip包也很大,播放太卡,所以将开机动画修改为播放视频.如 ...

  4. SpringBoot中Post请求提交富文本数据量过大参数无法获取的问题

    yml增加配置 # 开发环境配置 server: tomcat: max-http-form-post-size: -1

  5. nim_duilib(12)之menu(2)

    introduction 更多控件用法,请参考 here 和 源码. 本文将介绍menu的选项注册回调 before starting 本文的代码基于上一篇 stage1 回到项目demo_xml, ...

  6. 【LeetCode】520. Detect Capital 解题报告(Java & Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 循环判断三个条件 大写字母个数和位置判断 根据首字符 ...

  7. C. Unfair Poll

    http://codeforces.com/problemset/problem/758/C C. Unfair Poll time limit per test 1 second memory li ...

  8. Monkey工具之fastbot-iOS实践

    Monkey工具之fastbot-iOS实践 背景 目前移动端App上线后 crash 率比较高, 尤其在iOS端.我们需要一款Monkey工具测试App的稳定性,更早的发现crash问题并修复. 去 ...

  9. leetcode日记本

    写在前面: 2019.6开始经过一年的学习,我依然没有学会算法,依然停留在最基本的阶段,面对题目依然一头雾水 但是难不是放弃的理由,根据毛主席的论持久战原理,我决定一天看一点循序渐进,相信总有一天可以 ...

  10. 第二十九个知识点:什么是UF-CMA数字签名的定义?

    第二十九个知识点:什么是UF-CMA数字签名的定义? 第16篇博客给出了DSA,Schnoor和RSA-FDH签名方案的细节,但是签名方案是什么?它应该保证什么样的安全性? 一个签名方案\(S\)是一 ...