




免费预览已结束,剩余12页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一:计算器应用程序实验报告目录一 概述2二 总体方案设计3三 详细设计11五 课程设计体会和总结12六 附录.13一 概述1.程序具备的功能:(1)使用图形用户界面:一个文本框;0-9数字按钮;加、减、乘、除运算符;“小数点”和“等于”符号;复位按钮;清空按钮;开方和平方以及求倒按钮;(2)完成整数、实数的四则运算(加、减、乘、除);(3)通过按钮点击实现数据的复位(清空);(4)通过按钮点击实现数据的删除;(5)通过按钮点击实现对数据的开方或平方。2课程设计的主要设计思想 对于此计算器程序,首先要设计其GUI界面,总体界面有一个文本框,22个按钮,总体界面用BorderLayout布局。文本框放置在最上端,然后0到9以及+,-,*,/,sqrt,平方,求倒的按钮放置到一个面板Panel中,添加到整体布局的中,界面设计完成。布局设计好后再添加按钮事件。对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。在进行加、减、乘、除计算时要把点击加、减、乘、除按钮之前的数值保存下来,运算时是这个被保存下来的数值和文本框中的数值加、减、乘、除。二 总体方案设计1.界面设计界面设计要求用GUI,界面设计中有用到swing组件的TextField和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如下:2.功能介绍这是一种简单的计算器中,本项目用到了Java中的GUI界面和swing组件以及awt布局,简单易用,它能完成如下的几个小功能:点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除求模四则运算 ;还能通过按钮键进行开方和平方及求倒运算;如果输入有误时可以清空按钮撤销后重新输入新数据;还可以后退按钮来向后退一位数字而不必全部删除。三详细设计 程序流程图如下:部分代码展示及说明:(1)这段代码主要是对程序的主框架进行相应的设置。class JSQFrame extends JFramepublic JSQFrame()setTitle(计算器);setSize(WIDTH,HEIGHT);JSQPanel panel=new JSQPanel();panel.setBackground(Color.blue);/设置背景颜色为蓝色Border border=BorderFactory.createLoweredBevelBorder();Border bj=BorderFactory.createTitledBorder(border,计算器);panel.setBorder(bj); Container contentPane=getContentPane(); contentPane.add(panel); l = new JLabel(TP); l.setBounds(3, 0,333, 375); contentPane.add(l);/在面板上增加图片 contentPane.add(panel); public static final int WIDTH=333; public static final int HEIGHT=375;/设置大小 protected JLabel l; protected ImageIcon TP;(2)这段代码是在框架上加按钮及背景外观的设置:public JSQPanel() i = new ImageIcon(1.jpg); lab = new JLabel(i); add(lab);/显示图片display=new JTextField(,30);display.setBounds(0, 15,15, 25);add(display)JPanel Buttons=new JPanel();Buttons.setLayout(new GridLayout(4,6,6,6);addButton(this, ); addButton(this, 清空 );String buttons=123=a456+-789*/.0;for(int i=0;i=0&s.charAt(0)=0&s.charAt(0)=9|s.equals(.) if(start) display.setText(s); else display.setText(display.getText()+s); start=false;/判断是不是数字或小数点 else if(start) if(s.equals(-) display.setText(s); start=false; else op=s; if(s.equals( 清空 ) arg=0; op=; display.setText();/清空按钮作用设置 else if(s.equals( ) String a=display.getText(); String s1=a.substring(0,a.length()-1); arg=Double.parseDouble(s1); display.setText(s1+);/退后按钮作用设置 else if(s.equals(sqrt) double x=Double.parseDouble(display.getText(); arg=jc(x);/调用函数 display.setText(+arg); tart=true; else if(s.equals(平方) double x=Double.parseDouble(display.getText(); arg=x*x;/平方算法 display.setText(+arg); start=true; else if(s.equals(求倒) double x=Double.parseDouble(display.getText(); arg=1/x;/求倒算法 display.setText(+arg); start=true; else double x=Double.parseDouble(display.getText(); calculate(x); op=s; start=true; public void calculate(double n) if(op.equals(+) arg+=n ; /加法算法 else if(op.equals(-) arg-=n;/减法算法 else if(op.equals(/) arg/=n;/除法算法 else if(op.equals(*) arg*=n;/乘法算法 else if(op.equals(=) arg=n; display.setText(+arg); start=true; public double jc(double x) double t; t=Math.sqrt(x); return(t);/开方的算法 private JTextField display;private double arg=0;private String op=;private boolean start=true;private ImageIcon i;private JLabel lab;四 程序的调试与运行结果说明事例1:45+87 预计结果 132 实际结果事例2: 29-87 预计结果-58 实际结果:事例2:45/5 预计结果 9 实际结果事例3 9的平方及开方 预计结果81和3 实际结果 17 五 课程设计体会和总结 六 附录import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.awt.color.*;import javax.swing.border.*;import java.util.*;import java.lang.*;public class JSQpublic static void main(String args)JSQFrame frame=new JSQFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.show();class JSQFrame extends JFramepublic JSQFrame()setTitle(计算器);setSize(WIDTH,HEIGHT);JSQPanel panel=new JSQPanel();panel.setBackground(Color.blue);Border border=BorderFactory.createLoweredBevelBorder();Border bj=BorderFactory.createTitledBorder(border,计算器);panel.setBorder(bj); Container contentPane=getContentPane() contentPane.add(panel); l = new JLabel(TP);l.setBounds(3, 0,333, 375); contentPane.add(l); contentPane.add(panel); public static final int WIDTH=333;public static final int HEIGHT=375; protected JLabel l;protected ImageIcon TP;class JSQPanel extends JPanel implements ActionListenerpublic JSQPanel()i = new ImageIcon(1.jpg); lab = new JLabel(i); add(lab); display=new JTextField(,30);display.setBounds(0, 15,15, 25);add(display);JPanel Buttons=new JPanel();Buttons.setLayout(new GridLayout(4,6,6,6);addButton(this, );addButton(this, 清空 );String buttons=123=a456+-789*/.0;for(int i=0;i=0&s.charAt(0)=0&s.charAt(0)=9|s.equals(.) if(start) display.setText(s); else display.setText(display.getText()+s); start=false; else if(start) if( s.equals(-) display.setText(s); start=false; else op=s; if(s.equals( 清空 ) arg=0; op=; display.setText(); else if(s.equals( ) String a=display.getText(); String s1=a.substring(0,a.length()-1); arg=Double.parseDouble(s1); display.setText(s1+); else if(s.equals(sqrt) double x=Double.parseDouble(display.getText(); arg=jc(x); display.setText(+arg); start=true; else if(s.equals(平方) double x=Double.parseDouble(display.getText(); arg=x*x; display.setText(+arg); start=true; else if(s.equals(求倒) double x=Double.parseDouble(display.getText(); arg=1/x; display.setText(+arg); start=true; else double x=Double.parseDouble(display.getText(); calculate(x); op=s; start=true; public void calculate(double n) if(op.equals(+) arg+=n ; else if(op.equals(-) arg-=n; else if(op.equals(/) arg/=n; else if(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议中彩礼退还及共同财产分割的执行细则
- 临时办公场所租赁合同终止与设备清点确认书
- 离婚后财产分割及共同债务处理补充协议范本
- 矿山开采劳务外包与地质灾害防治合同
- 离婚协议房产分割与财产分割、子女教育合同
- 【语言文字运用】考点41 辨析与鉴赏修辞手法(解析版)
- 电话谈判课件
- 边防船艇知识培训内容课件
- 精准扶贫入户培训
- 村主任培训方案
- 施工单位年度业绩汇报
- THNBX 膝痹(原发性双侧膝关节病)综合诊疗规范
- 2025年初级注册安全工程师考试练习题及答案解析
- 2025年国家公务员政治理论应知应会知识考试题库与答案
- 海洋微塑料污染溯源分析-洞察及研究
- 中科大环境与资源保护法学教案
- 【锐仕方达】2025低空经济产业发展及薪酬趋势研究报告623mb
- 网络安全知识培训资料
- 2025年统编版(2024)小学道德与法治二年级上册《教师节快乐》教学设计
- 手术后疼痛评估与护理团体标准
- 花园开荒保洁方案(3篇)
评论
0/150
提交评论