本書是計算機基礎教材,系統(tǒng)、通俗地介紹了最新計算機軟件技術(shù)的基礎知識和應用,內(nèi)容包括軟件技術(shù)概論,C語言回顧,數(shù)據(jù)結(jié)構(gòu),遍歷、查找和排序,操作系統(tǒng),數(shù)據(jù)庫系統(tǒng),計算機網(wǎng)絡,軟件工程及網(wǎng)絡新技術(shù)等。本書講解由淺入深,循序漸進,通俗易懂,將原理、方法與實例相結(jié)合,圖文并茂,書中的案例都在 Dev-C 環(huán)境下測試通過,并附有案例對應的 Python程序。
本書既可作為高等院校非計算機專業(yè)本科生的教材,又可作為從事工程應用領域計算機軟件開發(fā)工作的科研技術(shù)人員的參考書。
本教材在總結(jié)教學團隊豐富教學經(jīng)驗的基礎上,結(jié)合作者多年的科研實踐,從掌握基礎知識及應用的角度出發(fā),闡述了程序設計語言、數(shù)據(jù)結(jié)構(gòu)及算法、操作系統(tǒng)、計算機網(wǎng)絡、數(shù)據(jù)庫系統(tǒng)和軟件工程的基本原理及最新技術(shù)。本書結(jié)合理工科專業(yè)的課程梯度,輔以大量應用案例,內(nèi)容豐富、語言簡明、實用性強,可作為高等院校計算機軟件技術(shù)相關(guān)課程的教材。
? 系統(tǒng)全面 涵蓋計算機軟件技術(shù)課程中的經(jīng)典內(nèi)容?紤]到本教材中的案例均以C語言描述,為方便讀者的理解,第2章回顧了C語言中較復雜的數(shù)組、結(jié)構(gòu)、指針、遞歸算法等相關(guān)知識。
? 技術(shù)前沿 針對信息技術(shù)領域的最新進展,介紹了大數(shù)據(jù)、云計算、物流網(wǎng)等信息技術(shù)的主要原理及具體應用,啟迪創(chuàng)新思想,為未來的進一步學習與研究奠定基礎。
伴隨著信息化時代的到來,計算機技術(shù)高速發(fā)展,隨著互聯(lián)網(wǎng)和手機等智能終端設備的廣泛應用,計算機軟件與日常工作和生活緊密地結(jié)合在一起,改變了人們的生活和工作方式。這種發(fā)展趨勢還將進一步擴大和深入,對于絕大多數(shù)非計算機專業(yè)的人士來說,掌握必要的軟件技術(shù)基礎知識是了解和提高軟件開發(fā)與應用水平的重要途徑。
軟件技術(shù)包含的內(nèi)容非常豐富,涉及程序設計語言、數(shù)據(jù)結(jié)構(gòu)及算法、操作系統(tǒng)、計算機網(wǎng)絡、數(shù)據(jù)庫系統(tǒng)和軟件工程等知識,軟件技術(shù)發(fā)展迅猛,新技術(shù)不斷涌現(xiàn),如何在一本教材中讓非計算機專業(yè)的學生理解和掌握最新的軟件技術(shù)基礎知識和技能是軟件技術(shù)教學的難點及重點。作者在高校長期從事計算機軟件技術(shù)基礎課程的教學和研究工作,熟悉該課程的教學需求和學生體會,本書是根據(jù)高等院校非計算機專業(yè)對計算機軟件技術(shù)的知識要求,結(jié)合多年的教學和實踐經(jīng)驗集體編寫而成的。
本書共分為9章。第1章介紹軟件的概念及分類,軟件技術(shù)的發(fā)展歷史,并對教材各章內(nèi)容、學習目的及學習方法做了介紹; 第2章為方便讀者更好地理解書中案例程序,對C語言中相對復雜的數(shù)組、結(jié)構(gòu)體及指針的運用等知識進行簡單回顧; 第3章介紹數(shù)據(jù)結(jié)構(gòu)的概念、數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性表(棧、隊列)、樹和圖結(jié)構(gòu)的基本術(shù)語與相關(guān)運算; 第4章結(jié)合數(shù)據(jù)結(jié)構(gòu)講述了算法的概念和分析方法以及各種結(jié)構(gòu)數(shù)據(jù)的遍歷、查找與排序方法; 第5章介紹操作系統(tǒng)的工作原理、主要功能、與硬件的關(guān)系及典型操作系統(tǒng)Linux的使用方法; 第6章介紹數(shù)據(jù)庫的基礎知識、數(shù)據(jù)模型、關(guān)系數(shù)據(jù)庫、結(jié)構(gòu)化查詢語言等。第7章從使用者的角度介紹了計算機網(wǎng)絡的基本概念、拓撲結(jié)構(gòu)與通信協(xié)議,無線網(wǎng)絡、IPv6及網(wǎng)絡安全等常識。第8章介紹軟件工程的起源及主要思想,常用系統(tǒng)開發(fā)模型及開發(fā)步驟和工具等。第9章介紹大數(shù)據(jù)、云計算、物聯(lián)網(wǎng)等近年來興起的網(wǎng)絡新技術(shù)。
在第1版兩年多的使用中,我們發(fā)現(xiàn)了書中不足之處,同時采納了一些專家和讀者的建議,結(jié)合國家對課程思政的新要求,對書中部分章節(jié)內(nèi)容進行了修改和補充。主要增加的內(nèi)容如下:
第4章增加了4.3.5節(jié)二叉排序樹查找。
第5章增加了5.5節(jié)華為鴻蒙系統(tǒng)。
第9章增加了9.4節(jié)國內(nèi)發(fā)展現(xiàn)狀。
考慮到目前Python語言的廣泛流行,書后附有全書C程序案例對應的Python程序案例。
本書第1、2、3、6、8章由瞿亮編寫,第4章由王紹源編寫,第5章由唐璐編寫,第7章由梁橋康編寫,第9章由瞿永新編寫。
本書內(nèi)容翔實,圖文并茂,在編寫過程中注重由淺入深,循序漸進,書中的實例源于工程實踐,所有案例都在DevC 環(huán)境下測試通過。本書既可作為高等院校本、?朴嬎銠C軟件技術(shù)基礎課程的教材,也可作為各類計算機應用人員或相關(guān)人員的技術(shù)參考書。
由于作者水平有限,編寫時間倉促,書中難免存在不足和疏漏之處,懇請各位專家和廣大讀者指正。另外,在編寫中我們也參考了許多同類圖書,在此一并表示最誠意的感謝。
本書配有電子課件,需要者可在清華大學出版社官網(wǎng)下載。
作者
2024年1月
于湖南大學
瞿亮 湖南大學電氣與信息工程學院副教授,中國人工智能學會智能檢測與運動控制技術(shù)專業(yè)委員會委員, 學位評審專家,湖南省科技評審專家,北京市自然科學基金評議專家,長沙市政府工業(yè)科技特派員。有高校、科研所及公司工作經(jīng)驗,長期從事智能信息處理、智能控制、計算機仿真等領域的教學和研究工作。主持或參加了國家自然科學基金、國家863計劃、湖南省科技計劃及企業(yè)研發(fā)項目20余項,主編教材4部。
第1章軟件技術(shù)概論
1.1軟件的定義及分類
1.2軟件技術(shù)及其發(fā)展
1.3章節(jié)內(nèi)容及學習方法
第2章C語言回顧
2.1運行環(huán)境
2.2數(shù)組與結(jié)構(gòu)
2.2.1數(shù)組
2.2.2結(jié)構(gòu)體
2.3指針
2.3.1指針的定義及運算
2.3.2數(shù)組指針和指針數(shù)組
2.3.3結(jié)構(gòu)體指針
2.3.4函數(shù)指針與指針函數(shù)
2.4遞歸
2.4.1遞歸的定義
2.4.2應用遞歸的問題類型
2.4.3遞歸與回溯
2.4.4遞歸與非遞歸程序的轉(zhuǎn)換
第3章數(shù)據(jù)結(jié)構(gòu)
3.1數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)
3.1.1基本概念
3.1.2數(shù)據(jù)的邏輯結(jié)構(gòu)
3.1.3數(shù)據(jù)的存儲結(jié)構(gòu)
3.2線性表
3.2.1線性表的順序存儲和操作
3.2.2線性表的鏈式存儲和操作
3.2.3小結(jié)
3.2.4棧
3.2.5隊列
3.2.6棧和隊列的應用
3.3樹
3.3.1常用術(shù)語
3.3.2二叉樹
3.3.3森林、樹與二叉樹的轉(zhuǎn)換
3.3.4樹的應用舉例
3.4圖
3.4.1常用術(shù)語
3.4.2圖的存儲結(jié)構(gòu)
3.4.3圖的應用舉例
第4章遍歷、查找和排序
4.1算法
4.1.1算法的定義及描述
4.1.2算法設計的要求
4.1.3算法的效率度量
4.2遍歷
4.2.1二叉樹的遍歷
4.2.2圖的遍歷
4.3查找
4.3.1查找的基本概念
4.3.2順序查找
4.3.3二分查找
4.3.4分塊查找
4.3.5二叉排序樹查找
4.3.6哈希查找
4.4排序
4.4.1排序的基本概念
4.4.2插入排序
4.4.3交換排序
4.4.4選擇排序
4.4.5歸并排序
4.4.6多關(guān)鍵字排序
4.4.7小結(jié)
第5章操作系統(tǒng)
5.1操作系統(tǒng)簡介
5.1.1操作系統(tǒng)的功能
5.1.2操作系統(tǒng)的發(fā)展歷史
5.1.3操作系統(tǒng)的分類
5.2操作系統(tǒng)與計算機硬件
5.2.1處理器
5.2.2內(nèi)存
5.2.3磁盤
5.2.4I/O設備
5.2.5總線
5.2.6計算機的啟動過程
5.3操作系統(tǒng)的相關(guān)概念
5.3.1進程
5.3.2地址空間
5.3.3文件
5.3.4輸入/輸出
5.3.5Shell
5.4系統(tǒng)調(diào)用
5.5華為鴻蒙操作系統(tǒng)
5.2.1鴻蒙操作系統(tǒng)簡介
5.2.2技術(shù)特性
5.6小結(jié)
第6章數(shù)據(jù)庫系統(tǒng)
6.1數(shù)據(jù)庫系統(tǒng)概述
6.1.1數(shù)據(jù)、數(shù)據(jù)模型與數(shù)據(jù)庫
6.1.2數(shù)據(jù)庫系統(tǒng)
6.2關(guān)系數(shù)據(jù)庫
6.2.1關(guān)系概念模型
6.2.2關(guān)系結(jié)構(gòu)模型
6.3結(jié)構(gòu)化查詢語言SQL
6.3.1SQL概述
6.3.2數(shù)據(jù)定義
6.3.3數(shù)據(jù)操縱
6.3.4數(shù)據(jù)控制
6.4數(shù)據(jù)庫應用系統(tǒng)開發(fā)
6.4.1數(shù)據(jù)庫應用系統(tǒng)的結(jié)構(gòu)
6.4.2數(shù)據(jù)庫產(chǎn)品的選擇
6.4.3數(shù)據(jù)庫訪問標準
第7章計算機網(wǎng)絡
7.1計算機網(wǎng)絡和因特網(wǎng)
7.1.1計算機網(wǎng)絡的定義
7.1.2計算機網(wǎng)絡的發(fā)展歷史
7.1.3因特網(wǎng)的組成
7.1.4計算機網(wǎng)絡的性能
7.1.5計算機網(wǎng)絡的體系結(jié)構(gòu)
7.2應用層
7.2.1域名系統(tǒng)
7.2.2Web和HTTP
7.2.3文件傳輸協(xié)議
7.2.4因特網(wǎng)中的電子郵件標準
7.3傳輸層
7.3.1傳輸層協(xié)議概述
7.3.2Internet傳輸協(xié)議UDP
7.3.3Internet傳輸協(xié)議TCP
7.3.4TCP擁塞和流量控制
7.4網(wǎng)絡層
7.4.1網(wǎng)絡層提供的服務
7.4.2網(wǎng)絡協(xié)議
7.4.3IPv6
7.4.4因特網(wǎng)的路由選擇協(xié)議
7.4.5虛擬專用網(wǎng)絡
7.5數(shù)據(jù)鏈路層
7.5.1數(shù)據(jù)鏈路層的基本結(jié)構(gòu)
7.5.2數(shù)據(jù)鏈路和幀
7.5.3數(shù)據(jù)鏈路控制協(xié)議
7.5.4高速以太網(wǎng)
7.6無線網(wǎng)絡和移動網(wǎng)絡
7.6.1無線傳輸
7.6.2衛(wèi)星通信
7.6.3無線局域網(wǎng)
7.6.4移動網(wǎng)絡
第8章軟件工程
8.1軟件工程概述
8.1.1軟件危機
8.1.2軟件工程的思想
8.2軟件的生命周期
8.2.1問題定義及可行性分析
8.2.2需求分析
8.2.3概要設計
8.2.4詳細設計
8.2.5編程
8.2.6軟件測試
8.2.7軟件維護
8.3軟件開發(fā)方法
8.3.1常用的軟件開發(fā)方法
8.3.2軟件開發(fā)方法的選擇及評價
8.4計算機輔助軟件工程
8.4.1CASE工具的功能
8.4.2常用CASE工具
8.4.3CASE工具的使用策略
第9章網(wǎng)絡新技術(shù)
9.1大數(shù)據(jù)
9.1.1大數(shù)據(jù)概述
9.1.2大數(shù)據(jù)的關(guān)鍵技術(shù)
9.1.3大數(shù)據(jù)的典型應用
9.2云計算
9.2.1云計算概述
9.2.2云計算的關(guān)鍵技術(shù)
9.2.3云計算的服務模型和部署模式
9.2.4云計算的典型應用
9.3物聯(lián)網(wǎng)
9.3.1物聯(lián)網(wǎng)概述
9.3.2物聯(lián)網(wǎng)的關(guān)鍵技術(shù)
9.3.3物聯(lián)網(wǎng)的典型應用
9.3.4互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、大數(shù)據(jù)、云計算的關(guān)系
9.4國內(nèi)發(fā)展現(xiàn)狀
附錄書中案例對應的Python程序
參考文獻