java课程设计 计算器实际与实现
- 格式:doc
- 大小:209.00 KB
- 文档页数:13
《面向对象程序设计》
课程设计报告
题目: 计算器设计与实现
专业:
班级:
姓名:
指导教师:
成绩:
xx
201x 年 x 月xx 日
xxxxxx
目录
1 设计内容及要求 (1)
1.1设计内容 (1)
1.2设计任务及具体要求 (1)
2 概要设计 (1)
2.1 功能需求 (1)
2.2 系统的开发运行环境 (2)
3 设计过程 (2)
3.2系统功能模块 (3)
4 设计结果与分析 (4)
4.1功能模块的划分 (4)
4.2功能模块的实现 (4)
小结 (10)
5 参考文献 (11)
1 设计内容及要求
1.1设计内容
该程序是一个图形界面的简单Java计算器,具有良好的界面,使用人员能快捷简单的进行操作。即时准确地获得需要的计算结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,等)
1.2设计任务及具体要求
计算器的设计与实现,使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。在日常生活中经常需要用到计算器,比如科学计算、数字计算、会计业务甚至是日常生活中的一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。
2 概要设计
2.1 功能需求
在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。在该系统中不仅可以进行整数的加、减、乘、除等简单运算,也可以进行浮点数的加、减、乘、除等运算。除此之外还可以进行三角函数、指数、对数、平方等运算。人们应用它可以解决日常生活中的一些运算问题,比如做买卖时进行交易的过程中就可以利用该计算器进行数量、价格以及金额的统计计算。学生也可以利用该计算器进行数学运算,解决简单的三角函数运算。
2.2 系统的开发运行环境
本系统开发平台: Java
本系统集成开发环境:MyEclipse和UltraEdit
本系统运行环境: windows xp
3 设计过程
3.1 系统体系结构设计
本应用程序继承自框架类(Frame),此程序使用Frame布局管理器GridLayout,在Container容器中将单行文本框放在窗体上方区域,将选项、进制转换、帮助等按钮添加到菜单条。包含各种按钮的面板Jpanel采用n行m列的网格布局,然后将数字按钮和运算按钮以及控制按钮添加到面板中。同时注册事件监听器:
计算器总体结构如图1所示:
图1总体分析图
3.2系统功能模块
3.2.1系统功能描述
(1)基本运算,包括对整数和浮点数进行加、减、乘、除以及乘方、三角函数、指数等运算;
(2)进制运算,包括十进制和二进制数、十进制和八进制之间的转换;
(3)其他功能,包括对输入、输出结果的复制、粘贴、剪切和退格、清零等。3.2.2系统流程图
根据系统要求和和系统功能的划分可以得到如图2所示的流程图:
图2程序流程图
3.2.3主要类设计
public class Calculator extends Frame implements ActionListener;WindowListener{}// Calculator是初始化界面,整体布局及响应用户的各种按钮操作
class WinClose
implements
WindowListener
{
public void windowClosing(WindowEvent e)
}// WinClose是设置计算器整个窗体的显示、退出、隐藏的操作。
4 设计结果与分析
4.1功能模块的划分
(1)界面模块:实现计算器的运算界面,该界面表示数据的按钮、表示浮点型的按钮运算符按钮和实现显示运算结果界面以及菜单选项界面。
(2)监听器模块:该模块为每一个按钮设置监听器,当鼠标点击按钮时通过监听器来判断该按钮代表的什么数据、实现什么运算功能、执行什么功能等。(3)动作响应模块:该模块通过按钮事件,进行对应的处理功能其主要是将运算数据,以浮点型类型保存在内存中,然后通过判断运算符类型对数据进行相应的运算,并将运算结果以String类型在结果文本区域中显示,其中包括菜单条里的进制转换和各选项菜单的动作响应。
(4)主函数模块:调用已经设计好的函数,来实现计算器的全部功能。
4.2功能模块的实现
4.2.1计算器界面模块
在界面设计中,应用Frame框架,Frame是独立于浏览器的可运行的窗口,
所以应用Frame框架来设计计算器界面比较合适。在Frame框架的容器分别设置菜单条JmenuBar、文本区JTextField、然后在其中设置了五个面板分别都采用GirdLayout 布局完成数字键盘和运算符的设置。
实现该界面的部分代码如下:
public class Calculator extends Frame implements ActionListener, WindowListener
{ private Container container;
private GridBagLayout layout;
private GridBagLayout layout;
private GridBagConstraints constraints;
private JTextField displayField; //保存+,-,*,/,=命令定义各种组件
JPanel panel1=new JPanel();
panel1.setLayout(new GridLayout(1,5,4,4));//定义为GridLayout布局
this.add(panel1);
button_sqrt=new JButton("sqrt");
button_plusminus=new JButton("+/-");
panel1.add(button_sqrt);//面板的定义和按钮添加
4.2.2监听器模块
通过继承ActionListener和WindonListener接口来实现事件监听。当Buttoin或Item对象上用鼠标进行点击时,将发送一个ActionEvent事件。这个事件ActionEvent事件会被使用addAtionListener()方法注册的所有ActionListener的actionPerformed()方法接收,首先为所有具有时间动作的组件用addAtionListener(this)进行监听,当被监听的组件发生事件时就进行反馈,同时进行动作事件处理。该模块的部分代码如下:
button_plusminus.addActionListener(this);
button_exp.addActionListener(this);
button_CE.addActionListener(this);//各按钮的监听器设置