第二次作业

发布时间 2023-12-04 22:28:42作者: 七呆呆q

[实验目的]

1.掌握软件开发的基本流程

2.掌握常用的软件开发方式和工具。

[实验内容]

1.设计一个包含登录界面的计算器软件,该软件可以实现第一次作业中的全部功能,同时可以保存用户的历史计算记录(保存数据最好使用数据库)。

 

[实验要求]

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

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

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

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

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

6.软件架构以及开发技术不限

7.本次作业为个人作业,发现雷同作业一律按0分处理。

 

 

1.登录界面流程图

 

 2.实现代码

<!DOCTYPE html>  
<html>  
<head>  
  <title>计算器登录页面</title>  
  <style>  
    body {  
      font-family: Arial, sans-serif;  
      margin: 0;  
      padding: 0;  
      background-color: #f1f1f1;  
    }  
  
    .container {  
      width: 300px;  
      margin: 100px auto;  
      background-color: #fff;  
      padding: 20px;  
      border-radius: 5px;  
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);  
    }  
  
    h2 {  
      text-align: center;  
    }  
  
    input[type="text"],  
    input[type="password"] {  
      width: 100%;  
      padding: 10px;  
      margin-bottom: 15px;  
      border: 1px solid #ccc;  
      border-radius: 3px;  
    }  
  
    input[type="submit"] {  
      width: 100%;  
      background-color: #4caf50;  
      color: #fff;  
      border: none;  
      padding: 10px;  
      border-radius: 3px;  
      cursor: pointer;  
    }  
  
    input[type="submit"]:hover {  
      background-color: #45a049;  
    }  
  </style>  
</head>  
<body>  
  <div class="container">  
    <h2>计算器登录</h2>  
    <form action="calculator.html" method="post">  
      <label for="username">用户名:</label>  
      <input type="text" id="username" name="username" required>  
  
      <label for="password">密码:</label>  
      <input type="password" id="password" name="password" required>  
  
      <input type="submit" value="登录">  
    </form>  
  </div>  
</body>  
</html>

3.登录作业

 4.计算器流程图

 5.计算器界面

 6.历史记录

 7.实现代码

 

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;

}