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

正文內(nèi)容

c語(yǔ)言與程序設(shè)計(jì)大學(xué)教程(cpp教材第二版)四ppt-資料下載頁(yè)

2024-10-17 03:48本頁(yè)面
  

【正文】 b的矩形面積為 a*b。 。 } catch (S){ coutendl 矩 形 的 面 積 不 能 小 于10!endl。 } catch (L){ coutendl 矩 形 的 面 積 不 能 大 于100!endl。 } } 運(yùn)行結(jié)果為: 請(qǐng)輸入矩形的長(zhǎng)與寬: 3 2 矩形的面積不能小于 10! 請(qǐng)輸入矩形的長(zhǎng)與寬: 20 30 矩形的面積不能大于 100! 2021/11/10 94 例題分析和小結(jié) 例題 【例 】設(shè)計(jì)一個(gè)求兩個(gè)整數(shù)中的大數(shù)的函數(shù) max2, 重載函數(shù) max2使其可以求兩個(gè)實(shí)數(shù)中的大數(shù),設(shè)計(jì)一個(gè)模板函數(shù)max1求兩個(gè)數(shù)中的大數(shù)。 2021/11/10 95 例題 首先定義求兩個(gè)整數(shù)中的大數(shù)的函數(shù) max2(int, int), 其兩個(gè)參數(shù)的數(shù)據(jù)類型為 int, int max2(int a,int b) { if (a = b) return a。 else return b。 } 重載函數(shù) max2(), 使其可以比較兩個(gè)實(shí)數(shù) , double max2(double a, double b) { if (a = b) return a。 else return b。 } 2021/11/10 96 例題 定義函數(shù)模板 max1, template class T T max1(T a, T b) { if (a = b) return a。 else return b。 } void main() { coutmax2(12,35) = max2(12,35)endl。 coutmax2(,) = max2(,)endl。 coutmax1(12,35) = max1(12,35)endl。 coutmax1(,) = max1(,)endl。 } 2021/11/10 97 例題 運(yùn)行結(jié)果為: max2(12,35) = 35 max2(,) = max1(12,35) = 35 max1(,) = 比較 max1()與 max2()的執(zhí)行情況,可以看出他們的運(yùn)行效果是一樣的,模板函數(shù) max1()一個(gè)程序相當(dāng)于重載的兩個(gè) max2函數(shù)。 2021/11/10 98 例題 【 例 】 求函數(shù)表達(dá)式 f(x)= (a + b)/c的值 ,處理除數(shù)為 0的異常 , 要求在 try{}程序塊中調(diào)用一個(gè)可以拋出異常的函數(shù) 。 首先 , 定義一個(gè)識(shí)別異常的類 YC。 class YC{}。 定義可以拋出異常的函數(shù) fe()。 void fe(double x) { if (x == 0) throw YC()。 } 2021/11/10 99 例題 定義異常處理函數(shù) fd()。 void fd(double a,double b,double c) { try{ fe(c)。 cout(a + b)/c = (a+b)/cendl。 } catch(YC){cout除數(shù)不可以為 0 !endl。} } 設(shè)計(jì)主程序 。 void main() { double a,b,c。 a=4。b=6。c=0。 除數(shù)不可以為 0 ! a=3, b=5, c=4 (3 + 5)/4 = 2 2021/11/10 100 解題分析 在例 max2()時(shí),應(yīng)該注意重載函數(shù)的參數(shù)類型不能和原函數(shù)的參數(shù)類型完全相同,在這里max2(int,int)被重載為 max2(double,double); 例 max1()的作用相當(dāng)于被重載的函數(shù) max2(), 但是編寫(xiě)程序的工作量卻比后者要小。 例 , 在程序設(shè)計(jì)時(shí) , 要充分考慮例外的發(fā)生 , 做出相應(yīng)的處理 。 處理例外可以分為 4步: ① 定義識(shí)別異常的類; ② 定義拋出異常的函數(shù); ③ 定義異常處理函數(shù); ④ 編寫(xiě)主程序 。 2021/11/10 101 小結(jié) ? 模板也叫做參數(shù)化的數(shù)據(jù)類型 , 有函數(shù)模板和類模板 。函數(shù)模板的使用 , 使得程序能夠用不同類型的參數(shù)調(diào)用相同的函數(shù);類模板的使用 , 使得程序可以聲明模板的多個(gè)不同類型的對(duì)象 , 這大大縮短了程序的長(zhǎng)度 , 在某種程度上也增加了程序的靈活性 。 在使用模板時(shí)程序員不必關(guān)心所使用的每個(gè)對(duì)象的類型 , 而只要集中精力到程序的算法上面 。 雖然模板有著強(qiáng)大的功能 , 但是想要用好它也需要有豐富的編程經(jīng)驗(yàn) , 否則將會(huì)對(duì)程序的結(jié)構(gòu)和執(zhí)行效率帶來(lái)負(fù)面的影響 。 ? 異常處理是 C++的一個(gè)特點(diǎn) , 它可以分為兩大部分: 一是異常的識(shí)別與拋出 , 二是異常的捕捉與處理 。 在程序中增加異常處理部分有利于程序的有效運(yùn)行 。 2021/11/10 102 實(shí)訓(xùn) 11 建造數(shù)組模板和異常處理 1. 實(shí)訓(xùn)題目 (1)用模板定義一個(gè)類 , 數(shù)據(jù)成員為一個(gè)組數(shù)以及數(shù)據(jù)的個(gè)數(shù) , 成員函數(shù)包括求解該組數(shù)據(jù)的和 , 顯示最大值與最小值 , 求解平均值等 。 (2)編寫(xiě)函數(shù) f(double a, double b, double c)求函數(shù)表達(dá)式的值 。 2. 實(shí)訓(xùn)要求 (1)實(shí)現(xiàn)模板類的屬性函數(shù); (2)正確處理各種異常 。 2021/11/10 103 第 12章 綜合應(yīng)用實(shí)例 ? 本章要點(diǎn) ?商場(chǎng)員工信息登記系統(tǒng)實(shí)例 ?小結(jié) 2021/11/10 104 在軟件的整體設(shè)計(jì)思想上, 面向?qū)ο笈c傳統(tǒng)的結(jié)構(gòu)化方法有著本質(zhì)區(qū)別 。大量的實(shí)例證明,采用面向?qū)ο蟮乃枷朐O(shè)計(jì)的程序在 維護(hù)性 和 重用性 方面明顯優(yōu)于采用結(jié)構(gòu)化思想設(shè)計(jì)的程序。因此,采用面向?qū)ο蟮乃季S方式去分析問(wèn)題,解決問(wèn)題。面向?qū)ο蠓治鰡?wèn)題的方法大致分為以下幾個(gè)步驟: 第 12章 綜合應(yīng)用實(shí)例 2021/11/10 105 (1) 根據(jù)用戶需求進(jìn)行具體分析; (2) 建立對(duì)象模型,確定其屬性和功能; (3) 將公共部分抽取出來(lái),形成類; (4) 尋找類與類之間的聯(lián)結(jié); 下面以一個(gè)商場(chǎng)的員工信息登記系統(tǒng)為例來(lái)說(shuō)明如何用 面向?qū)ο蠓椒?分析問(wèn)題,學(xué)會(huì)怎樣使用 C++語(yǔ)言編寫(xiě)實(shí)際程序。 第 12章 綜合應(yīng)用實(shí)例 2021/11/10 106 問(wèn)題的描述 類設(shè)計(jì) 源代碼 商場(chǎng)員工信息登記系統(tǒng) 2021/11/10 107 ? 登記某個(gè)商場(chǎng)內(nèi)所有員工的個(gè)人信息,計(jì)算每個(gè)員工的月薪,將結(jié)果存入紀(jì)錄文件。商場(chǎng)中主要有三類人員:經(jīng)理、倉(cāng)庫(kù)管理員 (簡(jiǎn)稱庫(kù)管 )和售貨員。需要記錄的個(gè)人信息有 姓名 、 內(nèi)部編號(hào) 和 家庭住址 。 ? 每類員工計(jì)算月薪的方式如下:售貨員的工資由兩部分構(gòu)成,固定工資加提成;經(jīng)理的工資是也由固定工資加上辦公費(fèi)用,辦公費(fèi)用由當(dāng)月的花費(fèi)確定;庫(kù)管員工資由固定工資和獎(jiǎng)金構(gòu)成,獎(jiǎng)金由其當(dāng)月表現(xiàn)確定。 問(wèn)題的描述 2021/11/10 108 在該例中,可以很容易的想到把 每一類員工作為一種對(duì)象,為每個(gè)對(duì)象聲明對(duì)應(yīng)的一個(gè)類 。因此,這三個(gè)類分別是: salesman類 (售貨員 )、warehouseman類 (庫(kù)管員 )和 manager類 (經(jīng)理 )。每個(gè)類中需要添加的屬性和功能如表 : 類設(shè)計(jì) 2021/11/10 109 類設(shè)計(jì) 表 類的屬性與功能 類別 屬性 功能 Salesman類 (售貨員 ) 姓名,內(nèi)部編號(hào),家庭住址,固定工資,月薪,當(dāng)月銷(xiāo)售額,提成比率 錄入人員信息,計(jì)算月薪,顯示人員信息 Warehouseman類 (庫(kù)管員 ) 姓名,內(nèi)部編號(hào),家庭住址,固定工資,月薪,當(dāng)月獎(jiǎng)金 錄入人員信息,計(jì)算月薪,顯示人員信息 Manager類 (經(jīng)理 ) 姓名,內(nèi)部編號(hào),家庭住址,固定工資,月薪,辦公費(fèi)用 錄入人員信息,計(jì)算月薪,顯示人員信息 2021/11/10 110 從上表中,不難看到,這三個(gè)類中有很多相同的屬性和功能,因此,應(yīng)當(dāng) 把這些公共部分抽取出來(lái),構(gòu)成一個(gè)基類 ,取個(gè)名字叫 employee 類 (員工 )。在員工類的基礎(chǔ)上再派生出 Salesman類 (售貨員 ), warehouseman類 (庫(kù)管員 )和 manager類 (經(jīng)理 )。有了基類 employee 類 (員工 ),不僅存儲(chǔ)了這三類人員的個(gè)人信息,更重要的是 對(duì)個(gè)人信息可以進(jìn)行統(tǒng)一的錄入與顯示 。雖然每類人員計(jì)算月薪的具體方式是不同的,無(wú)法在基類 employee類中使用相同的處理過(guò)程,但可以利用 虛函數(shù) 定義一個(gè)計(jì)算月薪的統(tǒng)一接口,具體的計(jì)算過(guò)程分別在三個(gè)派生類中重載實(shí)現(xiàn)。 表達(dá)上述思想的類如圖 。 類設(shè)計(jì) 2021/11/10 111 圖 商場(chǎng)員工信息登記系統(tǒng)類圖 基類與派生類的類圖 employee類 Salesman類 Warehouseman類 Manager類 類設(shè)計(jì) 2021/11/10 112 ? 各個(gè)類的具體結(jié)構(gòu)如下: employee類 char name[10]。 int Number。 char Address[100]。 float fixedSalary。 float MonthSalary。 employee()。 void ShowInfor()。 void RecordInfor( ) virtual char * GetWorkStyle() virtual void CountSalary() 類設(shè)計(jì) 2021/11/10 113 類設(shè)計(jì) Salesman類 float saleSum。 float getRate。 Salesman()。 void GetWorkStyle() void CountSalary() Warehouseman類 float bonus。 Warehouseman ()。 void GetWorkStyle() void CountSalary() Manager類 float OfficeExpense。 manager ()。 void GetWorkStyle() void CountSalary() 2021/11/10 114 ? 程序的文檔結(jié)構(gòu)為: employee(員工 )的類聲明頭文件 包含 employee類的實(shí)現(xiàn)代碼 Salesman(售貨員 )的類聲明頭文件 包含 Salesman類的實(shí)現(xiàn)代碼 warehouseman(庫(kù)管員 )的類聲明頭 文件 源代碼 2021/11/10 115 包含 Warehouseman類的實(shí) 現(xiàn)代碼 manager (經(jīng)理 )的類聲明頭文件 包含 manager類的實(shí)現(xiàn)代碼 EmployeeList類 (員工鏈表 )的類 聲明頭件 包含 EmployeeList類的實(shí)現(xiàn)代碼 主程序 源代碼 2021/11/10 116 //**************************************** // * //**************************************** ifndef H_EMPLOYEE define H_EMPLOYEE class employee //基類 (員工 ) { private: int number。 //員工編號(hào) char Address[100]。 //家庭地址 protected: char name[30]。 //員工姓名 float fixedSalary。 //固定工資 float MonthSalary。 //月薪 源代碼 2021/11/10 117 public: employee()。 //構(gòu)造函數(shù),錄入員工個(gè)人信息 void ShowInfor()。 //顯示員工個(gè)人及工資信息
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1