计算器实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二、巩固Java基础
一、实验目的
1)巩固Java语言进行结构化程序设计基本概念。
2)巩固Java语言进行面向对象程序设计基本概念。
3)能够应用面向对象程序设计思想解决实际问题。
二、实验内容
1)创建学生类Student来完成下面问题。
(1)创建类Student,包括属性学号no、姓名name和年龄age,且都是private 类型;
(2)声明一个构造方法,以初始化对象的所有的域;
(3)声明获得各属性(学号、姓名和年龄)的各个方法;
(4)声明设置各属性(学号、姓名和年龄)的各个方法;
(5)声明一个public型的toString方法,将该类所有域信息组合成一个字符串;(6)声明统计创建Student对象的个数的成员变量count和得到Student对象的个数的方法。
在主类中使用Student类创建两个Student对象,输出对象所有域信息;修改其姓名和年龄,并显示。
public class Student {
//无参构造函数
public Student(){}
//有参构造函数
public Student(String no, String name, int age){
this.no = no;
this.age = age;
= name;
}
private String no; //学号
private String name;//名称
private int age;//年龄
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//-----------------------------Set 跟Get 方法end ------------------
//重写toString方法
@Override
public String toString() {
return "我的名字叫:".concat(name).concat(",学号是:").concat(no).concat(",今年").concat(age+"岁了!");
}
//程序入口
public static void main(String[] args) {
//学生对象1
stu = new Student("00001", "小明", 18);
System.out.println(stu.toString());
//学生对象2
stu = new Student("00002", "小花", 22);
System.out.println(stu.toString());
}
}
三、需求分析
该计算器程序除了具备加减乘除基本的功能外还有重置功能 ce,程序里面实现了事件监听接口,该程序只能实现一些基本的加减乘除运算。
计算器的基本功能:
1、加法运算:用数字按钮和“+”按钮进行运算;
2、减法运算:用数字按钮和“-”按钮进行运算;
3、乘法运算:用数字按钮和“*”按钮进行运算;
4、除法运算:用数字按钮和“/”按钮进行运算;
5、开根运算:用数字按钮和“sqrt”按钮进行运算;
6、返回上一级键实现;
7、清零键C按钮实现。
四、系统设计
功能函数说明
actionPerformed 将每个组件都添加事件响应。具体的事件响应操作将在
其他的类中逐一实现。
jbInit() 对程序进行初始化并设置大小,名字,布局方式
handleReset()类实现C、CE、backspace按钮的复位操作handleNumber() 字符串输入控制类
完成简单计算器的设计与实现。图形界面如下图所示:
系统界面如下图所示
五、源程序
运行正常,可以实现计算器的“+”“—”“*”“/”等运算功能。
/* 一个计算器,与Windows附件自带计算器的标准版功能、界面相仿。但还不支持键盘操作。*/ package sy;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
//创建Calculate类继承swing包里的JFrame类用于显示界面里标签、按钮和文本字段public class Calculate extends JFrame {
private String front = "",behind = "";//分别用于记录加减乘除运算符之前之后输入的内容
private String op; //用于记录运算符
private String re;//用于存储运算结果的字符串格式
private boolean flag = false; //用于记录是否按下了运算符
private boolean flag1 = false;//用于判断是否输入了点运算符
private double result;//用于存储运算结果
private boolean flag2 = false;//用于判断是否输入了数字
private boolean flag3 = false;//用于判断是否按下了等号运算符
//swing包中对窗体中具有相同逻辑功能的组件进行组合的类
JPanel contentPane; /** 计算器上的键的显示名字创建对象并实例化*/
JTextField txtResult = new JTextField("0");
JButton btnNull = new JButton("sqrt");//新建一个按钮显示为sqrt
JButton btnFour = new JButton("4");//新建一个按钮显示为4
JButton btnFive = new JButton("5");//新建一个按钮显示为5
JButton btnSix = new JButton("6");//新建一个按钮显示为6
JButton btnDecrease = new JButton("-");//新建一个按钮显示为-
JButton btnBegin = new JButton("C");//新建一个按钮显示为c
JButton btnOne = new JButton("1");//新建一个按钮显示为1
JButton btnTwo = new JButton("2");//新建一个按钮显示为2
JButton btnThree = new JButton("3");//新建一个按钮显示为3
JButton btnMultiply = new JButton("*");//新建一个按钮显示为*
JButton btnCancel = new JButton("←");//新建一个按钮显示为←
JButton btnZero = new JButton("0");//新建一个按钮显示为0
JButton btnMinus = new JButton("+/-");//新建一个按钮显示为+/-
JButton btnPoint = new JButton(".");//新建一个按钮显示为.
JButton btnDivide = new JButton("/");//新建一个按钮显示为/
JButton btnEqual = new JButton("=");//新建一个按钮显示为=
JButton btnIncrease = new JButton("+");//新建一个按钮显示为+
JButton btnSeven = new JButton("7");//新建一个按钮显示为7
JButton btnEight = new JButton("8");//新建一个按钮显示为8
JButton btnNine = new JButton("9");//新建一个按钮显示为9
//用try,catch抛出错误,监视所有又可能发生异常的代码