实验序号:实验一
实验名称:简单计算器的实现
实验要求:
- 学习图形界面的设计,利用 MFC 应用程序(Java swing 或 QT 框架,或 C#)创建基于对话框的应用程序,添加按钮、编辑框等控件;
- 能通过设计的按钮控件输入并实现简单算术运算,要求表达式在编辑框中显示,能将运算结果,输出在编辑框内显示;并保存历史的表达式运算记录。
- 也能够实现混合运算的算术表达式求解,算术表达式中包括加、减、乘、除、括号等运算符;并且能够识别括号,优先级正确。
日志:
- 代码方面:由于这学期学习的是java语言,相对比较熟悉,同时便于自己进行java语言的巩固复习,我决定采用java swing来进行程序的编写。
- 代码方面:今天老师讲解了计算器实现的三种不同算法思想,分别是
1改后缀运算符后再入栈运算
2双栈算符优先级法
3通过二叉树进行运算
由于对二叉树不是太了解,第一第二方法相似但方法二相较于方法一简洁迅速,所以决定采用双栈算符优先级算法 - 由于之前一直没有接触过窗口的图形化界面的编辑,所以我决定先从java swing图形编辑开始学习,并粗略了进行了半学习半设计的初始编辑。
代码如下
package experiment1;
import javax.swing.*;
import java.awt.*;
public class Layout {
public static void main(String[] args) {
JFrame jf = new JFrame("测试窗口");
jf.setSize(500,500);
GridLayout layout = new GridLayout(3, 3, 10, 10);
//设计格式
JPanel panel01 = new JPanel(layout);
JPanel panel02 = new JPanel(new FlowLayout());
//定义按钮
JButton btn01 = new JButton("1");
JButton btn02 = new JButton("2");
JButton btn03 = new JButton("3");
JButton btn04 = new JButton("4");
JButton btn05 = new JButton("5");
JButton btn06 = new JButton("6");
JButton btn07 = new JButton("7");
JButton btn08 = new JButton("8");
JButton btn09 = new JButton("9");
JButton btn10 = new JButton("+");
JButton btn11 = new JButton("-");
JButton btn12 = new JButton("*");
JButton btn13 = new JButton("/");
JButton btn14 = new JButton("0");
JButton btn15 = new JButton("=");
JButton btn16 = new JButton("C");
JButton btn17 = new JButton("CE");
btn14.setPreferredSize(new Dimension(100,100));
btn14.setBackground(Color.white);
//格式修整
Box Box01 = Box.createVerticalBox();
Box01.add(panel01);
Box01.add(panel02);
//分组
panel01.add(btn01);
panel01.add(btn02);
panel01.add(btn03);
panel01.add(btn04);
panel01.add(btn05);
panel01.add(btn06);
panel01.add(btn07);
panel01.add(btn08);
panel01.add(btn09);
panel02.add(btn14);
panel02.add(btn16);
jf.setContentPane(Box01);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jf.setLocationRelativeTo(null);
jf.setVisible(true);
}
}
- 目前存在的问题:
1格式的编辑上存在较大的问题,格式并非我所想要表达的样式。
2按钮的样式和布局扔存在很多问题。
3对部分方法的理解不够到位,需要巩固和学习。 - 明天的目标:
1对更多的方法进行理解和学习,是界面能变成一种美观简洁的格式
2对算法方面进行学习理解
学习的博客
1.https://blog.csdn.net/xietansheng/article/details/72814492
2020.11.30