版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實驗一 考試成績信息系統(tǒng)華北電力大學(xué)計算機系一、實驗?zāi)康?通過用C++編寫一個學(xué)生考試成績信息系統(tǒng),強化面向?qū)ο蟪绦蛟O(shè)計思想,使學(xué)生能夠?qū)++程序設(shè)計中的面向?qū)ο?、重載、模板、文件等各種概念,靈活的運用到實際的程序設(shè)計中去。華北電力大學(xué)計算機系二、實驗要求1〕錄入課程和選課學(xué)生的信息;2〕錄入成績3〕學(xué)生信息和成績的修改;4〕統(tǒng)計學(xué)生成績;5〕成績排序;按成績排序6〕統(tǒng)計成績分布功能:即各成績段學(xué)生的數(shù)量:“優(yōu)〞:90~100;“良〞:80~90;“中〞:70~80;“及格〞:60~70;“不及格〞60。并輸出統(tǒng)計分布結(jié)果;7〕查找:能夠查找指定學(xué)生的各門成績和平均分及其名次;華北電力大學(xué)計算機系三、實驗原理 實驗使用面向?qū)ο蟮脑O(shè)計思想,在學(xué)生成績考試系統(tǒng)中,主要涉及的是學(xué)生和課程,對于所有的學(xué)生,都具有共性,因此可以抽象為一個學(xué)生類,同理可以得到課程類。華北電力大學(xué)計算機系華北電力大學(xué)計算機系2.類模板和函數(shù)模板的設(shè)計:〔1〕數(shù)組類模板的設(shè)計:對于某一門課,選課的學(xué)生很多,可定義一個數(shù)組模板,并將數(shù)組模板實例化為學(xué)生對象數(shù)組。〔2〕無論對什么數(shù)據(jù)類型的排序,使用的排序算法都是一樣的,因此需要定義一個函數(shù)模板,用學(xué)生類實例化,實現(xiàn)學(xué)生的成績排序,排序算法可選用插入排序、冒泡排序或者選擇排序等。華北電力大學(xué)計算機系3.運算符重載的設(shè)計 (1〕學(xué)生的信息和成績以及選課信息要求寫入文件并在需要時從文件中讀出,需要重載插入、提取運算符“<<、>>〞。 (2)學(xué)生成績排序要對學(xué)生對象進行比較、賦值等操作,而類實際上是一種復(fù)雜數(shù)據(jù)類型,因此上述這些操作要通過運算符重載〔==、<、>〕來實現(xiàn)。華北電力大學(xué)計算機系四、實驗所需儀器、設(shè)備、材料〔試劑〕 本實驗基于window平臺,使用VC++為開發(fā)工具。五、實驗預(yù)習(xí)要求、實驗條件、方法及步驟 1.理解C++面向?qū)ο缶幊痰母靖拍?,包括類和對象、模板、運算符重載等。 2.根據(jù)實驗要求,畫出相應(yīng)的類圖。 3.按照類圖,編程并實現(xiàn)。華北電力大學(xué)計算機系實驗二 公司計薪系統(tǒng)華北電力大學(xué)計算機系一、實驗?zāi)康?類的封裝、派生和繼承、多態(tài)性是C++面向?qū)ο蟪绦蛟O(shè)計三大特征,本實驗通過編寫一個簡單的公司計薪系統(tǒng),使學(xué)生能夠?qū)⑸鲜鋈筇卣黛`活的運用到實際的編程當(dāng)中去,提高程序的復(fù)用性。華北電力大學(xué)計算機系二、實驗要求1.問題描述某公司,員工的薪水每月發(fā)一次,每月1日,上報上月個人工作信息。這些信息由會計將信息輸入計薪系統(tǒng)。對于該系統(tǒng)要求如下:(1〕公司主要分為三種員工:經(jīng)理、時薪人員、銷售人員。(2〕對于任何一位員工,計薪系統(tǒng)都能夠: (a〕計算工資 (b〕打印該員工的工資單 (c〕員工也可以查詢自己的工資。(3)三種員工的薪金計算方式不同(a)經(jīng)理:固定月薪(b)時薪人員:時薪×每月工時(c)銷售人員:時薪×每月工時+傭金×銷售額(4)總經(jīng)理擁有特殊權(quán)利,可以更改某人時薪和傭金。華北電力大學(xué)計算機系2.研究計薪系統(tǒng)的問題域,根據(jù)研究對象的共性抽取出類,并抽象出各個類之間的派生關(guān)系,并畫出類圖。3.確定哪些類為基類,哪些為派生類,并分別確定基類和派生類的成員屬性和操作。華北電力大學(xué)計算機系雇員Employee經(jīng)理Manager時薪人員Wage銷售人員Sales圖計薪系統(tǒng)的類繼承關(guān)系華北電力大學(xué)計算機系classEmployee{private: charm_name[30];public: Employee(); Employee(constchar*nm);};Employee::Employee(){ m_name[0]=‘\0’;}Employee::Employee(constchar*nm){ strcpy(m_name,nm);}華北電力大學(xué)計算機系classManager:publicEmployee{private: floatm_salary;public: Manager(constchar*nm); voidsetSalary(); floatcomputePay();}Manager::Manager(constchar*nm):Employee(nm){ m_salary=15000.0;}voidManager::setSalary(floatsalary){ m_salary=salary;}floatManager::computePay(){ returnm_salary;}華北電力大學(xué)計算機系classWage:publicEmployee{private: floatm_wage; floatm_hours;public: Wage(constchar*nm); voidsetWage(floatwg); voidsetHours(floathrs); floatcomputePay();}Wage::Wage(constchar*nm):Employee(nm){ m_wage=250.0; m_hours=40.0;}voidWage::setWage(floatwg){ m_wage=wg;}voidWage::setHours(floathrs){ m_hours=hrs;}floatWage::computePay(){ returnm_wage*m_hours;}華北電力大學(xué)計算機系classSales:publicWage{private: floatm_comm; floatm_sales;public: Sales(constchar*nm); voidsetCommission(floatcomm); voidsetSales(floatsale); floatcomputePay();}Sales::Sales(constchar*nm):Wage(nm){ m_comm=m_sale=0.0;}voidSales::setCommission(floatcomm){ m_comm=comm;}voidSales::setSales(floatsale){ m_sales=sale;}floatSales::computePay(){ Wage::computePay()+ m_comm*m_sales;}華北電力大學(xué)計算機系考察Sales類具有的成員charm_name[30];floatm_wage;floatm_hours;floatm_comm;floatm_sales;voidsetWage(floatwg);voidsetHours(floathrs);voidsetCommission(floatcomm);voidsetSales(floatsale);voidcomputePay();華北電力大學(xué)計算機系2.多態(tài)的使用我們會想以一個通用指針表示所有可能的職員類型Employee*pEmployee;WageaWager(“陳大〞);SalesaSales(“陳二〞);ManageraManager(“陳三〞);pEmployee=&aWager;......可以把職員指針指向任何一種職員。好處:程序設(shè)計的巨大彈性。譬如:設(shè)計一個職員鏈表[職員指針數(shù)組],各個元素都是職員,我們會想以一個循環(huán)處理所有職員的computePay。華北電力大學(xué)計算機系虛擬函數(shù)與一般化可以體會,上述的while循環(huán)其實就是把操作一般化。一般化之所以重要,在于它可以把現(xiàn)在的、未來的情況統(tǒng)統(tǒng)納入考慮。將來即使有另一種名曰“參謀〞的成員,上述計薪循環(huán)仍然能夠正常。我們需要的是什么呢?依舊以Employee指針代表每一種職員,而又能夠在實際指向不同種類之職員調(diào)用到不同版本之computePay的能力華北電力大學(xué)計算機系修改:利用多態(tài)性,將computePay函數(shù)提到基類Employee中,并在前面加上virtual使之成為虛擬函數(shù),然后Employee的派生類中根據(jù)各個具體的雇員類型重新定義computePay函數(shù)。這樣,定義一個Employee類型的指針代表每一種雇員,通過動態(tài)聯(lián)編,能夠在程序運行時,根據(jù)實際指向
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨床檢驗士的試題及答案2025年版
- 年標(biāo)準員專業(yè)管理實務(wù)考試題庫附參考答案【奪分金卷】
- 校醫(yī)面試題目及答案
- 2025年銀行招聘練習(xí)題及參考答案詳解
- 神經(jīng)精神病學(xué)試題及答案
- 2025年人際關(guān)系咨詢師國家考試試題及答案解析
- 2025年工程項目管理師項目實務(wù)考察試題及答案
- 主管護師題目及答案
- 2025年黑龍江省建筑安全員-B證考試題庫及答案1
- 醫(yī)院消防應(yīng)急預(yù)案試題及答案
- 火龍罐的市場前景分析
- 設(shè)備技術(shù)員轉(zhuǎn)正述職報告
- 驗貨執(zhí)行合同書
- 2026年張家界航空工業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)技能筆試備考試題及答案詳解
- 終止妊娠藥物課件
- 2025年無人駕駛公共交通項目可行性研究報告
- 北京市朝陽區(qū)2026屆高三上英語期末考試試題含解析
- 亞急性硬化性全腦炎2-
- GB/T 6462-2025金屬和氧化物覆蓋層厚度測量顯微鏡法
- 工程量鑒定合同范本
- 建筑工程施工工藝詳細操作手冊
評論
0/150
提交評論