C公司人員信息標(biāo)準(zhǔn)管理系統(tǒng)專業(yè)課程設(shè)計方案報告_第1頁
C公司人員信息標(biāo)準(zhǔn)管理系統(tǒng)專業(yè)課程設(shè)計方案報告_第2頁
C公司人員信息標(biāo)準(zhǔn)管理系統(tǒng)專業(yè)課程設(shè)計方案報告_第3頁
C公司人員信息標(biāo)準(zhǔn)管理系統(tǒng)專業(yè)課程設(shè)計方案報告_第4頁
C公司人員信息標(biāo)準(zhǔn)管理系統(tǒng)專業(yè)課程設(shè)計方案報告_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

目錄TOC\o"1-1"\u1系統(tǒng)需求分析 32總體設(shè)計 43具體設(shè)計及實(shí)現(xiàn) 74系統(tǒng)調(diào)試 695結(jié)論 736心得體會 747參考書目 751系統(tǒng)需求分析1.1系統(tǒng)設(shè)計目標(biāo)和意義:現(xiàn)在企業(yè)人員數(shù)量及職位種類較多,各樣人事管理活動也比較頻繁,所以需要設(shè)計一個企業(yè)人員信息管理系統(tǒng)來對企業(yè)職員信息進(jìn)行管理。1.2系統(tǒng)功效需求:本系統(tǒng)有五個類:基類:employee、派生類:manager、technician、salesman、salesmanager,儲存經(jīng)理、技術(shù)人員、銷售人員、銷售經(jīng)理信息。添加功效程序能夠任意添加上述四類人員統(tǒng)計,可提供選擇界面供用戶選擇所要添加人員類別,要求人員編號要唯一,假如添加了反復(fù)編號統(tǒng)計時,則提醒用戶數(shù)據(jù)添加反復(fù)并取消添加。查詢功效可依據(jù)編號、姓名等信息對已添加統(tǒng)計進(jìn)行查詢。假如未找到,給出對應(yīng)提醒信息,假如找到,則顯示對應(yīng)統(tǒng)計信息。顯示功效可顯示目前系統(tǒng)中全部統(tǒng)計。修改功效可依據(jù)查詢結(jié)果對對應(yīng)統(tǒng)計進(jìn)行修改,修改時注意編號唯一性。刪除功效對已添加人員統(tǒng)計進(jìn)行刪除。假如目前系統(tǒng)中沒有對應(yīng)人員統(tǒng)計,則提醒“統(tǒng)計為空!”并返回操作;不然輸入要刪除人員編號或姓名,依據(jù)所輸入信息刪除該人員統(tǒng)計,假如沒有找到該人員信息,則提醒對應(yīng)統(tǒng)計不存在。統(tǒng)計功效能依據(jù)多個參數(shù)進(jìn)行人員統(tǒng)計。比如:統(tǒng)計四類人員數(shù)量和總數(shù),統(tǒng)計男、女職員數(shù)量,統(tǒng)計平均工資、最高工資、最低工資等。保留功效將目前系統(tǒng)中各類人員統(tǒng)計存入文件中。讀取功效將保留在文件中人員信息讀入到目前系統(tǒng)中,以供用戶使用。2總體設(shè)計2.1系統(tǒng)功效分析:系統(tǒng)經(jīng)過調(diào)用函數(shù)來實(shí)現(xiàn)信息添加、信息查詢、信息顯示、信息修改、信息刪除、和數(shù)據(jù)讀取保留文件等功效。add()函數(shù)用于錄入信息;search()函數(shù)用來查詢信息;show()函數(shù)用來顯示信息;alter()函數(shù)用來修改信息;del()函數(shù)用來刪除信息;stat()函數(shù)用來統(tǒng)計信息read()函數(shù)用于將文件中數(shù)據(jù)讀取到內(nèi)存中;save()函數(shù)用于將內(nèi)存中信息存入文件內(nèi);主函數(shù)main()用于調(diào)用這些函數(shù)。2.2系統(tǒng)功效模塊劃分和設(shè)計:系統(tǒng)定義了manger類、technician類、salesman類、salesmanger類這四個類,定義了add()、search()、show()、alter()、del()、stat()、read()、save()、input()、output()等函數(shù)來實(shí)現(xiàn)系統(tǒng)所需功效。2.3系統(tǒng)功效模塊圖:企業(yè)人員信息管理系統(tǒng)經(jīng)理信息管理企業(yè)人員信息管理系統(tǒng)經(jīng)理信息管理技術(shù)人員信息管理銷售人員信息管理銷售經(jīng)理信息管理經(jīng)理信息添加經(jīng)理信息查詢經(jīng)理信息顯示經(jīng)理信息修改經(jīng)理信息刪除經(jīng)理信息統(tǒng)計技術(shù)人員信息添加技術(shù)人員信息查詢技術(shù)人員信息顯示技術(shù)人員信息修改技術(shù)人員信息刪除技術(shù)人員信息統(tǒng)計銷售人員信息添加銷售人員信息查詢銷售人員信息顯示銷售人員信息修改銷售人員信息刪除銷售人員信息統(tǒng)計銷售經(jīng)理信息添加銷售經(jīng)理信息查詢銷售經(jīng)理信息顯示銷售經(jīng)理信息修改銷售經(jīng)理信息刪除銷售經(jīng)理信息統(tǒng)計2.4類設(shè)計employee類(抽象類)設(shè)計employeeemployeevirtualvoidadd()=0;virtualvoidsearch()=0;virtualvoidshow()=0;virtualvoidalter()=0;virtualvoiddel()=0;virtualvoidstat()=0;virtualvoidsave()=0;virtualvoidread()=0;virtualvoidinput()=0;virtualvoidoutput()=0;stringnumber; stringname; stringsex; stringdepartment; stringrank; floatsalary;圖3.1employee類經(jīng)理類設(shè)計managermanagervoidadd(); voidsearch(); voidshow(); voidalter();voiddel(); voidstat(); voidsave(); voidread(); voidinput(); voidoutput();圖3.2經(jīng)理類(3)技術(shù)人員類設(shè)計techniciantechnicianvoidadd(); voidsearch(); voidshow(); voidalter();voiddel(); voidstat(); voidsave(); voidread(); voidinput(); voidoutput(); floatwork_time; floattime_salary;圖3.3技術(shù)人員類(4)銷售人員類設(shè)計salesmansalesmanvoidadd(); voidsearch(); voidshow(); voidalter();voiddel(); voidstat(); voidsave(); voidread(); voidinput(); voidoutput(); floatsale; floatrate;圖3.4銷售人員類成績類設(shè)計salesmanagervoidadd(); voidsearch(); voidshow(); voidalter();voiddel(); voidstat(); voidsave(); voidread(); voidinput(); voidoutput(); floatsala;圖3.5銷售經(jīng)理類各個類關(guān)系描述employeemanagersalesmantechniciansalesmanager3具體設(shè)計及實(shí)現(xiàn)3.1employee類(抽象類)實(shí)現(xiàn)#include<string>usingnamespacestd;classemployee{public: employee(void); ~employee(void); virtualvoidadd()=0; virtualvoidsearch()=0; virtualvoidshow()=0; virtualvoidalter()=0;virtualvoiddel()=0; virtualvoidstat()=0; virtualvoidsave()=0; virtualvoidread()=0; virtualvoidinput()=0; virtualvoidoutput()=0;protected: stringnumber; stringname; stringsex; stringdepartment; stringrank; floatsalary;};3.2經(jīng)理類實(shí)現(xiàn)manager.h#include"employee.h"classmanager: virtualpublicemployee{public: manager(void); ~manager(void); voidadd(); voidsearch(); voidshow(); voidalter();voiddel(); voidstat(); voidsave(); voidread(); voidinput(); voidoutput(); };manager.cpp#include"StdAfx.h"#include"manager.h"#include<iostream>#include<fstream>#include<string>#include<iomanip>usingnamespacestd;constintMAX=100;managerM[MAX];intstatictop1=0;manager::manager(void){}manager::~manager(void){}voidmanager::input(){cout<<"輸入編號:"<<endl;cin>>number;cout<<"輸入姓名:"<<endl;cin>>name;cout<<"輸入性別:"<<endl;cin>>sex;cout<<"輸入部門:"<<endl;cin>>department;cout<<"輸入等級:"<<endl;cin>>rank;cout<<"輸入固定月薪:"<<endl;cin>>salary;}voidmanager::output(){cout<<number<<"\t"<<name<<"\t"<<sex<<"\t"<<department<<"\t"<<rank<<"\t"<<salary<<endl;}voidmanager::read(){ top1=0; system("cls"); ifstreaminflie("經(jīng)理.txt",ios::in); if(!inflie) { cout<<"打開失敗!"<<endl; return; } inti=0; while(inflie>>M[i].number>>M[i].name>>M[i].sex>>M[i].department>>M[i].rank>>M[i].salary) { i++; top1=i; } inflie.close();}voidmanager::save(){ ofstreamoutflie("經(jīng)理.txt",ios::out); if(!outflie) { cout<<"打開失?。?<<endl; return; } inti; for(i=0;i<top1;i++) { outflie<<M[i].number<<"\t"<<M[i].name<<"\t"<<M[i].sex<<"\t"<<M[i].department<<"\t"<<M[i].rank<<"\t"<<M[i].salary<<endl; } cout<<"保留成功!"<<endl; outflie.close();}voidmanager::add(){ system("cls"); read(); if(top1>=MAX) { cout<<"人員已滿"<<endl; return; } cout<<"輸入要添加編號:"<<endl; stringn; cin>>n; for(inti=0;i<top1;i++) if(n==M[i].number) { cout<<"該編號人員已存在"<<endl; return; } managerm; cout<<"請再次輸入新添加人員信息"<<endl; m.input(); cout<<"是否確定添加?1、是2、否"<<endl; inta; cin>>a; if(a==1) { M[top1]=m; top1=top1+1; save(); } else { cout<<"放棄添加"<<endl; return; } }voidmanager::search(){ system("cls"); read(); if(top1==0) { cout<<"目前系統(tǒng)沒有儲存統(tǒng)計!"<<endl; return; } intchoice; cout<<"請選擇查找方法:1、按編號查找2、按姓名查找0、退出"<<endl; cin>>choice; switch(choice) { case1: { cout<<"請輸入要查找編號:"<<endl; stringnum; cin>>num; for(inti=0;i<top1;i++) { if(M[i].number==num) { cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"月薪"<<endl; M[i].output(); return; } } cout<<"查無此人!"<<endl; };break; case2: { cout<<"請輸入要查找姓名"<<endl; stringname; cin>>name; for(inti=0;i<top1;i++) { if(M[i].name==name) { cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"月薪"<<endl; M[i].output(); } } cout<<"查無此人!"<<endl; };break; case0:break;default:cout<<"輸入錯誤!請輸入0~3數(shù)字"<<endl;system("pause");search();break; } } voidmanager::show(){ system("cls"); read(); if(top1==0) { cout<<"無數(shù)據(jù)!"<<endl; return; } cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"月薪"<<endl; for(inti=0;i<top1;i++) M[i].output(); }voidmanager::alter(){ system("cls"); read(); if(top1==0) { cout<<"目前系統(tǒng)沒有儲存統(tǒng)計"<<endl; return; } stringnum; cout<<"請輸入要修改經(jīng)理編號:"<<endl; cin>>num; for(inti=0;i<top1;i++) { if(M[i].number==num) { cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"月薪"<<endl; M[i].output(); cout<<"請選擇修改范圍:1、全部修改2、修改編號3、修改姓名4、修改性別"<<endl; cout<<"5、修改部門6、修改等級7、修改月薪"<<endl; cout<<"0、退出修改"<<endl; intchoice; cin>>choice; switch(choice) { case1: { cout<<"輸入修改后編號:"<<endl; stringn; cin>>n; for(intj=0;j<top1;j++) if(n==M[j].number) { cout<<"該編號人員已存在"<<endl; return; } cout<<"輸入修改后姓名:"<<endl; stringna; cin>>na; cout<<"輸入修改后性別:"<<endl; strings; cin>>s; cout<<"輸入修改后部門:"<<endl; stringd; cin>>d; cout<<"輸入修改后等級:"<<endl; stringr; cin>>r; cout<<"輸入修改后月薪:"<<endl; floatsa; cin>>sa; cout<<"是否確定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) { M[i].number=n; M[i].name=na; M[i].sex=s; M[i].department=d; M[i].rank=r; M[i].salary=sa; } else { cout<<"放棄修改"<<endl; return; }save(); };break;case2: { cout<<"請輸入修改后編號"<<endl; stringn; cin>>n; for(inti=0;i<top1;i++) if(n==M[i].number) { cout<<"該編號人員已存在"<<endl; return; } cout<<"是否確定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) M[i].number=n; else { cout<<"放棄修改"<<endl; return; }save(); };break;case3: { cout<<"請輸入修改后姓名"<<endl; stringna; cin>>na; M[i].name=na; cout<<"是否確定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) M[i].name=na; else { cout<<"放棄修改"<<endl; return; } save(); };break;case4: { cout<<"請輸入修改后性別"<<endl; strings; cin>>s; M[i].sex=s; cout<<"是否確定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) M[i].sex=s; else { cout<<"放棄修改"<<endl; return; } save(); };break; case5: { cout<<"請輸入修改后部門"<<endl; stringd; cin>>d; M[i].department=d; cout<<"是否確定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) M[i].department=d; else { cout<<"放棄修改"<<endl; return; } save(); };break;case6: { cout<<"請輸入修改后等級"<<endl; stringr; cin>>r; M[i].rank=r; cout<<"是否確定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) M[i].rank=r; else { cout<<"放棄修改"<<endl; return; } save(); };break;case7: { cout<<"請輸入修改后月薪"<<endl; floatsa; cin>>sa; M[i].salary=sa; cout<<"是否確定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) M[i].salary=sa; else { cout<<"放棄修改"<<endl; return; } save(); };break;case0:cout<<"退出修改"<<endl;return;break;default:cout<<"無此選項(xiàng)!請輸入0~7數(shù)字"<<endl;system("pause");break; } cout<<"修改完成"<<endl; return; } } cout<<"查無此人"<<endl;}voidmanager::del(){ system("cls"); read(); if(top1==0) { cout<<"目前系統(tǒng)沒有儲存統(tǒng)計"<<endl; return; } intchoice; cout<<"請刪除查找方法:1、按編號刪除2、按姓名刪除0、退出"<<endl; cin>>choice; switch(choice) { case1: { cout<<"請輸入所要刪除人員編號:"<<endl; stringnum; cin>>num; for(inti=0;i<top1;i++) { if(M[i].number==num) { cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"月薪"<<endl; M[i].output(); cout<<"是否確定刪除?1、是2、否"<<endl; intchoice; cin>>choice; switch(choice) { case1: { for(intj=i;j<top1;j++) M[j]=M[j+1]; cout<<"刪除成功!"<<endl; top1=top1-1; };save();break; case2:return; default:cout<<"沒有此選項(xiàng)!"<<endl; }return; } } cout<<"無此人!"<<endl; };system("pause");del();break; case2: { cout<<"請輸入所要刪除人員姓名:"<<endl; stringname; cin>>name; for(inti=0;i<top1;i++) { if(M[i].name==name) { cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"月薪"<<endl; M[i].output(); cout<<"是否確定刪除?1、是2、否"<<endl; intchoice; cin>>choice; switch(choice) { case1: { for(intj=i;j<top1;j++) M[j]=M[j+1]; cout<<"刪除成功!"<<endl; top1=top1-1; };save();break; case2:return; default:cout<<"沒有此選項(xiàng)!"<<endl; } } }return; cout<<"無此人!"<<endl; };break;case0:break;default:cout<<"輸入錯誤!請輸入0~3數(shù)字"<<endl;system("pause");del();break; } save();}voidmanager::stat(){ system("cls"); read(); intchoice; cout<<"1、人數(shù)統(tǒng)計2、性別統(tǒng)計3、平均工資4、最高工資5、最低工資0、退出"<<endl;cout<<"請輸入所要實(shí)施編號:"<<endl; cin>>choice; switch(choice) { case1:cout<<"經(jīng)理人數(shù)為:"<<top1<<endl;system("pause");stat();break; case2: { inta=0,b=0; stringY="男"; stringX="女"; for(inti=0;i<top1;i++) { if(M[i].sex==Y) a++; if(M[i].sex==X) b++; } cout<<"男性人數(shù):"<<a<<endl;cout<<"女性人數(shù):"<<b<<endl; };system("pause");stat();break; case3: { floatave_salary=0; floatall_salary=0; for(inti=0;i<top1;i++) { all_salary=M[i].salary+all_salary; } ave_salary=all_salary/top1; cout<<"平均工資:"<<ave_salary; };system("pause");stat();break; case4: { floatmax_salary=0; for(inti=0;i<top1-1;i++) { if(M[i].salary>M[i+1].salary) { max_salary=M[i].salary; M[i+1].salary=max_salary; } else max_salary=M[i+1].salary; } cout<<"最高工資:"<<max_salary; };system("pause");stat();break; case5: { floatmin_salary=0; for(inti=0;i<top1-1;i++) { if(M[i].salary<M[i+1].salary) { min_salary=M[i].salary; M[i+1].salary=min_salary; } else min_salary=M[i+1].salary; } cout<<"最低工資:"<<min_salary; };system("pause");stat();break; case0:break; default:cout<<"無此選項(xiàng)!請輸入0~5數(shù)字"<<endl;system("pause");stat();break; } }3.3技術(shù)人員類實(shí)現(xiàn)technician.h#include"employee.h"classtechnician: publicemployee{public: technician(void); ~technician(void); voidadd(); voidsearch(); voidshow(); voidalter();voiddel(); voidstat(); voidsave(); voidread(); voidinput(); voidoutput();protected: floatwork_time; floattime_salary;};technician.cpp#include"StdAfx.h"#include"technician.h"#include<iostream>#include<fstream>#include<string>#include<iomanip>usingnamespacestd;constintMAX=100;technicianT[MAX];intstatictop2=0;technician::technician(void){}technician::~technician(void){}voidtechnician::input(){cout<<"請輸入輸入編號:"<<endl;cin>>number;cout<<"請輸入輸入姓名:"<<endl;cin>>name;cout<<"請輸入輸入性別:"<<endl;cin>>sex;cout<<"請輸入輸入部門:"<<endl;cin>>department;cout<<"請輸入輸入等級:"<<endl;cin>>rank;cout<<"請輸入輸入工時:"<<endl;cin>>work_time;cout<<"請輸入輸入時薪:"<<endl;cin>>time_salary;salary=time_salary*work_time;}voidtechnician::output(){cout<<number<<"\t"<<name<<"\t"<<sex<<"\t"<<department<<"\t"<<rank<<"\t"<<work_time<<"\t"<<time_salary<<"\t"<<salary<<endl;}voidtechnician::read(){ top2=0; system("cls"); ifstreaminflie("技術(shù)人員.txt",ios::in); if(!inflie) { cout<<"打開失??!"<<endl; return; } inti=0; while(inflie>>T[i].number>>T[i].name>>T[i].sex>>T[i].department>>T[i].rank>>T[i].work_time>>T[i].time_salary>>T[i].salary) { i++; top2=i; } inflie.close();}voidtechnician::save(){ ofstreamoutflie("技術(shù)人員.txt",ios::out); if(!outflie) { cout<<"打開失敗!"<<endl; return; } inti; for(i=0;i<top2;i++) { outflie<<T[i].number<<"\t"<<T[i].name<<"\t"<<T[i].sex<<"\t"<<T[i].department<<"\t"<<T[i].rank<<"\t"<<T[i].work_time<<"\t"<<T[i].time_salary<<"\t"<<T[i].salary<<endl; } cout<<"保留成功!"<<endl; outflie.close();}voidtechnician::add(){ system("cls"); read(); if(top2>=MAX) { cout<<"人員已滿"<<endl; return; } cout<<"輸入要添加編號:"<<endl; stringn; cin>>n; for(inti=0;i<top2;i++) if(n==T[i].number) { cout<<"該編號人員已存在"<<endl; return; } techniciant; cout<<"請再次輸入新添加人員信息"<<endl; t.input(); cout<<"是否確定添加?1、是2、否"<<endl; inta; cin>>a; if(a==1) { T[top2]=t; top2=top2+1; save(); } else { cout<<"放棄添加"<<endl; return; }}voidtechnician::search(){ system("cls"); read(); if(top2==0) { cout<<"目前系統(tǒng)沒有儲存統(tǒng)計!"<<endl; return; } intchoice; cout<<"請選擇查找方法:1、按編號查找2、按姓名查找0、退出"<<endl; cin>>choice; switch(choice) { case1: { cout<<"請輸入要查找編號:"<<endl; stringnum; cin>>num; for(inti=0;i<top2;i++) { if(T[i].number==num) { cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"工時"<<"\t"<<"時薪"<<"\t"<<"月薪"<<endl; T[i].output(); return; } } cout<<"查無此人!"<<endl; };break; case2: { cout<<"請輸入要查找姓名"<<endl; stringname; cin>>name; for(inti=0;i<top2;i++) { if(T[i].name==name) { cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"工時"<<"\t"<<"時薪"<<"\t"<<"月薪"<<endl; T[i].output(); return; } } cout<<"查無此人!"<<endl; };break; case0:break;default:cout<<"輸入錯誤!請輸入0~3數(shù)字"<<endl;system("pause");search();break; } } voidtechnician::show(){ system("cls"); read(); if(top2==0) { cout<<"無數(shù)據(jù)!"<<endl; return; } cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"工時"<<"\t"<<"時薪"<<"\t"<<"月薪"<<endl; for(inti=0;i<top2;i++) T[i].output();}voidtechnician::alter(){ system("cls"); read(); if(top2==0) { cout<<"目前系統(tǒng)沒有儲存統(tǒng)計"<<endl; return; } stringnum; cout<<"請輸入要修改技術(shù)人員編號:"<<endl; cin>>num; for(inti=0;i<top2;i++) { if(T[i].number==num) { cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"工時"<<"\t"<<"時薪"<<"\t"<<"月薪"<<endl; T[i].output(); cout<<"請選擇修改范圍:1、全部修改2、修改編號3、修改姓名4、修改性別"<<endl; cout<<"5、修改部門6、修改等級7、修改工時8、修改時薪"<<endl; cout<<"0、退出修改"<<endl; intchoice; cin>>choice; switch(choice) { case1: { cout<<"輸入修改后編號:"<<endl; stringn; cin>>n; for(intj=0;j<top2;j++) if(n==T[j].number) { cout<<"該編號人員已存在"<<endl; return; } cout<<"輸入修改后姓名:"<<endl; stringna; cin>>na; cout<<"輸入修改后性別:"<<endl; strings; cin>>s; cout<<"輸入修改后部門:"<<endl; stringd; cin>>d; cout<<"輸入修改后等級:"<<endl; stringr; cin>>r; cout<<"輸入修改后工時:"<<endl; floatwt; cin>>wt; cout<<"輸入修改后工時:"<<endl; floatts; cin>>ts; cout<<"是否確定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) { T[i].number=n; T[i].name=na; T[i].sex=s; T[i].department=d; T[i].rank=r; T[i].work_time=wt; T[i].time_salary=ts; T[i].salary=wt*ts; } else { cout<<"放棄修改"<<endl; return; }save(); };break;case2: { cout<<"請輸入修改后編號"<<endl; stringn; cin>>n; for(inti=0;i<top2;i++) if(n==T[i].number) { cout<<"該編號人員已存在"<<endl; return; } cout<<"是否確定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) T[i].number=n; else { cout<<"放棄修改"<<endl; return; }save(); };break;case3: { cout<<"請輸入修改后姓名"<<endl; stringna; cin>>na; T[i].name=na; cout<<"是否確定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) T[i].name=na; else { cout<<"放棄修改"<<endl; return; } save(); };break;case4: { cout<<"請輸入修改后性別"<<endl; strings; cin>>s; T[i].sex=s; cout<<"是否確定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) T[i].sex=s; else { cout<<"放棄修改"<<endl; return; } save(); };break; case5: { cout<<"請輸入修改后部門"<<endl; stringd; cin>>d; T[i].department=d; cout<<"是否確定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) T[i].department=d; else { cout<<"放棄修改"<<endl; return; } save(); };break;case6: { cout<<"請輸入修改后等級"<<endl; stringr; cin>>r; T[i].rank=r; cout<<"是否確定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) T[i].rank=r; else { cout<<"放棄修改"<<endl; return; } save(); };break;case7: { cout<<"請輸入修改后工時"<<endl; floatwt; cin>>wt; T[i].work_time=wt; cout<<"是否確定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) { T[i].work_time=wt; T[i].salary=T[i].time_salary*wt; } else { cout<<"放棄修改"<<endl; return; } save(); };break; case8: { cout<<"請輸入修改后時薪"<<endl; floatts; cin>>ts; T[i].time_salary=ts; cout<<"是否確定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) { T[i].time_salary=ts; T[i].salary=T[i].work_time*ts; } else { cout<<"放棄修改"<<endl; return; } save(); };break;case0:cout<<"退出修改"<<endl;return;break;default:cout<<"無此選項(xiàng)!請輸入0~8數(shù)字"<<endl;system("pause");break; } cout<<"修改完成"<<endl; return; } } cout<<"查無此人"<<endl;}voidtechnician::del(){ system("cls"); read(); if(top2==0) { cout<<"目前系統(tǒng)沒有儲存統(tǒng)計"<<endl; return; } intchoice; cout<<"請刪除查找方法:1、按編號刪除2、按姓名刪除0、退出"<<endl; cin>>choice; switch(choice) { case1: { cout<<"請輸入所要刪除人員編號:"<<endl; stringnum; cin>>num; for(inti=0;i<top2;i++) { if(T[i].number==num) { cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"工時"<<"\t"<<"時薪"<<"\t"<<"月薪"<<endl; T[i].output(); cout<<"是否確定刪除?1、是2、否"<<endl; intchoice; cin>>choice; switch(choice) { case1: { for(intj=i;j<top2;j++) T[j]=T[j+1]; cout<<"刪除成功!"<<endl; top2=top2-1; };save();break; case2:return; default:cout<<"沒有此選項(xiàng)!"<<endl; }return; } } cout<<"無此人!"<<endl; };system("pause");del();break; case2: { cout<<"請輸入所要刪除人員姓名:"<<endl; stringname; cin>>name; for(inti=0;i<top2;i++) { if(T[i].name==name) { cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"工時"<<"\t"<<"時薪"<<"\t"<<"月薪"<<endl; T[i].output(); cout<<"是否確定刪除?1、是2、否"<<endl; intchoice; cin>>choice; switch(choice) { case1: { for(intj=i;j<top2;j++) T[j]=T[j+1]; cout<<"刪除成功!"<<endl; top2=top2-1; };save();break; case2:break; default:cout<<"沒有此選項(xiàng)!"<<endl; } } }return; cout<<"無此人!"<<endl; };system("pause");del();break;case0:break;default:cout<<"輸入錯誤!請輸入0~3數(shù)字"<<endl;system("pause");del();break; } save();}voidtechnician::stat(){ system("cls"); read(); intchoice; cout<<"1、人數(shù)統(tǒng)計2、性別統(tǒng)計3、平均工資4、最高工資5、最低工資0、退出"<<endl;cout<<"請輸入所要實(shí)施編號:"<<endl; cin>>choice; switch(choice) { case1:cout<<"技術(shù)人員人數(shù)為:"<<top2<<endl;system("pause");stat();break; case2: { inta=0,b=0; stringY="男"; stringX="女"; for(inti=0;i<top2;i++) { if(T[i].sex==Y) a++; if(T[i].sex==X) b++; } cout<<"男性人數(shù):"<<a<<endl;cout<<"女性人數(shù):"<<b<<endl; };system("pause");stat();break; case3: { floatave_salary=0; floatall_salary=0; for(inti=0;i<top2;i++) { all_salary=T[i].salary+all_salary; } ave_salary=all_salary/top2; cout<<"平均工資:"<<ave_salary; };system("pause");stat();break; case4: { floatmax_salary=0; for(inti=0;i<top2-1;i++) { if(T[i].salary>T[i+1].salary) { max_salary=T[i].salary; T[i+1].salary=max_salary; } else max_salary=T[i+1].salary; } cout<<"最高工資:"<<max_salary; };system("pause");stat();break; case5: { floatmin_salary=0; for(inti=0;i<top2-1;i++) { if(T[i].salary<T[i+1].salary) { min_salary=T[i].salary; T[i+1].salary=min_salary; } else min_salary=T[i+1].salary; } cout<<"最低工資:"<<min_salary; };system("pause");stat();break; case0:break; default:cout<<"無此選項(xiàng)!請輸入0~5數(shù)字"<<endl;system("pause");stat();break; } }3.4銷售人員類實(shí)現(xiàn)salesman.h#include"employee.h"classsalesman: virtualpublicemployee{public: salesman(void); ~salesman(void); voidadd(); voidsearch(); voidshow(); voidalter();voiddel(); voidstat(); voidsave(); voidread(); voidinput(); voidoutput();protected: floatsale; floatrate;};salesman.cpp#include"StdAfx.h"#include"salesman.h"#include<iostream>#include<fstream>#include<string>#include<iomanip>usingnamespacestd;constintMAX=100;salesmanS[MAX];intstatictop3=0;salesman::salesman(void){}salesman::~salesman(void){}voidsalesman::input(){cout<<"輸入編號:"<<endl;cin>>number;cout<<"輸入姓名:"<<endl;cin>>name;cout<<"輸入性別:"<<endl;cin>>sex;cout<<"輸入部門:"<<endl;cin>>department;cout<<"輸入等級:"<<endl;cin>>rank;cout<<"請輸入輸入其當(dāng)月銷售額:"<<endl;cin>>sale;cout<<"請以小數(shù)形式輸入分成率:"<<endl;cin>>rate;salary=sale*rate;}voidsalesman::output(){ cout<<number<<"\t"<<name<<"\t"<<sex<<"\t"<<department<<"\t"<<rank<<"\t"<<sale<<""<<rate<<""<<salary<<endl;}voidsalesman::read(){ top3=0; system("cls"); ifstreaminflie("銷售人員.txt",ios::in); if(!inflie) { cout<<"打開失敗!"<<endl; return; } inti=0; while(inflie>>S[i].number>>S[i].name>>S[i].sex>>S[i].department>>S[i].rank>>S[i].sale>>S[i].rate>>S[i].salary) { i++; top3=i; } inflie.close();}voidsalesman::save(){ ofstreamoutflie("銷售人員.txt",ios::out); if(!outflie) { cout<<"打開失??!"<<endl; return; } inti; for(i=0;i<top3;i++) { outflie<<S[i].number<<"\t"<<S[i].name<<"\t"<<S[i].sex<<"\t"<<S[i].department<<"\t"<<S[i].rank<<"\t"<<S[i].sale<<"\t"<<S[i].rate<<"\t"<<S[i].salary<<endl; } cout<<"保留成功!"<<endl; outflie.close();}voidsalesman::add(){ system("cls"); read(); if(top3>=MAX) { cout<<"人員已滿"<<endl; return; } cout<<"輸入要添加編號:"<<endl; stringn; cin>>n; for(inti=0;i<top3;i++) if(n==S[i].number) { cout<<"該編號人員已存在"<<endl; return; } salesmans; cout<<"請再次輸入新添加人員信息"<<endl; s.input(); cout<<"是否確定添加?1、是2、否"<<endl; inta; cin>>a; if(a==1) { S[top3]=s; top3=top3+1; save(); } else { cout<<"放棄添加"<<endl; return; }}voidsalesman::search(){ system("cls"); read(); if(top3==0) { cout<<"目前系統(tǒng)沒有儲存統(tǒng)計!"<<endl; return; } intchoice; cout<<"請選擇查找方法:1、按編號查找2、按姓名查找0、退出"<<endl; cin>>choice; switch(choice) { case1: { cout<<"請輸入要查找編號:"<<endl; stringnum; cin>>num; for(inti=0;i<top3;i++) { if(S[i].number==num) { cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"月銷售額"<<""<<"分成率"<<""<<"月薪"<<endl; S[i].output(); } } cout<<"查無此人!"<<endl; };break; case2: { cout<<"請輸入要查找姓名"<<endl; stringname; cin>>name; for(inti=0;i<top3;i++) { if(S[i].name==name) { cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"月銷售額"<<""<<"分成率"<<""<<"月薪"<<endl; S[i].output(); return; } } cout<<"查無此人!"<<endl; };break; case0:break;default:cout<<"輸入錯誤!請輸入0~3數(shù)字"<<endl;system("pause");search();break; } } voidsalesman::show(){ system("cls"); read(); if(top3==0) { cout<<"無數(shù)據(jù)!"<<endl; return; } cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"月銷售額"<<""<<"分成率"<<""<<"月薪"<<endl; for(inti=0;i<top3;i++) S[i].output();}voidsalesman::alter(){ system("cls"); read(); if(top3==0) { cout<<"目前系統(tǒng)沒有儲存統(tǒng)計"<<endl; return; } stringnum; cout<<"請輸入要修改經(jīng)理編號:"<<endl; cin>>num; for(inti=0;i<top3;i++) { if(S[i].number==num) { cout<<"編號"<<"\t"<<"姓名"<<"\t"<<"性別"<<"\t"<<"部門"<<"\t"<<"等級"<<"\t"<<"月銷售額"<<""<<"分成率"<<""<<"月薪"<<endl; S[i].output(); cout<<"請選擇修改范圍:1、全部修改2、修改編號3、修改姓名4、修改性別"<<endl; cout<<"5、修改部門6、修改等級7、修改月銷售額8、修改分成率"<<endl; cout<<"0、退出修改"<<endl; intchoice; cin>>choice; switch(choice) { case1: { cout<<"輸入修改后編號:"<<endl; stringn; cin>>n; for(intj=0;j<top3;i++) if(n==S[j].number) { cout<<"該編號人員已存在"<<endl;

溫馨提示

  • 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

提交評論