實習0-抽象數(shù)據(jù)類型—復數(shù)的實現(xiàn)_第1頁
實習0-抽象數(shù)據(jù)類型—復數(shù)的實現(xiàn)_第2頁
實習0-抽象數(shù)據(jù)類型—復數(shù)的實現(xiàn)_第3頁
實習0-抽象數(shù)據(jù)類型—復數(shù)的實現(xiàn)_第4頁
實習0-抽象數(shù)據(jù)類型—復數(shù)的實現(xiàn)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實 驗 報 告學 院: 專 業(yè): ?數(shù)據(jù)結(jié)構(gòu)?實驗報告姓名學號日期實驗室指導教師設備編號實驗題目實驗1 抽象數(shù)據(jù)類型復數(shù)的實現(xiàn)一 實驗內(nèi)容實驗1 抽象數(shù)據(jù)類型復數(shù)的實現(xiàn)二 實驗目的1. 了解抽象數(shù)據(jù)類型ADT的根本概念,及描述方法。2. 通過對復數(shù)抽象數(shù)據(jù)類型ADT的實現(xiàn),熟悉C語言語法及程序設計。為以后章節(jié)的學習打下根底。三 需求分析復數(shù)抽象數(shù)據(jù)類型ADT的描述及實現(xiàn)。 復數(shù)ADT的描述 ADT complex 數(shù)據(jù)對象:D= c1,c2 c1,c2FloatSet 數(shù)據(jù)關系:R= <c1,c2> c1, c2 D 根本操作:創(chuàng)立一個復數(shù) InitComplex(); 輸出一個復

2、數(shù) OutComplex(); 求兩個復數(shù)相加之和 AddComplex(); 求兩個復數(shù)相減之差 SubComplex(); 求兩個復數(shù)相乘之積 MulComplex(); 求兩個復數(shù)的商 SComplex(); 等等; ADT complex;本實驗實現(xiàn)使用TC2.0實現(xiàn)復數(shù)的描述及操作。具體實現(xiàn)要求:1從鍵盤分別輸入2個復數(shù),并可修改已輸入的復數(shù)。2能輸出指定的復數(shù)。3兩個復數(shù)相加之和,觀察輸出結(jié)果。4兩個復數(shù)相加之差,觀察輸出結(jié)果。5求兩個復數(shù)相乘之積,觀察輸出結(jié)果。6.求兩個復數(shù)的商,觀察輸出結(jié)果。7用戶可看到如下界面: * * 1.輸入復數(shù)C1 * * 2.輸入復數(shù)C2 * * 3

3、.輸出復數(shù)C1 * * 4.輸出復數(shù)C2 * * 5.求C1和C2的和 * * 6.求C1和C2的差 * * 7.求C1和C2的積 * * 8.求C1和C2的商 * * 0.結(jié)束 * * 四 詳細設計步驟1:復數(shù)的抽象數(shù)據(jù)類型的定義。ADT Complex 數(shù)據(jù)對象:D=a,b|a,bFloatSet 數(shù)據(jù)關系:R= <a,b>|a,b D 根本操作:InitComplex(&C,vr,vi);操作結(jié)果:構(gòu)造一個復數(shù),元素a,b分別被賦以參數(shù)vr,vi的值。OutComplex(C);操作結(jié)果:輸出一個復數(shù)。AddComplex(&C,C1,C2);操作結(jié)果:求兩個

4、復數(shù)C1,C2之和,結(jié)果存入C。SubComplex(&C,C1,C2); 操作結(jié)果:求兩個復數(shù)C1,C2之差,結(jié)果存入C。MulComplex(&C,C1,C2); 操作結(jié)果:求兩個復數(shù)C1,C2的積,結(jié)果存入C。 ADT Complex步驟2:復數(shù)的存儲結(jié)構(gòu)及相關操作的聲明。復數(shù)的存儲結(jié)構(gòu)#include <stdio.h>#include <stdlib.h>typedef struct Complexfloat real;float image;Complex;根本操作的聲明:Status InitComplex(&C,vr,vi);操作

5、結(jié)果:構(gòu)造一個復數(shù),元素a,b分別被賦以參數(shù)vr,vi的值。void OutComplex(C);操作結(jié)果:輸出一個復數(shù)。Complex AddComplex(&C,C1,C2);操作結(jié)果:求兩個復數(shù)C1,C2之和,結(jié)果存入C。Complex SubComplex(&C,C1,C2); 操作結(jié)果:求兩個復數(shù)C1,C2之差,結(jié)果存入C。Complex MulComplex(&C,C1,C2); 操作結(jié)果:求兩個復數(shù)C1,C2的積,結(jié)果存入C。Complex SComplex(&C,C1,C2);操作結(jié)果:求兩個復數(shù)C1,C2的商,結(jié)果存入C。步驟3:復數(shù)的根本操作

6、的實現(xiàn)復數(shù)的根本操作:/構(gòu)造一個復數(shù),元素a,b分別被賦以參數(shù)vr,vi的值Status InitComplex(Complex &C, float vr, float vi) C.real = vr; C.image =vi; return OK;/輸出一個復數(shù)void OutComplex(Complex C) “+“i);/求兩個復數(shù)C1,C2之和,結(jié)果存入CComplex AddComplex(Complex &C,Complex C1,Complex C2); C.real = C1.real + C2.real; C.image = C1.image + C2.im

7、age; return C; /求兩個復數(shù)C1,C2之差,結(jié)果存入CComplex SubComplex(Complex &C,Complex C1,Complex C2) C.real = C1.real - C2.real; C.image = C1.image - C2.image; return C; /求兩個復數(shù)C1,C2的積,結(jié)果存入CComplex MulComplex(Complex &C,Complex C1,Complex C2) C.real = C1.real * C2.real + C1.image * C2.image; C.image = C1.r

8、eal * C2.image + C1.image * C2.real; return C; /求兩個復數(shù)C1,C2的商,結(jié)果存入CComplex SComplex(Complex &C, Complex C1, Complex C2)C.real = (C1.real * C2.real + C1.image * C2.image)/(C2.real * C2.real + C2.image * C2.image); C.image = (C1.image * C2.real - C1.real * C2.image)/(C2.real * C2.real + C2.image *

9、C2.image);return C;步驟4:上機編程與調(diào)試 #include "stdafx.h"#include "Complex0515.h"#include "user.h"int main(int argc, char* argv)int flag,flag1;float cr,ci,vr,vi;Complex c1,c2,C; CComplex0506 c;printf(" * n");printf(" * 1.輸入復數(shù)C1 * n");printf(" * 2.輸入復數(shù)C

10、2 * n");printf(" * 3.輸出復數(shù)C1 * n");printf(" * 4.輸出復數(shù)C2 * n");printf(" * 5.求C1和C2的和 * n");printf(" * 6.求C1和C2的差 * n");printf(" * 7.求C1和C2的積 * n");printf(" * 8.求C1和C2的商 * n"); printf(" * 0.結(jié)束 * n"); printf(" * n");whil

11、e(1)printf("請輸入您的選擇08:");scanf("%d",&flag);switch(flag) case 1: printf("請分別輸入復數(shù)C1的實部和虛部空格隔開:"); scanf("%f %f",&vr,&vi); break; case 2: printf("請分別輸入復數(shù)C2的實部和虛部空格隔開:"); scanf("%f %f",&cr,&ci); break; case 3: c.InitComplex(

12、c1,vr,vi); printf("C1="); c.OutComplex(c1); /復數(shù)的初始化 break; case 4: c.InitComplex(c2,cr,ci); printf("C2="); c.OutComplex(c2); break; case 5: c.AddComplex(C,c1,c2); /求兩個復數(shù)的和 printf("C1+C2="); c.OutComplex(C); break; case 6: c.SubComplex(C,c1,c2); /求兩個復數(shù)的差 printf("C1-

13、C2="); c.OutComplex(C); break; case 7: c.MulComplex(C,c1,c2); /求兩個復數(shù)的積 printf("C1*C2="); c.OutComplex(C); break; case 8:Complex(C,c1,c2); /求兩個復數(shù)的商 printf("C1/C2="); c.OutComplex(C); break; case 0: printf("結(jié)束n"); flag1=1; break; default: printf("輸入不合法!n");

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論