亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

233

  • ARM9基礎實驗教程

    - vii - 8.1.1 實驗目的 315 8.1.2 實驗設備 315 8.1.3 實驗內容 315 8.1.4 實驗原理 315 8.1.5 實驗操作步驟 318 8.1.6 實驗參考程序 319 8.1.7 練習題 321- vi - 6.4 USB 接口實驗 266 6.4.1 實驗目的 266 6.4.2 實驗設備 267 6.4.3 實驗內容 267 6.4.4 實驗原理 267 6.4.5 實驗操作步驟 270 6.4.6 實驗參考程序 272 6.4.7 實驗練習題 280 6.5 SPI接口通訊實驗 281 6.5.1 實驗目的 281 6.5.2 實驗設備 281 6.5.3 實驗內容 281 6.5.4 實驗原理 281 6.5.5 實驗操作步驟 285 6.5.6 實驗參考程序 287 6.5.7 練習題 289 6.6 紅外模塊控制實驗 289 6.6.1 實驗目的 289 6.6.2 實驗設備 289 6.6.3 實驗內容 289 6.6.4 實驗原理 289 6.6.5 實驗操作步驟 291 6.6.6 實驗參考程序 291 6.6.7 練習題 296 第七章 基礎應用實驗 296 7.1 A/D 轉換實驗 296 7.1.1 實驗目的 296 7.1.2 實驗設備 296 7.1.3 實驗內容 296 7.1.4 實驗原理 296 7.1.5 實驗設計 298 7.1.6 實驗操作步驟 299 7.1.7 實驗參考程序 300 7.1.8 練習題 301 7.2 PWM步進電機控制實驗 301 7.2.1 實驗目的 301 7.2.2 實驗設備 301 7.2.3 實驗內容 301 7.2.4 實驗原理 301 7.2.5 實驗操作步驟 309 7.2.6 實驗參考程序 311 7.2.7 練習題 313 第八章 高級應用實驗 315 8.1 GPRS模塊控制實驗 315 - v - 5.2 5x4鍵盤控制實驗 219 5.2.1 實驗目的 219 5.2.2 實驗設備 219 5.2.3 實驗內容 219 5.2.4 實驗原理 219 5.2.5 實驗設計 221 5.2.6 實驗操作步驟 222 5.2.7 實驗參考程序 223 5.2.8 練習題 224 5.3 觸摸屏控制實驗 224 5.3.1 實驗目的 224 5.3.2 實驗設備 224 5.3.3 實驗內容 224 5.3.4 實驗原理 224 5.3.5 實驗設計 231 5.3.6 實驗操作步驟 231 5.3.7 實驗參考程序 232 5.3.8 練習題 233 第六章 通信與接口實驗 234 6.1 IIC 串行通信實驗 234 6.1.1 實驗目的 234 6.1.2 實驗設備 234 6.1.3 實驗內容 234 6.1.4 實驗原理 234 6.1.5 實驗設計 238 6.1.6 實驗操作步驟 241 6.1.7 實驗參考程序 243 6.1.8 練習題 245 6.2 以太網通訊實驗 246 6.2.1 實驗目的 246 6.2.2 實驗設備 246 6.2.3 實驗內容 246 6.2.4 實驗原理 246 6.2.5 實驗操作步驟 254 6.2.6 實驗參考程序 257 6.2.7 練習題 259 6.3 音頻接口 IIS 實驗 260 6.3.1 實驗目的 260 6.3.2 實驗設備 260 6.3.3 實驗內容 260 6.3.4 實驗原理 260 6.3.5 實驗步驟 263 6.3.6實驗參考程序 264 6.3.7 練習題 266 - iv - 4.4 串口通信實驗 170 4.4.1 實驗目的 170 4.4.2 實驗設備 170 4.4.3 實驗內容 170 4.4.4 實驗原理 170 4.4.5 實驗操作步驟 176 4.4.6 實驗參考程序 177 4.4.7 練習題 178 4.5 實時時鐘實驗 179 4.5.1 實驗目的 179 4.5.2 實驗設備 179 4.5.3 實驗內容 179 4.5.4 實驗原理 179 4.5.5 實驗設計 181 4.5.6 實驗操作步驟 182 4.5.7 實驗參考程序 183 4.6.8 練習題 185 4.6 數碼管顯示實驗 186 4.6.1 實驗目的 186 4.6.2 實驗設備 186 4.6.3 實驗內容 186 4.6.4 實驗原理 186 4.6.5 實驗方法與操作步驟 188 4.6.6 實驗參考程序 189 4.6.7 練習題 192 4.7 看門狗實驗 193 4.7.1 實驗目的 193 4.7.2 實驗設備 193 4.7.3 實驗內容 193 4.7.4 實驗原理 193 4.7.5 實驗設計 195 4.7.6 實驗操作步驟 196 4.7.7 實驗參考程序 197 4.7.8 實驗練習題 199 第五章 人機接口實驗 200 5.1 液晶顯示實驗 200 5.1.1 實驗目的 200 5.1.2 實驗設備 200 5.1.3 實驗內容 200 5.1.4 實驗原理 200 5.1.5 實驗設計 211 5.1.6 實驗操作步驟 213 5.1.7 實驗參考程序 214 5.1.8 練習題 219 - ii - 3.1.1 實驗目的 81 3.1.2 實驗設備 81 3.1.3 實驗內容 81 3.1.4 實驗原理 81 3.1.5 實驗操作步驟 83 3.1.6 實驗參考程序 87 3.1.7 練習題 88 3.2 ARM匯編指令實驗二 89 3.2.1 實驗目的 89 3.2.2 實驗設備 89 3.2.3 實驗內容 89 3.2.4 實驗原理 89 3.2.5 實驗操作步驟 90 3.2.6 實驗參考程序 91 3.2.7 練習題 94 3.3 Thumb 匯編指令實驗 94 3.3.1 實驗目的 94 3.3.2 實驗設備 94 3.3.3 實驗內容 94 3.3.4 實驗原理 94 3.3.5 實驗操作步驟 96 3.3.6 實驗參考程序 96 3.3.7 練習題 99 3.4 ARM處理器工作模式實驗 99 3.4.1 實驗目的 99 3.4.2實驗設備 99 3.4.3實驗內容 99 3.4.4實驗原理 99 3.4.5實驗操作步驟 101 3.4.6實驗參考程序 102 3.4.7練習題 104 3.5 C 語言程序實驗一 104 3.5.1 實驗目的 104 3.5.2 實驗設備 104 3.5.3 實驗內容 104 3.5.4 實驗原理 104 3.5.5 實驗操作步驟 106 3.5.6 實驗參考程序 106 3.5.7 練習題 109 3.6 C 語言程序實驗二 109 3.6.1 實驗目的 109 3.6.2 實驗設備 109 3.6.3 實驗內容 109 3.6.4 實驗原理 109 - iii - 3.6.5 實驗操作步驟 111 3.6.6 實驗參考程序 113 3.6.7 練習題 117 3.7 匯編與 C 語言的相互調用 117 3.7.1 實驗目的 117 3.7.2 實驗設備 117 3.7.3 實驗內容 117 3.7.4 實驗原理 117 3.7.5 實驗操作步驟 118 3.7.6 實驗參考程序 119 3.7.7 練習題 123 3.8 綜合實驗 123 3.8.1 實驗目的 123 3.8.2 實驗設備 123 3.8.3 實驗內容 123 3.8.4 實驗原理 123 3.8.5 實驗操作步驟 124 3.8.6 參考程序 127 3.8.7 練習題 134 第四章 基本接口實驗 135 4.1 存儲器實驗 135 4.1.1 實驗目的 135 4.1.2 實驗設備 135 4.1.3 實驗內容 135 4.1.4 實驗原理 135 4.1.5 實驗操作步驟 149 4.1.6 實驗參考程序 149 4.1.7 練習題 151 4.2 IO 口實驗 151 4.2.1 實驗目的 151 4.2.2 實驗設備 152 4.2.3 實驗內容 152 4.2.4 實驗原理 152 4.2.5 實驗操作步驟 159 4.2.6 實驗參考程序 160 4.2.7 實驗練習題 161 4.3 中斷實驗 161 4.3.1 實驗目的 161 4.3.2 實驗設備 161 4.3.3 實驗內容 161 4.3.4 實驗原理 162 4.3.5 實驗操作步驟 165 4.3.6 實驗參考程序 167 4.3.7 練習題 170 目 錄 I 第一章 嵌入式系統開發與應用概述 1 1.1 嵌入式系統開發與應用 1 1.2 基于 ARM的嵌入式開發環境概述 3 1.2.1 交叉開發環境 3 1.2.2 模擬開發環境 4 1.2.3 評估電路板 5 1.2.4 嵌入式操作系統 5 1.3 各種 ARM開發工具簡介 5 1.3.1 ARM的 SDT 6 1.3.2 ARM的ADS 7 1.3.3 Multi 2000 8 1.3.4 Embest IDE for ARM 11 1.3.5 OPENice32-A900仿真器 12 1.3.6 Multi-ICE 仿真器 12 1.4 如何學習基于 ARM嵌入式系統開發 13 1.5 本教程相關內容介紹 14 第二章 EMBEST ARM實驗教學系統 17 2.1 教學系統介紹 17 2.1.1 Embest IDE 集成開發環境 17 2.1.2 Embest JTAG 仿真器 19 2.1.3 Flash 編程器 20 2.1.4 Embest EduKit-III開發板 21 2.1.5 各種連接線與電源適配器 23 2.2 教學系統安裝 23 2.3 教學系統的硬件電路 27 2.3.1 概述 27 2.3.2 功能特點 27 2.3.3 原理說明 28 2.3.4 硬件結構 41 2.3.5 硬件資源分配 44 2.4 集成開發環境使用說明 51 2.4.1 Embest IDE 主框架窗口 51 2.4.2 工程管理 52 2.4.3 工程基本配置 55 2.4.4 工程的編譯鏈接 71 2.4.5 加載調試 72 2.4.6 Flash編程工具 80 第三章 嵌入式軟件開發基礎實驗 81 3.1 ARM匯編指令實驗一 81

    標簽: ARM9 基礎實驗 教程

    上傳時間: 2013-04-24

    上傳用戶:xaijhqx

  • 嵌入式ARM系統原理與實例開發

    ·作  者: 楊宗德 編著出 版 社: 北京大學出版社出版時間: 2007-9-1 字  數: 351000 版  次: 1 頁  數: 233 印刷時間: 2007/09/01 紙  張: 膠版紙 I S B N : 9787301125304 包  裝: 平裝 內容簡介本書是一本介紹ARM處理器原理與底層程序開發實例的教材,涉及嵌入式系統結構、嵌入式處理器及操作系統基本概念、ARM處理器原理及應

    標簽: ARM 嵌入式 系統原理

    上傳時間: 2013-06-19

    上傳用戶:410805624

  • 高速PCB基礎理論及內存仿真技術(經典推薦)

    第一部分 信號完整性知識基礎.................................................................................5第一章 高速數字電路概述.....................................................................................51.1 何為高速電路...............................................................................................51.2 高速帶來的問題及設計流程剖析...............................................................61.3 相關的一些基本概念...................................................................................8第二章 傳輸線理論...............................................................................................122.1 分布式系統和集總電路.............................................................................122.2 傳輸線的RLCG 模型和電報方程...............................................................132.3 傳輸線的特征阻抗.....................................................................................142.3.1 特性阻抗的本質.................................................................................142.3.2 特征阻抗相關計算.............................................................................152.3.3 特性阻抗對信號完整性的影響.........................................................172.4 傳輸線電報方程及推導.............................................................................182.5 趨膚效應和集束效應.................................................................................232.6 信號的反射.................................................................................................252.6.1 反射機理和電報方程.........................................................................252.6.2 反射導致信號的失真問題.................................................................302.6.2.1 過沖和下沖.....................................................................................302.6.2.2 振蕩:.............................................................................................312.6.3 反射的抑制和匹配.............................................................................342.6.3.1 串行匹配.........................................................................................352.6.3.1 并行匹配.........................................................................................362.6.3.3 差分線的匹配.................................................................................392.6.3.4 多負載的匹配.................................................................................41第三章 串擾的分析...............................................................................................423.1 串擾的基本概念.........................................................................................423.2 前向串擾和后向串擾.................................................................................433.3 后向串擾的反射.........................................................................................463.4 后向串擾的飽和.........................................................................................463.5 共模和差模電流對串擾的影響.................................................................483.6 連接器的串擾問題.....................................................................................513.7 串擾的具體計算.........................................................................................543.8 避免串擾的措施.........................................................................................57第四章 EMI 抑制....................................................................................................604.1 EMI/EMC 的基本概念..................................................................................604.2 EMI 的產生..................................................................................................614.2.1 電壓瞬變.............................................................................................614.2.2 信號的回流.........................................................................................624.2.3 共模和差摸EMI ..................................................................................634.3 EMI 的控制..................................................................................................654.3.1 屏蔽.....................................................................................................654.3.1.1 電場屏蔽.........................................................................................654.3.1.2 磁場屏蔽.........................................................................................674.3.1.3 電磁場屏蔽.....................................................................................674.3.1.4 電磁屏蔽體和屏蔽效率.................................................................684.3.2 濾波.....................................................................................................714.3.2.1 去耦電容.........................................................................................714.3.2.3 磁性元件.........................................................................................734.3.3 接地.....................................................................................................744.4 PCB 設計中的EMI.......................................................................................754.4.1 傳輸線RLC 參數和EMI ........................................................................764.4.2 疊層設計抑制EMI ..............................................................................774.4.3 電容和接地過孔對回流的作用.........................................................784.4.4 布局和走線規則.................................................................................79第五章 電源完整性理論基礎...............................................................................825.1 電源噪聲的起因及危害.............................................................................825.2 電源阻抗設計.............................................................................................855.3 同步開關噪聲分析.....................................................................................875.3.1 芯片內部開關噪聲.............................................................................885.3.2 芯片外部開關噪聲.............................................................................895.3.3 等效電感衡量SSN ..............................................................................905.4 旁路電容的特性和應用.............................................................................925.4.1 電容的頻率特性.................................................................................935.4.3 電容的介質和封裝影響.....................................................................955.4.3 電容并聯特性及反諧振.....................................................................955.4.4 如何選擇電容.....................................................................................975.4.5 電容的擺放及Layout ........................................................................99第六章 系統時序.................................................................................................1006.1 普通時序系統...........................................................................................1006.1.1 時序參數的確定...............................................................................1016.1.2 時序約束條件...................................................................................1063.2 高速設計的問題.......................................................................................2093.3 SPECCTRAQuest SI Expert 的組件.......................................................2103.3.1 SPECCTRAQuest Model Integrity .................................................2103.3.2 SPECCTRAQuest Floorplanner/Editor .........................................2153.3.3 Constraint Manager .......................................................................2163.3.4 SigXplorer Expert Topology Development Environment .......2233.3.5 SigNoise 仿真子系統......................................................................2253.3.6 EMControl .........................................................................................2303.3.7 SPECCTRA Expert 自動布線器.......................................................2303.4 高速設計的大致流程...............................................................................2303.4.1 拓撲結構的探索...............................................................................2313.4.2 空間解決方案的探索.......................................................................2313.4.3 使用拓撲模板驅動設計...................................................................2313.4.4 時序驅動布局...................................................................................2323.4.5 以約束條件驅動設計.......................................................................2323.4.6 設計后分析.......................................................................................233第四章 SPECCTRAQUEST SIGNAL EXPLORER 的進階運用..........................................2344.1 SPECCTRAQuest Signal Explorer 的功能包括:................................2344.2 圖形化的拓撲結構探索...........................................................................2344.3 全面的信號完整性(Signal Integrity)分析.......................................2344.4 完全兼容 IBIS 模型...............................................................................2344.5 PCB 設計前和設計的拓撲結構提取.......................................................2354.6 仿真設置顧問...........................................................................................2354.7 改變設計的管理.......................................................................................2354.8 關鍵技術特點...........................................................................................2364.8.1 拓撲結構探索...................................................................................2364.8.2 SigWave 波形顯示器........................................................................2364.8.3 集成化的在線分析(Integration and In-process Analysis) .236第五章 部分特殊的運用...............................................................................2375.1 Script 指令的使用..................................................................................2375.2 差分信號的仿真.......................................................................................2435.3 眼圖模式的使用.......................................................................................249第四部分:HYPERLYNX 仿真工具使用指南............................................................251第一章 使用LINESIM 進行前仿真.......................................................................2511.1 用LineSim 進行仿真工作的基本方法...................................................2511.2 處理信號完整性原理圖的具體問題.......................................................2591.3 在LineSim 中如何對傳輸線進行設置...................................................2601.4 在LineSim 中模擬IC 元件.....................................................................2631.5 在LineSim 中進行串擾仿真...................................................................268第二章 使用BOARDSIM 進行后仿真......................................................................2732.1 用BOARDSIM 進行后仿真工作的基本方法...................................................2732.2 BoardSim 的進一步介紹..........................................................................2922.3 BoardSim 中的串擾仿真..........................................................................309

    標簽: PCB 內存 仿真技術

    上傳時間: 2014-04-18

    上傳用戶:wpt

  • 基于TLC1549的閥門開度儀設計

    摘 要: 閥門開度儀以AT89C51單片機為核心, 通過在閥門電機軸上安裝的電位計傳感器獲得閥 門電機軸的轉動角位移, 從而得出閥門的開度, 達到自動檢測的目的。詳細介紹了串行控制的10 位A /D轉換器TLC1549的特點和功能, 說明了TLC1549與AT89C51單片機在閥門開度儀中的硬件 電路和軟件程序。實踐證明, 該閥門開度儀數據采集準確可靠、工作穩定。 關鍵詞: TLC1549; AT89C51單片機; 閥門開度    

    標簽: 1549 TLC 閥門開度儀

    上傳時間: 2013-10-14

    上傳用戶:行者Xin

  • AVR高速嵌入式單片機原理與應用(修訂版)

    AVR高速嵌入式單片機原理與應用(修訂版)詳細介紹ATMEL公司開發的AVR高速嵌入式單片機的結構;講述AVR單片機的開發工具和集成開發環境(IDE),包括Studio調試工具、AVR單片機匯編器和單片機串行下載編程;學習指令系統時,每條指令均有實例,邊學習邊調試,使學習者看得見指令流向及操作結果,真正理解每條指令的功能及使用注意事項;介紹AVR系列多種單片機功能特點、實用程序設計及應用實例;作為提高篇,講述簡單易學、適用AVR單片機的高級語言BASCOMAVR及ICC AVR C編譯器。 AVR高速嵌入式單片機原理與應用(修訂版) 目錄 第一章ATMEL單片機簡介1.1ATMEL公司產品的特點11.2AT90系列單片機簡介21.3AT91M系列單片機簡介2第二章AVR單片機系統結構2.1AVR單片機總體結構42.2AVR單片機中央處理器CPU62.2.1結構概述72.2.2通用寄存器堆92.2.3X、Y、Z寄存器92.2.4ALU運算邏輯單元92.3AVR單片機存儲器組織102.3.1可下載的Flash程序存儲器102.3.2內部和外部的SRAM數據存儲器102.3.3EEPROM數據存儲器112.3.4存儲器訪問和指令執行時序112.3.5I/O存儲器132.4AVR單片機系統復位162.4.1復位源172.4.2加電復位182.4.3外部復位192.4.4看門狗復位192.5AVR單片機中斷系統202.5.1中斷處理202.5.2外部中斷232.5.3中斷應答時間232.5.4MCU控制寄存器 MCUCR232.6AVR單片機的省電方式242.6.1休眠狀態242.6.2空閑模式242.6.3掉電模式252.7AVR單片機定時器/計數器252.7.1定時器/計數器預定比例器252.7.28位定時器/計數器0252.7.316位定時器/計數器1272.7.4看門狗定時器332.8AVR單片機EEPROM讀/寫訪問342.9AVR單片機串行接口352.9.1同步串行接口 SPI352.9.2通用串行接口 UART402.10AVR單片機模擬比較器452.10.1模擬比較器452.10.2模擬比較器控制和狀態寄存器ACSR462.11AVR單片機I/O端口472.11.1端口A472.11.2端口 B482.11.3端口 C542.11.4端口 D552.12AVR單片機存儲器編程612.12.1編程存儲器鎖定位612.12.2熔斷位612.12.3芯片代碼612.12.4編程 Flash和 EEPROM612.12.5并行編程622.12.6串行下載662.12.7可編程特性67第三章AVR單片機開發工具3.1AVR實時在線仿真器ICE200693.2JTAG ICE仿真器693.3AVR嵌入式單片機開發下載實驗器SL?AVR703.4AVR集成開發環境(IDE)753.4.1AVR Assembler編譯器753.4.2AVR Studio773.4.3AVR Prog783.5SL?AVR系列組態開發實驗系統793.6SL?AVR*.ASM源文件說明81第四章AVR單片機指令系統4.1指令格式844.1.1匯編指令844.1.2匯編器偽指令844.1.3表達式874.2尋址方式894.3數據操作和指令類型924.3.1數據操作924.3.2指令類型924.3.3指令集名詞924.4算術和邏輯指令934.4.1加法指令934.4.2減法指令974.4.3乘法指令1014.4.4取反碼指令1014.4.5取補指令1024.4.6比較指令1034.4.7邏輯與指令1054.4.8邏輯或指令1074.4.9邏輯異或指令1104.5轉移指令1114.5.1無條件轉移指令1114.5.2條件轉移指令1144.6數據傳送指令1354.6.1直接數據傳送指令1354.6.2間接數據傳送指令1374.6.3從程序存儲器直接取數據指令1444.6.4I/O口數據傳送指令1454.6.5堆棧操作指令1464.7位指令和位測試指令1474.7.1帶進位邏輯操作指令1474.7.2位變量傳送指令1514.7.3位變量修改指令1524.7.4其它指令1614.8新增指令(新器件)1624.8.1EICALL-- 延長間接調用子程序1624.8.2EIJMP--擴展間接跳轉1634.8.3ELPM--擴展裝載程序存儲器1644.8.4ESPM--擴展存儲程序存儲器1644.8.5FMUL--小數乘法1664.8.6FMULS--有符號數乘法1664.8.7FMULSU--有符號小數和無符號小數乘法1674.8.8MOVW--拷貝寄存器字1684.8.9MULS--有符號數乘法1694.8.10MULSU--有符號數與無符號數乘法1694.8.11SPM--存儲程序存儲器170 第五章AVR單片機AT90系列5.1AT90S12001725.1.1特點1725.1.2描述1735.1.3引腳配置1745.1.4結構縱覽1755.2AT90S23131835.2.1特點1835.2.2描述1845.2.3引腳配置1855.3ATmega8/8L1855.3.1特點1865.3.2描述1875.3.3引腳配置1895.3.4開發實驗工具1905.4AT90S2333/44331915.4.1特點1915.4.2描述1925.4.3引腳配置1945.5AT90S4414/85151955.5.1特點1955.5.2AT90S4414和AT90S8515的比較1965.5.3引腳配置1965.6AT90S4434/85351975.6.1特點1975.6.2描述1985.6.3AT90S4434和AT90S8535的比較1985.6.4引腳配置2005.6.5AVR RISC結構2015.6.6定時器/計數器2125.6.7看門狗定時器 2175.6.8EEPROM讀/寫2175.6.9串行外設接口SPI2175.6.10通用串行接口UART2175.6.11模擬比較器 2175.6.12模數轉換器2185.6.13I/O端口2235.7ATmega83/1632285.7.1特點2285.7.2描述2295.7.3ATmega83與ATmega163的比較2315.7.4引腳配置2315.8ATtiny10/11/122325.8.1特點2325.8.2描述2335.8.3引腳配置2355.9ATtiny15/L2375.9.1特點2375.9.2描述2375.9.3引腳配置2395 .10ATmega128/128L2395.10.1特點2405.10.2描述2415.10.3引腳配置2435.10.4開發實驗工具2455.11ATmega1612465.11.1特點2465.11.2描述2475.11.3引腳配置2475.12AVR單片機替代MCS51單片機249第六章實用程序設計6.1程序設計方法2506.1.1程序設計步驟2506.1.2程序設計技術2506.2應用程序舉例2516.2.1內部寄存器和位定義文件2516.2.2訪問內部 EEPROM2546.2.3數據塊傳送2546.2.4乘法和除法運算應用一2556.2.5乘法和除法運算應用二2556.2.616位運算2556.2.7BCD運算2556.2.8冒泡分類算法2556.2.9設置和使用模擬比較器2556.2.10半雙工中斷方式UART應用一2556.2.11半雙工中斷方式UART應用二2566.2.128位精度A/D轉換器2566.2.13裝載程序存儲器2566.2.14安裝和使用相同模擬比較器2566.2.15CRC程序存儲的檢查2566.2.164×4鍵區休眠觸發方式2576.2.17多工法驅動LED和4×4鍵區掃描2576.2.18I2C總線2576.2.19I2C工作2586.2.20SPI軟件2586.2.21驗證SLAVR實驗器及AT90S1200的口功能12596.2.22驗證SLAVR實驗器及AT90S1200的口功能22596.2.23驗證SLAVR實驗器及具有DIP40封裝的口功能第七章AVR單片機的應用7.1通用延時子程序2607.2簡單I/O口輸出實驗2667.2.1SLAVR721.ASM 2667.2.2SLAVR722.ASM2677.2.3SLAVR723.ASM2687.2.4SLAVR724.ASM2707.2.5SLAVR725.ASM2717.2.6SLAVR726.ASM2727.2.7SLAVR727.ASM2737.3綜合程序2747.3.1LED/LCD/鍵盤掃描綜合程序2747.3.2LED鍵盤掃描綜合程序2757.3.3在LED上實現字符8的循環移位顯示程序2757.3.4電腦放音機2777.3.5鍵盤掃描程序2857.3.6十進制計數顯示2867.3.7廉價的A/D轉換器2897.3.8高精度廉價的A/D轉換器2947.3.9星星燈2977.3.10按鈕猜數程序2987.3.11漢字的輸入3047.4復雜實用程序3067.4.110位A/D轉換3067.4.2步進電機控制程序3097.4.3測脈沖寬度3127.4.4LCD顯示8字循環3187.4.5LED電腦時鐘3247.4.6測頻率3307.4.7測轉速3327.4.8AT90S8535的A/D轉換334第八章BASCOMAVR的應用8.1基于高級語言BASCOMAVR的單片機開發平臺3408.2BASCOMAVR軟件平臺的安裝與使用3418.3AVR I/O口的應用3458.3.1LED發光二極管的控制3458.3.2簡易手控廣告燈3468.3.3簡易電腦音樂放音機3478.4LCD顯示器3498.4.1標準LCD顯示器的應用3498.4.2簡單游戲機--按鈕猜數3518.5串口通信UART3528.5.1AVR系統與PC的簡易通信3538.5.2PC控制的簡易廣告燈3548.6單總線接口和溫度計3568.7I2C總線接口和簡易IC卡讀寫器359第九章ICC AVR C編譯器的使用9.1ICC AVR的概述3659.1.1介紹ImageCraft的ICC AVR3659.1.2ICC AVR中的文件類型及其擴展名3659.1.3附注和擴充3669.2ImageCraft的ICC AVR編譯器安裝3679.2.1安裝SETUP.EXE程序3679.2.2對安裝完成的軟件進行注冊3679.3ICC AVR導游3689.3.1起步3689.3.2C程序的剖析3699.4ICC AVR的IDE環境3709.4.1編譯一個單獨的文件3709.4.2創建一個新的工程3709.4.3工程管理3719.4.4編輯窗口3719.4.5應用構筑向導3719.4.6狀態窗口3719.4.7終端仿真3719.5C庫函數與啟動文件3729.5.1啟動文件3729.5.2常用庫函數3729.5.3字符類型庫3739.5.4浮點運算庫3749.5.5標準輸入/輸出庫3759.5.6標準庫和內存分配函數3769.5.7字符串函數3779.5.8變量參數函數3799.5.9堆棧檢查函數3799.6AVR硬件訪問的編程3809.6.1訪問AVR的底層硬件3809.6.2位操作3809.6.3程序存儲器和常量數據3819.6.4字符串3829.6.5堆棧3839.6.6在線匯編3839.6.7I/O寄存器3849.6.8絕對內存地址3849.6.9C任務3859.6.10中斷操作3869.6.11訪問UART3879.6.12訪問EEPROM3879.6.13訪問SPI3889.6.14相對轉移/調用的地址范圍3889.6.15C的運行結構3889.6.16匯編界面和調用規則3899.6.17函數返回非整型值3909.6.18程序和數據區的使用3909.6.19編程區域3919.6.20調試3919.7應用舉例*3929.7.1讀/寫口3929.7.2延時函數3929.7.3讀/寫EEPROM3929.7.4AVR的PB口變速移位3939.7.5音符聲程序3939.7.68字循環移位顯示程序3949.7.7鋸齒波程序3959.7.8正三角波程序3969.7.9梯形波程序396附錄1AT89系列單片機簡介398附錄2AT94K系列現場可編程系統標準集成電路401附錄3指令集綜合404附錄4AVR單片機選型表408參 考 文 獻412

    標簽: AVR 高速嵌入式 單片機原理

    上傳時間: 2013-11-08

    上傳用戶:xcy122677

  • 高速PCB基礎理論及內存仿真技術(經典推薦)

    第一部分 信號完整性知識基礎.................................................................................5第一章 高速數字電路概述.....................................................................................51.1 何為高速電路...............................................................................................51.2 高速帶來的問題及設計流程剖析...............................................................61.3 相關的一些基本概念...................................................................................8第二章 傳輸線理論...............................................................................................122.1 分布式系統和集總電路.............................................................................122.2 傳輸線的RLCG 模型和電報方程...............................................................132.3 傳輸線的特征阻抗.....................................................................................142.3.1 特性阻抗的本質.................................................................................142.3.2 特征阻抗相關計算.............................................................................152.3.3 特性阻抗對信號完整性的影響.........................................................172.4 傳輸線電報方程及推導.............................................................................182.5 趨膚效應和集束效應.................................................................................232.6 信號的反射.................................................................................................252.6.1 反射機理和電報方程.........................................................................252.6.2 反射導致信號的失真問題.................................................................302.6.2.1 過沖和下沖.....................................................................................302.6.2.2 振蕩:.............................................................................................312.6.3 反射的抑制和匹配.............................................................................342.6.3.1 串行匹配.........................................................................................352.6.3.1 并行匹配.........................................................................................362.6.3.3 差分線的匹配.................................................................................392.6.3.4 多負載的匹配.................................................................................41第三章 串擾的分析...............................................................................................423.1 串擾的基本概念.........................................................................................423.2 前向串擾和后向串擾.................................................................................433.3 后向串擾的反射.........................................................................................463.4 后向串擾的飽和.........................................................................................463.5 共模和差模電流對串擾的影響.................................................................483.6 連接器的串擾問題.....................................................................................513.7 串擾的具體計算.........................................................................................543.8 避免串擾的措施.........................................................................................57第四章 EMI 抑制....................................................................................................604.1 EMI/EMC 的基本概念..................................................................................604.2 EMI 的產生..................................................................................................614.2.1 電壓瞬變.............................................................................................614.2.2 信號的回流.........................................................................................624.2.3 共模和差摸EMI ..................................................................................634.3 EMI 的控制..................................................................................................654.3.1 屏蔽.....................................................................................................654.3.1.1 電場屏蔽.........................................................................................654.3.1.2 磁場屏蔽.........................................................................................674.3.1.3 電磁場屏蔽.....................................................................................674.3.1.4 電磁屏蔽體和屏蔽效率.................................................................684.3.2 濾波.....................................................................................................714.3.2.1 去耦電容.........................................................................................714.3.2.3 磁性元件.........................................................................................734.3.3 接地.....................................................................................................744.4 PCB 設計中的EMI.......................................................................................754.4.1 傳輸線RLC 參數和EMI ........................................................................764.4.2 疊層設計抑制EMI ..............................................................................774.4.3 電容和接地過孔對回流的作用.........................................................784.4.4 布局和走線規則.................................................................................79第五章 電源完整性理論基礎...............................................................................825.1 電源噪聲的起因及危害.............................................................................825.2 電源阻抗設計.............................................................................................855.3 同步開關噪聲分析.....................................................................................875.3.1 芯片內部開關噪聲.............................................................................885.3.2 芯片外部開關噪聲.............................................................................895.3.3 等效電感衡量SSN ..............................................................................905.4 旁路電容的特性和應用.............................................................................925.4.1 電容的頻率特性.................................................................................935.4.3 電容的介質和封裝影響.....................................................................955.4.3 電容并聯特性及反諧振.....................................................................955.4.4 如何選擇電容.....................................................................................975.4.5 電容的擺放及Layout ........................................................................99第六章 系統時序.................................................................................................1006.1 普通時序系統...........................................................................................1006.1.1 時序參數的確定...............................................................................1016.1.2 時序約束條件...................................................................................1063.2 高速設計的問題.......................................................................................2093.3 SPECCTRAQuest SI Expert 的組件.......................................................2103.3.1 SPECCTRAQuest Model Integrity .................................................2103.3.2 SPECCTRAQuest Floorplanner/Editor .........................................2153.3.3 Constraint Manager .......................................................................2163.3.4 SigXplorer Expert Topology Development Environment .......2233.3.5 SigNoise 仿真子系統......................................................................2253.3.6 EMControl .........................................................................................2303.3.7 SPECCTRA Expert 自動布線器.......................................................2303.4 高速設計的大致流程...............................................................................2303.4.1 拓撲結構的探索...............................................................................2313.4.2 空間解決方案的探索.......................................................................2313.4.3 使用拓撲模板驅動設計...................................................................2313.4.4 時序驅動布局...................................................................................2323.4.5 以約束條件驅動設計.......................................................................2323.4.6 設計后分析.......................................................................................233第四章 SPECCTRAQUEST SIGNAL EXPLORER 的進階運用..........................................2344.1 SPECCTRAQuest Signal Explorer 的功能包括:................................2344.2 圖形化的拓撲結構探索...........................................................................2344.3 全面的信號完整性(Signal Integrity)分析.......................................2344.4 完全兼容 IBIS 模型...............................................................................2344.5 PCB 設計前和設計的拓撲結構提取.......................................................2354.6 仿真設置顧問...........................................................................................2354.7 改變設計的管理.......................................................................................2354.8 關鍵技術特點...........................................................................................2364.8.1 拓撲結構探索...................................................................................2364.8.2 SigWave 波形顯示器........................................................................2364.8.3 集成化的在線分析(Integration and In-process Analysis) .236第五章 部分特殊的運用...............................................................................2375.1 Script 指令的使用..................................................................................2375.2 差分信號的仿真.......................................................................................2435.3 眼圖模式的使用.......................................................................................249第四部分:HYPERLYNX 仿真工具使用指南............................................................251第一章 使用LINESIM 進行前仿真.......................................................................2511.1 用LineSim 進行仿真工作的基本方法...................................................2511.2 處理信號完整性原理圖的具體問題.......................................................2591.3 在LineSim 中如何對傳輸線進行設置...................................................2601.4 在LineSim 中模擬IC 元件.....................................................................2631.5 在LineSim 中進行串擾仿真...................................................................268第二章 使用BOARDSIM 進行后仿真......................................................................2732.1 用BOARDSIM 進行后仿真工作的基本方法...................................................2732.2 BoardSim 的進一步介紹..........................................................................2922.3 BoardSim 中的串擾仿真..........................................................................309

    標簽: PCB 內存 仿真技術

    上傳時間: 2013-11-07

    上傳用戶:aa7821634

  • RS編碼

    RS編碼,verilog編寫,可以自定義多項式,(255,233)和(204,188)均可。

    標簽: RS編碼

    上傳時間: 2016-02-13

    上傳用戶:yd19890720

  • C語言算法速查手冊 書本附件

    第1章 緒論 1 1.1 程序設計語言概述 1 1.1.1 機器語言 1 1.1.2 匯編語言 2 1.1.3 高級語言 2 1.1.4 C語言 3 1.2 C語言的優點和缺點 4 1.2.1 C語言的優點 4 1.2.2 C語言的缺點 6 1.3 算法概述 7 1.3.1 算法的基本特征 7 1.3.2 算法的復雜度 8 1.3.3 算法的準確性 10 1.3.4 算法的穩定性 14 第2章 復數運算 18 2.1 復數的四則運算 18 2.1.1 [算法1] 復數乘法 18 2.1.2 [算法2] 復數除法 20 2.1.3 【實例5】 復數的四則運算 22 2.2 復數的常用函數運算 23 2.2.1 [算法3] 復數的乘冪 23 2.2.2 [算法4] 復數的n次方根 25 2.2.3 [算法5] 復數指數 27 2.2.4 [算法6] 復數對數 29 2.2.5 [算法7] 復數正弦 30 2.2.6 [算法8] 復數余弦 32 2.2.7 【實例6】 復數的函數運算 34 第3章 多項式計算 37 3.1 多項式的表示方法 37 3.1.1 系數表示法 37 3.1.2 點表示法 38 3.1.3 [算法9] 系數表示轉化為點表示 38 3.1.4 [算法10] 點表示轉化為系數表示 42 3.1.5 【實例7】 系數表示法與點表示法的轉化 46 3.2 多項式運算 47 3.2.1 [算法11] 復系數多項式相乘 47 3.2.2 [算法12] 實系數多項式相乘 50 3.2.3 [算法13] 復系數多項式相除 52 3.2.4 [算法14] 實系數多項式相除 54 3.2.5 【實例8】 復系數多項式的乘除法 56 3.2.6 【實例9】 實系數多項式的乘除法 57 3.3 多項式的求值 59 3.3.1 [算法15] 一元多項式求值 59 3.3.2 [算法16] 一元多項式多組求值 60 3.3.3 [算法17] 二元多項式求值 63 3.3.4 【實例10】 一元多項式求值 65 3.3.5 【實例11】 二元多項式求值 66 第4章 矩陣計算 68 4.1 矩陣相乘 68 4.1.1 [算法18] 實矩陣相乘 68 4.1.2 [算法19] 復矩陣相乘 70 4.1.3 【實例12】 實矩陣與復矩陣的乘法 72 4.2 矩陣的秩與行列式值 73 4.2.1 [算法20] 求矩陣的秩 73 4.2.2 [算法21] 求一般矩陣的行列式值 76 4.2.3 [算法22] 求對稱正定矩陣的行列式值 80 4.2.4 【實例13】 求矩陣的秩和行列式值 82 4.3 矩陣求逆 84 4.3.1 [算法23] 求一般復矩陣的逆 84 4.3.2 [算法24] 求對稱正定矩陣的逆 90 4.3.3 [算法25] 求托伯利茲矩陣逆的Trench方法 92 4.3.4 【實例14】 驗證矩陣求逆算法 97 4.3.5 【實例15】 驗證T矩陣求逆算法 99 4.4 矩陣分解與相似變換 102 4.4.1 [算法26] 實對稱矩陣的LDL分解 102 4.4.2 [算法27] 對稱正定實矩陣的Cholesky分解 104 4.4.3 [算法28] 一般實矩陣的全選主元LU分解 107 4.4.4 [算法29] 一般實矩陣的QR分解 112 4.4.5 [算法30] 對稱實矩陣相似變換為對稱三對角陣 116 4.4.6 [算法31] 一般實矩陣相似變換為上Hessen-Burg矩陣 121 4.4.7 【實例16】 對一般實矩陣進行QR分解 126 4.4.8 【實例17】 對稱矩陣的相似變換 127 4.4.9 【實例18】 一般實矩陣相似變換 129 4.5 矩陣特征值的計算 130 4.5.1 [算法32] 求上Hessen-Burg矩陣全部特征值的QR方法 130 4.5.2 [算法33] 求對稱三對角陣的全部特征值 137 4.5.3 [算法34] 求對稱矩陣特征值的雅可比法 143 4.5.4 [算法35] 求對稱矩陣特征值的雅可比過關法 147 4.5.5 【實例19】 求上Hessen-Burg矩陣特征值 151 4.5.6 【實例20】 分別用兩種雅克比法求對稱矩陣特征值 152 第5章 線性代數方程組的求解 154 5.1 高斯消去法 154 5.1.1 [算法36] 求解復系數方程組的全選主元高斯消去法 155 5.1.2 [算法37] 求解實系數方程組的全選主元高斯消去法 160 5.1.3 [算法38] 求解復系數方程組的全選主元高斯-約當消去法 163 5.1.4 [算法39] 求解實系數方程組的全選主元高斯-約當消去法 168 5.1.5 [算法40] 求解大型稀疏系數矩陣方程組的高斯-約當消去法 171 5.1.6 [算法41] 求解三對角線方程組的追趕法 174 5.1.7 [算法42] 求解帶型方程組的方法 176 5.1.8 【實例21】 解線性實系數方程組 179 5.1.9 【實例22】 解線性復系數方程組 180 5.1.10 【實例23】 解三對角線方程組 182 5.2 矩陣分解法 184 5.2.1 [算法43] 求解對稱方程組的LDL分解法 184 5.2.2 [算法44] 求解對稱正定方程組的Cholesky分解法 186 5.2.3 [算法45] 求解線性最小二乘問題的QR分解法 188 5.2.4 【實例24】 求解對稱正定方程組 191 5.2.5 【實例25】 求解線性最小二乘問題 192 5.3 迭代方法 193 5.3.1 [算法46] 病態方程組的求解 193 5.3.2 [算法47] 雅克比迭代法 197 5.3.3 [算法48] 高斯-塞德爾迭代法 200 5.3.4 [算法49] 超松弛方法 203 5.3.5 [算法50] 求解對稱正定方程組的共軛梯度方法 205 5.3.6 [算法51] 求解托伯利茲方程組的列文遜方法 209 5.3.7 【實例26】 解病態方程組 214 5.3.8 【實例27】 用迭代法解方程組 215 5.3.9 【實例28】 求解托伯利茲方程組 217 第6章 非線性方程與方程組的求解 219 6.1 非線性方程求根的基本過程 219 6.1.1 確定非線性方程實根的初始近似值或根的所在區間 219 6.1.2 求非線性方程根的精確解 221 6.2 求非線性方程一個實根的方法 221 6.2.1 [算法52] 對分法 221 6.2.2 [算法53] 牛頓法 223 6.2.3 [算法54] 插值法 226 6.2.4 [算法55] 埃特金迭代法 229 6.2.5 【實例29】 用對分法求非線性方程組的實根 232 6.2.6 【實例30】 用牛頓法求非線性方程組的實根 233 6.2.7 【實例31】 用插值法求非線性方程組的實根 235 6.2.8 【實例32】 用埃特金迭代法求非線性方程組的實根 237 6.3 求實系數多項式方程全部根的方法 238 6.3.1 [算法56] QR方法 238 6.3.2 【實例33】 用QR方法求解多項式的全部根 240 6.4 求非線性方程組一組實根的方法 241 6.4.1 [算法57] 梯度法 241 6.4.2 [算法58] 擬牛頓法 244 6.4.3 【實例34】 用梯度法計算非線性方程組的一組實根 250 6.4.4 【實例35】 用擬牛頓法計算非線性方程組的一組實根 252 第7章 代數插值法 254 7.1 拉格朗日插值法 254 7.1.1 [算法59] 線性插值 255 7.1.2 [算法60] 二次拋物線插值 256 7.1.3 [算法61] 全區間插值 259 7.1.4 【實例36】 拉格朗日插值 262 7.2 埃爾米特插值 263 7.2.1 [算法62] 埃爾米特不等距插值 263 7.2.2 [算法63] 埃爾米特等距插值 267 7.2.3 【實例37】 埃爾米特插值法 270 7.3 埃特金逐步插值 271 7.3.1 [算法64] 埃特金不等距插值 272 7.3.2 [算法65] 埃特金等距插值 275 7.3.3 【實例38】 埃特金插值 278 7.4 光滑插值 279 7.4.1 [算法66] 光滑不等距插值 279 7.4.2 [算法67] 光滑等距插值 283 7.4.3 【實例39】 光滑插值 286 7.5 三次樣條插值 287 7.5.1 [算法68] 第一類邊界條件的三次樣條函數插值 287 7.5.2 [算法69] 第二類邊界條件的三次樣條函數插值 292 7.5.3 [算法70] 第三類邊界條件的三次樣條函數插值 296 7.5.4 【實例40】 樣條插值法 301 7.6 連分式插值 303 7.6.1 [算法71] 連分式插值 304 7.6.2 【實例41】 驗證連分式插值的函數 308 第8章 數值積分法 309 8.1 變步長求積法 310 8.1.1 [算法72] 變步長梯形求積法 310 8.1.2 [算法73] 自適應梯形求積法 313 8.1.3 [算法74] 變步長辛卜生求積法 316 8.1.4 [算法75] 變步長辛卜生二重積分方法 318 8.1.5 [算法76] 龍貝格積分 322 8.1.6 【實例42】 變步長積分法進行一重積分 325 8.1.7 【實例43】 變步長辛卜生積分法進行二重積分 326 8.2 高斯求積法 328 8.2.1 [算法77] 勒讓德-高斯求積法 328 8.2.2 [算法78] 切比雪夫求積法 331 8.2.3 [算法79] 拉蓋爾-高斯求積法 334 8.2.4 [算法80] 埃爾米特-高斯求積法 336 8.2.5 [算法81] 自適應高斯求積方法 337 8.2.6 【實例44】 有限區間高斯求積法 342 8.2.7 【實例45】 半無限區間內高斯求積法 343 8.2.8 【實例46】 無限區間內高斯求積法 345 8.3 連分式法 346 8.3.1 [算法82] 計算一重積分的連分式方法 346 8.3.2 [算法83] 計算二重積分的連分式方法 350 8.3.3 【實例47】 連分式法進行一重積分 354 8.3.4 【實例48】 連分式法進行二重積分 355 8.4 蒙特卡洛法 356 8.4.1 [算法84] 蒙特卡洛法進行一重積分 356 8.4.2 [算法85] 蒙特卡洛法進行二重積分 358 8.4.3 【實例49】 一重積分的蒙特卡洛法 360 8.4.4 【實例50】 二重積分的蒙特卡洛法 361 第9章 常微分方程(組)初值問題的求解 363 9.1 歐拉方法 364 9.1.1 [算法86] 定步長歐拉方法 364 9.1.2 [算法87] 變步長歐拉方法 366 9.1.3 [算法88] 改進的歐拉方法 370 9.1.4 【實例51】 歐拉方法求常微分方程數值解 372 9.2 龍格-庫塔方法 376 9.2.1 [算法89] 定步長龍格-庫塔方法 376 9.2.2 [算法90] 變步長龍格-庫塔方法 379 9.2.3 [算法91] 變步長基爾方法 383 9.2.4 【實例52】 龍格-庫塔方法求常微分方程的初值問題 386 9.3 線性多步法 390 9.3.1 [算法92] 阿當姆斯預報校正法 390 9.3.2 [算法93] 哈明方法 394 9.3.3 [算法94] 全區間積分的雙邊法 399 9.3.4 【實例53】 線性多步法求常微分方程組初值問題 401 第10章 擬合與逼近 405 10.1 一元多項式擬合 405 10.1.1 [算法95] 最小二乘擬合 405 10.1.2 [算法96] 最佳一致逼近的里米茲方法 412 10.1.3 【實例54】 一元多項式擬合 417 10.2 矩形區域曲面擬合 419 10.2.1 [算法97] 矩形區域最小二乘曲面擬合 419 10.2.2 【實例55】 二元多項式擬合 428 第11章 特殊函數 430 11.1 連分式級數和指數積分 430 11.1.1 [算法98] 連分式級數求值 430 11.1.2 [算法99] 指數積分 433 11.1.3 【實例56】 連分式級數求值 436 11.1.4 【實例57】 指數積分求值 438 11.2 伽馬函數 439 11.2.1 [算法100] 伽馬函數 439 11.2.2 [算法101] 貝塔函數 441 11.2.3 [算法102] 階乘 442 11.2.4 【實例58】 伽馬函數和貝塔函數求值 443 11.2.5 【實例59】 階乘求值 444 11.3 不完全伽馬函數 445 11.3.1 [算法103] 不完全伽馬函數 445 11.3.2 [算法104] 誤差函數 448 11.3.3 [算法105] 卡方分布函數 450 11.3.4 【實例60】 不完全伽馬函數求值 451 11.3.5 【實例61】 誤差函數求值 452 11.3.6 【實例62】 卡方分布函數求值 453 11.4 不完全貝塔函數 454 11.4.1 [算法106] 不完全貝塔函數 454 11.4.2 [算法107] 學生分布函數 457 11.4.3 [算法108] 累積二項式分布函數 458 11.4.4 【實例63】 不完全貝塔函數求值 459 11.5 貝塞爾函數 461 11.5.1 [算法109] 第一類整數階貝塞爾函數 461 11.5.2 [算法110] 第二類整數階貝塞爾函數 466 11.5.3 [算法111] 變型第一類整數階貝塞爾函數 469 11.5.4 [算法112] 變型第二類整數階貝塞爾函數 473 11.5.5 【實例64】 貝塞爾函數求值 476 11.5.6 【實例65】 變型貝塞爾函數求值 477 11.6 Carlson橢圓積分 479 11.6.1 [算法113] 第一類橢圓積分 479 11.6.2 [算法114] 第一類橢圓積分的退化形式 481 11.6.3 [算法115] 第二類橢圓積分 483 11.6.4 [算法116] 第三類橢圓積分 486 11.6.5 【實例66】 第一類勒讓德橢圓函數積分求值 490 11.6.6 【實例67】 第二類勒讓德橢圓函數積分求值 492 第12章 極值問題 494 12.1 一維極值求解方法 494 12.1.1 [算法117] 確定極小值點所在的區間 494 12.1.2 [算法118] 一維黃金分割搜索 499 12.1.3 [算法119] 一維Brent方法 502 12.1.4 [算法120] 使用一階導數的Brent方法 506 12.1.5 【實例68】 使用黃金分割搜索法求極值 511 12.1.6 【實例69】 使用Brent法求極值 513 12.1.7 【實例70】 使用帶導數的Brent法求極值 515 12.2 多元函數求極值 517 12.2.1 [算法121] 不需要導數的一維搜索 517 12.2.2 [算法122] 需要導數的一維搜索 519 12.2.3 [算法123] Powell方法 522 12.2.4 [算法124] 共軛梯度法 525 12.2.5 [算法125] 準牛頓法 531 12.2.6 【實例71】 驗證不使用導數的一維搜索 536 12.2.7 【實例72】 用Powell算法求極值 537 12.2.8 【實例73】 用共軛梯度法求極值 539 12.2.9 【實例74】 用準牛頓法求極值 540 12.3 單純形法 542 12.3.1 [算法126] 求無約束條件下n維極值的單純形法 542 12.3.2 [算法127] 求有約束條件下n維極值的單純形法 548 12.3.3 [算法128] 解線性規劃問題的單純形法 556 12.3.4 【實例75】 用單純形法求無約束條件下N維的極值 568 12.3.5 【實例76】 用單純形法求有約束條件下N維的極值 569 12.3.6 【實例77】 求解線性規劃問題 571 第13章 隨機數產生與統計描述 574 13.1 均勻分布隨機序列 574 13.1.1 [算法129] 產生0到1之間均勻分布的一個隨機數 574 13.1.2 [算法130] 產生0到1之間均勻分布的隨機數序列 576 13.1.3 [算法131] 產生任意區間內均勻分布的一個隨機整數 577 13.1.4 [算法132] 產生任意區間內均勻分布的隨機整數序列 578 13.1.5 【實例78】 產生0到1之間均勻分布的隨機數序列 580 13.1.6 【實例79】 產生任意區間內均勻分布的隨機整數序列 581 13.2 正態分布隨機序列 582 13.2.1 [算法133] 產生任意均值與方差的正態分布的一個隨機數 582 13.2.2 [算法134] 產生任意均值與方差的正態分布的隨機數序列 585 13.2.3 【實例80】 產生任意均值與方差的正態分布的一個隨機數 587 13.2.4 【實例81】 產生任意均值與方差的正態分布的隨機數序列 588 13.3 統計描述 589 13.3.1 [算法135] 分布的矩 589 13.3.2 [算法136] 方差相同時的t分布檢驗 591 13.3.3 [算法137] 方差不同時的t分布檢驗 594 13.3.4 [算法138] 方差的F檢驗 596 13.3.5 [算法139] 卡方檢驗 599 13.3.6 【實例82】 計算隨機樣本的矩 601 13.3.7 【實例83】 t分布檢驗 602 13.3.8 【實例84】 F分布檢驗 605 13.3.9 【實例85】 檢驗卡方檢驗的算法 607 第14章 查找 609 14.1 基本查找 609 14.1.1 [算法140] 有序數組的二分查找 609 14.1.2 [算法141] 無序數組同時查找最大和最小的元素 611 14.1.3 [算法142] 無序數組查找第M小的元素 613 14.1.4 【實例86】 基本查找 615 14.2 結構體和磁盤文件的查找 617 14.2.1 [算法143] 無序結構體數組的順序查找 617 14.2.2 [算法144] 磁盤文件中記錄的順序查找 618 14.2.3 【實例87】 結構體數組和文件中的查找 619 14.3 哈希查找 622 14.3.1 [算法145] 字符串哈希函數 622 14.3.2 [算法146] 哈希函數 626 14.3.3 [算法147] 向哈希表中插入元素 628 14.3.4 [算法148] 在哈希表中查找元素 629 14.3.5 [算法149] 在哈希表中刪除元素 631 14.3.6 【實例88】 構造哈希表并進行查找 632 第15章 排序 636 15.1 插入排序 636 15.1.1 [算法150] 直接插入排序 636 15.1.2 [算法151] 希爾排序 637 15.1.3 【實例89】 插入排序 639 15.2 交換排序 641 15.2.1 [算法152] 氣泡排序 641 15.2.2 [算法153] 快速排序 642 15.2.3 【實例90】 交換排序 644 15.3 選擇排序 646 15.3.1 [算法154] 直接選擇排序 646 15.3.2 [算法155] 堆排序 647 15.3.3 【實例91】 選擇排序 650 15.4 線性時間排序 651 15.4.1 [算法156] 計數排序 651 15.4.2 [算法157] 基數排序 653 15.4.3 【實例92】 線性時間排序 656 15.5 歸并排序 657 15.5.1 [算法158] 二路歸并排序 658 15.5.2 【實例93】 二路歸并排序 660 第16章 數學變換與濾波 662 16.1 快速傅里葉變換 662 16.1.1 [算法159] 復數據快速傅里葉變換 662 16.1.2 [算法160] 復數據快速傅里葉逆變換 666 16.1.3 [算法161] 實數據快速傅里葉變換 669 16.1.4 【實例94】 驗證傅里葉變換的函數 671 16.2 其他常用變換 674 16.2.1 [算法162] 快速沃爾什變換 674 16.2.2 [算法163] 快速哈達瑪變換 678 16.2.3 [算法164] 快速余弦變換 682 16.2.4 【實例95】 驗證沃爾什變換和哈達瑪的函數 684 16.2.5 【實例96】 驗證離散余弦變換的函數 687 16.3 平滑和濾波 688 16.3.1 [算法165] 五點三次平滑 689 16.3.2 [算法166] α-β-γ濾波 690 16.3.3 【實例97】 驗證五點三次平滑 692 16.3.4 【實例98】 驗證α-β-γ濾波算法 693  

    標簽: C 算法 附件 源代碼

    上傳時間: 2015-06-29

    上傳用戶:cbsdukaf

  • 成績查詢系統

    #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score   {   float math;   float english;   float computer;   }; struct student   {   int number;   char name[20];   struct score sco;   float average;   }; struct student stu[N]; void print_menu(void);//輸出菜單 void choosemenu(void);//菜單選擇 void input_student1(int);//輸入學生信息 void input_student2(void);//輸入總函數 void input_student3(int &,int);//判斷學號是否重復 void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語成績排序 void sort_student4(student s[],int);//按照計算機成績排序 void sort_student2(student s[],int);//按照數學成績排序 void sort_student5(student s[],int);//按照平均成績排序 float input_score2(int);//計算學生平均成績 void print_student2(void);//顯示表頭 void print_student3(int);//顯示學生信息 void print_student1(int);//顯示全部學生資料 void sort_student1(void);//排序總函數 void menu(void);//菜單調度總函數 int search_student2(int);//按學號查詢學生信息并輸出 void search_student3(int);//按平均分最高查詢并輸出 void search_student1(void);//查詢總函數 void delete_student2(int,int);//刪除學生信息 void delete_student1(void);//刪除總函數 void change_student2(int);//修改學生資料 void change_student1(void);//修改總函數 void input_score3(int);//統計成績 void input_score1(void);//統計成績總函數 void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統 void save_student(student *,int);//保存學生信息 void main()   {   menu();   } void save_student(student *s,int a)//保存學生信息   {   FILE *fp;     if((fp=fopen("d:\\學生信息.txt","wb"))==NULL)       {       printf("不能打開文件!\n");       }     else       {       printf("保存信息到D盤\n");       fprintf(fp,"本班所有學生具體信息如下:\r\n");       fprintf(fp,"  學號       姓名           數學成績       英語成績     計算機成績     平均成績\r\n");       for(int i=0;i<a;i++)         {         fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average);         fprintf(fp,"\r\n");         }       fclose(fp);       printf("信息保存成功!\n");       }   } void exit_student(void)//退出系統   {   exit(1);   } void print_help(void)//輸出幫助信息   {   printf("本系統所能容納的最大學生數為%d人\n學生信息保存在D盤根目錄下,保存文件為“學生信息.txt”。\n感謝使用!\n",N);   } void input_score1(void)//統計成績總函數   {   int c;   c=search_student2(iNumOfStu);   printf("學號:%d\n",stu[c].number);   printf("姓名:%s\n",stu[c].name);   input_score3(c);   printf("新成績錄入成功!\n");   stu[c].average=input_score2(c);   } void input_score3(int a)//統計成績   {   printf("數學新成績:");   scanf("%f",&stu[a].sco.math);   printf("英語新成績:");   scanf("%f",&stu[a].sco.english);   printf("計算機新成績:");   scanf("%f",&stu[a].sco.computer);   } void change_student2(int a)//修改學生資料   {   printf("學號:%d----修改為:",stu[a].number);   scanf("%d",&stu[a].number);   getchar();   printf("姓名:%s----修改為:",stu[a].name);   gets(stu[a].name);   printf("數學成績:%.2f----修改為:",stu[a].sco.math);   scanf("%f",&stu[a].sco.math);   printf("英語成績:%.2f----修改為:",stu[a].sco.english);   scanf("%f",&stu[a].sco.english);   printf("計算機成績:%.2f----修改為:",stu[a].sco.computer);   scanf("%f",&stu[a].sco.computer);   } void change_student1(void)//修改總函數   {   int c;   c=search_student2(iNumOfStu);   getchar();   printf("是否要修改此學生信息?(“y”代表是)");   char d;   scanf("%c",&d);   if(d=='y'||d=='Y')     {     change_student2(c);       stu[c].average=input_score2(c);     printf("信息修改成功!\n");     }   } void delete_student1(void)//刪除總函數   {   int c;   c=search_student2(iNumOfStu);   getchar();   printf("是否刪除此條記錄?(“y”代表是)");   char d;   scanf("%c",&d);   if(d=='y'||d=='Y')     {     delete_student2(c,iNumOfStu);     printf("記錄已刪除!\n");     }   } void delete_student2(int a,int b)//刪除學生信息   {   for(int i=a;i<b-1;i++)     {     stu[i]=stu[i+1];     }   --iNumOfStu;   } void search_student1(void)//查詢總函數   {   printf("1、按學號查詢\n2、按平均分最高查詢\n請選擇:");   int c;   scanf("%d",&c);   switch(c)     {     case 1:       {       search_student2(iNumOfStu);       break;       }     case 2:       {       search_student3(iNumOfStu);       break;       }     default: break;     }   } void menu(void)//菜單調度總函數   {   print_menu();   choosemenu();   } void sort_student1(void)//排序總函數   {   printf("1、按數學成績排序\n2、按英語成績排序\n3、按計算機成績排序\n4、按平均成績排序\n請選擇:");   int c;   scanf("%d",&c);   switch(c)     {     case 1:       {       sort_student2(stu,iNumOfStu);       break;       }     case 2:       {       sort_student3(stu,iNumOfStu);       break;       }     case 3:       {       sort_student4(stu,iNumOfStu);       break;       }     case 4:       {       sort_student5(stu,iNumOfStu);       break;       }     default: break;     }   } void print_student1(int a)//顯示全部學生資料   {   printf("本班所有學生具體信息如下\n");   print_student2();   for(int i=0;i<a;i++)     {     print_student3(i);     }   } void print_student3(int a)//顯示學生信息   {   printf("%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[a].number,stu[a].name,stu[a].sco.math,stu[a].sco.english,stu[a].sco.computer,stu[a].average);   } void print_student2(void)//顯示表頭   {   printf("  學號       姓名           數學成績       英語成績     計算機成績     平均成績\n");   } void input_student4(int a,int b)//覆蓋原信息   {   stu[a]=stu[b-1];   --iNumOfStu;   } void input_student3(int &a,int b)//判斷學號是否重復   {   if(a!=0)     {     int i=0;     do       {       if(stu[a].number==stu[i].number)         {         printf("此學號代表的學生已錄入\n1、覆蓋原信息\n2、重新輸入\n請選擇:");         int c;         scanf("%d",&c);         switch(c)           {           case 1:             {             input_student4(i,iNumOfStu);             a=iNumOfStu-1;             printf("信息已替換!\n");             break;             }           case 2:             {             printf("請重新輸入學生信息:\n");             input_student1(iNumOfStu-1);             break;             }           default: break;           }         break;         }       ++i;       }       while(i<b-1);     }   } void print_menu(void)//輸出菜單   {   printf("======歡迎來到學生信息管理系統======\n");   printf("      1、輸入學生資料\n");   printf("      2、刪除學生資料\n");   printf("      3、查詢學生資料\n");   printf("      4、修改學生資料\n");   printf("      5、顯示學生資料\n");   printf("      6、統計學生成績\n");   printf("      7、排序學生成績\n");   printf("      8、保存學生資料\n");   printf("      9、獲取幫助信息\n");   printf("      10、退出系統\n");   printf("====================================\n");   printf("請選擇:");   } void input_student2(void)//輸入總函數   {   char end;   printf("請輸入學生信息(在最后一個學生信息錄入完成后以“/”結束錄入):\n");   for(int i=0;(end=getchar())!='/';i++)     {     input_student1(i);     ++iNumOfStu;     input_student3(i,iNumOfStu);     }   for(int j=0;j<iNumOfStu;j++)     {     stu[j].average=input_score2(j);     }   } void input_student1(int a)//輸入學生信息   {   printf("學號:");   scanf("%d",&stu[a].number);   getchar();   printf("姓名:");   gets(stu[a].name);   printf("數學成績:");   scanf("%f",&stu[a].sco.math);   printf("英語成績:");   scanf("%f",&stu[a].sco.english);   printf("計算機成績:");   scanf("%f",&stu[a].sco.computer);   } float input_score2(int a)//計算學生平均成績   {   return (stu[a].sco.math+stu[a].sco.english+stu[a].sco.computer)/3;   } void search_student3(int a)//按平均分最高查詢并輸出   {   int max=0;   for(int i=0;i<a;i++)     {     if(stu[max].average<stu[i].average)       {       max=i;       }     }   print_student2();   print_student3(max);   } void sort_student2(student s[],int a)//按照數學成績排序   {   struct student temp;   for(int i=0;i<a-1;i++)     {     int max=i;     for(int j=i+1;j<a;j++)       if(stu[j].sco.math>stu[max].sco.math)         {         max=j;         }     if(max!=i)       {       temp=stu[max];       stu[max]=stu[i];       stu[i]=temp;       }     }   print_student2();   for(int k=0;k<a;k++)     {     print_student3(k);     }   } void sort_student3(student s[],int a)//按照英語成績排序   {   struct student temp;   for(int i=0;i<a-1;i++)     {     int max=i;     for(int j=i+1;j<a;j++)       if(stu[j].sco.english>stu[max].sco.english)         {         max=j;         }     if(max!=i)       {       temp=stu[max];       stu[max]=stu[i];       stu[i]=temp;       }     }   print_student2();   for(int k=0;k<a;k++)     {     print_student3(k);     }   } void sort_student4(student s[],int a)//按照計算機成績排序   {   struct student temp;   for(int i=0;i<a-1;i++)     {     int max=i;     for(int j=i+1;j<a;j++)       if(stu[j].sco.computer>stu[max].sco.computer)         {         max=j;         }     if(max!=i)       {       temp=stu[max];       stu[max]=stu[i];       stu[i]=temp;       }     }   print_student2();   for(int k=0;k<a;k++)     {     print_student3(k);     }   } void sort_student5(student s[],int a)//按照平均成績排序   {   struct student temp;   for(int i=0;i<a-1;i++)     {     int max=i;     for(int j=i+1;j<a;j++)       if(stu[j].average>stu[max].average)         {         max=j;         }     if(max!=i)       {       temp=stu[max];       stu[max]=stu[i];       stu[i]=temp;       }     }   print_student2();   for(int k=0;k<a;k++)     {     print_student3(k);     }   } int search_student2(int a)//按照學號查找學生并輸出   {   int num;   int c;   printf("請輸入要查詢的學號:");   scanf("%d",&num);   for(int i=0;i<a;i++)     {     if(num==stu[i].number)       {       c=i;       }     }   printf("此學生的信息是:\n");   print_student2();   print_student3(c);   return c;   } void choosemenu(void)//菜單選擇   {   int i;   scanf("%d",&i);   switch(i)     {     case 1:       {       input_student2();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 2:       {       delete_student1();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 3:       {       search_student1();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 4:       {       change_student1();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 5:       {       print_student1(iNumOfStu);       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 6:       {       input_score1();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 7:       {       sort_student1();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 8:       {       save_student(stu,iNumOfStu);       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 9:       {       print_help();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 10:       {       exit_student();       }     default: break;     }   }         運行結果:                         源文件下載地址: http://115.com/file/clnq138g#一個簡單的學生成績管理系統.rar (請將此地址復制到瀏覽器地址欄中訪問下載頁面)  

    標簽: 成績查詢系統

    上傳時間: 2019-06-08

    上傳用戶:啊的撒旦

  • 學生成績guanli

    #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score   {   float math;   float english;   float computer;   }; struct student   {   int number;   char name[20];   struct score sco;   float average;   }; struct student stu[N]; void print_menu(void);//輸出菜單 void choosemenu(void);//菜單選擇 void input_student1(int);//輸入學生信息 void input_student2(void);//輸入總函數 void input_student3(int &,int);//判斷學號是否重復 void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語成績排序 void sort_student4(student s[],int);//按照計算機成績排序 void sort_student2(student s[],int);//按照數學成績排序 void sort_student5(student s[],int);//按照平均成績排序 float input_score2(int);//計算學生平均成績 void print_student2(void);//顯示表頭 void print_student3(int);//顯示學生信息 void print_student1(int);//顯示全部學生資料 void sort_student1(void);//排序總函數 void menu(void);//菜單調度總函數 int search_student2(int);//按學號查詢學生信息并輸出 void search_student3(int);//按平均分最高查詢并輸出 void search_student1(void);//查詢總函數 void delete_student2(int,int);//刪除學生信息 void delete_student1(void);//刪除總函數 void change_student2(int);//修改學生資料 void change_student1(void);//修改總函數 void input_score3(int);//統計成績 void input_score1(void);//統計成績總函數 void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統 void save_student(student *,int);//保存學生信息 void main()   {   menu();   } void save_student(student *s,int a)//保存學生信息   {   FILE *fp;     if((fp=fopen("d:\\學生信息.txt","wb"))==NULL)       {       printf("不能打開文件!\n");       }     else       {       printf("保存信息到D盤\n");       fprintf(fp,"本班所有學生具體信息如下:\r\n");       fprintf(fp,"  學號       姓名           數學成績       英語成績     計算機成績     平均成績\r\n");       for(int i=0;i<a;i++)         {         fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average);         fprintf(fp,"\r\n");         }       fclose(fp);       printf("信息保存成功!\n");       }   } void exit_student(void)//退出系統   {   exit(1);   } void print_help(void)//輸出幫助信息   {   printf("本系統所能容納的最大學生數為%d人\n學生信息保存在D盤根目錄下,保存文件為“學生信息.txt”。\n感謝使用!\n",N);   } void input_score1(void)//統計成績總函數   {   int c;   c=search_student2(iNumOfStu);   printf("學號:%d\n",stu[c].number);   printf("姓名:%s\n",stu[c].name);   input_score3(c);   printf("新成績錄入成功!\n");   stu[c].average=input_score2(c);   } void input_score3(int a)//統計成績   {   printf("數學新成績:");   scanf("%f",&stu[a].sco.math);   printf("英語新成績:");   scanf("%f",&stu[a].sco.english);   printf("計算機新成績:");   scanf("%f",&stu[a].sco.computer);   } void change_student2(int a)//修改學生資料   {   printf("學號:%d----修改為:",stu[a].number);   scanf("%d",&stu[a].number);   getchar();   printf("姓名:%s----修改為:",stu[a].name);   gets(stu[a].name);   printf("數學成績:%.2f----修改為:",stu[a].sco.math);   scanf("%f",&stu[a].sco.math);   printf("英語成績:%.2f----修改為:",stu[a].sco.english);   scanf("%f",&stu[a].sco.english);   printf("計算機成績:%.2f----修改為:",stu[a].sco.computer);   scanf("%f",&stu[a].sco.computer);   } void change_student1(void)//修改總函數   {   int c;   c=search_student2(iNumOfStu);   getchar();   printf("是否要修改此學生信息?(“y”代表是)");   char d;   scanf("%c",&d);   if(d=='y'||d=='Y')     {     change_student2(c);       stu[c].average=input_score2(c);     printf("信息修改成功!\n");     }   } void delete_student1(void)//刪除總函數   {   int c;   c=search_student2(iNumOfStu);   getchar();   printf("是否刪除此條記錄?(“y”代表是)");   char d;   scanf("%c",&d);   if(d=='y'||d=='Y')     {     delete_student2(c,iNumOfStu);     printf("記錄已刪除!\n");     }   } void delete_student2(int a,int b)//刪除學生信息   {   for(int i=a;i<b-1;i++)     {     stu[i]=stu[i+1];     }   --iNumOfStu;   } void search_student1(void)//查詢總函數   {   printf("1、按學號查詢\n2、按平均分最高查詢\n請選擇:");   int c;   scanf("%d",&c);   switch(c)     {     case 1:       {       search_student2(iNumOfStu);       break;       }     case 2:       {       search_student3(iNumOfStu);       break;       }     default: break;     }   } void menu(void)//菜單調度總函數   {   print_menu();   choosemenu();   } void sort_student1(void)//排序總函數   {   printf("1、按數學成績排序\n2、按英語成績排序\n3、按計算機成績排序\n4、按平均成績排序\n請選擇:");   int c;   scanf("%d",&c);   switch(c)     {     case 1:       {       sort_student2(stu,iNumOfStu);       break;       }     case 2:       {       sort_student3(stu,iNumOfStu);       break;       }     case 3:       {       sort_student4(stu,iNumOfStu);       break;       }     case 4:       {       sort_student5(stu,iNumOfStu);       break;       }     default: break;     }   } void print_student1(int a)//顯示全部學生資料   {   printf("本班所有學生具體信息如下\n");   print_student2();   for(int i=0;i<a;i++)     {     print_student3(i);     }   } void print_student3(int a)//顯示學生信息   {   printf("%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[a].number,stu[a].name,stu[a].sco.math,stu[a].sco.english,stu[a].sco.computer,stu[a].average);   } void print_student2(void)//顯示表頭   {   printf("  學號       姓名           數學成績       英語成績     計算機成績     平均成績\n");   } void input_student4(int a,int b)//覆蓋原信息   {   stu[a]=stu[b-1];   --iNumOfStu;   } void input_student3(int &a,int b)//判斷學號是否重復   {   if(a!=0)     {     int i=0;     do       {       if(stu[a].number==stu[i].number)         {         printf("此學號代表的學生已錄入\n1、覆蓋原信息\n2、重新輸入\n請選擇:");         int c;         scanf("%d",&c);         switch(c)           {           case 1:             {             input_student4(i,iNumOfStu);             a=iNumOfStu-1;             printf("信息已替換!\n");             break;             }           case 2:             {             printf("請重新輸入學生信息:\n");             input_student1(iNumOfStu-1);             break;             }           default: break;           }         break;         }       ++i;       }       while(i<b-1);     }   } void print_menu(void)//輸出菜單   {   printf("======歡迎來到學生信息管理系統======\n");   printf("      1、輸入學生資料\n");   printf("      2、刪除學生資料\n");   printf("      3、查詢學生資料\n");   printf("      4、修改學生資料\n");   printf("      5、顯示學生資料\n");   printf("      6、統計學生成績\n");   printf("      7、排序學生成績\n");   printf("      8、保存學生資料\n");   printf("      9、獲取幫助信息\n");   printf("      10、退出系統\n");   printf("====================================\n");   printf("請選擇:");   } void input_student2(void)//輸入總函數   {   char end;   printf("請輸入學生信息(在最后一個學生信息錄入完成后以“/”結束錄入):\n");   for(int i=0;(end=getchar())!='/';i++)     {     input_student1(i);     ++iNumOfStu;     input_student3(i,iNumOfStu);     }   for(int j=0;j<iNumOfStu;j++)     {     stu[j].average=input_score2(j);     }   } void input_student1(int a)//輸入學生信息   {   printf("學號:");   scanf("%d",&stu[a].number);   getchar();   printf("姓名:");   gets(stu[a].name);   printf("數學成績:");   scanf("%f",&stu[a].sco.math);   printf("英語成績:");   scanf("%f",&stu[a].sco.english);   printf("計算機成績:");   scanf("%f",&stu[a].sco.computer);   } float input_score2(int a)//計算學生平均成績   {   return (stu[a].sco.math+stu[a].sco.english+stu[a].sco.computer)/3;   } void search_student3(int a)//按平均分最高查詢并輸出   {   int max=0;   for(int i=0;i<a;i++)     {     if(stu[max].average<stu[i].average)       {       max=i;       }     }   print_student2();   print_student3(max);   } void sort_student2(student s[],int a)//按照數學成績排序   {   struct student temp;   for(int i=0;i<a-1;i++)     {     int max=i;     for(int j=i+1;j<a;j++)       if(stu[j].sco.math>stu[max].sco.math)         {         max=j;         }     if(max!=i)       {       temp=stu[max];       stu[max]=stu[i];       stu[i]=temp;       }     }   print_student2();   for(int k=0;k<a;k++)     {     print_student3(k);     }   } void sort_student3(student s[],int a)//按照英語成績排序   {   struct student temp;   for(int i=0;i<a-1;i++)     {     int max=i;     for(int j=i+1;j<a;j++)       if(stu[j].sco.english>stu[max].sco.english)         {         max=j;         }     if(max!=i)       {       temp=stu[max];       stu[max]=stu[i];       stu[i]=temp;       }     }   print_student2();   for(int k=0;k<a;k++)     {     print_student3(k);     }   } void sort_student4(student s[],int a)//按照計算機成績排序   {   struct student temp;   for(int i=0;i<a-1;i++)     {     int max=i;     for(int j=i+1;j<a;j++)       if(stu[j].sco.computer>stu[max].sco.computer)         {         max=j;         }     if(max!=i)       {       temp=stu[max];       stu[max]=stu[i];       stu[i]=temp;       }     }   print_student2();   for(int k=0;k<a;k++)     {     print_student3(k);     }   } void sort_student5(student s[],int a)//按照平均成績排序   {   struct student temp;   for(int i=0;i<a-1;i++)     {     int max=i;     for(int j=i+1;j<a;j++)       if(stu[j].average>stu[max].average)         {         max=j;         }     if(max!=i)       {       temp=stu[max];       stu[max]=stu[i];       stu[i]=temp;       }     }   print_student2();   for(int k=0;k<a;k++)     {     print_student3(k);     }   } int search_student2(int a)//按照學號查找學生并輸出   {   int num;   int c;   printf("請輸入要查詢的學號:");   scanf("%d",&num);   for(int i=0;i<a;i++)     {     if(num==stu[i].number)       {       c=i;       }     }   printf("此學生的信息是:\n");   print_student2();   print_student3(c);   return c;   } void choosemenu(void)//菜單選擇   {   int i;   scanf("%d",&i);   switch(i)     {     case 1:       {       input_student2();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 2:       {       delete_student1();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 3:       {       search_student1();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 4:       {       change_student1();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 5:       {       print_student1(iNumOfStu);       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 6:       {       input_score1();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 7:       {       sort_student1();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 8:       {       save_student(stu,iNumOfStu);       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 9:       {       print_help();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 10:       {       exit_student();       }     default: break;     }   }         運行結果:                         源文件下載地址: http://115.com/file/clnq138g#一個簡單的學生成績管理系統.rar (請將此地址復制到瀏覽器地址欄中訪問下載頁面)   #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score   {   float math;   float english;   float computer;   }; struct student   {   int number;   char name[20];   struct score sco;   float average;   }; struct student stu[N]; void print_menu(void);//輸出菜單 void choosemenu(void);//菜單選擇 void input_student1(int);//輸入學生信息 void input_student2(void);//輸入總函數 void input_student3(int &,int);//判斷學號是否重復 void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語成績排序 void sort_student4(student s[],int);//按照計算機成績排序 void sort_student2(student s[],int);//按照數學成績排序 void sort_student5(student s[],int);//按照平均成績排序 float input_score2(int);//計算學生平均成績 void print_student2(void);//顯示表頭 void print_student3(int);//顯示學生信息 void print_student1(int);//顯示全部學生資料 void sort_student1(void);//排序總函數 void menu(void);//菜單調度總函數 int search_student2(int);//按學號查詢學生信息并輸出 void search_student3(int);//按平均分最高查詢并輸出 void search_student1(void);//查詢總函數 void delete_student2(int,int);//刪除學生信息 void delete_student1(void);//刪除總函數 void change_student2(int);//修改學生資料 void change_student1(void);//修改總函數 void input_score3(int);//統計成績 void input_score1(void);//統計成績總函數 void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統 void save_student(student *,int);//保存學生信息 void main()   {   menu();   } void save_student(student *s,int a)//保存學生信息   {   FILE *fp;     if((fp=fopen("d:\\學生信息.txt","wb"))==NULL)       {       printf("不能打開文件!\n");       }     else       {       printf("保存信息到D盤\n");       fprintf(fp,"本班所有學生具體信息如下:\r\n");       fprintf(fp,"  學號       姓名           數學成績       英語成績     計算機成績     平均成績\r\n");       for(int i=0;i<a;i++)         {         fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average);         fprintf(fp,"\r\n");         }       fclose(fp);       printf("信息保存成功!\n");       }   } void exit_student(void)//退出系統   {   exit(1);   } void print_help(void)//輸出幫助信息   {   printf("本系統所能容納的最大學生數為%d人\n學生信息保存在D盤根目錄下,保存文件為“學生信息.txt”。\n感謝使用!\n",N);   } void input_score1(void)//統計成績總函數   {   int c;   c=search_student2(iNumOfStu);   printf("學號:%d\n",stu[c].number);   printf("姓名:%s\n",stu[c].name);   input_score3(c);   printf("新成績錄入成功!

    標簽: c語言

    上傳時間: 2019-06-09

    上傳用戶:啊的撒旦

主站蜘蛛池模板: 阿鲁科尔沁旗| 阿图什市| 五峰| 加查县| 北川| 阿拉善左旗| 崇州市| 林周县| 都江堰市| 新乡县| 怀宁县| 斗六市| 田林县| 章丘市| 和龙市| 池州市| 永平县| 将乐县| 梅河口市| 阿克苏市| 丹凤县| 赣榆县| 贞丰县| 太仆寺旗| 施甸县| 于田县| 拜泉县| 遵义县| 嘉峪关市| 雅安市| 阿克苏市| 招远市| 湘阴县| 鹤岗市| 金堂县| 怀来县| 黄冈市| 琼中| 临夏市| 辉南县| 罗江县|