簡(jiǎn)單的一元多項(xiàng)式計(jì)算器程序_第1頁(yè)
簡(jiǎn)單的一元多項(xiàng)式計(jì)算器程序_第2頁(yè)
簡(jiǎn)單的一元多項(xiàng)式計(jì)算器程序_第3頁(yè)
簡(jiǎn)單的一元多項(xiàng)式計(jì)算器程序_第4頁(yè)
簡(jiǎn)單的一元多項(xiàng)式計(jì)算器程序_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、I簡(jiǎn)單的一元多項(xiàng)式計(jì)算器程序朱琳摘要摘要.21. 緒論緒論.22. 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì).22.1 功能需求.22.2 數(shù)據(jù)需求.32.3 性能需求.33. 總體設(shè)計(jì)總體設(shè)計(jì).33.1 功能模塊設(shè)計(jì).33.2 系統(tǒng)設(shè)計(jì)方案.44. 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì).44.1 輸入并建立模塊.44.2 輸出模塊.64.3 相加模塊.64.4 相減模塊.85. 調(diào)試與測(cè)試調(diào)試與測(cè)試.95.1 調(diào)試.95.2 測(cè)試.96. 結(jié)論結(jié)論.9結(jié)束語(yǔ)結(jié)束語(yǔ).9參考文獻(xiàn)參考文獻(xiàn).10附錄附錄 2源程序源程序.142 摘要摘要計(jì)算器是人們生活中必不可少的簡(jiǎn)單程序。在我們的學(xué)習(xí)生活中經(jīng)常會(huì)用到計(jì)算器來(lái)進(jìn)行簡(jiǎn)單的運(yùn)算。因此如何編寫一個(gè)

2、簡(jiǎn)單的一元多項(xiàng)式計(jì)算器程序也是我們所應(yīng)該掌握的。本系統(tǒng)使用的 C 語(yǔ)言作為程序開(kāi)發(fā)的語(yǔ)言,開(kāi)發(fā)設(shè)計(jì)一個(gè)一元多項(xiàng)式的和差計(jì)算程序?qū)崿F(xiàn)輸入并建立多項(xiàng)式;輸出多項(xiàng)式;兩個(gè)多項(xiàng)式相加,建立并輸出和多項(xiàng)式;兩個(gè)多項(xiàng)式相減,建立并輸出差多項(xiàng)式。本文從分析課題的題目背景、題目意義、題目要求等出發(fā),分別從需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、測(cè)試等各個(gè)方面詳細(xì)介紹了系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程,最后對(duì)系統(tǒng)的完成情況進(jìn)行了總結(jié)。關(guān)鍵詞:計(jì)算器;系數(shù);指數(shù);一元多項(xiàng)式;關(guān)鍵詞:計(jì)算器;系數(shù);指數(shù);一元多項(xiàng)式;1. 緒論緒論計(jì)算器是人們生活中必不可少的簡(jiǎn)單工具。在我們的學(xué)習(xí)生活中經(jīng)常會(huì)用到計(jì)算器來(lái)進(jìn)行簡(jiǎn)單的運(yùn)算。因此如何編寫一個(gè)簡(jiǎn)

3、單的一元多項(xiàng)式計(jì)算器也是我們所應(yīng)該掌握的。本系統(tǒng)使用的 C 語(yǔ)言作為程序開(kāi)發(fā)的語(yǔ)言,開(kāi)發(fā)設(shè)計(jì)一個(gè)一元多項(xiàng)式的和差計(jì)算程序?qū)崿F(xiàn)輸入并建立多項(xiàng)式;輸出多項(xiàng)式;兩個(gè)多項(xiàng)式相加,建立并輸出和多項(xiàng)式;兩個(gè)多項(xiàng)式相減,建立并輸出差多項(xiàng)式。根據(jù)課程設(shè)計(jì)任務(wù)書要求,本系統(tǒng)開(kāi)發(fā)主要完成以下功能。 (1)能夠?qū)崿F(xiàn)輸入并建立多項(xiàng)式;(2)能夠?qū)崿F(xiàn)輸出多項(xiàng)式;(3)能夠?qū)崿F(xiàn)兩個(gè)多項(xiàng)式相加,建立并輸出和多項(xiàng)式;(4)能夠?qū)崿F(xiàn)兩個(gè)多項(xiàng)式相減,建立并輸出差多項(xiàng)式。2. 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)2.1 功能需求功能需求本系統(tǒng)主要是一個(gè)簡(jiǎn)單的一元多項(xiàng)式計(jì)算器程序系統(tǒng)。本程序需要設(shè)計(jì)一個(gè)一元多項(xiàng)式的和,差計(jì)算程序。多項(xiàng)式的每一項(xiàng)用數(shù)組表

4、示,每項(xiàng)包括一個(gè)系數(shù)和一個(gè)指數(shù)(一個(gè)數(shù)組存系數(shù),一個(gè)數(shù)組存指數(shù)) 。32.2 數(shù)據(jù)需求數(shù)據(jù)需求需要向系統(tǒng)輸入運(yùn)算符,所需要運(yùn)算的數(shù)據(jù)。2.3 性能需求性能需求在運(yùn)行本程序時(shí)只要按照正確的操作方法不會(huì)出現(xiàn)無(wú)法運(yùn)行的情況,系統(tǒng)穩(wěn)定性好,安全,可靠。3. 總體設(shè)計(jì)總體設(shè)計(jì) 簡(jiǎn)單一元多項(xiàng)式計(jì)算程序 輸 入 并 建 立 模 塊輸 出 模 塊相 減 模 塊相 加 模 塊圖圖 1 1 功能模塊圖功能模塊圖3.1 功能模塊設(shè)計(jì)功能模塊設(shè)計(jì)根據(jù)分析整個(gè)系統(tǒng)主要?jiǎng)澐譃?4 個(gè)功能模塊,分別執(zhí)行要求該系統(tǒng)中的功能。輸入并建立模塊,輸出模塊,相加模塊,相減模塊。需要有功能模塊圖如圖 1 所示。(1)輸入并建立模塊能夠

5、實(shí)現(xiàn)輸入并建立多項(xiàng)式子模塊。4(2)輸出模塊能夠?qū)崿F(xiàn)輸出多項(xiàng)式子模塊。(3) 相加模塊能夠?qū)崿F(xiàn)兩個(gè)多項(xiàng)式相加,建立并輸出和多項(xiàng)式子模塊。(4) 相減模塊能夠?qū)崿F(xiàn)兩個(gè)多項(xiàng)式相減,建立并輸出差多項(xiàng)式子模塊。3.2 系統(tǒng)設(shè)計(jì)方案系統(tǒng)設(shè)計(jì)方案根據(jù)分析整個(gè)系統(tǒng)設(shè)計(jì)一個(gè)總菜單,分別執(zhí)行要求的功能.1 輸入并建立多項(xiàng)式;2輸出多項(xiàng)式;3 兩個(gè)多項(xiàng)式相加,建立并輸出和多項(xiàng)式;4 兩個(gè)多項(xiàng)式相減,建立并輸出差多項(xiàng)式。(1)建立結(jié)構(gòu)體如下:typedef struct PNodeint coef; /系數(shù) int expn; /指數(shù) struct PNode *next; /指針域 (2)函數(shù)如下: void C

6、reatPoly() /一元多項(xiàng)式的創(chuàng)建操作,其中 n 為一元多項(xiàng)式的項(xiàng)數(shù)void OutputPoly() /一元多項(xiàng)式的輸出操作void SubtractPoly() /一元多項(xiàng)式的相減操作,即實(shí)現(xiàn) Hc=Ha-Hbvoid SubtractPoly2( ) /一元多項(xiàng)式的相減操作,即實(shí)現(xiàn) Hc=Ha+Hb4. 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 4.1 輸入并建立模塊輸入并建立模塊 輸入所要求的一元多項(xiàng)式,首先輸入項(xiàng)數(shù),在依次輸入第一個(gè)多項(xiàng)式的第一個(gè)系數(shù),項(xiàng)數(shù),回車輸出一元多項(xiàng)式,程序流程圖如圖 25開(kāi)始inti,coef,expn;i=1inext;printf(%+dX%d,p-coef,p-expn

7、);printf(%dX%d,p-coef,p-expn);結(jié)束YNYN圖圖 3 輸出流程圖輸出流程圖 4.3 相加模塊相加模塊輸入兩個(gè)多項(xiàng)式,相加運(yùn)算并求和。按提示輸入并建立第一個(gè)多項(xiàng)式,再輸入并建立第二個(gè)多項(xiàng)式,進(jìn)行加法運(yùn)算并求和;。最后,輸出運(yùn)算結(jié)果。程序流程如圖 4 所示;7開(kāi)始pa&pbpapbpa-expnexpns=(POLY)malloc(sizeof(struct PNode); s-coef=pb-coefs-expn=pb-expn;s-next=NULL;pc-next=s;pc=s; pb=pb-next; s=(POLY)malloc(sizeof(stru

8、ct PNode);s-coef=pa-coef;s-expn=pa-expn;s-next=NULL; pc-next=s; pc=spa=pa-next; ; YNYN結(jié)束s=(POLY)malloc(sizeof(struct PNode); s-coef=pa-coef;s-expn=pa-expn;s-next=NULL; pc-next=s; pc=s; pa=pa-next; s=(POLY)malloc(sizeof(struct PNode);s-coef=pb-coef;s-expn=pb-expn; s-next=NULL; pc-next=s; pc=s; pb=pb-

9、next; YNint x; POLY pa,pb,pc,s; Hc=(POLY)malloc(sizeof(struct PNode); Hc-next=NULL;pc=Hc;pa=Ha-next; pb=Hb-next; pa-expnpb-expnYx=pa-coef+pb-coefNx!=0 s=(POLY)malloc(sizeof(struct PNode);s-coef=x; s-expn=pa-expn; s-next=NULL;pc-next=s;pc=s; Y pa=pa-next; pb=pb-next;NNNY 圖圖 4 相加流程圖相加流程圖84.4 相減模塊相減模塊輸

10、入兩個(gè)多項(xiàng)式,相減運(yùn)算并求差。按提示輸入并建立第一個(gè)多項(xiàng)式,再輸入并建立第二個(gè)多項(xiàng)式,進(jìn)行減法運(yùn)算并求差;。最后,輸出運(yùn)算結(jié)果。程序流程如圖 5 所示開(kāi)始pa&pbpapbpa-expnexpns=(POLY)malloc(sizeof(struct PNode); s-coef=pb-coefs-expn=pb-expn;s-next=NULL;pc-next=s;pc=s; pb=pb-next; s=(POLY)malloc(sizeof(struct PNode);s-coef=pa-coef;s-expn=pa-expn;s-next=NULL; pc-next=s; pc=

11、spa=pa-next; ; YNYN結(jié)束s=(POLY)malloc(sizeof(struct PNode); s-coef=pa-coef;s-expn=pa-expn;s-next=NULL; pc-next=s; pc=s; pa=pa-next; s=(POLY)malloc(sizeof(struct PNode);s-coef=pb-coef;s-expn=pb-expn; s-next=NULL; pc-next=s; pc=s; pb=pb-next; YNint x; POLY pa,pb,pc,s; Hc=(POLY)malloc(sizeof(struct PNode

12、); Hc-next=NULL;pc=Hc;pa=Ha-next; pb=Hb-next; pa-expnpb-expnYNx!=0 s=(POLY)malloc(sizeof(struct PNode);s-coef=x; s-expn=pa-expn; s-next=NULL;pc-next=s;pc=s; Y pa=pa-next; pb=pb-next;NNNYx=pa-coef-pb-coef 圖圖 5 相減流程圖相減流程圖95. 調(diào)試調(diào)試與測(cè)試與測(cè)試5.1 調(diào)試調(diào)試(1)運(yùn)行完程序一次有錯(cuò)誤提醒原因是上次運(yùn)行程序后沒(méi)有關(guān)閉操作界面當(dāng)點(diǎn)擊編譯時(shí)會(huì)有一個(gè)錯(cuò)誤提示,解決方法:將上一次運(yùn)行

13、時(shí)的操作界面關(guān)閉。其原因是指針指向的位置出現(xiàn)錯(cuò)誤導(dǎo)致程序傳參錯(cuò)亂,無(wú)法運(yùn)行,解決辦法:使程序進(jìn)入調(diào)試狀態(tài)在傳參,出現(xiàn)錯(cuò)誤的位置一句句查找傳遞的參數(shù)是否是你所希望的,如若不是就加以修正。5.2 測(cè)試測(cè)試測(cè)試數(shù)據(jù)過(guò)程如下。一元多項(xiàng)式計(jì)算器設(shè)計(jì)本系統(tǒng)需要有(1)能夠?qū)崿F(xiàn)輸入并建立多項(xiàng)式;(2)能夠?qū)崿F(xiàn)輸出多項(xiàng)式;(3)能夠?qū)崿F(xiàn)兩個(gè)多項(xiàng)式相加,建立并輸出和多項(xiàng)式;(4)能夠?qū)崿F(xiàn)兩個(gè)多項(xiàng)式相減,建立并輸出差多項(xiàng)式的功能。本系統(tǒng)全部實(shí)現(xiàn)6. 結(jié)論結(jié)論課程設(shè)計(jì)順利完成,任務(wù)書中所提出的要求全部實(shí)現(xiàn),實(shí)現(xiàn)輸入并建立多項(xiàng)式;輸出多項(xiàng)式;兩個(gè)多項(xiàng)式相加,建立并輸出和多項(xiàng)式;兩個(gè)多項(xiàng)式相減,建立并輸出差多項(xiàng)式。不過(guò)

14、這個(gè)程序還有些不夠完善。結(jié)束語(yǔ)結(jié)束語(yǔ)為期兩個(gè)星期的計(jì)算機(jī)綜合訓(xùn)練終于順利完成,在這期間真正的學(xué)到了一些經(jīng)驗(yàn),能夠熟練的掌握一些 C 語(yǔ)言的編程思路,能夠熟練的運(yùn)用學(xué)到的函數(shù),學(xué)會(huì)了在曾經(jīng)編寫過(guò)的函數(shù)上加以修改實(shí)現(xiàn)了我期望實(shí)現(xiàn)的功能,知道學(xué)習(xí)編程必須親手將每一個(gè)字符敲入電腦中這樣才能真正的學(xué)到課本或一些理論中學(xué)不到的知識(shí),這才達(dá)到了實(shí)踐的目的,當(dāng)程序編寫完成而且能夠正常運(yùn)行心里一種說(shuō)不出的自豪感,雖然這對(duì)于一名程序員來(lái)說(shuō)可能什么也不是,但這是我10編程的開(kāi)始,如果希望在編程這方面能夠有所發(fā)展我所要走過(guò)的路還很長(zhǎng),還需要不斷的努力學(xué)習(xí).參考文獻(xiàn)參考文獻(xiàn) 1 譚浩強(qiáng). C 語(yǔ)言程序設(shè)計(jì)(第三版).北

15、京:清華大學(xué)出版社,2005.72 高濤,陸麗娜. C 語(yǔ)言計(jì)程序設(shè)計(jì).西安交通大學(xué)出版社,2007.211附錄附錄 1 1用戶手冊(cè)用戶手冊(cè)1.點(diǎn)擊運(yùn)行,首先出現(xiàn)的是創(chuàng)建第一個(gè)多項(xiàng)式,按提示進(jìn)行操作,如圖 6 所示. 圖圖 6 輸入第一個(gè)多項(xiàng)式界面輸入第一個(gè)多項(xiàng)式界面2.創(chuàng)建完成第一個(gè)多項(xiàng)式,開(kāi)始創(chuàng)建第二個(gè)多項(xiàng)式,如圖 7 所示. 圖圖 7 輸入第二個(gè)多項(xiàng)式界面輸入第二個(gè)多項(xiàng)式界面3.創(chuàng)建完成第二個(gè)多項(xiàng)式,如圖 8 所示.12 圖圖 8 創(chuàng)建完成界面創(chuàng)建完成界面4.兩個(gè)多項(xiàng)式相減,輸出差多項(xiàng)式,如圖 9 所示. 圖圖 9 相減界面相減界面5.兩個(gè)多項(xiàng)式相加,輸出和多項(xiàng)式,如圖 10 所示.13

16、 圖圖 10 相加界面相加界面14附錄附錄 2源程序源程序#include stdio.h#include string.h#include malloc.htypedef struct PNodeint coef; int expn; struct PNode *next; *POLY; /POLY 為一元多項(xiàng)式的類型 void CreatPoly(POLY &H,int n) /一元多項(xiàng)式的創(chuàng)建操作,其中 n 為一元多項(xiàng)式的項(xiàng)數(shù) int i,coef,expn; H=(POLY)malloc(sizeof(PNode); POLY p,s; H-next=NULL; p=H; fo

17、r(i=1;icoef=coef;s-expn=expn; s-next=NULL;p-next=s;p=s; void OutputPoly(POLY H) /一元多項(xiàng)式的輸出操作 int flag=1; /flag 用來(lái)是否為第一項(xiàng)的標(biāo)識(shí) POLY p; p=H-next;15 while(p) if(flag) printf(%dX%d,p-coef,p-expn); flag=0; else printf(%+dX%d,p-coef,p-expn); p=p-next; printf(n); void SubtractPoly2(POLY Ha, POLY Hb, POLY &

18、Hc) int x; POLY pa,pb,pc,s; Hc=(POLY)malloc(sizeof(struct PNode); Hc-next=NULL; pc=Hc; pa=Ha-next; pb=Hb-next; while(pa&pb) if(pa-expnexpn) s=(POLY)malloc(sizeof(struct PNode); s-coef=pb-coef; s-expn=pb-expn; s-next=NULL; pc-next=s; pc=s; pb=pb-next; else if(pa-expnpb-expn) s=(POLY)malloc(sizeof

19、(struct PNode); s-coef=pa-coef;16 s-expn=pa-expn; s-next=NULL; pc-next=s; pc=s; pa=pa-next; else x=pa-coef+pb-coef; if(x!=0) s=(POLY)malloc(sizeof(struct PNode); s-coef=x; s-expn=pa-expn; s-next=NULL; pc-next=s; pc=s; pa=pa-next; pb=pb-next; while(pa) s=(POLY)malloc(sizeof(struct PNode); s-coef=pa-c

20、oef; s-expn=pa-expn; s-next=NULL; pc-next=s; pc=s; pa=pa-next; while(pb) s=(POLY)malloc(sizeof(struct PNode); s-coef=pb-coef; s-expn=pb-expn; s-next=NULL;17 pc-next=s; pc=s; pb=pb-next; void SubtractPoly(POLY Ha, POLY Hb, POLY &Hc) /一元多項(xiàng)式的相減操作,即實(shí)現(xiàn)Hc=Ha-Hb int x; POLY pa,pb,pc,s; Hc=(POLY)malloc(

21、sizeof(struct PNode); Hc-next=NULL; pc=Hc; pa=Ha-next; pb=Hb-next; while(pa&pb) if(pa-expnexpn) s=(POLY)malloc(sizeof(struct PNode); s-coef=pb-coef; s-expn=pb-expn; s-next=NULL; pc-next=s; pc=s; pb=pb-next; else if(pa-expnpb-expn) s=(POLY)malloc(sizeof(struct PNode); s-coef=pa-coef; s-expn=pa-expn; s-next=NULL; pc-next=s; pc=s; pa=pa-next; else 18 x=pa-coef-pb-coef; if(x!=0) s=(POLY)malloc(sizeof(struct PNode); s-coef=x; s-expn=pa-expn; s-next=NUL

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論