C語言小型公司工資管理完整(整理)_第1頁
C語言小型公司工資管理完整(整理)_第2頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計 課程名稱:程序設(shè)計方法與 C 語言課程設(shè)計 設(shè)計題目:小型公司工資管理系統(tǒng)設(shè)計 學(xué) 院: 信息工程與自動化學(xué)院 專 業(yè): 計算機(jī)科學(xué)與技術(shù) 年 級:2008 2008 級 學(xué)生姓名: 指導(dǎo)教師: 張力 日 期:0909 年 6 6 月 2222 日一 7 7 月 6 6 日 教務(wù)處制 課程設(shè)計任務(wù)書 信息工程與自動化 學(xué)院計算機(jī)科學(xué)與技術(shù) 專業(yè) 20082008 年級 班級:082082 學(xué)號:姓名: 課程設(shè)計題目:程序設(shè)計方法與 C 語言課程設(shè)計 課程設(shè)計主要內(nèi)容: 編程實(shí)現(xiàn)小型公司工資管理系統(tǒng) 需求分析 : : 1 1、公司主要有 4 4 類人員:經(jīng)理、技術(shù)員、銷售員、銷售經(jīng)理。

2、要求存儲 這些人的 職工號、姓名、月工資、崗位、年齡、性別等信息。 2 2、工資的計算方法: A A、 經(jīng)理:固定月薪為 80008000; B B、 技術(shù)員:工作時間* *小時工資(100100 元每小時); C C、 銷售員:銷售額*4%*4%提成; D D、 銷售經(jīng)理:底薪(50005000)+ +所轄部門銷售額總額*0*0.5% .5% ; 3 3、 注冊新職工,添加新職工的詳細(xì)信息,如:職工號,姓名,出生年 份,性別,職稱,部門工資等; 4 4、 按姓名,部門等條件進(jìn)行查詢; 5 5、 修改和刪除職工信息; 6 6、 按工資高低進(jìn)行排序; 7 7、 把各項(xiàng)紀(jì)錄存儲在文本文件中設(shè)計 1

3、 1、 類及類層次結(jié)構(gòu)設(shè)計 有一個父類和 4 4 個子類 父類中有虛函數(shù), 和基本數(shù)據(jù)的錄入和輸出, 特殊數(shù)據(jù)的錄入處 理由多態(tài)實(shí)現(xiàn)。 2 2、 模塊分析 1 1):新建部分 為實(shí)現(xiàn)不限制數(shù)量的人員錄入建立鏈表; 2)2) :查找 在鏈表中查找含有某個特殊成員數(shù)據(jù)的對象,從頭到尾尋找一 邊,判斷是否輸出 3)3) :排序 鏈表排序,冒泡排序,選擇對其關(guān)鍵字進(jìn)行排序;交換結(jié)點(diǎn)(交 換對象的 next next 數(shù)據(jù)) 4)4) :輸出到文本 有類,fstreamfstream 和函數(shù) savesave 實(shí)現(xiàn),鏈表成員一次輸入 3 3、 主菜單設(shè)計 (一)、 編碼及調(diào)試 完整的程序: Main.c

4、pp:Main.cpp: #includestaff.h #includeMy_function.h #include int main() fstream io(date.txt,ios:out) 。 Staff head 。 Staff *h,*p,*s 。 h=&head。 p=&head。 s=&head。 if(!io) cerrFile could not be openedendl 。 exit(1) 。 。 int i=0 。 while(i!=4)cout 請選擇你要進(jìn)行的操作 endl 。 cout1: 注冊新職工 2: 查詢 endl 。 cout

5、3: 按工資高低進(jìn)行排序 endl 。 cout4: 記錄并推出 i 。 switch(i) case 1:Login(&p,&s) 。 break 。 case 2:Query(h) 。 break 。 case 3:Sort(h) 。 break 。 case 4:Save(head,io) 。 break 。 default:cout 請重新選擇 endl 。 。 system(cls) 。 cout 作者:計科 082 崔輝毅 200810405207endl cout 版權(quán)歸作者崔某所有 . endl。 cout . 西陵榮譽(yù)岀品 . endl。 return 0 。

6、 。 STFF.H:STFF.H: #ifndef STAFF_H #define STAFF_H #include #include #include using namespace std 。 class Staff 。 class Staff public: Staff() 。 Staff(int i) 。 Staff() 。 virtual int count_wage() 。 virtual void set() 。 void b_set() 。 / 基本信息錄入 virtual void get() 。 void b_get() 。 / 基本信息輸岀 void set_wage(i

7、nt wage) 。 int get_wage() 。 void set_next(Staff* next) 。 Staff* get_next() 。 void set_job(int job) 。 int get_job() 。 string get_name() 。 void b_save(fstream &io) 。 virtual void save(fstream &io) 。 private: string M_NO,M_name 。 / 職工號、姓名 int M_job 。 / 崗位 (1 經(jīng)理、 2技術(shù)員、 3銷售員、 4銷售經(jīng)理 ) int M_wage,M

8、_age,M_sex 。 / 月工資、年齡、性別 (1 男 2女) int M_year 。 / 出生年份 Staff *M_next 。 / 指向下一個 。 class Manager:public Staff public: Manager() 。 void set() 。 void get() 。 int count_wage() 。 void save(fstream &io) 。 。 class Technician:public Staff public: Technician() 。 void set() 。 void get() 。 int count_wage() 。

9、 void save(fstream &io) 。 private: int M_time 。 。 class Sales:public Staff public: Sales() 。 void set() 。 void get() 。 int count_wage() 。 void save(fstream &io) 。 private: int M_sale 。 。 class Sales_Manager:public Staff public: Sales_Manager() 。 void set() 。 void get() 。 int count_wage() 。 v

10、oid save(fstream &io) private: int M_sale 。 。 #endif STAFF.CPP:STAFF.CPP: #includestaff.h Staff:Staff(int i) M_job=i 。 M_next=0 。 。 Staff:Staff() M_next=0 。 。 Manager:Manager() set_job(1) 。 Staff() 。 。 Technician:Technician() set_job(2) 。 。 Sales:Sales() set_job(3) 。 。 Sales_Manager:Sales_Manage

11、r() set_job(4) 。 。 Staff:Staff() 。 void Staff:set() 。 void Staff:b_set() cout 請輸入該職工的職工號 M_NO。 cout 請輸入該職工的姓名 M_name。 cout 請輸入該職工的出生年份 M_year 。 cout請輸入該職工的性別 (1男2女)M_sex 。 。 void Staff:get() 。 void Staff:b_get() cout 職工號 : M_NOendl 。 cout 姓名 : M_nameendl 。 cout 出生年份 : M_yearendl 。 if(M_sex=1) cout 性

12、別 : 男 endl 。 else cout性別:女endl。 。 int Staff:count_wage() return 0 。 。 void Staff:set_wage(int wage) M_wage=wage。 。 int Staff:get_wage() return M_wage 。 。 void Staff:set_next(Staff* next) M_next=next 。 。 Staff* Staff:get_next() return M_next 。 string Staff:get_name() return M_name 。 。 void Staff:set_

13、job(int job) M_job=job 。 。 int Staff:get_job() return M_job 。 。 void Staff:b_save(fstream &io) io 職工號 : M_NOendl 。 io 姓名 : M_nameendl 。 io 出生年份 : M_yearendl if(M_sex=1) io 性別 : 男 endl 。 else io 性別 : 女 endl 。 。 void Staff:save(fstream &io) 。 int Manager:count_wage() set_wage(8000) 。 return 80

14、00 。 。 void Manager:set() b_set() 。 count_wage() 。 。 void Manager:get() b_get() 。 cout 職務(wù) : Managerendl 。 cout 月薪 : 8000endl 。 。 void Manager:save(fstream &io) b_save(io) 。 io 職務(wù) : Managerendl 。 io 月薪 : 8000endl 。 。 int Technician:count_wage() set_wage(M_time*100) 。 return M_time*100 。 。 void Te

15、chnician:set() b_set() 。 cout 請輸入該職工的月工作時間 M_time 。 count_wage() 。 。 void Technician:get() b_get() 。 cout 職務(wù) : Technicianendl 。 cout 月薪 : count_wage()endl 。 void Technician:save(fstream &io) b_save(io) 。 io 職務(wù) : Technicianendl 。 io 月薪 : count_wage()endl 。 。 int Sales:count_wage() set_wage(M_sale

16、*0.04) 。 return M_sale*0.04 。 。 void Sales:set() b_set() 。 cout 請輸入該職工的銷售額 M_sale 。 count_wage() 。 。 void Sales:get() b_get() 。 cout 職務(wù) : Salesendl 。 cout 月薪 : count_wage()endl 。 void Sales:save(fstream &io) b_save(io) 。 io 職務(wù) : Salesendl 。 io 月薪 : count_wage()endl 。 。 int Sales_Manager:count_wa

17、ge() set_wage(5000+M_sale*0.0005) 。 return 5000+M_sale*0.0005 。 。 void Sales_Manager:set() b_set() 。 cout 請輸入該職工所轄部門銷售額總額 M_sale 。 count_wage() 。 。 void Sales_Manager:get() b_get() 。 cout 職務(wù) : Sales_Managerendl 。 cout 月薪 : count_wage()endl 。 。 void Sales_Manager:save(fstream &io) b_save(io) 。 io

18、 職務(wù) : Sales_Managerendl 。 io 月薪 : count_wage()endl 。 。 My_function.h: My_function.h: #ifndef MY_FUNCTION_H #define MY_FUNCTION_H #includestaff.h void Login(Staff *p,Staff *s) 。 void Query(Staff *h) 。 void name(Staff *h) 。 void job(Staff *h) 。 void Sort(Staff *h) 。 void Save(Staff &h,fstream &

19、;io) 。 #endif My_function.cpp:My_function.cpp: #includeMy_function.h void Login(Staff *p,Staff *s) int i 。 cout 請輸入該職工的職務(wù) (1 經(jīng)理、 2技術(shù)員、 3銷售員、 4銷售經(jīng)理 )i 。 switch(i) case 1:*s=new Manager 。 break 。 case 2:*s=new Technician 。 break 。 case 3:*s=new Sales 。 break 。 case 4:*s=new Sales_Manager 。 break 。 。 (

20、*s).set() 。 (*p).set_next(*s) 。 *p=*s 。 。 void Query(Staff *h) int i 。 cout 請選擇 :1 按姓名查詢 endl 。 cout 2 按部門查詢 i 。 switch(i) case 1:name(h) 。 break 。 case 2:job(h) 。 break 。 default:cout 請重新選擇 endl 。 。 。 void name(Staff *h) Staff *p=h,*s=h 。 string name 。 cout 請輸入您要查詢的員工名字 name 。 while(*p).get_next() if(*p).get_name()=name) (*p).get() 。 。 s=(*p).get_next() p=s。 。 if(*p).get_name()=name) (*p).get() 。 。 cout 搜尋結(jié)束 endl 。 。 void job(Staff *h) Staff *p=h,*s=h 。 int job 。 cout 請輸入您要查詢的部門編號 (1 經(jīng)理、 2技術(shù)員、 3銷售員、 4銷售經(jīng)理 )job 。 while(*p).get_next() if(*

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論