实验序号:实验一
实验名称:简单计算器的实现
实验要求

  1. 学习图形界面的设计,利用 MFC 应用程序(Java swing 或 QT 框架,或 C#)创建基于对话框的应用程序,添加按钮、编辑框等控件;
  2. 能通过设计的按钮控件输入并实现简单算术运算,要求表达式在编辑框中显示,能将运算结果,输出在编辑框内显示;并保存历史的表达式运算记录。
  3. 也能够实现混合运算的算术表达式求解,算术表达式中包括加、减、乘、除、括号等运算符;并且能够识别括号,优先级正确。

日志
1.完成的部分:对按钮格式,计算器显示格式和整体格式进行规范和初始化,并进行封装。
完成了按键输入部分的编辑,可以自由的进行按钮输入

2.代码如下:

package experiment1;import javax.swing.*;
import javax.swing.border.LineBorder;import experiment1.MyCalculator.MyActionListener;import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Stack;class Calculation{}
public class Calculator {public JTextField view = null;public String output = " ";public class Layout extends JFrame{private static final long serialVersionUID = 1L;private JFrame jf = new JFrame("测试窗口");Layout() {jf.setSize(150,150);jf.setResizable(false);view = new JTextField("0");view.setHorizontalAlignment(JTextField.RIGHT);//设置为只读view.setEditable(false);//设置背景色view.setBackground(new Color(192, 192, 192));//设置字体 粗细 大小view.setFont(new Font("Cambria", Font.BOLD, 20)); //键盘布局构建JPanel panel01 = new JPanel(new GridLayout(3, 4, 10, 10));JPanel panel02 = new JPanel(new GridLayout(1, 3, 10, 10));JPanel panel03 = new JPanel(new GridLayout(1, 1, 10, 10));JPanel panel04 = new JPanel(new GridLayout(1, 1, 10, 10));JPanel panel05 = new JPanel(new GridLayout(1, 1, 10, 10));//定义按钮JButton btn01 = new JButton("1");btn01.setBackground(Color.white);btn01.setBorder(new LineBorder(Color.black,1));btn01.addActionListener(new Get());JButton btn02 = new JButton("2");btn02.setBackground(Color.white);btn02.setBorder(new LineBorder(Color.black,1));btn02.addActionListener(new Get());JButton btn03 = new JButton("3");btn03.setBackground(Color.white);btn03.setBorder(new LineBorder(Color.black,1));btn03.addActionListener(new Get());JButton btn04 = new JButton("4");btn04.setBackground(Color.white);btn04.setBorder(new LineBorder(Color.black,1));btn04.addActionListener(new Get());JButton btn05 = new JButton("5");btn05.setBackground(Color.white);btn05.setBorder(new LineBorder(Color.black,1));btn05.addActionListener(new Get());JButton btn06 = new JButton("6");btn06.setBackground(Color.white);btn06.setBorder(new LineBorder(Color.black,1));btn06.addActionListener(new Get());JButton btn07 = new JButton("7");btn07.setBackground(Color.white);btn07.setBorder(new LineBorder(Color.black,1));btn07.addActionListener(new Get());JButton btn08 = new JButton("8");btn08.setBackground(Color.white);btn08.setBorder(new LineBorder(Color.black,1));btn08.addActionListener(new Get());JButton btn09 = new JButton("9");btn09.setBackground(Color.white);btn09.setBorder(new LineBorder(Color.black,1));btn09.addActionListener(new Get());JButton btn10 = new JButton("0");btn10.setBackground(Color.white);btn10.setBorder(new LineBorder(Color.black,1));btn10.addActionListener(new Get());JButton btn11 = new JButton("+");btn11.setBackground(Color.white);btn11.setBorder(new LineBorder(Color.black,1));btn11.addActionListener(new Get());JButton btn12 = new JButton("-");btn12.setBackground(Color.white);btn12.setBorder(new LineBorder(Color.black,1));btn12.addActionListener(new Get());JButton btn13 = new JButton("*");btn13.setBackground(Color.white);btn13.setBorder(new LineBorder(Color.black,1));btn13.addActionListener(new Get());JButton btn14 = new JButton("/");btn14.setBackground(Color.white);btn14.setBorder(new LineBorder(Color.black,1));btn14.addActionListener(new Get());JButton btn15 = new JButton("(");btn15.setBackground(Color.white);btn15.setBorder(new LineBorder(Color.black,1));btn15.addActionListener(new Get());JButton btn16 = new JButton(")");btn16.setBackground(Color.white);btn16.setBorder(new LineBorder(Color.black,1));btn16.addActionListener(new Get());JButton btn17 = new JButton("C");btn17.setBackground(Color.white);btn17.setBorder(new LineBorder(Color.black,1));btn17.addActionListener(new Clear());JButton btn18 = new JButton("=");btn18.setBackground(Color.white);btn18.setBorder(new LineBorder(Color.black,1));btn18.addActionListener(new equal());btn01.setPreferredSize(new Dimension(60,60));btn04.setPreferredSize(new Dimension(60,60));btn10.setPreferredSize(new Dimension(130,60));btn17.setPreferredSize(new Dimension(60,60));btn18.setPreferredSize(new Dimension(60,130));view.setPreferredSize(new Dimension(270,60));panel01.add(btn11);panel01.add(btn12);panel01.add(btn13);panel01.add(btn14);panel01.add(btn07);panel01.add(btn08);panel01.add(btn09);panel01.add(btn15);panel01.add(btn04);panel01.add(btn05);panel01.add(btn06);panel01.add(btn16);panel02.add(btn01);panel02.add(btn02);panel02.add(btn03);panel03.add(btn10);panel04.add(btn17);panel05.add(btn18);//装箱布局//创建间隔Component vStrut01 = Box.createVerticalStrut(10);Component vStrut02 = Box.createVerticalStrut(10);Component vStrut03 = Box.createVerticalStrut(10);Component vStrut04 = Box.createVerticalStrut(10);Component vStrut05 = Box.createVerticalStrut(10);Component hStrut01 = Box.createHorizontalStrut(10);Component hStrut02 = Box.createHorizontalStrut(10);Component hStrut03 = Box.createHorizontalStrut(10);Component hStrut04 = Box.createHorizontalStrut(10);Box hBox01 = Box.createHorizontalBox();hBox01.add(panel03);hBox01.add(hStrut01);hBox01.add(panel04);Box vBox01 = Box.createVerticalBox();vBox01.add(panel02);vBox01.add(vStrut01);vBox01.add(hBox01);Box hBox02 = Box.createHorizontalBox();hBox02.add(vBox01);hBox02.add(hStrut02);hBox02.add(panel05);Box vBox02 = Box.createVerticalBox();vBox02.add(vStrut02);vBox02.add(view);vBox02.add(vStrut03);vBox02.add(panel01);vBox02.add(vStrut04);vBox02.add(hBox02);vBox02.add(vStrut05);Box hBox03 = Box.createHorizontalBox();hBox03.add(hStrut03);hBox03.add(vBox02);hBox03.add(hStrut04);jf.setContentPane(hBox03);jf.pack();jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);jf.setLocationRelativeTo(null);jf.setVisible(true);}  }class Get implements ActionListener{public void actionPerformed(ActionEvent e) {String input = e.getActionCommand();output += input;view.setText(output);}}class Clear implements ActionListener{public void actionPerformed(ActionEvent e) {output = " ";view.setText(output);  }   }class equal implements ActionListener{public void actionPerformed(ActionEvent e) {output += "=";output += " ";view.setText(output);   }   }/*private String operation(String output) {String[] s = output.split(" ");Stack<Double> stack1 = new Stack<>();Stack<Double> stack2 = new Stack<>();Double m = Double.parseDouble(s[0]);Double n = Double.parseDouble(s[0]);stack1.push(m);stack2.push(n);for(int i = 1; i < s.length; i++) {if(s[i].equals("+")) {}}}*/public static void main(String[] args) {Calculator a = new Calculator();a.new Layout ();}
}

3实例如下:

4.目前未解决的问题
1.计算输出部分还未完成。

5 .明天的目标
1.完成运算部分

学习的资料

《Java程序设计教程》机械工业出版社 程科 潘磊主编 ISBN 978-7-111-50902-8

20201204

计算机软件实习每日学习打卡(3)20201204相关推荐

  1. 10.24 每日学习打卡

    包装类wrapper 针对8种基本类型相应的引用类型 装箱操作为各包装类的valueof方法(默认调用) 包装类和String类型的转换 包装类->String 新建str对象 toString ...

  2. 每日辣评:微信禁朋友圈学习打卡、明星生图、支付宝、小红书

    文/王易见 知名科技KOL,四川创业者联盟发起人 QQ:543415188,微信:543415188 ,约稿.公关.营销传播.欢迎合作! [微信禁朋友圈"学习打卡",我是这么看的] ...

  3. 艾为数字ic面试题_每日学习:数字后端面试100问(2019全新版)

    关注并标星大同学吧 每天1次,打卡学习 积累1个新知识,增1分职场底气 作者称谓:Tao涛 个人介绍:摸爬滚打多年的数字后端工程师 微信公众号:数字后端IC芯片设计 半导体知识分享第29期 技能升级, ...

  4. bin文件如何编辑_每日学习:Linux文件与目录管理常用命令解析

    关注并标星大同学吧 每天1次,打卡学习 积累1个新知识,增1分职场底气 作者称谓:Jack xu 个人介绍:不断学习的数字后端工程师 微信公众号:志芯 半导体知识分享第25期 技能升级,从这里开始 1 ...

  5. java时序图工具_每日学习:静态时序分析入门面面观

    关注并标星大同学吧 每天1次,打卡学习 积累1个新知识,增1分职场底气 作者称谓:Jack xu 个人介绍:不断学习的数字后端工程师 微信公众号:志芯 半导体知识分享第41期 技能升级,从这里开始 本 ...

  6. 前端捕捉轨迹_基于JavaScript实现每日签到打卡轨迹功能

    本文实例为大家分享了js实现每日签到打卡轨迹功能的具体代码,供大家参考,具体内容如下 1. 核心文件 calendar.js var calUtil = { //当前日历显示的年份 showYear: ...

  7. 基于微信小程序的每日签到打卡

    社会的发展和科学技术的进步,互联网技术越来越受欢迎.手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用.手机具有便利性,速度快,效率高,成本低等优点. 因此,构建符合自己要求的操作系统是非常 ...

  8. html5 签到系统功能,项目实战之基于JavaScript实现每日签到打卡轨迹功能

    今天扣丁学堂HTML5培训老师给大家介绍一下关于js实现每日签到打卡轨迹功能的具体代码,希望对同学们学习HTML5开发有所帮助,下面我们一起来看一下吧. 1.核心文件calendar.js var c ...

  9. 计算机软件实习日志(三)基于 A*搜索算法迷宫游戏开发

    文章目录 界面展示 前言 一.实验要求? 二.实验准备 三.设计思路 1.A*算法的理解 算法描述 简化搜索区域 简化地图 概述算法步骤 进一步解释 具体寻路过程 F值计算方式: 2.开发思路 使用Q ...

  10. 计算机软件实习(一)简单计算机

    计算机软件实习(一)简单计算机 实验内容: (1) 学习图形界面的设计,利用 MFC 应用程序(Java swing 或 QT 框架,或 C#)创 建基于对话框的应用程序,添加按钮.编辑框等控件: ( ...

最新文章

  1. insert数据时,获取插入数据的id
  2. idea配置Run Dashboard的方法(亲测有效)
  3. Nginx防盗链的实现原理和实现步骤
  4. java小编程-----读取文本文件csb.txt,统计字符个数,并把结果保存到result.txt
  5. 2015.5.21 Core Java Volume 1
  6. java list stream avg_Java 8 Stream API中的多个聚合函数
  7. android 获取动态时间间隔,android 获取时间间隔
  8. spring学习-ApplicationContext-spring上下文深入理解
  9. notepad++ 中增加lua语法检查快捷键
  10. Spring MVC 中使用AOP 进行统一日志管理--XML配置实现
  11. Javascript php 异常捕获
  12. Web页面弹出窗口代码大全
  13. 光伏行业MES管理系统解决方案
  14. ppBaby的开发历程
  15. easyUI中combobox中idFeild和textFeild的取值方法
  16. WIN10系统如何取消右下角的通知菜单,通知图标
  17. 2013-9-25 人物动作形态
  18. 华为依然执5G手机市场牛耳,不得不感叹它的强大
  19. 图片裁剪cropperjs的使用
  20. js前端计算两个日期的间隔时间(时间差)

热门文章

  1. oracle11g认证,ORACLE11g-OCP认证(甲骨文专家级数据库工程师)
  2. 又看了一遍鲁迅的《祝福》
  3. 人在深圳的100怕!——谨以此文献给所有的深圳打拼者
  4. 18-基于STM32的室内可见光通信系统设计
  5. html5hr标签默认值,hr_标签 | Elements_HTML_参考手册_非常教程
  6. 计算机能力提升选网络研修,教师计算机能力提升个人研修计划
  7. 业内人士揭露餐馆秘密:滋补汤基本没营养
  8. android 控件阴影
  9. css3水墨遮罩,CSS3水墨风格带音乐动画图特效
  10. 您的计算机配置已更改,你的硬件设置已更改请重启电脑怎么回事