java课程设计报告计算器

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

一、课程设计目的 (2)

二、课程设计任务 (2)

2.1、设计任务 (2)

2.2、课程设计要求: (2)

2.3、需求分析 (2)

三、开发工具与平台 (3)

3.1、开发工具 (3)

3.2、开发平台 (3)

四、设计思路 (4)

4.1、界面设计 (4)

4.2.1、逻辑设计 (4)

4.2.2、程序流程图 (5)

4.2.3、主要代码展示及说明 (5)

4.3、程序测试 (10)

五、实验小结 (11)

六、附录(程序代码) (12)

一、课程设计目的

1、熟练掌握java面向对象编程。

2、选择合适的数据结构实现需求。

3、熟练使用各种控制结构。

4、GUI组件、事件处理技术。

二、课程设计任务

2.1、设计任务

设计一个简易的计算器,可以进行四则运算:加、减、乘、除等(限于十进制下)

程序要求:

(1)应具有相应的界面,可参考Windows操作系统自带的计算器界面。

(2)操作符号定为:“+”,“-”,“*”,“/”,“+/-”等。(按国际惯例设计)(3)用户通过点击程序界面上按钮,实现数字、运算符的输入操作。

(4)以上部分为必须完成的内容。

选作部分:

(1)具有操作符号“1/x”,“sqrt”(开方),“.”(小数功能)等。

2.2、课程设计要求:

(1)应用自己所学课程知识完成对计算器的基本任务。

(2)查阅相关资料,学习和掌握项目中涉及的新知识,提高自学能力。

(3)通过应用java程序编写计算器来提升自己对简单的图形界面有一定的掌握和了解。

2.3、需求分析

1.设计的计算器可以完成加法、减法、乘法、除法的简单运算。

2.实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。

3.添加小数点功能,用以实现浮点型数据的计算。

4.使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成相关的计算。

三、开发工具与平台

3.1、开发工具

Microsoft Windows 7旗舰版

3.2、开发平台

JDK1.6.0-02 和UE编译器

四、设计思路

4.1、界面设计:(如图3-1)

图3-1

4.2.1、逻辑设计:

(1)根据所设计出来的界面,首先要设计其GUI界面,总体界面有一个文本框,20个按钮,总体界面用BorderLayout布局,文本框放置在

最NORTH,然后0到9以及+,-,*,/等按钮放置到一个面板Panel

中,完成界面设计。

(2)设计计算流程,首先点击数字按钮时,将按钮数值添加到文本框当中,并将该数值保存到一个字符串中,再次点击数字按钮时,将之

前保存的字符串与新的数值拼接起来,再添加到文本框当中,直到

点击运算符按钮时,将文本框当中的字符串保存在一个字符串变量

中,然后重置文本框内容,将运算符号显示到文本框中,随后输入

第二个计算数据时,用同样的办法保存数据,最后通过控制“=”运

算符先将字符串数据转化成双精度类型,然后计算出结果并显示到

文本框当中。

(3)基本运算设计完成以后则开始考虑其他个别功能的实现,例如倒数、清零、退格等功能的实现,清零直接重置文本框内容,退格功能则

采用substring函数截取字符串长度。

4.2.2、程序流程图:

4.2.3、主要代码展示及说明:

总体代码的设计:

程序采用继承windowadapter类,新建Jframe窗体,利用数组来定义JBotton按钮,同时利用数组注册监听,采用4行5列网格布局,完成计算器界面的基本设置,在窗体的正常关闭方面,采用匿名类实现窗体的正常关闭。最后对按钮进行计算分析,分别设定输入数据的A类、运算符控制的Opertion类,退格功能的BackSpace类、计算结果的Result类等等,一步步实现计算器的基本功能!

(1)类A的设计(数据的输入)

class A implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

String a = Jtext.getText();

String s = e.getActionCommand();

if(a.equals("0.")||a.equals("+")||a.equals("-")||a.equals("*")||a.equals("/"))

Jtext.setText(s);

else

{

if(flag2)

{

Jtext.setText(s);

flag2=false;

}

else

Jtext.setText(a+s);

}

}

}

功能解释:程序开始时,程序初始化文本框的内容为“0.”,点击数字按钮,则调用类A,首先用a来获取当前文本框内容,s来获取按钮数值,然后进行判断,若a的值为上述代码的值则输出s的值,再次点击数字按钮时,再次调用A类,此时a的值为上次输入的s值,第一个if语句不满足,执行下个if语句if(flag2),flag2初始值为false,该语句的功能是在执行了“=”号按钮时,防止新的数字按钮的值合并到到已经得出的结果上,例如:12+12=24,此时再点击数字按钮3时,则文本框内容被重置,输出数值3,而不是243,如果if(flag2)不满足,则将字符串a和s合并并输出,得出第一个要计算的数据。

(2)类Opertion的设计:(运算符的控制)

class Opertion implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

cal=e.getActionCommand();

if(flag1==true)

x=Jtext.getText();

Jtext.setText(cal);

flag1=false;

}

相关文档
最新文档