第一次作业
《软件集成开发环境》第一次作业
一、实验内容
1.设计一个可实现加、减、乘、除功能的计算器软件
2.使用牛顿迭代法完成算术开方的运算
3.将自己编写的算术开方功能集成到计算器程序中,使计算器软件除了具备加、减、乘、除功能外,还具备算术开方功能
二、实验要求
1.完成计算器软件的UI设计、使用Visio设计计算器软件中所涉及的流程图。
2.选择合适的集成开发环境和工具完成计算器软件的开发
3.将开发好软件进行测试并截图
4.将本次实验过程写成实验报告提交在本次作业的链接中
5.关键代码部分以代码块格式粘贴在实验报告正文中
1、根据需求分析设计流程图:
2、编写代码,代码如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator {
private JFrame frame;
private JTextField textField;
private JButton btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn0;
private JButton btnAdd, btnSubtract, btnMultiply, btnDivide, btnEquals, btnClear;
private double firstNumber;
private String operator;
public Calculator() {
frame = new JFrame("Calculator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 400);
frame.setLayout(new BorderLayout());
textField = new JTextField();
textField.setHorizontalAlignment(JTextField.RIGHT);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(4, 4));
btn1 = new JButton("1");
btn2 = new JButton("2");
btn3 = new JButton("3");
btn4 = new JButton("4");
btn5 = new JButton("5");
btn6 = new JButton("6");
btn7 = new JButton("7");
btn8 = new JButton("8");
btn9 = new JButton("9");
btn0 = new JButton("0");
btnAdd = new JButton("+");
btnSubtract = new JButton("-");
btnMultiply = new JButton("*");
btnDivide = new JButton("/");
btnEquals = new JButton("=");
btnClear = new JButton("C");
panel.add(btn1);
panel.add(btn2);
panel.add(btn3);
panel.add(btnAdd);
panel.add(btn4);
panel.add(btn5);
panel.add(btn6);
panel.add(btnSubtract);
panel.add(btn7);
panel.add(btn8);
panel.add(btn9);
panel.add(btnMultiply);
panel.add(btn0);
panel.add(btnClear);
panel.add(btnEquals);
panel.add(btnDivide);
frame.add(textField, BorderLayout.NORTH);
frame.add(panel, BorderLayout.CENTER);
frame.setVisible(true);
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
textField.setText(textField.getText() + "1");
}
});
btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
textField.setText(textField.getText() + "2");
}
});
// 添加其他按钮的监听器
btnAdd.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
firstNumber = Double.parseDouble(textField.getText());
operator = "+";
textField.setText("");
}
});
btnEquals.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double secondNumber = Double.parseDouble(textField.getText());
double result = 0;
if (operator.equals("+")) {
result = firstNumber + secondNumber;
} else if (operator.equals("-")) {
result = firstNumber - secondNumber;
} else if (operator.equals("*")) {
result = firstNumber * secondNumber;
} else if (operator.equals("/")) {
result = firstNumber / secondNumber;
}
textField.setText(String.valueOf(result));
}
});
btnClear.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
textField.setText("");
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run
new Calculator();
}
});
}
}
3、使用牛顿迭代法完成算数开方的运算:
package package1;
import java.util.Scanner;
public class t010fx{
public static void main(String args[]){
Scanner s = new Scanner(System.in);
System.out.println("请输入一个你想开发的值:");
int c = s.nextInt();
double x1,x0 = c;
double fx = 2*x0;
x1 = x0 - (x0*x0 - c) / fx;
while(Math.abs(x1 - x0) > 1e-16){
x0 = x1;
x1 = x0 - (x0*x0 - c) / fx;
}
System.out.println(c + "开方的结果是" + x1)
}
}
4、运行结果如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现