




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱: 程序語言課程設(shè)計(jì) 設(shè)計(jì)題目: 一元多項(xiàng)式簡單的計(jì)算器 課程設(shè)計(jì)任務(wù)書學(xué)生姓名 學(xué)號1402120135專業(yè)班級1班設(shè)計(jì)題目一元多項(xiàng)式簡單的計(jì)算器內(nèi)容概要: 設(shè)計(jì)或開發(fā)環(huán)境:Microsoft Visual Studio 2010 關(guān)鍵技術(shù):C語言 主要功能: 1建立一元多次多項(xiàng)式 2多項(xiàng)式相加 3多項(xiàng)式相減 4多項(xiàng)式相乘文獻(xiàn)資料:1譚浩強(qiáng)C語言程序設(shè)計(jì)(第三版) 清華大學(xué)出版社 20072姜敏芝 余健 C語言程序設(shè)計(jì)案例精編 清華大學(xué)出版社 20083李健學(xué) 余健 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)案例精編 20074唐國民 王國均數(shù)據(jù)結(jié)構(gòu)(C語言版) 清華大學(xué)出版社5網(wǎng)上相關(guān)文獻(xiàn)資料
2、設(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)教師: 院長: 日 期:2013年12月9日軟件學(xué)院課程設(shè)計(jì)進(jìn)度安排表學(xué)生姓名: 張文東 學(xué)號: 1402120135 專業(yè): 軟件工程 班級: 一班 起止日期內(nèi) 容備注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)測試 12月20日12月23日撰寫課程設(shè)計(jì)報(bào)告 12月25日演
3、示軟件和答辯 指導(dǎo)教師簽名: 2013年12月11日成績評定表學(xué)生姓名: 張文東 學(xué)號: 1402120135 專業(yè): 軟件工程 班級: 一班 類別合計(jì)分值各項(xià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能對其設(shè)計(jì)內(nèi)容進(jìn)行詳細(xì)、完整的介紹,并能就指導(dǎo)教師提出的問題進(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),具
4、有說服力。5符號統(tǒng)一;圖表完備、符合規(guī)范要求。5能對整個(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)行闡述,言簡意明,重點(diǎn)突出,論點(diǎn)正確,條理清晰。15在規(guī)定時(shí)間內(nèi)能準(zhǔn)確、完整、流利地回答教師所提出的問題。總評成績: 分 指導(dǎo)教師: (簽字) 日期:2013 年12月 25 日摘 要 摘要:隨著科技的不斷發(fā)展,人們生活水平的不斷提高,方便、高效、快捷成為了人們所追求的主要目標(biāo),面對一些復(fù)雜的技術(shù)總會花費(fèi)大量時(shí)間進(jìn)行計(jì)算,因此有一個(gè)多項(xiàng)式功能的計(jì)算器是很有必要的。 開發(fā)這樣一個(gè)程序需要用到
5、C結(jié)點(diǎn)、鏈表方面的知識,系統(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語言;結(jié)點(diǎn);鏈表目 錄目 錄1第一章 課題背景21.1 緒論21.2 主要內(nèi)容2第二章 設(shè)計(jì)簡介及設(shè)計(jì)方案論述32.1 系統(tǒng)分析32.2 總體設(shè)計(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)試與測試174.2 運(yùn)行結(jié)果194.3 結(jié)果分析21總結(jié)22參考文獻(xiàn)23附錄
6、24第一章 課題背景1.1 緒論隨著科技的進(jìn)步,社會的不斷發(fā)展,計(jì)算器已普遍應(yīng)用于各行各業(yè),為了幫助人們提高工作效率,節(jié)約運(yùn)算時(shí)間,設(shè)計(jì)一個(gè)多功能的計(jì)算器是很有必要的,在此設(shè)計(jì)一個(gè)多項(xiàng)式計(jì)算器可以很方便的對多項(xiàng)式相加、相減、相乘,對提高人們的運(yùn)算效率很有幫助。一個(gè)計(jì)算器需要用到C多方面的知識,要實(shí)現(xiàn)多項(xiàng)式的建立和輸入輸出等功能,必須要熟練的掌握C,在此尤其是鏈表和結(jié)點(diǎn)。1.2 主要內(nèi)容用C語言實(shí)現(xiàn)多項(xiàng)式的輸入輸出和多項(xiàng)式的加減乘等運(yùn)算,其中主要用到鏈表和結(jié)點(diǎn)的相關(guān)知識,具體功能如下:1)輸入并建立多項(xiàng)式;2)輸出多項(xiàng)式;3)兩個(gè)多項(xiàng)式相加,輸出和多項(xiàng)式;4)兩個(gè)多項(xiàng)式相減,輸出差多項(xiàng)式。第二章
7、 設(shè)計(jì)簡介及設(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)必須安全可靠,不會出現(xiàn)無故死機(jī)狀態(tài),運(yùn)算速度要快。2.2 總體設(shè)計(jì)2.2.1 系統(tǒng)設(shè)計(jì)方案采用菜單設(shè)計(jì),選擇你需要的功能,用單鏈表儲存你輸入的數(shù)據(jù)。(1) 菜單菜單包括計(jì)算器加減乘等功能的選擇(2) 文件保存方式運(yùn)用帶頭節(jié)點(diǎn)的單鏈表儲存多項(xiàng)式(3) 抽象數(shù)據(jù)類型定義主要定義多項(xiàng)式的系數(shù)和指數(shù)。系數(shù)項(xiàng)用浮點(diǎn)類型定義,指數(shù)項(xiàng)用
8、整型定義(4) 存儲結(jié)構(gòu)采用鏈?zhǔn)浇Y(jié)構(gòu),建立鏈表儲存輸入的多項(xiàng)式(5) 算法設(shè)計(jì)運(yùn)用鏈表知識,建立鏈表,給鏈表分配一定量的存儲空間,查找鏈表,插入鏈表和鏈表的連接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 功能模塊設(shè)計(jì)第三章 詳細(xì)設(shè)計(jì)一元多項(xiàng)式計(jì)算器主要分為4大部分,多項(xiàng)式建立,多項(xiàng)式加法,多項(xiàng)式減法和多項(xiàng)式乘法。多項(xiàng)式的建立主要需要建立新鏈表,并分配給這個(gè)新鏈表一定量的存儲空間,分配的存儲空間內(nèi)進(jìn)行運(yùn)算;多項(xiàng)式加減乘等運(yùn)算主要運(yùn)用了鏈表的建立,鏈表存儲空間分配
9、,鏈表的查找,插入與連接進(jìn)行計(jì)算。3.1 建立多項(xiàng)式此階段是多項(xiàng)式的建立,可以對計(jì)算器進(jìn)行輸入輸出等功能。主要運(yùn)用鏈表方面的知識如圖 3-1所示:開始PLOY *head,*inpt;NX!=0Yinpt=(PLOY *)malloc(sizeof(PLOY)Return head結(jié)束圖 3-1 多項(xiàng)式的建立主要代碼如下:PLOY *creat(char ch)/建立多項(xiàng)式PLOY *head,*inpt;float x;int y;head=(PLOY *)malloc(sizeof(PLOY); head->next=NULL;printf("請輸入一元多項(xiàng)式%c:(格式是
10、:系數(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("請輸入一元多項(xiàng)式%c:(以0 0 結(jié)束!)n",ch);scanf("%f %d",&x,&y);return head;3.2 多項(xiàng)式相加此階段是計(jì)算器的加法運(yùn)用
11、功能,對你輸入的多項(xiàng)式進(jìn)行相加計(jì)算,主要運(yùn)用了鏈表,及鏈表的插入等知識,如圖 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;inpt=(PLOY *)malloc(sizeof(PLOY)
12、;inpt->coef=pre->coef;inpt->expn=pre->expn;inpt->next=NULL;insert(head,inpt);return head;3.3 多項(xiàng)式相減此階段是計(jì)算器的減法運(yùn)用功能,對你輸入的多項(xiàng)式進(jìn)行相減計(jì)算,主要運(yùn)用了鏈表,鏈表查詢,及鏈表的插入等知識,如圖 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 *head,
13、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)用功能,對你輸入的多項(xiàng)式進(jìn)行相乘計(jì)算,主要運(yùn)用了鏈表,鏈表查詢,及鏈表的插入等知識,
14、如圖 3-4所示:開始PLOY *inpt,*flag,*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
15、=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;3.5 計(jì)算器主
16、函數(shù) 開始PLOY *f,*gN sign!=0Yscanf(“%d”,&sign)Nsign=0YN sign=1breakY printf(“你選擇 的操作是多項(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 請重新輸入”); break break結(jié)束 圖 3-5 計(jì)算器主函數(shù)主要代碼如下:void main()PLOY *f,*g;int sign=-1;start()
17、;while(sign!=0)scanf("%d",&sign);switch(sign)case 0:break;case 1: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(
18、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");printf("兩個(gè)多項(xiàng)式相減結(jié)果為:nn"
19、;);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(&qu
20、ot;兩個(gè)多項(xiàng)式相乘結(jié)果為:nn");printf(" F(x)=f(x)*g(x)=");f=byPLOY(f,g);print(f);printf("n-n");sign=-1;start();break;case 4:sign=-1;start();break;default:printf("Error!請重新選擇操作!n");start();break;printf(" *n");printf(" * 謝謝使用! *n");printf(" *n"); 第四
21、章 設(shè)計(jì)結(jié)果及分析4.1 調(diào)試與測試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í)行程序。(2) 系統(tǒng)提示的錯(cuò)誤error C2065: 'addPLOY' : undeclared identifieraddPLOY沒有被明確的定義。到程序段里仔細(xì)尋找addPLOY,并將其定義。4.1.2 測試軟件測試是軟件生存期中的一個(gè)重要階段,是軟件質(zhì)
22、量保證的關(guān)鍵步驟從用戶的角度來看,普遍希望通過軟件測試暴露軟件中隱藏的錯(cuò)誤和缺陷,所以軟件測試應(yīng)該是“為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程”?;蛘哒f,軟件測試應(yīng)該根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤或缺陷。過度測試則會浪費(fèi)許多寶貴的資源。到測試后期,即使找到了錯(cuò)誤,然而付出了過高的代價(jià)。測試數(shù)據(jù)過程如下:(1) 輸入功能測試輸入數(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é)果
23、:死循環(huán)說明:不符合輸入要求(2) 運(yùn)算功能測試輸入數(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.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)式的輸入輸出、
24、多項(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)出來,需要我們對每個(gè)方面的系統(tǒng)了解。并發(fā)現(xiàn)了許多自己的不足,平時(shí)沒掌握的的知識在實(shí)踐中暴露,經(jīng)過不斷的思考,查閱書籍和上網(wǎng)查資料及上機(jī)運(yùn)行,解決了大部分的問題,還有一些小問題。但是,我相信在今后的學(xué)習(xí)中,一定能把它解決好。當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說是無處不在。因此作為二十一世紀(jì)的大學(xué)生來說掌握程序開發(fā)技術(shù)是十分重要的,而C語言又是最常見,功能最強(qiáng)大的一種高級語言,因此做好c語言版數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)是十分必要的
25、。我不僅鞏固了數(shù)據(jù)結(jié)構(gòu)程序設(shè)計(jì)的內(nèi)容,掌握設(shè)計(jì)的基本方法,強(qiáng)化了上機(jī)動手能力,還進(jìn)一步掌握了以下知識:數(shù)據(jù)類型,鏈表,結(jié)點(diǎn),分支控制,循環(huán)控制,結(jié)構(gòu)體及數(shù)組,指針,文件操作,編譯預(yù)處理等;通過課程設(shè)計(jì),掌握了程序的局部測試,調(diào)試方法,建立程序系統(tǒng)調(diào)試,測試的基本概念和思想,學(xué)會較大程序的系統(tǒng)測試和調(diào)試方法。當(dāng)我選擇這個(gè)多項(xiàng)式計(jì)算器系統(tǒng)時(shí),首先系統(tǒng)分析主要思路和框架哦,與同學(xué)討論,聯(lián)系所學(xué)的知識。我知道書上和老師講的有限,所以上網(wǎng)搜也是一種利用資源的表現(xiàn)。在編程中,特別是結(jié)構(gòu)體,指針的部分,幾乎是一片空白。不過經(jīng)過幾天的努力,大體把課本上的知識點(diǎn)看了一遍,知識點(diǎn)也基本上掌握了,所以下一步就是開始
26、正式的編程序了。當(dāng)讀懂了C語言編程的基本過程和方法,經(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ì),我感覺到要自己動手真正做出一個(gè)程序并不很容易,但只要用心去做,總會有收獲,特別是當(dāng)我遇到問題,問老師,問同學(xué),想盡辦法去解決,最后終于找到方法時(shí),心里的那份喜悅之情真是難以形容.編寫程序中遇到問題再所難免,應(yīng)耐心探究其中的原因,從出現(xiàn)問題的地方起,并聯(lián)系前后程序,仔細(xì)推敲,逐個(gè)排查.直到最終搞清
27、為止。在課程設(shè)計(jì)過程中,收獲知識,提高能力的同時(shí),我也學(xué)到了很多的人生哲理,懂得了怎么去制定計(jì)劃,怎么去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行的過程中怎樣去克服心理上的不良情緒。因此在以后的生活和學(xué)習(xí)的過程中,我一定把課程設(shè)計(jì)的精神帶到生活中,使生活變得更好。參考文獻(xiàn)1 譚浩強(qiáng). C語言程序設(shè)計(jì)(第三版)M. 清華大學(xué)出版社, 2007.2 姜敏芝,余健. C語言程序設(shè)計(jì)案例精編M. 清華大學(xué)出版社, 2008.3 李健學(xué),余健. 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)案例精編M. 2007.4 唐國民,王國均. 數(shù)據(jù)結(jié)構(gòu)(C語言版)M. 北京:清華大學(xué)出版社.5 王路明. C語言程序設(shè)計(jì)教程M. 北京:北京郵電大學(xué)出版社,
28、2005年5月.6 譚浩強(qiáng). C+程序設(shè)計(jì)M. 北京:清華大學(xué)出版社.2004.7 范策. 算法與數(shù)據(jù)結(jié)構(gòu)(C語言版)M. 北京:機(jī)械工業(yè)出版社,2004.8 詹春華,楊沙. C語言程序設(shè)計(jì)教程M. 科學(xué)出版社,2011.8.9 董志民,崔建平,肖利娜. C語言程序設(shè)計(jì)教學(xué)改革探索與實(shí)踐J.福建電腦.附錄#include<stdio.h>#include<malloc.h>typedef struct myNode/數(shù)據(jù)結(jié)構(gòu)float coef;/系數(shù)coefficientint expn;/指數(shù)exponentstruct myNode * next;PLOY;voi
29、d start()/用戶選擇界面printf(" n");printf(" *n");printf(" * 歡迎使用一元多項(xiàng)式計(jì)算器 *n");printf(" *n");printf("n");printf(" 請選擇操作:nn");printf(" 0.退出操作n");printf(" 1.一元多項(xiàng)式相加n");printf(" 2.一元多項(xiàng)式相減n");printf(" 3.一元多項(xiàng)式相乘nn&quo
30、t;);void insert(PLOY *head,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->expn<now->expn) if(now->next=NULL)now->next=inpt;signal=1;elsepre=now;now=pre->next;elseif(inpt->expn>now->expn)i
31、npt->next=now;pre->next=inpt;signal=1;elsenow->coef=now->coef+inpt->coef;signal=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("請輸入一元多項(xiàng)式%c:(格式
32、是:系數(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("請輸入一元多項(xiàng)式%c:(以0 0 結(jié)束!)n",ch);scanf("%f %d",&x,&y);return head;PLOY *addPLOY(PLOY *
33、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;insert(head,inpt);return head;PLOY *minusPLOY(PLOY *head,PLOY *pre)/多項(xiàng)式相減PLOY *inpt;int f
34、lag=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)/多項(xiàng)式相乘PLOY *inpt,*res,*pre;int flag=0;res=(PLOY *)malloc(
35、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;
36、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->coef>0&&fun->next!=printing)printf("+");if(printing->coef=1); else if(printin
37、g->coef=-1)printf("-");elseprintf("%f",printing->coef);if(printing->expn!=0) printf("x%d",printing->expn);else if(printing->coef=1)|(printing->coef=-1)printf("1");if(printing->next=NULL)flag=1;elseprinting=printing->next;printf("n");void
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030商品肉雞行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 新型工業(yè)化網(wǎng)絡(luò)安全管理實(shí)施方案
- 2025至2030中國汽車日間行車燈行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國水資源開發(fā)行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國椰油酰胺丙基羥基磺基甜菜堿行業(yè)市場深度研究及發(fā)展前景投資可行性分析報(bào)告
- 2025至2030中國校園管理軟件行業(yè)市場競爭格局及發(fā)展趨勢與投資前景報(bào)告
- 2025至2030中國未膨脹珍珠巖行業(yè)市場占有率及投資前景評估規(guī)劃報(bào)告
- 2025至2030中國智能坐浴盆行業(yè)市場深度研究及發(fā)展前景投資可行性分析報(bào)告
- 2025至2030中國智慧燃?xì)庑袠I(yè)經(jīng)營動態(tài)及發(fā)展格局研究報(bào)告
- 糧食倉儲智能倉儲設(shè)備能耗監(jiān)測與分析技術(shù)考核試卷
- 充電設(shè)施運(yùn)營管理制度
- 醫(yī)院消防安全培訓(xùn)課件(完美版)
- 幼兒園大班數(shù)學(xué)《特別的尺子》微課件
- 雅馬哈RX-V365使用說明書
- 照相館管理制度
- IECQ QC 080000:2017 第四版標(biāo)準(zhǔn)(中文版)
- 醫(yī)用耗材管控中的難點(diǎn)及對策研究
- 2024屆杭州市濱江區(qū)小升初考試數(shù)學(xué)試卷含解析
- 羽毛球教案18課時(shí)完整版
- JT-T-1240-2019城市公共汽電車車輛專用安全設(shè)施技術(shù)要求
- 國外激勵(lì)研究現(xiàn)狀分析報(bào)告
評論
0/150
提交評論