計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)
定 價(jià):45 元
- 作者:?jiǎn)塘志幹?/span>
- 出版時(shí)間:2018/1/1
- ISBN:9787040477665
- 出 版 社:高等教育出版社
- 中圖法分類:TP312
- 頁碼:302
- 紙張:膠版紙
- 版次:1
- 開本:16K
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程是高等學(xué)校計(jì)算機(jī)基礎(chǔ)課程中的核心課程,具有大學(xué)基礎(chǔ)課的性質(zhì)。本書以C語言程序設(shè)計(jì)為基礎(chǔ),注重講解程序設(shè)計(jì)與軟件開發(fā)的概念、方法和思路,培養(yǎng)讀者的基本編程能力、邏輯思維與抽象思維能力。 本書內(nèi)容包括:程序設(shè)計(jì)的基本概念、C語言的基本語法元素、程序控制結(jié)構(gòu)、函數(shù)、算法、結(jié)構(gòu)化與模塊化程序設(shè)計(jì)的基本概念、程序組織與庫的設(shè)計(jì)、數(shù)組、字符串、結(jié)構(gòu)體與指針等復(fù)合數(shù)據(jù)類型、文件與數(shù)據(jù)存儲(chǔ)、程序抽象等。希望通過強(qiáng)調(diào)那些在程序設(shè)計(jì)與軟件開發(fā)過程中起重要作用的思想與技術(shù),使讀者體會(huì)并初步掌握較大型或?qū)嵱贸绦虻木帉懪c設(shè)計(jì)能力。 本書行文嚴(yán)謹(jǐn)流暢,語言風(fēng)趣幽默,示例豐富生動(dòng),習(xí)題難度適中。本書可供高等院校計(jì)算機(jī)及理工類各專業(yè)、成人教育院校作為程序設(shè)計(jì)課程的教材,也可供計(jì)算機(jī)應(yīng)用開發(fā)人員及相關(guān)人員自學(xué)。
本書寫作目標(biāo)可用8個(gè)字概括:開卷有益,開卷有趣。
一、本書旨趣
六年來的教學(xué)經(jīng)驗(yàn)表明,學(xué)生在學(xué)習(xí)程序設(shè)計(jì)類課程時(shí)最難的地方不是掌握某種程序設(shè)計(jì)語言的語法規(guī)范,而是掌握程序設(shè)計(jì)的基本方法。
程序設(shè)計(jì)語言的語法規(guī)范是死的,并且與任何一種自然語言相比,程序設(shè)計(jì)語言的語法規(guī)范更為簡(jiǎn)單。因此,對(duì)于任何學(xué)生而言,只要花費(fèi)一定量的時(shí)間(并且這個(gè)時(shí)間并不長(zhǎng)),通過記憶并輔以上機(jī)驗(yàn)證,完全可以掌握甚至精通其語法規(guī)范。
然而,問題在于,在學(xué)生已經(jīng)預(yù)習(xí)課程并認(rèn)真聽講,自認(rèn)為已掌握了程序設(shè)計(jì)方法后,卻發(fā)現(xiàn)在解決實(shí)際問題時(shí)經(jīng)常是毫無頭緒,一籌莫展。這種心理落差與由此造成的心理恐慌對(duì)學(xué)生的學(xué)習(xí)熱情來說是致命的——這事實(shí)上是課程教學(xué)無法獲得應(yīng)有成果的主要原因。因此,本書力圖在學(xué)習(xí)語法規(guī)范與培養(yǎng)實(shí)際動(dòng)手能力之間架設(shè)一座溝通的橋梁,以解決程序設(shè)計(jì)教學(xué)中理論與實(shí)踐脫節(jié)的問題。
對(duì)于程序員而言,抽象貫穿程序設(shè)計(jì)與開發(fā)活動(dòng)的始終,是應(yīng)著重強(qiáng)調(diào)的最核心概念。事實(shí)上,如果讓筆者僅使用一個(gè)詞來表達(dá)本書旨趣,那只能是抽象。程序員對(duì)抽象的理解與把握左右著程序的質(zhì)量與效率。所以,抽象正是本書所要架設(shè)的橋梁。
坦率地說,抽象思維能力的培養(yǎng)不是一本教材、一門課程所能夠涵蓋和闡釋清楚的。但作為一種有益的嘗試,本書希望能夠通過一種有趣的、面目可親的方式向讀者說明抽象在程序設(shè)計(jì)中所能夠和應(yīng)該起到的作用,以及抽象思維能力對(duì)讀者未來學(xué)習(xí)、工作的重要意義。
Vinoski有云:“Finding the right balance between abstraction and pragmatism requires Knowledge,experience,and above all,thought.”翻譯成漢語就是“于抽象與具象間尋覓正道需要知識(shí)、經(jīng)驗(yàn),更需要思想。”希望讀者能夠記住這句話。
二、篇章結(jié)構(gòu)
本書的篇章結(jié)構(gòu)與傳統(tǒng)C語言教材不同。本書如此編排知識(shí)點(diǎn)的根本出發(fā)點(diǎn)在于,筆者希望能夠以培養(yǎng)讀者解決實(shí)際問題能力和抽象思維能力為主線,而不是以語言語法知識(shí)點(diǎn)為主線。這么做的好處是,讀者不會(huì)在一開始就接觸到過多的C語言語法規(guī)范的細(xì)節(jié),避免在實(shí)際編程時(shí)受到“學(xué)習(xí)知識(shí)過多”所造成的干擾,從而能夠?qū)⒆⒁饬械浇鉀Q實(shí)際問題中去。
本書共分10章,具體組織方式如下。
第0章簡(jiǎn)單回顧C(jī)語言的歷史,介紹C語言與程序設(shè)計(jì)的一些基本概念,然后通過兩個(gè)小例子說明了C語言編程的基本流程。
第1章與第2章介紹C語言的基礎(chǔ)知識(shí),這些知識(shí)包括數(shù)據(jù)與數(shù)據(jù)類型、表達(dá)式與語句、運(yùn)算、基本輸入輸出功能、枚舉類型與布爾類型等用戶自定義類型、典型的分支與循環(huán)結(jié)構(gòu)等,它們是程序員構(gòu)建C程序宏偉大廈的一磚一瓦。此外,第1章還專辟一節(jié)討論程序設(shè)計(jì)風(fēng)格問題,良好的程序設(shè)計(jì)風(fēng)格是編寫優(yōu)秀代碼的要件之一。作為后續(xù)章節(jié)的先導(dǎo),第2.7節(jié)討論問題求解與結(jié)構(gòu)化程序設(shè)計(jì)的基本方法,以使讀者大概了解結(jié)構(gòu)化程序設(shè)計(jì)的思路。
第3章與第4章著重研究函數(shù)與算法,包括函數(shù)聲明與調(diào)用、函數(shù)定義、函數(shù)調(diào)用規(guī)范、程序的結(jié)構(gòu)化與模塊化、程序測(cè)試與代碼優(yōu)化、算法的概念與特征、算法的描述方法、算法設(shè)計(jì)與實(shí)現(xiàn)、遞歸算法、容錯(cuò)、算法復(fù)雜度等內(nèi)容。這些知識(shí)同樣是基本的。
第5章討論程序組織與軟件工程,主要研究庫與接口的概念、作用域與生存期、宏與條件編譯等知識(shí)。通過兩個(gè)具體的實(shí)例——如何設(shè)計(jì)隨機(jī)數(shù)庫以及如何使用隨機(jī)數(shù)庫設(shè)計(jì)一個(gè)猜測(cè)價(jià)格的游戲程序說明程序開發(fā)的基本流程以及在進(jìn)行程序開發(fā)時(shí)要著力關(guān)注的問題。
第6章研究C語言提供的復(fù)合數(shù)據(jù)類型,主要涵蓋字符與字符串、數(shù)組、結(jié)構(gòu)體三方面知識(shí)。這些知識(shí)其實(shí)并不復(fù)雜,在本書力圖淡化細(xì)節(jié)的主旨下尤其如此。此外,本章還討論簡(jiǎn)單數(shù)據(jù)集上的簡(jiǎn)單查找與排序操作。
第7章研究指針。C語言的指針非常靈活,事實(shí)上它與其他語法要件(例如函數(shù)、數(shù)組、字符串、結(jié)構(gòu)體等)有著千絲萬縷的聯(lián)系。專列一章討論指針是非常有必要的,它起到了承前啟后的作用。
喬林,博士,清華大學(xué)計(jì)算機(jī)系副教授,美國(guó)加州大學(xué)圣迭戈分校訪問學(xué)者。2001年畢業(yè)于清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系,獲工學(xué)博士學(xué)位。主要研究興趣有多核處理器系統(tǒng)結(jié)構(gòu)、片上網(wǎng)絡(luò)、物聯(lián)網(wǎng)、MOOC課程與知識(shí)挖掘等,主持或參與國(guó)家自然科學(xué)基金、核高基、973、863項(xiàng)目或子項(xiàng)目多項(xiàng)。主講:計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)、基于Linux的C++、操作系統(tǒng)等課程,出版教材多部,開設(shè)清華大學(xué)MOOC課程“基于Linux的C++”。
第0章 C語言概述
0.1 C語言簡(jiǎn)介
0.1.1 C語言簡(jiǎn)史
0.1.2 C語言特點(diǎn)
0.2 程序設(shè)計(jì)的基本概念
0.2.1 程序
0.2.2 程序設(shè)計(jì)與程序設(shè)計(jì)語言
0.2.3 算法
0.2.4 數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)
0.3 簡(jiǎn)單C程序介紹
0.3.1 c程序?qū)嵗?/span>
0.3.2 程序設(shè)計(jì)思維
0.3.3 C程序結(jié)構(gòu)特點(diǎn)
0.4 程序設(shè)計(jì)的基本流程
0.4.1 源文件和頭文件的編輯
0.4.2 源文件和頭文件的編譯
0.4.3 目標(biāo)文件的連接
0.4.4 測(cè)試運(yùn)行
本章小結(jié)
習(xí)題0
第l章 C語言基本語法元素
1.1 數(shù)據(jù)類型
1.1.1 整數(shù)類型
1.1.2 浮點(diǎn)數(shù)類型
1.1.3 字符串類型
1.2 量與表達(dá)式
1.2.1 表達(dá)式
1.2.2 變量
1.2.3 文字
1.2.4 常量
1.2.5 賦值與初始化
1.2.6 操作符與操作數(shù)
1.2.7 混合運(yùn)算與類型轉(zhuǎn)換
1.3 語句
1.3.1 簡(jiǎn)單語句
1.3.2 復(fù)合語句
1.3.3 空語句
1.4 基本輸入輸出函數(shù)
1.4.1 格式化輸出函數(shù)
1.4.2 格式化輸入函數(shù)
1.5 程序設(shè)計(jì)風(fēng)格
1.5.1 注釋
1.5.2 命名規(guī)范
1.5.3 宏與常量
1.5.4 賦值語句的簡(jiǎn)寫形式
1.5.5 源程序排版
本章小結(jié)
習(xí)題1
第2章 程序流程控制
2.1 結(jié)構(gòu)化程序設(shè)計(jì)基礎(chǔ)
2.1.1 基本控制結(jié)構(gòu)
2.1.2 順序結(jié)構(gòu)示例
2.2 布爾數(shù)據(jù)
2.2.1 枚舉類型
第3章 函數(shù)
第4章 算法
第5章 程序組織與軟件工程
第6章 復(fù)合數(shù)據(jù)類型
第7章 指針
第8章 文件與數(shù)據(jù)存儲(chǔ)
第9章 程序抽象