employee::~employee () {}
void employee::SetName (char* tname) { strcpy(name,tname); }
void employee::SetId (int tid) { id=tid; }
void employee::SetBasicPay (double tbp) { bp=tbp; }
void employee::SetBonus (double tbo) { bo=tbo; }
char* employee::GetName () { return name; }
int employee::GetId () { return id; }
double employee::GetBasicPay () { return bp; }
double employee::GetBonus () { return bo; }
double employee::GetTax () // ½É˰Ϊ»ù±¾¹¤×ʵÄ5% { return bp*0.05; }
double employee::GetAccumPay () // ʵ·¢¹¤×Ê£½»ù±¾¹¤×Ê£«½±½ð£½É˰ { return bp+bo-ta; }
// ************************************************************************ // ¹ÜÀí½çÃæÀඨÒå class EMM {
private:
employee Array[100]; int n; // Ô±¹¤ÈËÊý
void InfEmployee (int count); // ÏÔʾԱ¹¤»ù±¾ÐÅÏ¢ public:
EMM (); // ¹¹Ô캯Êý ~EMM (); // Îö¹¹º¯Êý
void AddEmployee (); // Ôö¼ÓÐÂÔ±¹¤ void DeleteEmployee (); // ɾ³ýÔ±¹¤ void IndexEmployee (); // ²éѯԱ¹¤
void OutputEmployee (); // ´òÓ¡Ô±¹¤ÐÅÏ¢ }; // ------------------------------------------------------------------------- // ¹ÜÀí½çÃæµÄʵÏÖ EMM::EMM () { n=0; } EMM::~EMM ()
{}
void EMM::AddEmployee () // Ôö¼ÓÐÂÔ±¹¤ {
char tname[20]; int tid;
double tbp,tbo;
cin >> tname >> tid >> tbp >> tbo; if(n>=50)
cout << \Ôö¼ÓÔ±¹¤ÐÅϢʧ°Ü!\\n\ else {
Array[n].SetName (tname); Array[n].SetId (tid);
Array[n].SetBasicPay (tbp); Array[n].SetBonus (tbo); } ++n; }
void EMM::DeleteEmployee () // ɾ³ýÔ±¹¤ {
int tid; char ch;
cout << \ÇëÊäÈë´ýɾ³ýÔ±¹¤µÄ¹¤ºÅ: \ cin >> tid;
for (int j = 0; j < n; j++) if (tid == Array[j].GetId()) {
InfEmployee (j);
cout << \ÇëÈ·ÈÏÊÇ·ñɾ³ý¸ÃÔ±¹¤ y/n ? : \ cin >> ch;
if (ch == 'Y' || ch == 'y') {
--n;
cout << \¹¤ºÅ\µÄÔ±¹¤Òѱ»É¾³ý!\ }
goto loop; }
cout << \¸ÃÔ±¹¤\²»´æÔÚ!\ loop:; }
void EMM::IndexEmployee () // ²éѯԱ¹¤ {
int i, j, tid; char tname[20];
cout << \ÇëÑ¡Ôñ²éѯ·½Ê½£º1¡¢¹¤ºÅ 2¡¢ÐÕÃû :\ cin >> i; if (i == 1) {
cout << \ÇëÊäÈë´ý²éÕÒµÄÔ±¹¤µÄ¹¤ºÅ:\ cin >> tid;
for (j = 0; j < n; j++)
if (tid == Array[j].GetId()) {
InfEmployee (j); goto loop; } }
if (i == 2) {
cout << \ÇëÊäÈë´ý²éÕÒµÄÔ±¹¤µÄÐÕÃû:\ cin >> tname;
for( j = 0; j < n; j++)
if (strcmp(tname,Array[j].GetName()) == 0) {
InfEmployee (j); goto loop; } }
cout << \¸ÃÔ±¹¤²»´æÔÚ!\ loop: ; }
void EMM::OutputEmployee () // ´òÓ¡Ô±¹¤ÐÅÏ¢ {
cout << \ËùÓÐÔ±¹¤ÐÅÏ¢ÁÐ±í£º\
cout << \ÐÕÃû\\t¹¤ºÅ\\t»ù±¾¹¤×Ê\\t½±½ð\\t½É˰\\tʵ·¢¹¤×Ê\ for (int i = 0; i < n; i++) {
cout << Array[i].GetName() << '\\t' << Array[i].GetId() << '\\t';
cout << Array[i].GetBasicPay() << \ cout << Array[i].GetTax() << '\\t' << Array[i].GetAccumPay() < void EMM::InfEmployee (int count) { cout << \ÐÕÃû: \ cout << \¹¤ºÅ: \ cout << \»ù±¾¹¤×Ê: \ cout << \½±½ð: \ cout << \½É˰: \ cout << \ʵ·¢¹¤×Ê: \ } // ********************************************************************* // ½çÃæÐÅÏ¢ void Infor () { cout << \»¶ÓʹÓÃÊýѧ¼ÆËã»úѧԺ½Ìʦ¹¤×ʹÜÀíϵͳ===\ cout << \£ºÔö¼ÓÐÂÔ±¹¤\ cout << \£ºÉ¾³ýÔ±¹¤\ cout << \£º²éѯԱ¹¤\ cout << \£º´òÓ¡Ô±¹¤ÐÅÏ¢ \ cout << \£ºÍ˳öϵͳ\ cout << \ÇëÑ¡ÔñÄúµÄ¹¦ÄܲÙ×÷£º\ } // --------------------------------------------------------------------- int main() { EMM a; int i=0, c=1; while (1) { Infor(); cin >> i; system(\ cout << endl; switch(i) { case 0: int count; cout << \ÇëÊäÈëÒªÌí¼ÓÐÂÔ±¹¤µÄÈËÊýn: \ cin >> count; cout << \ÐòºÅ ÐÕÃû ¹¤ºÅ »ù±¾¹¤×Ê ½±½ð\ while (count--) { cout << \ a.AddEmployee(); ++c; } cout << \³É¹¦Ôö¼ÓÔ±¹¤ÐÅÏ¢!\\n\ break; case 1: a.DeleteEmployee(); break; case 2: a.IndexEmployee(); break; case 3: a.OutputEmployee(); break; case 4: exit(1); break; default: cout << \Ñ¡Ôñ´íÎó!\ break; } system(\ system(\ } return 0; }
Ïà¹ØÍÆ¼ö£º