中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      C語言程序設(shè)計 (一)

      時間:2024-10-07 06:46:05 計算機(jī)畢業(yè)論文 我要投稿

      C語言程序設(shè)計 (一)

      課程設(shè)計的目的 通過課程設(shè)計全面掌握《C語言程序設(shè)計》關(guān)鍵知識點,掌握C語言中數(shù)組、指針、結(jié)構(gòu)體、文件等方面的基本知識。
      通過課程設(shè)計了解并掌握C語言程序設(shè)計的方法,熟悉C程序設(shè)計的開發(fā)環(huán)境及C程序的調(diào)試過程。
      培養(yǎng)學(xué)生查閱參考資料、手冊的自學(xué)能力,通過獨立思考深入鉆研有關(guān)問題,學(xué)會自己分析、解決問題的方法。 

      課程設(shè)計的任務(wù)和要求  任務(wù): 編程求出輸入的兩個正整數(shù)之和,這兩個正整數(shù)的可能達(dá)到200位。
       要求:
       輸入:
       共有兩行,第一行為第1個正整數(shù);第二行為第2個正整數(shù)。
       輸出:
       2個正整數(shù)之和。
       

      主要參與成員
        姓 名  學(xué)  號   系   別  班  級    主要作用(分工) 
             
      成果形式     設(shè)計      軟件     作品     其他: 
      完成情況及以后的拓展設(shè)想  通過用C語言編寫函數(shù)基本實現(xiàn)了大整數(shù)相加這個程序,但該程序仍存在一些不足,還可以加上一些語句使程序具有容錯功能,并且可以正確計算一個負(fù)數(shù)和一個正數(shù)相加。 

      課 程 設(shè) 計 鑒 定 情 況 表
      小組鑒定意見 


                                              小組長簽名:
                                                         年   月   日 

      指導(dǎo)教師意見
       


                                           教師簽名:
                                                    年   月  日  
       課程設(shè)計成績  優(yōu)         良        及格        不及格 
      教研室意見 

       

                                                     年      月    日 
      備注  《C語言程序設(shè)計》課程設(shè)計報告書
      作者:廖 序
      課程設(shè)計概述
      課程設(shè)計名稱
       大整數(shù)相加
      任務(wù)要求:
       編程求出輸入的兩個正整數(shù)之和,這兩個正整數(shù)的可能達(dá)到200位。
       輸入:
       共有兩行,第一行為第1個正整數(shù);第二行為第2個正整數(shù)。
       輸出:
       2個正整數(shù)之和。
      開發(fā)環(huán)境:
       C語言。C語言是目前世界上流行、使用最廣泛的高級程序設(shè)計語言。1972年,C語言在美國貝爾實驗室里問世,后來又被多次改進(jìn),并出現(xiàn)了多種版本。80年代初,美國國家標(biāo)準(zhǔn)化協(xié)會(ANSI),根據(jù)C語言問世以來各種版本對C語言的發(fā)展和擴(kuò)充,制定了ANSIC標(biāo)準(zhǔn)。
       目前,在微機(jī)上廣泛使用的C語言編譯系統(tǒng)有MicrosoftC、Turbo C 、Borland C等。這些C語言版本不僅實現(xiàn)了ANSIC標(biāo)準(zhǔn),而且在此基礎(chǔ)上各自作了一些擴(kuò)充,使之更加方便、完美。
       
       C語言的特點:
       C語言是一種結(jié)構(gòu)化語言。它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護(hù)。
       C語言的表現(xiàn)能力和處理能力極強(qiáng)。它不僅具有豐富的運算符和數(shù)據(jù)類型,便于實現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。它還可以直接訪問內(nèi)存的物理地址,進(jìn)行位(bit)一級的操作。
       由于C語言實現(xiàn)了對硬件的編程操作,因此C語言集高級語言和低級語言的功能于一體。既可用于系統(tǒng)軟件的開發(fā),也適合于應(yīng)用軟件的開發(fā)。
       此外,C語言還具有效率高,可移植性強(qiáng)等特點。因此廣泛地移植到了各類各型計算機(jī)上,從而形成了多種版本的C語言。
       參考資料
      李錚、葉艷冰、汪德俊,C語言程序設(shè)計基礎(chǔ)與應(yīng)用,清華大學(xué)出版社,2005
      [2]CSDN技術(shù)中心

      二、概要設(shè)計
       為了實現(xiàn)大整數(shù)相加這個程序,將程序劃分為了三個模塊:
      輸入數(shù)據(jù)。
      運算。
      輸出結(jié)果。

       首先定義了子函數(shù)Input()來存儲用戶輸入的兩個加數(shù),為了滿足任意位數(shù)的兩個大整數(shù)相加,在子函數(shù)Input()中嵌套調(diào)用子函數(shù)Init()使sum數(shù)組里面存放的數(shù)初始化為”0”。
       然后定義子函數(shù)Long_Add()使兩個大整數(shù)作加法運算,從后面往前面相加,附帶進(jìn)位。定義子函數(shù)Output()實現(xiàn)輸出結(jié)果。
       最后如下圖所示,在主函數(shù)main中調(diào)用Input(),Long_Add(),Output()三個子函數(shù)實現(xiàn)程序。
       
      三、詳細(xì)設(shè)計
       程序的流程圖:
                                                      四、調(diào)試過程
      第一次 測試數(shù)據(jù)a=1234567893456767,b=111111
      編譯運行后不能輸出結(jié)果,檢查函數(shù)后編譯正確。再次分析,發(fā)現(xiàn)如果直接把a(bǔ),b,sum定義為unsigned int型的話,計算出來的和的范圍只能在0~65535之間,否則就會出現(xiàn)錯誤。
      嘗試將a,b,sum存放到字符數(shù)組中,從個位開始,一位一位相加。
      第二次  測試數(shù)據(jù)a=1234567893456767,b=111111
      編譯運行后仍不能輸出結(jié)果。分析原因,在用于輸出的子函數(shù)Output()中,輸出數(shù)組字符數(shù)組sum[]前未確定和的最高非零位。
       嘗試加入for(i=0;i<Max;i++)語句來尋找和的最高非零位,再
       if(sum[i] != '0')
                           break;
              次進(jìn)行調(diào)試。
      第三次  測試數(shù)據(jù)a=99999919,b=99
               編譯運行后發(fā)現(xiàn)計算出來結(jié)果不正確。經(jīng)過分析,函數(shù)中沒有對最后
       一個進(jìn)位進(jìn)行處理。
       嘗試加入while(carry > 0)          語句,再次進(jìn)行調(diào)試。
                      {
                       tempsum = sum[i]-'0'+carry ;
                sum[i] = tempsum%10+'0';
                carry = tempsum/10;
                       i--;
                      }
      第四次  測試數(shù)據(jù)a=99999919,b=99
            編譯運行后得到正確結(jié)果。
      第五次  隨意輸入幾組數(shù)據(jù)進(jìn)行測試,結(jié)果都是正確的。程序得到實現(xiàn)。
      五、結(jié)論與體會
       通過不斷的調(diào)試、修改,本課程設(shè)計最終實現(xiàn)了200位以內(nèi)的兩個大整數(shù)相加,但程序還可以進(jìn)一步完善,程序中仍存在一些不足之處,比如缺少容錯功能,不能準(zhǔn)確計算負(fù)整數(shù)加正整數(shù),等等問題
       雖然C語言程序設(shè)計在上學(xué)期做為我們的必修課已經(jīng)學(xué)習(xí)過了,但書到用時方恨少,這次課程設(shè)計的學(xué)習(xí)程序設(shè)計中暴露出的我自身的問題更是非常明顯。
       一開始看到題目認(rèn)為非常簡單,直接將兩個數(shù)都定義為整型。編寫程序并運行后發(fā)現(xiàn)并不能達(dá)到題目的要求,計算出來的和只能小于等于65535,否則就會出現(xiàn)錯誤。分析后,將數(shù)據(jù)作為字符串來處理,用for循環(huán)語句從存數(shù)的字符數(shù)組中一位一位的取數(shù)出來,按照數(shù)位對齊,從個位開始,按位相加,逢十進(jìn)一的運算規(guī)則進(jìn)行運算。最后用字符輸出函數(shù)putchar()輸出計算出來的結(jié)果。由于程序偏大且較復(fù)雜,將程序劃分為了輸入數(shù)據(jù)、運算、輸出數(shù)據(jù)三個子程序。數(shù)次編譯調(diào)試后,最終使程序得以實現(xiàn)。
       經(jīng)過三個星期的上機(jī)實踐學(xué)習(xí),使我對C語言有了更進(jìn)一步的認(rèn)識和了解,讓我能夠進(jìn)一步的掌握和運用C語言來編寫程序。要想學(xué)好C語言要重在實踐,要通過不斷的上機(jī)操作才能更好地學(xué)習(xí)它,通過實踐,我也發(fā)現(xiàn)我的好多不足之處和薄弱環(huán)節(jié)。
       首先,基礎(chǔ)掌握不牢固,對于C語言中的許多基本語法尚沒有熟練掌握,在設(shè)計過程中仍需請教其它同學(xué),查閱課本,設(shè)計效率很低。
       其次,經(jīng)典算法掌握不牢。在完成作業(yè)的過程中還需查閱書籍和借鑒他人。
       再次,程序量過大的時候,頭緒理不清。雜亂無章,無系統(tǒng)性,不便調(diào)試和閱覽,自己也易于出錯。
       并且對C語言中經(jīng)常出現(xiàn)的錯誤也不了解,通過實踐,使我在這幾個方面的認(rèn)識有所提高。
       通過實踐的學(xué)習(xí),我認(rèn)到學(xué)好計算機(jī)要重視實踐操作,不僅僅是學(xué)習(xí)C語言,還是其它的語言,以及其它的計算機(jī)方面的知識都要重在實踐,所以后在學(xué)習(xí)過程中,我會更加注視實踐操作,使自己便好地學(xué)好計算機(jī)。
      六、源程序清單
      #include <stdio.h>
      #include <string.h>
      #define Max 1000
      char sum[Max+1];   /*和*/       
      char a[Max],b[Max];   /*兩個加數(shù)*/    
      int len1,len2;
      void Input(char a[],char b[])
      {
       int i,len;
       void Init(char a[]);   /*對Init()函數(shù)進(jìn)行聲明*/
       printf("Please enter two integer:\n");
       scanf("%s %s",a,b);
       len1=strlen(a);
       len2=strlen(b);
       Init(sum);
       len=strlen(a);
       for(i=len-1; i>=0; i--)
        sum[Max+i-len] = a[i];
      }
      void Init(char a[])
      {
       int i;
       for(i=0; i<Max; i++)
       a[i] = '0';
      return ;
      }

      void Long_Add(char sum[],char new[]) 
      {
       int i,j;
       int len;
       int tempsum;
       int carry = 0;  /*進(jìn)位*/            
       len = strlen(new);
      /*從個位開始,按位相加,逢十進(jìn)一*/
       for(i=Max-1,j=len-1; i>=0,j>=0; i--,j--)
       {
        tempsum = sum[i]-'0'+new [j]-'0'+carry;
        sum[i] = tempsum%10+'0';
        carry = tempsum/10;
       }
       while(carry > 0)  /*處理最后一個進(jìn)位*/
       {
        tempsum = sum[i]-'0'+carry ;
        sum[i] = tempsum%10+'0';
        carry = tempsum/10;
        i--;
       }
       return;
      }

      void Output(char sum[])
      {int i,n;
      /*尋找和的最高非零位*/
       for(i=0;i<Max;i++)
        if(sum[i] != '0')
         break;
      /*輸出計算出來的和*/
       n=i;
       for(n;n<Max;n++)
        putchar(sum[n]);
       return ;
      }
       int main()
      {
       Input(a,b);
       Long_Add(sum,b);
       Output(sum);
       getch();
       return 0;

      【C語言程序設(shè)計 (一)】相關(guān)文章:

      論獨立學(xué)院 C語言程序設(shè)計教學(xué)改革與實踐03-27

      多媒體課件制作-《C程序設(shè)計》03-08

      Solaris下PRO*C和OCI程序設(shè)計分析與比較03-18

      c語言畢業(yè)論文開題報告05-03

      C語言實驗課教學(xué)探討03-02

      試析中職學(xué)校的C語言教學(xué)03-20

      分枝結(jié)構(gòu)的程序設(shè)計 (一)03-07

      人工智能AI程序設(shè)計語言簡介03-18

      I2C總線在uClinux操作系統(tǒng)下的驅(qū)動程序設(shè)計11-22

      主站蜘蛛池模板: www.91久久| 伊人亚洲综合影院首页| 乌海市| 亚洲欧美日韩在线精品2021| 精品国产福利一区二区三区| 日本一区二区三区看片| 靖边县| 人妻少妇被猛烈进入中文字| 久久亚洲av午夜福利精品| 人妻av一区二区三区av免费| 精品人一区二区三区伦蜜桃免费| 精品丝袜国产在线播放| 国产一级二级三级视频| 亚洲AV乱码毛片在线播放| 延庆县| 克东县| 大英县| www.五月激情| 毛片在线啊啊| 久久久诱惑一区二区三区| 92精品国产自产在线观看48页| 亚洲国产另类久久久精品不卡| 林西县| 国产三级视频一区二区| 恩施市| 湘乡市| 通州区| 无码一区二区三区网站| 日韩人妻系列在线视频| 汨罗市| 精品中文字幕日本久久久| 博客| 亚洲五月婷婷久久综合| 国产福利97精品一区二区| 鲜城| 日本成熟妇人高潮aⅴ| 国产色婷婷亚洲99精品| 欧美综合区自拍亚洲综合| 亚洲成AV人在线观看网址| 亚洲精品一区网站在线观看| 国产喷白浆精品一区二区|