20202310 实验二Java基础(数据、表达式、判定、循环语句)

实验二 Java基础(数据/表达式、判定/循环语句)

 

 

(一)实验内容
1) 编写简单的计算器,完成加减乘除模运算。
2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出。
3) 编写测试代码,测试验证。(https://www.cnblogs.com/rocedu/p/4472842.html


(二)实验要求

1) 掌握数据的定义和表达式求解的基础知识
2) 掌握循环和判定语句的使用

(三)助教验收

1) 简单计算机器的验收
2) 测试验收
3) 上传到码云

(四)实验报告


课程:《程序设计与数据结构》
班级: 2023
姓名: 肖衍豪
学号:20202310
实验教师:王志强
实验日期:2021923
必修/选修: 必修

## 1.实验内容
1) 编写简单的计算器,完成加减乘除模运算。
2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出。
3) 编写测试代码,测试验证。(https://www.cnblogs.com/rocedu/p/4472842.html

## 2. 实验过程及结果

1)首先进行编辑的是简单的运算器,该运算器能够实现加减乘除取模等最基本的运算功能,并且能够在一组数据运算完成之后再进行下一次运算,经过最各个功能的实现进行分析后,写出如下代码:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.awt.FlowLayout;

 

import javax.swing.*;

 

@SuppressWarnings("unused")

class Sumjp {

 

JOptionPane jp = new JOptionPane();

Sumjp(String str) {

JOptionPane.showMessageDialog(null, str);

System.exit(0);

}

Sumjp(String[] str){

 

}

}

 

public class JiSuan extends JFrame implements ActionListener,ItemListener{

 

/**

 *

 */

private static final long serialVersionUID = 1L;

double x1,x2,sum = 0;

String f;

 

JTextField txt = new JTextField(30);

JTextField txt1 = new JTextField(5);

JTextField txt2 = new JTextField(5);

JTextField txt3 = new JTextField(5);

JLabel lb1 = new JLabel("数据1");

JLabel lb2 = new JLabel("符号:");

JLabel lb3 = new JLabel("数据2");

JButton jbtn = new JButton("确定");

 

JiSuan(){

setSize(350,150);

setVisible(true);

setTitle("计算器:");

setDefaultCloseOperation(EXIT_ON_CLOSE);

setLayout(new FlowLayout());

add(lb1);

add(txt1);

// add(lb2);

// add(txt2);

JComboBox<String> jc = new JComboBox<String>();

jc.addItem("");

jc.addItem("");

jc.addItem("");

jc.addItem("");

add(jc);

add(lb3);

add(txt3);

add(jbtn);

add(txt);

validate();

jc.addItemListener(this);

jbtn.addActionListener(this);

}

public void itemStateChanged(ItemEvent ie){

f = (String)ie.getItem().toString();

}

public void actionPerformed(ActionEvent e){

x1 = Double.parseDouble(txt1.getText());

//f = txt2.getText();

x2 = Double.parseDouble(txt3.getText());

if(f.equals("")){

sum = x1 + x2;

}

if(f.equals("")){

sum = x1 - x2;

}

if(f.equals("")){

sum = x1*x2;

}

if(f.equals("")){

sum = x1/x2;

}

txt.setText(x1 + f + x2 + "=" + sum);

new Sumjp(x1 + f + x2 + "=" + sum);

}

public static void main(String[] args) {

new JiSuan();

}

 

}

 

 

2IDEA软件中对代码进行编译及运行,对于该程序的可行性进行验证,如果有语法错误或者功能性缺陷重新对代码进行修改调整

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

## 3. 实验过程中遇到的问题和解决过程
- 问题1不太会写对于一个运算器其中一个重要的部件循环语句do-while语句
- 问题1解决方案:上网查找相关资料,掌握do-while语句的写法

 -问题2IDEA上运行代码的时候发现JDK文件不小心被删除了,导致无法编译运行
- 问题2解决方案:重新下载安装JDK文件



## 其他(感悟、思考等)
   对于一个运算器来说实现加减乘除取模运算是其最基本的功能,要实现该功能我在以前的C语言实验课中有进行过相关的程序编写,利用循环判断语句进行程序编写。相比较于C语言,Java面向对象的特点显然在编写运算器的时候更具有优势,也能更加简洁的实现相关功能,在对Java进行编写的时候我发现了两种语言的共性和个性,对于编写中的错误我发现Java更加难以发现和纠正,因此导致编写更加费力,还有一个重要原因就是刚刚接触Java不久,对于Java的语法较为陌生,在编写的时候无法随心所遇,在修正的时候也会存在找不到错误原因的情况。

## 参考资料

-  [Java程序设计与数据结构教程(第二版)》](https://book.douban.com/subject/26851579/)

-  [Java程序设计与数据结构教程(第二版)》学习指导](http://www.cnblogs.com/rocedu/p/5182332.html)

posted @ 2021-09-30 17:06  20202310肖衍豪  阅读(48)  评论(0编辑  收藏  举报