學生信息管理系統 - HTML實現增刪改查

學生信息管理系統 - HTML實現增刪改查

效果圖

在這里插入圖片描述

代碼

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>學生信息管理系統</title><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"><style>* {margin: 0;padding: 0;box-sizing: border-box;font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;}body {background: linear-gradient(135deg, #6a11cb 0%, #2575fc 100%);min-height: 100vh;display: flex;justify-content: center;align-items: center;padding: 20px;}.container {width: 100%;max-width: 1200px;background: rgba(255, 255, 255, 0.95);border-radius: 20px;box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3);overflow: hidden;display: flex;flex-direction: column;height: 90vh;}header {background: linear-gradient(to right, #4b6cb7, #182848);color: white;padding: 20px 30px;text-align: center;position: relative;}.logo {position: absolute;left: 30px;top: 50%;transform: translateY(-50%);font-size: 24px;}h1 {font-size: 2.2rem;margin-bottom: 5px;letter-spacing: 1px;}.subtitle {font-size: 1rem;opacity: 0.8;}.content {display: flex;flex: 1;overflow: hidden;}.sidebar {width: 250px;background: #2c3e50;color: white;padding: 20px 0;transition: all 0.3s ease;}.menu-item {padding: 15px 25px;cursor: pointer;transition: all 0.3s;display: flex;align-items: center;border-left: 4px solid transparent;}.menu-item:hover, .menu-item.active {background: #34495e;border-left: 4px solid #3498db;}.menu-item i {margin-right: 12px;font-size: 18px;width: 25px;text-align: center;}.main-content {flex: 1;padding: 25px;overflow-y: auto;background: #f8f9fa;}.panel {background: white;border-radius: 12px;box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);padding: 25px;margin-bottom: 25px;display: none;}.panel.active {display: block;animation: fadeIn 0.5s ease;}@keyframes fadeIn {from { opacity: 0; transform: translateY(10px); }to { opacity: 1; transform: translateY(0); }}h2 {color: #2c3e50;margin-bottom: 20px;padding-bottom: 10px;border-bottom: 2px solid #eee;font-size: 1.8rem;}.form-group {margin-bottom: 20px;}label {display: block;margin-bottom: 8px;font-weight: 600;color: #34495e;}input, select {width: 100%;padding: 12px 15px;border: 1px solid #ddd;border-radius: 8px;font-size: 16px;transition: border-color 0.3s;}input:focus, select:focus {border-color: #3498db;outline: none;box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.2);}button {background: #3498db;color: white;border: none;padding: 12px 25px;border-radius: 8px;cursor: pointer;font-size: 16px;font-weight: 600;transition: all 0.3s;display: inline-flex;align-items: center;justify-content: center;}button i {margin-right: 8px;}button:hover {background: #2980b9;transform: translateY(-2px);box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);}.btn-danger {background: #e74c3c;}.btn-danger:hover {background: #c0392b;}.btn-success {background: #2ecc71;}.btn-success:hover {background: #27ae60;}.action-buttons {display: flex;gap: 10px;margin-top: 15px;}.message {padding: 15px;border-radius: 8px;margin: 15px 0;display: flex;align-items: center;}.success {background: #d4edda;color: #155724;border-left: 4px solid #28a745;}.error {background: #f8d7da;color: #721c24;border-left: 4px solid #dc3545;}.info {background: #d1ecf1;color: #0c5460;border-left: 4px solid #17a2b8;}table {width: 100%;border-collapse: collapse;margin-top: 20px;box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);}th, td {padding: 15px;text-align: left;border-bottom: 1px solid #eee;}th {background: #3498db;color: white;font-weight: 600;}tr:nth-child(even) {background: #f8f9fa;}tr:hover {background: #e3f2fd;}.empty-message {text-align: center;padding: 30px;color: #6c757d;font-size: 18px;}.empty-message i {font-size: 48px;margin-bottom: 15px;color: #adb5bd;}.action-cell {display: flex;gap: 8px;}.action-btn {padding: 8px 12px;font-size: 14px;border-radius: 6px;}footer {text-align: center;padding: 15px;background: #f1f1f1;color: #6c757d;font-size: 14px;border-top: 1px solid #ddd;}@media (max-width: 768px) {.content {flex-direction: column;}.sidebar {width: 100%;padding: 10px 0;}.menu-items {display: flex;overflow-x: auto;}.menu-item {padding: 12px 15px;white-space: nowrap;border-left: none;border-bottom: 4px solid transparent;}.menu-item:hover, .menu-item.active {border-left: none;border-bottom: 4px solid #3498db;}}</style>
</head>
<body><div class="container"><header><div class="logo"><i class="fas fa-graduation-cap"></i></div><h1>學生信息管理系統</h1><div class="subtitle">高效管理學生信息,助力教育信息化</div></header><div class="content"><div class="sidebar"><div class="menu-item active" data-panel="add"><i class="fas fa-user-plus"></i><span>添加學生信息</span></div><div class="menu-item" data-panel="display"><i class="fas fa-list"></i><span>顯示所有學生</span></div><div class="menu-item" data-panel="delete"><i class="fas fa-user-minus"></i><span>刪除學生信息</span></div><div class="menu-item" data-panel="modify"><i class="fas fa-edit"></i><span>修改學生信息</span></div></div><div class="main-content"><!-- 添加學生信息面板 --><div class="panel active" id="add-panel"><h2><i class="fas fa-user-plus"></i> 添加學生信息</h2><div class="form-group"><label for="student-id">學號</label><input type="text" id="student-id" placeholder="請輸入學號"></div><div class="form-group"><label for="student-name">姓名</label><input type="text" id="student-name" placeholder="請輸入姓名"></div><div class="form-group"><label for="student-age">年齡</label><input type="number" id="student-age" placeholder="請輸入年齡"></div><div class="form-group"><label for="student-grade">年級</label><select id="student-grade"><option value="">請選擇年級</option><option value="大一">大一</option><option value="大二">大二</option><option value="大三">大三</option><option value="大四">大四</option><option value="研究生">研究生</option></select></div><div id="add-message"></div><button id="add-btn"><i class="fas fa-plus-circle"></i> 添加學生</button></div><!-- 顯示所有學生信息面板 --><div class="panel" id="display-panel"><h2><i class="fas fa-users"></i> 所有學生信息</h2><div id="students-table-container"><div class="empty-message" id="empty-message"><i class="fas fa-user-graduate"></i><p>暫無學生信息</p></div><table id="students-table" style="display: none;"><thead><tr><th>學號</th><th>姓名</th><th>年齡</th><th>年級</th><th>操作</th></tr></thead><tbody id="students-list"><!-- 學生數據將通過JS動態填充 --></tbody></table></div></div><!-- 刪除學生信息面板 --><div class="panel" id="delete-panel"><h2><i class="fas fa-user-minus"></i> 刪除學生信息</h2><div class="form-group"><label for="delete-id">輸入要刪除的學生學號</label><input type="text" id="delete-id" placeholder="請輸入學號"></div><div id="delete-message"></div><button id="delete-btn" class="btn-danger"><i class="fas fa-trash-alt"></i> 刪除學生</button></div><!-- 修改學生信息面板 --><div class="panel" id="modify-panel"><h2><i class="fas fa-user-edit"></i> 修改學生信息</h2><div class="form-group"><label for="modify-id">輸入要修改的學生學號</label><input type="text" id="modify-id" placeholder="請輸入學號"></div><div id="modify-message"></div><div id="modify-form" style="display: none;"><div class="form-group"><label for="modify-name">姓名</label><input type="text" id="modify-name" placeholder="新姓名(留空則不修改)"></div><div class="form-group"><label for="modify-age">年齡</label><input type="number" id="modify-age" placeholder="新年齡(留空則不修改)"></div><div class="form-group"><label for="modify-grade">年級</label><select id="modify-grade"><option value="">不修改(保留原年級)</option><option value="大一">大一</option><option value="大二">大二</option><option value="大三">大三</option><option value="大四">大四</option><option value="研究生">研究生</option></select></div><button id="save-modify-btn" class="btn-success"><i class="fas fa-save"></i> 保存修改</button></div></div></div></div><footer><p>學生信息管理系統 &copy; 2023 | 使用HTML5, CSS3和JavaScript實現</p></footer></div><script>// 學生數據存儲let students = JSON.parse(localStorage.getItem('students')) || [];// DOM元素const menuItems = document.querySelectorAll('.menu-item');const panels = document.querySelectorAll('.panel');// 菜單切換功能menuItems.forEach(item => {item.addEventListener('click', () => {// 更新菜單激活狀態menuItems.forEach(i => i.classList.remove('active'));item.classList.add('active');// 顯示對應面板const panelId = item.getAttribute('data-panel') + '-panel';panels.forEach(panel => {panel.classList.remove('active');if(panel.id === panelId) {panel.classList.add('active');// 如果是顯示面板,刷新學生列表if(panelId === 'display-panel') {displayStudents();}}});});});// 添加學生功能document.getElementById('add-btn').addEventListener('click', () => {const id = document.getElementById('student-id').value.trim();const name = document.getElementById('student-name').value.trim();const age = document.getElementById('student-age').value.trim();const grade = document.getElementById('student-grade').value;const messageDiv = document.getElementById('add-message');// 驗證輸入if(!id || !name || !age || !grade) {showMessage(messageDiv, '請填寫所有必填字段', 'error');return;}// 檢查學號是否已存在if(students.some(student => student.id === id)) {showMessage(messageDiv, '該學號已存在,無法重復添加', 'error');return;}// 添加學生students.push({id: id,name: name,age: age,grade: grade});// 保存到localStoragesaveToLocalStorage();// 顯示成功消息showMessage(messageDiv, `成功添加學生: ${name}`, 'success');// 清空表單document.getElementById('student-id').value = '';document.getElementById('student-name').value = '';document.getElementById('student-age').value = '';document.getElementById('student-grade').selectedIndex = 0;});// 顯示所有學生function displayStudents() {const tableBody = document.getElementById('students-list');const table = document.getElementById('students-table');const emptyMessage = document.getElementById('empty-message');// 清空表格tableBody.innerHTML = '';if(students.length === 0) {table.style.display = 'none';emptyMessage.style.display = 'block';return;}emptyMessage.style.display = 'none';table.style.display = 'table';// 填充表格students.forEach(student => {const row = document.createElement('tr');row.innerHTML = `<td>${student.id}</td><td>${student.name}</td><td>${student.age}</td><td>${student.grade}</td><td class="action-cell"><button class="action-btn btn-danger delete-row" data-id="${student.id}"><i class="fas fa-trash"></i></button><button class="action-btn btn-success edit-row" data-id="${student.id}"><i class="fas fa-edit"></i></button></td>`;tableBody.appendChild(row);});// 添加行內刪除事件document.querySelectorAll('.delete-row').forEach(btn => {btn.addEventListener('click', () => {const id = btn.getAttribute('data-id');deleteStudent(id);});});// 添加行內編輯事件document.querySelectorAll('.edit-row').forEach(btn => {btn.addEventListener('click', () => {const id = btn.getAttribute('data-id');// 切換到修改面板menuItems.forEach(item => {if(item.getAttribute('data-panel') === 'modify') {item.click();}});// 填充修改表單document.getElementById('modify-id').value = id;findStudentForModify();});});}// 刪除學生功能document.getElementById('delete-btn').addEventListener('click', () => {const id = document.getElementById('delete-id').value.trim();const messageDiv = document.getElementById('delete-message');if(!id) {showMessage(messageDiv, '請輸入學號', 'error');return;}deleteStudent(id);});function deleteStudent(id) {const messageDiv = document.getElementById('delete-message');const index = students.findIndex(student => student.id === id);if(index === -1) {showMessage(messageDiv, '未找到該學號對應的學生信息', 'error');return;}const studentName = students[index].name;students.splice(index, 1);saveToLocalStorage();showMessage(messageDiv, `成功刪除學生: ${studentName}`, 'success');document.getElementById('delete-id').value = '';// 如果當前在顯示面板,刷新列表if(document.getElementById('display-panel').classList.contains('active')) {displayStudents();}}// 查找學生進行修改document.getElementById('modify-id').addEventListener('input', findStudentForModify);function findStudentForModify() {const id = document.getElementById('modify-id').value.trim();const messageDiv = document.getElementById('modify-message');const modifyForm = document.getElementById('modify-form');if(!id) {modifyForm.style.display = 'none';return;}const student = students.find(s => s.id === id);if(!student) {showMessage(messageDiv, '未找到該學號對應的學生信息', 'error');modifyForm.style.display = 'none';return;}showMessage(messageDiv, `找到學生: ${student.name},請修改以下信息`, 'info');modifyForm.style.display = 'block';// 填充表單(但不設置值,允許留空)document.getElementById('modify-name').value = '';document.getElementById('modify-age').value = '';document.getElementById('modify-grade').selectedIndex = 0;}// 保存修改document.getElementById('save-modify-btn').addEventListener('click', () => {const id = document.getElementById('modify-id').value.trim();const newName = document.getElementById('modify-name').value.trim();const newAge = document.getElementById('modify-age').value.trim();const newGrade = document.getElementById('modify-grade').value;const messageDiv = document.getElementById('modify-message');const studentIndex = students.findIndex(s => s.id === id);if(studentIndex === -1) {showMessage(messageDiv, '未找到該學生信息', 'error');return;}// 更新信息(僅更新非空字段)if(newName) students[studentIndex].name = newName;if(newAge) students[studentIndex].age = newAge;if(newGrade) students[studentIndex].grade = newGrade;saveToLocalStorage();showMessage(messageDiv, '成功修改學生信息', 'success');// 清空表單document.getElementById('modify-id').value = '';document.getElementById('modify-form').style.display = 'none';// 如果當前在顯示面板,刷新列表if(document.getElementById('display-panel').classList.contains('active')) {displayStudents();}});// 顯示消息函數function showMessage(element, message, type) {element.innerHTML = `<div class="message ${type}"><i class="fas fa-${type === 'success' ? 'check-circle' : type === 'error' ? 'exclamation-circle' : 'info-circle'}"></i> ${message}</div>`;// 5秒后自動清除消息setTimeout(() => {element.innerHTML = '';}, 5000);}// 保存數據到localStoragefunction saveToLocalStorage() {localStorage.setItem('students', JSON.stringify(students));}// 初始化顯示學生列表displayStudents();</script>
</body>
</html>

解釋

學生信息管理系統 - HTML實現
下面我將使用HTML、CSS和JavaScript實現一個完整的學生信息管理系統,滿足所有需求功能。
系統功能說明
這個學生信息管理系統實現了所有需求功能:

學生信息添加

輸入學號、姓名、年齡和年級

學號唯一性檢查

添加成功/失敗提示

學生信息顯示

表格展示所有學生信息

空信息提示

支持行內操作(編輯/刪除)

學生信息刪除

通過學號刪除學生

成功/失敗提示

學生信息修改

通過學號查找學生

選擇性修改(留空則不修改)

成功/失敗提示

系統交互

清晰的左側導航菜單

響應式設計(適配移動設備)

數據持久化(使用localStorage)

用戶友好的消息提示

技術實現
數據結構:使用JavaScript數組存儲學生對象

數據持久化:利用localStorage保存數據

UI設計:

現代化漸變背景

卡片式布局

響應式設計(適配移動設備)

交互動畫效果

功能實現:

使用事件監聽器處理用戶交互

動態DOM操作更新界面

表單驗證和錯誤處理

使用說明
復制完整代碼到HTML文件

在瀏覽器中打開該文件

使用左側菜單切換不同功能

所有數據將保存在瀏覽器本地存儲中

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

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

相關文章

Agile簡介

Agile&#xff08;敏捷&#xff09;是一種軟件開發方法論&#xff0c;核心是通過快速迭代、靈活響應變化&#xff0c;解決傳統軟件開發中周期長、需求變更困難等問題&#xff0c;最終高效交付符合用戶實際需求的產品。 一、Agile 的起源&#xff1a;為什么需要敏捷&#xff1f;…

關于 URL 中 “+“ 號變成空格的問題

當你在 URL 中傳遞參數時&#xff0c;加號 () 會被自動轉換為空格&#xff0c;這是 URL 編碼的標準行為。問題原因在 URL 中&#xff1a;空格會被編碼為 號當 URL 被解碼時&#xff0c; 號又會被轉換回空格這會導致原始數據中的 號丟失解決方案你需要對參數值進行正確的 URL …

綜合實驗(2)

文章目錄 目錄 文章目錄 前言 OSPF運行在GRE隧道概述 典型應用場景 OSPF over GRE 配置 總結 前言 OSPF運行在GRE隧道概述 GRE&#xff08;Generic Routing Encapsulation&#xff09;隧道是一種通過封裝原始數據包在IP網絡中創建虛擬點對點連接的隧道技術。OSPF&#xff08;…

【應急響應工具教程】司稽(Whoamifuck):純Shell打造的Linux應急響應利器

1、工具簡介司稽&#xff08;Whoamifuck或Chief-Inspector,簡稱"who"&#xff09;&#xff0c;永恒之鋒發布的第一款開源工具&#xff0c;這是一款由shell編寫的Linux應急響應腳本&#xff0c;能對基本的檢查項進行輸出和分析&#xff0c;并支持一些擴展的特色功能。…

新手操作steam搬磚項目,應該如何快速起步

大家好哦&#xff0c;我是阿陽&#xff0c;今天繼續給大家分享一些steam搬磚的知識。在我們操作過程中&#xff0c;問題問得最多的就是&#xff0c;新手應該怎么做&#xff1f;首先&#xff0c;那我們得先來了解-下,什么是steam搬磚,它的項目原理是什么&#xff0c;其次針對于這…

rt-thread加一個庫

背景 官方軟件包里沒有的 可以以庫或組件形式加入 本次僅為了驗證&#xff0c;加到庫 過程 下載源碼 假設為 lib_demo 自己的板子目錄為bsp/stm32 代碼目錄結構 bsp/stm32librarieslib_demo //新建文件夾src //把lib_demo里源碼文件放進來inc //把lib_demo里頭文件放進來SConsc…

c++深拷貝和淺拷貝

一、淺拷貝本質&#xff1a;簡單地復制對象的成員值。如果成員里有指針&#xff0c;新對象和原對象的指針會指向同一塊內存。比如你有對象 A&#xff0c;里面指針 p 指向堆內存 0x123&#xff1b;用 A 拷貝出對象 B&#xff0c;B 的指針 p 也指向 0x123。問題&#xff1a;若其中…

NineData新增SQL Server到MySQL復制鏈路,高效助力異構數據庫遷移

在實際的數據庫遷移工作中&#xff0c;異構庫之間的遷移常常被視為一項“高風險、高工作量、高復雜度”的挑戰任務。這不僅是一次數據庫切換&#xff0c;更是對系統穩定性、數據一致性、業務連續性和技術團隊耐力的全方位考驗。為解決企業在異構數據庫遷移中的痛點&#xff0c;…

字符串和對象的深拷貝和淺拷貝

字符串和對象的深拷貝和淺拷貝【一】基本介紹【1】淺拷貝【2】深拷貝【二】字符串的拷貝【1】字符串的 “淺拷貝”【2】字符串的 “深拷貝”【三】對象的拷貝【1】淺拷貝&#xff08;Shallow Copy&#xff09;【2】深拷貝&#xff08;Deep Copy&#xff09;【四】字符串和對象拷…

4.5 優化器中常見的梯度下降算法

梯度下降算法&#xff08;Gradient Descent&#xff09;的數學公式可以通過以下步驟嚴格表達&#xff1a;1. 基本梯度下降&#xff08;Batch Gradient Descent&#xff09; 目標&#xff1a;最小化損失函數L(θ)\mathcal{L}(\theta)L(θ)&#xff0c;其中 θ\thetaθ是模型參數…

AM1.5G AAA穩態太陽光模擬器特點

光譜匹配度AM1.5G AAA穩態太陽光模擬器的光譜分布嚴格匹配國際標準IEC 60904-9中的AM1.5G光譜&#xff08;波長范圍300-4000nm&#xff09;&#xff0c;確保與自然太陽光的偏差在25%以內&#xff08;AAA級標準&#xff09;。光譜匹配度通過精密濾光片和氙燈或LED組合光源實現&a…

OSPF開放式最短路徑優先

1OSPF簡介&#xff08;1&#xff09;OSPF英文全稱Open Shortest Path First (開放式最短路徑優先)&#xff08;2&#xff09;OSPF是IETF 開發的一種鏈路狀態路由協議&#xff0c;使用基于帶寬的度量值。&#xff08;3&#xff09;OSPF采用SPF算法計算路由&#xff0c;從算法上保…

Lua(模塊與包)

Lua 模塊的基本概念Lua 中的模塊是一個由函數、變量組成的代碼庫&#xff0c;通常保存在獨立的 .lua 文件中。模塊通過 return 語句導出其內容&#xff0c;供其他腳本調用。模塊化設計可以提高代碼復用性&#xff0c;便于管理。創建模塊模塊通常以 .lua 文件形式存在&#xff0…

1. boost::asio之socket的創建和連接

網絡編程基本流程 網絡編程的基本流程對于服務端是這樣的 服務端 1&#xff09;socket——創建socket對象。 2&#xff09;bind——綁定本機ipport。 3&#xff09;listen——監聽來電&#xff0c;若在監聽到來電&#xff0c;則建立起連接。 4&#xff09;accept——再創建一個…

WPF 控制動畫開關

記錄一種實現方式&#xff1a;第一步&#xff1a;首先定義一個靜態類&#xff0c;提供依賴屬性&#xff0c;進而方便在xaml中實現綁定&#xff1a;public static class AnimationBehavior{// 定義附加屬性public static readonly DependencyProperty IsAnimatingProperty Depen…

元素豎向的百分比設定是相對于父容器的高度嗎?

元素豎向的百分比設定是相對于父容器的高度嗎&#xff1f; 核心問題 在CSS中&#xff0c;當設置元素的豎向屬性&#xff08;如height、padding-top等&#xff09;為百分比值時&#xff0c;其計算基準是父容器的高度還是寬度&#xff1f; 權威結論height屬性 百分比值基于父容器…

web3.0怎么入局

Web3.0(第三代互聯網)融合了區塊鏈、去中心化應用(DApps)、NFT、DAO等新興技術,給個人和機構提供了許多全新的賺錢機會。入局 Web3.0 賺錢主要有以下幾種途徑,根據你的技術背景、資金能力和時間投入可以選擇適合自己的方式。 目錄 一、普通用戶賺錢方式(門檻低) 1. …

linux入門 相關linux系統操作命令(二)--文件管理系統 ubuntu22.04

以下有免費的4090云主機提供ubuntu22.04系統的其他入門實踐操作 地址&#xff1a;星宇科技 | GPU服務器 高性能云主機 云服務器-登錄 相關兌換碼星宇社區---4090算力卡免費體驗、共享開發社區-CSDN博客 兌換碼要是過期了&#xff0c;可以私信我獲取最新兌換碼&#xff01;&a…

Python-初學openCV——圖像預處理(二)

目錄 一、圖像仿射變換 1、基本性質 二、cv2.warpAffine() 函數 1、圖像旋轉 2、圖像平移 3、圖像縮放 4、圖像剪切 三、 插值方法 1、最近鄰插值 2、雙線性插值 3、像素區域插值 4、雙三次插值 5、Lanczos插值 一、圖像仿射變換 仿射變換&#xff08;Affine Tr…

醫療AI輕量化部署方案的深度梳理與優化路徑判研

摘要 醫療AI的快速發展為精準診斷、個性化治療和醫療資源優化提供了新機遇。然而,大規模模型的高計算復雜度和資源需求限制了其在資源受限環境(如邊緣設備、基層醫療機構)的應用。本文系統梳理了醫療AI輕量化部署的核心技術體系,包括模型壓縮、參數高效微調(PEFT)、邊緣-…