java计算器课程_学习实验楼课程:Java实现简单计算器(一)

初学Java,在实验楼尝试这个项目,不太懂,我看到了完整的代码,但不知道这些代码是怎么来的。没办法,自己从头开始,看看一个计算器的实现是怎么一个过程。

首先,我觉得需要一个界面,简单一点的,于是,先随手画了一个界面:

25dabc565382?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

一个简单的界面,看上去很厉害的样子

那么,第一步就先做出这个界面吧,按钮有没有用先不管,先看到才是真的。

知道是用Swing做出来的,搜索了一下这个包的基本用法;

外加自己的猜测,我想应该是有一个叫JFrame对象作为外面的框架,里面放JPanel对象,可以当作一种分区,JPanel对象里面再放JButton按钮、JTextField文本区域之类的。

看了下原来的代码,大概清楚了:

先是创建一个计算器类,创建好基本的零部件;

然后自定义构造器,这个类就是一个窗口,把部件放上去,生成这个窗口就行了;

最后写一个主函数进行测试,主函数的内容就是生成窗口,也就是创建一个计算器类的实体;

原来的命名太土了,肯定是用自己的,大概得到代码如下:

public class MyCalculator {

/*基本参数定义并初始化*/

float ans = 0; //用于存储答案,初始为0;

String ans_dis = "0"; //用于存储显示字段,初始为“0”;

float tmp = 0; //用于存储输入,初始为0;

String act = "+"; //用于存储符号,默认为“+”;

int arg_point = 0; //判断是否在小数点之后,默认为0,即不在小数点后;

static int arg_mtinput1 = 10; //如果不在小数点后,多次输入处理时使用的常数,处理方式为 tmp = tmp * 10 + new_input,这个参数其实不需要,写出来方便解释,如果必要,可以用来调整进制;

float arg_mtinput2 = 1; //如果在小数点后,多次输入处理时使用的变量,arg = arg / 10,tem = tem + new_input * arg;

/*创建UI组件*/

JFrame calFrame = new JFrame("cal");

JTextField ansField = new JTextField(ans_dis, 20); //用于显示答案的文本框,第一个参数是显示的对象,第二个参数是文本框显示的列数(长度);

JButton button_0 = new JButton("0"); //参数为按钮上显示的内容;

JButton button_1 = new JButton("1");

JButton button_2 = new JButton("2");

JButton button_3 = new JButton("3");

JButton button_4 = new JButton("4");

JButton button_5 = new JButton("5");

JButton button_6 = new JButton("6");

JButton button_7 = new JButton("7");

JButton button_8 = new JButton("8");

JButton button_9 = new JButton("9");

JButton button_point = new JButton(".");

JButton button_mtp = new JButton("*");

JButton button_div = new JButton("/");

JButton button_add = new JButton("+");

JButton button_sub = new JButton("-");

JButton button_eql = new JButton("=");

JButton button_clear = new JButton("clear");

/*MyCalculator的构造器*/

public MyCalculator() {

/*第一步,先把界面做出来*/

/*创建容器,将UI组建放上去*/

JPanel pan = new JPanel();

pan.setLayout(new GridLayout(4,4,5,5)); //GridLayout是一个矩阵式布局的控件,用处很大,这里创建一个控件,四个参数分别为行数、列数、横向间隔、纵向间隔;

pan.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); //设置四边边距;

pan.add(button_7);

pan.add(button_8);

pan.add(button_9);

pan.add(button_div);

pan.add(button_4);

pan.add(button_5);

pan.add(button_6);

pan.add(button_mtp);

pan.add(button_1);

pan.add(button_2);

pan.add(button_3);

pan.add(button_sub);

pan.add(button_0);

pan.add(button_point);

pan.add(button_eql);

pan.add(button_add);

JPanel pan_up = new JPanel();

pan_up.setLayout(new BorderLayout()); //BorderLayout也是一个布局管理器,只有东南西北中五种位置,默认为中间;

pan_up.setBorder(BorderFactory.createEmptyBorder(10,5,5,5));

ansField.setHorizontalAlignment(JTextField.RIGHT);

pan_up.add(ansField, BorderLayout.NORTH);

pan_up.add(button_clear, BorderLayout.SOUTH);

pan_up.add(button_clear, BorderLayout.EAST); //这边可以看到,可以重叠使用,即同时靠下并靠右;

/*界面设置*/

calFrame.setLocation(500, 300); //设置窗口在屏幕上的位置;

calFrame.setResizable(true); //设置大小可调整;

calFrame.getContentPane().setLayout(new BorderLayout());

calFrame.getContentPane().add(pan_up, BorderLayout.NORTH);

calFrame.getContentPane().add(pan, BorderLayout.CENTER);

calFrame.pack(); //记得整体打包;

calFrame.setVisible(true);

/*增加窗口关闭时退出程序的动作,否则不会自动退出*/

calFrame.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

主函数很简单:

public static void main(String[] args) {

/*构建一个计算器实体*/

MyCalculator calculator = new MyCalculator();

}

当然,这些代码用到了一些包,一开始需要导入一下:

package kant.learning; //其实我不太清楚需要用到哪些包,因此,都是用到了之后再点击导入的,同时把最后面那个词改为*,省事;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

如此这般之后,至少可以看到界面了,怎么算,那是下一步的事了。

考虑柔性负荷的综合能源系统低碳经济优化调度【考虑碳交易机制】(Matlab代码实现)内容概要:本文围绕“考虑柔性负荷的综合能源系统低碳经济优化调度”展开,重点研究在碳交易机制下如何实现综合能源系统的低碳化与经济性协同优化。通过构建包含风电、光伏、储能、柔性负荷等多种能源形式的系统模型,结合碳交易成本与能源调度成本,提出优化调度策略,以降低碳排放并提升系统运行经济性。文中采用Matlab进行仿真代码实现,验证了所提模型在平衡能源供需、平抑可再生能源波动、引导柔性负荷参与调度等方面的有效性,为低碳能源系统的设计与运行提供了技术支撑。; 适合人群:具备定电力系统、能源系统背景,熟悉Matlab编程,从事能源优化、低碳调度、综合能源系统等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究碳交易机制对综合能源系统调度决策的影响;②实现柔性负荷在削峰填谷、促进可再生能源消纳中的作用;③掌握基于Matlab的能源系统建模与优化求解方法;④为实际综合能源项目提供低碳经济调度方案参考。; 阅读建议:建议读者结合Matlab代码深入理解模型构建与求解过程,重点关注目标函数设计、约束条件设置及碳交易成本的量化方式,可进步扩展至多能互补、需求响应等场景进行二次开发与仿真验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值