激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

C語(yǔ)言程序設計 (一)

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

C語(yǔ)言程序設計 (一)

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

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

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

課 程 設 計 鑒 定 情 況 表
小組鑒定意見(jiàn) 


                                        小組長(cháng)簽名:
                                                   年   月   日 

指導教師意見(jiàn)
 


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

 

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

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

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

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

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

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

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

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

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

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

人工智能AI程序設計語(yǔ)言簡(jiǎn)介03-18

I2C總線(xiàn)在uClinux操作系統下的驅動(dòng)程序設計11-22

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频