软件工程的课程已经上过有一段时间了,前段时间由于比较忙着考试,所以关于四则运算的代码一直没有实现。同时由于近来一段时间一直在自学java,因为C++虽然也是面向对象,而且可以开发很多软件或者程序,但是我觉得java面向对象的程度可以达到95%左右,而C++可能达到80%,因此由于java更加的面向对象,所以本人在近期一段时间学习了一些关于java的知识,由于学习的不深,占时还不能完全面向对象,我想再过段时间,绝对可以做出和网页上出现的一样的面向对象操作。以下是四则运算在java中的运用。具体运行结果如下所示:

此算法可以进行加减法,乘除法以及混合运算,而且自己可以自主选择算法的类型,另外也可以选择几位数的运算,以及根据自己的需要也可以打印多少道题。具体的代码如下所示:

  1. /**
  2. * 作者:曹家铭
  3. * 日期:2016,3,31
  4. * 功能:自动生成四则运算
  5. */
  6. package com.Caojiaming;
  7.  
  8. import java.util.Scanner;
  9.  
  10. public class Caculator {
  11.  
  12. /**
  13. * @param args
  14. */
  15. public static void main(String[] args) {
  16. // TODO Auto-generated method stub
  17.  
  18. System.out.println("0表示结束运算,1代表加减运算,2代表乘除运算,3代表混合运算,请选择:");
  19. Yunsuan bn=new Yunsuan();
  20. Jiajian an=new Jiajian();
  21. Chengchu cn=new Chengchu();
  22. Hunhe dn=new Hunhe();
  23. Scanner in=new Scanner(System.in);
  24. int L=in.nextInt();
  25.  
  26. if(L==0)
  27. {
  28. bn.Showme();
  29. }
  30. if(L==1)
  31. {
  32. System.out.println("当M=10时表示两位数的加减运算,M=100时表示三位数的加减运算...请选择");
  33. int M=in.nextInt();
  34. an.setM(M);
  35. System.out.println("请输入需要打印多少道题,10的倍数:");
  36. int N=in.nextInt();
  37. an.setN(N);
  38. an.Showme();
  39. }
  40. if(L==2)
  41. {
  42. System.out.println("当M=10时表示两位数的乘除运算,M=100时表示三位数的乘除运算...请选择");
  43. int M=in.nextInt();
  44. cn.setM(M);
  45. System.out.println("请输入需要打印多少道题,10的倍数:");
  46. int N=in.nextInt();
  47. cn.setN(N);
  48. cn.Showme();
  49. }
  50. if(L==3)
  51. {
  52. System.out.println("当M=10时表示两位数的混合运算,M=100时表示三位数的混合运算...请选择");
  53. int M=in.nextInt();
  54. dn.setM(M);
  55. System.out.println("请输入需要打印多少道题,10的倍数:");
  56. int N=in.nextInt();
  57. dn.setN(N);
  58. dn.Showme();
  59. }
  60.  
  61. }
  62.  
  63. }
  64. class Yunsuan
  65. {
  66. public int N;
  67. public int getN() {
  68. return N;
  69. }
  70. public void setN(int n) {
  71. N = n;
  72. }
  73. public int M;
  74. public int getM() {
  75. return M;
  76. }
  77. public void setM(int m) {
  78. M = m;
  79. }
  80. //int a,b;
  81. public void Showme()
  82. {
  83. System.out.println("结束运算。");
  84. }
  85. }
  86. class Jiajian extends Yunsuan
  87. {
  88. public char o[]={'+','-'};
  89. public void Showme()
  90. {
  91. for(int i=0;i<N/10;i++)
  92. {
  93. for(int j=0;j<10;j++)
  94. {
  95. int a=(int)(Math.random()*M)+1;
  96. int b=(int)(Math.random()*M)+1;
  97. int c=(int)(Math.random()*2);
  98. System.out.print(a);
  99. System.out.print(o[c]);
  100. System.out.print(b+"= ");
  101. }
  102. System.out.println();
  103. }
  104. }
  105. }
  106. class Chengchu extends Yunsuan
  107. {
  108. public char p[]={'*','/'};
  109. public void Showme()
  110. {
  111. for(int i=0;i<N/10;i++)
  112. {
  113. for(int j=0;j<10;j++)
  114. {
  115. int a=(int)(Math.random()*M)+1;
  116. int b=(int)(Math.random()*M)+1;
  117. int c=(int)(Math.random()*2);
  118. System.out.print(a);
  119. System.out.print(p[c]);
  120. System.out.print(b+"= ");
  121. }
  122. System.out.println();
  123. }
  124. }
  125. }
  126. class Hunhe extends Yunsuan
  127. {
  128. public char m[]={'+','-','*','/'};
  129. public void Showme()
  130. {
  131. for(int i=0;i<N/10;i++)
  132. {
  133. for(int j=0;j<10;j++)
  134. {
  135. int a=(int)(Math.random()*M)+1;
  136. int b=(int)(Math.random()*M)+1;
  137. int d=(int)(Math.random()*M)+1;
  138. int f=(int)(Math.random()*M)+1;
  139. int c=(int)(Math.random()*4);
  140. int e=(int)(Math.random()*4);
  141. int g=(int)(Math.random()*4);
  142. System.out.print(a);
  143. System.out.print(m[c]);
  144. System.out.print(b);
  145. System.out.print(m[e]);
  146. System.out.print(d);
  147. System.out.print(m[g]);
  148. System.out.print(f+"= ");
  149. }
  150. System.out.println();
  151. }
  152. }
  153. }

四则运算法则在Java中的实现的更多相关文章

  1. java中的23中设计模式(转)

    设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  2. java中的23中设计模式(转载的,有时间一定要熟读)

    设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  3. Java中的GOF23(23中设计模式)--------- 工厂模式(Factory)

    Java中的GOF23(23中设计模式)--------- 工厂模式(Factory) 在给大家介绍工厂模式之前,我想和大家聊聊面向对象的那点事,在这里,引入三个概念. 开闭原则(Open Close ...

  4. 161027、Java 中的 12 大要素及其他因素

    对于许多人来说,"原生云"和"应用程序的12要素"是同义词.本文的目的是说有很多的原生云只坚持了最初的12个因素.在大多数情况下,Java 能胜任这一任务.在本 ...

  5. hadoop中Text类 与 java中String类的区别

    hadoop 中 的Text类与java中的String类感觉上用法是相似的,但两者在编码格式和访问方式上还是有些差别的,要说明这个问题,首先得了解几个概念: 字符集: 是一个系统支持的所有抽象字符的 ...

  6. Java中的大数处理类BigInteger和BigDecimar浅析

    这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math.BigInteger;和import java.math.BigDecimal; BigInteg ...

  7. Java 中的泛型详解-Java编程思想

    Java中的泛型参考了C++的模板,Java的界限是Java泛型的局限. 2.简单泛型 促成泛型出现最引人注目的一个原因就是为了创造容器类. 首先看一个只能持有单个对象的类,这个类可以明确指定其持有的 ...

  8. Java中的线程Thread总结

    首先来看一张图,下面这张图很清晰的说明了线程的状态与Thread中的各个方法之间的关系,很经典的! 在Java中创建线程有两种方法:使用Thread类和使用Runnable接口. 要注意的是Threa ...

  9. Java中byte与16进制字符串的互换原理

    我们都知道Java中的byte是由8个bit组成的,而16进制即16中状态,它是由4个bit来表示的,因为24=16.所以我们可以把一个byte转换成两个用16进制字符,即把高4位和低4位转换成相应的 ...

随机推荐

  1. Python 使用 xlwings 往 excel中写入一列数据的两种方法

    1.准备一个二维列表,然后再range后面不指定任何选项,可以输出该二维列表中数据在一列中显示,如下代码: # -*- coding:utf-8 -*- import xlwings as xw li ...

  2. Appium1.9.1 之 Desired Capabilities 释疑

    服务关键字 Desired Capabilities在启动session的时候是必须提供的. Desired Capabilities本质上是以key value字典的方式存放,客户端将这些键值对发给 ...

  3. 【SDOI2009】Bill的挑战

    Description Sheng bill不仅有惊人的心算能力,还可以轻松地完成各种统计.在昨天的比赛中,你凭借优秀的程序与他打成了平局,这导致Sheng bill极度的不满.于是他再次挑战你.这次 ...

  4. WPFのImage控件souce引入的方法总结

    1.后台代码相对路径添加(若为绝对路径,换UriKind的属性即可) BitmapImage testBitmapImage = new BitmapImage(new Uri(@"\bin ...

  5. AdapterView<T extends Adapter>

    http://zhidao.baidu.com/link?url=mgs08yinrG-rt2864QvlbKmdbyn9rm-KTqm1CODNQpVLnVvAndkJRVJ8mN4_XkNDB2_ ...

  6. oracle11gR2 手工创建基于asm存储的oracle实例

    http://www.cnblogs.com/beanbee/archive/2012/09/22/2697689.html使用命令行手工建立Oracle11gR2数据库 通过命令行建立一个数据库可以 ...

  7. 「JoyOI1080」N皇后

    这是菜鸡的我第一次写这类题目: 题意:就是在N*N的棋盘上,每一行,每一列,所有的对角线都只能有一个棋子. 先分析:假若N=4: 则为其中的一种答案.要输出左右的解,肯定要枚举出所有的解.那么非常自然 ...

  8. MySQL数据备份之mysqldump使用(转)

    文章转自 :https://www.cnblogs.com/jpfss/p/7867668.html mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mys ...

  9. 为什么学习Lua

    目前公认的最快的脚本语言 可以编译调试 与C/C++结合容易 Lua是对性能有要求的必备脚本 C++的缺点: 编译慢,调试难 学习难度大

  10. 崩 oj 1768 最大子矩阵

    描述 已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵.比如,如下4 * 4的矩阵0 -2 -7  0 9  2 -6  2 -4  1 - ...