freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c課程設(shè)計報告--小型特殊計算器(已修改)

2025-06-01 19:15 本頁面
 

【正文】 課程設(shè)計報告 課程: 面向?qū)ο蟪绦蛟O(shè)計 學(xué)號: 姓名: 班級: 教師: 塔里木大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院 課程設(shè)計名稱: 小型特殊計算器 : 實現(xiàn)一個特殊的計算器,可以實現(xiàn)復(fù)數(shù)、有理數(shù)、矩陣和集合的特殊計算。程序可以實現(xiàn)復(fù)數(shù)、有理數(shù)的加、減、乘、除,可以實現(xiàn)矩陣的加法、減法和乘法運(yùn)算,也可以實現(xiàn)集合的求交集、并集、子集的運(yùn)算。 : 設(shè)計目的 達(dá)到熟練掌握 C++語言的基本知識和技能; 基本掌握面向?qū)ο蟪绦蛟O(shè)計的基本思路和方法; 能夠利用所學(xué)的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計問題。 設(shè)計要求 要求利用面向?qū)ο蟮姆椒ㄒ约?C++的編程思想來完成系統(tǒng)的設(shè)計; 要求在設(shè)計的過程中,建立清晰的類層次; 在系統(tǒng)的設(shè)計中,至少要用到面向?qū)ο蟮囊环N機(jī)制。 主要知識點 運(yùn)算符重載增加了 C++語言的可擴(kuò)充性。運(yùn)算符的重載實際上就是一種函數(shù)調(diào)用的形式,可以用成員函數(shù)重載運(yùn)算符,就是將運(yùn)算符重載定義為一個類的成員函數(shù)的形 式;也可以用友元函數(shù)重載。用友元重載運(yùn)算符的友元函數(shù)是獨立于類以外的一般函數(shù)。 關(guān)鍵技術(shù) 程序中每一種數(shù)據(jù)類型用一個類來實現(xiàn),共設(shè)計了 4 個類。復(fù)數(shù)類 plex,矩陣類 matrix,有理數(shù)類 rational 以及集合類 set。每一種類都定義了相應(yīng)的運(yùn)算符重載函數(shù)。具體定義如下所示: ( 1)類 plex 類 plex中,成員變量 image 表示虛部, real 表示實部。成員函數(shù) print()用來顯示數(shù)據(jù)。運(yùn)算符重載函數(shù)都是用友元函數(shù)來實現(xiàn)的。分別重載 +、 、 *、 /運(yùn)算符。 ( 2)類 matrix 類 matrix中,成員變量 elems 用來存放矩陣的所有元素, rows 表示矩陣的行, cols 表示矩陣的列。成員函數(shù) SetElems()用來給矩陣中的每一個元素賦值,Disp()用來顯示矩陣中的所有元素。其它友元函數(shù)分別重載 +、 、 *、 /運(yùn)算符。 ( 3)類 rational 類 rational 中,有兩個成員變量: denominator 用來表示有理數(shù)的分母,numerator 表示有理數(shù)的分子。有理數(shù)成員函數(shù) print()用來顯示有理數(shù),optimization()用來優(yōu)化有理數(shù)函數(shù)。友元函數(shù) real()用來將有理數(shù)轉(zhuǎn)換 為實數(shù),其它友元函數(shù)分別重載 +、 、 *、 /運(yùn)算符。 ( 4)類 set 類 set 中,有兩個成員變量: elems 用來存儲集合中的元素, card 表示集合中元素的個數(shù)。成員函數(shù) print()用來輸出集合中的元素, additem()用來給集合增加元素。友元函數(shù)分別重載了 amp。、 ==、 !=、 +、 *、 、 =運(yùn)算符。 程序中的運(yùn)算符重載函數(shù)都用友元函數(shù)來實現(xiàn)。 ① 類 plex的友元函數(shù) 復(fù)數(shù)的表達(dá)形式為 a+bi,對復(fù)數(shù)進(jìn)行運(yùn)算符重載不像對一般書進(jìn)行運(yùn)算那樣簡單,它的運(yùn)輸方法如下: 加法: (a+bi)+(c+di)=(a+c)+(b+d)i 減法: (a+bi)(c+di)=(ac)+(bd)i 乘法: (a+bi)*(cdi)=(acbd)+(ad+bc)i 除法: (a+bi)/(c+di)=((a+bi)*(cdi))/(c2+d2) 重載函數(shù)將以上算法用在了函數(shù)中。 ② 類 matrix的友元函數(shù) 矩陣類的賦值,實質(zhì)上是給二維數(shù)組賦值;矩陣相加減就是兩個行數(shù)列數(shù)相同的二維數(shù)組相加減;二維數(shù)組相乘,其實就是兩個二維數(shù)組,其中一個的行數(shù)等于另一個的列數(shù),按矩陣相乘的法則進(jìn)行計算。 ③ 類 rational 的友元函數(shù) 對有理數(shù)類進(jìn)行的操作有下面幾種: 有理數(shù)相加: 當(dāng)兩個有理數(shù) a/b 和 c/d 相加時,可得到這樣的算式: a/b+c/d=(a*d+b*c)/(b*d) 有理數(shù)相減: 當(dāng)兩個有理數(shù) a/b 和 c/d 相減時,得到的結(jié)果是: 分子: a*db*c 分母: b*d 有理數(shù)相乘: 當(dāng)兩個有理數(shù) a/b 和 c/d 相乘時,得到的結(jié)果是: 分子: a*c 分母: b*d 有理數(shù)相除: 當(dāng)兩個有理數(shù) a/b 和 c/d 相除時,得到的結(jié)果是: 分子: a*d 分母: b*c 每次得到結(jié)果時,都需要對有理數(shù)進(jìn)行優(yōu)化。 ④ 類 set 的友元函數(shù) 集合類的運(yùn)算符重載操作主要有以下幾種: 判定某一元素是否屬于集合: 此操作用重載運(yùn)算符函數(shù) amp。實現(xiàn),返回值只有兩種情況 true 或者 false,取bool 類型。 判斷兩個集合是否相等: 判定兩個集合是否相等,需要看兩個集合中所包含的元素是否相同,并且不管順序如何。用重載運(yùn)算符 ==來實現(xiàn)。 判斷兩個集合是否不等: 是相等操作的取反,用 !=來實現(xiàn) 兩個集合的交集: 即求出兩個集合中的公共元素,用運(yùn)算符 *實現(xiàn)。 兩個個集合的并集: 即兩個集合相合并,合并以后去掉重復(fù)的元素,用運(yùn)算符 +來實現(xiàn)。 判定一個集合是否是另一個集合的子集: 用運(yùn)算符 =來實現(xiàn) 判定一個集合是否是另一個集合的純子集: 用運(yùn)算符 實現(xiàn) 基本功能要求 ( 1)功能選擇可以用菜單來實現(xiàn) 例如: 請選擇您的計算內(nèi)容: 1. 復(fù)數(shù)計算 2. 有理數(shù)計算 3. 矩陣計算 4. 集合計算 0. 退出 用戶通過輸入不同的數(shù)字進(jìn)入不同的菜單。次級菜單主要顯示本程序的功能,主要的功能有加法、減法、乘法和除法以及集合的求交集、求并集、求子集。 ( 2)運(yùn)行時給出明確的提示信息。 比如 ,輸入一個什么類型的數(shù)據(jù)。根據(jù)用戶的輸入計算輸出結(jié)果。由于數(shù)據(jù)類型比較多,可以一次輸入第一個復(fù)數(shù)的實部,第一個復(fù)數(shù)的虛部,再輸入第二個復(fù)數(shù)的實部、虛部。矩陣運(yùn)算需要先輸入矩陣的行數(shù)和列數(shù),然后依次輸出矩陣的第一行第一列的元素、第一行第二列的元素等等,依次類推。有理數(shù)運(yùn)算需要一次輸入有理數(shù)的分子、分母。集合運(yùn)算需要輸入集合的元素個數(shù),然后依次輸入集合中的每一個元素。 (確定程序功能模塊 ) 本程序的功能結(jié)構(gòu)如 1 所示: 圖 1 程序功能結(jié)構(gòu)圖 /*****************************************************************************/ // : interface for the plex class. include class plex { public: void print()。 plex()。 plex(float r,float i) { real= r。 image= i。 } virtual ~plex()。 friend plex operator + (plex a,plex b)。 friend plex operator (plex a,plex b)。 friend plex operator * (plex a,plex b)。 friend plex operator / (plex a,plex b)。 private: float image。 float real。 }。 /*****************************************************************************/ // : interface for the rational class. class rational { public: void print()。 //輸出函數(shù) rational(int x=0,int y=0)。 virtual ~rational()。 friend rational operator + (rational num1,rational num2)。 //重載運(yùn)算符 + friend rational operator (rational num1,rational num2)。 //重載運(yùn)算符 friend rational operator * (rational num1,rational num2)。 //重載運(yùn)算符 * friend rational operator / (rational num1,rational num2)。 //重載運(yùn)算符 / friend bool operator ==(rational num1,rational num2)。 //重載運(yùn)算符 == friend double real(rational x)。 //聲明轉(zhuǎn)換函數(shù) private: void optimization()。 //優(yōu)化有理數(shù)函數(shù) int denominator。 //分母 int numerator。 //分子 }。 /*****************************************************************************/ // : interface for the matrix class. class matrix { public: void Disp()。 //顯示矩陣所有元素 int matrix::operator ()(short row, short col)。 //重載運(yùn)算符成員函數(shù) () void SetElem(short row,short col,int val)。 //將元素 (row,col)設(shè)置為 val matrix()。 matrix(short r,short c) { rows= r。 cols= c。 elems= new int[rows*cols]。 } virtual ~matrix()。 friend matrix operator +(matrix p,matrix q)。 //重載運(yùn)算符+ friend matrix operator (matrix p,matrix q)。 //重載運(yùn)算符- friend matrix operator *(matrix p,matrix q)。 //重載運(yùn)算符 private: int * elems。 //存放矩陣的所有元素 sho
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1