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

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

日志
1.完成的部分:对按钮格式,计算器显示格式和整体格式进行规范和初始化,并进行封装。

2.代码如下:

package experiment1;import javax.swing.*;
import javax.swing.border.LineBorder;
import java.awt.*;class Layout{public static void run() {JFrame jf = new JFrame("测试窗口");jf.setSize(150,150);JTextField view = null;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));JButton btn02 = new JButton("2");btn02.setBackground(Color.white);btn02.setBorder(new LineBorder(Color.black,1));JButton btn03 = new JButton("3");btn03.setBackground(Color.white);btn03.setBorder(new LineBorder(Color.black,1));JButton btn04 = new JButton("4");btn04.setBackground(Color.white);btn04.setBorder(new LineBorder(Color.black,1));JButton btn05 = new JButton("5");btn05.setBackground(Color.white);btn05.setBorder(new LineBorder(Color.black,1));JButton btn06 = new JButton("6");btn06.setBackground(Color.white);btn06.setBorder(new LineBorder(Color.black,1));JButton btn07 = new JButton("7");btn07.setBackground(Color.white);btn07.setBorder(new LineBorder(Color.black,1));JButton btn08 = new JButton("8");btn08.setBackground(Color.white);btn08.setBorder(new LineBorder(Color.black,1));JButton btn09 = new JButton("9");btn09.setBackground(Color.white);btn09.setBorder(new LineBorder(Color.black,1));JButton btn10 = new JButton("0");btn10.setBackground(Color.white);btn10.setBorder(new LineBorder(Color.black,1));JButton btn11 = new JButton("+");btn11.setBackground(Color.white);btn11.setBorder(new LineBorder(Color.black,1));JButton btn12 = new JButton("-");btn12.setBackground(Color.white);btn12.setBorder(new LineBorder(Color.black,1));JButton btn13 = new JButton("*");btn13.setBackground(Color.white);btn13.setBorder(new LineBorder(Color.black,1));JButton btn14 = new JButton("/");btn14.setBackground(Color.white);btn14.setBorder(new LineBorder(Color.black,1));JButton btn15 = new JButton("(");btn15.setBackground(Color.white);btn15.setBorder(new LineBorder(Color.black,1));JButton btn16 = new JButton(")");btn16.setBackground(Color.white);btn16.setBorder(new LineBorder(Color.black,1));JButton btn17 = new JButton("C");btn17.setBackground(Color.white);btn17.setBorder(new LineBorder(Color.black,1));JButton btn18 = new JButton("=");btn18.setBackground(Color.white);btn18.setBorder(new LineBorder(Color.black,1));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);}
public class Calculator {}public static void main(String[] args) {Layout.run();}
}

3.实例图片:
4. 目前未解决的问题

1钮还未设置触发器。
2计算部分还未完成。

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

学习的资料

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

20201203

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

  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. Java连接Oracle数据库常用方法
  2. QTreeWidget 读取windows注册表
  3. 這個日本味超濃的建築竟然是台灣的小學
  4. 10.25 es问题
  5. (八) stm8程序段定位,理解lkf文件
  6. tp5循环查询语句_tp5 foreach 套循环的优化(就是foreach 里边再查表)
  7. Jenkins实现Android自动化打包
  8. 虚拟机安装黑群晖_【群晖系统】HEI群辉DSM 6.2.1 系统安装图文教程 (19年2月)
  9. 第三季1:ORTP库的移植与局域网视频传输
  10. Android 系统性能优化(72)-----App启动优化
  11. 如何高效阅读 Spark 和 Hadoop 这类大型开源项目源代码?
  12. 微信小程序远程git代码管理
  13. matlab 填充透明色,在Matlab中使用透明像素填充数组
  14. 《Git与Github使用笔记》第12章 Pull Request的使用
  15. 消息称聊天宝团队解散 罗永浩已经退出股东行列
  16. web service 优缺点
  17. 平台建设的7大问题:蚂蚁AI平台实践深度总结
  18. 轮廓图(Silhouette)
  19. Win10电脑怎么更改UEFI固件设置
  20. 人工智能的八大业界领先的机器学习使用场景

热门文章

  1. 全网首发国内联邦学习框架研究
  2. protected和包访问权限
  3. 《面膜行业网络关注度分析报告》
  4. 2022江苏省职业院校技能大赛(中职)网络搭建与应用赛项
  5. springboot基于微信小程序的驾校驾驶证报名练车预约小程序 uinapp 计算机毕业设计
  6. 《水浒传》108将的绰号(ZZ)
  7. 外显子分析思路总结(Exome Sequencing Analysis review)
  8. 如何理解新技术带来的新资产类别?
  9. 【已解决】Android Studio下,gradle project sync failed 错误
  10. 交互式电子白板android,交互式电子白板_触摸屏电子白板_智能电子白板_GESEE国视科技...