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

下載本文檔

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

文檔簡(jiǎn)介

1、西安文理學(xué)院軟件學(xué)院課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱: 程序語(yǔ)言課程設(shè)計(jì) 設(shè)計(jì)題目: 一元多項(xiàng)式簡(jiǎn)單的計(jì)算器 學(xué)生學(xué)號(hào): 1402120135 專業(yè)班級(jí): 軟件學(xué)院一班 學(xué)生姓名: 張文東 學(xué)生成績(jī): 指導(dǎo)教師(職稱): 袁溪(講師) 課題工作時(shí)間: 2013.12.9 至 2013.12.23 軟件學(xué)院課程設(shè)計(jì)任務(wù)書學(xué)生姓名張文東學(xué)號(hào)1402120135專業(yè)班級(jí)1班設(shè)計(jì)題目一元多項(xiàng)式簡(jiǎn)單的計(jì)算器內(nèi)容概要: 設(shè)計(jì)或開發(fā)環(huán)境:Microsoft Visual Studio 2010 關(guān)鍵技術(shù):C語(yǔ)言 主要功能: 1建立一元多次多項(xiàng)式 2多項(xiàng)式相加 3多項(xiàng)式相減 4多項(xiàng)式相乘文獻(xiàn)資料:1譚浩強(qiáng)C語(yǔ)言程序設(shè)計(jì)(

2、第三版) 清華大學(xué)出版社 20072姜敏芝 余健 C語(yǔ)言程序設(shè)計(jì)案例精編 清華大學(xué)出版社 20083李健學(xué) 余健 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)案例精編 20074唐國(guó)民 王國(guó)均數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版) 清華大學(xué)出版社5網(wǎng)上相關(guān)文獻(xiàn)資料設(shè)計(jì)要求:A.功能要求1)輸入并建立多項(xiàng)式;2)輸出多項(xiàng)式;3)兩個(gè)多項(xiàng)式相加,輸出和多項(xiàng)式;4)兩個(gè)多項(xiàng)式相減,輸出差多項(xiàng)式。B.文檔格式*.c工作期限:設(shè)計(jì)工作自2013年12月9日至2013年12月23日止。指導(dǎo)教師: 院長(zhǎng): 日 期:2013年12月9日軟件學(xué)院課程設(shè)計(jì)進(jìn)度安排表學(xué)生姓名: 張文東 學(xué)號(hào): 1402120135 專業(yè): 軟件工程 班級(jí): 一班 起止日期內(nèi)

3、容備注12月9日下達(dá)任務(wù)書,制定進(jìn)度安排計(jì)劃 12月10日12月12日系統(tǒng)整體設(shè)計(jì)和詳細(xì)設(shè)計(jì)12月13日12月17日系統(tǒng)編碼實(shí)現(xiàn)12月18日12月19日系統(tǒng)測(cè)試 12月20日12月23日撰寫課程設(shè)計(jì)報(bào)告 12月25日演示軟件和答辯 指導(dǎo)教師簽名: 2013年12月11日成績(jī)?cè)u(píng)定表學(xué)生姓名: 張文東 學(xué)號(hào): 1402120135 專業(yè): 軟件工程 班級(jí): 一班 類別合計(jì)分值各項(xiàng)分值評(píng)分標(biāo)準(zhǔn)實(shí)際得分合計(jì)得分平時(shí)表現(xiàn)1010按時(shí)參加設(shè)計(jì)指導(dǎo),無違反紀(jì)律情況。完成情況3020按設(shè)計(jì)任務(wù)書的要求完成了全部任務(wù),能完整演示其設(shè)計(jì)內(nèi)容,符合要求。10能對(duì)其設(shè)計(jì)內(nèi)容進(jìn)行詳細(xì)、完整的介紹,并能就指導(dǎo)教師提出的問

4、題進(jìn)行正確的回答。報(bào)告質(zhì)量3510報(bào)告文字通順,內(nèi)容翔實(shí),論述充分、完整,立論正確,結(jié)構(gòu)嚴(yán)謹(jǐn)合理;報(bào)告字?jǐn)?shù)符合相關(guān)要求,工整規(guī)范,整齊劃一。5課題背景介紹清楚,綜述分析充分。5設(shè)計(jì)方案合理、可行,論證嚴(yán)謹(jǐn),邏輯性強(qiáng),具有說服力。5符號(hào)統(tǒng)一;圖表完備、符合規(guī)范要求。5能對(duì)整個(gè)設(shè)計(jì)過程進(jìn)行全面的總結(jié),得出有價(jià)值的結(jié)論或結(jié)果。5參考文獻(xiàn)數(shù)量在2篇以上,格式符合要求,在正文中正確引用。答辯情況2510在規(guī)定時(shí)間內(nèi)能就所設(shè)計(jì)的內(nèi)容進(jìn)行闡述,言簡(jiǎn)意明,重點(diǎn)突出,論點(diǎn)正確,條理清晰。15在規(guī)定時(shí)間內(nèi)能準(zhǔn)確、完整、流利地回答教師所提出的問題。總評(píng)成績(jī): 分 指導(dǎo)教師: (簽字) 日期:2013 年12月 25

5、 日摘 要 摘要:隨著科技的不斷發(fā)展,人們生活水平的不斷提高,方便、高效、快捷成為了人們所追求的主要目標(biāo),面對(duì)一些復(fù)雜的技術(shù)總會(huì)花費(fèi)大量時(shí)間進(jìn)行計(jì)算,因此有一個(gè)多項(xiàng)式功能的計(jì)算器是很有必要的。 開發(fā)這樣一個(gè)程序需要用到C結(jié)點(diǎn)、鏈表方面的知識(shí),系統(tǒng)分為多項(xiàng)式的輸入輸出、多項(xiàng)式的加法、多項(xiàng)式的減法、多項(xiàng)式的乘法四個(gè)模塊。 該報(bào)告主要是通過系統(tǒng)的程序段、程序設(shè)計(jì)的要求以及計(jì)算器的功能來介紹該計(jì)算器實(shí)現(xiàn)過程。關(guān)鍵字:多項(xiàng)式;C語(yǔ)言;結(jié)點(diǎn);鏈表西安文理學(xué)院軟件學(xué)院 課程設(shè)計(jì)報(bào)告目 錄目 錄1第一章 課題背景21.1 緒論21.2 主要內(nèi)容2第二章 設(shè)計(jì)簡(jiǎn)介及設(shè)計(jì)方案論述32.1 系統(tǒng)分析32.2 總體設(shè)

6、計(jì)3第三章 詳細(xì)設(shè)計(jì)53.1 建立多項(xiàng)式53.2 多項(xiàng)式相加73.3 多項(xiàng)式相減93.4 多項(xiàng)式相乘10主要代碼如下:12主要代碼如下:14第四章 設(shè)計(jì)結(jié)果及分析174.1 調(diào)試與測(cè)試174.2 運(yùn)行結(jié)果194.3 結(jié)果分析21總結(jié)22參考文獻(xiàn)23附錄24第一章 課題背景1.1 緒論隨著科技的進(jìn)步,社會(huì)的不斷發(fā)展,計(jì)算器已普遍應(yīng)用于各行各業(yè),為了幫助人們提高工作效率,節(jié)約運(yùn)算時(shí)間,設(shè)計(jì)一個(gè)多功能的計(jì)算器是很有必要的,在此設(shè)計(jì)一個(gè)多項(xiàng)式計(jì)算器可以很方便的對(duì)多項(xiàng)式相加、相減、相乘,對(duì)提高人們的運(yùn)算效率很有幫助。一個(gè)計(jì)算器需要用到C多方面的知識(shí),要實(shí)現(xiàn)多項(xiàng)式的建立和輸入輸出等功能,必須要熟練的掌握C

7、,在此尤其是鏈表和結(jié)點(diǎn)。1.2 主要內(nèi)容用C語(yǔ)言實(shí)現(xiàn)多項(xiàng)式的輸入輸出和多項(xiàng)式的加減乘等運(yùn)算,其中主要用到鏈表和結(jié)點(diǎn)的相關(guān)知識(shí),具體功能如下:1)輸入并建立多項(xiàng)式;2)輸出多項(xiàng)式;3)兩個(gè)多項(xiàng)式相加,輸出和多項(xiàng)式;4)兩個(gè)多項(xiàng)式相減,輸出差多項(xiàng)式。第二章 設(shè)計(jì)簡(jiǎn)介及設(shè)計(jì)方案論述2.1 系統(tǒng)分析2.1.1 功能需求多項(xiàng)式的建立 多項(xiàng)式的輸入輸出 多項(xiàng)式的加減乘等運(yùn)算2.1.2 數(shù)據(jù)需求在輸入過程中,首先要給定輸入的數(shù)據(jù),數(shù)據(jù)只能是數(shù)字,不能是字母或其他,不能連續(xù)輸入數(shù)據(jù),必須要求以空格分開要輸入的數(shù)據(jù)。2.1.3 系統(tǒng)需求系統(tǒng)必須安全可靠,不會(huì)出現(xiàn)無故死機(jī)狀態(tài),運(yùn)算速度要快。2.2 總體設(shè)計(jì)2.2

8、.1 系統(tǒng)設(shè)計(jì)方案采用菜單設(shè)計(jì),選擇你需要的功能,用單鏈表儲(chǔ)存你輸入的數(shù)據(jù)。(1) 菜單菜單包括計(jì)算器加減乘等功能的選擇(2) 文件保存方式運(yùn)用帶頭節(jié)點(diǎn)的單鏈表儲(chǔ)存多項(xiàng)式(3) 抽象數(shù)據(jù)類型定義主要定義多項(xiàng)式的系數(shù)和指數(shù)。系數(shù)項(xiàng)用浮點(diǎn)類型定義,指數(shù)項(xiàng)用整型定義(4) 存儲(chǔ)結(jié)構(gòu)采用鏈?zhǔn)浇Y(jié)構(gòu),建立鏈表儲(chǔ)存輸入的多項(xiàng)式(5) 算法設(shè)計(jì)運(yùn)用鏈表知識(shí),建立鏈表,給鏈表分配一定量的存儲(chǔ)空間,查找鏈表,插入鏈表和鏈表的連接2.2.2 功能模塊設(shè)計(jì)一元多項(xiàng)式計(jì)算器建立多項(xiàng)式 多項(xiàng)式相加 多項(xiàng)式相減 多項(xiàng)式相乘將輸入的多項(xiàng)式相乘將輸入的多項(xiàng)式相減將輸入的多項(xiàng)式相加建立一元多項(xiàng)式輸出一元多項(xiàng)式圖 2-1 功能模塊

9、設(shè)計(jì)第三章 詳細(xì)設(shè)計(jì)一元多項(xiàng)式計(jì)算器主要分為4大部分,多項(xiàng)式建立,多項(xiàng)式加法,多項(xiàng)式減法和多項(xiàng)式乘法。多項(xiàng)式的建立主要需要建立新鏈表,并分配給這個(gè)新鏈表一定量的存儲(chǔ)空間,分配的存儲(chǔ)空間內(nèi)進(jìn)行運(yùn)算;多項(xiàng)式加減乘等運(yùn)算主要運(yùn)用了鏈表的建立,鏈表存儲(chǔ)空間分配,鏈表的查找,插入與連接進(jìn)行計(jì)算。3.1 建立多項(xiàng)式此階段是多項(xiàng)式的建立,可以對(duì)計(jì)算器進(jìn)行輸入輸出等功能。主要運(yùn)用鏈表方面的知識(shí)如圖 3-1所示:開始PLOY *head,*inpt;NX!=0Yinpt=(PLOY *)malloc(sizeof(PLOY)Return head結(jié)束圖 3-1 多項(xiàng)式的建立主要代碼如下:PLOY *creat(

10、char ch)/建立多項(xiàng)式PLOY *head,*inpt;float x;int y;head=(PLOY *)malloc(sizeof(PLOY); head-next=NULL;printf(請(qǐng)輸入一元多項(xiàng)式%c:(格式是:系數(shù) 指數(shù);以0 0 結(jié)束!)n,ch);scanf(%f %d,&x,&y);while(x!=0)inpt=(PLOY *)malloc(sizeof(PLOY); inpt-coef=x;inpt-expn=y;inpt-next=NULL;insert(head,inpt); printf(請(qǐng)輸入一元多項(xiàng)式%c:(以0 0 結(jié)束!)n,ch);scanf(

11、%f %d,&x,&y);return head;3.2 多項(xiàng)式相加此階段是計(jì)算器的加法運(yùn)用功能,對(duì)你輸入的多項(xiàng)式進(jìn)行相加計(jì)算,主要運(yùn)用了鏈表,及鏈表的插入等知識(shí),如圖 3-2所示:開始PLOY *inpt;N flag=0YN pre-next=NULLY Flag=1 pre=pre-next Return head結(jié)束圖 3-2 多項(xiàng)式相加主要代碼如下:PLOY *addPLOY(PLOY *head,PLOY *pre)/多項(xiàng)式相加PLOY *inpt;int flag=0;while(flag=0)if(pre-next=NULL)flag=1;elsepre=pre-next;in

12、pt=(PLOY *)malloc(sizeof(PLOY);inpt-coef=pre-coef;inpt-expn=pre-expn;inpt-next=NULL;insert(head,inpt);return head;3.3 多項(xiàng)式相減此階段是計(jì)算器的減法運(yùn)用功能,對(duì)你輸入的多項(xiàng)式進(jìn)行相減計(jì)算,主要運(yùn)用了鏈表,鏈表查詢,及鏈表的插入等知識(shí),如圖 3-3所示:開始PLOY *inpt;N flag=0YN pre-next=NULLY Flag=1 pre=pre-next Return head結(jié)束圖 3-3 多項(xiàng)式相減主要代碼如下:PLOY *minusPLOY(PLOY *hea

13、d,PLOY *pre)/多項(xiàng)式相減PLOY *inpt;int flag=0;while(flag=0)if(pre-next=NULL)flag=1;elsepre=pre-next;inpt=(PLOY *)malloc(sizeof(PLOY);inpt-coef=0-pre-coef;inpt-expn=pre-expn;inpt-next=NULL;insert(head,inpt);return head;3.4 多項(xiàng)式相乘此階段是計(jì)算器的乘法運(yùn)用功能,對(duì)你輸入的多項(xiàng)式進(jìn)行相乘計(jì)算,主要運(yùn)用了鏈表,鏈表查詢,及鏈表的插入等知識(shí),如圖 3-4所示:開始PLOY *inpt,*fla

14、g,*pre; Nflag=0Y pre- Nnext=NULLYpre=head2Continuehead1=NULLYNflag=1continuepre=pre-nextreturn res結(jié)束圖 3-4多項(xiàng)式相乘主要代碼如下:PLOY *byPLOY(PLOY *head1,PLOY *head2)/多項(xiàng)式相乘PLOY *inpt,*res,*pre;int flag=0;res=(PLOY *)malloc(sizeof(PLOY);res-next=NULL;head1=head1-next;pre=head2;while(flag=0)if(pre-next=NULL)pre=h

15、ead2;head1=head1-next;continue;if(head1=NULL)flag=1;continue;pre=pre-next;inpt=(PLOY *)malloc(sizeof(PLOY);inpt-coef=pre-coef*head1-coef;inpt-expn=pre-expn+head1-expn;inpt-next=NULL;insert(res,inpt);return res;3.5 計(jì)算器主函數(shù) 開始PLOY *f,*gN sign!=0Yscanf(“%d”,&sign)Nsign=0YN sign=1breakY printf(“你選擇 的操作是多

16、項(xiàng)式N 相加n”); sign=2 Y break printf(“你選擇 的操作是多項(xiàng)式N 相減n”);sign=3 Y break printf(“你選擇 的操作是多項(xiàng)式N 相乘n”);sign=4 Y printf(“Error!breaksign=-1 請(qǐng)重新輸入”); break break結(jié)束 圖 3-5 計(jì)算器主函數(shù)主要代碼如下:void main()PLOY *f,*g;int sign=-1;start();while(sign!=0)scanf(%d,&sign);switch(sign)case 0:break;case 1:printf(你選擇的操作是多項(xiàng)式相加:n);

17、f=creat(f);printf(f(x)=);print(f);g=creat(g);printf(g(x)=);print(g);printf(-nn);printf(兩個(gè)多項(xiàng)式相加結(jié)果為:nn);printf( F(x)=f(x)+g(x)=);f=addPLOY(f,g);print(f);printf(n-n);sign=-1;start();break;case 2:printf(你選擇的操作是多項(xiàng)式相減:n);f=creat(f);printf(f(x)=);print(f);g=creat(g);printf(g(x)=);print(g);printf(-nn);print

18、f(兩個(gè)多項(xiàng)式相減結(jié)果為:nn);printf( F(x)=f(x)-g(x)=);f=minusPLOY(f,g);print(f);printf(n-n);sign=-1;start();break;case 3:printf(你選擇的操作是多項(xiàng)式相乘:n);f=creat(f);printf(f(x)=);print(f);g=creat(g);printf(g(x)=);print(g);printf(-nn);printf(兩個(gè)多項(xiàng)式相乘結(jié)果為:nn);printf( F(x)=f(x)*g(x)=);f=byPLOY(f,g);print(f);printf(n-n);sign=-

19、1;start();break;case 4:sign=-1;start();break;default:printf(Error!請(qǐng)重新選擇操作!n);start();break;printf( *n);printf( * 謝謝使用! *n);printf( *n); 第四章 設(shè)計(jì)結(jié)果及分析4.1 調(diào)試與測(cè)試4.1.1 調(diào)試調(diào)試過程主要是運(yùn)行編制好的程序,然后遇到錯(cuò)誤后根據(jù)系統(tǒng)的提示,找到相關(guān)的問題所在。本系統(tǒng)調(diào)試過程中遇到的主要問題、原因和解決方法如下面介紹。(1) cannot open Debug/Cpp1.exe for writing執(zhí)行窗口沒關(guān)閉就修改程序段關(guān)閉執(zhí)行窗口后從新執(zhí)行

20、程序。(2) 系統(tǒng)提示的錯(cuò)誤error C2065: addPLOY : undeclared identifieraddPLOY沒有被明確的定義。到程序段里仔細(xì)尋找addPLOY,并將其定義。4.1.2 測(cè)試軟件測(cè)試是軟件生存期中的一個(gè)重要階段,是軟件質(zhì)量保證的關(guān)鍵步驟從用戶的角度來看,普遍希望通過軟件測(cè)試暴露軟件中隱藏的錯(cuò)誤和缺陷,所以軟件測(cè)試應(yīng)該是“為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程”?;蛘哒f,軟件測(cè)試應(yīng)該根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè)試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測(cè)試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤或缺陷。過度測(cè)試則會(huì)浪費(fèi)許多寶貴的資源。到測(cè)試

21、后期,即使找到了錯(cuò)誤,然而付出了過高的代價(jià)。測(cè)試數(shù)據(jù)過程如下:(1) 輸入功能測(cè)試輸入數(shù)據(jù)1:2 3 0 0預(yù)期結(jié)果:2.000000x3運(yùn)行結(jié)果: 2.000000x3說明:符合輸入的要求輸入數(shù)據(jù)2:a b 0 0 預(yù)期結(jié)果:a.000000xb運(yùn)行結(jié)果:死循環(huán)說明:不符合輸入要求(2) 運(yùn)算功能測(cè)試輸入數(shù)據(jù)1:2 3 0 0 5 6 0 0預(yù)期結(jié)果:2.000000x3+5.000000x6運(yùn)行結(jié)果:2.000000x3+5.000000x6說明:符合計(jì)算的要求輸入數(shù)據(jù)2:a b 0 0 c d 0 0預(yù)期結(jié)果:a.000000xb+c.000000xd運(yùn)行結(jié)果:死循環(huán)4.2 運(yùn)行結(jié)果4.

22、2.1 歡迎界面圖 4-1 歡迎界面4.2.2 多項(xiàng)式加法圖 4-2 多項(xiàng)式加法4.2.3 多項(xiàng)式減法圖 4-3 多項(xiàng)式減法4.2.4 多項(xiàng)式乘法圖4-4多項(xiàng)式的乘法4.3 結(jié)果分析經(jīng)過一段時(shí)間的設(shè)計(jì),我的程序大體完成,任務(wù)書中所要求實(shí)現(xiàn)多項(xiàng)式的輸入輸出、多項(xiàng)式的加法、多項(xiàng)式的減法都實(shí)現(xiàn)了,而且實(shí)現(xiàn)了多項(xiàng)式的乘法,但程序還存在一些缺點(diǎn),例如,無法輸入字母計(jì)算,無法進(jìn)行多項(xiàng)連續(xù)計(jì)算??偨Y(jié) 數(shù)據(jù)結(jié)構(gòu)體現(xiàn)的是解決問題的一種思想,怎樣把這種思想體現(xiàn)出來,需要我們對(duì)每個(gè)方面的系統(tǒng)了解。并發(fā)現(xiàn)了許多自己的不足,平時(shí)沒掌握的的知識(shí)在實(shí)踐中暴露,經(jīng)過不斷的思考,查閱書籍和上網(wǎng)查資料及上機(jī)運(yùn)行,解決了大部分的問

23、題,還有一些小問題。但是,我相信在今后的學(xué)習(xí)中,一定能把它解決好。當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說是無處不在。因此作為二十一世紀(jì)的大學(xué)生來說掌握程序開發(fā)技術(shù)是十分重要的,而C語(yǔ)言又是最常見,功能最強(qiáng)大的一種高級(jí)語(yǔ)言,因此做好c語(yǔ)言版數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)是十分必要的。我不僅鞏固了數(shù)據(jù)結(jié)構(gòu)程序設(shè)計(jì)的內(nèi)容,掌握設(shè)計(jì)的基本方法,強(qiáng)化了上機(jī)動(dòng)手能力,還進(jìn)一步掌握了以下知識(shí):數(shù)據(jù)類型,鏈表,結(jié)點(diǎn),分支控制,循環(huán)控制,結(jié)構(gòu)體及數(shù)組,指針,文件操作,編譯預(yù)處理等;通過課程設(shè)計(jì),掌握了程序的局部測(cè)試,調(diào)試方法,建立程序系統(tǒng)調(diào)試,測(cè)試的基本概念和思想,學(xué)會(huì)較大程序的系統(tǒng)測(cè)試和調(diào)試方法。當(dāng)我選擇這個(gè)多項(xiàng)式計(jì)算器系統(tǒng)時(shí),首先

24、系統(tǒng)分析主要思路和框架哦,與同學(xué)討論,聯(lián)系所學(xué)的知識(shí)。我知道書上和老師講的有限,所以上網(wǎng)搜也是一種利用資源的表現(xiàn)。在編程中,特別是結(jié)構(gòu)體,指針的部分,幾乎是一片空白。不過經(jīng)過幾天的努力,大體把課本上的知識(shí)點(diǎn)看了一遍,知識(shí)點(diǎn)也基本上掌握了,所以下一步就是開始正式的編程序了。當(dāng)讀懂了C語(yǔ)言編程的基本過程和方法,經(jīng)過一波三折,終于開始正式編程。 編譯過程中,算法至關(guān)重要,多項(xiàng)式加法:系數(shù)相同時(shí)指數(shù)相加,不同時(shí)兩項(xiàng)做加法;多項(xiàng)式減法:和加法相差無幾,只是把加換成減;多項(xiàng)式乘法:指數(shù)相乘,系數(shù)相加,當(dāng)然在設(shè)計(jì)過程中還要注意一些特殊值,如0,1等。通過這次課程設(shè)計(jì),我感覺到要自己動(dòng)手真正做出一個(gè)程序并不很

25、容易,但只要用心去做,總會(huì)有收獲,特別是當(dāng)我遇到問題,問老師,問同學(xué),想盡辦法去解決,最后終于找到方法時(shí),心里的那份喜悅之情真是難以形容.編寫程序中遇到問題再所難免,應(yīng)耐心探究其中的原因,從出現(xiàn)問題的地方起,并聯(lián)系前后程序,仔細(xì)推敲,逐個(gè)排查.直到最終搞清為止。在課程設(shè)計(jì)過程中,收獲知識(shí),提高能力的同時(shí),我也學(xué)到了很多的人生哲理,懂得了怎么去制定計(jì)劃,怎么去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行的過程中怎樣去克服心理上的不良情緒。因此在以后的生活和學(xué)習(xí)的過程中,我一定把課程設(shè)計(jì)的精神帶到生活中,使生活變得更好。參考文獻(xiàn)1 譚浩強(qiáng). C語(yǔ)言程序設(shè)計(jì)(第三版)M. 清華大學(xué)出版社, 2007.2 姜敏芝,余

26、健. C語(yǔ)言程序設(shè)計(jì)案例精編M. 清華大學(xué)出版社, 2008.3 李健學(xué),余健. 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)案例精編M. 2007.4 唐國(guó)民,王國(guó)均. 數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)M. 北京:清華大學(xué)出版社.5 王路明. C語(yǔ)言程序設(shè)計(jì)教程M. 北京:北京郵電大學(xué)出版社,2005年5月.6 譚浩強(qiáng). C+程序設(shè)計(jì)M. 北京:清華大學(xué)出版社.2004.7 范策. 算法與數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)M. 北京:機(jī)械工業(yè)出版社,2004.8 詹春華,楊沙. C語(yǔ)言程序設(shè)計(jì)教程M. 科學(xué)出版社,2011.8.9 董志民,崔建平,肖利娜. C語(yǔ)言程序設(shè)計(jì)教學(xué)改革探索與實(shí)踐J.福建電腦.附錄#include#includetyp

27、edef struct myNode/數(shù)據(jù)結(jié)構(gòu)float coef;/系數(shù)coefficientint expn;/指數(shù)exponentstruct myNode * next;PLOY;void start()/用戶選擇界面printf( n);printf( *n);printf( * 歡迎使用一元多項(xiàng)式計(jì)算器 *n);printf( *n);printf(n);printf( 請(qǐng)選擇操作:nn);printf( 0.退出操作n);printf( 1.一元多項(xiàng)式相加n);printf( 2.一元多項(xiàng)式相減n);printf( 3.一元多項(xiàng)式相乘nn);void insert(PLOY *h

28、ead,PLOY *inpt)PLOY *pre,*now;int signal=0;pre=head; if(pre-next=NULL)pre-next=inpt;elsenow=pre-next;while(signal=0)if(inpt-expnexpn) if(now-next=NULL)now-next=inpt;signal=1;elsepre=now;now=pre-next;elseif(inpt-expnnow-expn)inpt-next=now;pre-next=inpt;signal=1;elsenow-coef=now-coef+inpt-coef;signal=

29、1;free(inpt); if(now-coef=0)pre-next=now-next;free(now);PLOY *creat(char ch)/建立多項(xiàng)式PLOY *head,*inpt;float x;int y;head=(PLOY *)malloc(sizeof(PLOY); head-next=NULL;printf(請(qǐng)輸入一元多項(xiàng)式%c:(格式是:系數(shù) 指數(shù);以0 0 結(jié)束!)n,ch);scanf(%f %d,&x,&y);while(x!=0)inpt=(PLOY *)malloc(sizeof(PLOY); inpt-coef=x;inpt-expn=y;inpt-n

30、ext=NULL;insert(head,inpt); printf(請(qǐng)輸入一元多項(xiàng)式%c:(以0 0 結(jié)束!)n,ch);scanf(%f %d,&x,&y);return head;PLOY *addPLOY(PLOY *head,PLOY *pre)/多項(xiàng)式相加PLOY *inpt;int flag=0;while(flag=0)if(pre-next=NULL)flag=1;elsepre=pre-next;inpt=(PLOY *)malloc(sizeof(PLOY);inpt-coef=pre-coef;inpt-expn=pre-expn;inpt-next=NULL;inse

31、rt(head,inpt);return head;PLOY *minusPLOY(PLOY *head,PLOY *pre)/多項(xiàng)式相減PLOY *inpt;int flag=0;while(flag=0)if(pre-next=NULL)flag=1;elsepre=pre-next;inpt=(PLOY *)malloc(sizeof(PLOY);inpt-coef=0-pre-coef;inpt-expn=pre-expn;inpt-next=NULL;insert(head,inpt);return head;PLOY *byPLOY(PLOY *head1,PLOY *head2)

32、/多項(xiàng)式相乘PLOY *inpt,*res,*pre;int flag=0;res=(PLOY *)malloc(sizeof(PLOY);res-next=NULL;head1=head1-next;pre=head2;while(flag=0)if(pre-next=NULL)pre=head2;head1=head1-next;continue;if(head1=NULL)flag=1;continue;pre=pre-next;inpt=(PLOY *)malloc(sizeof(PLOY);inpt-coef=pre-coef*head1-coef;inpt-expn=pre-expn+head1-expn;inpt-next=NULL;insert(res,inpt);return res;void print(PLOY *fun)PLOY *printing;int flag=0;printing=fun-next;if(fun-next=NULL)printf(0n);return;while(flag=0)if(printing-coef0&fun-next!=printing)printf(+);if(printing-coef=1); else i

溫馨提示

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