電腦程式設計(C++)

電腦程式設計(C++)

電腦程式設計(C++)是西南交通大學於2015年3月3日首次在中國大學MOOC開設的慕課課程、國家精品線上開放課程。該課程授課老師是趙英良、顧剛、姚普選、楊琦、楊振平、衛顏俊、仇國巍、夏秦、喬亞男,據2020年9月中國大學MOOC官網顯示,該課程已開課12次。

該課程共有14章節,包括程式設計的基礎知識和簡單的C++程式設計、簡單信息的表示和數據運算,對應的語法點是數據類型、運算符和表達式等。

基本介紹

  • 中文名:電腦程式設計(C++)
  • 類別:慕課、國家精品線上開放課程
  • 授課院校:西南交通大學
  • 授課老師:趙英良、顧剛、姚普選、楊琦、楊振平、衛顏俊、仇國巍、夏秦、喬亞男
  • 開課時間:2015年03月03日
  • 授課平台:中國大學MOOC
課程性質,課程背景,適應對象,開課信息,課程簡介,課程大綱,課前預備,預備知識,學習資料,所獲榮譽,教師簡介,

課程性質

課程背景

在早期的C++語言屬於多面性語言,即可以像C語言一樣進行模組化的面向過程的編程設計,也可以像Java一樣進行抽象的面向對象程式設計。教學者考慮的是學生從較為便於理解的面向過程的編程思路入門學習C語言編程,然後在熟練了面向過程的編程方式後再從C語言延伸到C++,轉而學習面向對象的程式設計。可是隨著面向對象的程式設計在套用市場上占領了主導地位後,再讓學生從面向過程著手就等於是浪費學習時間。加上C++和C兩門語言的初級語法思想是完全一致的,開設兩門課程浪費了學時,也一定程度上耽誤後續核心課程的學習。

適應對象

電腦程式設計(C++)課程預計的主要對象是大學本科生,但不限於大學生。

開課信息

開課次數
開課時間
授課教師
學時安排
參與人數
第1次開課
2015年03月03日至2015年06月30日
趙英良、顧剛、姚普選、楊琦、楊振平、衛顏俊、仇國巍、夏秦、喬亞男
2小時每周
14892
第2次開課
2015年09月07日至2016年01月11日
19084
第3次開課
2016年02月22日至2016年06月27日
31896
第4次開課
2016年08月29日至 2017年01月10日
3-5小時每周
21800
第5次開課
2017年02月13日至2017年07月03日
24179
第6次開課
2017年08月28日至2018年01月09日
21491
第7次開課
2018年02月19日至2018年06月25日
2-4小時每周
25289
第8次開課
2018年08月27日至2019年01月14日
趙英良
3-4小時每周
30732
第9次開課
2019年02月12日至2019年06月17日
趙英良、顧剛、姚普選、楊琦、楊振平、衛顏俊、仇國巍、夏秦、喬亞男
2-4小時每周
24246
第10次開課
2019年08月26日至2020年01月06日
趙英良、顧剛、楊琦、衛顏俊、仇國巍、夏秦、喬亞男、房琛琛
3-5小時每周
21409
第11次開課
2020年02月10日至2020年06月26日
趙英良、顧剛、姚普選、楊琦、楊振平、衛顏俊、仇國巍、夏秦、喬亞男
27290
第12次開課
2020年08月24日至2020年12月22日
17946(截止至2020年10月4日)
參考資料:

課程簡介

課程以C++語言為載體,講授電腦程式設計,為更好地利用計算機解決工程實踐、科學研究和日常生活中的問題打下基礎。從程式設計方法角度分,計算機語言有面向過程的和面向對象的。面向過程的思想是將任務分解成一系列的函式,函式通過相互調用聯繫起來完成任務。面向對象的思想是將任務分解成一系列對象,對象具有功能。對象間通過訊息傳遞信息,觸發事件,完成任務。面向對象的語言被認為具有更好的重用性、可維護性和可擴展性。C++是面向對象的語言。但也要注意,面向過程和面向對象不是截然分開的,不是對立的。面向過程是面向對象的基礎。該課程前半部分的編程思想仍是面向過程的,這對初學者更容易入門;後半部分是面向對象的,為進一步學習奠定基礎。

課程大綱

第1周 程式設計與C++概述
1.1 程式設計和C++
1.2計算機語言的分類
1.3HelloWorld和編程環境
1.4程式錯了怎么辦
1.5實例:生日賀卡
1.6實例:加法計算器
1.7實例:計算存款本息
1.8C++程式的基本要素
本周課件和推薦閱讀
第1周單元測試
第1周編程作業
C++基礎練習100題
本節內容是練習題,逐步推出C++基礎練習100題
第1周基礎練習
第2周基礎練習
第3周基礎練習
第4周基礎練習
第5周基礎練習
第6周基礎練習
第7周基礎練習
第8周基礎練習
第9周基礎練習
第10周基礎練習
第11周基礎練習
第12周基礎練習
第13周基礎練習
第2周 簡單信息的表示和基本運算
2.1數據類型
2.2常量和變數
2.3算術運算和自增自減運算
2.4關係運算
2.5邏輯運算符
2.6位運算
2.7特殊運算符(賦值運算符、位元組數運算符、條件運算符和逗號運算符)
2.8混合運算的類型轉換
2.9實例:計算三角形的面積
2.10實例:構造5位數的反序數
2.11實例:加密解密
重點難點:整數、字元和字元串
重點難點:轉義符
本周課件
小技巧:設定運行視窗顏色為白底黑字
第2周單元測試
第2周編程作業
第3周 運算的流程控制
3.1程式流程控制
3.2單路和雙路分支
3.3多路分支
3.4已知次數循環
3.5已知條件循環
3.6實例:解一元二次方程
3.7實例:簡單計算器
3.8實例:尋找自冪數
重要技巧:程式調試方法——加輸出語句
重要技巧:程式調試方法——單步跟蹤
本周課件
第3周單元測試
第3周編程作業
C++中級練習100題
C++中級練習100題發布
第1周中級練習
第2周中級練習
第3周中級練習
第4周中級練習
第5周中級練習
第6周中級練習
第7周中級練習
第8周中級練習
第4周 複雜信息的表達與處理
4.1一維數組
4.2二維數組
4.3結構體
4.4枚舉(實例三色球組合)
4.5實例:冒泡排序
4.6實例:文字信息統計
4.7實例:使用string字元串
4.8實例:矩陣乘法
4.9實例:取子字元串
4.10實例:詞頻統計
本周課件
第4周單元測試
第4周編程作業
第5周 問題的模組化求解
5.1 模組化程式設計
5.2 函式的定義
5.3 函式的聲明
5.4 函式的調用格式
5.5 參數的傳遞方式
5.6 為形參指定默認值
5.7 數組名作為函式的參數
5.8 結構體變數作為函式的參數
5.9 實例講解
第5周課件
第5周單元測試
第5周編程作業
第6周 問題的模組化求解(2)——特殊函式
6.1 遞歸函式
6.2 內聯函式
6.3 函式重載
6.4 變數的作用域和存儲類型
6.5實例講解(Hanoi問題,Fibonacci序列遞歸求解,二分查找的遞歸實現,排序函式重載)
第6周課件及課程學習建議
補充——圖解漢諾塔
第6周單元測試
第6周編程作業
第7周 按址操作(1)——指針、變數和函式
7.1 什麼是指針
7.2指針和變數的關係
7.3指針作為函式的參數
7.4返回指針的函式
7.5指向函式的指針
7.6實例講解(利用指針實現三個數的排序、返回字元指針的去掉字元串首部空格函式、通過指針同時返回圓的面積和周長(擴展-多功能函式)、通定積分函式)
第7周單元測試
第7周編程作業
第8周 按址操作(2)——指針與數組、字元串、結構體,動態數組
8.1數組與指針、指針的算術運算
8.2指針的關係運算、通過指針訪問數組元素
8.3二維數組與指針
8.4指向一維數組指針(行指針)、字元串指針
8.5 字元指針套用、指針數組
8.6結構體與指針
8.7動態數組
8.8實例講解(數組元素逆序(指針和動態數組實現)、字元串排序(指針和動態數組實現)、32位二進制IP位址轉換為十進制點分IP位址(帶合法性檢驗))
第8周單元測試
第8周編程作業
第9周 數據的抽象與封裝——類與對象(1)
9.1 類的概念
9.2 類的定義
9.3對象的聲明與使用
9.4 類的私有、公有與保護成員
9.5 日期類的設計
9.6 結構化和面向對象的程式設計思想
9.7 可鳴笛、運動和播放MP3的汽車類的設計
9.8 圓類的設計
9.9 實例講解
第9周單元測試
第9周編程作業
第10周 數據的抽象和封裝——類(2)——構造函式、析構函式和指向對象的指針
10.1 構造函式的定義
10.2 重載構造函式
10.3 析構函式的定義
10.4 實例:整數翻譯函式
10.5 實例:實際意義的析構函式
10.6 實例:Person類的設計
10.7 對象與指針
10.8 this指針
10.9 實例講解
10.10 難點解析1——this指針
第10周單元測試
第10周編程作業
第11周 取其精華 發揮優勢——繼承
11.1具有行走聽說功能的“人”類的設計
11.2為什麼需要繼承
11.3派生類的定義
11.4基類與派生類
11.5繼承方式
11.6派生類的構造函式與析構函式
11.7從點到圓再到圓柱體的派生類設計
11.8從隨身碟到MP3的派生類設計
11.9實例講解
第11周單元測試
第11周編程作業
第12周 統一接口 不同實現——多態性
12.1多態的概念
12.2派生類對象替換基類對象
12.3虛函式
12.4抽象類
12.5運算符的重載
12.6實例1水果類與虛函式
12.7實例2日期類與比較運算符的重載
12.8實例3分數類與加減運算符的重載
12.9實例4數組類與插入運算符(<<)的重載
12.10補充內容:虛析構函式
12.11補充內容:淺拷貝和深拷貝
第12周單元測試
第12周編程作業
第13周 標準輸入輸出與檔案操作
13.1流的概念和流類的結構
13.2標準輸入流
13.3標準輸出流
13.4檔案操作基礎
13.5文本檔案讀寫
13.6二進制檔案的讀寫
13.7檔案操作實例(隨機發牌、統計詞頻、MP3賦值、成績管理)
13.8補充內容:const用法總結
第13周單元測試
第13周編程作業
第14周 模板和標準模板庫簡介
14.1 函式模板
14.2 類模板
14.3 STL 簡介
14.4 vector容器
14.5 vector上的疊代器
14.6 vector上套用算法
14.7 序列型容器概覽
14.8 關聯容器概覽
14.9 map容器
14.10 容器適配器概覽
第14周PPT課件
第14周單元測試
參考資料:

課前預備

預備知識

學習電腦程式設計(C++)課程,可預習“大學計算機基礎”或其他計算機課程。

學習資料

書名
作者
ISBN
出版時間
出版社
《 C++程式設計教程》
趙英良、仇國巍等
978-7-302-33057-8
2013.8
清華大學出版社
《C++程式設計實驗指導與習題解析》
趙英良、衛顏俊等
978-7-302-33058-5
2013.8
《C++程式設計教程(第2版)》
羅建軍、 朱丹軍, 顧剛等
978-7-04-022080-3
2004.8
高等教育出版社
《C++程式設計教程學習指導(第2版)》
羅建軍、朱丹軍、顧剛等
978-7-04-022190-9
2004.8
《 C++程式設計(第2版)》
譚浩強
9787302254881
2011
清華大學出版社
《C++ Primer(中文版 第5版)》
Stanley B. Lippman、Josée Lajoie、Barbara E. Moo 著. 王剛、楊巨峰 譯
9787121155352
2013
電子工業出版社
《C++ Primer Plus(第6版 中文版)》
[美] Stephen Prata 著. 張海龍、袁國忠譯
978-7-115-27946-0
2012
人民郵電出版社
《最新C/C++函式與算法速查速用大辭典》
陳銳、華慶一等
978-7-113-20740-3
2015.9
中國鐵道出版社
資料來源:

所獲榮譽

2017年12月,電腦程式設計(C++)被中華人民共和國教育部認定為國家精品線上開放課程

教師簡介

該課程教師團隊均來自西南交通大學,其中趙英良為教授、夏秦、喬亞男、楊琦、姚普選為副教授、顧剛為研究員、楊振平和仇國巍為講師。

相關詞條

熱門詞條

聯絡我們