學號:20081120064姓名:李雪寒
【實驗題目】
實驗1. 抽象資料型別.
【問題描述】
用c或c++語言設計並實現乙個可進行複數運算的演示程式。
【基本要求】
1.由輸入的實部和虛部生成乙個複數
2.兩個複數求和
3.兩個複數求差
4.從已知複數中分離出實部和虛部
5.複數及相應運算結果以相應的表現形式顯示。
【實現提示】
定義複數為由兩個相互之間存在次序關係的實數構成的抽象資料型別,則可以利用實數的操作來實現複數的操作。
一、【概要設計】
熟悉抽象資料型別的表示和實現方法。抽象資料型別需借助固有資料型別來表示和實現,即利用處理器中已存在的資料型別來說明新的結構,用已經實現的操作來組合新的操作。抽象資料型別可以使我們更容易描述現實世界。
例:用線性表描述學生成績表,用樹或圖描述遺傳關係。對乙個抽象資料型別進行定義時,必須給出它的名字及各運算的運算子名,即函式名,並且規定這些函式的引數性質。
一旦定義了乙個抽象資料型別及具體實現,程式設計中就可以像使用基本資料型別那樣,十分方便地使用抽象資料型別。抽象資料型別的描述包括給出抽象資料型別的名稱、資料的集合、資料之間的關係和操作的集合等方面的描述。
主程式模組:
printf("請輸入第乙個複數的實部和虛部,中間以空格隔開:");
scanf("%f %f",&a,&b);
printf("請輸入第二個複數的實部和虛部,中間以空格隔開:");
scanf("%f %f",&c,&d);
/*輸入兩個複數的實部和虛部*/
creatcomplex(c1,a,b);
printcomplex(c1);
printreal(c1);
printimage(c1);
creatcomplex(c2,c,d);
printcomplex(c2);
printreal(c2);
printimage(c2);
/*通過呼叫creatcomplex(),printcomplex(),printreal(),printimage()函式,用輸入的實部和虛部生成複數並輸出出來,再從中分離出實部和虛部*/
addcomplex(sum,c1,c2);
printcomplex(sum);/*求和*/
subcomplex(sub,c1,c2);
printcomplex(sub);/*求差*/
mulcomplex(mul,c1,c2);
printcomplex(mul);/*求積*/
}子程式模組:
void creatcomplex(complex& c,float a,float b)
/*構造複數,包括實部和虛部*/
void addcomplex(complex& sum,complex c1,complex c2)
/*求和*/
void subcomplex(complex& sub,complex c1,complex c2 )
/*求差*/
void mulcomplex(complex& mul,complex c1,complex c2 )
/*求積*/
void printcomplex(complex c)
}/*按複數的形式輸出複數*/
void printreal(complex c)
/*輸出複數的實部*/
void printimage(complex c)
/*輸出複數的虛部*/
二、【詳細設計】
1、分別編寫出對兩個複數求和、求差、求積以及輸出複數和複數的實部虛部的函式,通過在主程式中呼叫這些函式,來達到實驗要求。
2、將複數定義為由兩個相互之間存在次序關係的實數構成的抽象資料型別,利用實數的操作來實現複數的操作。
三、【測試結果】
測試資料:
1)3.1,0;4.2,8.9
2)-1.33,2.34;1,0.9
測試結果:
1)3.10
該複數的實部是:3.10
該複數的虛部是:0.00
4.2+8.90i
該複數的實部是:4.20
該複數的虛部是:8.90
7.30+8.90i
-1.10+-8.90i
13.02+27.59i
2)-1.33+2.34i
該複數的實部是:-1.33
該複數的虛部是:2.34
1.00+0.90i
該複數的實部是:1.00
該複數的虛部是:0.90
-0.33+3.24i
-2.33+1.44i
-3.44+1.14i
四、【實驗總結】
1. 通過學習以前c語言課程中的函式思想,可以重新熟悉函式在程式設計中的設定方法,熟悉函式中引數的設定和傳遞過程.
2. 通過多個函式出現在同乙個程式中的實現,便於熟悉全域性變數和區域性變數在程式中的不同作用域的問題.
3. 通過抽象資料型別的運用,更好地熟悉抽象資料型別的概念和功能。
五、【**】
#include <>
#include <>
typedef struct complex
complex;
void creatcomplex(complex& c,float a,float b);
void addcomplex(complex& sum,complex c1,complex c2 );
void subcomplex(complex& sub,complex c1,complex c2 );
void mulcomplex(complex& mul,complex c1,complex c2 );
void printcomplex(complex c);
void creatcomplex(complex& c,float a,float b)
void addcomplex(complex& sum,complex c1,complex c2)
void subcomplex(complex& sub,complex c1,complex c2 )
void mulcomplex(complex& mul,complex c1,complex c2 )
void printcomplex(complex c)
}void printreal(complex c)
void printimage(complex c)
void main()
複數代數形式的四則運算 學生學案 1
3.2.1複數代數形式的加減運算及幾何意義 例1 課本p57例1 計算 5 6i 2 i 3 4i 例2計算 1 2i 2 3i 3 4i 4 5i 2002 2003i 2003 2004i 例3已知複數z1 2 i,z2 1 2i在復平面內對應的點分別為a b,求對應的複數z,z在平面內所對應的...
四則運算例1例
教學過程與教學資源設計 例2年級 四年級授課時間 2014年月日 1 能複述含有同一級運算的運算順序。2 能用遞等式正確運算兩步式題。教學目標 3 能用量的關係來描述解題思路。4 經歷解決實際問題的過程,感受運算順序與解題思路的同一性。教學重點教學難點教學準備 重點 用量的關係來描述解題思路 用遞等...
導數的四則運算
選修1 2 3.1.3導數的四則運算法則 一 選擇題 1 函式f x 的導數是 2 函式y x a x b 在x a處的導數為 a ab b a a b c 0 d a b 3 函式y 的導數是 a b sinx c d 4 已知f x ax3 3x2 2,若f 1 4,則a的值是 a.b.c.d....