计算器源代码
同学们,这是我写的一个计算器的源代码,希望可以给你们以启迪。
另外,这仅仅是一个参考,还有很大的提升空间,具体怎么提升请自己仔细思考后把它改写出来,用EMAIL的形式发给我。
一个优秀的程序员就是通过不断的读别人写的经典代码,重写别人的代码(相当于小学时候默写课文那样),然后修改和优化别人的代码,并能凭自己的能力独立(也就是说,不拘泥于别人的思想和套路,而非不跟别人协作,一个懂得协作并非常默契的团队才是程序员发挥自己个人能力的天堂,个人英雄主义是不适用于程序开发的)写出自己的优秀代码。
好了,不罗嗦了,自己研究代码吧:
Calculator.java
//用于算术运算的抽象类,由ComputeCalculator类进行继承
public abstract class Calculator {
public Calculator() {
}
public abstract void add(); //加法方法
public abstract void minus(); //减法方法
public abstract void multiply(); //乘法方法
public abstract void divide(); //除法方法
public abstract void paramPass(char param); //算术符号
}
ComputeCalculator.java
//Calculator的子类,用于实现具体算法
public class ComputeCalculator extends Calculator {
public double ary0; //定义一个变量用于第一个参数
public double ary2; //定义一个变量用于第二个参数
public char ary1; //定义一个变量用于运算符号
public ComputeCalculator(double DoubleNum1, double DoubleNum2) {
this.ary0 = DoubleNum1;
this.ary2 = DoubleNum2;
}
public void paramPass(char param) {
this.ary1 = param;
switch (ary1) { //运算符号合法性的判断,如果合法则进行相应的运算
case '+': //加法运算
add();
break;
case '-': //减法运算
minus();
break;
case '@': //乘法运算
multiply();
break;
case '/': //除法运算
divide();
break;
default: //运算符号不合法
System.out.println("您输入的运算符号错误,请将第二个参数改为+、-、@、/四种运算符号中的一种!");
}
}
public void add() { //加法运算方法
System.out.println("计算结果为:" + ary0 + " + " + ary2 + " = " +
(ary0 + ary2));
}
public void minus() { //减法运算方法
System.out.println("计算结果为:" + ary0 + " - " + ary2 + " = " +
(ary0 - ary2));
}
public void multiply() { //乘法运算方法
System.out.println("计算结果为:" + ary0 + " * " + ary2 + " = " +
(ary0 * ary2));
}
public void divide() { //除法运算方法
if (ary2 == 0) { //除数为0的情况
System.out.println("被除数为0,无法进行计算");
} else { //正常的除法运算
System.out.println("计算结果为:" + ary0 + " / " + ary2 + " = " +
(ary0 / ary2));
}
}
}
Js.java
//main()方法所在类,程序入口点,也是对前面两个类的调用和逻辑处理
public class Js {
public Js() {
}
public static void main(String[] args) {
try { //异常处理
double a; //定义一个变量用于接收第一个参数
double c; //定义一个变量用于接收第三个参数
char ch[] = (args[1]).toCharArray(); //定义一个变量用于接收第二个参数
Calculator compute ; //调用类,以进行计算
a = Double.parseDouble(args[0]); //接收第一个参数,并进行数据类型转换
if (a >= Double.MIN_VALUE && a <= Double.MAX_VALUE) { //判断参数内容是否合法
c = Double.parseDouble(args[2]); //接受第三个参数,并进行数据类型转换
if (c >= Double.MIN_VALUE && c <= Double.MAX_VALUE) { //判断参数内容是否合法
compute = new ComputeCalculator(a, c);
compute.paramPass(ch[0]); //对第二个参数进行合法性判断
} else { //如果第三个参数不合法,则提示错误
System.out.println("您输入的格式错误,请将第三个参数改为阿拉伯数字");
}
} else { //如果第一个参数不合法,则提示错误
System.out.println("您输入的格式错误,请将第一个参数改为阿拉伯数字");
}
} catch (Exception e) { //处理异常
System.out.println("第1个参数应该为0到9之间的阿拉伯数字");
System.out.println("第2个参数应该为运算符号(+、-、@、/)");
System.out.println("第3个参数应该为0到9之间的阿拉伯数字");
System.out.println("请重新输入数据并计算");
}
}
}
同学们,这是我写的一个计算器的源代码,希望可以给你们以启迪。
另外,这仅仅是一个参考,还有很大的提升空间,具体怎么提升请自己仔细思考后把它改写出来,用EMAIL的形式发给我。
一个优秀的程序员就是通过不断的读别人写的经典代码,重写别人的代码(相当于小学时候默写课文那样),然后修改和优化别人的代码,并能凭自己的能力独立(也就是说,不拘泥于别人的思想和套路,而非不跟别人协作,一个懂得协作并非常默契的团队才是程序员发挥自己个人能力的天堂,个人英雄主义是不适用于程序开发的)写出自己的优秀代码。
好了,不罗嗦了,自己研究代码吧:
Calculator.java
//用于算术运算的抽象类,由ComputeCalculator类进行继承
public abstract class Calculator {
public Calculator() {
}
public abstract void add(); //加法方法
public abstract void minus(); //减法方法
public abstract void multiply(); //乘法方法
public abstract void divide(); //除法方法
public abstract void paramPass(char param); //算术符号
}
ComputeCalculator.java
//Calculator的子类,用于实现具体算法
public class ComputeCalculator extends Calculator {
public double ary0; //定义一个变量用于第一个参数
public double ary2; //定义一个变量用于第二个参数
public char ary1; //定义一个变量用于运算符号
public ComputeCalculator(double DoubleNum1, double DoubleNum2) {
this.ary0 = DoubleNum1;
this.ary2 = DoubleNum2;
}
public void paramPass(char param) {
this.ary1 = param;
switch (ary1) { //运算符号合法性的判断,如果合法则进行相应的运算
case '+': //加法运算
add();
break;
case '-': //减法运算
minus();
break;
case '@': //乘法运算
multiply();
break;
case '/': //除法运算
divide();
break;
default: //运算符号不合法
System.out.println("您输入的运算符号错误,请将第二个参数改为+、-、@、/四种运算符号中的一种!");
}
}
public void add() { //加法运算方法
System.out.println("计算结果为:" + ary0 + " + " + ary2 + " = " +
(ary0 + ary2));
}
public void minus() { //减法运算方法
System.out.println("计算结果为:" + ary0 + " - " + ary2 + " = " +
(ary0 - ary2));
}
public void multiply() { //乘法运算方法
System.out.println("计算结果为:" + ary0 + " * " + ary2 + " = " +
(ary0 * ary2));
}
public void divide() { //除法运算方法
if (ary2 == 0) { //除数为0的情况
System.out.println("被除数为0,无法进行计算");
} else { //正常的除法运算
System.out.println("计算结果为:" + ary0 + " / " + ary2 + " = " +
(ary0 / ary2));
}
}
}
Js.java
//main()方法所在类,程序入口点,也是对前面两个类的调用和逻辑处理
public class Js {
public Js() {
}
public static void main(String[] args) {
try { //异常处理
double a; //定义一个变量用于接收第一个参数
double c; //定义一个变量用于接收第三个参数
char ch[] = (args[1]).toCharArray(); //定义一个变量用于接收第二个参数
Calculator compute ; //调用类,以进行计算
a = Double.parseDouble(args[0]); //接收第一个参数,并进行数据类型转换
if (a >= Double.MIN_VALUE && a <= Double.MAX_VALUE) { //判断参数内容是否合法
c = Double.parseDouble(args[2]); //接受第三个参数,并进行数据类型转换
if (c >= Double.MIN_VALUE && c <= Double.MAX_VALUE) { //判断参数内容是否合法
compute = new ComputeCalculator(a, c);
compute.paramPass(ch[0]); //对第二个参数进行合法性判断
} else { //如果第三个参数不合法,则提示错误
System.out.println("您输入的格式错误,请将第三个参数改为阿拉伯数字");
}
} else { //如果第一个参数不合法,则提示错误
System.out.println("您输入的格式错误,请将第一个参数改为阿拉伯数字");
}
} catch (Exception e) { //处理异常
System.out.println("第1个参数应该为0到9之间的阿拉伯数字");
System.out.println("第2个参数应该为运算符号(+、-、@、/)");
System.out.println("第3个参数应该为0到9之间的阿拉伯数字");
System.out.println("请重新输入数据并计算");
}
}
}
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/408/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
评论列表