高校職工信息與工資管理系統(tǒng)課程設(shè)計(jì)報(bào)告.docx_第1頁(yè)
高校職工信息與工資管理系統(tǒng)課程設(shè)計(jì)報(bào)告.docx_第2頁(yè)
高校職工信息與工資管理系統(tǒng)課程設(shè)計(jì)報(bào)告.docx_第3頁(yè)
高校職工信息與工資管理系統(tǒng)課程設(shè)計(jì)報(bào)告.docx_第4頁(yè)
高校職工信息與工資管理系統(tǒng)課程設(shè)計(jì)報(bào)告.docx_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C+課程設(shè)計(jì)報(bào)告 課程: 學(xué)號(hào): 姓名: 班級(jí): 教師: 課程設(shè)計(jì)任務(wù)書(shū)姓 名班 級(jí)課程名稱(chēng)高校工資管理系統(tǒng)課程性質(zhì)C+程序設(shè)計(jì)設(shè)計(jì)時(shí)間2013 年6月25 日2013年7月 5 日設(shè)計(jì)名稱(chēng)高校職工信息與工資管理系統(tǒng)設(shè)計(jì)要求問(wèn)題的描述(功能要求):高校有五類(lèi)職工:教師,實(shí)驗(yàn)員,行政人員,教師兼職實(shí)驗(yàn)員,行政人員兼職教師。為了實(shí)現(xiàn)工資發(fā)放的自動(dòng)功能,現(xiàn)要求編寫(xiě)程序來(lái)自動(dòng)完成此功能。同時(shí)注意生成的相關(guān)數(shù)據(jù)結(jié)果以文件方式存放在硬盤(pán)中。程序應(yīng)具備從鍵盤(pán)錄入,文件的可繼續(xù)錄入,任意職工的工資查詢(可由職工編號(hào)和職工姓名來(lái)實(shí)現(xiàn)),若有職工由于工作調(diào)動(dòng),則可進(jìn)行相對(duì)應(yīng)的調(diào)整動(dòng)作。設(shè)計(jì)思路與設(shè)計(jì)過(guò)程本程序設(shè)計(jì)了6個(gè)類(lèi),其中Person類(lèi)為抽象基類(lèi),Teacher類(lèi)、Assistant類(lèi)、Manager類(lèi)以Person類(lèi)為直接基類(lèi),Teacher_Assistant類(lèi)為T(mén)eacher類(lèi)和Assistant類(lèi)的派生類(lèi),Manger_Teacher類(lèi)為Manager類(lèi)和Teacher類(lèi)的派生類(lèi),Salary_Management類(lèi)為Person類(lèi)的友元類(lèi),提供實(shí)現(xiàn)管理功能的相應(yīng)的函數(shù),主要實(shí)現(xiàn)職工信息的錄入,查詢、修改、添加、刪除、瀏覽和退出系統(tǒng)的功能。計(jì)劃與進(jìn)度6月末完成題目的分析設(shè)計(jì),7月1號(hào)完成程序代碼的編寫(xiě),7月4號(hào)初步調(diào)試工作基本完成。任課教師意 見(jiàn)說(shuō) 明課程設(shè)計(jì)名稱(chēng):高校工資管理系統(tǒng)1.設(shè)計(jì)內(nèi)容:?jiǎn)栴}的描述(功能要求):高校有五類(lèi)職工:教師,實(shí)驗(yàn)員,行政人員,教師兼職實(shí)驗(yàn)員,行政人員兼職教師。為了實(shí)現(xiàn)工資發(fā)放的自動(dòng)功能,現(xiàn)要求編寫(xiě)程序來(lái)自動(dòng)完成此功能。同時(shí)注意生成的相關(guān)數(shù)據(jù)結(jié)果以文件方式存放在硬盤(pán)中。程序應(yīng)具備從鍵盤(pán)錄入,文件的可繼續(xù)錄入,任意職工的工資查詢(可由職工編號(hào)和職工姓名來(lái)實(shí)現(xiàn)),若有職工由于工作調(diào)動(dòng),則可進(jìn)行相對(duì)應(yīng)的調(diào)整動(dòng)作。相關(guān)信息:每一學(xué)期將學(xué)校職工的本學(xué)期任職情況及上學(xué)期工作的相關(guān)情況輸入計(jì)算機(jī),則本學(xué)期職工的月工資按程序處理后的結(jié)果發(fā)放,其中職工的工資計(jì)算方法如下:其中工資的基本構(gòu)成如下: 教師: 基本工資+課時(shí)費(fèi); 實(shí)驗(yàn)員: 基本工資+實(shí)驗(yàn)室補(bǔ)助; 行政人員: 基本工資+行政補(bǔ)貼; 教師兼職實(shí)驗(yàn)員: 基本工資+課時(shí)費(fèi)+實(shí)驗(yàn)室補(bǔ)助; 行政人員兼職教師:基本工資+行政補(bǔ)貼+課時(shí)費(fèi);其中:1.課時(shí)費(fèi):教師每一月的基本工作量為24,實(shí)驗(yàn)員每學(xué)期基本工作量為0,行政人員沒(méi)有基本工作量,每節(jié)課時(shí)費(fèi)為30元;課時(shí)費(fèi)=(上學(xué)期工作量-基本工作量)*30;注意:如果上學(xué)期基本工作量沒(méi)完成,則其(上學(xué)期工作量-基本工作量)*30為負(fù)值。2.基本工資:教師1000元,實(shí)驗(yàn)員800元,行政人員900元。3.行政補(bǔ)貼:250元。2.設(shè)計(jì)目的與要求:2.1設(shè)計(jì)目的達(dá)到熟練掌握C+語(yǔ)言的基本知識(shí)和技能; 基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法; 能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的面向?qū)ο蟪绦蛟O(shè)計(jì)問(wèn)題。2.2設(shè)計(jì)要求要求利用面向?qū)ο蟮姆椒ㄒ约癈+的編程思想來(lái)完成系統(tǒng)的設(shè)計(jì); 要求在設(shè)計(jì)的過(guò)程中,建立清晰的類(lèi)層次; 在系統(tǒng)的設(shè)計(jì)中,至少要用到面向?qū)ο蟮囊环N機(jī)制。3.系統(tǒng)分析與設(shè)計(jì)3.1主要知識(shí)點(diǎn)本程序共有三個(gè)文件組成,分別是Salary.h, Salary.cpp和main.cpp; Salary.h中定義了程序所需的類(lèi),全局函數(shù),以及要用到的標(biāo)準(zhǔn)頭文件。用到的知識(shí)主要有類(lèi)的繼承與派生,純虛函數(shù),頭文件的組織,鏈表操作,程序菜單選擇和處理函數(shù)的組織和編寫(xiě),文件的讀寫(xiě)操作。3.2關(guān)鍵技術(shù)程序中每一種數(shù)據(jù)類(lèi)型用一個(gè)類(lèi)來(lái)實(shí)現(xiàn),共設(shè)計(jì)了6個(gè)類(lèi)。人員類(lèi) Person,教師類(lèi)Teacher,實(shí)驗(yàn)員類(lèi)Assistant,行政人員類(lèi) Manager,教師兼實(shí)驗(yàn)員類(lèi)Teacher_Manager,行政人員兼教師類(lèi)Manager_Teacher以及工資信息管理類(lèi)Salary_Management。每一種類(lèi)都定義了相應(yīng)的成員函數(shù)。具體定義如下所示:(1)類(lèi)Person類(lèi)Person為抽象類(lèi),為另外五個(gè)類(lèi)的基類(lèi),在類(lèi)Person中,成員變量ID表示職工編號(hào),name表示職工姓名,duty表示崗位類(lèi)別,salary表示職工工資以及next表示Person類(lèi)的指針域。兩個(gè)input()成員函數(shù),無(wú)參成員函數(shù)input()為純虛函數(shù)用來(lái)從鍵盤(pán)輸入職工數(shù)據(jù),有參成員函數(shù)input(ifstream& infile)用來(lái)從文件讀入職工數(shù)據(jù);兩個(gè)output()成員函數(shù),無(wú)參成員函數(shù)output()用來(lái)向屏幕輸出職工信息,有參成員函數(shù)output(ofstream& outfile)向指定文件Salary.txt中輸出職工信息以及成員函數(shù)incoming()用來(lái)計(jì)算職工工資。類(lèi)中還將將Salary_Management類(lèi)聲明為友員類(lèi),將Work_type(int duty)函數(shù)聲明為友元函數(shù),用來(lái)將職工類(lèi)別標(biāo)志轉(zhuǎn)換為相應(yīng)的類(lèi)別名稱(chēng),以便顯示職工崗位類(lèi)別名稱(chēng)。(2)類(lèi)Teacher類(lèi)Teacher中,在繼承基類(lèi)數(shù)據(jù)成員的基礎(chǔ)上增加了成員變量hours用來(lái)存放教師的上課課時(shí)數(shù),并重新定義了成員函數(shù)input()和output()分別用來(lái)輸入和輸出職工信息,incoming()用來(lái)計(jì)算教師類(lèi)的人員工資。(3)類(lèi)Assistant類(lèi)Assistant中,在繼承基類(lèi)數(shù)據(jù)成員的基礎(chǔ)上增加了成員變量hours用來(lái)存放教師的上課課時(shí)數(shù)和Allowance用來(lái)存放試驗(yàn)室補(bǔ)助,并重新定義了成員函數(shù)input()和output()分別用來(lái)輸入和輸出職工信息,incoming()用來(lái)計(jì)算教師類(lèi)的人員工資。(4)類(lèi)Manager類(lèi)Manager中,在繼承基類(lèi)數(shù)據(jù)成員的基礎(chǔ)上增加了成員變量Allowance用來(lái)存放行政補(bǔ)貼,并重新定義了成員函數(shù)input()和output()分別用來(lái)輸入和輸出職工信息,incoming()用來(lái)計(jì)算教師類(lèi)的人員工資。(5)類(lèi)Teacher_Assistant類(lèi)Teacher_Assistant以Teacher類(lèi)和Assistant類(lèi)為直接基類(lèi),重新定義了成員函數(shù)input()和output()分別用來(lái)輸入和輸出職工信息,incoming()用來(lái)計(jì)算教師類(lèi)的人員工資。(6)類(lèi)Manager_Teacher類(lèi)Manager_Teacher以Teacher類(lèi)和Assistant類(lèi)為直接基類(lèi),重新定義了成員函數(shù)input()和output()分別用來(lái)輸入和輸出職工信息,incoming()用來(lái)計(jì)算教師類(lèi)的人員工資。(7)類(lèi)Salary_Management類(lèi)Salary_Management用來(lái)為管理職工信息提供相關(guān)功能函數(shù),有私有數(shù)據(jù)成員PL是鏈表的頭指針,私有成員函數(shù)clear清除所有職工結(jié)點(diǎn),私有成員函數(shù)QueryRec用來(lái)查詢職工記錄。共有成員函數(shù)AddRec用來(lái)增加職工記錄,DelRec用來(lái)刪除職工記錄,Modify用來(lái)修改職工記錄,display用來(lái)顯示職工記錄,Save用來(lái)保存職工信息,F(xiàn)indRecID按職工編號(hào)查找職工記錄,F(xiàn)indRecName按職工姓名查找職工記錄,F(xiàn)indRecSalary按職工工資查找職工記錄,F(xiàn)indRecEducation按職工學(xué)歷查找職工記錄,F(xiàn)indRecAge按職工年齡查找職工記錄Load用來(lái)從鍵盤(pán)錄入職工信息,Build用來(lái)從文件讀取職工信息,Statistics提供職工信息統(tǒng)計(jì)功能,可以實(shí)現(xiàn)分別按職工類(lèi)別、職工工資、要發(fā)工資總數(shù)、職工人數(shù)的統(tǒng)計(jì)功能,MenuSelect菜單功能選擇函數(shù),顯示程序主功能菜單并接收用戶的選擇,返回用戶選擇提供給Handle_menu函數(shù),Handle_menu菜單處理函數(shù),用來(lái)處理用戶的功能選擇,并調(diào)用相應(yīng)的功能函數(shù)實(shí)現(xiàn)用戶所要求實(shí)現(xiàn)的功能。(8)全局函數(shù)duty_to_string函數(shù)用來(lái)將崗位類(lèi)別標(biāo)識(shí)轉(zhuǎn)換為相應(yīng)的名稱(chēng)。print_worktype_menu函數(shù)用來(lái)顯示人員類(lèi)別選擇菜單。dis_mainmenu函數(shù)用來(lái)選擇程序主功能菜單。(9)調(diào)用的系統(tǒng)庫(kù)函數(shù)system(pause); /在屏幕上輸出:press any key to quit,意思是停留,看程序的輸出結(jié)果system(cls); 清屏 (10)頭文件說(shuō)明本程序有一個(gè)Salary.h頭文件,該頭文件包含程序所需包含的標(biāo)準(zhǔn)頭文件和定義的類(lèi)以及全局函數(shù)。為了防止頭文件重復(fù)包含,采用如下格式:#if !defined (宏)#define 宏 /頭文件具體內(nèi)容#endif這樣可以使源文件中只要包含Salary.h一個(gè)頭文件即可,使文件頭變得簡(jiǎn)潔。(11)程序的主要功能函數(shù)及相關(guān)算法本程序共定義六個(gè)類(lèi),分別是Person類(lèi)、Teacher類(lèi)、Assistant類(lèi)、 Manager類(lèi)、 Teacher_Assistant類(lèi)、Manager_Teacher類(lèi)和Salary_Management類(lèi)。Person類(lèi)為抽象類(lèi)作為T(mén)eacher類(lèi)、Assistant類(lèi)和Manager類(lèi)直接基類(lèi)。Teacher_Assistant類(lèi)以Teacher類(lèi)和Assistant類(lèi)作為直接基類(lèi),多重繼承,Manager_Teacher類(lèi)以Manager類(lèi)和Teacher類(lèi)作為直接基類(lèi)多重繼承。Salary_Management類(lèi)是為職工信息管理提供功能函數(shù)。Salary_Management類(lèi)中主要的成員函數(shù)有:AddRec函數(shù)用來(lái)提供添加職工信息的功能。該函數(shù)先調(diào)用print_worktype_menu函數(shù)打印職工類(lèi)別選擇菜單供用戶選擇,程序再根據(jù)用戶的不同選擇分別調(diào)用Teacher類(lèi)、Assistant類(lèi)、 Manager類(lèi)、 Teacher_Assistant類(lèi)、Manager_Teacher類(lèi)的input函數(shù)實(shí)現(xiàn)添加職工信息。Build函數(shù)的功能是從文件讀取職工信息來(lái)實(shí)現(xiàn)程序的初始化,該函數(shù)使用文件指針操作函數(shù)tellg和seekg函數(shù)來(lái)不斷調(diào)整文件指針,以實(shí)現(xiàn)從文件讀取職工信息供程序初始化的功能。再該函數(shù)中,先定義buf臨時(shí)空間,用infilebufbufDuty;語(yǔ)句先讀取職工信息中的duty的值,然后在根據(jù)duty的值分別調(diào)用Teacher類(lèi)、Assistant類(lèi)、 Manager類(lèi)、 Teacher_Assistant類(lèi)、Manager_Teacher類(lèi)的input(ifstream&)函數(shù)來(lái)實(shí)現(xiàn)從文件輸入職工信息的功能。DelRec函數(shù)的功能是根據(jù)用戶輸入的編號(hào)來(lái)刪除指定的職工記錄。該函數(shù)先調(diào)用QueryRec函數(shù)查找與用戶輸入的編號(hào)相對(duì)應(yīng)的職工記錄,然后從鏈表中刪除對(duì)應(yīng)的結(jié)點(diǎn),實(shí)現(xiàn)職工記錄的刪除,同樣也會(huì)相應(yīng)的輸出文件中的信息。display函數(shù)的功能是顯示所用的職工記錄。Search函數(shù)功能是通過(guò)調(diào)用FindRecID函數(shù)和FindRecName函數(shù)來(lái)實(shí)現(xiàn)按職工編號(hào)或按姓名來(lái)查找相應(yīng)的職工信息,如果能查找到則輸出相應(yīng)的職工信息,沒(méi)找到會(huì)給出” 找不到你要查找的職工信息!”的提示信息。該函數(shù)具有循環(huán)查找功能。Load函數(shù)的功能是錄入職工信息。該函數(shù)先要求用戶輸入要錄入的職工數(shù),然后調(diào)用print_worktype_menu函數(shù)提示用戶輸入職工的類(lèi)別,程序再根據(jù)用戶輸入的職工類(lèi)別duty來(lái)調(diào)用相應(yīng)類(lèi)的input函數(shù)實(shí)現(xiàn)職工信息的鍵盤(pán)錄入功能。Handle_menu函數(shù)的功能是處理用戶的功能選擇。該函數(shù)通過(guò)調(diào)用MenuSelect函數(shù)獲取用戶的功能選擇序號(hào)來(lái)給select變量賦值,然后再用switch語(yǔ)句根據(jù)select的值調(diào)用相應(yīng)的功能函數(shù)來(lái)實(shí)現(xiàn)用戶選擇的功能。Save函數(shù)的功能是將職工信息已成功保存到Salary.txt文件中。Statistics函數(shù)的是職工信息的統(tǒng)計(jì)。共提供四種不同方式的統(tǒng)計(jì)功能:1、統(tǒng)計(jì)各職工類(lèi)別職工的人數(shù)2、根據(jù)用戶輸入的工資范圍統(tǒng)計(jì)并輸出該范圍內(nèi)的職工信息3、統(tǒng)計(jì)要發(fā)工資總數(shù)4、統(tǒng)計(jì)職工的總?cè)藬?shù)Modify函數(shù)的功能是修改指定職工的信息;但不能修改職工的類(lèi)別信息。函數(shù)先要求用戶輸入要修改的職工編號(hào),然后調(diào)用QueryRec函數(shù)查找到相應(yīng)職工的記錄,然后調(diào)用該職工所屬類(lèi)的input函數(shù)來(lái)時(shí)用戶信息的重新賦值。3.3基本功能要求(1)功能選擇可以用菜單來(lái)實(shí)現(xiàn)例如:請(qǐng)選擇您的計(jì)算內(nèi)容:1、 職工信息錄入2、 查詢職工信息3、 修改職工信息4、 增加職工記錄5、 刪除職工信息6、 統(tǒng)計(jì)職工信息7、 瀏覽所有信息8、 退出系統(tǒng)用戶通過(guò)輸入不同的數(shù)字進(jìn)入不同的菜單。次級(jí)菜單主要顯示本程序的功能,主要的功能有錄入職工信息、查詢職工信息、添加職工記錄、刪除職工記錄、統(tǒng)計(jì)職工信息、瀏覽職工信息。(2)運(yùn)行時(shí)給出明確的提示信息。比如,在選擇主功能菜單是選擇范圍是(1-8),如果用戶輸入的選項(xiàng)不在可選擇范圍之內(nèi),程序會(huì)給出輸入選項(xiàng)不在可選范圍之內(nèi)的提示,并要求用戶且知道輸入選項(xiàng)在可選范圍內(nèi)才執(zhí)行相應(yīng)的功能。本程序有較友好的用戶交互界面,每進(jìn)入或離開(kāi)一個(gè)功能界面時(shí)都會(huì)有相應(yīng)的提示信息,方便用戶操作。4.系統(tǒng)總體設(shè)計(jì)(確定程序功能模塊)本程序的類(lèi)繼承關(guān)系如1所示:Salary_Management類(lèi)中成員函數(shù)調(diào)用關(guān)系如圖所示:main函數(shù)Person類(lèi)(抽象基類(lèi))Teacher類(lèi)Assistant類(lèi)Manager類(lèi)Teacher_Assistant類(lèi)Manager_Teacher類(lèi)注意圖中的箭頭方向,箭頭表示繼承的方向,從派生類(lèi)指向基類(lèi)。圖1.程序中類(lèi)的繼承關(guān)系Handle_menu函數(shù)MenuSelect函數(shù)1、Load3、Modify4、AddRec5、DelRec6、Statistics7、display8、exit2、FindRecID & FindRecName.圖2、Salary_Management類(lèi)中成員函數(shù)調(diào)用關(guān)系圖5、程序文件組成及各文件中的源代碼(1)頭文件:#if !defined (H_Salary_H)#define H_Salary_H#include #include #include #include using namespace std;class Person /人員信息類(lèi) (抽象基類(lèi))public:virtual void input()=0; /從鍵盤(pán)輸入職工數(shù)據(jù)virtual void input(ifstream& infile)=0; /從文件讀入職工數(shù)據(jù)virtual void output()=0; /向屏幕輸出職工信息virtual void output(ofstream& outfile)=0; /向指定文件輸出職工信息virtual double incoming()=0; / 計(jì)算職工收入函數(shù)Person() /Person基類(lèi)構(gòu)造函數(shù)next=0; /指針賦值為空 virtual Person()protected:char name15; /職工姓名string ID; /職工編號(hào) int duty; /*崗位類(lèi)別 :1:教師 2:實(shí)驗(yàn)員 3:行政人員 4:教師兼實(shí)驗(yàn)員 5:行政人員兼教師*/char address150 ;string phone;char education50; /a;學(xué)士 b;碩士 c;博士char sex10;int age;double salary; /職工薪水Person *next; /指針成員 friend bool isexist(string id); friend class Salary_Management; /將Salary_Management類(lèi)聲明為友員類(lèi);class Teacher :virtual public Personprotected: int hours; /上學(xué)期工作量public:Teacher()salary=1000; /教師基本工資1000元duty=1; /崗位類(lèi)別為1void input();void input(ifstream& infile);void output();void output(ofstream& outfile);double incoming();class Assitant :virtual public Personpublic:Assitant()salary=800; /實(shí)驗(yàn)員基本工資800元duty=2; /崗位類(lèi)別為2allowance=150; /實(shí)驗(yàn)室補(bǔ)助為150元;void input();void input(ifstream& infile);void output();void output(ofstream& outfile);double incoming();protected: int hours;double allowance;class Manager :virtual public Personpublic:Manager() salary=900; /行政人員基本工資為900元 duty=3; /崗位類(lèi)別為3 allowance=250; /行政補(bǔ)貼 void input();void input(ifstream& infile);void output();void output(ofstream& outfile);double incoming();protected:double allowance; /行政補(bǔ)貼;class Teacher_Assistant : public Teacher,public Assitantpublic:Teacher_Assistant()Teacher:salary=1000; /基本工資1000元duty=4; /崗位類(lèi)別為4Assitant:allowance=150; /實(shí)驗(yàn)室補(bǔ)助150元void input();void input(ifstream& infile);void output();void output(ofstream& outfile);double incoming();class Manager_Teacher :public Manager,public Teacherpublic:Manager_Teacher()salary=900; /基本工資900元duty=5; /崗位類(lèi)別為5Manager:allowance=250; /行政補(bǔ)貼250元void input();void input(ifstream& infile);void output();void output(ofstream& outfile);double incoming();class Salary_Managementpublic: Salary_Management(); /構(gòu)造函數(shù) Salary_Management(); /析構(gòu)函數(shù)void AddRec(); /增加職工記錄void DelRec(); /刪除職工記錄void Modify(); /修改職工記錄void display(); /顯示職工記錄void Save(); /保存職工信息void FindRecID(); /按職工編號(hào)查找職工記錄void FindRecName();/按職工姓名查找職工記錄void FindRecAge();void FindRecEducation();void FindRecSalary();void Load(); /職工信息裝入void Build(); /引導(dǎo)void Statistics(); /職工信息統(tǒng)計(jì)int MenuSelect(); /菜單功能選擇void Handle_menu(); /菜單處理函數(shù)private:Person *PL; /鏈表頭指針 void clear(); /清除所有職工結(jié)點(diǎn),僅保留頭結(jié)點(diǎn) bool QueryRec(string ID,Person* p1,Person* p2 ); /查找職工結(jié)點(diǎn);string Work_type(int duty);void print_worktype_menu();void dis_mainmenu();#endif(2)源文件:#include 高校職工信息與工資管理系統(tǒng).hvoid Teacher:input() /從鍵盤(pán)補(bǔ)充其他數(shù)據(jù) coutID; coutname; coutsex; coutage; couteducation; coutaddress; coutphone; couthours; salary=incoming();void Teacher:input(ifstream& infile)infileID;infilesex;infileage;infileeducation;infilename;infileaddress;infilephone;infileduty;infilehourssalary;void Teacher:output()coutt編 號(hào): IDendl;coutt姓 名: nameendl; coutt性 別: sexendl; coutt年 齡: ageendl;coutt學(xué) 歷:educationendl;coutt地 址:addressendl;coutt電 話:phoneendl;coutt人員類(lèi)別: Work_type(duty)endl;coutt上學(xué)期上課課時(shí): hoursendl;coutt工 資: salary 元endl;void Teacher:output(ofstream& outfile)outfileIDtnametsextageteducationtaddresstphonetdutythourstsalary120) return salary+(hours-24)*30;else return salary;void Assitant:input()coutID;coutname;coutsex; coutage; couteducation; coutaddress; coutphone;salary=incoming();void Assitant:input(ifstream& infile)infileIDnamesexageeducationaddressphonedutysalary;void Assitant:output()coutt編 號(hào): IDendl;coutt姓 名: nameendl; coutt性 別: sexendl; coutt年 齡: ageendl;coutt學(xué) 歷:educationendl;coutt地 址:addressendl;coutt電 話:phoneendl;coutt人員類(lèi)別: Work_type(duty);coutt工 資: salary 元endl;void Assitant:output(ofstream& outfile)outfileIDtnametsextageteducationtaddresstphonetdutytsalaryendl;double Assitant:incoming() return salary+allowance;void Manager:input()coutID;coutname;coutsex; coutage; couteducation; coutaddress; coutphone; salary=incoming();void Manager :input(ifstream& infile)infileIDnamesexageeducationaddressphonedutysalary;void Manager:output() coutt編 號(hào): IDendl;coutt姓 名: nameendl; coutt性 別: sexendl; coutt年 齡: ageendl;coutt學(xué) 歷:educationendl;coutt地 址:addressendl;coutt電 話:phoneendl;coutt人員類(lèi)別: Work_type(duty)endl;coutt工 資: salary 元endl;void Manager:output(ofstream& outfile)outfileIDtnametsextageteducationtaddresstphonetdutytsalaryendl;double Manager:incoming()return salary+allowance;void Teacher_Assistant:input()coutID;coutname;coutsex; coutage; couteducation; coutaddress; coutphone;coutTeacher:hours;salary=incoming();void Teacher_Assistant:input(ifstream& infile)infileIDnamesexageeducationaddressphonedutyTeacher:hourssalary;void Teacher_Assistant:output()coutt編 號(hào): IDendl;coutt姓 名: nameendl; coutt性 別: sexendl; coutt年 齡: ageendl;coutt學(xué) 歷:educationendl;coutt地 址:addressendl;coutt電 話:phoneendl;coutt人員類(lèi)別: Work_type(duty);coutt教師上學(xué)期上課課時(shí): Teacher:hours;coutt工資: salary 元endl;void Teacher_Assistant:output(ofstream& outfile)outfileIDtnametsextageteducationtaddresstphonetdutytTeacher:hourstsalary12)return salary+allowance+(Teacher:hours-12)*30;else return salary+allowance;void Manager_Teacher:input()coutID;coutname;coutsex; coutage; couteducation; coutaddress; coutphone; coutTeacher:hours;salary=incoming();void Manager_Teacher:input(ifstream& infile)infileIDnamesexageeducationaddressphonedutyTeacher:hourssalary;void Manager_Teacher:output()coutt編 號(hào): IDendl;coutt姓 名: nameendl; coutt性 別: sexendl; coutt年 齡: ageendl;coutt學(xué) 歷:educationendl;coutt地 址:addressendl;coutt電 話:phoneendl;coutt人員類(lèi)別: Work_type(duty);coutt上學(xué)期上課課時(shí): Teacher:hoursendl; coutt工資: salary 元endl;void Manager_Teacher:output(ofstream& outfile)outfileIDtnametsextageteducationtaddresstphonetdutytTeacher:hourstsalarynext;delete p;p=PL;PL=0;void print_worktype_menu()couttt請(qǐng)選擇人員類(lèi)別: endl;coutttt1、教 師: endl;coutttt2、實(shí) 驗(yàn) 員: endl;coutttt3、行 政 人 員: endl;coutttt4、教師兼實(shí)驗(yàn)員: endl;coutttt5、行政 兼 教師: endl;coutntt請(qǐng)選擇要添加的相應(yīng)的人員類(lèi)別分類(lèi)碼: ;void Salary_Management:AddRec()char ch=y;/創(chuàng)建新結(jié)點(diǎn),錄入數(shù)據(jù),連接到鏈表Teacher* pt;Assitant* pa;Manager* pm;Teacher_Assistant* pta;Manager_Teacher* pmt;while (ch=y|ch=Y)coutt*增加職工*next)p=p-next; /查找尾結(jié)點(diǎn)print_worktype_menu();char select;cinselect; switch(select) case 1: pt=new Teacher; pt-input(); p-next=pt; break; case 2 : pa=new Assitant; pa-input(); p-next=pa; break; case 3 : pm=new Manager; pm-input(); p-next=pm; break; case 4 : pta=new Teacher_Assistant; pta-input(); p-next=pta; break; case 5 : pmt=new Manager_Teacher; pmt-input(); p-next=pmt; break; default : return; coutch;system(cls);system(pause);void Salary_Management:clear() /清除所有的職工結(jié)點(diǎn)(僅保留頭結(jié)點(diǎn)) Person* p=PL-next; while (p) PL-next=p-next; delete p; p=PL-next; void Salary_Management:FindRecID()/按職工編號(hào)查找相應(yīng)的人員信息 string id;Person* p1;Person* p2;coutid;p1=PL-next;p2=PL;while (p1)if (p1-ID=id)break; /找到elsep2=p1; /繼續(xù)向后查

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論