计算器java程序设计报告总体设计,java程序设计实验报告-计算器

《java程序设计实验报告-计算器》由会员分享,可在线阅读,更多相关《java程序设计实验报告-计算器(18页珍藏版)》请在金锄头文库上搜索。

1、 Java 程序设计实验报告程序设计实验报告题 目 计算器 姓 名 学 号 学 院 软件学院 专 业 软件工程 年 级 2009 级 指导教师 2010 年 4 月 9 日一、实验目的一、实验目的1、熟练掌握 java 面向对象编程。2、选择合适的数据结构实现需求。3、熟练使用各种控制结构。4、掌握 GUI 组件、事件处理技术。二、实验任务二、实验任务1、设计一个简易的计算器,可以进行四则运算:加、减、乘、除等(限于 十进制下) 程序要求: (1)应具有相应的界面,可参考下图进行设计:图示 1 图示 2(2)操作符号定为:“+” , “-” , “*” , “/” , “(”,“)”等。 (按。

2、国际惯例 设计) (3)用户通过点击面板中的各种组件输入的表达式,应在上方文本框中显 示。 (4)当用户点击“=”时,文本框中之前的内容应清空,直接显示表达式 运算结果。例如:输入表达式“3+2*(8-5) ”之后按“=” ,显示结果“9” 。(5)具有菜单栏,内有相应的编辑“复制” 、 “粘贴”等菜单,提供相应的 功能。 (6)以上部分为必须完成的内容。 2、选作功能,可参考 windows 系统附带计算器:(1)具有相应的科学计算功能。例如“图示 2”中的各种科学计算功能。三、开发工具与平台三、开发工具与平台1.开发工具开发工具:Eclipse 默认是一个和 Jbuilder 类似的 Ja。

3、va 开发工具,但它不仅仅 只 是 Java 开发工具,只要装上相应的插件,eclipse 也可作为其它语言的开发 工具。如 C/C+插件(CDT)。 2.开发平台:开发平台:JDK1.5四、设计思路四、设计思路1.界面设计界面设计 (1)制作一个简单的面板 JFrame,在其上面添加构造界面所需的各种组件 其构造方法为:calculate() super(); this.setBounds(10, 10, 300, 250); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setResizable(false); this。

4、.setTitle(“计算器“);init();/创建菜单及各种组件(如按钮,文本框等)getContentPane().setLayout(new BorderLayout(3,3); getContentPane().add(panelCenter,BorderLayout.CENTER); getContentPane().add(panelNorth,BorderLayout.NORTH);(2)实现构造菜单及文本框等组件的函数 init(),如下实现: Public void Init() /菜单项的构造形成;editor.add(copy);editor.addSeparator(。

5、);editor.add(paste);editor.setMnemonic(E);look.setMnemonic(V);help.setMnemonic(H);copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_M ASK);paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_M ASK);help.add(about);bar.add(editor);bar.add(look);bar.add(hel。

6、p);setJMenuBar(bar);/将菜单添加到 JFrame;/* 接下来是文本或结果显示区及 Backspace、功能键(CE、C)和的添加, 采用 GridBagLayout 布局方式,将它们放在北部 panelNorth 面板。其次,是数字键及其他功能键的的使用,我这里采用的是网格布局, setLayout(new GridLayout(4,6,5,5);将它们放在主面板中心区域。 这里给出 网格包布布局的两个重要方法,由于代码段较长,故将其他的代码放在后面附 录;private void makeShow(GridBagLayout gridBag, GridBagConstr。

7、aints constraints, Component component) gridBag.setConstraints(component, constraints);/ 网格包布布局;panelNorth2.add(component); private void addButton(GridBagLayout gridBag,/网格包布布局重要方法; GridBagConstraints constraints, Component component) gridBag.setConstraints(component, constraints); panelNorth1.add(c。

8、omponent); 总体界面如下:2.逻辑设计逻辑设计为了能够得到我们想要的操作,比如让那些数字参与运算,做什么运算等 等,我们就需要为每个按钮添加响应事件,通过响应事件来完成我们预期的结 果。以下我们来分析下重要的事件是如何响应的:.String str = e.getActionCommand();/ TODO Auto-generated method stub if(str.equals(“Backspace“)/点击 Backspace handerBackspace(); else if(str.equals(“CE“)/点击了CE的功能是清除当前显示的数值 bool = fal。

9、se; show.setText(“0“); else if(str.equals(“C“)/点击了 C 的功能是清零 copyText=“; Div = 0.0; CalculateResult =“; bool = false; show.setText(“0“); else if(str.equals(“MC“)/MC 清楚存储器内容 handerMC(); else if(str.equals(“MR“)/MR 将存于存储器的值显示在文本框中 handerMR(); else if(str.equals(“MS“)/MS 将显示框得文字存于存储器 handerMS(); else if。

10、(str.equals(“M+“)/M+将显示框的数与存储器中的数相加并进行 存储handerM(); else if(“.“.indexOf(str)=0)/按下的是数字键或者小数点正负号 handerCenter(str); else if(str.equals(“%“)/将当前显示框里的数字用百分比表示( x/100) String current = show.getText(); double a = 0; if(!current.isEmpty()a = Double.parseDouble(current);Double result =(Double) a/100;String。

11、 s4 = result.toString();if(!isInt(s4)show.setText(s4); else show.setText(s4.substring(0,s4.indexOf(“.“);bool = true; else handerOperation(str);/响应的是运算符;处理运算符操作 3.程序测试程序测试程序测试过程中无较大 BUG,基本上轻松搞定。五、实验总结五、实验总结这是我第一次正式的 java 程序设计实验,感觉能够把学到的东西用到实际 中是件非常有趣的事,更重要的是让我们真正明白了学贵致用的道理。由于时间有限,本程序未能做到科学计算器,同时在这里也感。

12、谢老师的指导 和同学的帮助。6 6、附录附录public class calculate extends JFrame implements ActionListener /* param args*/ private JMenuBar bar = new JMenuBar(); private JMenu editor =new JMenu(“编辑(E)“); private JMenuItem copy =new JMenuItem(“复制“); private JMenuItem paste =new JMenuItem(“粘贴“); private JMenu look = new J。

13、Menu(“查看(V)“); private JMenu help = new JMenu(“帮助(H)“); private JMenuItem about = new JMenuItem(“关于“); private String copyText ; private JPanel panelWest= new JPanel(); private JPanel panelCenter = new JPanel();/放 Number 键 private JPanel panelNorth = new JPanel();/放功能键 1 与文本框 private JPanel panelNor。

14、th1 = new JPanel(); private JPanel panelNorth2 = new JPanel();/放显示框private JPanel panelEast = new JPanel();/放运算键;private String strNorth = new String“Backspace“,“CE“,“C“;/ 功能键 1 private String strCenter = new String“7“,“8“,“9“,“4“,“5“,“6“,“1“,“2“,“3“,“0“,“+/-“,“.“; private String strEast = new Strin。

15、g“/“,“sqrt“,“*“,“%“,“- “,“1/x“,“+“,“=“; private StringstrWest = new String“MC“,“MR“,“MS“,“M+“;private JButton buttonCenter = new JButtonstrCenter.length; private JButton buttonEast= new JButtonstrEast.length; private JButton buttonNorth = new JButtonstrNorth.length; private JButton buttonWest = new JButtonstrWest.length;private String ch=new String();/保存当前运算符 private Double Div;/保存中间运算数 priva。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybatis连接oracle12乱码,使用mybatis链接oracle数据库出现账号密码错误解决

使用mybatis链接oracle数据库步骤最近oracle老师布置下来了作业,要求使用传统的java代码链接oracle数据库做一个小程序,因为我已经很熟练的掌握了ssm框架的开发,以前用的是mysql,现在就尝试尝试oracle来练练手。问题一 oracle 的j…

oracle active data guard,Oracle Active DataGuard配置手册(一)

第一章 搭建Active DG开始配置dgPrimary db:1、 判断dataguard是否安装SQL> select * from v$option where parameter Oracle Data Guard;PARAMETER----------------------------------------------------------------VALUE----------------------------------------------…

linux创建文件后会自动删除,linux会自动删除目录和文件的吗

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼建议不要在 /tmp 或 /var/tmp 中存放需由用户掌握的文件unix 系统的习惯做法是将系统运行过程中的产生的临时文件保存在 /tmp 和 /var/tmp 中。这两者的区别在于 /tmp 中保存的临时文件原则上将在系统重新启动后删除,这…

linux关闭gvim命令,Linux 下 8 种退出 vim 编辑器的方法

Vim被称为一个非常强大的文本编辑器,但同样以其陡峭的学习曲线而闻名。 如果您经常使用命令行,那么至少应该学习一些基本功能。 如果你没有花时间去学习它,即使像退出Vim这样简单的事情也很困难。Vim是一套独立的软件,它有自己的一…

du 查看使用 linux命令,如何正确使用Linux命令–du

本文简单介绍了如何使用如何使用Linux命令–du,需要的朋友可以参考一下。du(disk usage)功能说明:显示目录或文件的大小。语  法:du [-abcDhHklmsSx][-L ][-X ][–block-size][–exclude][–max-depth][–help][–version][目录或文件]补充…

编译 linux 3,linux内核的编译(3)

linux内核的编译(3)2008-02-23 07:17:46来源:互联网 阅读 ()无论什麽档名),然後将你做的 zImage 拷贝进去,(例如,如果你用” /vmlinuz ″的话,就像这样″ cp zImage /vmlinuz ”)。接著重新执行 lilo — 在较新的系统上…

linux 端口限速技术,linux下如何实现对每个IP进行限制带宽??

linux下如何实现对每个IP进行限制带宽??(2011-09-01 01:03:54)标签:杂谈linux下如何实现对每个IP进行限制带宽??redhatlinux服务器,最近发现单位的网内BT下载、迅雷下载太多,严重影响正常上网&a…

u盘启动+linux+ks.cfg,通过ks.cfg文件自动安装系统

最近需要制作自动安装系统的iso镜像文件,写个笔记以防忘记第一步、拿到iso原始文件,我用的是rhel7.7的把rhel7.7文件复制出来到一个目录中第二步、编写一个名字叫ks.cfg文件内容如下:#versionDEVELInstall OS instead of upgradeinstallKeybo…

linux下编译安装ntfs,linux下编译安装ntfs

“mount: you must specify the filesystem type” 错误提示是这个mount /dev/hda1 /media/windows/ 在centos下无问题。不知道为什么在Ubuntu下有问题解决办法mount /dev/hda1 /media/windows/ -t ntfs (-t 制定文件系统类型,这里是ntfs) ######自己down源码包…

Linux做施压机的最大线程数,关于性能测试的几个要点

几个定义性能测试(Performance Test)通常收集所有和测试有关的所有性能,通常被不同人在不同场合下进行使用。测试软件在系统中的运行性能,度量系统与预定义目标的差距。关注点:how much和how fast负载测试(Load Test)负载测试是一种性能测试&…

Linux实训vim编辑器的应用,Linux实训例题(vim编辑器)

1、如果用vi编辑器编辑当前目录下的file1文件,则进入编辑的方式是()vi file12、在Vi编辑器中,请将光标定位到屏幕最上方、最中间、最下方,其命令分别是()()()H M L3、在Vi编辑器中,请将光标定位到文件的第10行,其命令是…

linux优化pdf,linux系统安全和优化.pdf

crookoo 于 2012-05-06 03:42:36发表:好东西啊dayed 于 2012-03-25 11:30:45发表:linux系统安全和优化topcloud 于 2012-03-22 12:50:28发表:顶阿顶。。vikenfeng 于 2011-10-27 10:05:32发表:感谢楼主fastknot 于 2011-07-13 18:45:35发表:楼主很强大66781881 于 2011-06-30 2…

鸟哥的linux私房菜有乌班图,折腾Ubuntu的一些summary--初装Ubuntu18和重装Ubuntu18

1. 初次安装Ubuntu18关于linux安装,之前一直遇到的问题都是安装了,并重启之后之后进入到了grub界面,然后我自己对于grub指令不熟悉,加上没有足够的时间来研究,在多次重装之后,仍然没有办法直接进入&#xf…

线性分组码c语言实验报告,C语言线性分组码(附注释).doc

C语言线性分组码(附注释).doc下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。2.下载的文档,不会出现我们的网址水印。3、该文档所得收入(下载内容预览)归上传者、原创作者&a…

bson json c语言,对比平台--JSON和BSON之间的区别

JavaScript Object Notation(JSON)是一种标准文件格式,使用人类可读的文本来传输具有属性值对和数组数据类型的数据。这是最常见的数据格式之一,主要用于异步浏览器-服务器通信。JSON是与语言无关的格式。另一方面,BSON是一种计算机交换格式&…

c语言中buf内容怎么给指针,C语言 指针的使用

C语言 指针当使用变量时出现长度不定,譬如在串口通信中,有些通信协议是不定长的,那么这个就应该使用指针;如果使用数组的话,会有下面这两个小问题,要将数组的大小要定的比较大,已保证能够容纳最…

c语言常考的程序,C语言 一些常考得东西

C语言基础测试1.#include “heima.txt” 表示文件在哪个目录?( D)A、系统根目路径B、编译器路径C、桌面D、与当前文件目录一致.2.C源程序中不能直接打印的进制数是( )A. 二进制 B.十六进制 C.十进制 D.八进制3.十六进制数0x1DA2转换成二进制数是多少(…

杭电2005题c语言答案,杭电2005

题不难,但细节较多,所以。。。不但二月闰年有影响,七八月都是31天,这个也得专门分开讨论,还有就是七八月份开讨论后,加的基数是三到七月的,不能完全复制上面的代码,基数得改~做题还是…

软件设计师c语言算法皇后,软件设计师历年试题-算法.ppt

软件设计师历年试题-算法1996年下午试题三 【E-R图】 1996年下午试题三 【问题】  填充下列 SQL 程序 3.1~3.4 中的 ①~⑦,使它们分别完成相应的功能:程序 3.1:统计参加比赛时运动员人数  SELECT __①__  FROM A…

c语言getch() 头文件,用getch()需要头文件吗?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include #include #include "string.h"#includeusing namespace std;struct student{ int num;char name[10];char banji[10];float score[3];struct student *next;};struct student *creat(){struct student *head,*p…