<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • C語言程序設計 (一)

    時間:2024-10-07 06:46:05 計算機畢業論文 我要投稿

    C語言程序設計 (一)

    課程設計的目的 通過課程設計全面掌握《C語言程序設計》關鍵知識點,掌握C語言中數組、指針、結構體、文件等方面的基本知識。
    通過課程設計了解并掌握C語言程序設計的方法,熟悉C程序設計的開發環境及C程序的調試過程。
    培養學生查閱參考資料、手冊的自學能力,通過獨立思考深入鉆研有關問題,學會自己分析、解決問題的方法。 

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

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

    課 程 設 計 鑒 定 情 況 表
    小組鑒定意見 


                                            小組長簽名:
                                                       年   月   日 

    指導教師意見
     


                                         教師簽名:
                                                  年   月  日  
     課程設計成績  優         良        及格        不及格 
    教研室意見 

     

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

    二、概要設計
     為了實現大整數相加這個程序,將程序劃分為了三個模塊:
    輸入數據。
    運算。
    輸出結果。

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

    論獨立學院 C語言程序設計教學改革與實踐03-27

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

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

    c語言畢業論文開題報告05-03

    C語言實驗課教學探討03-02

    試析中職學校的C語言教學03-20

    分枝結構的程序設計 (一)03-07

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

    I2C總線在uClinux操作系統下的驅動程序設計11-22

    主站蜘蛛池模板: 午夜精品久久久久久| 午夜欧美精品久久久久久久| 亚洲精品二三区| 久久国产精品国产自线拍免费| 欧美精品一区二区久久| 国内精品久久九九国产精品| 亚洲精品一品区二品区三品区| 国产福利电影一区二区三区,亚洲国模精品一区 | 欧美成人精品欧美一级乱黄码| 国产精品久久国产精品99盘 | 亚洲高清国产拍精品26U| 99精品在线免费| 99re这里只有精品国产精品| 亚洲国产一成人久久精品| 国产一在线精品一区在线观看 | 国产精品免费福利久久| 一本之道av不卡精品| 国产日韩精品无码区免费专区国产| 99麻豆久久久国产精品免费| 亚洲Av永久无码精品三区在线| 精品伦精品一区二区三区视频| 2021国产成人精品久久| 97热久久免费频精品99| 无码人妻精品中文字幕免费| 亚洲精品偷拍视频免费观看| 久久99国产精品成人欧美| 国产精品无码素人福利| 99re只有精品8中文| 欧美韩国精品另类综合| 精品国产污污免费网站| 99国产精品久久久久久久成人热| 精品一区二区三区波多野结衣| 亚洲欧美国产精品第1页| 精品91自产拍在线观看二区| 国产精品va久久久久久久| 伊人久久精品线影院| 亚洲欧美日韩精品久久| 91精品国产高清久久久久久国产嫩草 | 国产成人久久精品激情| 国产精品露脸国语对白| 国产美女久久精品香蕉69|