《大學計算機規劃教材:C++程序設計基礎(第4版)(下)》的例程以VC 2010為運行環境,全書分為上、下兩冊。上冊在第3版的基礎上增加了位運算和利用位運算的集合實現。下冊介紹Visual C++在.Net環境下的Windows應用程序設計。
《大學計算機規劃教材:C++程序設計基礎(第4版)(下)》為下冊,共分7章,主要內容包括:C++/CLI托管編程、控制臺程序設計、常用控件、復雜界面設計、圖形圖像應用、數據庫應用、網絡編程。
《大學計算機規劃教材:C++程序設計基礎(第4版)(下)》可以作為高等學校計算機類、信息類、電類專業本科生高級語言程序設計課程教材,也可以作為教師、學生和C++語言愛好者的參考書。
C++語言是優秀的計算機程序設計語言,它的功能相當強大。我們編寫這本書的目的是,為沒有任何程序設計基礎的理工科大學生提供一本適用教材,使他們掌握從理論到實踐都要求很高的C++語言。
一門課程的設置應該放在整個教學培養計劃中統籌考慮。我們的教學目標不是馬上培養一個會使用某種語言(例如C++語言)的程序員,而是強調對程序設計語言的理解和應用,“計算機語言”的角色是第一位的。所以,在教材編寫和組織教學的過程中,我們力圖通過對基本語法現象的剖析,由淺入深地讓學生理解、掌握語言規則的原理,懂得用計算機指令的模式去分析和求解問題,并在機器上實現簡單的程序。至于深入的算法及大程序的組織討論,將由相關的后續課程(例如,數據結構、算法分析、計算方法、軟件工程等)完成。因此,對高級程序設計語言規則的理解和應用是本教材編寫的立足點。
我們根據多年從事計算機程序設計教學的經驗,按照學生學習的認知規律,精心構造整本教材的體系和敘述方式,原則是:循序漸進、難點分散、通俗而不膚淺。本教材以語法范疇和程序組織為脈絡,清晰漸進,從字、詞、數據、表達式、語句,到函數、類,是語法范疇構成的基本脈絡;在程序功能方面,則以組織數據和組織程序為另外一條基本脈絡,并以漸進的、粒度擴大的方式逐步導入分析。
例如,數據的組織方式:基本數據類型—數組—結構—鏈表,體現如何利用基本數據類型根據需要組織數據;程序的組織方式:語句—函數—類,體現結構化思想和面向對象思想對程序不同的組織方式。
指針是C++語言的重要概念,是操作對象的有力工具。本書沒有一般C語言、C++語言教材中專門的“指針”一章。我們從最簡單的變量開始,建立對象的名和地址的概念,用對象的不同訪問方式貫穿于各章節。從結構化程序設計到面向對象程序設計,采取了比較平滑的過渡。首先,在一開始介紹基本數據類型、程序流程控制、函數等結構化程序設計的基本知識時,就非正式地使用“對象”這個術語(從計算機程序的角度,任何占有存儲空間的實體都是對象);繼而,掌握結構到類的演變,給出對象的準確定義;進一步,展開介紹面向對象程序的幾個基本特性,即封裝、繼承、多態和類屬在C++語言中的實現方法。同時,我們在本書的闡述中體現一個思想:沒有一種對所有問題都是最好的程序設計方法,對特定問題,選擇合適的解決方案是程序員必備的素質。
本書之所以取名為《C++程序設計基礎》,原因有二:第一,它不是一本C++語言手冊,不可能包羅所有語法規則和特定版本提供的各種功能;第二,它沒有涉及復雜的算法和工程化的面向對象分析設計方法。這兩個問題與教材的定位相關。對第一個原因,我們認為學生在掌握了程序設計的基本概念和基本方法之后,可以通過語言平臺(例如VisualC++)或者其他資料學習,拓展對語言功能的了解。我們在有關章節中,也做了類似的引導,例如,STL標準類庫的介紹,這些內容提供給教師選擇或學生自學。至于第二個原因,那些是計算機專業后續課程的教學內容。本書介紹的程序設計方法和使用到的算法都立足于基本概念和方法,所以,例程通常是簡單和小規模的。
本書分別在2003年、2006年和2009年出版了1~3版。目前修訂的第4版教材的例程以VC2010為運行環境,全書分為上、下兩冊。上冊在第3版的基礎上增加了位運算和利用位運算的集合實現。下冊介紹VisualC++在.Net環境的Windows應用程序設計。編寫下冊教材的原因是學生在掌握了C++程序設計基本語法之后,希望能夠設計一個Windows界面的完整的應用程序。
下冊共分7章,主要內容包括:C++/CLI托管編程、簡單Windows應用程序、常用控件、復雜界面、圖形圖像、數據庫應用、網絡編程。
本書中配套的電子課件和例程的源代碼,請登錄華信教育資源網免費下載。
本書可以作為高等學校計算機類、信息類、電類專業本科生高級語言程序設計課程教材,也可以作為教師、學生和C++語言愛好者的參考書。
本書的編寫過程,是作者不斷向學生學習,向同行學習,向C++語言學習的過程。在此,對所有使用本書的教師、學生,以及熱心向我們提出寶貴意見的讀者致以誠摯的感謝!希望繼續得到讀者的支持和幫助。本書參考了MSDN的部分內容。
作者
第1章 C++/CLI托管編程
1.1 .NET框架
1.2 簡單控制臺程序
1.2.1 一個簡單程序
1.2.2 格式串
1.3 C++/CLI數據
1.3.1 基本數據類型
1.3.2 枚舉類型
1.3.3 字符與字符串
1.3.4 日期時間
1.3.5 數組
1.4 句柄
1.4.1 句柄操作
1.4.2 托管引用
1.4.3 函數的句柄參數與引用參數
1.5 托管類
1.5.1 托管類定義
1.5.2 托管類屬性
1.5.3 繼承
1.6 C++/CLI中的多態
1.6.1 虛函數
1.6.2 重寫約束
1.6.3 純虛函數和抽象類
1.6.4 接口
1.6.5 模板與泛型
1.7 .NET的文件和流
1.7.1 文件系統管理
1.7.2 文件操作
本章小結
習題1
第2章 簡單Windows應用程序
2.1 Windows窗體設計器
2.2 建立應用程序
2.2.1 主要工作步驟
2.2.2 一個簡單例子
2.2.3 添加文件
2.3 使用控件輸入/輸出數據
本章小結
習題2
第3章 常用控件
3.1 控件概述
3.2 窗體和消息框
3.2.1 窗體
3.2.2 消息框
3.3 文本控件
3.3.1 標簽
3.3.2 網頁瀏覽控件
3.3.3 文本框
3.3.4 關聯文本控件
3.4 圖像控件
3.4.1 圖片框
3.4.2 圖片列表
3.5 鍵盤和鼠標事件
3.5.1 焦點和Tab順序
3.5.2 鍵盤事件
3.5.3 鼠標事件
3.6 按鈕
3.6.1 命令按鈕
3.6.2 復選框
3.6.3 單選按鈕
3.7 容器
3.7.1 分組框
3.7.2 其他容器控件
3.8 列表
3.8.1 標準列表框
3.8.2 復選列表框
3.8.3 組合框
3.9 滾動條
3.10 計時器
3.11 對話框
3.11.1 顏色對話框
3.11.2 字體對話框
3.11.3 文件對話框
3.12 剪貼板
本章小結
習題3
第4章 復雜界面
4.1 菜單
4.1.1 菜單的形式
4.1.2 菜單欄
4.1.3 快捷菜單
4.2 工具欄
4.3 狀態欄
4.4 視圖
4.4.1 樹視圖
4.4.2 列表視圖
4.5 多窗體
4.5.1 多重窗體界面
4.5.2 多文檔界面
4.5.3 窗體之間的數據傳遞
4.5.4 窗體之間的關系
本章小結
習題4
第5章 圖形圖像
5.1 基礎
5.1.1 圖形與圖像
5.1.2 GDI+簡介
5.1.3 像素
5.1.4 坐標系
5.1.5 繪圖元素
5.2 繪圖
5.2.1 繪圖基本方法
5.2.2 畫筆
5.2.3 繪制圖形
5.2.4 圖像刷新
5.3 填充
5.3.1 畫刷
5.3.2 填充方法
5.4 圖像處理
5.4.1 Bitmap類
5.4.2 坐標變換
5.4.3 顏色變換
5.5 文本輸出
5.5.1 簡單文本輸出
5.5.2 輸出格式化文本
5.6 圖像編輯器
本章小結
習題5
第6章 數據庫應用
6.1 數據庫基礎知識
6.1.1 數據、數據庫、數據庫管理系統
6.1.2 關系數據庫
6.2 SQL簡介
6.2.1 數據檢索
6.2.2 表的連接
6.2.3 記錄的排序
6.3 MySQL數據庫管理系統
6.3.1 什么是MySQL
6.3.2 MySQL的安裝與配置
6.3.3 啟動服務并登錄MySQL數據庫
6.3.4 創建數據庫
6.3.5 創建數據表
6.3.6 插入數據
6.4 數據庫與ADO.NET
6.4.1 ADO.NET概述
6.4.2 使用DataReader
6.4.3 使用DataSet
6.4.4 在DataSet中訪問多個表
6.4.5 使用數據控件
本章小結
習題6
第7章 網絡編程
7.1 有關網絡編程的一些基本概念
7.1.1 ISO/OSI網絡模型
7.1.2 TCP/IP
7.1.3 Socket(套接字)
7.2 單線程套接字編程
7.2.1 建立TCP服務器
7.2.2 建立TCP客戶端
7.2.3 使用Socket建立客戶-服務器交互
7.3 多線程套接字編程
7.3.1 多線程的概念
7.3.2 多線程套接字網絡通信程序
7.3.3 帶心跳檢測的網絡通信程序
7.3.4 多客戶端網絡通信程序
7.4 綜合示例:網絡井字棋
7.4.1 概要設計
7.4.2 服務器端代碼
7.4.3 客戶端代碼
本章小結
習題7
……