某系统提供一个简单计算器,具有简单的加、减、乘、除法的功能,系统可以根据用户的选择实例化相应的操作类。现使用工厂模式设计该系统。

package 工厂模式;

public abstract class Operation {

public abstract void GetResult(double NumberA,double NumberB);

}

package 工厂模式;

public class add extends Operation{

@Override

public void GetResult(double NumberA, double NumberB) {

System.out.println("相加得:"+(NumberA+NumberB));

}

}

package 工厂模式;

public class minus extends Operation{

@Override

public void GetResult(double NumberA, double NumberB) {

System.out.println("相减得:"+(NumberA-NumberB));

}

}

package 工厂模式;

public class multiplication extends Operation{

@Override

public void GetResult(double NumberA, double NumberB) {

System.out.println("相乘得:"+(NumberA*NumberB));

}

}

package 工厂模式;

public class division extends Operation{

@Override

public void GetResult(double NumberA, double NumberB) {

System.out.println("相除得:"+(NumberA/NumberB));

}

}

package 工厂模式;

public abstract class Factory {

public abstract Operation CreateOperation();

}

package 工厂模式;

public class addFactory extends Factory{

@Override

public Operation CreateOperation() {

// TODO Auto-generated method stub

return new add();

}

}

package 工厂模式;

public class minusFactory extends Factory{

@Override

public Operation CreateOperation() {

// TODO Auto-generated method stub

return new minus();

}

}

package 工厂模式;

public class MultiplicationFactory extends Factory{

@Override

public Operation CreateOperation() {

// TODO Auto-generated method stub

return new multiplication();

}

}

package 工厂模式;

public class divisionFactory extends Factory{

@Override

public Operation CreateOperation() {

// TODO Auto-generated method stub

return new division();

}

}

package 工厂模式;

import java.util.Scanner;

public class test {

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

System.out.print("请输入第一个数字:");

double NumberA=sc.nextInt();

System.out.print("请输入第二个数字:");

double NumberB=sc.nextInt();

System.out.println("四则运算结果:");

Operation operationadd=new add();

Factory factoryadd=new addFactory();

operationadd.GetResult(NumberA, NumberB);

factoryadd.CreateOperation();

Operation operationmu=new multiplication();

Factory factorymu=new MultiplicationFactory();

operationmu.GetResult(NumberA, NumberB);

factorymu.CreateOperation();

Operation operationminus=new minus();

Factory factoryminus=new minusFactory();

operationminus.GetResult(NumberA, NumberB);

factoryminus.CreateOperation();

Operation operationd=new division();

Factory factoryd=new divisionFactory();

operationd.GetResult(NumberA, NumberB);

factoryd.CreateOperation();

}

}

目 录 一、课设任务及要求 1 二、需求分析 2 三、设计思路 3 四、详细设计 5 五、运行调试与分析讨论 9 六、设计体会与小结 14 七、参考文献 15 附录 16 中文摘要 Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java 的HotJava浏览器,显示了Java的魅力:跨平台、动感的Web、Internet计算。从此,Ja va被广泛接受并推动了Web的迅速发展,常用的浏览器在均支持Java applet。另一方面,Java技术也不断更新。Java平台由Java虚拟机和Java 应用编程接口构成。Java 应用编程接口为Java应用提供一个独立于操作系统的标准接口,可分为基本部分和扩 展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在 各种系统中运行。 Java分为三个体系J2SE,J2EE,J2ME。 说起计算器,值得我们骄傲的是,最早的计算工具的诞生地是中国。 在17世纪初,西方国家的计算工具才有了较大的发展,英国数学家纳皮尔发明的"纳 皮尔算筹",英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做乘除、 乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带 动了计算器的发展,也为代计算器发展奠定了良好的基础,进而成为了代社会应用 广泛的计算工具。 关键词:java Java平台 计算器 课设任务及要求 1.课设任务 这次课程设计选择的题目为设计一个图形界面(GUI)的计算器应用程序,完成简单 的算术运算。 这次课程设计的基本要求为设计的计算器应用程序可以完成加法减法、乘法、除 法和取余运算,且有小数点、正负号、求倒数、退格和清零功能。拓展功能根据自己的 能力添。 这次课程设计的我选择的拓展功能为开平方根,平方,立方,判断素数,求lo g的功能。 本程序主要练习使用布局管理器设计一个计算器的界面,并练习使用事件监听器处 理数据的输入,并完成相关的计算。数据和运算符号的存储采用动态链表这种数据结构 实。 这次课程设计选择Java运行环境为: Windows XP sp3 +Eclipse+JDK 1.6 二、需求分析 1.系统功能需求分析 计算器是一个普遍应用的工具,能够解决许多人所无法计算的数据,节省大量 宝贵的时间。 2.系统功能分析 为了实计算器系统功能.主要有二个功能模块:输入、输出。 3.系统设计原则 基于计算器系统具有适用性广、操作简便等特点.本系统预计要达到以下几个目标 : (1)、满足以上的功能要求; (2)、能够运行在常见的计算机及其配置上; 三、设计思路 1.关于布局问题 本次课程设计程序继承来自框架(Frame),总体布局上选用布局管理器BorderLayout: (1)将单行文本框入到"North"区域 (2)将面板panel入到"Center"区域,同时panel包含了各种数字按钮和符号按钮。 面板panel采用Girdlayout布局,选用5行*5列,将各种按钮添到面板panel,并增按 钮监听事件。 布局完成后的效果图如下: 2.关于数据存储问题 计算器完成的是一个数学表达式,本次课程设计我选用的是使用链表(Linkedlist )来存储数字和运算符号。程序运行后,输入的所有数字及运算符号都全部存储在链表中 ,待最后运算时,再一一求出来进行计算。 3.关于事件监听的处理问题 计算器的各种按钮都需要一个对象来进行监视,以便对发生的事件做出处理。计算器 的各种按钮通过调用相应的方法将某个对象作为自己的监视器。 例如计算器中的数字按钮,其方法为: AddActionListener(监视器); 对于获取了监视器的数字按钮,通过相应操作就会导致事件的发生,并通知监视器 ,监视器就会做出相应的处理。 四、详细设计 1.计算器系统主要功能模块 (1)、系统主要模块实功能 系统输入模块实数字以及计算符号输入的功能,输出模块的结果在文本框中实显 示。 (2)、系统输入窗体实的效果 系统输入窗体设计效果如图所示: 上图为按数字键1234567890后,在文本框中的显示 (3)、系统主要模块功能描述 功能描述: 菜单项"计算器"主要服务于使用者.它包含了"输入"、"输出"、 两个功能。 输入功能:当使用者将数字输入后,会出数字的显示;当使用者将计算符号输入时 候会有计算符号的录入。 输出功能:点击"输出"选项后.可实计算的结果。 2.系统的实 (1) 系统源文件之间的关系 计算器系统共有3个java源文件:Calcul
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值