




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、用鏈表實(shí)現(xiàn)大數(shù)相加減高級(jí)語言程序設(shè)計(jì)作業(yè)報(bào)告作業(yè)名稱: 大整數(shù)相加減 學(xué) 院 計(jì)算機(jī)科學(xué)與工程學(xué)院 專 業(yè) 計(jì)算機(jī)軟件 學(xué)生姓名 awell 任課教師 xxx 提交日期 2012.6.28 1、 問題描述 實(shí)現(xiàn)兩個(gè)大整數(shù)的相加減二、系統(tǒng)設(shè)計(jì) 1、結(jié)構(gòu)說明建立結(jié)構(gòu)類型 node:struct nodeint num;/每個(gè)位數(shù)用一個(gè)int類型表示,其中num=0&numarr2.size()-falg2)/falg1表示輸入的第一個(gè)整數(shù)前面的符號(hào);falg=true;if(arr2.size()-falg2=arr1.size()-falg1)for(int i=0;iarr2i+falg2)
2、falg=true;break;if(i=arr1.size()-falg1-1) falg=false;if(falg)for(int i=arr1.size()-1;i=falg1;i-)node *s;s=new node;s-num=arr1i-0;/從輸入的整數(shù)尾部逆向建立鏈表if(fir=NULL) fir=s;else efir-next=s;efir=s;efir-next=NULL;/尾結(jié)點(diǎn)的next一定要賦NULL,不然會(huì)出現(xiàn)錯(cuò)誤for(int i=arr2.size()-1;i=falg2;i-)node *s;s=new node;s-num=arr2i-0;if(se
3、c=NULL) sec=s;else esec-next=s;esec=s;esec-next=NULL;elsefor(int i=arr2.size()-1;i=falg2;i-)node *s;s=new node;s-num=arr2i-0;if(fir=NULL) fir=s;else efir-next=s;efir=s;efir-next=NULL;for(int i=arr1.size()-1;i=falg1;i-)node *s;s=new node;s-num=arr1i-0;if(sec=NULL) sec=s;else esec-next=s;esec=s;esec-n
4、ext=NULL;if(opration=+) return;if(!falg) f=!f;/f表示整個(gè)運(yùn)算結(jié)果的正負(fù)void add()/實(shí)現(xiàn)加法bool falg=false;/標(biāo)記是否進(jìn)位int num2=sec-num;for(node *head1=fir,*head2=sec;head1;head1=head1-next)/因?yàn)橐詅ir為表頭建立的鏈表所保存的整數(shù)較大,所以,以sec為表頭建立的鏈表會(huì)先或者同時(shí)遍歷到表位int num1=head1-num;head1-num=(falg+num1+num2)%10;falg=(falg+num1+num2)/10;if(head2
5、-next) /判斷以sec為表頭的鏈表是否達(dá)到表尾head2=head2-next;num2=head2-num;else num2=0;if(f) cout-;if(falg) coutnext)ansi=head1-num+0;i+;for(i-;i=0;i-)coutnum;bool falg=false;/判是否退位for(node *head1=fir,*head2=sec;head1;head1=head1-next)int num1=head1-num;head1-num=num1-num2-falg;if(num1-falg-num2num=head1-num+10;else
6、 falg=false;if(head2-next)head2=head2-next;num2=head2-num;else num2=0;int i=0;char *ans=new charsizeof(arr1)+sizeof(arr2);for(node *head1=fir;head1;head1=head1-next)ansi=head1-num+0;i+;i-;falg=false;for(int j=0;j=i;j+)if(ansj!=0) break;if(j=i)falg=true;cout0;return;if(f) cout=0;i-)coutnext;delete te
7、m;for(;sec;)tem=sec;開始sec=sec-next;delete tem;tem=fir=efir=sec=esec=NULL;輸入式子判操作程序流程圖實(shí)現(xiàn)加法實(shí)現(xiàn)減法輸出結(jié)果結(jié)束三、程序測(cè)試 1、設(shè)計(jì)測(cè)試用例0 + 01 + 110 + 11 + 1010000000000 + 1111111111111111111111111111111111-1 + 11 + -1-10 + 100100 + -10-1000000 + -1000000000010 - 101 - 1010 - 11 - 77 - 15555555555555555555555555555555555
8、5555555 - 555555555555555555555555555555555-10 - -10-11 - -1-1 - -15515-1 - -8-8 - -1-6666666666666666666666666666666666 - -6666666666666666666666666 2、程序測(cè)試結(jié)果0 + 0 = 01 + 1 = 210 + 1 = 111 + 10 = 1110000000000 + 1111111111111111111111111111111111 = 1111111111112111111111111111111111 -1 + 1 = 01 + -1
9、 = 0-10 + 100 = 90100 + -10 = 90-1000000 + -10000000000 = -1000100000010 - 10 = 01 - 10 = -910 - 1 = 91 - 7 = -67 - 1 = 655555555555555555555555555555555555555555 - 555555555555555555555555555555555 = 55555555-10 - -10 = 0-11 - -1 = -10-1 - -15515 = 15514-1 - -8 = 7-8 - -1 = -7-666666666666666666666
10、6666666666666 - -6666666666666666666666666 = -666666666000四、使用說明 能正確實(shí)現(xiàn)兩個(gè)大整數(shù)(包括正負(fù))相加減的運(yùn)算5、 收獲體會(huì)及建議完整代碼:#include #include #include #include using namespace std;struct nodeint num;node * next;bool f,falg1,falg2;string arr1,arr2;char opration;node *fir=NULL,*efir=NULL,*sec=NULL,*esec=NULL;void creatlist
11、()bool falg=false;if(arr1.size()-falg1arr2.size()-falg2)falg=true;if(arr2.size()-falg2=arr1.size()-falg1)for(int i=0;iarr2i+falg2) falg=true;break;if(i=arr1.size()-falg1-1) falg=false;if(falg)for(int i=arr1.size()-1;i=falg1;i-)node *s;s=new node;s-num=arr1i-0;if(fir=NULL) fir=s;else efir-next=s;efir
12、=s;efir-next=NULL;for(int i=arr2.size()-1;i=falg2;i-)node *s;s=new node;s-num=arr2i-0;if(sec=NULL) sec=s;else esec-next=s;esec=s;esec-next=NULL;elsefor(int i=arr2.size()-1;i=falg2;i-)node *s;s=new node;s-num=arr2i-0;if(fir=NULL) fir=s;else efir-next=s;efir=s;efir-next=NULL;for(int i=arr1.size()-1;i=
13、falg1;i-)node *s;s=new node;s-num=arr1i-0;if(sec=NULL) sec=s;else esec-next=s;esec=s;esec-next=NULL;if(opration=+) return;if(!falg) f=!f;void add()bool falg=false;int num2=sec-num;for(node *head1=fir,*head2=sec;head1;head1=head1-next)int num1=head1-num;head1-num=(falg+num1+num2)%10;falg=(falg+num1+n
14、um2)/10;if(head2-next) head2=head2-next;num2=head2-num;else num2=0;if(f) cout-;if(falg) coutnext)ansi=head1-num+0;i+;for(i-;i=0;i-)coutnum;bool falg=false;for(node *head1=fir,*head2=sec;head1;head1=head1-next)int num1=head1-num;head1-num=num1-num2-falg;if(num1-falg-num2num=head1-num+10;else falg=fal
15、se;if(head2-next)head2=head2-next;num2=head2-num;else num2=0;int i=0;char *ans=new charsizeof(arr1)+sizeof(arr2);for(node *head1=fir;head1;head1=head1-next)ansi=head1-num+0;i+;i-;falg=false;for(int j=0;j=i;j+)if(ansj!=0) break;if(j=i)falg=true;cout0;return;if(f) cout=0;i-)coutnext;delete tem;for(;sec;)tem=sec;sec=sec-next;delete tem;tem=fir=efir=sec=esec=NULL;int main() cout輸入算式,形如:endl;couta + b or a - barr1oprationarr2)char tem=opration;f=false,falg1=false,falg2=false;if(arr10=-) falg1=true;if(arr20=-) falg2=true;if(opration=-&falg2)opration=+;if(falg1) f=true;op
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安徽農(nóng)業(yè)大學(xué)《孟荀比較研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 公司產(chǎn)品價(jià)格調(diào)整通知公告
- 工地噪音標(biāo)準(zhǔn)
- 第15課 明朝的統(tǒng)治 教案2024-2025學(xué)年七年級(jí)歷史下冊(cè)新課標(biāo)
- 屋面噴漆改造施工方案
- 消火栓防撞柱施工方案
- 專項(xiàng)施工方案動(dòng)畫視頻
- 2025年高考?xì)v史風(fēng)標(biāo)訓(xùn)練卷2(含解析)
- 文物清除水銹施工方案
- 5年級(jí)下冊(cè)語文書第4課批準(zhǔn)
- 高處作業(yè)專項(xiàng)安全培訓(xùn)考試試題(帶答案)
- GB/T 24186-2022工程機(jī)械用高強(qiáng)度耐磨鋼板和鋼帶
- 護(hù)理人際關(guān)系倫理
- 中國隧道及地下工程修建技術(shù)PPT
- 不良事件魚骨圖分析
- 三角形章起始課-展示課件
- 有限空間作業(yè)審批表范本
- 超市便利店日常工作檢查記錄表
- 細(xì)支氣管肺泡癌的影像診斷(61頁)
- X射線的物理學(xué)基礎(chǔ)-
- 財(cái)務(wù)英語英漢對(duì)照表
評(píng)論
0/150
提交評(píng)論