java计算器(简单版)
前言
之前在学习完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计算器(简单版)的更多相关文章
- Java实现简单版SVM
Java实现简单版SVM 近期的图像分类工作要用到latent svm,为了更加深入了解svm,自己动手实现一个简单版的. 之所以说是简单版,由于没实用到拉格朗日,对偶,核函数等等.而 ...
- 红警大战JAVA简单版
代码结构: 相关源码: 武器类: 属性:武器,攻击力,子弹数量. 方法:给属性赋值(set属性()方法) 获取属性值(get属性()方法) package 红警大战简单版; public class ...
- PAT(B) 1089 狼人杀-简单版(Java)逻辑推理
题目链接:1089 狼人杀-简单版 (20 point(s)) 题目描述 以下文字摘自<灵机一动·好玩的数学>:"狼人杀"游戏分为狼人.好人两大阵营.在一局" ...
- 《仙剑奇侠传柔情版》Java的简单实现(二)
基于<仙剑奇侠传柔情版>Java的简单实现(二) 2018-12-02 by Kris 需要上次的GameFrame.class中窗口框架承载:https://www.cnblogs.co ...
- 基于《仙剑奇侠传柔情版》利用Java的简单实现(一)
基于<仙剑奇侠传柔情版>利用Java的简单实现(一) 2018-12-01 23:55:36 by Louis 一,新建一个类GameFrame.class,具体代码如下: pack ...
- JavaMail简单版实验测试
前言: 最近由于实现web商城的自动发送邮件功能的需求,故涉猎的邮箱协议的内部原理.现将简单版的Java Mail实例做个代码展示,并附上其中可能出现的bug贴出,方便感兴趣的读者进行测试! 1.载入 ...
- 工厂方法模式(Java与Kotlin版)
前文推送 设计模式 简单工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次 ...
- 抽象工厂模式(Java与Kotlin版)
前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操 ...
- 建造者模式(Java与Kotlin版)
前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) 抽象工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比J ...
- 《Effective Java中文版第二版》读书笔记
说明 这里是阅读<Effective Java中文版第二版>的读书笔记,这里会记录一些个人感觉稍微有些重要的内容,方便以后查阅,可能会因为个人实力原因导致理解有误,若有发现欢迎指出.一些个 ...
随机推荐
- 【论文笔记】 Denoising Implicit Feedback for Recommendation
Denoising Implicit Feedback for Recommendation Authors: 王文杰,冯福利,何向南,聂礼强,蔡达成 WSDM'21 新加坡国立大学,中国科学技术大学 ...
- Django记录操作日志、LogEntry的使用
LogEntry是在后台开发中经常用到的模块,它在admin是默认开启的. 可以使用LogEntry模块记录所有用户的操作记录.一方面可以用来监督,另一方面可以用来做回滚. 1. 使用LogEntry ...
- CF74A Room Leader 题解
Content 一场 CF 比赛有 \(n\) 个人,有 ABCDE 五道题目.在比赛过程中,参赛者还可以随时互相攻击,成功一次加 \(100\) 分,失败一次扣 \(50\)分,已知第 \(i\) ...
- CF433B Kuriyama Mirai's Stones 题解
Content 有一个长度为 \(n\) 的数组 \(a_1,a_2,a_3,...,a_n\).有 \(m\) 次询问,询问有以下两种: \(1~l~r\),求 \(\sum\limits_{i=l ...
- java 输入输出IO流 RandomAccessFile文件的任意文件指针位置地方来读写数据
RandomAccessFile的介绍: RandomAccessFile是Java输入输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出 ...
- wordpress的.htaccess很容易就被挂马啊
wordpress的.htaccess很容易就被挂马啊 修改成这样吧: # BEGIN WordPress<IfModule mod_rewrite.c>RewriteEngine OnR ...
- linux(centos)系统安装activemq
activemq是消息中间件,可以用来 解耦.消峰.异步 需要先安装jdk环境:https://www.cnblogs.com/pxblog/p/10512886.html 1.下载文件 (也可以直接 ...
- vc mfc listctrl使用虚拟列表 虚拟列表用法
note 虚拟列表可有效加载大量数据 需要处理listctrl的 LVN_GETDISPINFO 消息 使用虚拟列表 不能 使用 insert的方法插入数据,而是告诉listctrl 当前要显示多少行 ...
- c/c++一些常用的内置宏
关于 本文演示环境: win10 + VS2017 Note 市面上的编译器五花八门,但是通常都支持: __DATE__,__FILE__,__LINE__ 和 __TIME__ 这个4个宏 VS20 ...
- 【LeetCode】1014. Capacity To Ship Packages Within D Days 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...