<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      第二次作業(yè)

      [實(shí)驗(yàn)?zāi)康腯

      1.掌握軟件開發(fā)的基本流程

      2.掌握常用的軟件開發(fā)方式和工具。

      [實(shí)驗(yàn)內(nèi)容]

      1.設(shè)計一個包含登錄界面的計算器軟件,該軟件可以實(shí)現(xiàn)第一次作業(yè)中的全部功能,同時可以保存用戶的歷史計算記錄(保存數(shù)據(jù)最好使用數(shù)據(jù)庫)。

      [實(shí)驗(yàn)要求]

      1.完成軟件的UI設(shè)計、使用Visio設(shè)計軟件中所涉及的所有流程圖。

      2.選擇合適的集成開發(fā)環(huán)境和工具完成計算器軟件的開發(fā)

      3.將開發(fā)好軟件進(jìn)行測試并截圖

      4.將本次實(shí)驗(yàn)過程寫成實(shí)驗(yàn)報告提交在本次作業(yè)的鏈接中

      5.關(guān)鍵代碼部分以代碼塊格式粘貼在實(shí)驗(yàn)報告正文中

      6.軟件架構(gòu)以及開發(fā)技術(shù)不限

      [實(shí)驗(yàn)過程]

      1.注冊流程圖

      2.登錄流程圖

       

       3.實(shí)現(xiàn)代碼

      (1)這個程序會創(chuàng)建一個簡單的窗口,包含用戶名和密碼輸入字段以及登錄和注冊按鈕。注冊按鈕會把新用戶的用戶名和密碼加到一個HashMap中,而登錄按鈕則會檢查輸入的用戶名和密碼是否存在于這個HashMap中。

       

      import javax.swing.*;
      import java.awt.*;
      import java.awt.event.ActionEvent;
      import java.awt.event.ActionListener;
      import java.util.HashMap;
      import java.util.Map;

      public class App {

      private JFrame frame;
      private Map<String, String> users;

      public static void main(String[] args) {
      EventQueue.invokeLater(() -> {
      try {
      App window = new App();
      window.frame.setVisible(true);
      } catch (Exception e) {
      e.printStackTrace();
            }
         });
      }

      public App() {
      initialize();
        }

      private void initialize() {
      users = new HashMap<>();

      frame = new JFrame();
      frame.setBounds(100, 100, 450, 300);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.getContentPane().setLayout(null);

      JTextField usernameField = new JTextField();
      usernameField.setBounds(175, 43, 130, 26);
      frame.getContentPane().add(usernameField);
      usernameField.setColumns(10);

      JPasswordField passwordField = new JPasswordField();
      passwordField.setBounds(175, 81, 130, 26);
      frame.getContentPane().add(passwordField);

      JLabel lblUsername = new JLabel("Username:");
      lblUsername.setBounds(85, 48, 80, 16);
      frame.getContentPane().add(lblUsername);

      JLabel lblPassword = new JLabel("Password:");
      lblPassword.setBounds(85, 86, 80, 16);
      frame.getContentPane().add(lblPassword);

      JButton btnNewButton = new JButton("Login");
      btnNewButton.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
      String username = usernameField.getText();
      String password = new String(passwordField.getPassword());
      if (users.containsKey(username) && users.get(username).equals(password)) {
      JOptionPane.showMessageDialog(frame, "Login successful");

      } else {
      JOptionPane.showMessageDialog(frame, "Invalid username or password");
            }
        }
      });
      btnNewButton.setBounds(175, 119, 117, 29);
      frame.getContentPane().add(btnNewButton);

      JButton registerButton = new JButton("Register");
      registerButton.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
      String username = usernameField.getText();
      String password = new String(passwordField.getPassword());
      if (users.containsKey(username)) {
      JOptionPane.showMessageDialog(frame, "Username already exists");
      } else {
      users.put(username, password);
      JOptionPane.showMessageDialog(frame, "Registration successful");
             }
         }
      });
      registerButton.setBounds(175, 160, 117, 29);
      frame.getContentPane().add(registerButton);
         }
      }

      注冊界面

      登錄界面

       

      (2)計算器界面,該程序在控制臺中運(yùn)行,用戶可以輸入操作符和數(shù)字進(jìn)行計算。"+"、"-"、"*"、"/"代表加、減、乘、除運(yùn)算,"sqrt"代表開方運(yùn)算,"C"代表清零,"backspace"會刪除當(dāng)前結(jié)果的最后一個數(shù)字。

      注意這個程序是一個簡單示例,它沒有處理可能的錯誤,如除以零或者輸入無法解析為數(shù)字的字符串等等。在實(shí)際編程中,你需要對這些情況進(jìn)行檢查并適當(dāng)處理。

      import javafx.application.Application;
      import javafx.geometry.Insets;
      import javafx.scene.Scene;
      import javafx.scene.control.Button;
      import javafx.scene.control.TextField;
      import javafx.scene.layout.VBox;
      import javafx.stage.Stage;

      public class Calculator extends Application {

      private TextField num1;
      private TextField num2;
      private Button btn;

      @Override
      public void start(Stage primaryStage) {
      primaryStage.setTitle("Calculator");

      num1 = new TextField();
      num1.setPromptText("First number");

      num2 = new TextField();
      num2.setPromptText("Second number");

      btn = new Button("Calculate");
      btn.setOnAction(event -> {
      double number1 = Double.parseDouble(num1.getText());
      double number2 = Double.parseDouble(num2.getText());
      double result = number1 + number2;
      btn.setText(String.valueOf(result));
           });

      VBox vBox = new VBox(num1, num2, btn);
      vBox.setPadding(new Insets(10));

      primaryStage.setScene(new Scene(vBox, 300, 200));

      primaryStage.show();
      }
      }

      public class Calculator {

      private double result;
      private Scanner scanner;

      public Calculator() {
             result = 0;
             scanner = new Scanner(System.in);
      }

      public static void main(String[] args) {
             Calculator calculator = new Calculator();
             calculator.run();
      }

      public void run() {
            while (true) {
      System.out.println("Current result: " + result);
      System.out.println("Enter operation (+, -, *, /, sqrt, C, backspace) and number:");
      String operation = scanner.next();

      switch (operation) {
      case "+":
      result += scanner.nextDouble();
      break;

      case "-":
      result -= scanner.nextDouble();
      break;

      case "*":
      result *= scanner.nextDouble();
      break;

      case "/":
      result /= scanner.nextDouble();
      break;

      case "sqrt":
      result = Math.sqrt(result);
      break;

      case "C":
      result = 0;
      break;

        case "backspace":
      String resultStr = Double.toString(result);
      if (resultStr.length() > 2) {
      resultStr = resultStr.substring(0, resultStr.length() - 2);
       } else {
               resultStr = "0";
      }
             result = Double.parseDouble(resultStr);
              break;

             default:
      System.out.println("Unknown operation");
      break;
             }
         }
      }
      該程序在控制臺中運(yùn)行,用戶可以輸入操作符和數(shù)字進(jìn)行計算。"+"、"-"、"*"、"/"代表加、減、乘、除運(yùn)算,"sqrt"代表開方運(yùn)算,"C"代表清零,"backspace"會刪除當(dāng)前結(jié)果的最后一個數(shù)字。

      加法運(yùn)算界面

       

      減法運(yùn)算界面

       

      乘法運(yùn)算界面

       

      除法運(yùn)算界面

       

      開方運(yùn)算界面

       退格界面

       清零界面

       

       

       

       

      posted @ 2023-12-04 21:43  煢煢白兔。  閱讀(33)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩av不卡一区二区在线| 国产欧美精品一区aⅴ影院| 亚洲精品无码成人A片九色播放| 黄又色又污又爽又高潮 | 国产精品99中文字幕| 欧美亚洲另类制服卡通动漫| 国产SUV精品一区二区88L| 国产午夜成人无码免费看| 亚洲av无码片在线播放| 中文字幕精品无码一区二区| 二区三区亚洲精品国产| 国产精品乱码人妻一区二区三区| 亚洲免费成人av一区| 妺妺窝人体色WWW看人体| 国产真人无码作爱免费视频app | 亚洲熟妇国产熟妇肥婆| 国内揄拍国内精品人妻久久| 亚洲av片在线免费观看| 九九热免费精品在线视频| 无码免费大香伊蕉在人线国产| 铜陵市| 日韩av中文字幕有码| 精品综合一区二区三区四区| 精品国精品自拍自在线| 日韩丝袜欧美人妻制服| 一亚洲一区二区中文字幕| 61精品人妻一区二区三区| 男同精品视频免费观看网站| 蒙阴县| 国产不卡一区二区在线视频| 97人人添人澡人人爽超碰| 久久91精品牛牛| 亚洲一区二区三区自拍偷拍| 福利一区二区视频在线| 国产av午夜精品福利| 午夜在线观看成人av| 九九在线精品国产| 国产中文三级全黄| 亚洲 都市 无码 校园 激情| 女同精品女同系列在线观看| 国产高在线精品亚洲三区|