課程名稱:數據結構 班級:xxxx 實驗成績:
指導老師:××× 姓名:xxx
實驗項目名稱:復數四則運算 學號:2005810112 上機實踐日期:
實驗項目編號:實驗壹 組號: 上機實踐時間:學時
壹. 目的(本次試驗所涉及並要求掌握的知識點)
熟悉抽象數據類型的表示和實現方法。抽象數據類型需借助固有數據類型來表示和實現,及利用高級程序設計語言中已存在的數據類型來說明新的結構,用已經實現的操作來組合新的操作,具體實現細節則依賴於所用的語言的功能。通過本次實習還可以幫助讀者復習高級語言的使用方法。
二.實驗內容與設計思想(設計思路 主要數據結構 主要代碼結構。主要代碼段分析 電路圖)
1.問題描述
設計壹個可進行復數運算的演示程序
2.基本要求
實現下列六種基本運算:1)由輸入的實部和虛部生成壹個復數;2)兩個復數求和;3)兩個復數求差;4)兩個復數的求積;5)從已知復數中分離出實部;6)從已知復數中分離出虛部。運算結果以相應的復數或實數的表示形式顯示。
3.程序代碼
#include
typedef struct Complex
{
float shi;
float xu;
}Complex;
void CreatComplex(Complex &c,float a,float b)
{
c.shi=a;
c.xu=b;
}
void AddComplex(Complex &sum,Complex c1,Complex c2)
{
sum.shi=c1.shi+c2.shi;
sum.xu=c1.xu+c2.xu;
}
void ChaComplex(Complex &cha,Complex c1,Complex c2)
{
cha.shi=c1.shi-c2.shi;
cha.xu=c1.xu-c2.xu;
}
void JiComplex(Complex &ji,Complex c1,Complex c2)
{
ji.shi=c1.shi*c2.shi-c1.xu*c2.xu;
ji.xu=c1.shi*c2.xu+c1.xu*c2.shi;
}
void Print(Complex c)
{
if(c.shi==0.0)
printf("%5.2f\n",c.shi);
else
printf("%5.2f+i%5.2f\n",c.shi,c.xu);
if(c.xu==0.0)
printf("%i5.2f\n",c.xu);
}
void Print_shi(Complex c)
{
printf("該復數的實部是:%5.2f\n",c.shi);
}
void Print_xu(Complex c)
{
printf("該復數的虛部是:i%5.2f\n",c.xu);
}
void main()
{
float a,b,c,d;
int i,j;
Complex c1,c2,sum,cha,ji;
printf("請分別輸入兩個復數的實部和虛部:\n");
scanf("%f%f%f%f",&a,&b,&c,&d);
CreatComplex(c1,a,b);
Print(c1);
Print_shi(c1);
Print_xu(c1);
CreatComplex(c2,c,d);
Print(c2);
Print_shi(c2);
Print_xu(c2);
printf("1.求和,\t2.求差,\t3.求積\t,4.退出\n");
for(j=0;;j++)
{
scanf("%d",&i);
switch(i)
{
case 1:
AddComplex(sum,c1,c2);
Print(sum);
Print_shi(sum);
Print_xu(sum);
break;
case 2:
ChaComplex(cha,c1,c2);
Print(cha);
Print_shi(cha);
Print_xu(cha);
break;
case 3:
JiComplex(ji,c1,c2);
Print(ji);
Print_shi(ji);
Print_xu(ji);
break;
case 4:
return;
}
}
}
三.實驗使用環境(本實驗所使用的平臺和相關的軟件)
Microsoft Visual C++ 6.0
四. 實驗步驟和調試過程(實驗步驟 測試數據設計 測試結果分析)
1.測試數據設計
測試數據: 1)0,0;0,0
2)3.1,0;4.22,8.9
3)-1.33,2.34;0.1,-6.5
4)0,9.7;-2.1,-9.7
5)7.7,-8;-7.7,0
測試結果: 1)0
2)7.32+i8.9
3)-1.23-i4.16
4)-2.1
5)-i8
2測試結果:
圖略
五. 實驗小結(實驗過程中遇到的問題及解決過程.實驗體會和收獲)
1. 通過學習以前C語言課程中的函數思想,可以重新熟悉函數在編程中的設置方法,熟悉函數中參數的設置和傳遞過程.
2. 通過多個函數出現在同壹個程序中的實現,便於熟悉全局變量和局部變量在程序中的不同作用域的問題.
六.附錄(參考文獻和相關資料)
[1]嚴蔚敏,吳偉民編著:《數據結構(C語言版)》,北京:清華大學出版社,1997
[2]嚴蔚敏,吳偉民,米寧編著:《數據結構題集(C語言版)》,北京:清華大學出版社