



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、. .軟件開發(fā)方法作業(yè)高校工資管理系統(tǒng)學(xué)院:信息工程學(xué)院班級(jí):計(jì)科 0601學(xué)號(hào):061106128姓名:王銀玉a. .目 錄1、背景材料 -31.1、編寫目的 -31.2、背景 -32、問題描述 -33、功能定義 -43.1、功能描述 -43.2、系統(tǒng)目標(biāo) -43.3、對(duì)軟件功能的結(jié)論 -44、測(cè)試環(huán)境 -55、用例圖 -56、類圖 -7a. .7、合作圖 -88、時(shí)序圖 -99、具體實(shí)現(xiàn) -109.1、功能分析 -109.2、流程分析 -109.3、常量定義 -119.4 、源代碼 -11一、背景材料1、編寫目的編寫該文檔是為了分析人工管理高校工資的流程,把人工模式抽象為可在計(jì)算機(jī)上處理的
2、自動(dòng)模式, 對(duì)高校工資的科學(xué)管理進(jìn)行分析與總結(jié),便于大家對(duì)系統(tǒng)整體功能的認(rèn)識(shí),通過該文檔,確定了系統(tǒng)的目的和功能,以及管理的流程和方法,同時(shí)也為大家提供參考。2、背景a. .隨著高等學(xué)校的快速發(fā)展, 高校規(guī)模越來越大, 教職工的數(shù)量也越來越多, 高校工資管理更加的復(fù)雜,而工資管理是一項(xiàng)瑣碎、復(fù)雜而又十分細(xì)致的工作,工資計(jì)算、發(fā)放、核算的工作量很大, 一般不允許出錯(cuò), 如果實(shí)行手工操作,每月發(fā)放工資須手工填制大量的表格,這就會(huì)耗費(fèi)工作人員大量的時(shí)間和精力,計(jì)算機(jī)進(jìn)行工資發(fā)放工作,不僅能夠保證工資核算準(zhǔn)確無誤、 快速輸出, 而且還可以利用計(jì)算機(jī)對(duì)有關(guān)工資的各種信息進(jìn)行統(tǒng)計(jì),服務(wù)于財(cái)務(wù)部門其他方面的
3、核算和財(cái)務(wù)處理,同時(shí)計(jì)算機(jī)具有著手工管理所無法比擬的優(yōu)點(diǎn).例如 :檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高人事工資資管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。這就對(duì)高校工資管理提出了新的要求,用計(jì)算機(jī)管理系統(tǒng)來管理高校工資已經(jīng)成為目前的趨勢(shì),使用計(jì)算機(jī)可以高速,快捷地完成以上工作。在計(jì)算機(jī)聯(lián)網(wǎng)后,數(shù)據(jù)在網(wǎng)上傳遞,可以實(shí)現(xiàn)數(shù)據(jù)共享, 避免重復(fù)勞動(dòng), 規(guī)數(shù)據(jù)管理行為, 從而提高了管理效率和水平。高校工資管理系統(tǒng)便是以計(jì)算機(jī)為工具, 通過對(duì)工資管理所需的信息管理, 不僅把管理人員從繁瑣的數(shù)據(jù)計(jì)算處理中解脫出來,而且優(yōu)化了管理體系
4、,使其高效化,簡(jiǎn)易化,智能化,也提高了透明度和互動(dòng)性。二、問題描述現(xiàn)一高校有五類職工:教師、實(shí)驗(yàn)員、行政人員、教師兼職實(shí)驗(yàn)員、行政人員兼職教師。為了實(shí)現(xiàn)工資發(fā)放的自然功能?,F(xiàn)要求編寫程序來自動(dòng)完成此功能。同時(shí)注意生成的相關(guān)數(shù)據(jù)結(jié)果以文件方式存放在硬盤中。程序應(yīng)具備從鍵盤錄入,文件的可繼續(xù)錄入,任意職工的工資查詢(可由職工編號(hào)和職工姓名來實(shí)現(xiàn)) ,如若有職工由于工作調(diào)動(dòng),則可進(jìn)行對(duì)應(yīng)的刪除動(dòng)作。相關(guān)信息:每一學(xué)期將學(xué)校職工的本學(xué)期任職情況及上學(xué)期工作的相關(guān)情況輸入計(jì)算機(jī),則本學(xué)期職工的月工資按程序處理后的結(jié)果發(fā)放,其中職工的工資計(jì)算方法如下:其中工資的基本構(gòu)成如下:教師:基本工資+ 課時(shí)費(fèi);實(shí)驗(yàn)
5、員:基本工資+ 實(shí)驗(yàn)室補(bǔ)助;行政人員:基本工資+ 行政補(bǔ)貼;教師兼職實(shí)驗(yàn)員:基本工資+ 課時(shí)費(fèi) + 實(shí)驗(yàn)室補(bǔ)助;行政人員兼職教師:基本工資+ 行政補(bǔ)貼 + 課時(shí)費(fèi);其中:課時(shí)費(fèi):教師每一學(xué)期的基本工作量為120,實(shí)驗(yàn)員每學(xué)期的基本工作量為70 ,行政人員沒有基本工作量,每節(jié)課時(shí)費(fèi)為20 元;課時(shí)費(fèi) = (上學(xué)期工作量 基本工作量) *20 ;注意:1、如果上學(xué)期基本工作量沒完成,則其(上學(xué)期工作量 基本工作量) *20 為負(fù)值。 ;2 、基本工資:教師800 元,實(shí)驗(yàn)員650 元,行政人員750 元;3 、 行政補(bǔ)貼: 250 元;4 、實(shí)驗(yàn)室補(bǔ)助:150 元。三、功能定義1、功能描述 :(1
6、)員工基本信息的錄入,修改,刪除。a. .( 2 )工資標(biāo)準(zhǔn)設(shè)定功能。具體包括職務(wù)工資,職稱工資以及其它工資標(biāo)準(zhǔn)的設(shè)定。( 3 )工資信息瀏覽。( 4 )員工工資表創(chuàng)建。( 5 )工資調(diào)整管理。( 6 )工資統(tǒng)計(jì)。( 7 )用戶級(jí)別設(shè)定以及口令修改。為完善系統(tǒng)管理功能, 增加工資系統(tǒng)用戶管理功能, 包括系統(tǒng)用戶數(shù)據(jù)的天價(jià), 修改和刪除。 教職員工為系統(tǒng)普通用戶, 只能運(yùn)行系統(tǒng)個(gè)人工資查詢功能; 系統(tǒng)管理員則能運(yùn)行系統(tǒng)所有功能,從而有效保證系統(tǒng)數(shù)據(jù)的安全性。2、系統(tǒng)目標(biāo)本系統(tǒng)的設(shè)計(jì)目標(biāo)是能夠?qū)搪殕T工的基本信息和工資信息進(jìn)行添加和修改,根據(jù)個(gè)人信息將工資分為職務(wù)工資, 職稱工資和其他工資。 能夠
7、調(diào)整工資標(biāo)準(zhǔn)和員工信息,也能夠調(diào)整其他工資項(xiàng)目, 根據(jù)需要對(duì)教職員工基本信息和工資信息的查詢,本系統(tǒng)能夠生成各個(gè)月的工資表, 能夠打印報(bào)表方便保存和管理,還包括對(duì)系統(tǒng)的一些基本操作功能,比如為完善系統(tǒng)管理功能, 增加工資系統(tǒng)用戶管理功能,系統(tǒng)應(yīng)該包括系統(tǒng)用戶數(shù)據(jù)的添加,修改和刪除。教職員工為系統(tǒng)普通用戶, 只能運(yùn)行系統(tǒng)個(gè)人工資查詢功能;系統(tǒng)管理員則能運(yùn)行系統(tǒng)所有功能, 從而有效保證系統(tǒng)數(shù)據(jù)的安全性,系統(tǒng)應(yīng)該具有簡(jiǎn)單, 易用,小巧,經(jīng)典的特色,應(yīng)該能夠?qū)Ω咝9べY管理進(jìn)行優(yōu)化,使其系統(tǒng)化, 高效化,智能化。并保證工資管理的準(zhǔn)確性,簡(jiǎn)易性,為學(xué)校財(cái)務(wù)人員提供便利。3、對(duì)軟件功能的結(jié)論高校工資管理的特
8、點(diǎn),經(jīng)過模塊化的分析得到高校工資管理系統(tǒng)功能模塊的劃分,本系統(tǒng)包括用戶管理模塊、員工信息管理模塊、工資標(biāo)準(zhǔn)設(shè)定模塊、工資信息管理模塊。各個(gè)模塊的功能描述:用戶管理模塊:制定用戶的管理級(jí)別,管理級(jí)別分為管理員和教職員工兩類。他們的操作權(quán)限不同, 管理員是財(cái)務(wù)部門人員, 可以對(duì)系統(tǒng)進(jìn)行一切操作, 而教職員工只能進(jìn)行查詢和打印。另外在這個(gè)模塊中也應(yīng)該包含添加用戶、修改用戶信息、修改口令等。員工信息管理模塊:實(shí)現(xiàn)對(duì)教職員工基本信息的輸入、修改、刪除、查詢。在高校管理中按照學(xué)院對(duì)信息進(jìn)行管理。工資標(biāo)準(zhǔn)設(shè)定模塊:實(shí)現(xiàn)對(duì)職務(wù)工資標(biāo)準(zhǔn)、職稱工資標(biāo)準(zhǔn)、其他工資標(biāo)準(zhǔn)的設(shè)定、修改、刪除、保存功能。 而工資標(biāo)準(zhǔn)的依據(jù)
9、恰好與教職員工的基本信息相一致,形成對(duì)應(yīng)關(guān)系。工資信息管理模塊:實(shí)現(xiàn)工資表的生成、個(gè)人工資查詢、工資修改、工資結(jié)算、工資統(tǒng)計(jì)以及工資表打印等功能。其中按月生成工資表,保存在數(shù)據(jù)庫中。另外,在本高校工資管理系統(tǒng)中,還包括幫助文件的制作,要求有較為完善的幫助文件,使用說明供用戶參考。四、測(cè)試環(huán)境硬件環(huán)境: CPU 型號(hào)為 Pentium以上,存128M 以上。a. .系統(tǒng)環(huán)境: Windows98以上的系統(tǒng)均可。開發(fā)工具: Delphi 7.0軟件的使用條件和限制:不同的管理級(jí)別有不同的操作權(quán)限。五、用例圖用戶數(shù)據(jù)管理員工信息管理yy員工管理員工資標(biāo)準(zhǔn)設(shè)立工資信息管理a. .a. .簡(jiǎn)要說明 :用
10、戶管理模塊: 制定用戶的管理級(jí)別,管理級(jí)別分為管理員和教職員工兩類。他們的操作權(quán)限不同,管理員是財(cái)務(wù)部門人員,可以對(duì)系統(tǒng)進(jìn)行一切操作,而教職員工只能進(jìn)行查詢和打印。另外在這個(gè)模塊中也應(yīng)該包含添加用戶、修改用戶信息、修改口令等。員工信息管理模塊:實(shí)現(xiàn)對(duì)教職員工基本信息的輸入、修改、刪除、查詢。在高校管理中按照學(xué)院對(duì)信息進(jìn)行管理。工資標(biāo)準(zhǔn)設(shè)定模塊:實(shí)現(xiàn)對(duì)職務(wù)工資標(biāo)準(zhǔn)、職稱工資標(biāo)準(zhǔn)、其他工資標(biāo)準(zhǔn)的設(shè)定、修改、刪除、保存功能。 而工資標(biāo)準(zhǔn)的依據(jù)恰好與教職員工的基本信息相一致,形成對(duì)應(yīng)關(guān)系。工資信息管理模塊:實(shí)現(xiàn)工資表的生成、個(gè)人工資查詢、工資修改、工資結(jié)算、工資統(tǒng)計(jì)以及工資表打印等功能。其中按月生成工
11、資表,保存在數(shù)據(jù)庫中。六、類圖簡(jiǎn)要說明 :類的抽取 :實(shí)體類 -工資信息管理類;工資標(biāo)準(zhǔn)設(shè)定類a. .邊界類 :工資管理系統(tǒng)類;工資信息類控制類 :系統(tǒng)用戶類系統(tǒng)用戶類對(duì)教職員工的基本信息和工資信息進(jìn)行添加和修改,根據(jù)個(gè)人信息將工資分為職務(wù)工資, 職稱工資和其他工資。工資管理系統(tǒng)類能夠調(diào)整工資標(biāo)準(zhǔn)和員工信息,也能夠調(diào)整其他工資項(xiàng)目,根據(jù)需要對(duì)教職員工基本信息和工資信息的查詢,工資信息管理類生成各個(gè)月的工資表,能夠打印報(bào)表方便保存和管理,還包括對(duì)系統(tǒng)的一些基本操作功能.七、合作圖a. .簡(jiǎn)要說明 :在工資管理系統(tǒng)類中, 通過對(duì)管理員信息的設(shè)置實(shí)現(xiàn)管理員的身份審核, 并通過管理員的認(rèn)可實(shí)現(xiàn)員工身份
12、的認(rèn)證, 在系統(tǒng)用戶類過對(duì)工資信息類的調(diào)用實(shí)現(xiàn)每個(gè)員工的工資表的生成、個(gè)人工資查詢、工資修改、工資結(jié)算、工資統(tǒng)計(jì)以及工資表打印等功能。在工資標(biāo)準(zhǔn)設(shè)定類中可以實(shí)現(xiàn)對(duì)職務(wù)工資標(biāo)準(zhǔn)、職稱工資標(biāo)準(zhǔn)、其他工資標(biāo)準(zhǔn)的設(shè)定、修改、刪除、保存功能。 而工資標(biāo)準(zhǔn)的依據(jù)恰好與教職員工的基本信息相一致,形成對(duì)應(yīng)關(guān)系。 通過工資統(tǒng)計(jì)信息和工資標(biāo)準(zhǔn)的反饋使得員工系統(tǒng)更加完善.若要對(duì)員工信息進(jìn)行添加,修改 ,刪除等操作可以通過修改員工信息類實(shí)現(xiàn),經(jīng)正確反饋后便設(shè)置成果.最后一切不論是對(duì)員工信息的設(shè)置或?qū)べY信息的設(shè)置都應(yīng)最終反饋至管理系統(tǒng)類,實(shí)現(xiàn)統(tǒng)一管理 .八、時(shí)序圖StaffUserSalary manageSyste
13、rmSalarySalary standardStaffmembermembersysterm classuser classmanage classclassinformation2工資創(chuàng)class建、修改1. 管 理3工資統(tǒng)員 信 息計(jì)信息反設(shè)置饋4各項(xiàng)工資標(biāo)準(zhǔn)設(shè)立5工資標(biāo)準(zhǔn)反饋6員工信息添加、修改、刪除8管理員 管 理狀 況 反7員工信息反饋饋a. .簡(jiǎn)單說明 :工資管理系統(tǒng)類進(jìn)行管理員信息的設(shè)置以后可以進(jìn)入系統(tǒng)用戶類也即員工類,在員工類界面過工資的創(chuàng)建和設(shè)置實(shí)現(xiàn)工資管理類的實(shí)現(xiàn),且工資管理類應(yīng)把設(shè)置完畢的工資信息反饋給員工類,工資標(biāo)準(zhǔn)類是工資設(shè)置的標(biāo)準(zhǔn),以方便員工類把工資標(biāo)準(zhǔn)參數(shù)傳遞到
14、工資管理類中 ,實(shí)現(xiàn)類的調(diào)用.在員工類中不僅可以對(duì)工資類進(jìn)行操作也可以對(duì)員工的信息進(jìn)行變更,從而實(shí)現(xiàn)員工個(gè)人信息和工資信息的匹配.九、具體實(shí)現(xiàn)1、功能分析工資管理系統(tǒng)軟件是為一個(gè)單位進(jìn)行員工的工資構(gòu)成及管理進(jìn)行輔助的應(yīng)用軟件,工資管理是一個(gè)公司最基本的一項(xiàng)財(cái)務(wù)管理,需要為用戶提供一個(gè)簡(jiǎn)單的人機(jī)界面以便操作,本程序利用雙鏈表結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),完成工資管理,在我的基本功能模塊如圖所示:主程序( void main ():用于聯(lián)系各功能函數(shù)以及推出應(yīng)用程序。用戶登入( void mima ():根據(jù)用戶輸入的用戶名和密碼判斷是否允許該用戶使用本初始化( void init() ):把鏈表初始化,使其鏈表
15、為空,即頭指針和尾指針都為空( NULL)。輸入數(shù)據(jù)即創(chuàng)建鏈表( void create() ):用戶根據(jù)提示輸員編號(hào)( no )、姓名( name)、基本工資( jbgz )。系統(tǒng)將員工工資信息記錄存儲(chǔ)在系統(tǒng)磁盤的文件中,以便進(jìn)行管理、查找和備份等。顯示所有數(shù)據(jù)( void list() ):用于顯示磁盤文件中的所有信息,以便用戶對(duì)員工工資信息狀況有較為直觀方便的了解。由于在磁盤存儲(chǔ)的員a. .工工資文件可能有多個(gè), 所以提示用戶要瀏覽的具體文件名,顯示員工工資狀況及各項(xiàng)工資構(gòu)成,以便工資發(fā)放管理。現(xiàn)實(shí)單條顯示( void print(SALARY *p) ):為所有顯示和查詢提供輸出函數(shù)。
16、2 、流程分析運(yùn)行工資管理程序, 首先進(jìn)入用戶登錄界面提示用戶書錄用戶名和密碼,只有當(dāng)用戶名和密碼相匹配時(shí),才允許用戶使用該系統(tǒng)。 接著進(jìn)入光帶菜單,光標(biāo)定位在菜單的第一項(xiàng),并以不同與背景的顏色顯示,通過鍵盤上的光標(biāo)上下移動(dòng)鍵選中菜單, 按回車鍵后進(jìn)入相應(yīng)的功能函數(shù)運(yùn)行相應(yīng)數(shù)據(jù)處理。如果選著初始化, 則計(jì)算機(jī)自動(dòng)初始化。 如果選著建立鏈表,則進(jìn)入了另一個(gè)界面,用戶根據(jù)提示輸員編號(hào)( no )、 姓名(name )、基本工資(jbgz )。輸入每行用 i 記錄一次,直到 i=9 時(shí),進(jìn)入下一個(gè)界面。以“ ”為結(jié)束符,結(jié)束后返回主菜單,接受下一個(gè)命令。 如果選著顯示所有數(shù)據(jù), 則也進(jìn)入新的界面,
17、把所有信息都顯示出來,也用i 記錄輸出行數(shù),到滿屏幕時(shí)即i=9 ,等待接受一個(gè)字符,按任意鍵后,接著輸出下面的數(shù)據(jù),直到最后,再接受任意鍵,返回主菜單并提示不要忘記保存。如果選著單條顯示, 則也進(jìn)入新的一個(gè)界面,輸出第一個(gè)人的工資信息,并提示以下信息:“ 0。退出 1。前驅(qū) 2。后繼3。第一條 4。最后一條 提示輸入菜單選項(xiàng)04 :”計(jì)算機(jī)等待提示信息,如選 0 則直接退出進(jìn)入主菜單; 如選 1 則接著顯示前一個(gè)人的信息,當(dāng)是第一個(gè)時(shí), 不做改動(dòng);如選 2 則接著顯示后一個(gè)人的信息,當(dāng)是a. .最后一個(gè)時(shí),也不做改動(dòng);如選3 就顯示第一個(gè)人的信息;如選4 就顯示最后一個(gè)人的信息。流程圖見附錄一
18、。原程序見附錄三。3、常量定義#infine NULL 01、頭文件 #include "stdio.h"/*I/O函數(shù) */ # include "bios.h"/*ROM基本輸入輸出函數(shù) */ #include "dos.h"/*dos 接口函數(shù) */ #include"conio.h"/* 屏幕操作函數(shù) */ #include "stdlib.h"/* 其它說明 */ #include"string.h"/* 字符串函數(shù) */ #include "mem.h&
19、quot;/* 存操作函數(shù) */ #include"ctype.h" /* 字符操作函數(shù) */ #include "alloc.h"/* 動(dòng)態(tài)地址分配函數(shù) */2、函數(shù)申明void init();/* 初始化 */ void create();/* 創(chuàng)建鏈表 */voidcalc(); /* 計(jì)算應(yīng)發(fā)工資 */ void delete(); /* 刪除 */ void search(); /* 查找*/ void save();/* 保存文件 */ void load();/* 讀取文件 */ void computer();/* 計(jì)算所需各種票面數(shù) *
20、/ void insert();/* 插入 */ void append();/* 追加*/ void copy();/* 復(fù)制文件 */ void sort();/* 排序 */ void index();/* 索引*/ void total();/* 分類合計(jì) */ void list();/* 顯示所有數(shù)據(jù) */ voidprint(SALARY *p);/* 輸出單條記錄 */ void display();/* 隨意逐條顯示*/ float fax(float x);/* 計(jì)算稅金 */ int menu_select();/* 主菜單 */ voidmima ();a. .4、源代
21、碼#include<fstream.h>#include<string.h>class Person/ 人員類 (抽象類 )protected:doublenum;/ 編號(hào)char Name20;/ 姓名int Duty;/ 人員類別標(biāo)志 (1-教師 ,2- 實(shí)驗(yàn)員 ,3-行政人員 ,4- 教師兼實(shí)驗(yàn)員 ,5- 行政兼教師 )doubleSalary;/ 基本工資Person*next;/ 指針域public:Person() / 基類構(gòu)造next=0;/ 指針域設(shè)置為空virtualPerson()/ 基類虛析構(gòu)virtualvoidInput()=0;/ 從鍵盤輸入
22、數(shù)據(jù)virtualvoidInput(ifstream&ifs)=0;/ 從文件輸入數(shù)據(jù)virtualvoidOutput()=0;/ 向屏幕輸出數(shù)據(jù)virtualvoidOutput(ofstream&ofs)=0;/ 向文件輸出數(shù)據(jù)virtualdouble Incoming()=0;/ 計(jì)算收入friendclass College;class Teacher:virtualpublicPerson/ 教師類protected:intHours;/ 教師課時(shí)public:/ 為對(duì)象設(shè)置數(shù)據(jù)分為兩種途徑,通過1)構(gòu)造函數(shù), 2) 一般成員函數(shù)/ 分開可以使得程序中應(yīng)用更加靈
23、活a. ./ 本程序采用 :缺省構(gòu)造 +Input()Teacher()/ 構(gòu)造函數(shù),初始化部分?jǐn)?shù)據(jù)Duty=1;Salary=800;voidInput()/ 鍵盤補(bǔ)充輸入其它數(shù)據(jù)cout<<"n編號(hào) :"cin>>num;cout<<"n姓名 :"cin>>Name;cout<<"n教師上學(xué)期課時(shí):"cin>>Hours;Salary=Incoming();voidInput(ifstream&ifs)ifs>>num>>Nam
24、e>>Duty>>Hours>>Salary;voidOutput()cout<<num<<"t"<<Name<<"t"<<Duty<<"t"<<Hours<<"t"<<Salary<<"t"<<endl;voidOutput(ofstream&ofs)ofs<<num<<"t"
25、<<Name<<"t"<<Duty<<"t"<<Hours<<"t"<<Salary<<"t"<<endl;doubleIncoming()if(Hours>120)returnSalary+(Hours-120)*20;elsereturnSalary;class Assistant:virtualpublicPerson/ 實(shí)驗(yàn)員protected:intAllowance;intHours;a.
26、.public:Assistant()Duty=2;Salary=650;Allowance=150;voidInput()cout<<"n編號(hào) :"cin>>num;cout<<"n姓名 :"cin>>Name;cout<<"n實(shí)驗(yàn)員上學(xué)期實(shí)驗(yàn)課時(shí):"cin>>Hours;Salary=Incoming();voidInput(ifstream&ifs)ifs>>num>>Name>>Duty>>Hours
27、>>Salary;voidOutput()cout<<num<<"t"<<Name<<"t"<<Duty<<"t"<<Hours<<"t"<<Salary<<"t"<<endl;voidOutput(ofstream&ofs)ofs<<num<<"t"<<Name<<"
28、t"<<Duty<<"t"<<Hours<<"t"<<Salary<<"t"<<endl;doubleIncoming()if(Salary>70)returnSalary+Allowance+(Hours-70)*20;elsereturnSalary+Allowance;class Manager:virtualpublicPerson/ 行政人員protected:a. .intAllowance;public:Manager()
29、Duty=3;Salary=750;Allowance=250;voidInput()cout<<"編號(hào) :"cin>>num;cout<<"姓名 :"cin>>Name;Salary=Incoming();voidInput(ifstream&ifs)ifs>>num>>Name>>Duty>>Salary;voidOutput()cout<<num<<"t"<<Name<<&quo
30、t;t"<<Duty<<"t"<<"t"<<Salary<<"t"<<endl;voidOutput(ofstream&ofs)ofs<<num<<"t"<<Name<<"t"<<Duty<<"t"<<Salary<<"t"<<endl;doubleIncomi
31、ng()returnSalary+Allowance;class Teacher_Assistant:publicTeacher,publicAssistant / 教師兼實(shí)驗(yàn)員public:Teacher_Assistant()Duty=4;a. .Teacher:Salary=800;Assistant:Allowance=150;voidInput()cout<<"n編號(hào) :"cin>>num;cout<<"n姓名 :"cin>>Name;cout<<"n教師上學(xué)期課時(shí):&quo
32、t;cin>>Teacher:Hours;Salary=Incoming();voidInput(ifstream&ifs)ifs>>num>>Name>>Duty>>Teacher:Hours>>Salary;voidOutput()cout<<num<<"t"<<Name<<"t"<<Duty<<"t"<<Teacher:Hours<<"t&quo
33、t;<<Salary<<endl;voidOutput(ofstream&ofs)ofs<<num<<"t"<<Name<<"t"<<Duty<<"t"<<Teacher:Hours<<"t"<<Salary<<"t"<<endl;doubleIncoming()if(Teacher:Hours>120)returnSalary
34、+(Teacher:Hours-120)*20+Allowance;elsereturnSalary+Allowance;class Manager_Teacher:publicManager,publicTeacher / 行政人員兼教師public:Manager_Teacher()Duty=5;a. .Manager:Salary=750;voidInput()cout<<"n編號(hào) :"cin>>num;cout<<"n姓名 :"cin>>Name;cout<<"n行政人員兼職教
35、師上學(xué)期課時(shí):"cin>>Hours;Salary=Incoming();voidInput(ifstream&ifs)ifs>>num>>Name>>Duty>>Hours>>Salary;voidOutput()cout<<num<<"t"<<Name<<"t"<<Duty<<"t"<<Hours<<"t"<<Sal
36、ary<<"t"<<endl;voidOutput(ofstream&ofs)ofs<<num<<"t"<<Name<<"t"<<Duty<<"t"<<Hours<<"t"<<Salary<<"t"<<endl;doubleIncoming()returnManager:Salary+Allowance+Hours
37、*20;class Collegeprivate:Person *PL;voidClear();intCollege:Cfind(intID,Person*p1,Person*p2);public:College();/ 構(gòu)造College();/ 析構(gòu)voidAdd();/ 增加職工voidDelete();/ 刪除職工voidModify();/ 修改職工a. .voidPrint();/ 輸出職工信息voidSave();/ 職工信息存盤voidLoad();/ 職工信息裝入voidFind();/ 查找voidBuild();/ 導(dǎo)引voidStat();/ 統(tǒng)計(jì);College:Co
38、llege()/ 構(gòu)造函數(shù) ( 創(chuàng)建 1 個(gè)頭結(jié)點(diǎn)的鏈表)Person *p=newTeacher;PL=p;cout<<"自動(dòng)裝入數(shù)據(jù)n"Build();College:College()/ 析構(gòu)函數(shù) (僅保留 1 個(gè)頭結(jié)點(diǎn) )Person *p=PL;while(p)/ 逐個(gè)刪除結(jié)點(diǎn),包括頭結(jié)點(diǎn)PL=p->next;deletep;p=PL;PL=0;voidCollege:Add()/ 增加職工char c;docout<<"n*增加職工*n"/ 查找尾結(jié)點(diǎn)Person *p=PL;while(p->next)p
39、=p->next;intch;cout<<"輸入職工分類碼1-教師 ,2-實(shí)驗(yàn)員 ,3-行政人員 ,4- 教師兼實(shí)驗(yàn)員 ,5- 行政兼教師 :n"cin>>ch;/ 創(chuàng)建新結(jié)點(diǎn) ,錄入數(shù)據(jù) ,連接到鏈表Teacher *pt;a. .Assistant *pa;Manager*pm;Teacher_Assistant *pta;Manager_Teacher*pmt;switch(ch)case 1:pt=newTeacher;pt->Input();p->next=pt;break;case 2:pa=newAssistant;
40、pa->Input();p->next=pa;break;case 3:pm=newManager;pm->Input();p->next=pm;break;case 4:pta=newTeacher_Assistant;pta->Input();p->next=pta;break;case 5:pmt=newManager_Teacher;pmt->Input();p->next=pmt;break;default:return;cout<<"是否進(jìn)行循環(huán) ?y/nn"cin>>c;while(c=&
41、#39;y'|c='Y');Save();voidCollege:Clear()/ 清除所有的職工結(jié)點(diǎn)(僅保留頭結(jié)點(diǎn) )Person *p=PL->next;while(p)PL->next=p->next;deletep;p=PL->next;/ 查找voidCollege:Find()a. .doubleID;Person *p1;Person *p2;cout<<"輸入你要查詢的編號(hào):"cin>>ID;p1=PL->next;p2=PL;while(p1)if(p1->num=ID)b
42、reak;/ 找到elsep2=p1;/ 繼續(xù)查找p1=p1->next;if(!p1)cout<<"找不到你所查詢的人!n 請(qǐng)確認(rèn)你所查詢的編號(hào)是否出錯(cuò)!n"return;else cout<<"n*職工信息表*n"cout<<"編號(hào)姓名崗位課時(shí)收入情況 (元 )n"p1->Output();/ 查找職工結(jié)點(diǎn) (返回 1-找到, 0- 未找到 .結(jié)點(diǎn)指針由 p1 返回 ,p2 為前看指針 )intCollege:Cfind(intID,Person*p1,Person*p2)*p1=P
43、L->next;*p2=PL;while(*p1)if(*p1)->num=ID)break;/ 找到else*p2=*p1;/ 繼續(xù)查找*p1=(*p1)->next;return*p1?1:0;voidCollege:Delete()/ 刪除職工a. .cout<<"n*刪除職工*n"intnum;Person *p1,*p2;cout<<"編號(hào) :"cin>>num;if(!Cfind(num,&p1,&p2)cout<<"指定的人員沒有找到!n"
44、elsep2->next=p1->next;/ 連接deletep1;cout<<"正確刪除 !n"Save();voidCollege:Modify()/ 修改職工cout<<"n*修改職工*n"intnum;Person *p1,*p2;cout<<"編號(hào) :"cin>>num;if(!Cfind(num,&p1,&p2)cout<<"指定的人員沒有找到!n"elsep1->Output();/ 輸出原來的職工信息(做
45、提示 )p1->Input();/ 輸入新的職工信息(更新 )cout<<"修改完成 !n"Save();voidCollege:Print()/ 輸出職工信息cout<<"n*職工信息表*n"cout<<"編號(hào)姓名崗位課時(shí)收入情況(元)n"a. .Person *p=PL->next;if(!p)cout<<"無職工記錄 !n"return;while(p)/ 遍歷鏈表,輸出職工信息p->Output();p=p->next;voidColl
46、ege:Save()/ 職工信息存盤 ?ofstreamf("Person.dat",ios:out);/ 打開文件/ 遍歷輸出至文件Person *p=PL->next;while(p)p->Output(f);p=p->next;f.close();/ 關(guān)閉文件cout<<"職工信息已經(jīng)保存在Person.dat.n"voidCollege:Build()/ 職工信息char buf81;/ 臨時(shí)空間intDuty;/ 人員類型Person *p2;/ 新建結(jié)點(diǎn)的指針longt;/ 讀寫位置/ 清除現(xiàn)有結(jié)點(diǎn) (保留頭結(jié)點(diǎn) )
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度景區(qū)景點(diǎn)精細(xì)化保潔服務(wù)協(xié)議
- 二零二五年度二手車轉(zhuǎn)讓及過戶手續(xù)協(xié)議
- 二零二五年度新型小區(qū)門衛(wèi)管理及應(yīng)急預(yù)案合同
- 2025年度綠色節(jié)能庫房租賃合同
- 2025年度高新技術(shù)企業(yè)員工勞動(dòng)合同解除終止協(xié)議書
- 2025年度物業(yè)服務(wù)合同主體變更協(xié)議范本
- 二零二五年度大數(shù)據(jù)服務(wù)股權(quán)投資與轉(zhuǎn)讓協(xié)議
- 二零二五年度冷凍庫租賃及冷鏈物流配送中心建設(shè)合同
- 二零二五年度離婚協(xié)議中財(cái)產(chǎn)分割執(zhí)行監(jiān)督補(bǔ)充協(xié)議
- 蘇武牧羊傳紅色故事觀后感
- 第3課《列夫·托爾斯泰》課件-2024-2025學(xué)年統(tǒng)編版語文七年級(jí)下冊(cè)
- TSDLPA 0001-2024 研究型病房建設(shè)和配置標(biāo)準(zhǔn)
- 陜09J01 建筑用料及做法圖集
- 質(zhì)量管理部工作流程圖
- 安全教育培訓(xùn)記錄表參考模板范本
- 建筑冷熱源素材
- 網(wǎng)絡(luò)安全用戶實(shí)體行為分析技術(shù)UEBA白皮書
- 室內(nèi)設(shè)計(jì)-中式古典風(fēng)格課件
- MOC3061驅(qū)動(dòng)BT134雙向可控硅
- 無線通信與網(wǎng)絡(luò)復(fù)習(xí)資料
- 八大員考試試題——?jiǎng)趧?wù)員題庫
評(píng)論
0/150
提交評(píng)論