加法计算器java代码,加法计算器java代码怎么用

怎么用JAVA编程编写一个计算器?

打开IED:打开自己java编程的软件,采用的是eclipse软件。

10年积累的成都网站制作、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有盈江免费网站建设让你可以放心的选择与我们合作。

建立java工程。

编写类。

编写类的详细步骤

1.类的基本结构:

由于这里用到了界面,所以要进行窗口界面的编程,按钮事件的处理,和计算处理界面;

package MyCaculator;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MyCaculator extends JFrame {

private int add=1,sub=2,mul=3,div=4;

private int op=0;

boolean ifOp;

private String output="0";

private Button[] jba=new Button[]{new Button("7"),new Button("8"),

new Button("9"),new Button("+"),

new Button("4"),new Button("5"),new Button("6"),new Button("-"),

new Button("1"),new Button("2"),new Button("3"),new Button("*"),

new Button("0"),new Button("."),new Button("="),new Button("/")};

private JPanel jpt=new JPanel();

private JPanel jpb=new JPanel();

private JTextField jtf=new JTextField("");

private MyCaculator(){

}

private void operate(String x){

}

public String add(String x){

return output;

}

public String subtract(String x){

return output;

}

public String multiply(String x){

return output;

}

public String divide(String x){

return output;

}

public String Equals(String x){

return output;

}

public void opClean(){

}

class setOperate_Act implements ActionListener{

public void actionPerformed(ActionEvent e) {

}

}

class setLabel_Act implements ActionListener{

public void actionPerformed(ActionEvent e) {

}

}

public static void main(String[] args) {

}

}

2.建立构造方法:

所谓构造方法就是,对自己的主类进行初始化,代码如下:

private MyCaculator(){

jpt.setLayout(new BorderLayout());

jpt.add(jtf);

this.add(jpt,BorderLayout.NORTH);

jpb.setLayout(new GridLayout(4,4));

for(int i=0;ijba.length;i++){

jpb.add(jba[i]);

if(i==3||i==7||i==11||i==15||i==14)

jba[i].addActionListener(new setOperate_Act());

else

jba[i].addActionListener(new setLabel_Act());

}

this.add(jpb,BorderLayout.CENTER);

this.setSize(250, 200);

this.setResizable(false);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

3.建立数据计算方法

这里的数据计算方法有6个,一个是主方法其他几个是加减乘除的处理方法,代码如下:

private void operate(String x){

double x1=Double.valueOf(x);

double y=Double.valueOf(output);

switch(op){

case 0:output=x;break;

case 1:output=String.valueOf(y+x1);break;

case 2:output =String.valueOf(y-x1);break;

case 3:output =String.valueOf(y*x1);break;

case 4:

if(x1!=0) output=String.valueOf(y/x1);

else output="不能为0";

break;

}

}

public String add(String x){

operate(x);

op=add;

return output;

}

public String subtract(String x){

operate(x);

op=sub;

return output;

}

public String multiply(String x){

operate(x);

op=mul;

return output;

}

public String divide(String x){

operate(x);

op=div;

return output;

}

public String Equals(String x){

operate(x);

op=0;

return output;

}

public void opClean(){

op=0;

output ="0";

}

4.事件处理方法

这里的时间处理方法,没有建立一个整体的方法,二是在为了便于处理的方法,将按钮事件分成两个部分,并采用两个子类来实现,这两个类时内部类要写在主类内部的,代码如下:

class setOperate_Act implements ActionListener{

public void actionPerformed(ActionEvent e) {

if(e.getSource()==jba[3]){

jtf.setText(add(jtf.getText()));

ifOp=true;

}

else if(e.getSource()==jba[7]){

jtf.setText(subtract(jtf.getText()));

ifOp=true;

}

else if(e.getSource()==jba[11]){

jtf.setText(multiply(jtf.getText()));

ifOp=true;

}

else if(e.getSource()==jba[15]){

jtf.setText(divide(jtf.getText()));

ifOp=true;

}

else if(e.getSource()==jba[14]){

jtf.setText(Equals(jtf.getText()));

ifOp=true;

}

}

}

class setLabel_Act implements ActionListener{

public void actionPerformed(ActionEvent e) {

Button tempb=(Button)e.getSource();

if(ifOp){

jtf.setText(tempb.getLabel());

ifOp=false;

}else {

jtf.setText(jtf.getText()+tempb.getLabel());

}

}

}

5.建立main方法:

要想实现我们的代码,我们需在main方法中,实例化我们的对象。

public static void main(String[] args) {

new MyCaculator();

}

java加减乘除计算器界面编程?

来源:Code Wizards HQ

智能观 编译

孩子想学编码的话,有很多方法可以展开学习。可以让他们学着构建视频游戏、创建动画、开发移动应用程序和搭建网站。不管孩子喜欢哪种形式,都有大量的编码书供他们快速学起来!

但是,怎么才能找到一本好的儿童编码书呢?

没经验的孩子的编码书,应该涵盖基本内容。

翻翻适合初学者的书,看看里面是否有加减乘除基本数学运算,仔细看看带变量、if / then语句、循环和函数的章节。你不需要理解这些概念是怎么工作的,只要看看书的标题里有没有提这些,如果没有,这本书不适合新手。

许多好的儿童编码书只用一种语言。

好的儿童编码书只侧重一种语言,可以是Scratch、Javascript或Python。如果你不知道孩子应该学哪种语言,可以买两三种不同语言的书。

好的儿童编码书有很多照片和插图。

对于那些第一次接触代码的孩子来说,视觉吸引力很重要。好的儿童编码书每一页上都有丰富多彩的插图,充分吸引孩子的关注。

好的儿童编码书提供有用的、可转移的知识。

学一门特定的语言并不像理解基本的编码概念那么重要。写代码的人可以从任何语言开始学起,然后轻松地转入其他语言。有些语言不太适合孩子,如C和C++,很多成年人都学不好。

因此,根据以上几项挑选原则,我们推出一份教孩子编码的书籍,涵盖块编程、编程基础语言、Web开发、移动开发、游戏编程、机器人和物联网等几大类,并标出适合孩子学习的年龄段,可以说是史上最全的儿童编码书籍汇总了!如果你正在苦恼怎么给孩子选书,快收下这份开学礼物吧~

块编程类

学龄前的儿童也可以学习用块编程语言编码。块语言是高度图形化的,易于学习。Scratch是为孩子们设计的一种流行的块语言。

1. Coding with Scratch Workbook

(用Scratch编码)

作者:DK出版公司

适合年龄: 6-9岁

在短短40页的篇幅里,读者就能学会用Scratch做任何事,从解决简单的数学问题到构建、分享游戏。每章都包含指导孩子们完成简单编码项目的分步说明。

2. Learn to Program with Scratch:A Visual Introduction to Programming with Games, Art, Science, and Math

(学会用Scratch编程:游戏、艺术、科学和数学编程的可视化介绍)

作者:Majed Marji

适合年龄: 10岁及以上

这本将近300页的书涵盖了初学者需要了解的关于Scratch语言的所有内容。读完这本书后,孩子们将会牢固掌握Scratch和适用于任何语言的编程思想。

3. Scratch for Kids For Dummies

(儿童Scratch傻瓜书)

作者:Derek Breen

适合年龄: 10-14岁

读者将在构建16个项目中,学习变量、if / then语句、循环和基本编程逻辑。

4. The Official ScratchJr Book: Help Your Kids Learn to Code

(中文版:动手玩转ScratchJr编程)

作者:Marina Umaschi Bers 、Mitchel Resnick

适合年龄: 5-9岁

对于那些还太小不能学习Scratch的孩子来说,Scratchr Jr是一种更简单的块编程语言。

5. MicroWorlds EX Books for Kids

(儿童MicroWorlds EX工具书)

作者:Steve Robson

适合年龄: 5-9岁

借助MicroWorlds EX工具,孩子们通过图形和文本来学习。他们没有被一种纯图形语言和“固定”代码所束缚,也不必100 %处理文本。

链接:

6. Coding for Kids For Dummies

(儿童编码傻瓜书)

作者:Camille McCue

适合年龄: 10-14岁

书中指导孩子完成15个项目,包括绘画、动画和游戏,还带领孩子们完成了创建计算机程序的过程,从构思到构建、测试。

编程基础

尽管C++、Java和Python等语言之间存在着巨大的差异,但理解编码基础知识,孩子可以相对轻松地从一种语言迁移到另一种语言。

Python

7. Python for Kids

(适合孩子的Python学习)

作者:Jason R. Briggs

适合年龄: 10岁以上

这本书对孩子来说既全面又容易理解。内容适合小学生,但也适合许多成人学习者看。

链接:

8. Coding Projects in Python

(Python编码项目)

作者:DK出版公司

适合年龄: 9-12岁

不管孩子已经学了Scratch之类的块语言,还是没有做过任何编程,都可以在这本书里找到需要的一切来构建软件。书后面的词汇和参考部分对孩子来说很有帮助。

链接:

9. Python in Easy Steps

(学习Python的简单步骤)

作者:Mike McGrath

适合年龄:中学及以上

本书不是专门为孩子写的,但它内容组织得很好,中学生,尤其是有一些Scratch或其他语言经验的中学生,可以很容易地理解它。读完本书,学生可以用Python构建简单的网页和编写桌面应用程序。

10. Hello World! Computer Programming for Kids and Other Beginners

(中文版:父与子的编程之旅:与小卡特一起学Python)

作者:Warren Sande

适合年龄: 12岁以上

学习编码时,大家编写的第一个程序就是在屏幕上显示“Hello World”。本书沿袭了这一传统,并为新手提供构建任何类型有用软件所需的必要技能。

链接:

Java

Java是一种非常流行的语言,用于所有操作系统和Android设备。这也是高中计算机科学课程中最常见的语言。

11. Java Programming for Kids: Learn Java Step by Step and Build Your Own Interactive Calculator for Fun!

(面向儿童的Java编程:逐步学习Java,并构建自己的交互式计算器)

作者:R. Chandler Thompson

适合年龄: 13-17岁

这本书既有趣又简单。青少年读者可以通过Java编程语言,构建交互式计算器应用程序。

12. Java for Kids (and grown ups): Learn to Code and Create Your Own Projects with Java 8

(面向儿童和成年人的Java:学习用Java 8编写代码并创建自己的项目)

作者:Nadia Ameziane Garcia

适合年龄: 10-12岁

这本书只介绍学习过程中每一步所需要的东西。每一章都建立在前文介绍的基础上,孩子们可以在短时间内学会Java的基础知识。

C++

这不是最容易学的语言,但精通C++的人会更了解计算机是如何工作的。

13. C++ Progamming In Easy Steps

(C++编程的简单步骤)

作者:Mike McGrath

适合年龄:中学及以上

作者通过一系列简单的课程介绍了C++,并提供大量专家提示,以帮助读者获得最佳编程实践。这本书让孩子们短时间内学会C++基础知识,并可能沿用很多年。

14. C++ for Kids

(适合儿童的C++语言)

作者:Blaise Vanden-Heuvel、John C Vanden-Heuvel Sr.

适合年龄: 7-9岁

这本简短多彩的书向孩子们展示了C++编程是如何工作的。示例程序各色各样,这样孩子们就能理解程序的各个部分实际上是做什么的。

Web开发类

HTML和CSS

网页用HTML构建,用CSS设计风格。这些不是真正的编程语言,但它们让孩子接触文本编辑器、构思想法,对日后探索Javascript或Python之类的语言很有用。

15. Build Your Own Website, a Comic Guide to HTML, CSS and WordPress

(建立你自己的网站,HTML、CSS和WordPress的漫画指南)

作者:Nate Cooper、Kim Gee

适合年龄:中学及以上

在这本漫画风格的网站搭建指南中,孩子们学习HTML标记语言,熟悉控制网页样式的CSS语言,了解内容管理系统WordPress。

链接:

16. CoderDojo Nano: Building a Website: Create with Code

(用代码搭建网站)

作者:Clyde Hatter、CoderDojo

适合年龄: 8-12岁

这本书只有96页,引导孩子们完成建立网站的整个过程。孩子可以建立一个和书中例子完全一样的网站,也可以试着建自己喜欢的网站。

17. Creating a Website: Design and Build Your First Site

(创建网站:设计和建立你的第一个网站)

作者:Greg Rickaby

适合年龄: 7-11岁

这本书为孩子设计网页提供指南,从规划网站的结构到添加使网站与众不同的细节。同时提供了软件工程师在现实世界中使用的许多技巧和操作过程。

JavaScript

许多程序员认为JavaScript是互联网的未来,学习这种语言可以建立互动性强的、有用的网站。

18. Computer Coding with Javascript

(使用Javascript进行计算机编码)

作者:DK出版公司

适合年龄: 8-12岁

从HTML、CSS转到JavaScript可能容易晕,因为JavaScript更加复杂、强大。但这本书内容比较简单,孩子们可以顺利过渡。

19. Javascript for Kids: A Playful Introduction to Programming

(面向儿童的JavaScript:有趣的编程入门)

作者:Nick Morgan

适合年龄: 10岁以上

本书从数组、变量类型讨论到游戏编程。无论孩子想制作游戏、制作动画还是使用虚拟现实,JavaScript都能让他们把想法变成真实的程序。

链接:

20. Javascript for Kids For Dummies

(面向儿童的JavaScript傻瓜书)

作者:Chris Minnick、Eva Holland

适合年龄: 10-13岁

如果你有兴趣读编程书,帮孩子学习编码,试试这本。这本书远远超出基本内容,方便读者构建任何能想到的Web项目。

链接:

21. Get Coding! Learn HTML, CSS, Javascript Build a Website, App Game

(编码!学习HTML,CSS,Javascript ;建立一个网站,应用程序和游戏)

作者:Young Rewired State

适合年龄: 9-12岁

这本书中的课程是以任务形式呈现的,教导孩子构建网站、应用程序和游戏。他们还会了解不同类型的编程语言以及每种语言的优点。

移动开发

安卓应用

App Inventor是一个完全在线开发的Android编程环境,具有类似Scratch的块编程界面。它简化了移动开发过程,是向孩子们介绍Android编程的理想方式。

22. Building a Mobile App

(构建移动应用程序)

作者:Guthals

适合年龄: 7-11岁

读这本书的孩子不仅学习编码,还学习规划、开发自己的定制应用。本书提供了专业人员使用的应用程序开发的内容,包括原型制作和创建应用程序框架,对热爱移动开发的孩子来说特别有价值。

23. Hello App Inventor

(你好,App Inventor)

作者:Paula Beer、Carl Simmons

适合年龄: 9岁以上

使用App Inventor构建的应用可以利用许多智能手机功能,如运动传感器、GPS和相机。本书通过30个示例项目向读者展示了如何利用这些功能。

链接:

iOS应用

为了构建苹果产品应用程序,开发人员使用了一种叫Swift的语言。创建这种语言时,软件工程师想让没经验的人容易学习。对于从未编程的孩子来说,这是一个很好的选择。

24. Coding iPhone Apps for Kids

(适合孩子的iPhone应用程序编码)

作者:Gloria Winquist、Matt McCarthy

适合年龄: 10岁以上

本书介绍了Swift语言和编码基础,并让孩子们构建两个真正的应用程序:一个生日跟踪器和一个滑板游戏。

25. Hello Swift

(你好,Swift)

作者: Tanmay Bakshi、Lynn Beighley

适合年龄: 9岁以上

Tanmay Bakshi可以说是我们的老朋友了,智能观从去年开始就报道他的故事。他4岁编码,9岁就发布第一个应用程序。通过他的书,读者也会构建能在iOS应用商店上发布的应用程序。

如果还有人对他不了解,可以看看我们往期的报道。附传送门:

13岁天才少年在IBM掀起一场人工智能风暴

IBM少年工程师说:人工智能的下一个前沿是心理健康

游戏编程

Scratch游戏编程

26. Coding Games in Scratch

(用Scratch编码游戏)

作者:Jon Woodcock

适合年龄: 8-12岁

这本书让孩子在浏览器中制作自己的游戏。

27. Code Your Own Games: 20 Games to Create with Scratch

(编码自己的游戏: 用Scratch创建20个游戏)

作者: Max Wainewright

适合年龄: 6-11岁

这本书分5个层次递进,20个游戏项目让孩子们熟悉编码和游戏开发的原理。每款游戏都锻炼了孩子们的能力,比如控制玩家互动、在屏幕上设置对象动画、添加声音。

28. Star Wars Coding Projects

(星球大战编码项目)

作者:Jon Woodcock、Kiki Prottsman

适合年龄: 8-12岁

喜欢《星球大战》的孩子可以通过C3PO、R2D2和其他角色学习编码。读者不需要任何编程经验就可以看这本书。

Python游戏编程

29. Mission Python

(Python任务)

作者:Sean McManus

适合年龄: 10岁以上

虽然对于10岁的孩子来说,这本书有点简单了,但它探索了Python游戏编程的深度。书从Python Essentials插件开始,逐渐深入更高级的概念,如音频文件处理和3D图形。

30. Invent Your Own Computer Games with Python

(中文版:Python编程快速上手——让繁琐工作自动化)

作者:Al Sweigart

适合年龄: 10岁以上

这本书通过对Hangman和Tic-Tac-Toe等几款流行游戏进行详细解释来教授编程。

链接:

我的世界

31. Learn to Program with Minecraft

(用我的世界学项目)

作者:Craig Richardson

适合年龄: 10岁以上

《我的世界》是一款受欢迎的3D游戏,孩子们可以在虚拟世界中探索、建造城堡等。本书介绍了如何使用Python编程扩展《我的世界》。

链接:

32. Minecraft Modding for Kids For Dummies

(用我的世界教孩子建模的傻瓜书)

作者:Guthals、Stephen Foster、 Lindsey Handley

适合年龄: 10-13岁

通过9个JavaScript项目,孩子们从《我的世界》里的“玩家”化身为 “建模师”。读者要有玩《我的世界》的经验,但不需要以前学过编码。

机器人和物联网

Arduino

Arduino是一台微型计算机,可以用传感器、LED灯和马达等小硬件控制各种电路。学习Arduino不仅仅意味着学习编码;它包括设计和建造真实世界的项目。

33. Adventures in Arduino

(Arduino历险记)

作者:Becky Stewart

适合年龄: 11-15岁

喜欢机械和工程的孩子会喜欢本书中的项目。孩子们了解Arduino,然后上手一些简单的项目,比如让LED灯亮起来。

链接:

34. Sylvia’s Super-Awesome Project Book: Super-Simple Arduino

(Sylvia的超棒项目书:超级简单的Arduino)

作者:Sylvia "Super-Awesome" Todd

适合年龄: 8-12岁

Sylvia介绍了如何建立Arduino项目来控制灯光和制作音乐等。这些项目不是复制代码,罗列事物,而是对事物如何工作以及为什么工作进行了详细解释。

树莓派

你可以把树莓派(Raspberry Pi)当成Arduino的升级版。两台计算机的尺寸差不多,但是树莓派的操作系统更接近笔记本电脑。

35. Raspberry Pi Projects Workbook

(树莓派项目工作簿)

作者:DK出版公司

适合年龄: 7-12岁

孩子们可要通过这本书制作游戏,制作音乐,制作动画,学习Scratch、Python和Raspberry Pi。

链接:

36. Adventures in Raspberry Pi

(树莓派历险记)

作者:Carrie Anne Philbin

适合年龄: 11-15岁

本书介绍的9个项目让孩子们快速上手树莓派,涵盖的概念编程有基础、游戏编程、图形创建等。

链接:

乐高机器人

乐高生产了几个套件,包括机器人滚动、旋转甚至攀爬的所有必要部件。他们也有自己的语言,孩子们用这些语言来创作。

37. The Art of Lego Mindstorms EV3 Programming

(乐高头脑风暴EV3编程的艺术)

作者:Terry Griffin

适合年龄: 10岁以上

本书教孩子们在EV3头脑风暴编程环境中,控制自己的机器人。他们学习如何建造乐高机器人并用代码控制它。

38. Building Robots with Lego Mindstorms

(用乐高头脑风暴套件制造机器人)

作者: Mario Ferrari、Giulio Ferrari、Ralph Hempel

适合年龄: 10岁以上

在本书中,孩子们使用电子电路和传感器,以及乐高头脑风暴套件,学习制造机器人。书中有大量关于齿轮、马达、气动和其他工程概念的信息,对于严肃的机器人爱好者来说很重要。

适合学龄前儿童的编码书

为低龄儿童设计的编码书,帮助儿童建立对计算机程序的模式、颜色和其他基本要素的认知。

39. Baby Loves Coding

(宝贝喜欢编码)

作者:Ruth Spiro

适合年龄:学前及以上

因为是给很小的孩子看的,书中没有提供任何明确的编码指导。它介绍了解决问题的方法,以及优秀程序员需要有的想法。

40. Learn to code: Robot Train’s Surprise Birthday Party (Volume 1)

(学会编码:机器人火车的惊喜生日聚会I)

作者:by Jen Chiou

适合年龄:学前及以上

孩子在本书中了解编码的先决条件,如决策和逻辑。通过触摸书上像按钮的图片,孩子们帮助一辆虚构的机器人火车向生日派对运送用品,从而了解编码逻辑是如何工作的。

41. HTML for Babies

(适合婴儿的超文本标记语言)

作者:Sterling Children's

适合年龄: 3-5岁

HTML是一种简单的标记语言,不需要复杂的逻辑,3-5岁的孩子可以通过本书,学会识别与网络编程相关的符号和颜色。

42. JavaScript for Babies

(适合婴儿的JavaScript语言)

作者:Sterling Children's

适合年龄: 3-5岁

这本书让孩子们了解JavaScript的一些基本结构和数据类型。

有趣的青少年编码书

让青少年读一本编程类的书可能很困难,所以以下书籍通过游戏开发和其他有趣的项目,帮助青少年学习。

43. Computer Programming for Teens

(适合青少年的电脑编程)

作者:Mary E. Farrell

适合年龄:青少年

没有编码经验的孩子和那些不知道学什么语言的孩子,是本书的目标受众。书中有一些C++、Python和Web编程语言的例子,孩子们将会找到最适合自己的编码项目。

44. Game Programming for Teens

(适合青少年的游戏编程)

作者:Maneesh Sethi

适合年龄:青少年

本书介绍了一种名为BlitzMax的游戏专用语言,它使孩子们能在所有平台( Windows、Mac、Linux )构建游戏。

链接:

适合女孩的编码书,STEM入门

女孩可以通过编程提前接触STEM。构建应用程序、开发游戏、编程机器人——这些活动为女孩们进入STEM领域奠定了坚实的基础。

45. Women Who Launched the Computer Age

(开创计算机时代的女性)

作者:Laurie Calkhoven

适合年龄: 6-8岁

本书讲述了6位在二战期间为美国军方从事秘密项目的天才女性。

46. Grace Hopper: Queen of Computer Code

(格雷斯·霍普:计算机代码女王)

作者:Laurie Wallmark

适合年龄: 5岁以上

格雷斯·霍普是一位有创造力的计算机科学家和数学家,也是一位授勋的海军军官和总统自由勋章获得者。孩子们会在她精彩的生活和成就中找到鼓励。

47. Girls Who Code: Learn to Code and Change the World

(学会编码并改变世界)

作者:Reshma Saujani

适合年龄: 10岁以上

Reshma Saujani是女孩编码组织“Girls Who Code”的创始人,她在本书中介绍了电脑和编码,以及在科技领域工作的女性的轶事。

培养儿童编码兴趣的通用读物

编码的孩子受益于问题解决、数学和决策能力。一些优秀的儿童计算机科学通用读物侧重于培养孩子对编码的兴趣。

48. Lauren Ipsum: A Story About Computer Science and Other Improbable Things

(劳伦·益普森:关于计算机科学和其他不可思议的故事)

作者:Carlos Bueno

适合年龄: 10岁以上

一个年轻的女孩需要找到回家的路,但要做到这一点,必须解决一个个难题……读者不知不觉中,接触到了编程逻辑、解决问题的技巧和其他计算机科学思想。

49. Once Upon an Algorithm

(从前有个算法)

作者:Martin Erwig

适合年龄:中学及以上

算法是解决问题的一组指令或过程。你可能觉得孩子们不太想看这个。但作者Martin Erwig通过类比、童话和电影引用,使算法变得有趣。

原文链接:

—完—

扩展阅读:

适合孩子学习编码的7款工具套件

干货|| 如何在线学习编码?看看这 11个优秀的编程资源网站

教孩子编码就够了吗?不!学校该培养的是计算思维

每个人都应该学习编码吗?吴恩达这样回答……

如果学生编程能力胜于老师,编码课该怎么教?

亲爱的朋友:

经常有读者咨询,有没有适合孩子的编码书推荐?

我们之前推荐过一些,但苦于无中文版,很多读者找不到购买方式。

今天的推荐,内容比较全面,我们可爱的小编找遍了资源,将能找到电子版都找到,一并送给你。

其余没有资源的,网上也可以买到。

如果本文对你有帮助,别忘了转发给你身边的朋友,让它帮助更多人。

祝安!

PS:为了方便与读者探讨,特意注册了一个专用号。如果你也是我们的铁杆读者,想探讨交流,可以加微信:znglmym。

智能观 灵米

2018-9-12 于北京中关村

想知道AI加教育领域有哪些最新研究成果?

想要AI领域更多的干货?

想了解更多专家的“智能观”?

请前往:www.智能观.com。

想交流沟通,请加负责人微信:znglmym

声明:

编译文章旨在帮助读者了解行业新思想、新观点及新动态,为原作者观点,不代表智能观观点。

转载智能观原创文章,请联系

智能观小艾(微信号:zng2017618)!

关于我们

我们关注AI+教育。致力于提供高附加值的知识,以帮助每一位老师和我们的读者不断学习并提高技能。

我们努力让发表的每一篇文章都具有最佳质量,以满足读者的需求。

求简单java写计算器代码加减乘除

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Calculator extends JFrame implements ActionListener

{

private boolean dotExist, operated, equaled; // 帮助运算的布尔变量

private double storedNumber; // 目前的结果

private char lastOperator; // 表示上一运算符

private JTextField operation; // 结果栏

private JButton dot, plus, minus, multi, div, sqrt, equal, changePN, clear; // 运算符

private JButton[] numbers; // 数字

// 构造者

public Calculator()

{

setTitle("Calculator");

// 初始化变量

dotExist = false; // 表示当前的数是否有小数点

operated = false; // 表示任意运算符是否被按下

equaled = false; // 表示等号是否被按下

storedNumber = 0;

lastOperator = '?';

// 初始化窗口变量

operation = new JTextField("0");

operation.setEditable(false);

numbers = new JButton[10];

for (int i = 0; i 10; i++)

numbers[i] = new JButton("" + i);

dot = new JButton(".");

plus = new JButton("+");

minus = new JButton("-");

multi = new JButton("*");

div = new JButton("/");

sqrt = new JButton("√");

equal = new JButton("=");

changePN = new JButton("±");

clear = new JButton("AC");

// 将窗口物体放入窗口

GridBagLayout layout = new GridBagLayout();

getContentPane().setLayout(layout);

addComponent(layout, operation, 0, 0, 4, 1);

addComponent(layout, numbers[1], 1, 0, 1, 1);

addComponent(layout, numbers[2], 1, 1, 1, 1);

addComponent(layout, numbers[3], 1, 2, 1, 1);

addComponent(layout, numbers[4], 2, 0, 1, 1);

addComponent(layout, numbers[5], 2, 1, 1, 1);

addComponent(layout, numbers[6], 2, 2, 1, 1);

addComponent(layout, numbers[7], 3, 0, 1, 1);

addComponent(layout, numbers[8], 3, 1, 1, 1);

addComponent(layout, numbers[9], 3, 2, 1, 1);

addComponent(layout, dot, 4, 0, 1, 1);

addComponent(layout, numbers[0], 4, 1, 1, 1);

addComponent(layout, sqrt, 4, 2, 1, 1);

addComponent(layout, plus, 1, 3, 1, 1);

addComponent(layout, minus, 2, 3, 1, 1);

addComponent(layout, multi, 3, 3, 1, 1);

addComponent(layout, div, 4, 3, 1, 1);

addComponent(layout, equal, 5, 0, 2, 1);

addComponent(layout, changePN, 5, 2, 1, 1);

addComponent(layout, clear, 5, 3, 1, 1);

}

// 对按钮进行反应的方法

public void actionPerformed(ActionEvent e)

{

JButton btn = (JButton)e.getSource();

if (btn == clear)

{

operation.setText("0");

dotExist = false;

storedNumber = 0;

lastOperator = '?';

}

else if (btn == equal)

{

operate('=');

equaled = true;

}

else if (btn == plus)

{

operate('+');

equaled = false;

}

else if (btn == minus)

{

operate('-');

equaled = false;

}

else if (btn == multi)

{

operate('*');

equaled = false;

}

else if (btn == div)

{

operate('/');

equaled = false;

}

else if (btn == changePN)

{

operate('p');

operate('=');

equaled = true;

}

else if (btn == sqrt)

{

operate('s');

operate('=');

equaled = true;

}

else

{

if (equaled)

storedNumber = 0;

for (int i = 0; i 10; i++)

if (btn == numbers[i])

{

if (operation.getText().equals("0"))

operation.setText("" + i);

else if(! operated)

operation.setText(operation.getText() + i);

else

{

operation.setText("" + i);

operated = false;

}

}

if (btn == dot ! dotExist)

{

operation.setText(operation.getText() + ".");

dotExist = true;

}

}

}

// 进行运算的方法

private void operate(char operator)

{

double currentNumber = Double.valueOf(operation.getText()).doubleValue();

if (lastOperator == '?')

storedNumber = currentNumber;

else if (lastOperator == '+')

storedNumber += currentNumber;

else if (lastOperator == '-')

storedNumber -= currentNumber;

else if (lastOperator == '*')

storedNumber *= currentNumber;

else if (lastOperator == '/')

storedNumber /= currentNumber;

else if (lastOperator == 'p')

storedNumber *= -1;

else if (lastOperator == 's')

storedNumber = Math.sqrt(currentNumber);

else if (lastOperator == '=' equaled)

storedNumber = currentNumber;

operation.setText("" + storedNumber);

operated = true;

lastOperator = operator;

}

// 快捷使用GridBagLayout的方法

private void addComponent(GridBagLayout layout, Component component, int row, int col, int width, int height)

{

GridBagConstraints constraints = new GridBagConstraints();

constraints.fill = GridBagConstraints.BOTH;

constraints.insets = new Insets(10, 2, 10, 2);

constraints.weightx = 100;

constraints.weighty = 100;

constraints.gridx = col;

constraints.gridy = row;

constraints.gridwidth = width;

constraints.gridheight = height;

layout.setConstraints(component, constraints);

if (component instanceof JButton)

((JButton)component).addActionListener(this);

getContentPane().add(component);

}

// 主方法初始化并显示窗口

public static void main(String[] args)

{

Calculator calc = new Calculator();

calc.setSize(290, 400);

calc.setVisible(true);

}

}

用java写个简单的加减计算器

不仅可以加减还可以乘除,代码如下:

package 计算器;

import java.awt.BorderLayout;

import java.awt.Container;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class Calculator extends JFrame implements ActionListener {

boolean flag = false;

JTextField jtf = new JTextField();

public static void main(String[] args) {

new Calculator();

}

public Calculator() {

setSize(300, 300);

setTitle("计算器");

Container c = getContentPane();

jtf.setHorizontalAlignment(JTextField.RIGHT);

JButton jb = new JButton("=");

jb.addActionListener(this);

JPanel jp = new JPanel();

c.add(jtf, BorderLayout.NORTH);

c.add(jp, BorderLayout.CENTER);

c.add(jb, BorderLayout.SOUTH);

jp.setLayout(new GridLayout(4, 4));

addButton(jp);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setResizable(false);

setVisible(true);

}

public void addButton(JPanel jp) {

JButton b = null;

b = new JButton("1");

b.addActionListener(this);

jp.add(b);

b = new JButton("2");

b.addActionListener(this);

jp.add(b);

b = new JButton("3");

b.addActionListener(this);

jp.add(b);

b = new JButton("+");

b.addActionListener(this);

jp.add(b);

b = new JButton("4");

b.addActionListener(this);

jp.add(b);

b = new JButton("5");

b.addActionListener(this);

jp.add(b);

b = new JButton("6");

b.addActionListener(this);

jp.add(b);

b = new JButton("-");

b.addActionListener(this);

jp.add(b);

b = new JButton("7");

b.addActionListener(this);

jp.add(b);

b = new JButton("8");

b.addActionListener(this);

jp.add(b);

b = new JButton("9");

b.addActionListener(this);

jp.add(b);

b = new JButton("*");

b.addActionListener(this);

jp.add(b);

b = new JButton("0");

b.addActionListener(this);

jp.add(b);

b = new JButton(".");

b.addActionListener(this);

jp.add(b);

b = new JButton("C");

b.addActionListener(this);

jp.add(b);

b = new JButton("/");

b.addActionListener(this);

jp.add(b);

}

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand() == "=") {

if (jtf.getText().matches("\\d+\\.?\\d*[\\+\\-\\*\\/]\\d+\\.?\\d*")) {

String s = jtf.getText();

Pattern p = Pattern.compile("\\d+\\.?\\d*");

Matcher m = p.matcher(s);

m.find();

double firstNum = Double.parseDouble(m.group());

m.find();

double secondNum = Double.parseDouble(m.group());

if (jtf.getText().matches("\\d+\\.?\\d*\\+\\d+\\.?\\d*")) {

jtf.setText("" + (firstNum + secondNum));

} else if (jtf.getText().matches("\\d+\\.?\\d*\\-\\d+\\.?\\d*")) {

jtf.setText("" + (firstNum - secondNum));

} else if (jtf.getText().matches("\\d+\\.?\\d*\\*\\d+\\.?\\d*")) {

jtf.setText("" + (firstNum * secondNum));

} else if (jtf.getText().matches("\\d+\\.?\\d*\\/\\d+\\.?\\d*")) {

jtf.setText("" + (firstNum / secondNum));

}

} else {

JOptionPane.showMessageDialog(null, "请输入正确表达式!");

}

flag = true;

} else if (e.getActionCommand() == "C") {

jtf.setText("");

} else {

if (flag) {

if (e.getActionCommand() != "+" e.getActionCommand() != "-"

e.getActionCommand() != "*"

e.getActionCommand() != "/") {

//System.out.println(e.getActionCommand() != "+");

jtf.setText("");

}

flag = false;

}

jtf.setText(jtf.getText() + e.getActionCommand());

}

}

}

求:Java 计算器加减乘除代码 注释

public class MyComputer implements ActionListener{

private boolean appendnumber = false;

private boolean append = false;

private boolean flag = false;

private String temp1 = null;

private String op1 = null;

private JTextField jtf = new JTextField("0.",28);

public MyComputer(){

init();

}

private void init() {

/*

* 下面都是在画计算机界面你想看也可以,

* 不看也行,具体计算在public void

* actionPerformed(ActionEvent e)

* 里

*/

JFrame frame = new JFrame("我的计算器");

JPanel panelTop = new JPanel();

panelTop.setLayout(new FlowLayout());

panelTop.add(jtf);

JPanel panelBotton = new JPanel();

String[] str = {"BackSpace","CE","C","+",

"7","8","9","-",

"4","5","6","*",

"1","2","3","/",

"0","+/-",".","="};

JButton[] jb = new JButton[str.length];

panelBotton.setLayout(new GridLayout(5,4));

for(int i = 0;i jb.length;i++)

{

jb[i] = new JButton(str[i]);

panelBotton.add(jb[i]);

jb[i].addActionListener(this);

}

frame.add(panelTop,BorderLayout.NORTH);

frame.add(panelBotton);

frame.setSize(400, 400);

frame.setVisible(true);

}

public static void main(String[] args) {

new MyComputer();

}

public void actionPerformed(ActionEvent e) {

String comm = e.getActionCommand();//获得button里的数据

/*

* "0123456789".indexOf(comm)!=-1是判断button里获得的数据

* 是0---9的情况

*/

if ("0123456789".indexOf(comm)!=-1) {

if(!appendnumber){

jtf.setText(comm);

appendnumber = true;

}else{

jtf.setText(jtf.getText()+comm);

}

}

/*

* 判断button里获得的数据是加减乘除的情况

*/

if("+-*/".indexOf(comm)!=-1){

//在遇到加减乘除的符号时我们先存储刚输入的值

temp1 = jtf.getText();

//然后存储符号

op1 = comm;

/*

* 然后可以重新输入数据到输入框,所以这时候我们

* 不能追加数据,设置追加数据标志为false

*/

appendnumber = false;

}

/*

* 判断button里获得的数据是等号的情况

*/

else if("=".equals(comm)) {

if(temp1==null||"".equals(temp1))return;

/*

* 遇到等号的时候,我们取出刚才保存的数据和当前输入的数据做运算

*/

double num1 = Double.parseDouble(temp1);//转化数据成double型的

double num2 = Double.parseDouble(jtf.getText());//转化数据成double型的

//取出刚才保存的符号看是加减乘除的那种运算

if("+".equals(op1)){

num1+=num2;

}

if("-".equals(op1)){

num1-=num2;

}

if ("*".equals(op1)) {

num1*=num2;

}

if("/".equals(op1)){

num1/=num2;

}

jtf.setText(num1+"");

appendnumber = false;

}

/*

* 判断button里获得的数据是小数点的情况

*/

else if (".".equals(comm)) {

if(jtf.getText().indexOf(".")==-1){

append = true;

}

if (append) {

jtf.setText(jtf.getText()+".");

append = false;

appendnumber = true;

}

}

/*

* 判断button里获得的数据是在数据前面加正负号的情况

*/

else if ("+/-".equals(comm)) {

if(!flag){

jtf.setText("-"+jtf.getText());

flag = true;

}

else{

String result = jtf.getText().substring(1, jtf.getText().length());

jtf.setText(result);

flag = false;

}

}

/*

* 判断button里获得的数据是清除输入框的情况

*/

else if ("C".equals(comm)) {

jtf.setText("0.");

appendnumber = false;

}

/*

* 判断button里获得的数据是清除输入框的情况

*/

else if ("CE".equals(comm)) {

jtf.setText("0.");

appendnumber = false;

}

/*

* 判断button里获得的数据是输入框的数据退一位的情况

*/

else if ("BackSpace".equals(comm)) {

if(jtf.getText()==null||"".equals(jtf.getText()))return;

String result = jtf.getText().substring(0, jtf.getText().length()-1);

jtf.setText(result+"");

appendnumber = true;

}

}

}

很简单的东西啊!你们去分那么多情况啊!这个东西啊一个人写半个小时就OK了,如果你会写的话,其实初学者们别因为别人怎么怎么说就吓倒,其实这写起来都没多少代码的,都是些小东西而已。最重要的是你要搞懂来龙去脉就不难了,别听一些人吹谁谁牛X这类的,其实你认真的去做,认真的去思考,你也不比他们差。

java加法计算器代码

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener

public class NewJFrame extends javax.swing.JFrame {

public NewJFrame() {

initComponents();

}

private void initComponents() {

jPanel1 = new javax.swing.JPanel();

jLabel1 = new javax.swing.JLabel();

jLabel2 = new javax.swing.JLabel();

jLabel3 = new javax.swing.JLabel();

num1 = new javax.swing.JTextField();

num2 = new javax.swing.JTextField();

result = new javax.swing.JTextField();

addBtn = new javax.swing.JButton();

jMenuBar1 = new javax.swing.JMenuBar();

jMenu1 = new javax.swing.JMenu();

jMenu3 = new javax.swing.JMenu();

jMenu2 = new javax.swing.JMenu();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setText("Num1:");

jLabel2.setText("Num2:");

jLabel3.setText("Num3:");

addBtn.setText("Add");

addBtn.addActionListener(new jisuanAC());

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(53, 53, 53)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(addBtn)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()

.addComponent(jLabel1)

.addGap(31, 31, 31)

.addComponent(num1, javax.swing.GroupLayout.DEFAULT_SIZE, 98, Short.MAX_VALUE))

.addGroup(jPanel1Layout.createSequentialGroup()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabel2)

.addComponent(jLabel3))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 31, Short.MAX_VALUE)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

.addComponent(result)

.addComponent(num2, javax.swing.GroupLayout.DEFAULT_SIZE, 98, Short.MAX_VALUE))))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)))

.addGap(168, 168, 168))

);

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(19, 19, 19)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel1)

.addComponent(num1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel2)

.addComponent(num2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel3)

.addComponent(result, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(61, 61, 61)

.addComponent(addBtn)

.addContainerGap(81, Short.MAX_VALUE))

);

jMenu1.setText("Operation");

jMenu3.setText("Add");

jMenu1.add(jMenu3);

jMenuBar1.add(jMenu1);

jMenu2.setText("Exit");

jMenuBar1.add(jMenu2);

setJMenuBar(jMenuBar1);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addContainerGap())

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addContainerGap())

);

pack();

}// /editor-fold

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new NewJFrame().setVisible(true);

}

});

}

private class jisuanAC implements ActionListener

{

public void actionPerformed(ActionEvent e) {

if(e.getSource()== addBtn)

{

int number1 = Integer.parseInt(num1.getText());

int number2 = Integer.parseInt(num2.getText());

int rs = number1 + number2;

result.setText(String.valueOf(rs));

}

}

}

// Variables declaration - do not modify

private javax.swing.JButton addBtn;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JMenu jMenu1;

private javax.swing.JMenu jMenu2;

private javax.swing.JMenu jMenu3;

private javax.swing.JMenuBar jMenuBar1;

private javax.swing.JPanel jPanel1;

private javax.swing.JTextField num1;

private javax.swing.JTextField num2;

private javax.swing.JTextField result;

}

这是只有一个加法的例子!希望帮到你


本文名称:加法计算器java代码,加法计算器java代码怎么用
URL网址:http://myzitong.com/article/hodeec.html