24/05/14總結

簽到2:
簽到界面上有時間顯示,簽到碼輸入框,開始簽到,當倒計時結束,老師端和學生端都會顯示簽到結果,所以簽到結果需要建表:(簽到了的學生和未簽到的學生,
這次簽到的時間和簽到碼,班級號,)
簽到有已簽到,未簽到
判斷是否簽的是以前的到就是看有沒有結束時間
隨機選人:
兩遍遍歷數據庫,第一遍從數據庫里把班級里所有學生挑出來,并定義一個變量每挑一個記錄變量加1,然后使用redom隨機數隨機1-n這個范圍內的數
第二遍再定義一個變量然后再遍歷一遍直到數字等于隨機數,然后把名字隨機出來

if(receive.equals("Release success")){Alert alert = new Alert(Alert.AlertType.INFORMATION);alert.setTitle("Information Dialog");alert.setHeaderText(null);alert.setContentText("發布簽到成功");// 顯示提醒框并等待用戶關閉alert.showAndWait();initializeTableView_second();tabpane.getSelectionModel().select(Check_in);Socket socket3 = new Socket("127.0.0.1", 10090);String judgment3 = "update_check_in";ObjectOutputStream oos3 = new ObjectOutputStream(socket3.getOutputStream());oos3.writeObject(judgment3);      //傳送標志oos3.writeObject(formattedTime);ObjectInputStream ois3 = new ObjectInputStream(socket3.getInputStream());Object obj = ois3.readObject();if (studentsList != null && !studentsList.isEmpty()) {studentsList.clear();}if (obj instanceof ArrayList<?>) {studentsList = (ArrayList<String>) obj;}Map<String, String> studentStatusMap = new HashMap<>();for (String student : studentsList) {studentStatusMap.put(student, "未簽到");}socket4 = new Socket("127.0.0.1", 10090);judgment4 = "update_examine_check_in";oos4 = new ObjectOutputStream(socket4.getOutputStream());oos4.writeObject(judgment4);Thread countdownThread = new Thread(() -> {int totalSeconds = Integer.parseInt(minute) * 60 + Integer.parseInt(second_clock);while (totalSeconds > 0) {try {// 將 totalSeconds 轉換為分鐘和秒鐘int minutes = totalSeconds / 60;int seconds = totalSeconds % 60;// 更新界面上的顯示(這里使用 Platform.runLater 來在 JavaFX 應用程序線程中更新 UI)Platform.runLater(() -> {minutetext.setText(String.valueOf(minutes));second_clocktext.setText(String.valueOf(seconds));});for (String student : studentsList) {oos4.writeObject(student);oos4.writeObject(formattedTime);// 獲取當前簽到狀態ois4= new ObjectInputStream(socket4.getInputStream());String  status  = (String) ois4.readObject();if (!status.equals(studentStatusMap.get(student))) {// 如果簽到狀態發生變化,更新 Map,并輸出該學生的名字studentStatusMap.put(student, status);if (status.equals("已簽到")) {System.out.println(111);success_name=student+" "+success_name;// 在這里執行更新 TableView 的操作Platform.runLater(() -> {updateTableView(check_in_table, "已簽到", success_name, formattedTime);initializeTableView_second();initializeTableView_second();System.out.println(23);});}}}// 每隔一秒鐘減少一秒Thread.sleep(1000);totalSeconds--;} catch (InterruptedException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}}if(totalSeconds <= 0){try {LocalDateTime currentTime2 = LocalDateTime.now();// 格式化當前系統時間,顯示年、月、日、時、分和秒DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");String formattedTime2 = currentTime2.format(formatter2);oos4.writeObject("111");minutetext.setText("0");second_clocktext.setText("0");Socket socket4 = new Socket("127.0.0.1", 10090);String judgment4 = "teacher_end_check_in";ObjectOutputStream oos4 = new ObjectOutputStream(socket4.getOutputStream());oos4.writeObject(judgment4);      //傳送標志oos4.writeObject(formattedTime);oos4.writeObject(formattedTime2);ObjectInputStream ois4 = new ObjectInputStream(socket4.getInputStream());String fail_name = (String) ois4.readObject();Platform.runLater(() -> {updateTableView(check_in_table, "未簽到", fail_name, formattedTime2);initializeTableView_second();initializeTableView_second();System.out.println(23);});} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}}// 倒計時結束后執行的邏輯// 這里你可以添加倒計時結束后需要執行的代碼});// 啟動倒計時線程countdownThread.start();}

簽到功能:

隨機抽人:





?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/12396.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12396.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12396.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

詳述進程的地址空間

進程的地址空間 合法的地址 (可讀或可寫) 代碼 (main, %rip 會從此處取出待執行的指令)&#xff0c;只讀數據 (static int x)&#xff0c;讀寫堆棧 (int y)&#xff0c;讀寫運行時分配的內存 (???)&#xff0c;讀寫動態鏈接庫 (???) 非法的地址 NULL&#xff0c;導致 se…

藍橋杯第2357題——限高桿(多層圖+dijkstra)

問題描述 某市有 &#x1d45b; 個路口, 有 &#x1d45a; 段道路連接這些路口, 組成了該市的公路系統。其 中一段道路兩端一定連接兩個不同的路口。道路中間不會穿過路口。 由于各種原因, 在一部分道路的中間設置了一些限高桿, 有限高桿的路段 貨車無法通過。 在該市有兩個…

【微命令】git config如何配置全局的用戶和郵箱?(--global user.name、user.email;git config --help)

雖然經常用&#xff0c;也經常忘記&#xff0c;特此記錄。 命令 git config --global user.name "myname" git config --global user.email test163.com另外一種方式 help git config --help |grep email | grep name直接help查看

Git系列:git log 掌握版本控制的精髓

&#x1f49d;&#x1f49d;&#x1f49d;歡迎蒞臨我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:「stormsha的主頁」…

【科普】ChatGPT-4o 是什么?和之前的ChatGPT4.0有什么區別,各有什么優劣勢

文章目錄 前言一、ChatGPT-4o 是什么&#xff1f;**主要特點和改進**&#xff1a; 二、ChatGPT-4o 和之前的ChatGPT4.0有什么區別&#xff0c;各有什么優劣勢區別優勢和劣勢ChatGPT-4.0ChatGPT-4o 前言 5月13日&#xff0c;ChatGPT-4o發布&#xff0c;是人工智能的進一步發展&…

【leetcode面試經典150題】-27. 移除元素

88.合并兩個有序數組 1 題目介紹1 個人解題思路1.1 解題代碼1.2 思路解析 2、分析官方題解2.1 單側雙指針2.2 雙側雙指針 1 題目介紹 給你一個數組 nums 和一個值 val&#xff0c;你需要 原地 移除所有數值等于 val 的元素&#xff0c;并返回移除后數組的新長度。 不要使用額外…

Echarts結課之小楊總結版

Echarts結課之小楊總結版 前言基礎回顧框架sale框架代碼&#xff1a; user框架基礎代碼&#xff1a; inventory框架基礎代碼&#xff1a; total框架基礎代碼&#xff1a; 基礎設置1.標題(Title)2.圖例(Legend)實現 3.工具提示(Tooltip)實現 4.X軸(X Axis) 和 Y軸(Y Axis)5.數據…

「Qt Widget中文示例指南」如何實現一個快捷編輯器(二)

Qt 是目前最先進、最完整的跨平臺C開發工具。它不僅完全實現了一次編寫&#xff0c;所有平臺無差別運行&#xff0c;更提供了幾乎所有開發過程中需要用到的工具。如今&#xff0c;Qt已被運用于超過70個行業、數千家企業&#xff0c;支持數百萬設備及應用。 快捷編輯器示例展示…

Leetcode 第 129 場雙周賽題解

Leetcode 第 129 場雙周賽題解 Leetcode 第 129 場雙周賽題解題目1&#xff1a;3127. 構造相同顏色的正方形思路代碼復雜度分析 題目2&#xff1a;3128. 直角三角形思路代碼復雜度分析 題目3&#xff1a;3129. 找出所有穩定的二進制數組 I思路代碼復雜度分析 題目4&#xff1a;…

電子郵箱是什么?怎么申請一個電子郵箱?

電子郵箱是我們溝通的工具&#xff0c;細分為免費版電子郵箱和付費版電子郵箱。怎么申請一個屬于自己的電子郵箱&#xff1f;今天小編就分享一下電子郵箱注冊教程&#xff0c;手把手教您注冊一個電子郵箱。 一、電子郵箱的定義 電子郵箱&#xff0c;簡稱郵箱&#xff0c;是一…

BGP路由優選

1.BGP路由優選規則 上述規則依序排列&#xff0c;BGP進行路由優選時&#xff0c;從第一條規則開始執行&#xff0c;如果根據第一條規則無法作出判斷&#xff0c;例如路由的Preferred-Value屬性值相同&#xff0c;則繼續執行下一條規則&#xff0c;如果根據當前的規則&#xff0…

如何快速打開多個網頁?

在平常的工作當中&#xff0c; 如果每天都需固定打開幾個網站&#xff0c;可以通過創建一個批處理&#xff0c;一鍵打開需要的所有網站。 使用方法&#xff1a; 在桌面新建一個txt文本&#xff0c;按照以下格式輸入代碼&#xff0c;并將需要打開網站的地址輸入進去。 ? ec…

JavaScript異步編程——11-異常處理方案【萬字長文,感謝支持】

異常處理方案 在JS開發中&#xff0c;處理異常包括兩步&#xff1a;先拋出異常&#xff0c;然后捕獲異常。 為什么要做異常處理 異常處理非常重要&#xff0c;至少有以下幾個原因&#xff1a; 防止程序報錯甚至停止運行&#xff1a;當代碼執行過程中發生錯誤或異常時&#x…

虛擬化技術 在vCenter Server創建數中心、添加主機

一、實驗內容 1.安裝Flash 2.在vCenter Server創建數中心、添加主機 二、實驗主要儀器設備及器材 1.安裝有64位Windows操作系統的臺式電腦或筆記本電腦&#xff0c;建議4C8G或以上配置 2.在Windows Server 2008 R2已安裝vCenter Server 3.Adobe Flash Player 12.0.0.70.e…

算法-卡爾曼濾波之卡爾曼濾波的第一個方程:狀態更新方程

通過一個例子來引出卡爾曼濾波的狀態更新方程&#xff1b; 這里系統狀態是金條的重量&#xff1b; 為了估計系統的狀態&#xff0c;我們可以多次測量金條的重量&#xff0c;然后求平均值&#xff1b; 其中估計值是所有測量值的平均值&#xff1b; 由于我們使用的是靜態模型&am…

第十六節:圖 (20節)

一 圖的概念 1&#xff09;由點的集合和邊的集合構成 2&#xff09;雖然存在有向圖和無向圖的概念&#xff0c;但實際上都可以用有向圖來表達 3&#xff09;邊上可能帶有權值 二 圖結構的表達 1&#xff09;鄰接表法 2&#xff09;鄰接矩陣法 3&#xff09;除此之外還有其他眾多…

Halcon與深度學習框架結合進行圖像分析

Halcon 是一款強大的機器視覺軟件&#xff0c;而深度學習框架如 TensorFlow 或 PyTorch 在圖像識別和分類任務中表現出色。結合兩者的優勢&#xff0c;可以實現復雜的圖像分析任務。Halcon 負責圖像預處理和特征提取&#xff0c;而深度學習框架則利用這些特征進行高級分析和識別…

【完整過程】Windows下記錄PadleOCR訓練自己的ocr模型

一、前期準備 1、代碼 參考的博主使用的是2.6版本的 博主的paddleocr代碼 下面這個是官方的&#xff0c;可能已經更新了&#xff08;我用的是官網當前最新版&#xff09; paddleocr的源代碼 注意&#xff1a;最好把上面兩個代碼都下載下來&#xff0c;后面都會用到 參考博…

先有JVM還是先有垃圾回收器?

是先有垃圾回收器再有JVM呢&#xff0c;還是先有JVM再有垃圾回收器呢&#xff1f;或者是先有垃圾回收再有JVM呢&#xff1f;歷史上還真是垃圾回收更早面世&#xff0c;垃圾回收最早起源于1960年誕生的LISP語言&#xff0c;Java只是支持垃圾回收的其中一種。下面我們就來刨析刨析…

免費思維13招之十一:利潤型思維

免費思維13招之十一:利潤型思維 免費思維的另一大戰略思維——利潤型思維。 什么是利潤型思維呢?就是用后期的利潤來支付現在的成本。也就是“花未來的錢,辦現在的事”。 我們在銷售自己的產品時候,最容易犯的一個件事,就是降價,我們先來看一個案例: 前幾年,有一個賣…