一級(jí)實(shí)踐講座模板課件_第1頁(yè)
一級(jí)實(shí)踐講座模板課件_第2頁(yè)
一級(jí)實(shí)踐講座模板課件_第3頁(yè)
一級(jí)實(shí)踐講座模板課件_第4頁(yè)
一級(jí)實(shí)踐講座模板課件_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

一級(jí)實(shí)踐講座(1)1謝謝觀賞2019-6-9一級(jí)實(shí)踐講座(1)1謝謝觀賞2019-6-9主要內(nèi)容關(guān)于一級(jí)實(shí)踐的一些說明C++知識(shí)點(diǎn)串講精彩代碼欣賞將時(shí)髦的技術(shù)掛在嘴邊,不如把過時(shí)的技術(shù)記在心里2謝謝觀賞2019-6-9主要內(nèi)容關(guān)于一級(jí)實(shí)踐的一些說明2謝謝觀賞2019-6-9關(guān)于一級(jí)實(shí)踐的一些說明主要目的涉及到的知識(shí)點(diǎn)實(shí)施的過程練好編程能力的因素C++ismoreimportantthanotherlanguages?3謝謝觀賞2019-6-9關(guān)于一級(jí)實(shí)踐的一些說明主要目的3謝謝觀賞2019-6-9軟件工程的理解軟件的工程來自加拿大安大略的McMaster大學(xué),由大衛(wèi).柏那斯(DavidParnasatMcMasterUniversityinOntario,Canada)提出。以柏氏的觀點(diǎn),軟體工程師是一種「工程師」,但受過軟體開發(fā)的特別訓(xùn)練。這類的軟體工程師在學(xué)校裡的培養(yǎng)就該包括化學(xué)、工程數(shù)學(xué)、材料科學(xué)、電學(xué)、電子學(xué)等傳統(tǒng)上工程學(xué)院的共同必修科目。當(dāng)然,他們也要修傳統(tǒng)上資訊科學(xué)的重要課程。工程化的軟件來自美國(guó)的Rochester技術(shù)學(xué)院(RochesterInstituteofTechnology,簡(jiǎn)稱RIT),與ACM和IEEE電腦團(tuán)體共同發(fā)展出來,它強(qiáng)調(diào)軟體工程師的教育和訓(xùn)練目標(biāo)是培養(yǎng)懂得運(yùn)用工程方法來開發(fā)軟體的人才。這種定義下的軟體工程師在學(xué)校裡必須修數(shù)學(xué)、軟體結(jié)構(gòu)與組織、軟體需求、程式設(shè)計(jì)、人因工程等課程,RIT的定義聽起來更像信息科學(xué)或管理4謝謝觀賞2019-6-9軟件工程的理解軟件的工程4謝謝觀賞2019-6-9軟件工程師的階層化5謝謝觀賞2019-6-9軟件工程師的階層化5謝謝觀賞2019-6-9軟件工程師的專門化6謝謝觀賞2019-6-9軟件工程師的專門化6謝謝觀賞2019-6-9軟件開發(fā)人員的性格指標(biāo)麥布二氏行為類型量表,簡(jiǎn)稱MBTI(Meyers-BriggsTypeIndicator),按照四種指標(biāo),將人分成四類:

外向(Extroversion,E)或內(nèi)向(Introversion,I)──外向的人天生比較喜歡走向人群和外界的事物,而內(nèi)向的人比較喜歡待自己的世界裡,擁有自己的想法。感知(Sensing,S)或直覺(Intuition,N)──這項(xiàng)指標(biāo)是看這個(gè)人喜歡接受決策性資料的程度。感知傾向的人較專注在已知的事實(shí)、確定的資料和經(jīng)驗(yàn)。而直覺傾向的人較喜歡追求不確定的事物,較專注於概念或理論。思考(Thing,T)或感受(Feeling,F)──這項(xiàng)指標(biāo)是指這個(gè)人的決策風(fēng)格。思考型的人根據(jù)客觀的分析和邏輯做出他的決策,而情感型的人則依主觀情緒來做決策。觀察(Perceiving,P)或判斷(Judging,J)──觀察型的人喜歡彈性和未知的各種可能性,而判斷型的人則喜歡一切有秩序,一切能控制。軟件開發(fā)人員平均性格比例最高的是ISTJ型7謝謝觀賞2019-6-9軟件開發(fā)人員的性格指標(biāo)麥布二氏行為類型量表,簡(jiǎn)稱MBTI(M開發(fā)人員的年齡8謝謝觀賞2019-6-9開發(fā)人員的年齡8謝謝觀賞2019-6-9軟件開發(fā)需要的職業(yè)品質(zhì)在軟體設(shè)計(jì)期間,是建築師;在設(shè)計(jì)使用者介面時(shí),是藝術(shù)家;在建構(gòu)程式時(shí),是手藝精巧的工匠;而在測(cè)試時(shí),是個(gè)不折不扣的混蛋!9謝謝觀賞2019-6-9軟件開發(fā)需要的職業(yè)品質(zhì)在軟體設(shè)計(jì)期間,是建築師;9謝謝觀賞2軟件開發(fā)是工程而不是科學(xué)通常計(jì)算機(jī)科學(xué)的畢業(yè)生都需要幾年的在職訓(xùn)練,才能累積足夠的實(shí)務(wù)知識(shí),獨(dú)立地做出真正實(shí)用又讓大家滿意的軟體產(chǎn)品。而正規(guī)教育不夠的軟體開發(fā)人員,可能連怎麼在職業(yè)生涯裡培養(yǎng)自己都不知道。10謝謝觀賞2019-6-9軟件開發(fā)是工程而不是科學(xué)通常計(jì)算機(jī)科學(xué)的畢業(yè)生都需要幾年的在淘金熱后建立真正的軟件工業(yè)在淘金熱裡,您可能對(duì)程式碼輕率隨便,或是技術(shù)並不很強(qiáng),但夠幸運(yùn),所以還是找到了黃金。在淘金熱後,您必須以更嚴(yán)謹(jǐn)?shù)膽B(tài)度工作、把技術(shù)紮實(shí)地培養(yǎng)起來,這只是為了繼續(xù)存活。管理學(xué)上的流行術(shù)語也許會(huì)告訴您,曾經(jīng)實(shí)地參與過淘金熱就是一生難得的訓(xùn)練了,但是發(fā)揮冒險(xiǎn)精神和使用有效的軟體開發(fā)方法並不衝突11謝謝觀賞2019-6-9淘金熱后建立真正的軟件工業(yè)在淘金熱裡,您可能對(duì)程式碼輕率隨便常見的技術(shù)硬件技術(shù)平臺(tái)技術(shù)應(yīng)用程序框架模式12謝謝觀賞2019-6-9常見的技術(shù)硬件技術(shù)12謝謝觀賞2019-6-9一級(jí)實(shí)踐的定位程序規(guī)范平臺(tái)及應(yīng)用框架層13謝謝觀賞2019-6-9一級(jí)實(shí)踐的定位程序規(guī)范13謝謝觀賞2019-6-9相關(guān)的課程先修課程:數(shù)據(jù)結(jié)構(gòu);編譯原理;操作系統(tǒng);補(bǔ)修課程:C;WINDOWS編程;UNIX/LINUX編程;C++及其標(biāo)準(zhǔn)庫(kù)訓(xùn)練課程:程序設(shè)計(jì)規(guī)范;Socket編程;多進(jìn)程(線程)編程;典型算法提高課程:驅(qū)動(dòng)程序設(shè)計(jì);J2EE平臺(tái);.NET平臺(tái)14謝謝觀賞2019-6-9相關(guān)的課程先修課程:14謝謝觀賞2019-6-9主要內(nèi)容及時(shí)間安排C++及其內(nèi)存使用方式,含復(fù)習(xí)C語言(4周)C++實(shí)現(xiàn)常見數(shù)據(jù)結(jié)構(gòu),異質(zhì)鏈表、異質(zhì)樹,模擬超市動(dòng)作過程的仿真程序(2周)C++實(shí)現(xiàn)C語言的編譯器(4周)Windows或LINUX/UNIX編程知識(shí)(2周)socket編程(2周)綜合設(shè)計(jì),實(shí)現(xiàn)一個(gè)基于多線程服務(wù)器的C/S結(jié)構(gòu)的聊天系統(tǒng)。15謝謝觀賞2019-6-9主要內(nèi)容及時(shí)間安排C++及其內(nèi)存使用方式,含復(fù)習(xí)C語言(4周課程實(shí)施形式專題講座(每個(gè)專題3學(xué)時(shí),共8~10個(gè)專題,根據(jù)學(xué)生具體情況增加或減少)實(shí)踐。同學(xué)根據(jù)自己情況自行安排,每周不少于10小時(shí),并完成一定量的源代碼編寫工作。對(duì)指定的練習(xí)項(xiàng)目小組長(zhǎng)協(xié)調(diào)小組成員共同完成。討論。每5-7人分為1小組,每小組每?jī)芍苡懻?小時(shí),提交最近兩周的源代碼作業(yè)。討論時(shí)主要解決小組各成員實(shí)踐過程中碰到的難題,檢查最近兩周的練習(xí)進(jìn)度,并布置下兩周的練習(xí)內(nèi)容。16謝謝觀賞2019-6-9課程實(shí)施形式專題講座(每個(gè)專題3學(xué)時(shí),共8~10個(gè)專題,根據(jù)考核平時(shí)占40%,其中考勤15%,作業(yè)25%。期末筆試占60%。17謝謝觀賞2019-6-9考核平時(shí)占40%,其中考勤15%,作業(yè)25%。17謝謝觀賞2C++知識(shí)點(diǎn)串講基礎(chǔ)知識(shí)18謝謝觀賞2019-6-9C++知識(shí)點(diǎn)串講基礎(chǔ)知識(shí)18謝謝觀賞2019-6-9基礎(chǔ)知識(shí)從源代碼到可執(zhí)行文件編譯從可執(zhí)行文件到進(jìn)程載入進(jìn)程的運(yùn)行過程堆和棧的變化19謝謝觀賞2019-6-9基礎(chǔ)知識(shí)從源代碼到可執(zhí)行文件19謝謝觀賞2019-6-9從源代碼到可執(zhí)行文件C++源代碼的組織結(jié)構(gòu)聲明(.h)、定義(.cpp)一個(gè)編譯單元[translationunit]是指一個(gè).cpp文件以及它所include的所有.h文件,.h文件里的代碼將會(huì)被擴(kuò)展到包含它的.cpp文件里。每個(gè)編譯單元被編譯器編譯為一個(gè).obj文件,格式為PE[PortableExecutable,即windows可執(zhí)行文件]。多個(gè).obj文件由連接器(linker)進(jìn)行連接成為一個(gè).exe文件。要能運(yùn)行需要有一個(gè)main函數(shù),而有必須有每個(gè)聲明的定義20謝謝觀賞2019-6-9從源代碼到可執(zhí)行文件C++源代碼的組織結(jié)構(gòu)20謝謝觀賞201可執(zhí)行文件的結(jié)構(gòu)BlockStartedbySymbol21謝謝觀賞2019-6-9可執(zhí)行文件的結(jié)構(gòu)BlockStartedbySymboWindows的進(jìn)程代碼區(qū)靜態(tài)數(shù)據(jù)區(qū)(已編譯好)動(dòng)態(tài)數(shù)據(jù)區(qū)(堆和棧)22謝謝觀賞2019-6-9Windows的進(jìn)程代碼區(qū)22謝謝觀賞2019-6-9windows進(jìn)程的結(jié)構(gòu)├———————┤低端內(nèi)存區(qū)域│……│├———————┤│動(dòng)態(tài)數(shù)據(jù)區(qū)│├———————┤│……│├———————┤│代碼區(qū)│├———————┤│靜態(tài)數(shù)據(jù)區(qū)│├———————┤│……│├———————┤高端內(nèi)存區(qū)域23謝謝觀賞2019-6-9windows進(jìn)程的結(jié)構(gòu)├———————┤低端內(nèi)存區(qū)域23變量存儲(chǔ)區(qū)舉例#include<stdio.h>//例子zonesintg1=0,g2=0;intmain(){staticints1=0,s2=0;intv1=0,v2=0;printf("0x%08x\n",&v1);//打印各本地變量的內(nèi)存地址printf("0x%08x\n",&v2);printf("0x%08x\n",&g1);//打印各全局變量的內(nèi)存地址printf("0x%08x\n",&g2);printf("0x%08x\n",&s1);//打印各靜態(tài)變量的內(nèi)存地址printf("0x%08x\n",&s2);return0;}24謝謝觀賞2019-6-9變量存儲(chǔ)區(qū)舉例#include<stdio.h>//例子堆和棧堆(動(dòng)態(tài)申請(qǐng))當(dāng)進(jìn)程初始化時(shí),系統(tǒng)會(huì)自動(dòng)為進(jìn)程創(chuàng)建一個(gè)默認(rèn)堆,這個(gè)堆默認(rèn)所占內(nèi)存的大小為1M。堆對(duì)象由系統(tǒng)進(jìn)行管理,它在內(nèi)存中以鏈?zhǔn)浇Y(jié)構(gòu)存在。堆棧有一組CPU指令可以實(shí)現(xiàn)對(duì)進(jìn)程內(nèi)存的堆棧式訪問。其中,POP指令實(shí)現(xiàn)出棧操作,PUSH指令實(shí)現(xiàn)入棧操作。CPU的ESP寄存器存放當(dāng)前線程的棧頂指針,EBP寄存器中保存當(dāng)前線程的棧底指針。25謝謝觀賞2019-6-9堆和棧堆(動(dòng)態(tài)申請(qǐng))25謝謝觀賞2019-6-9函數(shù)調(diào)用過程中堆棧的作用不同的語言有不同的函數(shù)調(diào)用規(guī)定,這些因素有參數(shù)的壓入規(guī)則和堆棧的平衡。windowsAPI的調(diào)用規(guī)則__stdcall前綴。參數(shù)從左到右入棧;棧由被調(diào)用者恢復(fù);ANSIC的函數(shù)調(diào)用規(guī)則__cdecl前綴參數(shù)從右到左入棧;棧由調(diào)用者恢復(fù);26謝謝觀賞2019-6-9函數(shù)調(diào)用過程中堆棧的作用不同的語言有不同的函數(shù)調(diào)用規(guī)定,這些舉例printf(“Thereare%ddogsand%dcats.\n”,m,n);“__stdcall”函數(shù)├———————┤<—函數(shù)執(zhí)行時(shí)的棧頂(ESP)、低端內(nèi)存區(qū)域│……││parameter1│├———————┤│parameter2│├———————┤│parameter3││……│├———————┤<—棧底(基地址EBP)、高端內(nèi)存區(qū)域27謝謝觀賞2019-6-9舉例printf(“Thereare%ddogsan指針與數(shù)組數(shù)組名相當(dāng)于一個(gè)不可改變的指針#include<iostream.h>//例子pointervoidf(intn[]){ inti=sizeof(n); n++; cout<<"Thesizeofnis:"<<sizeof(n)<<endl;}intmain(intargc,char*argv[]){ intm[5]={1,3,5,6,7}; int*p=m; int*q=NULL; int*qq; ++p; f(p);

cout<<"mis:"<<p[0]<<endl; cout<<"Theaddressofqis:"<<&q<<endl; cout<<"Thecontentofqis:"<<(long)q<<endl;// cout<<"Thevalueofqis:"<<*q<<endl; cout<<"Theaddressofqqis:"<<&qq<<endl; return0;}28謝謝觀賞2019-6-9指針與數(shù)組數(shù)組名相當(dāng)于一個(gè)不可改變的指針28謝謝觀賞2019引用引用相當(dāng)于別名,在聲明引用時(shí)變量名前加&

inti,j;int&ri=i;引用變量在聲明時(shí)一定要賦初值,這是因?yàn)橐玫谋举|(zhì)并不是引入一個(gè)新的變量,而是給已經(jīng)存在的變量起一個(gè)別的名字。這也正是C++中,一個(gè)內(nèi)存對(duì)象可以有多個(gè)名字的原因。引用一旦聲明,就不能用它再引用別的變量。對(duì)引用的訪問就是對(duì)它所引用的對(duì)象的訪問。29謝謝觀賞2019-6-9引用引用相當(dāng)于別名,在聲明引用時(shí)變量名前加&29謝謝觀賞20傳值與傳址int*fn(intn);int*fn(int&n);30謝謝觀賞2019-6-9傳值與傳址int*fn(intn);30謝謝觀賞2019字符串常量舉例#include“stdafx.h“//例子string#include<iostream.h>char*aa="abcde";voidfn(){ char*cc="acbcde"; intn=2; cout<<"ccis:"<<(long)cc<<endl; cout<<"nis:"<<(long)&n<<endl;}intmain(intargc,char*argv[]){ char*bb="abcde"; cout<<"Theglobaladdris:"<<(long)aa<<endl; cout<<"Thelocaleaddris:"<<(long)bb<<endl; fn(); return0;}31謝謝觀賞2019-6-9字符串常量舉例#include“stdafx.h“//例子malloc/free與new/delete的異同malloc/free是C++/C語言的標(biāo)準(zhǔn)庫(kù)函數(shù),new/delete是C++的運(yùn)算符。它們都可用于申請(qǐng)動(dòng)態(tài)內(nèi)存和釋放內(nèi)存。使用new較之使用malloc()有以下的幾個(gè)優(yōu)點(diǎn):(1)new自動(dòng)計(jì)算要分配類型的大小,不使用sizeof運(yùn)算符,比較省事,可以避免錯(cuò)誤。(2)自動(dòng)地返回正確的指針類型,不用進(jìn)行強(qiáng)制指針類型轉(zhuǎn)換。(3)可以用new對(duì)分配的對(duì)象進(jìn)行初始化。32謝謝觀賞2019-6-9malloc/free與new/delete的異同malloC++類封裝的實(shí)現(xiàn)C++的面向?qū)ο筇匦允峭ㄟ^編譯器實(shí)現(xiàn)的,因此學(xué)習(xí)C++需要學(xué)習(xí)一些它的編譯原理,所以說C++是一種“難學(xué)易用”的語言C++的訪問控制(private,protected,public)是有編譯時(shí)完成權(quán)限檢查的。編譯完成后靜態(tài)成員存儲(chǔ)到靜態(tài)數(shù)據(jù)區(qū)其他數(shù)據(jù)成員存儲(chǔ)在對(duì)象所在的動(dòng)態(tài)數(shù)據(jù)區(qū)成員函數(shù)存儲(chǔ)在代碼區(qū)。編譯器將對(duì)象的指針this作為成員函數(shù)的第一個(gè)參數(shù)。33謝謝觀賞2019-6-9C++類封裝的實(shí)現(xiàn)C++的面向?qū)ο筇匦允峭ㄟ^編譯器實(shí)現(xiàn)的,因舉例(class)#include<iostream>#include<stdlib.h>usingnamespacestd;classA{public:A(){n=5;}voidadd(){cout<<"Theaddofnis:"<<&n<<endl;cout<<"Theaddofmis:"<<&m<<endl;}private:staticintm;intn;};intA::m=15;intmain(intargc,char*argv[]){Aa;a.add();system("PAUSE"); return0;}34謝謝觀賞2019-6-9舉例(class)#include<iostre

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論