第一次作业

发布时间 2023-10-15 00:21:35作者: 黄洋洋

第一次作业

《软件集成开发环境》第一次作业
一、实验内容

1.设计一个可实现加、减、乘、除功能的计算器软件

2.使用牛顿迭代法完成算术开方的运算

3.将自己编写的算术开方功能集成到计算器程序中,使计算器软件除了具备加、减、乘、除功能外,还具备算术开方功能

二、实验要求

1.完成计算器软件的UI设计、使用Visio设计计算器软件中所涉及的流程图。

2.选择合适的集成开发环境和工具完成计算器软件的开发

3.将开发好软件进行测试并截图

4.将本次实验过程写成实验报告提交在本次作业的链接中

5.关键代码部分以代码块格式粘贴在实验报告正文中

三、具体实验步骤

1、先根据需求分析设计流程图,如下:

IMG_256

 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();

            }

        });

    }

}

我们使用的算法思想是牛顿迭代法Q Qpackage package1 ;

 

import java.util .Scanner ;

public class t010fx {

public static void main(String args[])Scanner S = new Scanner (System. in);

System . out . pr intln("请输入一个你想开方的值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);}

此时的运算结果如下:

IMG_257

效果截图:

 

四,总结:

经过本次实验,熟练掌握了软件开发的基本流程,软件设计和开发的基本工具,对集成软件开发环境在软件开发过程中的作用有更深入的了解。