[ 收藏 ] [ 简体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  •  管理

     一般管理学
     市场/营销
     会计
     金融/投资
     经管音像
     电子商务
     创业企业与企业家
     生产与运作管理
     商务沟通
     战略管理
     商业史传
     MBA
     管理信息系统
     工具书
     外文原版/影印版
     管理类职称考试
     WTO
     英文原版书-管理
  •  投资理财

     证券/股票
     投资指南
     理财技巧
     女性理财
     期货
     基金
     黄金投资
     外汇
     彩票
     保险
     购房置业
     纳税
     英文原版书-投资理财
  •  经济

     经济学理论
     经济通俗读物
     中国经济
     国际经济
     各部门经济
     经济史
     财政税收
     区域经济
     统计 审计
     贸易政策
     保险
     经济数学
     各流派经济学说
     经济法
     工具书
     通货膨胀
     财税外贸保险类考试
     英文原版书-经济
  •  社会科学

     语言文字
     社会学
     文化人类学/人口学
     新闻传播出版
     社会科学总论
     图书馆学/档案学
     经典名家作品集
     教育
     英文原版书-社会科学
  •  哲学

     哲学知识读物
     中国古代哲学
     世界哲学
     哲学与人生
     周易
     哲学理论
     伦理学
     哲学史
     美学
     中国近现代哲学
     逻辑学
     儒家
     道家
     思维科学
     马克思主义哲学
     经典作品及研究
     科学哲学
     教育哲学
     语言哲学
     比较哲学
  •  宗教

  •  心理学

  •  古籍

  •  文化

  •  历史

     历史普及读物
     中国史
     世界史
     文物考古
     史家名著
     历史地理
     史料典籍
     历史随笔
     逸闻野史
     地方史志
     史学理论
     民族史
     专业史
     英文原版书-历史
     口述史
  •  传记

  •  文学

  •  艺术

     摄影
     绘画
     小人书/连环画
     书法/篆刻
     艺术设计
     影视/媒体艺术
     音乐
     艺术理论
     收藏/鉴赏
     建筑艺术
     工艺美术
     世界各国艺术概况
     民间艺术
     雕塑
     戏剧艺术/舞台艺术
     艺术舞蹈
     艺术类考试
     人体艺术
     英文原版书-艺术
  •  青春文学

  •  文学

     中国现当代随笔
     文集
     中国古诗词
     外国随笔
     文学理论
     纪实文学
     文学评论与鉴赏
     中国现当代诗歌
     外国诗歌
     名家作品
     民间文学
     戏剧
     中国古代随笔
     文学类考试
     英文原版书-文学
  •  法律

     小说
     世界名著
     作品集
     中国古典小说
     四大名著
     中国当代小说
     外国小说
     科幻小说
     侦探/悬疑/推理
     情感
     魔幻小说
     社会
     武侠
     惊悚/恐怖
     历史
     影视小说
     官场小说
     职场小说
     中国近现代小说
     财经
     军事
  •  童书

  •  成功/励志

  •  政治

  •  军事

  •  科普读物

  •  计算机/网络

     程序设计
     移动开发
     人工智能
     办公软件
     数据库
     操作系统/系统开发
     网络与数据通信
     CAD CAM CAE
     计算机理论
     行业软件及应用
     项目管理 IT人文
     计算机考试认证
     图形处理 图形图像多媒体
     信息安全
     硬件
     项目管理IT人文
     网络与数据通信
     软件工程
     家庭与办公室用书
  •  建筑

  •  医学

     中医
     内科学
     其他临床医学
     外科学
     药学
     医技学
     妇产科学
     临床医学理论
     护理学
     基础医学
     预防医学/卫生学
     儿科学
     医学/药学考试
     医院管理
     其他医学读物
     医学工具书
  •  自然科学

     数学
     生物科学
     物理学
     天文学
     地球科学
     力学
     科技史
     化学
     总论
     自然科学类考试
     英文原版书-自然科学
  •  工业技术

     环境科学
     电子通信
     机械/仪表工业
     汽车与交通运输
     电工技术
     轻工业/手工业
     化学工业
     能源与动力工程
     航空/航天
     水利工程
     金属学与金属工艺
     一般工业技术
     原子能技术
     安全科学
     冶金工业
     矿业工程
     工具书/标准
     石油/天然气工业
     原版书
     武器工业
     英文原版书-工业技
  •  农业/林业

  •  外语

  •  考试

  •  教材

  •  工具书

  •  中小学用书

  •  中小学教科书

  •  动漫/幽默

  •  烹饪/美食

  •  时尚/美妆

  •  旅游/地图

  •  家庭/家居

  •  亲子/家教

  •  两性关系

  •  育儿/早教

     保健/养生
     体育/运动
     手工/DIY
     休闲/爱好
     英文原版书
     港台图书
     研究生
     工学
     公共课
     经济管理
     理学
     农学
     文法类
     医学
  • C++語言程序設計(MOOC版)(第2版)
    該商品所屬分類:研究生 -> 工學
    【市場價】
    651-944
    【優惠價】
    407-590
    【作者】 闞道宏 
    【所屬類別】 圖書  教材  研究生/本科/專科教材  工學 
    【出版社】清華大學出版社 
    【ISBN】9787302475620
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    開本:128開
    紙張:膠版紙
    包裝:平裝-膠訂

    是否套裝:否
    國際標準書號ISBN:9787302475620
    叢書名:21世紀高等學校規劃教材·計算機科學與技術

    作者:闞道宏
    出版社:清華大學出版社
    出版時間:2017年10月 


        
        
    "
    編輯推薦
    本書是在《C 語言程序設計(MOOC版)》的基礎上進一步總結愛課程網“中國大學MOOC”(http://www.icourse163.org/)的網絡教學實踐修訂而成。依據本教材開設的“C 語言程序設計”MOOC(慕課)課程已開設四個學期,累計選課人數已超過十萬人。 
    內容簡介
    本書是在《C 語言程序設計(MOOC版)》的基礎上進一步總結愛課程網“中國大學MOOC”(http://www.icourse163.org/)的網絡教學實踐修訂而成。本書按照實際編程應用來梳理和組織C 語言的知識點,按章節順序可分為程序設計基礎、結構化程序設計方法和面向對像程序設計方法三大部分。內容編排由易到難,循序漸進。每個小節都設計了適合在線評判的單選練習題,每章則設計了適合課堂討論的程序閱讀題、改錯題和編程題。
    凡開設“C 語言程序設計”課程的教師可將本書作為授課教材使用,聯繫作者可免費獲得配套教學課件和視頻。參加慕課(MOOC)或其他網絡課程學習的學生可將本書作為線下閱讀教材使用。
    目錄


    目錄


    第1章 程序設計導論 1
    1.1 計算機硬件結構 1
    本節習題 4
    1.2 計算機程序 4
    本節習題 8
    1.3 計算機程序開發 8
    1.3.1 程序設計 8
    1.3.2 程序實現 10
    1.3.3 程序測試 12

     


     


    目錄


     


     


    第1章  程序設計導論          1


    1.1  計算機硬件結構      1



      本節習題  4


    1.2  計算機程序      4



      本節習題  8


    1.3  計算機程序開發      8



      1.3.1  程序設計       8



      1.3.2  程序實現       10



      1.3.3  程序測試       12



      1.3.4  程序發布       12



      本節習題  13


    1.4  信息分類與數據類型      13



      1.4.1  二進制數制  13



      1.4.2  數據類型       16



      1.4.3  信息分類及數字化       18



      本節習題  21


    1.5  C 語言簡介   21


    1.6  本章習題 22


    第2章  數值計算          23


    2.1  程序中的變量 23



      2.1.1  變量的定義  24



      2.1.2  變量的訪問  26



      本節習題  27


    2.2  程序中的常量 28



      本節習題  31


    2.3  算術運算 31



      2.3.1  C 語言中的加減乘除         31



      2.3.2  其他算術運算符  34



      本節習題  35


    2.4  位運算      35



      本節習題  39


    2.5  賦值運算 40



      本節習題  42


    2.6  數據的輸入與輸出 42



      本節習題  45


    2.7  引用與指針      45



      2.7.1  引用       45



      2.7.2  指針       47



      本節習題  53


    2.8  本章習題 54


    第3章  算法與控制結構     55



    3.1  算法 56



      本節習題  57


    3.2  布爾類型 57



      3.2.1  關繫運算符  58



      3.2.2  邏輯運算符  59



      本節習題  59


    3.3  選擇語句 60



      3.3.1  if-else語句    61



      3.3.2  switch-case語句  65



      本節習題  68


    3.4  循環語句 69



      3.4.1  while語句     70



      3.4.2  do-while語句        71



      3.4.3  for語句          72



      3.4.4  break語句和continue語句         74



      本節習題  77


    3.5  算法設計與評價      78



      3.5.1  計算復雜度  79



      3.5.2  內存占用量  80



      3.5.3  算法設計舉例       81


    3.6  本章習題 84


    第4章  數組與文字處理     86


    4.1  數組 87



      4.1.1  數組變量的定義與訪問       87



      4.1.2  常用的數組處理算法  91



      本節習題  94


    4.2  指針與數組      95



      4.2.1  指針運算       95



      4.2.2  動態內存分配       99



      4.2.3  指針數組       102



      本節習題  103


    4.3 字符類型   103



      4.3.1  字符型常量  104



      4.3.2  字符型運算  105



      本節習題  106


    4.4  字符數組與文字處理      106



      4.4.1  字符串常量  107



      4.4.2  字符數組       107



      4.4.3  常用文字處理算法       109



      本節習題  111


    4.5  中文處理 112



      4.5.1  字符編碼標準       112



      4.5.2  基於ANSI編碼的中文處理程序          113



      4.5.3  基於Unicode編碼的中文處理程序   115



      本節習題  118


    4.6  程序設計方法簡介 118


    4.7  本章習題 119


    第5章  結構化程序設計之一     121


    5.1  結構化程序設計方法      121



      5.1.1  設計舉例       121



      5.1.2  於模塊的團隊分工協作開發       123



      5.1.3  模塊的4大要素  125



      本節習題  126


    5.2  函數的定義和調用 127



      5.2.1  函數的定義  127



      5.2.2  函數的調用  128



      5.2.3  函數應用舉例       130



      5.2.4  函數的執行  132



      5.2.5  函數的聲明  135



      5.2.6  程序員與函數       136



      本節習題  138


    5.3  數據的管理策略      139



      5.3.1  數據分散管理,按需傳遞  139



      5.3.2  數據集中管理,全局共享  140



      5.3.3  變量的作用域       142



      本節習題  148


    5.4  程序代碼和變量的存儲原理 148



      5.4.1  程序副本與變量  149



      5.4.2  動態分配的內存  153



      5.4.3  函數指針       154



      本節習題  156


    5.5  函數間參數傳遞的三種方式 157



      5.5.1  值傳遞  157



      5.5.2  引用傳遞       158



      5.5.3  指針傳遞       160



      5.5.4  函數參數的設計  161



      本節習題  165


    5.6  在函數間傳遞數組 165



      5.6.1  在函數間傳遞一維數組       166



      5.6.2  在函數間傳遞一維數組的首地址       166



      5.6.3  在函數間傳遞二維數組       168


    5.7  本章習題 169


    第6章  結構化程序設計之二     171


    6.1  C 源程序的多文件結構        171



      6.1.1  多文件結構的源代碼組織  171



      6.1.2  靜態函數與靜態變量  174



      6.1.3  頭文件  177



      本節習題  179


    6.2  編譯預處理指令      180



      6.2.1  文件包含指令       180



      6.2.2  宏定義指令  181



      6.2.3  條件編譯指令       183



      本節習題  186


    6.3  幾種特殊形式的函數      187



      6.3.1  帶默認形參值的函數  187



      6.3.2  重載函數       189



      6.3.3  內聯函數       189



      6.3.4  主函數main的形參和返回值     191



      6.3.5  遞歸函數       193



      本節習題  198


    6.4  繫統函數 199



      6.4.1  C語言的繫統函數        199



      6.4.2  命名空間       204



      6.4.3  C 語言的繫統函數    206



      本節習題  208


    6.5  自定義數據類型      208



      6.5.1  類型定義typedef 209



      6.5.2  枚舉類型       210



      6.5.3  聯合體類型  211



      6.5.4  結構體類型  213



      本節習題  218


    6.6  結構化程序設計的應用與回顧      219



      6.6.1  開發Windows圖形用戶界面程序      220



      6.6.2  結構化程序設計回顧  224


    6.7  本章習題 226


    第7章  面向對像程序設計之一          229


    7.1  面向對像程序設計方法 229



      7.1.1  結構化程序設計中的函數  229



      7.1.2  結構化程序設計中的結構體類型       231



      7.1.3  面向對像程序設計中的分類       233



      7.1.4  面向對像程序設計中的封裝       236



      本節習題  240


    7.2  面向對像程序的設計過程      241



      7.2.1  分析       241



      7.2.2  抽像       243



      7.3.3  組裝       245



      本節習題  247


    7.3  類與對像的語法細則      247



      7.3.1  類的定義       247



      7.3.2  對像的定義與訪問       250



      7.3.3  對像指針       252



      7.3.4  類與對像的編譯原理  253



      本節習題  256


    7.4  對像的構造與析構 258



      7.4.1  構造函數       258



      7.4.2  析構函數       262



      7.4.3  拷貝構造函數中的深拷貝與淺拷貝  263



      7.4.4  類與對像編程舉例       265



      本節習題  269


    7.5  對像的應用      271



      7.5.1  對像數組       272



      7.5.2  對像的動態分配  273



      7.5.3  對像作為函數的形參  274



      本節習題  277


    7.6  類中的常成員與靜態成員      278



      7.6.1  常成員  281



      7.6.2  靜態成員       283



      本節習題  288


    7.7  289



      7.7.1 函數       290



      7.7.2 類  291



      本節習題  291


    7.8  本章習題 293


    第8章  面向對像程序設計之二          296


    8.1  重用類代碼      296



      8.1.1  用類定義對像       296



      8.1.2  用類繼續定義新類       298



      本節習題  300


    8.2  類的組合 300



      8.2.1  組合類的定義       301



      8.2.2  組合類對像的定義與訪問  302



      8.2.3  組合類對像的構造與析構  304



      8.2.4  類的聚合       306



      8.2.5  前向引用聲明       308



      本節習題  309


    8.3  類的繼承與派生      310



      8.3.1  派生類的定義       311



      8.3.2  派生類對像的定義與訪問  314



      8.3.3  保護權限與保護繼承  316



      8.3.4  派生類對像的構造與析構  319



      8.3.5  繼承與組合的應用       322



      本節習題  325


    8.4  多態性      327



      8.4.1  面向對像程序中的多態       328



      8.4.2  運算符的多態與重載  328



      本節習題  334


    8.5  對像的替換與多態 334



      8.5.1  算法代碼的可重用性  334



      8.5.2  鐘表類及其處理算法  337



      8.5.3  類型兼容語法規則       341



      8.5.4  對像的多態性       343



      8.5.5  虛函數  345



      8.5.6  抽像類  349



      本節習題  351


    8.6  關於多繼承的討論 353



      8.6.1  多個基類之間的成員重名  353



      8.6.2  重復繼承       354



      8.6.3  虛基類  356



      本節習題  357


    8.7  本章習題 357


    第9章  流類庫與文件I/O   360


    9.1  流類庫      360



      本節習題  363


    9.2  標準I/O   364



      9.2.1  通用輸入流類istream及其對像cin  364



      9.2.2  通用輸出流類ostream及其對像cout       369



      本節習題  375


    9.3  文件I/O   376



      9.3.1  文件及其操作       376



      9.3.2  文件輸出流類ofstream及文件輸出 379



      9.3.3  文件輸入流類ifstream及文件輸入   382



      9.3.4  文件輸入/輸出流類fstream        385



      本節習題  389


    9.4  string類及字符串I/O     389



      9.4.1  字符串類string    389



      9.4.2  字符串I/O    391



      本節習題  392


    9.5  基於Unicode編碼的流類庫  392



      本節習題  394


    9.6  本章習題 394


    第10章  C 標準庫     395


    10.1  函數模板        395



       10.1.1  函數模板的定義與使用  396



       10.1.2  函數模板的編譯原理       397



       10.1.3  函數模板的聲明       399



       本節習題         400


    10.2  類模板   400



      10.2.1  類模板的定義與使用         400



      10.2.2  類模板的編譯原理    402



      10.2.3  類模板的繼承與派生         403



      本節習題  405


    10.3  C 標準庫     406



       本節習題         407


    10.4  C 語言的異常處理機制     408



       10.4.1  程序中的三類錯誤  408



       10.4.2  程序異常處理機制  410



       10.4.3  try-catch異常處理機制   412



       10.4.4  C 標準庫中的異常類exception   418



       本節習題         420


    10.5  數據集合及其處理算法        421



       10.5.1  數據集合的存儲和處理  421



       10.5.2  C 標準庫中數據集合的存儲和處理    424



       10.5.3  向量類vector   427



       10.5.4  列表類list         431



       10.5.5  集合類set         432



       10.5.6  映射類map       433



       本節習題         434


    10.6  面對像程序設計總結   435



       10.6.1  使用MFC類庫開發圖形用戶界面程序 435



       10.6.2  結語  440


    10.7  本章習題        441


    附錄A  Visual C 6.0集成開發環境 442


    附錄B  各章“本節習題”參考答案 449


    參考文獻         452


     


     


     


     


     


     


     


     


     


     


     


     


     


     


     


     


     


     


     


     


     


     


     


     

    前言

    第2版前言

    本書是在《C 語言程序設計( MOOC版)》的基礎上進一步總結愛課程網“中國大學MOOC”(http://www.icourse163.org/)的網絡教學實踐修訂而成。依據本教材開設的“C 語言程序設計”MOOC(慕課)課程已開設四個學期,累計選課人數超過十萬人。
    MOOC學員能夠積極參與課堂討論,提出各種問題,並對如何開展C 語言程序設計教學提出了很多寶貴的意見和建議。這裡分享幾個MOOC課堂的精華貼。
    【空空mooc369】:這門課是學軟件的,為什麼第1章很多內容是關於硬件的呀?
    【教師回復】:初學者學習程序設計,首先應樹立以下兩個觀念。
    (1) 程序員向計算機硬件下達指令,然後由硬件執行指令。程序員應首先了解硬件的基本結構和工作原理,這樣纔能知道如何向硬件下達指令。

     


        第2版前言


     


    本書是在《C 語言程序設計( MOOC版)》的基礎上進一步總結愛課程網“中國大學MOOC”(http://www.icourse163.org/)的網絡教學實踐修訂而成。依據本教材開設的“C 語言程序設計”MOOC(慕課)課程已開設四個學期,累計選課人數超過十萬人。


    MOOC學員能夠積極參與課堂討論,提出各種問題,並對如何開展C 語言程序設計教學提出了很多寶貴的意見和建議。這裡分享幾個MOOC課堂的精華貼。


    【空空mooc369】:這門課是學軟件的,為什麼第1章很多內容是關於硬件的呀?


    【教師回復】:初學者學習程序設計,首先應樹立以下兩個觀念。


       (1) 程序員向計算機硬件下達指令,然後由硬件執行指令。程序員應首先了解硬件的基本結構和工作原理,這樣纔能知道如何向硬件下達指令。


       (2) 程序是一組下達給計算機硬件的指令序列(或稱為語句序列)。僅從語法角度去理解,語句是抽像的。初學者要學會從有形的硬件去理解抽像的語句和語法。


    程序設計課程隻在一開始簡單介紹一下硬件,後續章節在講解C 語法時會提及內存或CPU等硬件。


    【luckymooc360】:C 語言為什麼提出引用和指針的概念?


    【教師回復】:程序員通過定義變量來申請內存,再用變量名訪問所分配的。大型程序需要多個程序員協作開發,共同完成。如果其他程序員想訪問上述變量的,例如讀取其中的數據,可以嗎?答案是肯定的,可以,但隻能通過引用或指針來訪問(即間接訪問)。


    【小二上盤ID】:老師,我們學校先學C語言,然後學的是C#和Java。怎樣纔能學好程序設計?以後從事工作用Java好,還是C/C 好?


    【教師回復】:如何學習程序設計,這是很多初學者經常提出的問題。經過一段時間的學習,很多同學會產生新的困惑。例如,理論知識看了好幾遍了,但是怎樣提高編程能力?自己對MOOC課程的學習效果很滿意,下一步該做什麼?程序設計的學習過程是什麼樣的,終能學到什麼程度?針對這些問題我談一下個人體會,供同學們參考。


    學習程序設計大致可以分為三個階段:初級、中級和高級。


       (1)初級。初級階段的目標是學習程序設計原理,其中包括計算機硬件基本結構及其工作原理,程序如何管理內存來存儲數據(例如變量的定義與訪問,數據類型,引用與指針等)、程序如何控制CPU來處理數據(例如各種不同的運算符,或通過控制語句來控制指令的執行順序)等。程序設計原理還要學習如何設計大型、復雜的程序,這就需要學習程序設計方法。程序設計方法有兩種,分別是結構化程序設計和面向對像程序設計。初級階段學習結束後,同學們可以參加計算機等級考試(二級)或各種程序設計大賽等活動,並在應試過程中進一步提高自己的水平。


     


       (2)中級。中級階段的目標是學習程序應用開發(學會就能有好工作了哦)。程序應用開發需要基於別人的程序來開發,從零開始是不可能的。結構化程序設計方法規定:其他人給你函數庫,你要會調用別人的函數。面向對像程序設計方法規定:其他人給你類庫,你要知道如何使用別人的類庫。因此我們在學習應用開發之前必須要掌握結構化程序設計方法或面向對像程序設計方法。目前面向對像程序設計是主流,已經很少有人繼續給程序員提供函數庫了,所提供的都是類庫。掌握了面向對像程序設計方法,你隻要拿到微軟公司提供的MFC類庫(隨Visual C 6.0或Visual Studio提供),就可以用C 語言開發Windows圖形界面的程序(或者你拿到蘋果公司的類庫、谷歌公司的類庫,就可以使用這些類庫開發iPhone或Android繫統的App了)。不同的操作繫統是由不同廠家開發的,它們對計算機語言的支持程度有所不同。例如,Windows操作繫統是由微軟開發的,開發Windows軟件主要使用C 和C#語言; MacOS/iOS操作繫統是由蘋果公司開發的,開發MacOS/iOS軟件主要使用Objective-C(C 的變種);Android操作繫統(從Linux演變而來)由谷歌公司主導,開發Android軟件主要使用Java語言。可以看出,程序應用開發可能會用到不同的計算機語言,但程序設計原理是共同的。


       (3) 高級。高級階段的目標是提高自己的理論水平,不光要知其然,還要知其所以然。計算機專業的同學需要先學習程序設計原理,然後再學習計算機組成原理、數據結構、操作繫統、編譯原理、數據庫原理、計算機網絡、計算機圖形學、數字圖像處理、算法設計、離散數學和人工智能等課程。在學習完這些專業課程之後,你的理論水平會得到很大提高,將會成為一名真正的高手。


    【LingDash】:老師,總地來說講得挺好的,但是我有些想法。比如在講類的繼承與派生時,應先讓學生體會到,每個類都從底層開發十分麻煩,那麼怎麼解決呢?這時引出“類的繼承與派生”,將用與不用“類的繼承與派生”進行比較,這樣的學習會更加符合人的認知規律。


    【教師回復】:有道理,接受你的建議,謝謝!


    【cc76965】很高興能夠遇到這門公開課。這門公開課的條理十分清晰,讓我對C 的語法有了一個清晰的脈絡。我是一名計算機專業的學生,已經學了數據結構,但是缺少開發項目的經驗。不知道如何去尋找開發項目,也不知道如何下手,希望老師能夠給我一些建議。


    【網友Crazy峰少回復】:下面這個網站裡有大量的編程題目可以做:https://www.patest.cn/。


    這一版就是在總結廣大MOOC學員所提出的難點、問題和建議的基礎上對上一版所做的修訂。重點完善了結構化程序設計和面向對像程序設計這兩種程序設計方法的內容,使之更加繫統化。


    在此謹向中國大學MOOC和所有提出寶貴建議的MOOC學員們表示感謝!


     


     


    作者


    2017年3月於北京


     


     


    前言


     


    1. 關於MOOC


    MOOC(Massive Open Online Course),即大規模開放在線課程,中文譯為“慕課”,是近幾年興起的一種基於互聯網的新型教學模式。2012年被稱為“M年”。MOOC教學模式實現了兩個轉變,即由以教師為中心向以學習者為中心轉變,學習者則由被動學習向主動學習轉變。與普通網絡教學視頻所不同的是,MOOC實現了從授課到習題、討論、答疑、測驗,直到終學習評價等環節的完整教學過程。與傳統課堂授課不同的是,開設MOOC課程需重新梳理和組織知識點,並分別提供適合線上使用的練習題以及線下使用的討論或實驗題。


    可以將線上MOOC與線下課堂這兩種教學模式結合起來。線上MOOC就是先由學生自主完成知識學習,例如觀看視頻、做線上習題等。線下課堂則是由教師組織課堂討論、實驗、測驗,或講解重點疑難問題。“線上MOOC,線下課堂”是對現有“課上聽課,課下作業”教學模式的翻轉。雖然MOOC教學模式尚處於起步試驗階段,但大多數網絡學習者十分喜歡MOOC。目前已湧現出很多知名的MOOC網站,例如國外的Coursera、Udacity和Edx,國內的中國大學MOOC、學堂在線和雨虹學網等。中國農業大學也正在基於雨虹學網積極開展校內課堂教學改革方面的嘗試與探索。


    學習C 語言程序設計需要邊閱讀、邊思考、邊消化吸收。雖然有了大量的網上資源,但紙質教材仍是初學者線下學習的方式,這也是作者編寫出版本書的目的。


    2. 本書特色


    1)適用於MOOC在線教育課程


    本書按應用需求來梳理和組織C 語言的知識點,其中包括結構化程序設計方法和面向對像程序設計方法。內容編排由易到難,循序漸進。每個小節都設計了適合在線評判的單選練習題,每章則設計了適合課堂討論的程序閱讀題、改錯題和編程題。


    2)采用案例教學


    每個知識點都從精心設計的任務需求開始導入,然後提出對應的實現方法,後繫統地闡述其語法細則,既保證了知識體繫的完整性,又能讓讀者直觀理解抽像的概念和原理。


    3)創新教學方法


    本書從三個方面對C 語言教學進行了探索。一是強化初學者對“程序由計算機硬件執行”這一基本概念的認知,從有形的硬件來理解相對抽像的程序,這樣各種語法概念就不再那麼抽像了;二是明確提出程序設計過程中存在不同的程序員角色,並充分利用角色來引導讀者理解語法的應用語境;三是明確提出必須從代碼分類管理、數據類型、歸納抽像和代碼重用等多個維度纔能準確理解面向對像程序設計方法。教學實踐表明,上述教學方法可降低學習難度。


    3. 內容摘要


    本書內容按章節順序可分為三部分,分別是程序設計基礎(第1~4章)、結構化程序設計方法(第5~6章)和面向對像程序設計方法(第7~10章)。


    第1章  程序設計導論。從初學者對計算機已有的認知開始,將初學者逐步引導到計算機程序的世界。本章首先介紹計算機硬件、指令及機器語言、程序等基本概念,然後描述程序與計算機硬件、程序員、用戶之間的關繫,讓讀者在一開始就能明確程序員的職責,實現從用戶到程序員的角色轉換。本章要點:一是讓讀者從有形的硬件來理解相對抽像的軟件;二是讓讀者認識到計算機中的數據是有類型的,類型決定了數據在計算機中的存儲位數和存儲格式;三是讓讀者知道,學習程序設計和學習編程語言不是一回事。和C語言、Java語言相比,C 語言的知識體繫更加繫統、全面。本書選用C 語言作為程序設計初學者的入門語言。


    第2章  數值計算。本章從簡單的數值計算問題開始,以案例教學的方式讓讀者領會程序設計中一些基礎的概念,其中包括程序中的變量和常量、表達式與運算符、數據的輸入和輸出等。後介紹了C 程序訪問內存的三種方式,它們分別是變量名、引用和指針。本章要點:一是讓讀者將程序中的數據與內存聯繫起來,這樣就很容易理解數據類型、引用和指針等初學者難以掌握的概念;二是讓讀者重點關注運算符的運算規則、優先級和結合性等語法細節;三是讓讀者初步體會到計算機語言與人類語言的不同之處,即計算機語言的語法規則非常嚴格,甚至到了機械的程度,稍有不慎就會出現語法錯誤。


    第3章  算法與控制結構。本章講解程序中的算法及三種算法基本結構,並通過選擇結構和循環結構中的條件引出布爾類型。C 語言通過選擇語句來描述選擇結構算法,通過循環語句來描述循環結構算法。後通過案例簡單講解算法的設計與評價方法。本章要點:一是讓讀者了解絕大部分復雜算法都可以由三種基本的算法結構來完成;二是讓讀者掌握布爾類型的作用及其相關的運算符;三是讓讀者了解編程能力實際上是一個人計算思維能力的反映,閱讀程序和模仿編程是初學者培養計算思維能力的兩個重要途徑;四是讓讀者根據案例認真體會如何根據算法合理選用不同的控制語句。


    第4章  數組與文字處理。本章學習如何在程序中存儲和處理大量數據。數組可以存儲大量具有相同類型的數據集合。計算機隻能存儲和處理數值數據,而文字處理程序所處理的對像是字符數據,為此,C 語言引入了字符類型。讀者需深入了解字符編碼和字符類型。文字處理必須使用數組,即字符型數組。本章後用一節的篇幅簡單介紹了中文處理及Unicode編碼。本章要點:一是讓讀者重點掌握數組定義及訪問的語法規則;二是讓讀者認識到計算機內部對數組的管理和訪問是通過指針(即內存地址)來實現的;三是讓讀者通過具體案例初步了解數組的常用處理算法。


    經過前4章的學習,讀者已掌握了程序設計原理基礎部分的內容。那麼該如何編寫更大型的計算機程序呢?這就需要進一步學習程序設計原理的高級部分,即程序設計方法。程序設計方法的基本思想是:將大型程序中的數據和算法分解成程序零件,將不同零件的設計任務交由不同的程序員完成,這樣就能以團隊的形式來共同開發。更進一步,如果所分解出的程序零件在以前項目中曾經開發過,或者可以從市場上購買到,那麼就可以直接使用這些零件來組裝軟件,實現快速開發。使用已有的程序零件,實際上是重用其程序代碼,這就是程序設計中的代碼重用。從第5章開始,本書對程序設計方法進行繫統介紹。


    第5章  結構化程序設計之一。本章學習如何將一個復雜的數據處理算法分解成多個簡單模塊,分而治之,這被稱為是結構化程序設計方法。C 語言支持結構化程序設計方法,以函數的語法形式來描述和組裝模塊,即函數的定義和調用。函數是結構化程序設計方法的基礎,它為代碼重用提供了有效的手段。函數之間需要共享數據纔能完成規定的數據處理任務。C 語言提供了集中管理和分散管理兩種不同的數據管理策略。本章要點:一是讀者要準確領會結構化程序設計的思想內涵,並熟練掌握C 語言中函數相關的語法知識;二是讓讀者深入計算機內部,了解程序執行時其代碼和變量在內存中的存儲原理,這樣可以更容易理解變量作用域和生存期等抽像的概念;三是讀者要準確把握函數間傳遞數據的三種方式;四是讀者要分別站在兩種不同的程序員角度,即定義函數的程序員和調用函數的程序員,纔能更容易地理解函數相關的各種語法知識。


    第6章  結構化程序設計之二。本章學習如何以多文件結構的形式來組織和管理源代碼,並介紹幾種常用的編譯預處理指令;然後再介紹幾種特殊形式的函數,其中包括帶默認形參值的函數、重載函數、內聯函數、帶形參和返回值的主函數以及遞歸函數等。本章還會介紹與C語言相關的繫統函數和自定義數據類型。本章後以微軟公司開發的Win32 API函數庫為例介紹如何開發一個Windows圖形用戶界面程序,並對結構化程序設計方法進行簡單的回顧和總結。本章要點:一是學習掌握與多文件結構相關的語法知識,其中包括外部函數和全局變量的聲明、頭文件等;二是重點掌握帶默認形參值的函數、重載函數和內聯函數這三種常用的特殊函數形式;三是牢固樹立重用代碼的思想,學會通過調用他人編寫的函數來提高開發效率。


    第7章  面向對像程序設計之一。面向對像程序設計方法將程序中素素根據其內在關聯關繫進行分類管理,這就形成了“類”的概念。分類可以更好地管理。類相當於是一種自定義的數據類型,用類所定義的變量稱為“對像”。本章通過具體案例演示了結構化程序設計是如何演變到面向對像程序設計的,然後再繫統地介紹面向對像程序設計方法。本章內容包括類的定義、對像的定義與訪問、對像的構造與析構、類中的常成員與靜態成員以及等。本章要點:一是讀者必須從代碼分類管理、數據類型、歸納抽像和代碼重用等多個維度纔能準確理解類與對像的概念;二是讀者需認真學習類與對像編程的具體語法規則;三是深入領會面向對像程序設計通過設置訪問權限來實現類封裝的基本原理;四是深入了解對像的構造與析構過程,程序員通過編寫構造與析構函數來參與對像的構造與析構過程;五是讀者要懂得從兩個不同的角度,即定義類的程序員和使用類定義對像的程序員,纔能更容易地理解類與對像相關的各種語法知識。


    第8章  面向對像程序設計之二。重用類代碼有三種方式,分別是用類定義對像、類的組合和類的繼承。本章講解類的組合與繼承。程序員可以基於已有的零件類來定義新的整體類,這就是類的組合。程序員可以繼承已有的基類來定義新的派生類,這就是類的繼承與派生。利用派生類和基類之間的特殊關繫可以進一步提高程序代碼的可重用性,這就是面向對像程序設計中的對像替換與多態技術。本章將具體講解與多態相關的運算符重載、虛函數和抽像類等概念。後本章將簡單討論一下類的多繼承。本章要點:一是讓讀者學會使用組合和繼承的方法來定義新類,這樣可以提高類代碼的開發效率;二是讀者應理解,類在組合或繼承時可以進行二次封裝;三是從提高程序代碼重用性的角度可以更容易地理解對像多態性;四是多繼承會導致語法陷阱,新的面向對像程序設計語言(例如Java和C#)已不再支持類的多繼承,而隻支持接口的多繼承,讀者隻需要了解多繼承的基本原理即可。


    第9章  流類庫與文件I/O。C語言通過輸入/輸出函數(例如scanf和printf)實現了數據的輸入和輸出。C 語言則是通過輸入/輸出流類為程序員提供了輸入/輸出的功能。這些輸入/輸出流類都是從類ios派生出來的,組成了一個以ios為基類的類族,這個類族被稱為C 語言的流類庫。本章將介紹流類庫中三組不同功能的輸入/輸出流類,它們分別是通用輸入/輸出流類、文件輸入/輸出流類和字符串輸入/輸出流類。本章要點:一是讀者應理解之前所用的cin、cout指令實際上分別是通用輸入/輸出流類的對像;二是通過本章學習,讀者可以從側面了解全球的C 程序員是如何來設計和編寫類的,這樣可以幫助讀者進一步深入體會前面所學習的各種面向對像程序設計知識;三是重點學習如何進行文件讀寫操作,大部分程序都需要使用文件來保存數據。


    第10章  C 標準庫。C 語言全盤繼承了C語言的標準C庫,另外又增加了一些新的庫。新庫中包含一些新增的繫統函數,但更多的是為面向對像程序設計方法所提供的繫統類庫,這些新庫被統稱為C 標準庫。為了更好地凝練源代碼,C 語言引入了模板技術,其中包括函數模板和類模板。模板技術是一種代碼重用技術,C 標準庫在編寫時就采用了模板技術,因此標準庫能以較少的代碼量來提供很強大的功能。本章內容重點介紹模板技術、C 語言的異常處理機制以及C 標準庫所提供的數據集合存儲及處理功能。本章後以微軟公司開發的MFC類庫為例介紹如何開發一個Windows圖形用戶界面程序。本章要點:一是讓讀者了解如何使用模板技術來提高函數和類代碼的可重用性;二是重點學習C 語言的異常處理機制;三是初步掌握如何使用C 標準庫中的向量類、列表類、集合類和映射類來存儲和處理數據集合。


    學習完C 面向對像程序設計之後,程序員在拿到一個具體的程序設計任務時,首先應當考慮有哪些現成的類庫可以使用。使用現成的類庫開發程序,開發周期將大大縮短。基於已有的類庫開發程序,相當於是用別人已經做好的零件來組裝產品。程序的應用開發,通常就是用已有的程序零件來組裝自己的軟件產品。隻要掌握了面向對像程序設計方法和C 語言,相信每位讀者都能夠借助各種第三方類庫,發揮出無限的開發潛能。


    4. 使用建議


    凡希望開設C 語言程序設計在線教育課程的教師,可將本書作為授課教材。聯繫作者可免費獲得配套教學課件和視頻。參加在線課程學習的學生可將本書作為線下閱讀教材。


    如將本書作為課堂教學用書,則建議講課學時和實驗學時各為32學時,合計64學時。每學時50分鐘。作者本人按如下方式安排講課學時:第1、3、4、9、10章各2學時,第2、5、6、7章各4學時,第8章6學時。


    聯繫作者:kandaohong@cau.edu.cn


    5. 致謝


    作者編寫本書的想法源於中國農業大學“雨虹學網:面向主動學習的教學雲平臺建設”項目。在參與相關繫統開發和教學實踐的過程中,作者積累了一些MOOC在線課程教學的經驗。


    本書編寫過程中,得到了中國農業大學信電學院高萬林院長的熱情鼓勵和大力支持。本書部分素材來自於雨虹學網的教學實踐活動,這得益於張曉東教授、孫瑞志教授等領導的關心和指導。另外,本書在編寫過程中還得到了鄭立華、呂春利、冀榮華、劉雲玲、陳瑛、周緒宏、胡慧、段晶潔、李鑫、李靜等同事和同學的熱心幫助。在此一並致以衷心的感謝!


    後,感謝家人對我的理解和支持。


     


      作者


    2015年9月於北京

    媒體評論
    評論
    在線試讀
    第5章 結構化程序設計之一程序描述了某種數據處理的過程和步驟。數據是程序處理的對像。一個復雜的程序設計任務可能要處理大量數據,為此C 語言提供了數組的語法形式。數組可以存儲大量同類型的數據。將數據處理的過程細分成一組嚴格的操作步驟,這組操作步驟被稱為算法。如果數據處理的算法很長、很復雜,該如何來編寫這樣很長、很復雜的程序呢?結構化程序設計方法就是將一個復雜算法分解成多個簡單的模塊,分而治之,然後將這些模塊組裝起來,終形成一個完整的數據處理流程。C 語言支持結構化程序設計方法,以函數的語法形式來描述和組裝模塊,即函數的定義和調用。結構化程序設計在將一個數據處理過程分解成多個算法模塊之後,各模塊之間需要共享數據。C 語言提供了分散管理和集中管理這兩種數據管理策略。5.1 結構化程序設計方法結構化程序設計方法也稱為面向過程的程序設計方法。結構化程序設計方法的基本原理是:將一個求解復雜問題的過程劃分為若干個子過程,每個子過程完成一個獨立的、相對簡單的功能;用算法描述各個過程的操作步驟,每個算法稱為一個模塊;采用“自頂向下,逐步細化”的方法逐步分解和設計算法模塊,再通過調用關繫將各個模塊組裝起來,終形成一個完整的數據處理流程。采用結構化程序設計方法,程序員重點考慮的是如何分解和設計算法。5.1.1 設計舉例設計任務:公園計劃修建一個長方形觀賞魚池,另外配套修建一大一小兩個圓形蓄水池,分別存放清水和污水(見圖5-1)。養魚池和蓄水池的造價均/m2。請設計一個測算養魚池工程總造價的算法。第5章  結構化程序設計之一程序描述了某種數據處理的過程和步驟。數據是程序處理的對像。一個復雜的程序設計任務可能要處理大量數據,為此C 語言提供了數組的語法形式。數組可以存儲大量同類型的數據。將數據處理的過程細分成一組嚴格的操作步驟,這組操作步驟被稱為算法。如果數據處理的算法很長、很復雜,該如何來編寫這樣很長、很復雜的程序呢?結構化程序設計方法就是將一個復雜算法分解成多個簡單的模塊,分而治之,然後將這些模塊組裝起來,終形成一個完整的數據處理流程。C 語言支持結構化程序設計方法,以函數的語法形式來描述和組裝模塊,即函數的定義和調用。結構化程序設計在將一個數據處理過程分解成多個算法模塊之後,各模塊之間需要共享數據。C 語言提供了分散管理和集中管理這兩種數據管理策略。5.1  結構化程序設計方法結構化程序設計方法也稱為面向過程的程序設計方法。結構化程序設計方法的基本原理是:將一個求解復雜問題的過程劃分為若干個子過程,每個子過程完成一個獨立的、相對簡單的功能;用算法描述各個過程的操作步驟,每個算法稱為一個模塊;采用“自頂向下,逐步細化”的方法逐步分解和設計算法模塊,再通過調用關繫將各個模塊組裝起來,終形成一個完整的數據處理流程。采用結構化程序設計方法,程序員重點考慮的是如何分解和設計算法。5.1.1 設計舉例設計任務:公園計劃修建一個長方形觀賞魚池,另外配套修建一大一小兩個圓形蓄水池,分別存放清水和污水(見圖5-1)。養魚池和蓄水池的造價均/m2。請設計一個測算養魚池工程總造價的算法。
    圖5-1  公園觀賞魚池結構化程序設計一般分為兩個階段,分別是概要設計和詳細設計。設計結果通常以自然語言或流程圖的形式來描述,並編寫成書面的程序設計報告。1. 概要設計測算養魚池工程總造價的算法內容主要包括:輸入原始數據,分別測算養魚池、清水池和污水池的造價,彙總並顯示總造價。把上述算法內容設計成一個粗略的算法(稱為概要設計),用自然語言描述出來,如例5-1所示。例5-1  測算養魚池工程總造價的算法(概要設計)1 23456定義變量,申請保存原始數據(包括養魚池的長和寬、清水池和污水池的半徑)和計算結果(工程總造價)所需的內存空間。從鍵盤輸入原始數據,包括養魚池的長和寬、清水池和污水池的半徑。計算
     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部