// ′=′操作
if (temp == buttonEqual && clickable == true) {
// 如果连续按′=′,则进行连续运算 if (prekey == 5) { if (key == 0) {
answerd += vard;
textAnswer.setText(df.format(answerd)); }
if (key == 1) {
answerd -= vard;
textAnswer.setText(df.format(answerd)); }
if (key == 2) {
answerd *= vard;
textAnswer.setText(df.format(answerd)); }
if (key == 3) { if (Double.parseDouble(textAnswer.getText()) ==
0) {
textAnswer.setText(\除数不能为零\); clickable = false; }
else {
answerd /= vard;
textAnswer.setText(df.format(answerd)); } } }
else {
vard = Double.parseDouble(textAnswer.getText()); if (key == 0) { prekey = -1; answerd +=
Double.parseDouble(textAnswer.getText());
textAnswer.setText(df.format(answerd)); }
if (key == 1) { prekey = -1; answerd -=
Double.parseDouble(textAnswer.getText());
textAnswer.setText(df.format(answerd)); }
if (key == 2) { prekey = -1;
answerd *=
Double.parseDouble(textAnswer.getText());
textAnswer.setText(df.format(answerd)); }
if (key == 3) { prekey = -1; if (Double.parseDouble(textAnswer.getText()) == 0) {
textAnswer.setText(\除数不能为零\); clickable = false; }
else {
answerd /=
Double.parseDouble(textAnswer.getText());
textAnswer.setText(df.format(answerd)); } } }
prekey = 5;
resultIndicate = true; }
// 显示PI
if (temp == buttonPI && clickable == true) {
textAnswer.setText(Double.toString(java.lang.Math.PI)); }
// 求正弦运算
if (temp == buttonSin && clickable == true) {
textAnswer.setText(Double.toString(java.lang.Math.sin(Double. parseDouble(textAnswer.getText()) * java.lang.Math.PI / 180))); }
// 求余弦运算
if (temp == buttonCos && clickable == true) {
textAnswer.setText(Double.toString(java.lang.Math.cos(Double. parseDouble(textAnswer.getText()) * java.lang.Math.PI / 180))); }
// 求正切运算
if (temp == buttonTan && clickable == true) {
textAnswer.setText(Double.toString(java.lang.Math.tan(Double.
parseDouble(textAnswer.getText()) * java.lang.Math.PI / 180))); }
// 求平方运算
if (temp == buttonX2 && clickable == true) {
answerd = Double.parseDouble(textAnswer.getText()) * Double.parseDouble(textAnswer.getText()); textAnswer.setText(Double.toString(answerd)); }
// 开根号运算
if (temp == buttonSqrt && clickable == true) { String s = textAnswer.getText(); if (s.charAt(0) == '-') {
textAnswer.setText(\负数不能开根号\); clickable = false; } else
textAnswer.setText(Double.toString(java.lang.Math.sqrt(Double. parseDouble(textAnswer.getText())))); }
// 按下′+/-′按钮时处理
if (temp == buttonAddAndSub && clickable == true) { boolean isNumber = true;
String s = textAnswer.getText();
for (int i = 0; i < s.length(); i++)
if (! (s.charAt(i) >= '0' && s.charAt(i) <= '9' || s.charAt(i) == '.'|| s.charAt(i) == '-')) { isNumber = false; break; }
if (isNumber == true) { 则将首符号去掉 a);
处
// 如果当前字符串首字母有′-′号,代表现在是个负数,再按下时,if (s.charAt(0) == '-') { textAnswer.setText(\);
for (int i = 1; i < s.length(); i++) { char a = s.charAt(i);
textAnswer.setText(textAnswer.getText() + } }
// 如果当前字符串第一个字符不是符号,则添加一个符号在首字母
else
textAnswer.setText('-' + s); } }
// 计算器有关内存操作
// ′MC′的操作,将内存清0
if (temp == buttonMC && clickable == true) { memoryd = memoryi = 0; textMemory.setText(\); }
// ′MS′的操作,将当前文本框内容保存入内存,显示′M′ if (temp == buttonMS && clickable == true) { boolean isDot = false;
textMemory.setText(\);
for (int i = 0; i < textAnswer.getText().length(); i++) if ('.' == textAnswer.getText().charAt(i)) { isDot = true; break; }
// 如果是double,则存入memoryd(double存储器) if (isDot == true) { memoryd =
Double.parseDouble(textAnswer.getText());
memoryi = 0; //保证存储器中存放最新的值 }
// 如果是int,则存入memoryi(int存储器) else {
memoryi = Integer.parseInt(textAnswer.getText());
memoryd = 0; //保证存储器中存放最新的值 } }
//′MR′的操作,将存储器中的信息输出
if (temp == buttonMR && clickable == true) { if (memoryd != 0)
textAnswer.setText(Double.toString(memoryd)); if (memoryi != 0)
textAnswer.setText(Integer.toString(memoryi)); }
// ′M+′的功能,将当前文本框里的数据和存储器中数据相加后,再存入存if (temp == buttonMAdd && clickable == true) { boolean isDot = false;
for (int i = 0; i < textAnswer.getText().length(); i++) if ('.' == textAnswer.getText().charAt(i)) {
储器
isDot = true; break; }
if (memoryi != 0) { // 存储中是一个int型数 if (isDot == false) // 被加数是一个int型数 memoryi +=
Integer.parseInt(textAnswer.getText());
else { // 被加数是一个double型数,则将int存储器中数传入double存储器与当前数相加,int存储器清零
memoryd = memoryi + Double.parseDouble(textAnswer.getText()); memoryi = 0; } } else
memoryd +=
Double.parseDouble(textAnswer.getText()); }
// 按下′Backspace′键,利用循环将当前字符串中的最后一个字母删除 if (temp == buttonBS && clickable == true) { String s = textAnswer.getText(); textAnswer.setText(\);
for (int i = 0; i < s.length() - 1; i++) { char a = s.charAt(i);
textAnswer.setText(textAnswer.getText() + a); } }
// 按下′CE′按钮,将当前文本框内数据清除 if (temp == buttonCE) { textAnswer.setText(\); clickable = true; }
// 按下′C′按钮,文本框内数据清除,同时var,answer清零 if (temp == buttonC) { vard = answerd = 0;
textAnswer.setText(\); clickable = true; }
// 按下′复制′菜单栏
if (temp == copyItem) {
copy = textAnswer.getText(); }
// 按下′粘贴′菜单栏
}
if (temp == pasteItem) {
textAnswer.setText(copy); } }
// 输入中如果有操作非法,比如按下两次′+′,捕获异常 catch (Exception e) { }
textAnswer.setText(\操作非法\); clickable = false;
六、设计体会
通过这门课程的学习,我了解到了java语言的强大功能,虽然我不是计算机专业的学生,但是我对编程很感兴趣,大一学习c语言的时候,我从头到尾都很认真,经常自己编一些很有意思的小程序,对于java语言,只是听说过而已。
通过这次设计,我发现了java语言独特的魅力,第一,代码可用性高,类可以随意调用,这使的编程序省了不少力,第二,代码的可读性好,只要会英语,代码基本能看懂。第三,不限硬件,几乎兼容所有的计算机,因为它在java虚拟机上运行。总的来说java是一种趋势,它掀起了一场跨平台的编程革命,还是很不错的。