1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程

2022-11-17,,,,

1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实现。

UML类图

源码:

抽象产品接口

package bao_1;

public interface Act {
public double yunsuan(double a,double b); }

具体产品:

package bao_1;

public class Chen implements Act {

	@Override
public double yunsuan(double a, double b) {
// TODO 自动生成的方法存根
return a*b;
} }
package bao_1;

public class Chu implements Act {
double c = 0; @Override
public double yunsuan(double a, double b) {
// TODO 自动生成的方法存根 if(b==0) {
System.out.println("分母不能为零");
return 0;
}
return a/b;
} }
package bao_1;

public class Jia implements Act {

	@Override
public double yunsuan(double a, double b) {
// TODO 自动生成的方法存根
return a+b;
} }
package bao_1;

public class Jian implements Act {

	@Override
public double yunsuan(double a, double b) {
// TODO 自动生成的方法存根 return a-b;
} }

工厂生产产品:

package bao_1;

public class ActFactory {
public static Act getAct(String type) {
Act act = null;
if (type.equalsIgnoreCase("+")) {
act = new Jia();// 调用加法运算,创建对象
} else if (type.equalsIgnoreCase("-")) {
act = new Jian();// 创建减法对象
} else if (type.equalsIgnoreCase("*")) {
act = new Chen();// 创建乘法对象
} else if (type.equalsIgnoreCase("/")) {
act = new Chu();// 创建除法对象 } else {
System.out.println("您输入的运算符不合法,请输入正确的运算符");
}
return act;
} }

测试

package bao_1;

import java.util.Scanner;

public class Client {

	public static void main(String[] args) {

		while (true) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入运算符:");
String type = scan.next();
System.out.println("请输入第一个数字"); if (scan.hasNext("\\d+(\\.\\d+)?")) { // 正则验证
String bir1 = scan.next("\\d+(\\.\\d+)?"); // 接收数据
double num1 = Double.parseDouble(bir1); // 类型转换
System.out.println("请输入第二个数字");
if (scan.hasNext("\\d+(\\.\\d+)?")) { // 正则验证
String bir2 = scan.next("\\d+(\\.\\d+)?"); // 接收数据
double num2 = Double.parseDouble(bir2); // 类型转换
Act action = ActFactory.getAct(type);// 创建运算符的实例对象
System.out.println(action.yunsuan(num1, num2)); } else {
System.out.println("输入的字符包含非数字,请输入正确的字符");
} } else {
System.out.println("输入的字符包含非数字,请输入正确的字符");
} System.out.println("结束请按-1");
double x = scan.nextInt();
if (x == -1)
break;
} }
}

简单工厂:抽象产品接口,把具体产品的一些特征抽象出来,具体产品继承这个接口,实现具体的方法。工厂生产产品,不是很符合开闭原则。

1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程的相关教程结束。

《1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程.doc》

下载本文的Word格式文档,以方便收藏与打印。