版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上課 程 設(shè) 計 報 告課程名稱 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 題 目 長整數(shù)加減運(yùn)算 指導(dǎo)教師 設(shè)計起始日期 3.213.28 學(xué) 院 計算機(jī)學(xué)院 系 別 計算機(jī)科學(xué)與工程 學(xué)生姓名 班級/學(xué)號 成 績 一、 需求分析設(shè)計一個實現(xiàn)任意長的整數(shù)間進(jìn)行四則運(yùn)算的程序,要求完成長整數(shù)的加運(yùn)算和減運(yùn)算。長整數(shù)的長度沒有限制,可以是任意長。正確處理好運(yùn)算之后的進(jìn)位和借位。(1) 輸入:-*,*,*;-*,*,*,* /-表示“-”可選(2) 輸出:*,*,*,*是否繼續(xù)計算(Y/N):(3) 功能:能正確進(jìn)行相關(guān)數(shù)據(jù)的加減運(yùn)算(4) 測試數(shù)據(jù): 0;0;輸出“0” 2345,6789;76
2、54,3211;輸出“1,0000,0000” 1,0000,0000,0000;-9999,9999;輸出“9999,0000,0001” 1,0001,00001;-1,0001,0000;輸出“0” 自選數(shù)據(jù) 二、 概要設(shè)計1、 使用雙向循環(huán)鏈表實現(xiàn)長整數(shù)的運(yùn)算及存儲,構(gòu)造雙向循環(huán)鏈表,創(chuàng)建雙向循環(huán)鏈表表示兩個整數(shù)2、 設(shè)計兩整數(shù)相加的函數(shù)Add(),addtwo(),其中Add()調(diào)用addtwo()函數(shù),addtwo()具體實現(xiàn)兩個整數(shù)的加減操作,進(jìn)位及借位問題;設(shè)計顯示函數(shù)Display()及主函數(shù)main()三、 詳細(xì)設(shè)計1、 數(shù)據(jù)結(jié)構(gòu)設(shè)計雙向循環(huán)鏈表的構(gòu)造 typedef st
3、ruct LinkNode int data; /記錄每個節(jié)點的整數(shù)(小于) LinkNode *next, *pre; /記錄下一個節(jié)點的地址和前一個節(jié)點的地址linklist;2、 創(chuàng)建兩個長整數(shù)的鏈表偽算法 void Creat(char a) /引入字符串,創(chuàng)立兩個鏈表,分別表示兩個整數(shù) int 記錄字符串i;記錄加數(shù)節(jié)點數(shù)j;記錄被加數(shù)節(jié)點數(shù)s;標(biāo)記字符串中的-號記錄字符串中的字符轉(zhuǎn)化為整數(shù)的值k,使每個節(jié)點記錄位l while(指針?biāo)覆皇恰?;?被加數(shù)字符數(shù)m自動加1 /m記錄字符串中被加數(shù)的字符數(shù) n=m; while(執(zhí)政沒有指到結(jié)尾處) 總字符串n位數(shù)自動加1; /n記錄字
4、符串的總字符數(shù) if被加數(shù)不是負(fù)數(shù) head0->data=(-1); /記錄整數(shù)符號 w=1; else head0->data=1; for(i=m-1;i>=w;i-) If指針?biāo)笧閿?shù)字,而不是“,” /把字符轉(zhuǎn)化為整數(shù) k+=(ai-'0')*sum(l); /sum()計算的乘方 l+; if(ai=','|i=w) 把整數(shù)存到雙向循環(huán)鏈表中 s+; /節(jié)點數(shù)加 k=0; /重新初始化k和l l=0; head0->pre->data*=s; /存儲整數(shù)符號和節(jié)點數(shù)四、 調(diào)試分析a、 調(diào)試過程中,連續(xù)輸入數(shù)字運(yùn)算,速度會
5、明顯變慢,發(fā)現(xiàn)在初始化鏈表及運(yùn)算后沒有釋放鏈表,造成系統(tǒng)資源浪費(fèi),經(jīng)改造后自愛后面添加了析構(gòu)函數(shù)b、 算法的時空分析創(chuàng)建整數(shù)鏈表有三個循環(huán),次數(shù)都為n。時間復(fù)雜度和空間復(fù)雜都都為O(n)五、 使用說明和測試結(jié)果1、使用說明:用戶按照屏幕所顯示的提示來正確輸入數(shù)字其中-表示“-”為可選,從右至左每四位數(shù)字一個“,”2、測試結(jié)果: 六、 心得體會通過此實驗,加深了我對鏈表的基本操作,對雙向鏈表及循環(huán)鏈表的操作及實際運(yùn)用有了很深的體會,在處理數(shù)字的進(jìn)位借位時有了進(jìn)一步的提高。七、 附錄1、 鏈表的創(chuàng)建:#include<stdio.h>#include<math.h>#inc
6、lude<stdlib.h>typedef struct LinkNode int data; /記錄每個節(jié)點的整數(shù)(小于) LinkNode *next, *pre; /記錄下一個節(jié)點的地址和前一個節(jié)點的地址linklist; linklist *head0; linklist *head1; /head0,head1分別記錄兩個整數(shù)鏈表的頭指針 linklist *currptr; linklist *result; /result記錄結(jié)果鏈表的頭指針void Creat(char a) /引入字符串,創(chuàng)立兩個鏈表,分別表示兩個整數(shù) int i=0,j=0,m=0,n=0,k=
7、0,l=0,s=0,w=0; /i記錄字符串,j記錄加數(shù)節(jié)點數(shù);s記錄被加數(shù)節(jié)點數(shù);w標(biāo)記字符串中的-號 /k記錄字符串中的字符轉(zhuǎn)化為整數(shù)的值,l使每個節(jié)點記錄位 while(am!='') m+; /m記錄字符串中被加數(shù)的字符數(shù) n=m; while(an!='0') n+; /n記錄字符串的總字符數(shù) if(a0='-') head0->data=(-1); /記錄整數(shù)符號 w=1; else head0->data=1; for(i=m-1;i>=w;i-) if(ai!=',') /把字符轉(zhuǎn)化為整數(shù) k+=
8、(ai-'0')*sum(l); /sum()計算的乘方 l+; if(ai=','|i=w) currptr=(linklist *)malloc(sizeof(linklist); /把整數(shù)存到雙向循環(huán)鏈表中 currptr->data=k; currptr->next=head0; currptr->pre=head0->pre; head0->pre->next=currptr; head0->pre=currptr; head0=currptr; s+; /節(jié)點數(shù)加 k=0; /重新初始化k和l l=0; he
9、ad0->pre->data*=s; /存儲整數(shù)符號和節(jié)點數(shù)2、 測試函數(shù): void main() /主函數(shù) char ch20;/鏈表對象 char Yes_No; LinkList() ; LinkList1(); printf("|輸入兩個任意長的整數(shù)。 |n"); do printf("|輸入形式為:-*,*,*;-*,*,*,*|n"); printf("|即符號+數(shù),每位加一個',',兩個數(shù)之間用''隔開|n"); printf("|請輸入你要計算的兩個數(shù): n"); scanf("%s",&ch); /輸入任意長字符串 LinkList() ; Creat(ch); /把字符串轉(zhuǎn)化為整數(shù),并存到鏈表中/調(diào)用轉(zhuǎn)化函數(shù) Add(); /實現(xiàn)兩個整數(shù)相加/調(diào)用add()加法運(yùn)算函數(shù) Display(); /輸出結(jié)果/調(diào)用輸出函數(shù) printf("nn是否繼
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國籬笆修剪機(jī)數(shù)據(jù)監(jiān)測研究報告
- 福州市老舊社區(qū)公共空間的適老性評價研究
- 2025年度智慧醫(yī)療系統(tǒng)開發(fā)與應(yīng)用合同4篇
- 二零二五年度新能源汽車充電樁土地租賃合同3篇
- 2025年個人水利工程建設(shè)與維護(hù)承包合同模板3篇
- 2025年度報刊亭承攬加工安裝與綠色出行倡導(dǎo)合同4篇
- 二零二五年度生態(tài)農(nóng)業(yè)項目種植與加工承包合同4篇
- 2025年度誠意金協(xié)議模板:新能源汽車采購預(yù)付款協(xié)議4篇
- 2023年-2024年公司項目部負(fù)責(zé)人安全教育培訓(xùn)試題及答案【易錯題】
- 二零二五年IT運(yùn)維團(tuán)隊績效考核合同3篇
- 乳腺癌的綜合治療及進(jìn)展
- 【大學(xué)課件】基于BGP協(xié)議的IP黑名單分發(fā)系統(tǒng)
- 2025年八省聯(lián)考高考語文試題真題解讀及答案詳解課件
- 信息安全意識培訓(xùn)課件
- 2024年山東省泰安市初中學(xué)業(yè)水平生物試題含答案
- 美的MBS精益管理體系
- 中國高血壓防治指南(2024年修訂版)解讀課件
- 2024安全員知識考試題(全優(yōu))
- 2024年衛(wèi)生資格(中初級)-中醫(yī)外科學(xué)主治醫(yī)師考試近5年真題集錦(頻考類試題)帶答案
- 中國大百科全書(第二版全32冊)08
- 醫(yī)院出入口安檢工作記錄表范本
評論
0/150
提交評論