- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA课设计算器.doc
Java课程设计报告
题目:计算器
专业:网络工程
学号:082055106
姓名:付振华
日期:2011-11-26
目录
一、课程设计任务及要求 3
二、需求分析 3
三、设计思路 3
四、详细设计 4
五、运行调试与分析讨论 14
六、设计体会与小结 14
七、参考文献 15
一、课程设计任务及要求设计思路
图1
设计思路:
根据所设计出来的界面,首先要设计其GUI界面,总体界面有一个文本框,20个按钮,总体界面用BorderLayout布局,文本框放置在最NORTH,然后0到9以及+,-,*,/等按钮放置到一个面板Panel中,完成界面设计。
设计计算流程,首先点击数字按钮时,将按钮数值添加到文本框当中,并将该数值保存到一个字符串中,再次点击数字按钮时,将之前保存的字符串与新的数值拼接起来,再添加到文本框当中,直到点击运算符按钮时,将文本框当中的字符串保存在一个字符串变量中,然后重置文本框内容,将运算符号显示到文本框中,随后输入第二个计算数据时,用同样的办法保存数据,最后通过控制“=”运算符先将字符串数据转化成双精度类型,然后计算出结果并显示到文本框当中。
基本运算设计完成以后则开始考虑其他个别功能的实现,例如倒数、清零、退格等功能的实现,清零直接重置文本框内容,退格功能则采用substring函数截取字符串长度。
四、详细设计
1.程序流程图:
2.主要代码展示及说明:
package cn.ldxu;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculation implements ActionListener
{
double dResult=0;
double dNowInput=0;
double dMemory;
int n=0; //记载小数位数
int nOperation=1; // 记录运算符类型
int nBitsNum=0; //记录总共输入的位数
boolean alreadyHaveDot=false; //已经有小数点?
boolean keyAvailable=true;
boolean alreadyClickedEqueal=false; //是否按下过=?
boolean isTempNowInput=false; //是否在计算出结果后直接按运算符将结果赋给了当前输入值?
JFrame f;
JPanel p1,p2,p3,p4,p5,p6;
JTextField tf1,tf2;
JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0;
JButton bDiv,bSqrt,bMulti,bMinus,bPercent,bPlus,bReciprocal,bEqual,bDot,bNegative;
JButton bBackspace,bCE,bC,bMR,bMS,bMC,bM;
public void display()
{
f=new JFrame(我的计算器);
f.setBounds(200, 200, 400, 235);
f.setBackground(Color.LIGHT_GRAY);
f.setResizable(false);
f.setLayout(new BorderLayout(3,3));
p1=new JPanel(new GridLayout(1,3,5,5)); //用于存放backspace,ce,c三键
p2=new JPanel(new GridLayout(4,5,5,5)); //用于存放数字区及附近共20键, 此处间隙设置可能不合理,以后调整
p3=new JPanel(new GridLayout(5,1,5,5)); //用于存放MC,MR,MS,M+键及显示M状态文本框,此处间隙设置可能不合理,以后调整
p4=new JPanel(new FlowLayout()); //用于存放p1,p2
p5=new JPanel(new FlowLayout());
p6=new JPanel(new FlowLayout());
p4.add(p1);
p4.add(p2);
tf1=new JTextField(35); //存放显示区
tf1.setText(0.);
tf1.setEditable(false);
p5.add(tf1);
f.add(p5,BorderLayout.NO
文档评论(0)