C語言從入門到精通_第1頁
C語言從入門到精通_第2頁
C語言從入門到精通_第3頁
C語言從入門到精通_第4頁
C語言從入門到精通_第5頁
已閱讀5頁,還剩687頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C語言從入門到精通第4版目錄\h第1大部分實(shí)例資源庫\h第2大部分模塊資源庫\h第3大部分項(xiàng)目資源庫\h第4大部分能力測(cè)試題庫\h第5大部分面試資源庫\h第1篇基礎(chǔ)知識(shí)\h第1章C語言概述\h1.1C語言的發(fā)展史\h1.2C語言的特點(diǎn)\h1.3一個(gè)簡(jiǎn)單的C程序\h1.4一個(gè)完整的C程序\h1.5C語言程序的格式\h1.6開發(fā)環(huán)境\h1.7小結(jié)\h第2章算法\h2.1算法的基本概念\h2.2算法的描述\h2.3小結(jié)\h第3章數(shù)據(jù)類型\h3.1編程規(guī)范\h3.2關(guān)鍵字\h3.3標(biāo)識(shí)符\h3.4數(shù)據(jù)類型\h3.5常量\h3.6變量\h3.7變量的存儲(chǔ)類別\h3.8混合運(yùn)算\h3.9小結(jié)\h3.10實(shí)踐與練習(xí)\h第4章運(yùn)算符與表達(dá)式\h4.1表達(dá)式\h4.2賦值運(yùn)算符與賦值表達(dá)式\h4.3算術(shù)運(yùn)算符與算術(shù)表達(dá)式\h4.4關(guān)系運(yùn)算符與關(guān)系表達(dá)式\h4.5邏輯運(yùn)算符與邏輯表達(dá)式\h4.6位邏輯運(yùn)算符與位邏輯表達(dá)式\h4.7逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式\h4.8復(fù)合賦值運(yùn)算符\h4.9小結(jié)\h4.10實(shí)踐與練習(xí)\h第5章常用的數(shù)據(jù)輸入/輸出函數(shù)\h5.1語句\h5.2字符數(shù)據(jù)輸入/輸出\h5.3字符串輸入/輸出\h5.4格式輸出函數(shù)\h5.5格式輸入函數(shù)\h5.6順序程序設(shè)計(jì)應(yīng)用\h5.7小結(jié)\h5.8實(shí)踐與練習(xí)\h第6章選擇結(jié)構(gòu)程序設(shè)計(jì)\h6.1if語句\h6.2if語句的基本形式\h6.3if的嵌套形式\h6.4條件運(yùn)算符\h6.5switch語句\h6.6if…else語句和switch語句的區(qū)別\h6.7小結(jié)\h6.8實(shí)踐與練習(xí)\h第7章循環(huán)控制\h7.1循環(huán)語句\h7.2while語句\h7.3do…while語句\h7.4for語句\h7.53種循環(huán)語句的比較\h7.6循環(huán)嵌套\h7.7轉(zhuǎn)移語句\h7.8小結(jié)\h7.9實(shí)踐與練習(xí)\h第2篇核心技術(shù)\h第8章數(shù)組\h8.1一維數(shù)組\h8.2二維數(shù)組\h8.3字符數(shù)組\h8.4多維數(shù)組\h8.5數(shù)組的排序算法\h8.6字符串處理函數(shù)\h8.7數(shù)組應(yīng)用\h8.8小結(jié)\h8.9實(shí)踐與練習(xí)\h第9章函數(shù)\h9.1函數(shù)概述\h9.2函數(shù)的定義\h9.3返回語句\h9.4函數(shù)參數(shù)\h9.5函數(shù)的調(diào)用\h9.6內(nèi)部函數(shù)和外部函數(shù)\h9.7局部變量和全局變量\h9.8函數(shù)應(yīng)用\h9.9小結(jié)\h9.10實(shí)踐與練習(xí)\h第10章指針\h10.1指針相關(guān)概念\h10.2數(shù)組與指針\h10.3指向指針的指針\h10.4指針變量作函數(shù)參數(shù)\h10.5返回指針值的函數(shù)\h10.6指針數(shù)組作main函數(shù)的參數(shù)\h10.7小結(jié)\h10.8實(shí)踐與練習(xí)\h第3篇高級(jí)應(yīng)用\h第11章結(jié)構(gòu)體和共用體\h11.1結(jié)構(gòu)體\h11.2結(jié)構(gòu)體數(shù)組\h11.3結(jié)構(gòu)體指針\h11.4包含結(jié)構(gòu)的結(jié)構(gòu)\h11.5鏈表\h11.6鏈表相關(guān)操作\h11.7共用體\h11.8枚舉類型\h11.9小結(jié)\h11.10實(shí)踐與練習(xí)\h第12章位運(yùn)算\h12.1位與字節(jié)\h12.2位運(yùn)算操作符\h12.3循環(huán)移位\h12.4位段\h12.5小結(jié)\h12.6實(shí)踐與練習(xí)\h第13章預(yù)處理\h13.1宏定義\h13.2#include指令\h13.3條件編譯\h13.4小結(jié)\h13.5實(shí)踐與練習(xí)\h第14章文件\h14.1文件概述\h14.2文件基本操作\h14.3文件的讀寫\h14.4文件的定位\h14.5小結(jié)\h14.6實(shí)踐與練習(xí)\h第15章存儲(chǔ)管理\h15.1內(nèi)存組織方式\h15.2動(dòng)態(tài)管理\h15.3內(nèi)存丟失\h15.4小結(jié)\h15.5實(shí)踐與練習(xí)\h第16章網(wǎng)絡(luò)套接字編程\h16.1計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)\h16.2套接字基礎(chǔ)\h16.3套接字函數(shù)\h16.4小結(jié)\h16.5實(shí)踐與練習(xí)\h第4篇項(xiàng)目實(shí)戰(zhàn)\h第17章學(xué)生成績(jī)管理系統(tǒng)\h17.1需求分析\h17.2系統(tǒng)設(shè)計(jì)\h17.3功能設(shè)計(jì)\h17.4小結(jié)\h附錄ASCII表資源包“開發(fā)資源庫”目錄第1大部分實(shí)例資源庫(881個(gè)完整實(shí)例分析,資源包路徑:開發(fā)資源庫/實(shí)例資源庫)……語言基礎(chǔ)輸出問候語輸出帶邊框的問候語不同類型數(shù)據(jù)的輸出輸出字符表情獲取用戶輸入的用戶名簡(jiǎn)單的字符加密實(shí)現(xiàn)兩個(gè)變量的互換判斷性別用宏定義實(shí)現(xiàn)值互換簡(jiǎn)單的位運(yùn)算整數(shù)加減法練習(xí)李白喝酒問題桃園三結(jié)義何年是閏年小球稱重購物街中的商品價(jià)格競(jìng)猜促銷商品的折扣計(jì)算利用switch語句輸出倒三角形PK少年高斯燈塔數(shù)量上帝創(chuàng)世的秘密小球下落再現(xiàn)乘法口訣表判斷名次序列求和一元錢兌換方案……控件應(yīng)用文本背景的透明處理具有分隔條的靜態(tài)文本控件設(shè)計(jì)群組控件電子時(shí)鐘模擬超鏈接效果使用靜態(tài)文本控件數(shù)組設(shè)計(jì)簡(jiǎn)易拼圖多行文本編輯的編輯框輸入時(shí)顯示選擇列表七彩編輯框效果如同話中題字金額編輯框密碼安全編輯框個(gè)性字體展示在編輯框中插入圖片數(shù)據(jù)RTF文件讀取器在編輯框中顯示表情動(dòng)畫位圖和圖標(biāo)按鈕問卷調(diào)查的程序?qū)崿F(xiàn)熱點(diǎn)效果的圖像切換實(shí)現(xiàn)圖文并茂效果按鈕七巧板動(dòng)畫按鈕向組合框中插入數(shù)據(jù)輸入數(shù)據(jù)時(shí)的輔助提示列表寬度的自動(dòng)調(diào)節(jié)顏色組合框枚舉系統(tǒng)盤符QQ登錄式的用戶選擇列表禁止列表框信息重復(fù)在兩個(gè)列表框間實(shí)現(xiàn)數(shù)據(jù)交換上下移動(dòng)列表項(xiàng)位置實(shí)現(xiàn)標(biāo)簽式選擇要提示才能看得見水平方向的延伸為列表框換裝使用滾動(dòng)條顯示大幅位圖滾動(dòng)條的新裝顏色變了進(jìn)度的百分比顯示程序中的調(diào)色板人靠衣裝頭像選擇形式的登錄窗體以報(bào)表顯示圖書信息實(shí)現(xiàn)報(bào)表數(shù)據(jù)的排序在列表中編輯文本QQ抽屜界面以樹狀結(jié)構(gòu)顯示城市信息節(jié)點(diǎn)可編輯節(jié)點(diǎn)可拖動(dòng)選擇你喜歡的省、市樹控件的服裝設(shè)計(jì)目錄樹界面的分頁顯示標(biāo)簽中的圖標(biāo)設(shè)置迷你星座查詢器設(shè)置系統(tǒng)時(shí)間時(shí)間和月歷的同步實(shí)現(xiàn)紀(jì)念日提醒對(duì)數(shù)字進(jìn)行微調(diào)為程序添加熱鍵獲得本機(jī)的IP地址AVI動(dòng)畫按鈕GIF動(dòng)畫按鈕圖文按鈕不規(guī)則按鈕為編輯框設(shè)置新的系統(tǒng)菜單為編輯框控件添加列表選擇框多彩邊框的編輯框改變編輯框文本顏色不同文本顏色的編輯框位圖背景編輯框電子計(jì)時(shí)器使用靜態(tài)文本控件設(shè)計(jì)群組框制作超鏈接控件利用列表框控件實(shí)現(xiàn)標(biāo)簽式數(shù)據(jù)選擇具有水平滾動(dòng)條的列表框控件列表項(xiàng)的提示條位圖背景列表框控件……菜單根據(jù)表中數(shù)據(jù)動(dòng)態(tài)生成菜單創(chuàng)建級(jí)聯(lián)菜單帶歷史信息的菜單繪制漸變效果的菜單帶圖標(biāo)的程序菜單根據(jù)INI文件創(chuàng)建菜單根據(jù)XML文件創(chuàng)建菜單為菜單添加核對(duì)標(biāo)記為菜單添加快捷鍵設(shè)置菜單是否可用將菜單項(xiàng)的字體設(shè)置為粗體多國語言菜單可以下拉的菜單左側(cè)引航條菜單右對(duì)齊菜單鼠標(biāo)右鍵彈出菜單浮動(dòng)的菜單更新系統(tǒng)菜單任務(wù)欄托盤彈出菜單單文檔右鍵菜單工具欄下拉菜單編輯框右鍵菜單列表控件右鍵菜單工具欄右鍵菜單在系統(tǒng)菜單中添加菜單項(xiàng)個(gè)性化的彈出菜單工具欄和狀態(tài)欄帶圖標(biāo)的工具欄帶背景的工具欄定制浮動(dòng)工具欄創(chuàng)建對(duì)話框工具欄根據(jù)菜單創(chuàng)建工具欄工具欄按鈕的熱點(diǎn)效果定義XP風(fēng)格的工具欄根據(jù)表中數(shù)據(jù)動(dòng)態(tài)生成工具欄工具欄按鈕單選效果工具欄按鈕多選效果固定按鈕工具欄可調(diào)整按鈕位置的工具欄具有提示功能的工具欄在工具欄中添加編輯框帶組合框的工具欄工具欄左側(cè)雙線效果多國語音工具欄顯示系統(tǒng)時(shí)間的狀態(tài)欄使?fàn)顟B(tài)欄隨對(duì)話框的改變而改變帶進(jìn)度條的狀態(tài)欄自繪對(duì)話框動(dòng)畫效果的狀態(tài)欄滾動(dòng)字幕的狀態(tài)欄帶下拉菜單的工具欄動(dòng)態(tài)設(shè)置是否顯示工具欄按鈕文本第2大部分模塊資源庫(15個(gè)經(jīng)典模塊,資源包路徑:開發(fā)資源庫/模塊資源庫)模塊1圖像處理模塊圖像處理模塊概述模塊概述功能結(jié)構(gòu)模塊預(yù)覽關(guān)鍵技術(shù)位圖數(shù)據(jù)的存儲(chǔ)形式任意角度旋轉(zhuǎn)圖像實(shí)現(xiàn)圖像縮放在VisualC++中使用GDI+進(jìn)行圖像處理實(shí)現(xiàn)圖像的水印效果瀏覽PSD文件利用滾動(dòng)窗口瀏覽圖片使用子對(duì)話框?qū)崿F(xiàn)圖像的局部選擇圖像旋轉(zhuǎn)模塊設(shè)計(jì)圖像平移模塊設(shè)計(jì)圖像縮放模塊設(shè)計(jì)圖像水印效果模塊設(shè)計(jì)位圖轉(zhuǎn)換為JPEG模塊設(shè)計(jì)PSD文件瀏覽模塊設(shè)計(jì)照片版式處理模塊設(shè)計(jì)模塊2辦公助手模塊辦公助手模塊概述模塊概述功能結(jié)構(gòu)模塊預(yù)覽關(guān)鍵技術(shù)如QQ般自動(dòng)隱藏按需要設(shè)計(jì)編輯框設(shè)計(jì)計(jì)算器的圓角按鈕回行數(shù)據(jù)在INI文件中的讀取與寫入根據(jù)數(shù)據(jù)庫數(shù)據(jù)生成復(fù)選框餅形圖顯示投票結(jié)果主窗體設(shè)計(jì)計(jì)算器設(shè)計(jì)便利貼設(shè)計(jì)加班模塊設(shè)計(jì)投票項(xiàng)目模塊設(shè)計(jì)模塊3桌面精靈模塊桌面精靈模塊概述模塊概述功能結(jié)構(gòu)模塊預(yù)覽關(guān)鍵技術(shù)陽歷轉(zhuǎn)換成陰歷的算法時(shí)鐘的算法實(shí)現(xiàn)鼠標(biāo)穿透窗體置頂及嵌入桌面添加系統(tǒng)托盤開機(jī)自動(dòng)運(yùn)行自繪右鍵彈出菜單帶圖標(biāo)的按鈕控件主窗體設(shè)計(jì)新建備忘錄模塊設(shè)計(jì)新建紀(jì)念日模塊設(shè)計(jì)紀(jì)念日列表模塊設(shè)計(jì)窗口設(shè)置模塊設(shè)計(jì)提示窗口模塊設(shè)計(jì)模塊4企業(yè)通信模塊企業(yè)通信模塊概述模塊概述功能結(jié)構(gòu)模塊預(yù)覽關(guān)鍵技術(shù)設(shè)計(jì)支持QQ表情的ATL控件向CRichEditCtrl控件中插入ATL控件向CRichEditCtrl控件中插入ATL控件使用XML文件實(shí)現(xiàn)組織結(jié)構(gòu)的客戶端顯示在樹控件中利用節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)節(jié)點(diǎn)的類型(部門信息、男職員、女職員)定義數(shù)據(jù)報(bào)結(jié)構(gòu),實(shí)現(xiàn)文本、圖像、文件數(shù)據(jù)的發(fā)送與顯示數(shù)據(jù)報(bào)粘報(bào)的簡(jiǎn)單處理實(shí)現(xiàn)客戶端掉線的自動(dòng)登錄服務(wù)器主窗口設(shè)計(jì)部門設(shè)置模塊設(shè)計(jì)賬戶設(shè)置模塊設(shè)計(jì)客戶端主窗口設(shè)計(jì)登錄模塊設(shè)計(jì)信息發(fā)送窗口模塊設(shè)計(jì)模塊5媒體播放器模塊媒體播放器模塊概述模塊概述模塊預(yù)覽關(guān)鍵技術(shù)如何使用DirectShow開發(fā)包使用DirectShow開發(fā)程序的方法使用DirectShow如何確定媒體文件播放完成使用DirectShow進(jìn)行音量和播放進(jìn)度的控制使用DirectShow實(shí)現(xiàn)字幕疊加使用DirectShow實(shí)現(xiàn)亮度、飽和度和對(duì)比度調(diào)節(jié)設(shè)計(jì)顯示目錄和文件的樹視圖控件媒體播放器主窗口設(shè)計(jì)視頻顯示窗口設(shè)計(jì)字幕疊加窗口設(shè)計(jì)視頻設(shè)置窗口設(shè)計(jì)文件播放列表窗口設(shè)計(jì)模塊6屏幕錄像模塊屏幕錄像模塊概述模塊概述功能結(jié)構(gòu)關(guān)鍵技術(shù)屏幕抓圖抓圖時(shí)抓取鼠標(biāo)將位圖數(shù)據(jù)流寫入AVI文件將AVI文件轉(zhuǎn)換成位圖數(shù)據(jù)獲得AVI文件屬性根據(jù)運(yùn)行狀態(tài)顯示托盤圖標(biāo)獲得磁盤的剩余空間動(dòng)態(tài)生成錄像文件名主窗體設(shè)計(jì)錄像截取模塊設(shè)計(jì)錄像合成模塊設(shè)計(jì)模塊7計(jì)算機(jī)監(jiān)控模塊計(jì)算機(jī)監(jiān)控模塊概述開發(fā)背景需求分析模塊預(yù)覽關(guān)鍵技術(shù)獲取屏幕設(shè)備上下文存儲(chǔ)為位圖數(shù)據(jù)流將位圖數(shù)據(jù)流壓縮為JPEG數(shù)據(jù)流將JPEG數(shù)據(jù)流分成多個(gè)數(shù)據(jù)報(bào)發(fā)送到服務(wù)器將多個(gè)數(shù)據(jù)報(bào)組合為一個(gè)完整的JPEG數(shù)據(jù)流根據(jù)JPEG數(shù)據(jù)流顯示圖像雙擊實(shí)現(xiàn)窗口全屏顯示客戶端主窗口設(shè)計(jì)服務(wù)器端主窗口設(shè)計(jì)遠(yuǎn)程控制窗口設(shè)計(jì)模塊8考試管理模塊考試管理模塊概述關(guān)鍵技術(shù)在主窗體顯示之前顯示登錄窗口隨機(jī)抽題算法編輯框控件設(shè)置背景圖片顯示歡迎窗體計(jì)時(shí)算法保存答案算法工具欄按鈕提示功能實(shí)現(xiàn)圖標(biāo)按鈕的實(shí)現(xiàn)數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫分析設(shè)計(jì)表結(jié)構(gòu)學(xué)生前臺(tái)考試模塊學(xué)生考試功能實(shí)現(xiàn)學(xué)生查分功能實(shí)現(xiàn)教師后臺(tái)管理模塊后臺(tái)管理主窗口學(xué)生信息管理功能實(shí)現(xiàn)試題管理功能實(shí)現(xiàn)學(xué)生分?jǐn)?shù)查詢功能實(shí)現(xiàn)模塊9SQL數(shù)據(jù)庫提取器模塊SQL數(shù)據(jù)庫提取器模塊概述模塊概述功能結(jié)構(gòu)關(guān)鍵技術(shù)獲得數(shù)據(jù)表、視圖和存儲(chǔ)過程獲得表結(jié)構(gòu)向WORD文檔中插入表格向WORD表格中插入圖片向EXCEL表格中插入圖片使用bcp實(shí)用工具導(dǎo)出數(shù)據(jù)主窗體設(shè)計(jì)附加數(shù)據(jù)庫模塊設(shè)計(jì)備份數(shù)據(jù)庫模塊設(shè)計(jì)數(shù)據(jù)導(dǎo)出模塊設(shè)計(jì)配置ODBC數(shù)據(jù)源模塊設(shè)計(jì)模塊10萬能打印模塊萬能打印模塊概述關(guān)鍵技術(shù)滾動(dòng)條設(shè)置打印中的頁碼計(jì)算和分頁預(yù)覽功能算法數(shù)據(jù)庫查詢功能打印控制功能如何解決屏幕和打印機(jī)分辨率不統(tǒng)一問題打印新一頁主窗體設(shè)計(jì)Access數(shù)據(jù)庫選擇窗體SQLServer數(shù)據(jù)庫選擇窗體數(shù)據(jù)庫查詢模塊打印設(shè)置模塊打印預(yù)覽及打印模塊……第3大部分項(xiàng)目資源庫(15個(gè)企業(yè)開發(fā)項(xiàng)目,資源包路徑:開發(fā)資源庫/項(xiàng)目資源庫)項(xiàng)目1商品庫存管理系統(tǒng)系統(tǒng)分析使用UML用例圖描述商品庫存管理系統(tǒng)需求系統(tǒng)流程系統(tǒng)目標(biāo)系統(tǒng)總體設(shè)計(jì)系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)編碼設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)表數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)字典使用VisualC++6.0與數(shù)據(jù)庫連接如何使用ADO重新封裝ADO程序模型設(shè)計(jì)從這里開始類模型分析CBaseComboBox類分析主程序界面設(shè)計(jì)主程序界面開發(fā)步驟菜單資源設(shè)計(jì)主要功能模塊詳細(xì)設(shè)計(jì)商品信息管理出庫管理調(diào)貨管理地域信息管理庫存盤點(diǎn)經(jīng)驗(yàn)漫談Windows消息概述消息映射消息的發(fā)送運(yùn)行時(shí)刻類型識(shí)別宏MFC調(diào)試宏程序調(diào)試與錯(cuò)誤處理零記錄時(shí)的錯(cuò)誤處理在系統(tǒng)登錄時(shí)出現(xiàn)的錯(cuò)誤對(duì)話框資源對(duì)照說明項(xiàng)目2社區(qū)視頻監(jiān)控系統(tǒng)開發(fā)背景和系統(tǒng)分析開發(fā)背景需求分析可行性分析編寫項(xiàng)目計(jì)劃書系統(tǒng)設(shè)計(jì)系統(tǒng)目標(biāo)系統(tǒng)功能結(jié)構(gòu)系統(tǒng)預(yù)覽業(yè)務(wù)流程圖編碼規(guī)則數(shù)據(jù)庫設(shè)計(jì)公共模塊設(shè)計(jì)主窗體設(shè)計(jì)用戶登錄模塊設(shè)計(jì)監(jiān)控管理模塊設(shè)計(jì)無人廣角自動(dòng)監(jiān)控模塊設(shè)計(jì)視頻回放模塊設(shè)計(jì)開發(fā)技巧與難點(diǎn)分析監(jiān)控卡的選購及安裝監(jiān)控卡選購分析監(jiān)控卡安裝視頻采集卡常用函數(shù)項(xiàng)目3圖像處理系統(tǒng)總體設(shè)計(jì)需求分析可行性分析項(xiàng)目規(guī)劃系統(tǒng)功能架構(gòu)圖系統(tǒng)設(shè)計(jì)設(shè)計(jì)目標(biāo)開發(fā)及運(yùn)行環(huán)境編碼規(guī)則技術(shù)準(zhǔn)備基本繪圖操作內(nèi)存畫布設(shè)計(jì)自定義全局函數(shù)自定義菜單自定義工具欄主要功能模塊設(shè)計(jì)系統(tǒng)架構(gòu)設(shè)計(jì)公共模塊設(shè)計(jì)主窗體設(shè)計(jì)顯示位圖模塊設(shè)計(jì)顯示JPEG模塊設(shè)計(jì)顯示GIF模塊設(shè)計(jì)位圖轉(zhuǎn)換為JPEG模塊設(shè)計(jì)位圖旋轉(zhuǎn)模塊設(shè)計(jì)線性變換模塊設(shè)計(jì)手寫數(shù)字識(shí)別模塊設(shè)計(jì)疑難問題分析解決讀取位圖數(shù)據(jù)位圖旋轉(zhuǎn)時(shí)解決位圖字節(jié)對(duì)齊文件清單項(xiàng)目4物流管理系統(tǒng)系統(tǒng)分析概述可行性分析系統(tǒng)需求分析總體設(shè)計(jì)項(xiàng)目規(guī)劃系統(tǒng)功能結(jié)構(gòu)圖系統(tǒng)設(shè)計(jì)設(shè)計(jì)目標(biāo)數(shù)據(jù)庫設(shè)計(jì)系統(tǒng)運(yùn)行環(huán)境功能模塊設(shè)計(jì)構(gòu)建應(yīng)用程序框架封裝數(shù)據(jù)庫主窗口設(shè)計(jì)基礎(chǔ)信息基類支持掃描儀輔助錄入功能業(yè)務(wù)類業(yè)務(wù)類業(yè)務(wù)查詢類統(tǒng)計(jì)匯總類審核類派車單寫IC卡模塊配送申請(qǐng)模塊三檢管理模塊報(bào)關(guān)過程監(jiān)控模塊數(shù)據(jù)備份模塊數(shù)據(jù)恢復(fù)模塊庫內(nèi)移動(dòng)模塊公司設(shè)置模塊報(bào)關(guān)單管理模塊報(bào)關(guān)單審核模塊配送審核模塊派車回場(chǎng)確計(jì)模塊系統(tǒng)提示模塊查驗(yàn)管理模塊系統(tǒng)初始化模塊系統(tǒng)登錄模塊通關(guān)管理模塊權(quán)限設(shè)置模塊商品入庫排行分析模塊系統(tǒng)注冊(cè)模塊在途反饋模塊疑難問題分析與解決庫內(nèi)移動(dòng)根據(jù)分辨率畫背景程序調(diào)試文件清單項(xiàng)目5局域網(wǎng)屏幕監(jiān)控系統(tǒng)系統(tǒng)分析需求分析可行性分析總體設(shè)計(jì)項(xiàng)目規(guī)劃系統(tǒng)功能架構(gòu)圖系統(tǒng)設(shè)計(jì)設(shè)計(jì)目標(biāo)開發(fā)及運(yùn)行環(huán)境技術(shù)準(zhǔn)備套接字函數(shù)套接字的初始化獲取套接字?jǐn)?shù)據(jù)接收的事件封裝數(shù)據(jù)報(bào)將屏幕圖像保存為位圖數(shù)據(jù)流讀寫INI文件使用GDI+主要功能模塊的設(shè)計(jì)客戶端模塊設(shè)計(jì)服務(wù)器端模塊設(shè)計(jì)疑難問題分析解決使用GDI+產(chǎn)生的內(nèi)存泄漏釋放無效指針產(chǎn)生地址訪問錯(cuò)誤文件清單項(xiàng)目6客戶管理系統(tǒng)系統(tǒng)分析概述需求分析可行性分析總體設(shè)計(jì)項(xiàng)目規(guī)劃系統(tǒng)功能架構(gòu)圖系統(tǒng)設(shè)計(jì)設(shè)計(jì)目標(biāo)開發(fā)及運(yùn)行環(huán)境數(shù)據(jù)庫設(shè)計(jì)技術(shù)準(zhǔn)備數(shù)據(jù)庫的封裝封裝ADO數(shù)據(jù)庫的代碼分析主要功能模塊設(shè)計(jì)主窗體客戶信息聯(lián)系人信息聯(lián)系人信息查詢關(guān)于模塊增加操作員模塊客戶反饋滿意程度查詢客戶反饋模塊客戶呼叫中心模塊客戶級(jí)別設(shè)置模塊客戶滿意程度設(shè)置模塊客戶投訴模塊登錄界面密碼修改模塊客戶信息查詢模塊區(qū)域信息模塊企業(yè)類型模塊企業(yè)性質(zhì)模塊企業(yè)資信設(shè)置模塊客戶投訴滿意程度查詢業(yè)務(wù)往來模塊疑難問題分析與解決使用CtabCtrl類實(shí)現(xiàn)分頁的2種實(shí)現(xiàn)方法ADO不同屬性和方法的弊端及解決方法程序調(diào)試文件清單項(xiàng)目7企業(yè)短信群發(fā)管理系統(tǒng)開發(fā)背景和系統(tǒng)分析開發(fā)背景需求分析可行性分析編寫項(xiàng)目計(jì)劃書系統(tǒng)設(shè)計(jì)系統(tǒng)目標(biāo)系統(tǒng)功能結(jié)構(gòu)圖系統(tǒng)預(yù)覽業(yè)務(wù)流程圖數(shù)據(jù)庫設(shè)計(jì)公共類設(shè)計(jì)自定義SetHBitmap方法處理WM_MOUSEMOVE事件主窗口設(shè)計(jì)短信貓?jiān)O(shè)置模塊設(shè)計(jì)電話簿管理模塊設(shè)計(jì)常用語管理模塊設(shè)計(jì)短信息發(fā)送模塊設(shè)計(jì)短信息接收模塊設(shè)計(jì)開發(fā)技巧與難點(diǎn)分析顯示“收到新信息”對(duì)話框制作只允許輸入數(shù)字的編輯框短信貓應(yīng)用項(xiàng)目8商品銷售管理系統(tǒng)系統(tǒng)分析用UML順序圖描述銷售業(yè)務(wù)處理流程業(yè)務(wù)流程系統(tǒng)的總體設(shè)計(jì)思想系統(tǒng)設(shè)計(jì)系統(tǒng)功能設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)主界面設(shè)計(jì)主要功能模塊詳細(xì)設(shè)計(jì)系統(tǒng)登錄模塊基礎(chǔ)信息查詢基類客戶信息管理銷售管理業(yè)務(wù)查詢基類權(quán)限設(shè)置經(jīng)驗(yàn)漫談大小寫金額的轉(zhuǎn)化函數(shù)MoneyToChineseCode怎樣取得漢字拼音簡(jiǎn)碼怎樣在字符串前或后生成指定數(shù)量的字符日期型(CTime)與字符串(CString)之間的轉(zhuǎn)換Document與View之間的相互作用列表框控件(ListBox)的使用方法組合框控件(ComboBox)的使用方法程序調(diào)試及錯(cuò)誤處理截獲回車后的潛在問題數(shù)據(jù)恢復(fù)時(shí)的錯(cuò)誤對(duì)話框資源對(duì)照說明項(xiàng)目9進(jìn)銷存管理系統(tǒng)概述系統(tǒng)需求分析可行性分析總體設(shè)計(jì)項(xiàng)目規(guī)劃系統(tǒng)功能結(jié)構(gòu)圖系統(tǒng)設(shè)計(jì)設(shè)計(jì)目標(biāo)系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)庫設(shè)計(jì)功能模塊設(shè)計(jì)主窗口設(shè)計(jì)系統(tǒng)登錄管理商品銷售管理商品入庫管理調(diào)貨登記管理權(quán)限設(shè)置管理疑難問題分析與解決使CListCtrl控件可編輯顯示自動(dòng)提示窗口(CListCtrlPop)處理局部白色背景給編輯框加一個(gè)下劃線修改控件字體程序調(diào)試使用調(diào)試窗口輸出信息到“Output”窗口處理內(nèi)存泄漏問題文件清單項(xiàng)目10企業(yè)電話語音錄音管理系統(tǒng)開發(fā)背景和需求分析開發(fā)背景需求分析系統(tǒng)設(shè)計(jì)系統(tǒng)目標(biāo)系統(tǒng)功能結(jié)構(gòu)系統(tǒng)預(yù)覽業(yè)務(wù)流程圖數(shù)據(jù)庫設(shè)計(jì)公共模塊設(shè)計(jì)主窗體設(shè)計(jì)來電管理模塊設(shè)計(jì)電話錄音管理模塊設(shè)計(jì)員工信息管理模塊設(shè)計(jì)產(chǎn)品信息管理模塊設(shè)計(jì)開發(fā)技巧與難點(diǎn)分析為程序設(shè)置系統(tǒng)托盤對(duì)話框的顯示語音卡函數(shù)介紹……第4大部分能力測(cè)試題庫(616道能力測(cè)試題目,資源包路徑:開發(fā)資源庫/能力測(cè)試)第1部分VisualC++編程基礎(chǔ)能力測(cè)試……第2部分?jǐn)?shù)學(xué)及邏輯思維能力測(cè)試基本測(cè)試進(jìn)階測(cè)試高級(jí)測(cè)試第3部分編程英語能力測(cè)試英語基礎(chǔ)能力測(cè)試英語進(jìn)階能力測(cè)試第5大部分面試資源庫(371項(xiàng)面試真題,資源包路徑:開發(fā)資源庫/面試系統(tǒng))第1部分C、C++程序員職業(yè)規(guī)劃你了解程序員嗎程序員自我定位第2部分C、C++程序員面試技巧面試的3種方式如何應(yīng)對(duì)企業(yè)面試英語面試電話面試智力測(cè)試第3部分C、C++常見面試題C/C++語言基礎(chǔ)面試真題字符串與數(shù)組面試真題函數(shù)面試真題指針與引用面試真題預(yù)處理和內(nèi)存管理面試真題位運(yùn)算面試真題面向?qū)ο竺嬖囌骖}繼承與多態(tài)面試真題數(shù)據(jù)結(jié)構(gòu)與常用算法面試真題排序與常用算法面試真題第4部分C、C++企業(yè)面試真題匯編企業(yè)面試真題匯編(一)企業(yè)面試真題匯編(二)企業(yè)面試真題匯編(三)企業(yè)面試真題匯編(四)第5部分VC虛擬面試系統(tǒng)……第1篇基礎(chǔ)知識(shí)只有具備扎實(shí)的基礎(chǔ)知識(shí),才能更快地掌握高級(jí)技術(shù)。本篇講解了C語言的基礎(chǔ)知識(shí),包括C語言的歷史和特性、C語言的開發(fā)環(huán)境、算法、C語言的數(shù)據(jù)類型、運(yùn)算符與表達(dá)式、常用的數(shù)據(jù)輸入/輸出函數(shù)、選擇結(jié)構(gòu)程序設(shè)計(jì)和循環(huán)控制等。在學(xué)習(xí)過程中結(jié)合流程圖和實(shí)例,并通過觀看教學(xué)視頻,讀者可為今后的編程奠定堅(jiān)實(shí)的基礎(chǔ)。第1章C語言概述在學(xué)習(xí)C語言之前,首先要了解C語言的發(fā)展歷程,這是每一個(gè)初學(xué)C語言的人員都應(yīng)該清楚的,并且應(yīng)了解為什么要選擇C語言,以及它有哪些特性。只有了解了C語言的歷史和特性,才會(huì)更深刻地了解這門語言,增加今后學(xué)習(xí)C語言的信心。隨著計(jì)算機(jī)科學(xué)的不斷發(fā)展,C語言的學(xué)習(xí)環(huán)境也在不斷發(fā)生著變化,C語言剛出現(xiàn)時(shí),大多數(shù)人會(huì)選擇相對(duì)簡(jiǎn)單一些的編譯器,如VisualC++6.0。但是現(xiàn)在更多的人傾向于選擇由Microsoft公司推出的VisualStudio編譯器。本章致力于使讀者了解VisualC++6.0和VisualStudio2017開發(fā)環(huán)境,掌握其中各個(gè)部分的使用方法,并通過編寫簡(jiǎn)單的應(yīng)用程序,以練習(xí)使用開發(fā)環(huán)境。通過閱讀本章,您可以:了解C語言的發(fā)展史了解C語言的特點(diǎn)了解C語言的組織結(jié)構(gòu)掌握如何使用VisualC++6.0開發(fā)C程序掌握如何使用VisualStudio2017開發(fā)C程序1.1C語言的發(fā)展史1.1.1程序語言簡(jiǎn)述在介紹C語言的發(fā)展歷程之前,應(yīng)先對(duì)程序語言有一個(gè)大概的了解。1.機(jī)器語言機(jī)器語言是低級(jí)語言,也稱為二進(jìn)制代碼語言。計(jì)算機(jī)使用的是由0和1組成的二進(jìn)制數(shù)組成的一串指令來表達(dá)計(jì)算機(jī)操作的語言。機(jī)器語言的特點(diǎn)是,計(jì)算機(jī)可以直接識(shí)別,不需要進(jìn)行任何的翻譯。2.匯編語言匯編語言是面向機(jī)器的程序設(shè)計(jì)語言。為了減輕使用機(jī)器語言編程的痛苦,用英文字母或符號(hào)串來替代機(jī)器語言的二進(jìn)制碼,這樣就把不易理解和使用的機(jī)器語言變成了匯編語言。因此,匯編語言要比機(jī)器語言更便于閱讀和理解。3.高級(jí)語言由于匯編語言依賴于硬件體系,并且該語言中的助記符號(hào)數(shù)量比較多,所以其運(yùn)用起來仍然不夠方便。為了使程序語言能更貼近人類的自然語言,同時(shí)又不依賴于計(jì)算機(jī)硬件,于是產(chǎn)生了高級(jí)語言。這種語言,其語法形式類似于英文,并且因?yàn)椴恍枰獙?duì)硬件進(jìn)行直接操作,因此易于被普通人所理解與使用。其中影響較大、使用普遍的高級(jí)語言有Fortran、ALGOL、Basic、COBOL、LISP、Pascal、PROLOG、C、C++、VC、VB、Delphi、Java等。1.1.2C語言的歷史從程序語言的發(fā)展過程可以看到,以前的操作系統(tǒng)等系統(tǒng)軟件主要是用匯編語言編寫的。但由于匯編語言依賴于計(jì)算機(jī)硬件,程序的可讀性和可移植性都不是很好,為了提高可讀性和可移植性,人們開始尋找一種語言,這種語言應(yīng)該既具有高級(jí)語言的特性,又不失低級(jí)語言的優(yōu)點(diǎn)。于是,C語言產(chǎn)生了。C語言是在BCPL語言(簡(jiǎn)稱B語言)的基礎(chǔ)上發(fā)展和完善起來的,而B語言是由UNIX的研制者丹尼斯·里奇(DennisRitchie)和肯·湯普遜(KenThompson)于1970年研制出來的。20世紀(jì)70年代初期,AT&TBell實(shí)驗(yàn)室的程序員丹尼斯·里奇第一次把B語言改為C語言。最初,C語言運(yùn)行于AT&T的多用戶、多任務(wù)的UNIX操作系統(tǒng)上。后來,丹尼斯·里奇用C語言改寫了UNIXC的編譯程序,UNIX操作系統(tǒng)的開發(fā)者肯·湯普遜又用C語言成功地改寫了UNIX,從此開創(chuàng)了編程史上的新篇章。UNIX成為第一個(gè)不是用匯編語言編寫的主流操作系統(tǒng)。1983年,美國國家標(biāo)準(zhǔn)委員會(huì)(ANSI)對(duì)C語言進(jìn)行了標(biāo)準(zhǔn)化,于1983年頒布了第一個(gè)C語言草案(83ANSIC),后來于1987年又頒布了另一個(gè)C語言標(biāo)準(zhǔn)草案(87ANSIC),最新的C語言標(biāo)準(zhǔn)C99于1999年頒布,并在2000年3月被ANSI采用。但是由于未得到主流編譯器廠家的支持,C99并未得到廣泛使用。盡管C語言是在大型商業(yè)機(jī)構(gòu)和學(xué)術(shù)界的研究實(shí)驗(yàn)室中研發(fā)的,但是當(dāng)開發(fā)者們?yōu)榈谝慌_(tái)個(gè)人計(jì)算機(jī)提供C編譯系統(tǒng)之后,C語言就得以廣泛傳播,并為大多數(shù)程序員所接受。對(duì)MS-DOS操作系統(tǒng)來說,系統(tǒng)軟件和實(shí)用程序都是用C語言編寫的。Windows操作系統(tǒng)大部分也是用C語言編寫的。C語言是一種面向過程的語言,同時(shí)具有高級(jí)語言和匯編語言的優(yōu)點(diǎn)。C語言可以廣泛應(yīng)用于不同的操作系統(tǒng),如UNIX、MS-DOS、MicrosoftWindows及Linux等。在C語言基礎(chǔ)上發(fā)展起來的有支持多種程序設(shè)計(jì)風(fēng)格的C++語言、網(wǎng)絡(luò)上廣泛使用的Java、JavaScript,以及微軟的C#語言等。也就是說,學(xué)好C語言之后,再學(xué)習(xí)其他語言就會(huì)比較輕松。說明目前最流行的C語言有以下幾種:MicrosoftC或稱MSC。BorlandTurboC或稱TurboC。AT&TC。1.2C語言的特點(diǎn)C語言是一種通用的程序設(shè)計(jì)語言,主要用來進(jìn)行系統(tǒng)程序設(shè)計(jì),具有如下特點(diǎn)。1.高效性談到高效性,不得不說C語言是“魚與熊掌”兼得。從C語言的發(fā)展歷史也可以看到,它繼承了低級(jí)語言的優(yōu)點(diǎn),產(chǎn)生了高效的代碼,并具有友好的可讀性和編寫性。一般情況下,C語言生成的目標(biāo)代碼的執(zhí)行效率只比匯編程序低10%~20%。2.靈活性C語言中的語法不拘一格,可在原有語法基礎(chǔ)上進(jìn)行創(chuàng)造、復(fù)合,從而給程序員更多想象和發(fā)揮的空間。3.功能豐富除了C語言中所具有的類型之外,還可以使用豐富的運(yùn)算符和自定義的結(jié)構(gòu)類型來表達(dá)任何復(fù)雜的數(shù)據(jù)類型,完成所需要的功能。4.表達(dá)力強(qiáng)C語言的特點(diǎn)體現(xiàn)在它的語法形式與人們所使用的語言形式相似,書寫形式自由,結(jié)構(gòu)規(guī)范,并且只需簡(jiǎn)單的控制語句即可輕松控制程序流程,完成煩瑣的程序要求。5.移植性好由于C語言具有良好的移植性,從而使得C程序在不同的操作系統(tǒng)下,只需要簡(jiǎn)單地修改或者不用修改即可進(jìn)行跨平臺(tái)的程序開發(fā)操作。正是由于C語言擁有上述優(yōu)點(diǎn),使得它在程序員選擇語言時(shí)備受青睞。1.3一個(gè)簡(jiǎn)單的C程序在步入C語言程序世界之前,讀者不要對(duì)C語言產(chǎn)生恐懼感,覺得這種語言應(yīng)該是學(xué)者或研究人員的專利。C語言是人類共有的財(cái)富,是普通人只要通過努力學(xué)習(xí)就可以掌握的知識(shí)。下面通過一個(gè)簡(jiǎn)單的程序來看一看C語言程序是什么樣子。【例1.1】一個(gè)簡(jiǎn)單的C程序。(實(shí)例位置:資源包\TM\sl\1\1)本實(shí)例程序?qū)崿F(xiàn)的功能只是顯示一條信息“Hello,world!I'mcoming!”,通過這個(gè)程序可以初窺C程序樣貌。雖然這個(gè)簡(jiǎn)單的小程序只有7行,卻充分說明了C程序是由什么位置開始、什么位置結(jié)束的。運(yùn)行程序,顯示效果如圖1.1所示。圖1.1一個(gè)簡(jiǎn)單的C程序現(xiàn)在來分析一下上面的實(shí)例程序。1.#include指令實(shí)例代碼中的第1行:#include<stdio.h>這個(gè)語句的功能是進(jìn)行有關(guān)的預(yù)處理操作。include稱為文件包含命令,后面尖括號(hào)中的內(nèi)容稱為頭部文件或首文件。有關(guān)預(yù)處理的內(nèi)容,將會(huì)在本書第13章中進(jìn)行詳細(xì)講解,在此讀者只需先對(duì)此概念有所了解即可。2.空行實(shí)例代碼中的第2行是空行。C語言是一個(gè)較靈活的語言,因此格式并不是固定不變、拘于一格的。也就是說,空格、空行、跳格并不會(huì)影響程序。有的讀者就會(huì)問:“為什么要有這些多余的空格和空行呢?”其實(shí)這就像生活中在紙上寫字一樣,雖然拿來一張白紙就可以在上面寫字,但是通常還會(huì)在紙的上面印上一行一行的方格或段落,隔開每一段文字,自然就更加美觀和規(guī)范。合理、恰當(dāng)?shù)厥褂眠@些空格、空行,可以使編寫出來的程序更加規(guī)范,對(duì)日后的閱讀和整理發(fā)揮著重要的作用。在此也提醒讀者,在寫程序時(shí)最好將程序書寫得規(guī)范、干凈。注意不是所有的空格都沒有用,如兩個(gè)關(guān)鍵字之間要用空格隔開(elseif)。這種情況下如果將空格去掉,程序就不能通過編譯。這里大家有個(gè)感性認(rèn)識(shí)就好,在以后章節(jié)的學(xué)習(xí)中會(huì)慢慢領(lǐng)悟。3.main函數(shù)聲明實(shí)例代碼中的第3行:intmain()這一行代碼代表的意思是聲明main函數(shù)為一個(gè)返回值,是整型的函數(shù)。其中的int稱為關(guān)鍵字,這個(gè)關(guān)鍵字代表的類型是整型。關(guān)于數(shù)據(jù)類型的內(nèi)容將會(huì)在本書的第3章進(jìn)行講解,而函數(shù)的內(nèi)容將會(huì)在本書的第9章進(jìn)行詳細(xì)介紹。在函數(shù)中,這一部分稱為函數(shù)頭部分。在每個(gè)程序中都會(huì)有一個(gè)main函數(shù),那么main函數(shù)是什么作用呢?main函數(shù)就是一個(gè)程序的入口部分。也就是說,程序都是從main函數(shù)頭開始執(zhí)行的,然后進(jìn)入main函數(shù)中,執(zhí)行main函數(shù)中的內(nèi)容。4.函數(shù)體實(shí)例代碼中的第4~7行:在上面介紹main函數(shù)時(shí),提到了一個(gè)名詞—函數(shù)頭。讀者通過這個(gè)詞可以進(jìn)行一下聯(lián)想:既然有函數(shù)頭,那也應(yīng)該有函數(shù)的身體吧。沒錯(cuò),一個(gè)函數(shù)分為兩個(gè)部分:一是函數(shù)頭,一是函數(shù)體。程序代碼中的第4行和第7行這兩個(gè)大括號(hào)就構(gòu)成了函數(shù)體,函數(shù)體也可以稱為函數(shù)的語句塊。在函數(shù)體中,也就是第5行和第6行這一部分就是函數(shù)體中要執(zhí)行的內(nèi)容。5.執(zhí)行語句函數(shù)體中的第5行代碼:執(zhí)行語句就是函數(shù)體中要執(zhí)行的動(dòng)作內(nèi)容。這一行代碼是這個(gè)簡(jiǎn)單的例子中最復(fù)雜的。該行代碼雖然看似復(fù)雜,其實(shí)也不難理解,printf是產(chǎn)生格式化輸出的函數(shù),可以簡(jiǎn)單理解為向控制臺(tái)進(jìn)行輸出文字或符號(hào)。括號(hào)中的內(nèi)容稱為函數(shù)的參數(shù),在括號(hào)內(nèi)可以看到輸出的字符串“Hello,world!I'mcoming!”,其中還可以看到“\n”這樣一個(gè)符號(hào),稱之為轉(zhuǎn)義字符。轉(zhuǎn)義字符的內(nèi)容將會(huì)在本書的第3章進(jìn)行介紹。6.return語句函數(shù)體中的第6行代碼:return0;這行語句使main函數(shù)終止運(yùn)行,并向操作系統(tǒng)返回一個(gè)整型常量0。前面介紹main函數(shù)時(shí)說過返回一個(gè)整型返回值,此時(shí)0就是要返回的整型值。在此處可以將return理解成main函數(shù)的結(jié)束標(biāo)志。7.代碼的注釋在程序的第5行和第6行后面可以看到一段關(guān)于這行代碼的文字描述:這段對(duì)代碼的解釋描述稱為代碼的注釋。代碼注釋就是用來對(duì)代碼進(jìn)行解釋說明,方便日后自己閱讀或者他人閱讀源程序時(shí)理解程序代碼的含義和設(shè)計(jì)思想。其語法格式如下:/*其中為注釋內(nèi)容*/說明雖然沒有強(qiáng)行規(guī)定程序中一定要寫注釋,但是為程序代碼寫注釋是一個(gè)良好的習(xí)慣,這會(huì)為以后查看代碼帶來非常大的方便。如果程序交給別人看,他人可以快速地掌握程序思想與代碼作用。因此,編寫規(guī)范的代碼格式和添加詳細(xì)的注釋,是一個(gè)優(yōu)秀程序員應(yīng)該具備的好習(xí)慣。1.4一個(gè)完整的C程序1.3節(jié)展現(xiàn)了一個(gè)最簡(jiǎn)單的程序,通過7行代碼的使用,實(shí)現(xiàn)了顯示一行字符串的功能。通過1.3節(jié)的介紹,讀者應(yīng)該不會(huì)再對(duì)學(xué)習(xí)C語言發(fā)怵了。本節(jié)將在例1.1的基礎(chǔ)上,對(duì)其內(nèi)容進(jìn)行擴(kuò)充,使讀者對(duì)C程序有一個(gè)更完整的認(rèn)識(shí)?!纠?.2】一個(gè)完整的C程序。(實(shí)例位置:資源包\TM\sl\1\2)本實(shí)例要實(shí)現(xiàn)這樣的功能:有一個(gè)長(zhǎng)方體,它的高已經(jīng)給出,然后輸入這個(gè)長(zhǎng)方體的長(zhǎng)和寬,通過輸入的長(zhǎng)、寬以及給定的高度,計(jì)算出長(zhǎng)方體的體積。運(yùn)行程序,顯示效果如圖1.2所示。圖1.2一個(gè)完整的C程序說明這里要再次提示一下此程序的用意。例1.2和例1.1并不是要將具體的知識(shí)點(diǎn)進(jìn)行詳細(xì)的講解,只是將C語言程序的概貌顯示給讀者,使讀者對(duì)C語言程序有一個(gè)簡(jiǎn)單的印象。還記得小時(shí)候?qū)W習(xí)加減法的情況嗎?老師只是教給學(xué)生們“1+1=2”,卻沒有教給學(xué)生們“1+1為什么等于2”或者“如何證明1+1=2”這樣的問題。學(xué)習(xí)加減法是這樣的過程,學(xué)習(xí)C語言編寫程序也應(yīng)該是這樣的過程,在不斷的接觸中變得熟悉,在不斷的思考中變得深入。在具體講解這個(gè)程序的執(zhí)行過程之前,先展現(xiàn)該程序的過程圖,這樣可以使讀者對(duì)程序有一個(gè)更為清晰的認(rèn)識(shí),如圖1.3所示。通過上述程序流程圖,可以觀察出整個(gè)程序運(yùn)行的過程。前面已經(jīng)介紹過程序中的一些內(nèi)容,這里不再進(jìn)行有關(guān)的說明。下面介紹程序中新出現(xiàn)的一些內(nèi)容。圖1.3程序流程分析1.定義常量實(shí)例代碼中的第2行:這一行代碼中,使用#define定義一個(gè)符號(hào)。#define在這里的功能是設(shè)定這個(gè)符號(hào)為Height,并且指定這個(gè)符號(hào)Height代表的值為10。這樣在程序中,只要是使用Height這個(gè)標(biāo)識(shí)符的位置,就代表使用的是10這個(gè)數(shù)值。2.函數(shù)聲明實(shí)例代碼中的第3行:此處代碼的作用是對(duì)一個(gè)函數(shù)進(jìn)行聲明。前面介紹過函數(shù),但是什么是函數(shù)聲明呢?舉一個(gè)例子,兩個(gè)公司進(jìn)行合作,其中的A公司要派一個(gè)經(jīng)理到B公司進(jìn)行業(yè)務(wù)洽談。A公司會(huì)發(fā)送一個(gè)通知給B公司,告訴B公司會(huì)派一個(gè)經(jīng)理過去,請(qǐng)B公司在機(jī)場(chǎng)接一下這位洽談業(yè)務(wù)的經(jīng)理。A公司將這位經(jīng)理的名字和大概的體貌特征都告訴B公司的有關(guān)迎接人員。這樣當(dāng)這位經(jīng)理下飛機(jī)之后,B公司就可以將他的名字寫在紙上做成接機(jī)牌,然后找到這位經(jīng)理。聲明函數(shù)的作用就像A公司告訴B公司有關(guān)這位經(jīng)理信息的過程,為接下來要使用的函數(shù)做準(zhǔn)備。也就是說,如果此處聲明calculate函數(shù),那么在程序代碼的后面會(huì)有calculate函數(shù)的具體定義內(nèi)容,這樣程序中如果出現(xiàn)calculate函數(shù),程序就會(huì)根據(jù)calculate函數(shù)的定義執(zhí)行有關(guān)的操作。至于有關(guān)的具體內(nèi)容將會(huì)在第9章進(jìn)行介紹。3.定義變量實(shí)例代碼中的第6~8行:這3行語句都是定義變量的語句。在C語言中要使用變量,必須在使用變量之前進(jìn)行定義,之后編譯器會(huì)根據(jù)變量的類型為變量分配內(nèi)存空間。變量的作用就是存儲(chǔ)數(shù)值,用變量進(jìn)行計(jì)算。這就像在二元一次方程中,X和Y就是變量,當(dāng)為其進(jìn)行賦值后,如X為5,Y為10,這樣X+Y的結(jié)果就等于15。4.輸入語句實(shí)例代碼中的第13行:在例1.1中曾經(jīng)介紹過顯示輸出函數(shù)printf,那么既然有輸出就一定會(huì)有輸入。在C語言中,scanf函數(shù)就用來接收鍵盤輸入的內(nèi)容,并將輸入的內(nèi)容保存在相應(yīng)的變量中??梢钥吹?,在scanf函數(shù)的參數(shù)中,m_Long就是之前定義的整型變量,它的作用是存儲(chǔ)輸入的信息內(nèi)容。其中的“&”符號(hào)是取地址運(yùn)算符,其具體內(nèi)容將會(huì)在本書的后續(xù)章節(jié)中進(jìn)行介紹。5.數(shù)學(xué)運(yùn)算語句實(shí)例代碼中的第26行:這行代碼在calculate函數(shù)體內(nèi),其功能是將變量Long、Width、Height三者相乘得到的結(jié)果保存在result變量中。其中的“*”號(hào)代表乘法運(yùn)算符。以上內(nèi)容已經(jīng)將其中的要點(diǎn)知識(shí)全部提取出來,關(guān)于C語言程序,相信讀者此時(shí)已經(jīng)有了一定的了解。下面再將上面的程序執(zhí)行過程進(jìn)行總結(jié):(1)包含程序所需要的頭文件。(2)定義一個(gè)常量Height,其代表的值為10。(3)對(duì)calculate函數(shù)進(jìn)行聲明。(4)進(jìn)入main函數(shù),程序開始執(zhí)行。(5)在main函數(shù)中,首先定義3個(gè)整型變量,分別代表長(zhǎng)方體的長(zhǎng)度、寬度和體積。(6)顯示提示文字,然后根據(jù)顯示的文字輸入有關(guān)的數(shù)據(jù)。(7)當(dāng)長(zhǎng)方體的長(zhǎng)度和寬度都輸入之后,會(huì)調(diào)用calculate函數(shù),計(jì)算長(zhǎng)方體的體積。(8)定義calculate函數(shù)的位置在main函數(shù)的下面,在calculate函數(shù)體內(nèi)將計(jì)算長(zhǎng)方體體積的結(jié)果進(jìn)行返回。(9)在main函數(shù)中,result變量得到了calculate函數(shù)返回的結(jié)果。(10)通過輸出語句將其中長(zhǎng)方體的體積顯示出來。(11)程序結(jié)束。1.5C語言程序的格式通過上面兩個(gè)實(shí)例的介紹,可以看出C語言編寫有一定的格式特點(diǎn):主函數(shù)mainC程序都是從main函數(shù)開始執(zhí)行的。main函數(shù)不論放在什么位置都沒有關(guān)系。C程序整體是由函數(shù)構(gòu)成的main是程序中的主函數(shù),當(dāng)然在程序中是可以定義其他函數(shù)的。在這些定義函數(shù)中進(jìn)行特殊的操作,使得函數(shù)完成特定的功能。雖然將所有的執(zhí)行代碼全部放入main函數(shù)也是可行的,但是如果將其分成一塊一塊,每一塊使用一個(gè)函數(shù)進(jìn)行表示,那么整個(gè)程序看起來就具有結(jié)構(gòu)性,并且易于觀察和修改。函數(shù)體的內(nèi)容在“{}”中每一個(gè)函數(shù)都要執(zhí)行特定的功能,那么如何才能看出一個(gè)函數(shù)的具體操作范圍呢?答案就是尋找“{”和“}”這兩個(gè)大括號(hào)。C語言使用一對(duì)大括號(hào)來表示程序的結(jié)構(gòu)層次,需要注意的就是左右大括號(hào)要對(duì)應(yīng)使用。技巧在編寫程序時(shí),為了防止對(duì)應(yīng)大括號(hào)的遺漏,每次都可以先將兩個(gè)對(duì)應(yīng)的大括號(hào)寫出來,再向括號(hào)中添加代碼。每一個(gè)執(zhí)行語句都以“;”結(jié)尾如果注意觀察前面的兩個(gè)實(shí)例,就會(huì)發(fā)現(xiàn)在每一個(gè)執(zhí)行語句后面都會(huì)有一個(gè)“;”(分號(hào))作為語句結(jié)束的標(biāo)志。英文字符大小不通用同一大、小寫字母意義不同,關(guān)鍵字和標(biāo)準(zhǔn)庫函數(shù)名必須用小寫??崭?、空行的使用前面講解空行時(shí)已經(jīng)對(duì)其進(jìn)行闡述,其作用就是增加程序的可讀性,使得程序代碼位置合理、美觀。例如,如下代碼就非常不利于觀察:如果將其中的執(zhí)行語句在函數(shù)中進(jìn)行縮進(jìn),使得函數(shù)體內(nèi)代碼開頭與函數(shù)頭的代碼不在一列,就會(huì)很有層次感,例如:1.6開發(fā)環(huán)境欲善工事,先利其器。要將一件事情做好,先要了解制作工具。本節(jié)將詳細(xì)介紹兩種學(xué)習(xí)C語言程序開發(fā)的常用工具,一個(gè)是VisualC++6.0,另一個(gè)是VisualStudio2017。1.6.1VisualC++6.0VisualC++6.0是一個(gè)功能強(qiáng)大的可視化軟件開發(fā)工具,它將程序的代碼編輯、程序編譯、鏈接和調(diào)試等功能集于一身。VisualC++6.0操作和界面都比較友好,使得開發(fā)過程更快捷、方便。本書中的所有程序都是在VisualC++6.0開發(fā)環(huán)境中進(jìn)行編寫的。接下來將介紹VisualC++6.0的安裝和使用過程。1.VisualC++6.0的安裝微軟公司已經(jīng)停止了對(duì)VisualC++6.0的技術(shù)支持,并且也不提供下載,本書使用的VisualC++6.0的中文版,讀者可以在網(wǎng)上搜索,下載合適的安裝包。接下來介紹安裝過程。注意如果讀者是Win10系統(tǒng),建議安裝VisualC++6.0英文版。VisualC++6.0的具體安裝步驟如下:(1)雙擊打開VisualC++6.0安裝文件夾中的SETUP.mp4文件,打開的界面如圖1.4所示,單擊“運(yùn)行程序”按鈕進(jìn)行安裝。圖1.4單擊“運(yùn)行程序”按鈕(2)進(jìn)入“安裝向?qū)А苯缑?,單擊“下一步”按鈕。進(jìn)入“最終用戶許可協(xié)議”界面,首先選擇“接受協(xié)議”選項(xiàng),然后單擊“下一步”按鈕。(3)進(jìn)入“產(chǎn)品號(hào)和用戶ID”界面,如圖1.5所示。在安裝包內(nèi)找到CDKEY.txt文件,填寫產(chǎn)品ID。姓名和公司名稱根據(jù)情況填寫,可以采用默認(rèn)設(shè)置,不對(duì)其修改,單擊“下一步”按鈕。(4)進(jìn)入“VisualC++6.0中文企業(yè)版”界面,如圖1.6所示,選中“安裝VisualC++6.0中文企業(yè)版”單選按鈕,然后單擊“下一步”按鈕。圖1.5“產(chǎn)品號(hào)和用戶ID”界面圖1.6“VisualC++6.0中文企業(yè)版”界面(5)進(jìn)入“選擇公用安裝文件夾”界面,如圖1.7所示。公用文件默認(rèn)是存儲(chǔ)在C盤中的,單擊“瀏覽”按鈕,選擇安裝路徑,這里建議安裝在空間剩余比較大的磁盤中,單擊“下一步”按鈕。(6)進(jìn)入安裝程序的歡迎界面,如圖1.8所示,單擊“繼續(xù)”按鈕。圖1.7“選擇公用安裝文件夾”界面圖1.8安裝程序的歡迎界面(7)進(jìn)入產(chǎn)品ID確認(rèn)界面,如圖1.9所示,在此界面中,顯示要安裝的VisualC++6.0軟件的產(chǎn)品ID,在向Microsoft請(qǐng)求技術(shù)支持時(shí),需要提供此產(chǎn)品ID,單擊“確定”按鈕。(8)如果讀者電腦中安裝過VisualC++6.0,盡管已經(jīng)卸載了,但是在重新安裝時(shí)還會(huì)提示如圖1.10所示的信息。安裝軟件檢測(cè)到系統(tǒng)之前安裝過VisualC++6.0,如果想要覆蓋安裝的話,單擊“是”按鈕;如果要將VisualC++6.0安裝在其他位置的話,單擊“否”按鈕。這里單擊“是”按鈕,繼續(xù)安裝。圖1.9產(chǎn)品ID確認(rèn)界面圖1.10覆蓋以前的安裝(9)進(jìn)入選擇安裝類型界面,如圖1.11所示。在此界面中,Typical為傳統(tǒng)安裝,Custom為自定義安裝,這里選擇Typical安裝類型。(10)進(jìn)入注冊(cè)環(huán)境變量界面,如圖1.12所示,在此界面中,選中RegisterEnvironmentVariables復(fù)選框,注冊(cè)環(huán)境變量,單擊OK按鈕。圖1.11選擇安裝類型界面圖1.12注冊(cè)環(huán)境變量界面(11)前面的安裝選項(xiàng)都設(shè)置好之后,下面就開始安裝VisualC++6.0了,如圖1.13所示,顯示安裝進(jìn)度,當(dāng)進(jìn)度條達(dá)到100%時(shí),則安裝成功,如圖1.14所示。圖1.13安裝進(jìn)度條圖1.14安裝成功界面說明如果是Win10系統(tǒng),當(dāng)進(jìn)度條達(dá)到100%時(shí),將會(huì)彈出未響應(yīng)的界面,這是VisualC++6.0與Win10的兼容性問題,此時(shí)只需要雙擊該界面,在彈出的對(duì)話框中單擊“關(guān)閉程序”按鈕即可,然后在電腦的“開始”菜單中找到VisualC++6.0,打開就可以使用。(12)VisualC++6.0安裝成功后,進(jìn)入MSDN安裝界面。取消選中“安裝MSDN”,不安裝MSDN,單擊“下一步”按鈕。在其他客戶工具和服務(wù)器安裝界面不進(jìn)行選擇,直接單擊“下一步”按鈕,則可完成VisualC++6.0的全部安裝。2.VisualC++6.0的使用下面通過一個(gè)簡(jiǎn)單的實(shí)例來講解如何使用VisualC++6.0這個(gè)強(qiáng)大的開發(fā)工具。(1)安裝VisualC++6.0之后,選擇“開始”菜單中的MicrosoftVisualC++6.0命令,操作如圖1.15所示。圖1.15打開VisualC++6.0開發(fā)環(huán)境的命令(2)打開VisualC++6.0開發(fā)環(huán)境,進(jìn)入VisualC++6.0的界面,如圖1.16所示。圖1.16VisualC++6.0界面(3)在編寫程序前,首先要?jiǎng)?chuàng)建一個(gè)新的文件,具體方法為:在VisualC++6.0界面選擇File菜單中的New命令,或者按Ctrl+N快捷鍵,這樣就可以創(chuàng)建一個(gè)新的文件,如圖1.17所示。(4)此時(shí)會(huì)出現(xiàn)一個(gè)選擇創(chuàng)建文件的對(duì)話框,在此可以選擇要?jiǎng)?chuàng)建的文件類型。要?jiǎng)?chuàng)建一個(gè)C源文件,首先應(yīng)選擇Files選項(xiàng)卡,這時(shí)會(huì)在列表框中顯示可以創(chuàng)建的不同文件。選擇其中的選項(xiàng),在右邊的File文本框中輸入要?jiǎng)?chuàng)建的文件名稱。圖1.17創(chuàng)建一個(gè)新文件注意因?yàn)橐獎(jiǎng)?chuàng)建的是C源文件,所以在文本框中要將C源文件的擴(kuò)展名一起輸入。例如,創(chuàng)建名稱為Hello的C源文件,那么應(yīng)該在文本框中輸入“Hello.c”。File文本框的下面還有一個(gè)Location文本框,該文本框中是源文件的保存地址,可以通過單擊右邊的按鈕,修改源文件的存儲(chǔ)位置。選擇創(chuàng)建文件操作的示意圖如圖1.18所示。圖1.18創(chuàng)建C源文件(5)當(dāng)指定好源文件的保存地址和文件的名稱后,單擊OK按鈕,創(chuàng)建一個(gè)新的文件。此時(shí)可以看到在開發(fā)環(huán)境中指定創(chuàng)建的C源文件,如圖1.19所示。(6)C源文件此時(shí)已經(jīng)創(chuàng)建完成了,現(xiàn)在將一個(gè)簡(jiǎn)單的程序代碼輸入其中。為了有對(duì)比的效果,這里還是使用例1.1中的程序。將例1.1中的程序輸入后的顯示效果如圖1.20所示。圖1.19新創(chuàng)建的文件圖1.20輸入程序代碼(7)此時(shí)程序已經(jīng)編寫完成,可以對(duì)寫好的程序進(jìn)行編譯。選擇Build菜單中的Compile命令,如圖1.21所示。(8)出現(xiàn)如圖1.22所示的對(duì)話框,詢問是否創(chuàng)建一個(gè)默認(rèn)項(xiàng)目工作環(huán)境。(9)單擊“是”按鈕,此時(shí)會(huì)詢問是否要改動(dòng)源文件的保存地址,如圖1.23所示。圖1.21選擇Compile命令圖1.22詢問是否創(chuàng)建工作環(huán)境(10)單擊“是”按鈕后,編譯程序。如果程序沒有錯(cuò)誤,即可被成功編譯,雖然此時(shí)代碼已經(jīng)被編譯,但是還沒有鏈接生成.mp4可執(zhí)行文件,因此如果此時(shí)要執(zhí)行程序,會(huì)出現(xiàn)如圖1.24所示的提示對(duì)話框,詢問是否要?jiǎng)?chuàng)建.mp4可執(zhí)行文件。單擊“是”按鈕,則會(huì)鏈接生成.mp4文件,即可執(zhí)行程序。圖1.23詢問是否要改動(dòng)源文件的保存地址圖1.24詢問是否要?jiǎng)?chuàng)建.mp4文件(11)當(dāng)然也有直接創(chuàng)建.mp4文件的操作選項(xiàng)??梢赃x擇Build菜單中的Build命令,執(zhí)行創(chuàng)建.mp4文件操作,如圖1.25所示。注意在編譯程序時(shí)可以直接選擇Build命令進(jìn)行編譯、鏈接,這樣就不用進(jìn)行上面第(8)步的Compile操作,而可以直接將編譯和鏈接操作一起執(zhí)行。(12)只有執(zhí)行程序才可以看到有關(guān)程序執(zhí)行的結(jié)果顯示,可以選擇Build菜單中的Execute命令進(jìn)行執(zhí)行程序操作,即可觀察到程序的運(yùn)行結(jié)果,如圖1.26所示。圖1.25選擇Build命令圖1.26程序運(yùn)行結(jié)果顯示上面通過一個(gè)小程序的創(chuàng)建、編輯、編譯和顯示程序運(yùn)行結(jié)果等操作,介紹了有關(guān)使用VisualC++6.0的簡(jiǎn)單操作。下面對(duì)VisualC++6.0集成開發(fā)環(huán)境的使用進(jìn)行補(bǔ)充說明。(1)工具欄按鈕的使用VisualC++6.0集成開發(fā)環(huán)境提供了如下有用的工具欄按鈕。:代表Compile操作。:代表Build操作。:代表Execute操作。上述工具按鈕的功能及作用已經(jīng)在前面的具體講解中有所介紹,此處不再贅述。(2)常用的快捷鍵在編寫程序時(shí),使用快捷鍵會(huì)加快程序的編寫進(jìn)度。在此建議讀者對(duì)于常用的操作最好能熟記其快捷鍵。Ctrl+N:創(chuàng)建一個(gè)新文件。Ctrl+]:檢測(cè)程序中的括號(hào)是否匹配。F7:Build操作。Ctrl+F5:Execute(執(zhí)行)操作。Alt+F8:整理多段不整齊的源代碼。F5:進(jìn)行調(diào)試。為了便于讀者閱讀代碼,可將程序運(yùn)行結(jié)果的顯示底色和文字進(jìn)行修改。修改過程如下:(1)按Ctrl+F5快捷鍵執(zhí)行一個(gè)程序,在程序的標(biāo)題欄上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“屬性”命令,如圖1.27所示。(2)此時(shí)彈出“屬性”對(duì)話框,在“顏色”選項(xiàng)卡中對(duì)“屏幕文字”和“屏幕背景”進(jìn)行修改,如圖1.28所示。在此讀者可以根據(jù)自己的喜好設(shè)定顏色并顯示。圖1.27選擇“屬性”命令圖1.28“顏色”選項(xiàng)卡1.6.2VisualStudio2017MicrosoftVisualStudio(簡(jiǎn)稱VS)是美國微軟公司的開發(fā)工具包系列產(chǎn)品。VisualStudio是一個(gè)基本完整的開發(fā)工具集,用VisualStudio編寫的代碼適用于微軟支持的所有平臺(tái),VisualStudio不僅可以編寫C語言代碼,還可以開發(fā)C++、C#、ASP.NET等,所以VisualStudio很強(qiáng)大。VisualStudio是目前最流行的Windows平臺(tái)應(yīng)用程序的集成開發(fā)環(huán)境之一。接下來將介紹VisualStudio2017的安裝和使用過程。1.VisualStudio2017的安裝本節(jié)以VisualStudio2017社區(qū)版的安裝為例講解具體的安裝步驟。說明VisualStudio2017社區(qū)版是完全免費(fèi)的,其下載地址為/zh-hans/downloads/。安裝VisualStudio2017社區(qū)版的步驟如下:(1)VisualStudio2017社區(qū)版的安裝文件是exe可執(zhí)行文件,其命名格式為“vs_community__編譯版本號(hào).mp4”,筆者在寫作本書時(shí),下載的安裝文件名為vs_community__1230733315.1531385802.mp4文件,雙擊該文件開始安裝。說明安裝VisualStudio2017開發(fā)環(huán)境時(shí),計(jì)算機(jī)上要求必須安裝了.NETFramework4.6框架,如果沒有安裝,請(qǐng)先到微軟官方網(wǎng)站下載并安裝,下載地址為/zh-CN/download/details.aspx?id=48130。(2)程序首先跳轉(zhuǎn)到VisualStudio2017安裝程序界面,在該界面中單擊“繼續(xù)”按鈕,隨即自動(dòng)跳轉(zhuǎn)到安裝選擇項(xiàng)界面,如圖1.29所示,在該界面中主要將“使用C++的桌面開發(fā)”復(fù)選框選中,其他復(fù)選框,讀者可以根據(jù)自己的開發(fā)需要確定是否選擇安裝;選擇完要安裝的功能后,在下面“位置”處選擇要安裝的路徑,這里建議不要安裝在系統(tǒng)盤上,可以選擇一個(gè)其他磁盤進(jìn)行安裝,例如,這里筆者將其安裝到了D盤。設(shè)置完成后,單擊“安裝”按鈕。圖1.29VisualStudio2017安裝界面注意在安裝VisualStudio2017開發(fā)環(huán)境時(shí),一定要確保計(jì)算機(jī)處于聯(lián)網(wǎng)狀態(tài),否則無法正常安裝。(3)跳轉(zhuǎn)到如圖1.30所示的安裝進(jìn)度界面,該界面顯示當(dāng)前的安裝進(jìn)度,等待安裝進(jìn)度條完成后,自動(dòng)進(jìn)入安裝完成頁,此時(shí)就可以在系統(tǒng)的開始菜單中選擇VisualStudio2017菜單來啟動(dòng)并使用開發(fā)環(huán)境了。圖1.30VisualStudio2017安裝界面(4)安裝完成后,也就是進(jìn)度條為100%時(shí),就會(huì)出現(xiàn)如圖1.31所示的界面。單擊“重啟”按鈕,完成VisualStudio2017的安裝。圖1.31重啟界面(5)重啟計(jì)算機(jī)后,在Windows的“開始”菜單中找到VisualStudio2017的開發(fā)環(huán)境,選擇VisualStudio2017,如果是第一次打開VisualStudio2017,會(huì)出現(xiàn)歡迎界面,直接單擊“以后再說”按鈕。(6)進(jìn)入VisualStudio2017環(huán)境的開發(fā)設(shè)置界面,如圖1.32所示,在“開發(fā)設(shè)置”下拉列表框中選擇VisualC++,顏色根據(jù)自己的喜好來選擇,筆者選了藍(lán)色,最后單擊“啟動(dòng)VisualStudio”按鈕。圖1.32選擇開發(fā)設(shè)置界面(7)進(jìn)入VisualStudio2017環(huán)境啟動(dòng)界面。等待幾秒鐘后,進(jìn)入VisualStudio2017環(huán)境開發(fā)的歡迎界面。2.VisualStudio2017的使用安裝好了VisualStudio2017開發(fā)環(huán)境,接下來使用VisualStudio2017創(chuàng)建一個(gè)項(xiàng)目,具體步驟如下:(1)打開VisualStudio2017環(huán)境后出現(xiàn)歡迎界面,在編寫程序之前,首先需要?jiǎng)?chuàng)建一個(gè)新程序文件,具體方法是:在VisualStudio2017歡迎界面中選擇“文件”→“新建”→“項(xiàng)目”命令,如圖1.33所示,或者按Shift+Ctrl+N組合鍵進(jìn)入“新建項(xiàng)目”對(duì)話框。圖1.33創(chuàng)建一個(gè)新文件(2)在“新建項(xiàng)目”對(duì)話框中選擇要?jiǎng)?chuàng)建的文件夾類型。選擇創(chuàng)建文件操作的過程如圖1.34所示。首先選擇“Windows桌面”選項(xiàng),這時(shí)在右側(cè)列表框中將顯示可以創(chuàng)建的不同類型的文件夾,這里選擇選項(xiàng),在“名稱”文本框中輸入要?jiǎng)?chuàng)建的文件夾名稱,如Dome。在“位置”下拉列表框中設(shè)置文件夾的保存地址,可以通過單擊右邊的按鈕修改源文件的存儲(chǔ)位置。圖1.34創(chuàng)建C源文件(3)指定好文件夾的保存地址和名稱后,單擊“確定”按鈕,會(huì)彈出如圖1.35所示界面,選中“空項(xiàng)目”復(fù)選框,然后單擊“確定”按鈕,自動(dòng)跳轉(zhuǎn)到如圖1.36所示的界面。圖1.35創(chuàng)建應(yīng)用程序向?qū)D1.36創(chuàng)建項(xiàng)目界面(4)選擇“解決方案資源管理器”中的源文件,右擊“源文件”,在彈出的快捷菜單中選擇“添加”→“新建項(xiàng)”命令,如圖1.37所示,或者按Shift+Ctrl+A組合鍵進(jìn)入添加項(xiàng)目界面。圖1.37添加項(xiàng)目界面(5)完成步驟(4)就會(huì)自動(dòng)跳轉(zhuǎn)到如圖1.38所示的窗口。圖1.38添加項(xiàng)目界面添加項(xiàng)目時(shí)首先選擇VisualC++選項(xiàng),這時(shí)在右側(cè)列表框中將顯示可以創(chuàng)建的不同文件。因?yàn)橐獎(jiǎng)?chuàng)建C文件,因此這里選擇選項(xiàng),在下方的“名稱”文本框中輸入要?jiǎng)?chuàng)建的C文件名稱,如Dome.c?!拔恢谩毕吕斜砜蚴俏募A的保存地址,這里默認(rèn)為步驟(2)創(chuàng)建的文件夾位置,不做更改。注意因?yàn)橐獎(jiǎng)?chuàng)建的是C源文件,所以在文本框中要將默認(rèn)的擴(kuò)展名.cpp改為.c。例如創(chuàng)建名稱為Dome的C源文件,那么應(yīng)該在文本框中顯示“Dome.c”。(6)單擊“添加”按鈕,這樣就添加了一個(gè)C文件,如圖1.39所示。圖1.39完成添加C文件將代碼寫入Dome.c文件中,如圖1.40所示。(7)代碼編寫完之后,接下來就要編譯程序了。在VisualStudio2017菜單欄中選擇“生成”→“編譯”命令,或者按Ctrl+F7快捷鍵編譯程序,如圖1.41所示。如果編譯程序之后,在輸出工作空間的位置輸出“生成:成功1個(gè),失敗0個(gè),最新0個(gè),跳過0個(gè)”表示編譯成功。(8)程序已經(jīng)編譯成功,并且成功地生成了可執(zhí)行文件,接下來就是運(yùn)行程序了。在VisualStudio2017的菜單欄中選擇“調(diào)試”→“開始執(zhí)行(不調(diào)試)”命令,或者按Ctrl+F5快捷鍵,如圖1.42所示。運(yùn)行出如圖1.43所示的結(jié)果。圖1.40輸入代碼圖1.41編譯程序圖1.42運(yùn)行程序圖1.43運(yùn)行結(jié)果說明如果您覺得程序沒有錯(cuò)誤,可以直接運(yùn)行程序。1.7小結(jié)本章首先講解了關(guān)于C語言的發(fā)展歷史,可以看出C語言的重要性。然后講解了C語言的特點(diǎn),通過這些特點(diǎn)進(jìn)一步驗(yàn)證了C語言的重要地位。接下來通過一個(gè)簡(jiǎn)單的C語言程序和一個(gè)完整的C語言程序,將C語言的概貌呈現(xiàn)給讀者,使讀者對(duì)C語言編程有一個(gè)總體的認(rèn)識(shí)。最后對(duì)兩個(gè)比較流行的C程序開發(fā)環(huán)境進(jìn)行了介紹,通過實(shí)例的創(chuàng)建,對(duì)如何使用這兩種集成開發(fā)環(huán)境進(jìn)行了詳細(xì)的說明,使讀者按書中的步驟就可以編寫實(shí)現(xiàn)自己的程序,為后面的學(xué)習(xí)提供了驗(yàn)證程序結(jié)果的方法,并且培養(yǎng)了動(dòng)手實(shí)踐的能力。第2章算法一個(gè)程序通常包含算法、數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計(jì)方法以及語言工具和環(huán)境這4個(gè)方面。其中,算法是核心,解決的是“做什么”和“如何做”的問題。正是因?yàn)樗惴ㄈ绱酥匾?,所以這里單獨(dú)列出一章來介紹算法的基本知識(shí)。通過閱讀本章,您可以:了解算法的特性了解如何用自然語言描述算法掌握如何用3種基本結(jié)構(gòu)表示算法掌握N-S流程圖2.1算法的基本概念算法與程序設(shè)計(jì)以及數(shù)據(jù)結(jié)構(gòu)密切相關(guān),是解決一個(gè)問題的完整的步驟描述,是解決問題的策略、規(guī)則和方法。算法的描述形式有很多種,如傳統(tǒng)流程圖、結(jié)構(gòu)化流程圖及計(jì)算機(jī)程序語言等,下面就介紹算法的一些相關(guān)內(nèi)容。2.1.1算法的特性算法是為解決某一特定類型的問題而制定的一個(gè)實(shí)現(xiàn)過程,它具有下列特性。1.有窮性一個(gè)算法必須在執(zhí)行有窮步之后結(jié)束,且每一步都可在有窮時(shí)間內(nèi)完成,不能無限地執(zhí)行下去。如要編寫一個(gè)由小到大整數(shù)累加的程序,這時(shí)要注意一定要設(shè)一個(gè)整數(shù)的最上限,也就是加到哪個(gè)數(shù)為止。若沒有最上限,那么程序?qū)o終止地運(yùn)行下去,也就是常說的死循環(huán)。2.確定性算法的每一個(gè)步驟都應(yīng)當(dāng)是確切定義的,對(duì)于每一個(gè)過程不能有二義性,必須對(duì)將要執(zhí)行的每個(gè)動(dòng)作做出嚴(yán)格而清楚的規(guī)定。3.可行性算法中的每一步都應(yīng)當(dāng)能有效地運(yùn)行,也就是說算法是可執(zhí)行的,并要求最終得到正確的結(jié)果。如下面一段程序:intx,y,z;scanf("%d,%d,%d",&x,&y,&z);if(y==0)z=x/y;在這段代碼中,“z=x/y;”就是一個(gè)無效的語句,因?yàn)?不可以做分母。4.輸入一個(gè)算法應(yīng)有零個(gè)或多個(gè)輸入,輸入是在執(zhí)行算法時(shí)需要從外界取得的一些必要的(如算法所需的初始量等)信息。例如:inta,b,c;scanf("%d,%d,%d",&a,&b,&c);上面的代碼就是有多個(gè)輸入。又如:上面的代碼需要零個(gè)輸入。5.輸出一個(gè)算法有一個(gè)或多個(gè)輸出。什么是輸出?輸出就是算法最終所求的結(jié)果。編寫程序的目的就是要得到一個(gè)結(jié)果,如果一個(gè)程序運(yùn)行下來沒有任何結(jié)果,那么這個(gè)程序本身也就失去了意義。2.1.2算法的優(yōu)劣衡量一個(gè)算法的好壞,通常要從以下幾個(gè)方面來分析。1.正確性正確性是指所寫的算法應(yīng)能滿足具體問題的要求,即對(duì)任何合法的輸入,算法都會(huì)得出正確的結(jié)果。2.可讀性可讀性是指算法被寫好之后,該算法被理解的難易程度。一個(gè)算法可讀性的好壞十分重要,如果一個(gè)算法比較抽象,難以理解,那么這個(gè)算法就不易于進(jìn)行交流和推廣使用,其后續(xù)修改、擴(kuò)展、維護(hù)都十分不方便。因此在寫一個(gè)算法時(shí),要盡量將該算法寫得簡(jiǎn)明、易懂。3.健壯性一個(gè)程序完成后,運(yùn)行該程序的用戶對(duì)程序的理解各有不同,并不能保證每一個(gè)人都能按照要求進(jìn)行輸入。健壯性就是指當(dāng)輸入的數(shù)據(jù)非法時(shí),算法也會(huì)做出相應(yīng)判斷,而不會(huì)因?yàn)檩斎氲腻e(cuò)誤造成癱瘓。4.時(shí)間復(fù)雜度與空間復(fù)雜度簡(jiǎn)單地說,時(shí)間復(fù)雜度就是算法運(yùn)行所需要的時(shí)間。不同的算法具有不同的時(shí)間復(fù)雜度,當(dāng)一個(gè)程序較小時(shí),會(huì)感覺不到時(shí)間復(fù)雜度的重要性;但當(dāng)一個(gè)程序特別大時(shí),時(shí)間復(fù)雜度實(shí)際上是十分重要的。因此,如何寫出更高速的算法一直是算法不斷改進(jìn)的目標(biāo)。空間復(fù)雜度是指算法運(yùn)行所需的存儲(chǔ)空間的多少。隨著計(jì)算機(jī)硬件的發(fā)展,空間復(fù)雜度已經(jīng)不再顯得那么重要。2.2算法的描述算法包含算法設(shè)計(jì)和算法分析兩個(gè)方面。算法設(shè)計(jì)主要研究怎樣針對(duì)某一特定類型的問題設(shè)計(jì)出求解步驟,算法分析則要討論所設(shè)計(jì)出來的算法步驟的正確性和復(fù)雜性。對(duì)于一些問題的求解步驟,需要一種表達(dá)方式,即算法描述。他人可以通過這些算法描述來了解算法設(shè)計(jì)者的思路。表示一個(gè)算法,可以用不同的方法,常用的有自然語言、流程圖、N-S流程圖等。下面對(duì)算法的描述做進(jìn)一步介紹。2.2.1自然語言自然語言就是人們?nèi)粘S玫恼Z言,這種表示方式通俗易懂,下面通過實(shí)例具體介紹?!纠?.1】求n!。(1)定義3個(gè)變量i、n及mul,為i和mul均賦初值為1。(2)從鍵盤中輸入一個(gè)數(shù),賦給n。(3)將mul乘以i的結(jié)果賦給mul。(4)i的值加1,判斷i的值是否大于n,如果大于n,則執(zhí)行步驟(5),否則執(zhí)行步驟(3)。(5)將mul的結(jié)果輸出?!纠?.2】任意輸入3個(gè)數(shù),求這3個(gè)數(shù)中的最小數(shù)。(1)定義4個(gè)變量,分別為x、y、z以及min。(2)輸入大小不同的3個(gè)數(shù),分別賦給x、y、z。(3)判斷x是否小于y,如果小于,則將x的值賦給min,否則將y的值賦給min。(4)判斷min是否小于z,如果小于,則執(zhí)行步驟(5),否則將z的值賦給min。(5)將min的值輸出。以上介紹的例2.1和例2.2的算法實(shí)現(xiàn)過程就是采用自然語言來描述的。從上面的描述中會(huì)發(fā)現(xiàn)用自然語言描述的好處,就是易懂。但是采用自然語言進(jìn)行描述也有很大的弊端,即容易產(chǎn)生歧義。例如,將例2.1步驟(3)中的“將mul乘以i的結(jié)果賦給mul”改為“mul等于i乘以mul”,這樣就產(chǎn)生了歧義。并且,用自然語言來描述較為復(fù)雜的算法時(shí),會(huì)顯得不是很方便,因此一般情況下不采用自然語言來描述。2.2.2流程圖流程圖是一種傳統(tǒng)的算法表示法,它用一些圖框來代表各種不同性質(zhì)的操作,用流程線來指示算法的執(zhí)行方向。由于它直觀形象,易于理解,所以應(yīng)用廣泛。特別是在語言發(fā)展的早期階段,只有通過流程圖才能簡(jiǎn)明地表述算法。1.流程圖符號(hào)流程圖使用一些圖框來表示各種操作。如圖2.1所示為一些常見的流程圖符號(hào),其中,起止框用來標(biāo)識(shí)算法的開始和結(jié)束;判斷框用于對(duì)一個(gè)給定的條件進(jìn)行判斷,根據(jù)條件成立與否來決定如何執(zhí)行后續(xù)操作;連接點(diǎn)用于將畫在不同地方的流程線連接起來。下面通過一個(gè)實(shí)例來介紹這些圖框應(yīng)如何使用。圖2.1流程圖符號(hào)2.3種基本結(jié)構(gòu)Bohra和Jacopini為了提高算法的質(zhì)量,經(jīng)研究提出了3種基本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),因?yàn)槿魏我粋€(gè)算法都可由這3種基本結(jié)構(gòu)組成。這3種基本結(jié)構(gòu)之間可以并列,可以相互包含,但不允許交叉,不允許從一個(gè)結(jié)構(gòu)直接轉(zhuǎn)到另一個(gè)結(jié)構(gòu)的內(nèi)部去。整個(gè)算法都是由3種基本結(jié)構(gòu)組成的,所以只要規(guī)定好3種基本結(jié)構(gòu)的流程圖的畫法,就可以畫出任何算法的流程圖。圖2.2順序結(jié)構(gòu)(1)順序結(jié)構(gòu)順序結(jié)構(gòu)是簡(jiǎn)單的線性結(jié)構(gòu),在順序結(jié)構(gòu)的程序中,各操作是按照它們出現(xiàn)的先后順序執(zhí)行的,如圖2.2所示。在執(zhí)行完A框所指定的操作后,接著執(zhí)行B框所指定的操作,這個(gè)結(jié)構(gòu)中只有一個(gè)入口點(diǎn)A和一個(gè)出口點(diǎn)B?!纠?.3】輸入兩個(gè)數(shù)并分別賦給變量i和j,再將這兩個(gè)數(shù)分別輸出。本實(shí)例的流程圖可以采用順序結(jié)構(gòu)來實(shí)現(xiàn),如圖2.3所示。(2)選擇結(jié)構(gòu)選擇結(jié)構(gòu)也稱為分支結(jié)構(gòu),如圖2.4所示。選擇結(jié)構(gòu)中必須包含一個(gè)判斷框。圖2.4所代表的含義是根據(jù)給定的條件P是否成立選擇執(zhí)行A框還是B框。圖2.5所代表的含義是根據(jù)給定的條件P進(jìn)行判斷,如果條件成立則執(zhí)行A框,否則什么也不做。圖2.3輸入兩個(gè)變量的值圖2.4選擇結(jié)構(gòu)1圖2.5選擇結(jié)構(gòu)2【例2.4】輸入一個(gè)數(shù),判斷該數(shù)是否為偶數(shù),并給出相應(yīng)提示。本實(shí)例的流程圖可以采用選擇結(jié)構(gòu)來實(shí)現(xiàn),如圖2.6所示。(3)循環(huán)結(jié)構(gòu)在循環(huán)結(jié)構(gòu)中,反復(fù)地執(zhí)行一系列操作,直到條件不成立時(shí)才終止循環(huán)。按照判斷條件出現(xiàn)的位置,可將循環(huán)結(jié)構(gòu)分為當(dāng)型循環(huán)結(jié)構(gòu)和直到型循環(huán)結(jié)構(gòu)。當(dāng)型循環(huán)如圖2.7所示。當(dāng)型循環(huán)是先判斷條件P是否成立,如果成立,則執(zhí)行A框;執(zhí)行完A框后,再判斷條件P是否成立,如果成立,接著再執(zhí)行A框;如此反復(fù),直到條件P不成立為止,此時(shí)不執(zhí)行A框,跳出循環(huán)。直到型循環(huán)如圖2.8所示。直到型循環(huán)是先執(zhí)行A框,然后判斷條件P是否成立,如果條件P成立則再執(zhí)行A;然后判斷條件P是否成立,如果成立,接著再執(zhí)行A框;如此反復(fù),直到條件P不成立,此時(shí)不執(zhí)行A框,跳出循環(huán)。圖2.6判斷一個(gè)數(shù)是否為偶數(shù)圖2.7當(dāng)型循環(huán)圖2.8直到型循環(huán)【例2.5】求1和100之間(包括1和100)所有整數(shù)之和。本實(shí)例的流程圖可以用當(dāng)型循環(huán)結(jié)構(gòu)來表示,如圖2.9所示。也可以用直到型循環(huán)結(jié)構(gòu)來表示,如圖2.10所示。圖2.9當(dāng)型循環(huán)結(jié)構(gòu)求和圖2.10直到型循環(huán)結(jié)構(gòu)求和2.2.3N-S流程圖N-S流程圖是另一種算法表示法,是由美國人I.Nassi和B.Shneiderman共同提出的,其根據(jù)是:既然任何算法都是由前面介紹的3種結(jié)構(gòu)組成的,則各基本結(jié)構(gòu)之間的流程線就是多余的,因此去掉了所有流程線,將全部的算法寫在一個(gè)矩形框內(nèi)。N-S圖也是算法的一種結(jié)構(gòu)化描述方法,同樣也有3種基本結(jié)構(gòu),下面分別進(jìn)行介紹。1.順序結(jié)構(gòu)順序結(jié)構(gòu)的N-S流程圖如圖2.11所示。例2.3的N-S流程圖如圖2.12所示。圖2.11順序結(jié)構(gòu)圖2.12輸出變量的值2.選擇結(jié)構(gòu)選擇結(jié)構(gòu)的N-S流程圖如圖2.13所示。例2.4的N-S流程圖如圖2.14所示。圖2.13選擇結(jié)構(gòu)圖2.14判斷偶數(shù)3.循環(huán)結(jié)構(gòu)(1)當(dāng)型循環(huán)的N-S流程圖如圖2.15所示。例2.5的當(dāng)型循環(huán)的N-S流程圖如圖2.16所示。圖2.15當(dāng)型循環(huán)圖2.16當(dāng)型循環(huán)求和(2)直到型循環(huán)的N-S圖如圖2.17所示。例2.5的直到型循環(huán)的N-S流程圖如圖2.18所示。圖2.17直到型循環(huán)圖2.18直到型循環(huán)求和說明這3種基本結(jié)構(gòu)都只有一個(gè)入口和一個(gè)出口,結(jié)構(gòu)內(nèi)的每一部分都有可能被執(zhí)行,且不會(huì)出現(xiàn)無終止循環(huán)的情況。【例2.6】從鍵盤中輸入一個(gè)數(shù)n,求n!。本實(shí)例的流程圖如圖2.19所示。本實(shí)例的N-S流程圖如圖2.20所示。圖2.19求n!的流程圖圖2.20求n!的N-S流程圖【例2.7】求兩個(gè)數(shù)a和b的最大公約數(shù)。本實(shí)例的流程圖如圖2.21所示。本實(shí)例的N-S流程圖如圖2.22所示。圖2.21求最大公約數(shù)的流程圖圖2.22求最大公約數(shù)的N-S流程圖2.3小結(jié)本章主要介紹了算法的基本概念及算法描述兩個(gè)方面的內(nèi)容。算法的基本概念包括算法的特征和如何評(píng)價(jià)一個(gè)算法的優(yōu)劣,算法的特征包括有窮性、確定性、可行性、輸入和輸出5個(gè)方面的內(nèi)容,評(píng)價(jià)一個(gè)算法的優(yōu)劣可從正確性、可讀性、健壯性以及時(shí)間復(fù)雜度與空間復(fù)雜度這4個(gè)方面來考慮。算法描述介紹了自然語言、流程圖和N-S流程圖3種方法,其中要重點(diǎn)掌握順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)這3種基本結(jié)構(gòu)的畫法。第3章數(shù)據(jù)類型在程序語言中,C語言是十分重要的。學(xué)好了C語言,會(huì)很容易掌握其他編程語言,因?yàn)槊糠N語言都會(huì)有一些共性存在。同時(shí),一個(gè)好的程序員在編寫代碼時(shí),一定要有規(guī)范性,清晰、整潔的代碼才是有價(jià)值的。本章致力于使讀者掌握C語言中非常重要的一部分知識(shí),即常量與變量。只有學(xué)懂了這些知識(shí),才可以著手編寫程序。通過閱讀本章,您可以:了解編程規(guī)范的重要性掌握如何使用常量掌握變量在程序編寫中的作用及重要性區(qū)分變量的各種存儲(chǔ)類別3.1編程規(guī)范俗話說,“沒有規(guī)矩,不成方圓?!彪m然在C語言中編寫代碼是自由的,但是為了使編寫的代碼具有通用、友好的可讀性,應(yīng)該盡量按照一定的規(guī)范編寫所設(shè)計(jì)的程序。1.代碼縮進(jìn)代碼統(tǒng)一縮進(jìn)為4個(gè)字符。不采用空格,而用Tab鍵制表位。2.變量、常量命名規(guī)范常量命名統(tǒng)一為大寫格式。如果是成員變量,均以m_開始。如果是普通變量,取與實(shí)際意義相關(guān)的名稱,要在前面添加類型的首字母,并且名稱的首字母要大寫。如果是指針,則在其標(biāo)識(shí)符前添加p字符,并且名稱首字母要大寫。例如:3.函數(shù)的命名規(guī)范在定義函數(shù)時(shí),函數(shù)名的首字母要大寫,其后的字母大小寫混合。例如:intAddTwoNum(intnum1,intnum2);4.注釋盡量采用行注釋。如果行注釋與代碼處于一行,則注釋應(yīng)位于代碼右方。如果連續(xù)出現(xiàn)多個(gè)行注釋,并且代碼較短,則應(yīng)對(duì)齊注釋。例如:3.2關(guān)鍵字C語言中有32個(gè)關(guān)鍵字,如表3.1所示。在今后的學(xué)習(xí)中將會(huì)逐漸接觸到這些關(guān)鍵字的具體使用方法。表3.1C語言中的關(guān)鍵字說明在C語言中,關(guān)鍵字是不允許作為標(biāo)識(shí)符出現(xiàn)在程序中的。3.3標(biāo)識(shí)符在C語言中為了在程序的運(yùn)行過程中可以使用變量、常量、函數(shù)、數(shù)組等,就要為這些形式設(shè)定一個(gè)名稱,而設(shè)定的名稱就是所謂的標(biāo)識(shí)符。外國人的姓名一般將名字放在前面,將家族的姓氏放在后面。在中國卻恰恰相反,是把姓氏放在前面,將名字放在后面。從中可以看出,名字是可以隨便起的,但也應(yīng)該按照一定的要求進(jìn)行設(shè)定。在C語言中,設(shè)定一個(gè)標(biāo)識(shí)符的名稱是非常自由的,可以設(shè)定自己喜歡、容易理解的名字,但這并不意味著可以任意自由發(fā)揮。下面介紹一下設(shè)定C語言標(biāo)識(shí)符時(shí)應(yīng)該遵守的一些命名規(guī)則。(1)所有標(biāo)識(shí)符必須由字母或下畫線開頭,而不能以數(shù)字或者符號(hào)開頭。下面來看一些標(biāo)識(shí)符命名示例:(2)在設(shè)定標(biāo)識(shí)符時(shí),除開頭外,其他位置都可以由字母、下畫線或數(shù)字組成。在標(biāo)識(shí)符中,有下畫線的情況

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論