JAVA面向对象程序设计课程报告

JAVA面向对象程序设计课程报告本文简介:JAVA面向对象程序设计课程报告学院____自动化____________专业____自动化____________年级班别__13级自动化(卓越工程师一班)学号_____3113000993_____________学生姓名_____鲁梦如______________2015年4月30日评分要点评
JAVA面向对象程序设计课程报告本文内容:
JAVA面向对象程序设计课程报告
学
院____
自
动
化
____________
专
业____
自
动
化
____________
年级班别__13级自动化(卓越工程师一班)
学
号_____
3113000993_____________
学生姓名_____
鲁
梦
如______________
2015年
4月
30
日
评分要点
评分内容
得分
格式
(10分)
字体、字号正确,间距正确;文本清晰、美观。
源程序
(80分)
源程序无语法、逻辑错误,可读性强,有一定的工作量。
运行结果
(10分)
有运行结果截图,运行界面截图大小合适。
0-59
不及格
60-69
及格
70-79
中等
80-89
良好
90-100
优秀
总分
JAVA面向对象程序设计课程报告评分标准
要求:
1、题目(四号、黑体,居中)
2、完整源代码(中文:小四,宋体;英文:小四,Times
New
Roman,单倍行距)。
3、运行界面截图。
4、单面打印,课程报告正文不少于5页,在报告左侧用两颗钉书针装订。
正文目录
一、
源代码
二、
代码运行效果截图
三、
参考文献
简单计算器的实现
一、源代码
import
java.awt.BorderLayout;
import
java.awt.Color;
import
java.awt.GridLayout;
import
java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
import
javax.swing.JButton;
import
javax.swing.JFrame;
import
javax.swing.JPanel;
import
javax.swing.JTextField;
public
class
Calculator
extends
JFrame
implements
ActionListener
{
/**
计算器上的键的显示名字/
private
final
String[]
KEYS
=
{
“7“,“8“,“9“,“/“,“sqrt“,“4“,“5“,“6“,“*“,“%“,“1“,“2“,“3“,“-“,“1/x“,“0“,“+/-“,“.“,“+“,“=“};
/**
计算器上的功能键的显示名字/
private
final
String[]
COMMAND
=
{
“Backspace“,“CE“,“C“};
/**
计算器左边的M的显示名字/
private
final
String[]
M
=
{
““,“MC“,“MR“,“MS“,“M+“};
/**
计算器上键的按钮/
private
JButton
keys[]
=
new
JButton[KEYS.length];
/**
计算器上的功能键的按钮/
private
JButton
commands[]
=
new
JButton[COMMAND.length];
/**
计算器左边的M的按钮/
private
JButton
m[]
=
new
JButton[M.length];
/**
计算结果文本框/
private
JTextField
resultText
=
new
JTextField(“0“);
//
标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字
private
boolean
firstDigit
=
true;
//
计算的中间结果。
private
double
resultNum
=
0.0;
//
当前运算的运算符
private
String
operator
=
“=“;
//
操作是否合法
private
boolean
operateValidFlag
=
true;
/**
构造函数/
public
Calculator()
{
super();
//
初始化计算器
init();
//
设置计算器的背景颜色
this.setBackground(Color.LIGHT_GRAY);
this.setTitle(“计算器“);
//
在屏幕(500,300)坐标处显示计算器
this.setLocation(500,300);
//
不许修改计算器的大小
this.setResizable(false);
//
使计算器中各组件大小合适
this.pack();
}
/**
初始化计算器/
private
void
init()
{
//
文本框中的内容采用右对齐方式
resultText.setHorizontalAlignment(JTextField.RIGHT);
//
不允许修改结果文本框
resultText.setEditable(false);
//
设置文本框背景颜色为白色
resultText.setBackground(Color.WHITE);
//
初始化计算器上键的按钮,将键放在一个画板内
JPanel
calckeysPanel
=
new
JPanel();
//
用网格布局器,4行,5列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素
calckeysPanel.setLayout(new
GridLayout(4,5,3,3));
for
(int
i
=
0;
i
0)
{
//
退格,将文本最后一个字符去掉
text
=
text.substring(0,i
-
1);
if
(text.length()
==
0)
{
//
如果文本没有了内容,则初始化计算器的各种值
resultText.setText(“0“);
firstDigit
=
true;
operator
=
“=“;
}
else
{
//
显示新的文本
resultText.setText(text);
}
}
}
/**
处理数字键被按下的事件
@param
key/
private
void
handleNumber(String
key)
{
if
(firstDigit)
{
//
输入的第一个数字
resultText.setText(key);
}
else
if
((key.equals(“.“))
}
else
if
(!key.equals(“.“))
{
//
如果输入的不是小数点,则将数字附在结果文本框的后面
resultText.setText(resultText.getText()
+
key);
}
//
以后输入的肯定不是第一个数字了
firstDigit
=
false;
}
/**
处理C键被按下的事件/
private
void
handleC()
{
//
初始化计算器的各种值
resultText.setText(“0“);
firstDigit
=
true;
operator
=
“=“;
}
/**
处理运算符键被按下的事件
@param
key/
private
void
handleOperator(String
key)
{
if
(operator.equals(“/“))
{
//
除法运算
//
如果当前结果文本框中的值等于0
if
(getNumberFromText()
==
0.0)
{
//
操作不合法
operateValidFlag
=
false;
resultText.setText(“除数不能为零“);
}
else
{
resultNum
/=
getNumberFromText();
}
}
else
if
(operator.equals(“1/x“))
{
//
倒数运算
if
(resultNum
==
0.0)
{
//
操作不合法
operateValidFlag
=
false;
resultText.setText(“零没有倒数“);
}
else
{
resultNum
=
1
/
resultNum;
}
}
else
if
(operator.equals(“+“))
{
//
加法运算
resultNum
+=
getNumberFromText();
}
else
if
(operator.equals(“-“))
{
//
减法运算
resultNum
-=
getNumberFromText();
}
else
if
(operator.equals(“*“))
{
//
乘法运算
resultNum=
getNumberFromText();
}
else
if
(operator.equals(“sqrt“))
{
//
平方根运算
resultNum
=
Math.sqrt(resultNum);
}
else
if
(operator.equals(“%“))
{
//
百分号运算,除以100
resultNum
=
resultNum
/
100;
}
else
if
(operator.equals(“+/-“))
{
//
正数负数运算
resultNum
=
resultNum
(-1);
}
else
if
(operator.equals(“=“))
{
//
赋值运算
resultNum
=
getNumberFromText();
}
if
(operateValidFlag)
{
//
双精度浮点数的运算
long
t1;
double
t2;
t1
=
(long)
resultNum;
t2
=
resultNum
-
t1;
if
(t2
==
0)
{
resultText.setText(String.valueOf(t1));
}
else
{
resultText.setText(String.valueOf(resultNum));
}
}
//
运算符等于用户按的按钮
operator
=
key;
firstDigit
=
true;
operateValidFlag
=
true;
}
/**
从结果文本框中获取数字
@return/
private
double
getNumberFromText()
{
double
result
=
0;
try
{
result
=
Double.valueOf(resultText.getText()).doubleValue();
}
catch
(NumberFormatException
e)
{
}
return
result;
}
public
static
void
main(String
args[])
{
Calculator
calculator1
=
new
Calculator();
calculator1.setVisible(true);
calculator1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
二、代码运行效果截图
四、
参考文献
《JAVA面向对象程序设计》(清华大学出版社)
