四则运算法则在Java中的实现
软件工程的课程已经上过有一段时间了,前段时间由于比较忙着考试,所以关于四则运算的代码一直没有实现。同时由于近来一段时间一直在自学java,因为C++虽然也是面向对象,而且可以开发很多软件或者程序,但是我觉得java面向对象的程度可以达到95%左右,而C++可能达到80%,因此由于java更加的面向对象,所以本人在近期一段时间学习了一些关于java的知识,由于学习的不深,占时还不能完全面向对象,我想再过段时间,绝对可以做出和网页上出现的一样的面向对象操作。以下是四则运算在java中的运用。具体运行结果如下所示:
此算法可以进行加减法,乘除法以及混合运算,而且自己可以自主选择算法的类型,另外也可以选择几位数的运算,以及根据自己的需要也可以打印多少道题。具体的代码如下所示:
/**
* 作者:曹家铭
* 日期:2016,3,31
* 功能:自动生成四则运算
*/
package com.Caojiaming; import java.util.Scanner; public class Caculator { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub System.out.println("0表示结束运算,1代表加减运算,2代表乘除运算,3代表混合运算,请选择:");
Yunsuan bn=new Yunsuan();
Jiajian an=new Jiajian();
Chengchu cn=new Chengchu();
Hunhe dn=new Hunhe();
Scanner in=new Scanner(System.in);
int L=in.nextInt(); if(L==0)
{
bn.Showme();
}
if(L==1)
{
System.out.println("当M=10时表示两位数的加减运算,M=100时表示三位数的加减运算...请选择");
int M=in.nextInt();
an.setM(M);
System.out.println("请输入需要打印多少道题,10的倍数:");
int N=in.nextInt();
an.setN(N);
an.Showme();
}
if(L==2)
{
System.out.println("当M=10时表示两位数的乘除运算,M=100时表示三位数的乘除运算...请选择");
int M=in.nextInt();
cn.setM(M);
System.out.println("请输入需要打印多少道题,10的倍数:");
int N=in.nextInt();
cn.setN(N);
cn.Showme();
}
if(L==3)
{
System.out.println("当M=10时表示两位数的混合运算,M=100时表示三位数的混合运算...请选择");
int M=in.nextInt();
dn.setM(M);
System.out.println("请输入需要打印多少道题,10的倍数:");
int N=in.nextInt();
dn.setN(N);
dn.Showme();
} } }
class Yunsuan
{
public int N;
public int getN() {
return N;
}
public void setN(int n) {
N = n;
}
public int M;
public int getM() {
return M;
}
public void setM(int m) {
M = m;
}
//int a,b;
public void Showme()
{
System.out.println("结束运算。");
}
}
class Jiajian extends Yunsuan
{
public char o[]={'+','-'};
public void Showme()
{
for(int i=0;i<N/10;i++)
{
for(int j=0;j<10;j++)
{
int a=(int)(Math.random()*M)+1;
int b=(int)(Math.random()*M)+1;
int c=(int)(Math.random()*2);
System.out.print(a);
System.out.print(o[c]);
System.out.print(b+"= ");
}
System.out.println();
}
}
}
class Chengchu extends Yunsuan
{
public char p[]={'*','/'};
public void Showme()
{
for(int i=0;i<N/10;i++)
{
for(int j=0;j<10;j++)
{
int a=(int)(Math.random()*M)+1;
int b=(int)(Math.random()*M)+1;
int c=(int)(Math.random()*2);
System.out.print(a);
System.out.print(p[c]);
System.out.print(b+"= ");
}
System.out.println();
}
}
}
class Hunhe extends Yunsuan
{
public char m[]={'+','-','*','/'};
public void Showme()
{
for(int i=0;i<N/10;i++)
{
for(int j=0;j<10;j++)
{
int a=(int)(Math.random()*M)+1;
int b=(int)(Math.random()*M)+1;
int d=(int)(Math.random()*M)+1;
int f=(int)(Math.random()*M)+1;
int c=(int)(Math.random()*4);
int e=(int)(Math.random()*4);
int g=(int)(Math.random()*4);
System.out.print(a);
System.out.print(m[c]);
System.out.print(b);
System.out.print(m[e]);
System.out.print(d);
System.out.print(m[g]);
System.out.print(f+"= ");
}
System.out.println();
}
}
}
四则运算法则在Java中的实现的更多相关文章
- java中的23中设计模式(转)
设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- java中的23中设计模式(转载的,有时间一定要熟读)
设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- Java中的GOF23(23中设计模式)--------- 工厂模式(Factory)
Java中的GOF23(23中设计模式)--------- 工厂模式(Factory) 在给大家介绍工厂模式之前,我想和大家聊聊面向对象的那点事,在这里,引入三个概念. 开闭原则(Open Close ...
- 161027、Java 中的 12 大要素及其他因素
对于许多人来说,"原生云"和"应用程序的12要素"是同义词.本文的目的是说有很多的原生云只坚持了最初的12个因素.在大多数情况下,Java 能胜任这一任务.在本 ...
- hadoop中Text类 与 java中String类的区别
hadoop 中 的Text类与java中的String类感觉上用法是相似的,但两者在编码格式和访问方式上还是有些差别的,要说明这个问题,首先得了解几个概念: 字符集: 是一个系统支持的所有抽象字符的 ...
- Java中的大数处理类BigInteger和BigDecimar浅析
这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math.BigInteger;和import java.math.BigDecimal; BigInteg ...
- Java 中的泛型详解-Java编程思想
Java中的泛型参考了C++的模板,Java的界限是Java泛型的局限. 2.简单泛型 促成泛型出现最引人注目的一个原因就是为了创造容器类. 首先看一个只能持有单个对象的类,这个类可以明确指定其持有的 ...
- Java中的线程Thread总结
首先来看一张图,下面这张图很清晰的说明了线程的状态与Thread中的各个方法之间的关系,很经典的! 在Java中创建线程有两种方法:使用Thread类和使用Runnable接口. 要注意的是Threa ...
- Java中byte与16进制字符串的互换原理
我们都知道Java中的byte是由8个bit组成的,而16进制即16中状态,它是由4个bit来表示的,因为24=16.所以我们可以把一个byte转换成两个用16进制字符,即把高4位和低4位转换成相应的 ...
随机推荐
- Unity RGBA16 + Dither
游戏开发中有些场合,ETC或者说PVRTC压缩质量不满足的情况下,RGBA32(原图)对美术而言肯定可以满足的,但是RGBA32是不管是对内存占用内存太厉害. RGBA16/RGB16会减少内存的占用 ...
- Oracle11g链接提示未“在本地计算机注册“OraOLEDB.Oracle”解决方法
当 用,Provider=OraOLEDB.Oracle方式访问ORACLE11g数据库.出现 未在本地计算机注册“OraOLEDB.Oracle”提供程序提示.解决方案如下: 客户端环境:Win7 ...
- 解决MySQL Workbench导出乱码问题
1.导出数据 2.默认CSV格式 3.乱码 4.解决 文件->另存为,会发现编码为UTF-8,正是MySQL表的编码方式.我们选择编码方式为ANSI,保存类型为所有,覆盖源文件
- [USACO09JAN]安全出行Safe Travel
题目 什么神仙题啊,我怎么只会\(dsu\)啊 我们考虑一个非常暴力的操作,我们利用\(dsu\ on \ tree\)把一棵子树内部的非树边都搞出来,用一个堆来存储 我们从堆顶开始暴力所有的边,如果 ...
- go标准库的学习-crypto/aes
参考:https://studygolang.com/pkgdoc 导入方式: import "crypto/aes" aes包实现了AES加密算法,参见U.S. Federal ...
- 【总文档】rac增加新节点的方法步骤 How to Add Node/Instance or Remove Node/Instance in 10gR2, 11gR1, 11gR2 and 12c Oracle Clusterware and RAC
[总文档]How to Add Node/Instance or Remove Node/Instance in 10gR2, 11gR1, 11gR2 and 12c Oracle Clusterw ...
- 浏览器访问svn
文章转自https://www.cnblogs.com/ayanmw/archive/2011/12/19/2294054.html 你看到的这个文章来自于http://www.cnblogs.com ...
- SQL Server如何更改系统用户dbo的所属账号
在SQL Server的每个数据库中都有一个dbo系统用户,dbo是系统默认创建的,无法被删除,如下: dbo在内部其实是绑定了一个SQL Server账号的,可以通过其属性查看Login name, ...
- Dubbo与Zookeeper在Window上的安装与简单使用
一:Dubbo是什么?有什么用途?? 使用Dubbo可以将应用分布到多个服务器上,当有访问时,Dubbo有帮你管理自动将请求分配给合适得到服务器去执行,即建立多个生产者,建立多个消费者,自动匹配生产者 ...
- Luogu4547 THUWC2017 随机二分图 概率、状压DP
传送门 考虑如果只有$0$组边要怎么做.因为$N \leq 15$,考虑状压$DP$.设$f_i$表示当前的匹配情况为$i$时的概率($i$中$2^0$到$2^{N-1}$表示左半边的匹配情况,$2^ ...