亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        淺談如何學(xué)習(xí)C++語言程序設(shè)計(jì)

        2009-12-31 00:00:00孟艷濤邵長海
        中國管理信息化 2009年16期

        [摘 要]C++語言程序設(shè)計(jì)是一門高效實(shí)用的程序設(shè)計(jì)語言,學(xué)習(xí)C++語言程序設(shè)計(jì),并且要實(shí)質(zhì)性地提高編程能力,有兩個(gè)關(guān)鍵因素:一個(gè)是做編程書面練習(xí),一個(gè)是上機(jī)做實(shí)驗(yàn)。

        [關(guān)鍵詞]C++語言;編程練習(xí);上機(jī)實(shí)驗(yàn)

        doi:10.3969/j.issn.1673-0194.2009.16.044

        [中圖分類號]TP311[文獻(xiàn)標(biāo)識碼]A[文章編號]1673-0194(2009)16-0128-02

        C++是一門高效實(shí)用的程序設(shè)計(jì)語言,它既可進(jìn)行過程化程序設(shè)計(jì),也可進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)。C++語言強(qiáng)調(diào)對高級抽象的支持。C++實(shí)現(xiàn)了類的封裝、數(shù)據(jù)隱藏、繼承及多態(tài),使得其代碼容易維護(hù)及高度可重用。隨著C++漸漸成為ANSI標(biāo)準(zhǔn),這種新的面向?qū)ο蟪绦蛟O(shè)計(jì)語言迅速成了程序員最廣泛使用的工具。

        學(xué)習(xí)C++語言程序設(shè)計(jì),并且要實(shí)質(zhì)性地提高編程能力,有兩個(gè)關(guān)鍵因素:一個(gè)是做編程書面練習(xí),一個(gè)是上機(jī)做實(shí)驗(yàn)。在初級程序設(shè)計(jì)的能力培養(yǎng)中,唯有多練,才能真正找到編程的感覺,才能培養(yǎng)出寶貴的編程經(jīng)驗(yàn)。

        一、做編程書面練習(xí)

        C++的難學(xué),不僅在它那廣博的語法﹑語法背后的語義﹑語義背后的深層思維﹑深層思維背后的對象模型;C++的難學(xué),還在于它提供了不同的編程思維模型,要想學(xué)好C++,只有經(jīng)常思考、大量做題。通過做題加深對概念的理解,提高程序設(shè)計(jì)和解決問題的能力。

        例如下面的問題,我們就可以用不同的方法來解答。

        分別輸入圓柱體的半徑和高,求其體積;輸入球半徑,求其表面積;輸入長方體的長、寬、高,求其體積。

        [解法一]由于其中的3個(gè)問題是相互獨(dú)立的,所以,解決方法也是依次來解決這3個(gè)問題。先輸入第一個(gè)問題的半徑和高,計(jì)算并輸出圓柱體的體積;然后輸入球半徑,計(jì)算球表面積并輸出;然后輸入長、寬、高,計(jì)算長方體的體積并輸出。

        #include <iostream.h>

        #include <math.h>

        void main()

        {

        double radius, height ;

        cout<<“請輸入圓柱體的半徑和高:\\\”;

        cin>>radius>>height;

        double volume=radius*height*M-PI;

        cout<<“該圓柱體的體積為:”<<volume<<endl;

        cout<<“\\\請輸入球半徑:\\\”;

        cin>>radius;

        double areaOfSphere=4*radius*radius*M-PI;

        cout<<“該球面的面積為:”<<areaOfSphere<<endl;

        double length, width ;

        cout<<“\\\請輸入長方體的長、寬、高:\\\”;

        cin>>length>>width>>height;

        volume=length*width*height;

        cout<<“該長方體的體積為:”<<volume<<endl;

        }

        運(yùn)行結(jié)果為:

        請輸入圓柱體的半徑和高:

        3244

        該圓柱體的體積為:141 548

        請輸入球半徑:

        30

        該球面的面積為:11 309.7

        請輸入長方體的長、寬、高:

        32 12 15

        該長方體的體積為:5 760

        [解法二] 對于一個(gè)復(fù)雜的計(jì)算問題,也可以采用分而治之的方法,即用函數(shù)調(diào)用分別完成預(yù)訂的“小任務(wù)”,返回其計(jì)算結(jié)果。當(dāng)然這些“小任務(wù)”要預(yù)先聲明,若要能運(yùn)行,還必須有其定義:

        #include <iostream.h>

        #include <math.h>

        double Cylinder(double r, double h);

        double Sphere(double r);

        double Rectangle(double l, ,double w, double h);

        void main()

        {

        double radius, height;

        cout<<“請輸入圓柱體的半徑和高:\\\”;

        cin>>radius>>height;

        double volume= Cylinder( radius, height)

        cout<<“該圓柱體的體積為:”<<volume<<endl;

        cout<<“請輸入球半徑:\\\”;

        cin>>radius;

        double areaOf Sphere= Sphere(radius);

        cout<<“該球面的面積為:”<<areaOfSphere<<endl;

        double length, width ;

        cout<<“請輸入長方體的長、寬、高:\\\”;

        cin>>length>>width>>height;

        volume= Rectangle(length, width, height)

        cout<<“該長方體的體積為:”<<volume<<endl;

        }

        double Cylinder(double r, double h)

        {

        return r*r*M-PI*h;

        }

        double Sphere(double r)

        {

        return 4*r*r*M-PI;

        }

        double Rectangle(double l, ,double w, double h)

        {

        return l*w*h;

        }

        該程序與上一個(gè)程序的功能一樣。但是分別將3個(gè)具體的計(jì)算工作挪到另外的函數(shù)中去做了。

        由此可見程序的解答可以各種各樣,越吃透程序結(jié)構(gòu)、吃透語言的內(nèi)在含義和聯(lián)系,就越能準(zhǔn)確表達(dá)解決問題的方法,編制的程序也就越簡練,對日后深入學(xué)習(xí)程序設(shè)計(jì)理論的領(lǐng)悟性也越高。

        二、上機(jī)做實(shí)驗(yàn)

        C++語言程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程,僅僅靠看書和聽課是不能掌握的,學(xué)習(xí)C++語言程序設(shè)計(jì)最重要的環(huán)節(jié)就是上機(jī)做實(shí)驗(yàn)。

        在上機(jī)實(shí)驗(yàn)方面有以下幾點(diǎn)建議:

        1.程序設(shè)計(jì)者在上機(jī)前必須準(zhǔn)備好要調(diào)試的程序,并仔細(xì)檢查, 想想可能出現(xiàn)的情況, 帶著問題上機(jī),以提高上機(jī)效率。

        2.上機(jī)調(diào)試運(yùn)行程序??紤]可能出現(xiàn)的各種情況, 分析程序, 調(diào)試程序, 看是否是預(yù)期的結(jié)果。對于初學(xué)者上機(jī)操作大致會遇到如下幾種情況:

        (1)輸入的源程序在編譯時(shí)出現(xiàn)錯誤,這時(shí)系統(tǒng)會指出某行有錯以及錯誤的原因,程序設(shè)計(jì)者就可以根據(jù)系統(tǒng)提示的“出錯信息”修改程序中的錯誤,再次運(yùn)行時(shí)會得到正確的結(jié)果。但由于C++語言語法比較自由、靈活,有時(shí)錯誤信息定位不是特別精確。例如,當(dāng)提示第5行發(fā)生錯誤時(shí),可是反復(fù)檢查第5行并沒有發(fā)現(xiàn)錯誤,就需要從第5行開始往前查找錯誤并修改。

        (2)一條語句錯誤可能會產(chǎn)生若干條錯誤信息只要修改了這條錯誤,其他錯誤會隨之消失。一般情況下,第一條錯誤信息最能反映錯誤的位置和類型,所以調(diào)試程序時(shí)務(wù)必根據(jù)第一條錯誤信息進(jìn)行修改,修改后,立即運(yùn)行程序,如果還有很多錯誤,要一個(gè)一個(gè)地修改,即,每修改一處錯誤要運(yùn)行一次程序。

        (3)程序設(shè)計(jì)者經(jīng)常會遇到輸入到計(jì)算機(jī)中的源程序在通過編譯后,運(yùn)行時(shí)卻得不到正確的結(jié)果,這就要求程序設(shè)計(jì)者從源程序中查找錯誤并進(jìn)行修改,再運(yùn)行直到正確為止。

        例如:

        if(n>0)

        if(a>b)z=a;

        elsez=b;

        表達(dá)的是還是

        if(n>0){if(n>0){

        if(a>b)z=a;if(a>b)z=a;

        elsez=b;}

        }elsez=b;

        答案是前者。因?yàn)樵贑++中從遇到的第一個(gè)else開始,else總與離它最近的if 配對。如果程序設(shè)計(jì)者要表達(dá)的是后者的意思就會出現(xiàn)上面說的問題:可以通過編譯,但得不到正確的結(jié)果。程序設(shè)計(jì)者就需要認(rèn)真檢查源程序,做出正確的修改:

        程序設(shè)計(jì)者要想表達(dá)的是后者的意思,則一定要用{}。但在if語句的else前嵌套另一個(gè)if語句容易使所表達(dá)的邏輯關(guān)系難于理解,應(yīng)加以避免。改成下面這種方式會更好一些:

        把嵌套位置改為else之后,將條件n>0改成n<=0

        if(n<=0)

        z=b;

        else

        if(a>b) z=a;

        3.整理上機(jī)實(shí)驗(yàn)結(jié)果。上機(jī)調(diào)試程序時(shí)要帶一個(gè)記錄本,記下英文錯誤提示信息和解決該錯誤問題的方法,積累程序調(diào)試經(jīng)驗(yàn),以便以后進(jìn)行程序設(shè)計(jì)時(shí)不再出現(xiàn)類似的錯誤。如果程序沒有通過,必須認(rèn)真分析程序和查找原因,做出正確的判斷或仔細(xì)地修改源程序,之后再重新運(yùn)行源程序直到程序正確為止。

        總之,要想真正學(xué)好C++語言唯一的方法就是編寫程序并上機(jī)調(diào)試,在這個(gè)過程中所學(xué)到的知識會比從書本上學(xué)到的多得多。

        主要參考文獻(xiàn)

        [1] 錢能. C++程序設(shè)計(jì)教程[M].第2版. 北京: 清華大學(xué)出版社, 2006.

        [2] 錢能. C++程序設(shè)計(jì)習(xí)題及解答[M]. 北京: 清華大學(xué)出版社, 1999.

        [3] 李寧. C++語言程序設(shè)計(jì)[M]. 北京: 中央廣播電視大學(xué)出版社,2000.

        a级黑人大硬长爽猛出猛进 | 亚洲伊人成综合人影院| 久久久人妻精品一区bav| 熟女体下毛荫荫黑森林| 国产精品爽黄69天堂a| 91亚洲无码在线观看| 在线视频一区二区三区中文字幕| 狠狠爱婷婷网五月天久久| 欧美大屁股xxxx高跟欧美黑人| 国产精品免费久久久久影院| 日韩人妻无码中文字幕一区| 尤物蜜桃视频一区二区三区| 天天爽夜夜爽人人爽| 国产精品亚洲成在人线| 久久久久久人妻一区精品| 人妻少妇被粗大爽视频| 97久久综合区小说区图片区| 波多野结衣aⅴ在线| 国产一区二区三区观看视频| 风骚人妻一区二区三区| 久久亚洲av无码西西人体| 精品人无码一区二区三区 | 国产中文aⅴ在线| 蜜臀精品一区二区三区| 久久精品国产99久久久| 亚洲老妇色熟女老太| 制服无码在线第一页| 日本黄色影院一区二区免费看 | 国产精品高清视亚洲乱码| 日日婷婷夜日日天干| 精品囯产成人国产在线观看| 在线观看免费视频发布白白色| 日本精品久久久久中文字幕| 亚洲精品久久无码av片软件| 亚洲av综合色区在线观看| 国产精品国产av一区二区三区| 亚洲色成人网站www永久四虎| 亚洲色成人网一二三区| 日本免费一区二区在线| 久久久中文久久久无码| 日韩精品中文字幕无码专区|