Java课程设计——计算器
1.团队课程设计博客链接
http://www.cnblogs.com/yuanj/p/7072137.html
2.个人负责模块或任务说明
- 确定课题并进行任务分工
- 编写计算器删除,清零,清空,小数点,取±运算的实现代码
- 编写四则运算的实现代码
3.自己的代码提交记录截图
4.自己负责模块或任务详细说明
4.1计算器删除,清零,清空,小数点,取±运算
-
效果截图
-
关键代码
private class OperationMouseListener implements MouseListener{
public void mouseClicked(MouseEvent e) {
if(e.getSource() == backspace){//退格键,删除一个直到没有字符删除
String inputText = input.getText();
if(inputText.length() > 0){
input.setText(inputText.substring(0, inputText.length() - 1));
}
}else if(e.getSource() == neg){
String text = input.getText().trim();
if(text.contains("-")){
input.setText(text.substring(1,text.length()));
}else{
input.setText( "-" + text);
}
}
else if(e.getSource() == C){
input.setText("0");//C,清空所有运算数字和符号
num1 = "";
}else if(e.getSource() == CE){
input.setText("0");//CE-->将文本框置为0
}else if(e.getSource() == decimal){
String text = input.getText().trim();
//如果按了小数点,如果文本框已经有小数点,不做任何操作,否则在结果后面加上小数点
if(text.indexOf(".") == -1){
input.setText(text.concat("."));
}
}
试验简述:
用.getText();
函数来获取按键上的信息,用.setText();
函数来讲结果显示在文本框里;用if语句来判断各种情况,执行相应的语句。
4.2 四则运算
-
效果截图
-
关键代码
else if(e.getSource() == equal){
//如果是等号
if(!operator.trim().equals("")){
if(!input.getText().trim().equals("")){
double result = 0D;
if(operator.equals("+")){//执行加法运算
result = Double.parseDouble(num1) + Double.parseDouble(input.getText().trim().substring(input.getText().trim().indexOf("+") + 1));
}else if(operator.equals("-")){//减法运算
result = Double.parseDouble(num1) - Double.parseDouble(input.getText().trim().substring(input.getText().trim().indexOf("-") + 1));
}else if(operator.equals("*")){//乘法运算
result = Double.parseDouble(num1) * Double.parseDouble(input.getText().trim().substring(input.getText().trim().indexOf("*") + 1));
}else if(operator.equals("/")){//除法运算
result = Double.parseDouble(num1) / Double.parseDouble(input.getText().trim().substring(input.getText().trim().indexOf("/") + 1));
}
//格式化最终结果,保留两位小数点
input.setText(new DecimalFormat("0.00").format(result));
}
}
}
}
}
试验简述:
先两个if语句判断,当文本框里有字符串,且运算符号不为空时,执行四则运算;用Double.parseDouble()
语句讲字符串强制转化成Double型;用.substring();
来截取运算符号后面的字符;用DecimalFormat("0.00").format(result));
将运算结果的小数位固定位2位数。
5.课程设计的感想
虽然我们的程序比较简单,但是完成的过程中还是学到很多,不断的完善的过程中发现新的不足和bug,再加以改进。