java课程设计报告简单图形界面计算器的设计.docx
- 文档编号:28024813
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:44
- 大小:240.57KB
java课程设计报告简单图形界面计算器的设计.docx
《java课程设计报告简单图形界面计算器的设计.docx》由会员分享,可在线阅读,更多相关《java课程设计报告简单图形界面计算器的设计.docx(44页珍藏版)》请在冰豆网上搜索。
java课程设计报告简单图形界面计算器的设计
Java课程设计
简单图形界面计算器的设计
课程名称Java程序设计
选题名称简单图形界面计算器的设计
专业
班级
姓名
学号
指导教师
简单图形界面计算器的设计
一、设计任务与目标
本次java程序设计我的设计任务是设计一个图形界面(GUI)的计算器应用程序并且能够完成简单的算术运算。
本次任务的基本要求是这个计算器应用程序可以完成十进制的加、减、乘、除、求倒、取余、开方运算,且有小数点、正负号、退格和清零功能。
而我要在此基础上添加一项千位符分隔符的功能,即以三位为一级,在输入的一串数字中每三位加入一个逗号,这项功能国际通用,并已经成为惯例,会计记账都用这种方法便于账目核算与管理。
GUI计算器设计的具体目标:
1.完成十进制的加、减、乘、除、求倒、取余和开方运算;
2.有小数点和正负号加入运算;
3.有退格、复位和清零的功能;
4.有千位符分隔符的功能,即在输入的一串数字中每三位加入一个逗号。
二、方案设计与论证
1.设计目标的总体分析
(1)设计目标的需求分析:
计算器是现在一个普遍应用的工具,能够解决许多人工所无法计算的数据,节省大量宝贵的时间。
(2)设计目标的功能分析:
实现计算器系统的功能,主要有两个功能模块:
输入和输出。
(3)设计原则:
基于计算器系统要具有适用性广、操作简便等特点,本系统预计要达到以下几个目标:
①满足以上的基本功能要求;②能够在常见的计算机及其操作系统上运行。
2.设计的基本思路
利用GUI的界面设计,将整个大设计分为三块,分别是数据的输入,运算符功能符的控制和数据的输入输出显示。
利用Swing控件,数据的输入由0~9这10个按钮来表示,用“+”、“-”、“*”、“/”、“1/x”、“%”、“sqrt”这7个按钮来表示加、减、乘、除、求倒、取余、开方运算,用“.”和“±”这2个按钮来表示小数点和正负号,用“Back”、“CE”和“C”这3个按钮来表示退格、复位和清零的功能,数据的输入输出显示由文本字段来表示。
将计算器的总体界面设计好后,再将代码分别写入不同的按钮的源程序中。
我要完成的一项改进,即添加一个拥有千位符分隔符功能的按钮,按下这个按钮能够在输入的一串数字中每三位加入一个逗号并且显示出来。
我要在之前的界面设计的基础上多添加一个按钮“$”来表示千位符分隔符,并且将功能代码写入这个按钮的源程序中。
三、程序流程图,程序清单与调用关系
1.程序流程图:
2.程序清单
0~9数据的输入
privatevoidjButton10ActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
if(flag==false&&!
jTextField1.getText().equals("0"))
jTextField1.setText(jTextField1.getText()+"1");
else
jTextField1.setText("1");
flag=false;
}
“+”号的控制
privatevoidjButton19ActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
//加号
d1=Double.parseDouble(jTextField1.getText());
flag=true;
op="+";
}
“-”号的控制
privatevoidjButton18ActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
//减号
d1=Double.parseDouble(jTextField1.getText());
flag=true;
op="-";
}
“*”号的控制
privatevoidjButton17ActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
//乘号
d1=Double.parseDouble(jTextField1.getText());
flag=true;
op="*";
}
“/”号的控制
privatevoidjButton16ActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
//除号
d1=Double.parseDouble(jTextField1.getText());
flag=true;
op="/";
}
“%”取余运算
privatevoidjButton24ActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
//求余
d1=Double.parseDouble(jTextField1.getText());
flag=true;
op="%";
}
“.”号的加入
privatevoidjButton14ActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
//点号
if(jTextField1.getText().equals("")||flag==true)
jTextField1.setText("0.");
else
jTextField1.setText(jTextField1.getText()+".");
flag=false;
}
“±”号的加入
privatevoidjButton15ActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
//正负号
doubled=Double.parseDouble(jTextField1.getText());
d=0-d;
jTextField1.setText(""+d);
}
“sqrt”开方运算
privatevoidjButton21ActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
//开方
doubled=Double.parseDouble(jTextField1.getText());
jTextField1.setText(""+Math.sqrt(d));
}
“1/x”求倒数运算
privatevoidjButton22ActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
//求倒数
doubled=Double.parseDouble(jTextField1.getText());
if(d==0)
jTextField1.setText("0");
else
jTextField1.setText(""+(1/d));
}
“=”等号运算
privatevoidjButton23ActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
if(op.equals(""))
return;
d2=Double.parseDouble(jTextField1.getText());
doubleresult=0;
if(op.equals("+"))
{
result=d1+d2;
}
elseif(op.equals("-"))
{
result=d1-d2;
}
elseif(op.equals("*"))
{
result=d1*d2;
}
elseif(op.equals("/"))
{
result=d1/d2;
if(d2==0)
result=0;
}
elseif(op.equals("%"))
{
result=d1%d2;
if(d2==0)
result=0;
}
jTextField1.setText(""+result);
flag=true;
}
“Back”退格运算
privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
//if语句判定当前字符串是否为空,若不为空,则将字符串长度减1之后,再赋值给原字符串;否则,将0复制给原字符串。
Strings=jTextField1.getText();
if(!
s.equals(""))
s=s.substring(0,s.length()-1);
if(s.equals(""))
s="0";
jTextField1.setText(s);
}
“CE”复位运算
privatevoidjButton2ActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
//复位操作
jTextField1.setText("0");
d1=0;
d2=0;
op="";
flag=false;
}
“C”清零运算
privatevoidjButton3ActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
//清零操作
jTextField1.setText("0");
}
“$”千位符分隔符运算
privatevoidjButton20ActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
//千位符分隔符
d1=Double.parseDouble(jTextField1.getText());
flag=true;
op="$";
DecimalFormatf=newDecimalFormat(",###");
jTextField1.setText(""+f.format(d1));
}
3.程序的调用关系图
四、全部源程序清单
/*Calculator.java
GUI简单计算器
*/
packagejavacalculator;
/**
*
*@author*/
importjava.awt.datatransfer.*;
importjava.text.DecimalFormat;
publicclassNewJFrameextendsjavax.swing.JFrame{
/**
*CreatesnewformNewJFrame
*/
publicNewJFrame(){
initComponents();
flag=false;
d1=0;
d2=0;
op="";
jTextField1.setText("0");
clipboard=getToolkit().getSystemClipboard();
}
privateClipboardclipboard;
privatebooleanflag;
privatedoubled1;
privatedoubled2;
privateStringop;
@SuppressWarnings("unchecked")
//
privatevoidinitComponents(){
jPanel1=newjavax.swing.JPanel();
jPanel2=newjavax.swing.JPanel();
jButton4=newjavax.swing.JButton();
jButton5=newjavax.swing.JButton();
jButton6=newjavax.swing.JButton();
jButton7=newjavax.swing.JButton();
jButton8=newjavax.swing.JButton();
jButton9=newjavax.swing.JButton();
jButton10=newjavax.swing.JButton();
jButton11=newjavax.swing.JButton();
jButton12=newjavax.swing.JButton();
jButton13=newjavax.swing.JButton();
jButton14=newjavax.swing.JButton();
jButton15=newjavax.swing.JButton();
jButton16=newjavax.swing.JButton();
jButton17=newjavax.swing.JButton();
jButton18=newjavax.swing.JButton();
jButton19=newjavax.swing.JButton();
jButton20=newjavax.swing.JButton();
jButton21=newjavax.swing.JButton();
jButton22=newjavax.swing.JButton();
jButton23=newjavax.swing.JButton();
jButton24=newjavax.swing.JButton();
jTextField1=newjavax.swing.JTextField();
jButton1=newjavax.swing.JButton();
jButton2=newjavax.swing.JButton();
jButton3=newjavax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton4.setText("7");
jButton4.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
jButton4ActionPerformed(evt);
}
});
jButton5.setText("8");
jButton5.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
jButton5ActionPerformed(evt);
}
});
jButton6.setText("9");
jButton6.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
jButton6ActionPerformed(evt);
}
});
jButton7.setText("4");
jButton7.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
jButton7ActionPerformed(evt);
}
});
jButton8.setText("5");
jButton8.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
jButton8ActionPerformed(evt);
}
});
jButton9.setText("6");
jButton9.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
jButton9ActionPerformed(evt);
}
});
jButton10.setText("1");
jButton10.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
jButton10ActionPerformed(evt);
}
});
jButton11.setText("2");
jButton11.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
jButton11ActionPerformed(evt);
}
});
jButton12.setText("3");
jButton12.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
jButton12ActionPerformed(evt);
}
});
jButton13.setText("0");
jButton13.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
jButton13ActionPerformed(evt);
}
});
jButton14.setText(".");
jButton14.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
jButton14ActionPerformed(evt);
}
});
jButton15.setText("±");
jButton15.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
jButton15ActionPerformed(evt);
}
});
jButton16.setText("/");
jButton16.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
jButton16ActionPerformed(evt);
}
});
jButton17.setText("*");
jButton17.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
jButton17ActionPerformed(evt);
}
});
jButton18.setText("-");
jButton18.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
jButton18ActionPerformed(evt);
}
});
jButton19.setText("+");
jButto
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 报告 简单 图形界面 计算器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)