一、综合训练目的与要求
2进制转十进制在线计算器1.巩固和加深对课堂所学知识的理解与应用;
2.学习掌握一般的软件的设计方法和查阅、运用资料的能力;
3.掌握JAVA程序设计语言,面向对象的软件设计思想、方法。
二、综合训练任务
1.设计一个简易的计算器;
功能要求:能实现基本的加、减、乘、除运算,以及表达式计算(加减乘除括号负号);二、八、十、十六进制间的相互转化,带符号的左移右移;逻辑与或非异或的运算;
其他功能:开方、求倒数、化百分数、求平方、 求立方、求x的y次方、求阶乘、取余、取整(取小数点之前的)、求常用对数、求三角函数;界面简洁适用。
2.设计任务要完成设计、编码、测试等过程,给出设计思路、主要的代码及其说明。
3.整个过程要体现面向对象的思想。
三、总体设计
主界面设计图 (见附录1 )
四、详细设计说明
(一)界面设计:
1.先将窗体分为两大块,添加菜单栏,在菜单栏中添加菜单,在菜单中添加菜单项;均以数组的形式添加;
2.第二块添加文本显示框于窗体北部,令添加一个面板jp于窗体中心,将这个面板布局为边界布局管理器,分为上下两部分,上部分jpup添加到该面板北部,下部分jpdown添加到jp面板中心;
3.将jpup面板布局为一行两列的网格布局管理器,在左边添加面板jp1,在右边添加面板jp2,jp1面板中放四个按钮,分别为四种进制,用来控制进制转换。jp2面板中放七个按钮,分别为三个控制角度弧度梯度转换的,四字、双字、单字、字节按钮,控制输入的二进制位数;
4.将jpdown面板布局为一行两列的网格布局管理器。将jp3面板和jp4面板分别添加进去。jp3和jp4面板均设为边界布局管理器。
5.将jp5面板和jp6面板分别加入jp3面板的北部和中部;jp5面板中放两个复选框和两个文本框(做填充效果,不可编辑);
6.将jp6面板布局为五行五列的网格布局管理器,以数组的方式添加25个按钮jb1[i] = new JButton(s1[i]);
7.将jp7和jp8分别添加到jp4面板的北部和中部,jp7面板里添加四个按钮,第一个是用来做填充效果的按钮,其余三个分别是(Back)退格、(CE)清除、(C)清除。
8.将jp8面板布局为五行六列的网格布局管理器,,以数组的方式添加25个按钮jb2[i] = new JButton(s2[i])
(二)添加动作监听事件:
1.对菜单添加事件:当点击三个菜单(编辑、查看、帮助),会显示对应的下拉菜单;当点击编辑菜单中的复制时,条用copy函数;当点击编辑菜单中的粘贴时,调用paste函数;当点击查看菜单中的标准从科学计算器回到简易计算器界面,此实现时通过隐藏jpup面板和jp3面板,然后调整窗体大小,即可实现面板收起的效果。当点击科学的时候又回到科学计算器
界面。当点击菜单中的进制按钮时,某种进制中没有的数值将被屏蔽掉。当点击帮助时会看到关于计算器,此时点击会弹出关于记事本的帮助文档。
2.对按钮添加事件:设置一个全局变量append,判断是追加(true)还是替换(false);
对于数字键,采用字符串中的indexOf函数,如果点击的按钮值能在“0123456789”中到,则有对应位置返回值,如果不到,则返回值为-1;
当点击小数点时,判断文本框中的最后一位是不是小数点,如果是,截取掉,如果不是添加一个小数点;
当点击正负号时,判断文本框中的最后一位是不是负号,如果是,截取掉,如果不是添加一个负号;
当点击加减乘除运算符号时,可追加;当点击等号时显示表达式结果,并且将全局变量置为false,此时输入只能替换。
3.对左半边按钮添加事件:当点击正弦、余弦、正切按钮时,调用Math类里面的正弦、余弦
、正切函数;当点击求平方、立方按钮(点击后append置为false)时,将文本框里的字符串转换为double型,进行平方、立方,重设为文本框内容;当点击求倒数按钮时,先判断其是不是0,是0不能求倒数,如果是1,倒数直接置为1,如果不是0或1,则转为double值,用1除以该值。当点击求阶乘的按钮时,获取文本,调用Convert类中的求阶乘的函数;当点击pi或e是文本框里显示圆周率或自然指数e的值;当点击log或ln时,调用Math里面的对应函数;当点击左移或右移时,append被置为false,等待输入左移或右移的位数,当点击了等号后,调用Convert类里的左移或右移函数;设置一个全局变量prestatu,默认值为1,代表10进制,0代表十六进制,2代表八进制,3代表二进制,当点击某种进制按钮时,如果文本框不空,会将文本框里的字符串做相应处理,在根据prestatu的值确定从哪个状态装换为此进制,调用Convert类里对应的进制装换函数,做完后将prestatu的状态值改为当前状态值,作为下一次判断从哪种进制向哪种进制转换的依据;当点击求x的y次方按钮时,此时输入替换第一操作数,点击等号后,调用Math类里的pow函数;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。