版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 實驗1. 抽象數(shù)據(jù)類型.【問題描述】用C或C+語言設(shè)計并實現(xiàn)一個可進(jìn)行復(fù)數(shù)運算的演示程序。【基本要求】1.由輸入的實部和虛部生成一個復(fù)數(shù)2.兩個復(fù)數(shù)求和3.兩個復(fù)數(shù)求差4.從已知復(fù)數(shù)中分離出實部和虛部5.復(fù)數(shù)及相應(yīng)運算結(jié)果以相應(yīng)的表現(xiàn)形式顯示?!緦崿F(xiàn)提示】定義復(fù)數(shù)為由兩個相互之間存在次序關(guān)系的實數(shù)構(gòu)成的抽象數(shù)據(jù)類型,則可以利用實數(shù)的操作來實現(xiàn)復(fù)數(shù)的操作。(下面的內(nèi)容由學(xué)生填寫,格式統(tǒng)一為,字體: 楷體, 行距: 固定行距18,字號: 小四)一、【實驗構(gòu)思(Conceive)】(10%)(本部分應(yīng)包括:描述實驗實現(xiàn)的基本思路,包括所用到的離散數(shù)學(xué)、工程數(shù)學(xué)、程序設(shè)計、算法等相關(guān)知識)算法分析:
2、1、 設(shè)計一個可進(jìn)行復(fù)數(shù)運算的演示程序。實現(xiàn)抽象數(shù)據(jù)類型復(fù)數(shù),及構(gòu)造復(fù)數(shù)。2、 完成復(fù)數(shù)四則運算的函數(shù)聲明。3、 主程序接收和輸出復(fù)數(shù)。4、 Switch函數(shù)選擇所要進(jìn)行的運算,輸出運算結(jié)果。二、【實驗設(shè)計(Design)】(15%)(本部分應(yīng)包括:抽象數(shù)據(jù)類型的功能規(guī)格說明、主程序模塊、各子程序模塊的偽碼說明,主程序模塊與各子程序模塊間的調(diào)用關(guān)系)抽象數(shù)據(jù)類型的定義:1、 數(shù)據(jù)對象:由結(jié)構(gòu)體類型定義一個復(fù)數(shù)。2、 數(shù)據(jù)關(guān)系:(1)兩個操作數(shù)real和imag具有序偶關(guān)系,real表示實部,imag表示虛部。3、 基本操作:(1)CreatComplexNumber (cpxNum *c,do
3、uble a,double b) 操作結(jié)果:構(gòu)造兩個復(fù)數(shù)。 (2)cplus(cpxNum *c,cpxNum c1,cpxNum c2) 操作結(jié)果:實現(xiàn)兩個復(fù)數(shù)加法,并輸出結(jié)果。 (3)cminus(cpxNum *c,cpxNum c1,cpxNum c2) 操作結(jié)果:實現(xiàn)兩個復(fù)數(shù)減法,并輸出結(jié)果。 (4)cmultiply(cpxNum *c,cpxNum c1,cpxNum c2) 操作結(jié)果:實現(xiàn)兩個復(fù)數(shù)除法,并輸出結(jié)果。 (5)cdivide(cpxNum *c,cpxNum c1,cpxNum c2) 操作結(jié)果:實現(xiàn)兩個復(fù)數(shù)除法,并輸出結(jié)果。主程序模塊:1、 實現(xiàn)難度A的輸入、輸出
4、。2、 switch(number) case 1: . break; case 2: . break; case 3: . break; case 4: . break; case 5: . Switch語句實現(xiàn)輸出選擇,運行過程中,用戶可以自己選擇所要進(jìn)行的運算,也可以全部輸出結(jié)果。3、 在switch語句實現(xiàn)函數(shù)調(diào)用。各子程序模塊:例如:void cplus(cpxNum *c,cpxNum c1,cpxNum c2)c->real=c1.real+c2.real;c->imag=c1.imag+c2.imag;printf("n數(shù)據(jù)和為:%3.2f%+3.2fin
5、", c->real,c->imag);分別計算復(fù)數(shù)的實部和虛部,用指針分別指向兩個復(fù)數(shù),并輸出結(jié)果。主程序模塊與各子程序模塊間的調(diào)用:在switch語句中實現(xiàn)函數(shù)調(diào)用。例如:cplus(&c,c1,c2); 函數(shù)名(參數(shù))三、【實現(xiàn)描述(Implement)】(25%)(本部分應(yīng)包括:抽象數(shù)據(jù)類型具體實現(xiàn)的函數(shù)原型說明、 關(guān)鍵操作實現(xiàn)的偽碼算法、 函數(shù)設(shè)計、函數(shù)間的調(diào)用關(guān)系,關(guān)鍵的程序流程圖等,給出關(guān)鍵算法的時間復(fù)雜度分析。)抽象數(shù)據(jù)類型具體實現(xiàn)的函數(shù)原型說明例如:void cmultiply(cpxNum *c,cpxNum c1,cpxNum c2)prin
6、tf("n數(shù)據(jù)積為:%3.2f%+3.2fin", c->real,c->imag);C為聲明的復(fù)數(shù),指向復(fù)數(shù)的運算結(jié)果四、【測試結(jié)果(Testing)】(20%)(本部分應(yīng)包括:對實驗的測試結(jié)果,應(yīng)具體列出每次測試所輸入的數(shù)據(jù)以及輸出的數(shù)據(jù),并對測試結(jié)果進(jìn)行分析總結(jié))選擇1時輸出結(jié)果:選擇5時輸出所有結(jié)果:四、【實驗總結(jié)】(10%)(本部分應(yīng)包括:自己在實驗中完成的任務(wù),注意組內(nèi)的任意一位同學(xué)都必須獨立完成至少一項接口的實現(xiàn);對所完成實驗的經(jīng)驗總結(jié)、心得)學(xué)得知識:1、 通過本次實驗練習(xí)創(chuàng)建和調(diào)用函數(shù)。2、 理解了抽象數(shù)據(jù)類型,明確一個抽象數(shù)據(jù)類型ADT就是:
7、數(shù)據(jù) + 操作。心得:1、 編寫程序時要構(gòu)造友好的運行界面。2、 忘記了switch語句中case和數(shù)字之間要有空格。五、【項目運作描述(Operate)】(10%)(本部分應(yīng)包括:項目的成本效益分析,應(yīng)用效果等的分析。)應(yīng)用效果:1、 基本實現(xiàn)了復(fù)數(shù)的四則運算,可以讓用戶自由選擇運算類型。2、 有友好的運行界面。3、 為難度C提供了基本算法。六、【代碼】(10%)(本部分應(yīng)包括:完整的代碼及充分的注釋。 注意紙質(zhì)的實驗報告無需包括此部分。格式統(tǒng)一為,字體: Georgia , 行距: 固定行距12,字號: 小五)#include <stdio.h>#include <mat
8、h.h>/定義復(fù)數(shù)類型的存儲結(jié)構(gòu)typedef struct double real; /復(fù)數(shù)的實部double imag; /復(fù)數(shù)的虛部 cpxNum; /定義結(jié)構(gòu)體類型cpxNum表示“復(fù)數(shù)” /*復(fù)數(shù)類型接口函數(shù)的定義部分*/ /*用double a, double b 初始化復(fù)數(shù)c*/ void CreateComplexNumber(cpxNum *c,double a,double b) c->real=a; c->imag=b;/*實現(xiàn)兩個復(fù)數(shù)c1, c2的加法, 和作為結(jié)果輸出*/ void cplus(cpxNum *c,cpxNum c1,cpxNum c
9、2) c->real=c1.real+c2.real; c->imag=c1.imag+c2.imag; printf("n數(shù)據(jù)和為:%3.2f%+3.2fin", c->real,c->imag);/*實現(xiàn)兩個復(fù)數(shù)c1, c2的減法, 差作為結(jié)果輸出*/ void cminus(cpxNum *c,cpxNum c1,cpxNum c2) c->real=c1.real-c2.real; c->imag=c1.imag-c2.imag;printf("n數(shù)據(jù)差為:%3.2f%+3.2fin", c->real,
10、c->imag);/*實現(xiàn)兩個復(fù)數(shù)c1, c2的乘法, 積作為結(jié)果輸出*/ void cmultiply(cpxNum *c,cpxNum c1,cpxNum c2) printf("n數(shù)據(jù)積為:%3.2f%+3.2fin", c->real,c->imag);/*實現(xiàn)兩個復(fù)數(shù)c1, c2的除法, 輸出結(jié)果*/ void cdivide(cpxNum *c,cpxNum c1,cpxNum c2) double result_real,result_imag; printf("n結(jié)果為:%3.2f%+3.2fin", c->rea
11、l,c->imag);int main( )cpxNum c1, c2,c; /聲明兩個'復(fù)數(shù)'類型的變量double a,b;/聲明2個雙精度數(shù),用于接收復(fù)數(shù)的實部和虛部 char e,d;/聲明兩個字符,用于顯示復(fù)數(shù)的符號 int number; /*輸入兩個復(fù)數(shù)*/ printf("輸入第一個復(fù)數(shù) n "); printf("(如果你輸入復(fù)數(shù)的虛部為負(fù)數(shù),則在輸入虛部之前輸入空格): n"); scanf("%lf%c%lf%c",&a,&e,&b,&d); CreateCo
12、mplexNumber(&c1,a,b); printf("你輸入的第一個數(shù)是: %2.1f%c%2.1fin",a,e,b); printf("輸入第二個復(fù)數(shù) n");/兩個復(fù)數(shù)輸入之間插入空行,使顯示明顯 printf("(如果你輸入復(fù)數(shù)的虛部為負(fù)數(shù),則在輸入虛部之前輸入空格): n"); scanf("%lf%c%lf%c",&a,&e,&b,&d); CreateComplexNumber(&c2,a,b); printf("你輸入的第二個數(shù)是: %2.1f%c%2.1fin",a,e,b); /*調(diào)用復(fù)數(shù)加減乘除函數(shù),并在每個函數(shù)中輸出運算結(jié)果*/ printf("選擇一種運算,1為加法,2為減法,3為乘法,4為除法, 5為輸出所有結(jié)果:"); scanf("%d",&number); switch(number) case 1: cplus(&c,c1,c2); break; case 2: cminus(&c,c1,c2); break; case 3: cmultiply(&c,c1,c2); break; ca
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 通訊行業(yè)營業(yè)員崗位總結(jié)
- 幼兒園工作總結(jié)點亮孩子未來的希望
- 醫(yī)療器械行業(yè)技術(shù)崗位總結(jié)
- 2024校園消防安全應(yīng)急預(yù)案(34篇)
- 減資協(xié)議書(2篇)
- 別墅區(qū)住宅租賃協(xié)議(2篇)
- 全民讀書心得體會
- Unit1TeenageLife(詞匯短語句式)-2025屆高三人教版英語一輪復(fù)習(xí)闖關(guān)攻略(解析版)
- 第9課 列寧與十月革命(分層作業(yè))(解析版)
- 2023-2024學(xué)年北京市昌平區(qū)高三上學(xué)期期末考試地理試題(解析版)
- 工會經(jīng)費收支預(yù)算表
- 舒爾特方格55格200張?zhí)岣邔W⒘4紙直接打印版
- 質(zhì)量管理體系各條款的審核重點
- 聚丙烯化學(xué)品安全技術(shù)說明書(MSDS)
- 流動資金測算公式
- BBC美麗中國英文字幕
- 衛(wèi)生院工程施工組織設(shè)計方案
- CDR-臨床癡呆評定量表
- 《八年級下學(xué)期語文教學(xué)個人工作總結(jié)》
- 鋁合金門窗制作工藝卡片 - 修改
- 恒亞水泥廠電工基礎(chǔ)試題
評論
0/150
提交評論