亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gzgl.cpp

?? 工資管理系統代碼。利用面向對象的方法以及C++的編程思想來完成系統的設計。
?? CPP
字號:
#include <fstream.h>
#include <string.h>

class Person  //人員類(抽象類)
{
protected:
  int No;         //編號
  char Name[20];  //姓名
  int Duty;                     //人員類別標志(0-教師,1-實驗員,2-行政人員,3-教師兼實驗員,4-行政兼教師)
  double Salary;     //基本工資
  Person *next;            //指針域

public:
  Person()  //基類構造
  {
    next=0;  //指針域設置為空
  }
  virtual ~Person()  //基類虛析構
  {
  }
  virtual void Input()=0;                //從鍵盤輸入數據
  virtual void Input(ifstream& ifs)=0;   //從文件輸入數據
  virtual void Output()=0;               //向屏幕輸出數據
  virtual void Output(ofstream& ofs)=0;  //向文件輸出數據
  virtual double Incoming()=0;           //計算收入

  friend class College;
};

class Teacher:virtual public Person  //教師類
{
protected:
  int Hours;  //教師課時

public:  
  //為對象設置數據分為兩種途徑,通過1)構造函數,2)一般成員函數
  //分開可以使得程序中應用更加靈活
  //本程序采用:缺省構造+Input()
  Teacher()  //構造函數,初始化部分數據
  {
         Duty=0;  
    Salary=800;
  }

  void Input()  //鍵盤補充輸入其它數據
  {
    cout<<"編號:";  cin>>No;
    cout<<"姓名:";  cin>>Name;
    cout<<"教師上學期課時:";  cin>>Hours;
  } 

  void Input(ifstream& ifs)
  {
    ifs>>No>>Name>>Duty>>Hours;
  } 

  void Output()
  {
    cout<<No<<"\t"<<Name<<"\t"<<Duty<<"\t"<<Hours<<"\t"<<Incoming()<<endl;
  }

  void Output(ofstream& ofs)
  {
    ofs<<No<<"\t"<<Name<<"\t"<<Duty<<"\t"<<Hours<<"\t"<<endl;
  }

  double Incoming()
  {
    return Salary+(Hours-120)*20;
  }
};

class Assistant:virtual public Person  //實驗員
{
protected:
  int Allowance;
  int Hours;

public:
  Assistant()
  {
         Duty=1;    
    Salary=650;
    Allowance=150;
  }
  
  void Input()
  {
    cout<<"編號:";  cin>>No;
    cout<<"姓名:";  cin>>Name;
    cout<<"實驗員上學期實驗課時:";  cin>>Hours;
  }

  void Input(ifstream& ifs)  
  {
    ifs>>No>>Name>>Duty>>Hours;
  } 

  void Output()
  {
    cout<<No<<"\t"<<Name<<"\t"<<Duty<<"\t"<<Hours<<"\t"<<Incoming()<<endl;
  }

  void Output(ofstream& ofs)
  {
    ofs<<No<<"\t"<<Name<<"\t"<<Duty<<"\t"<<Hours<<"\t"<<endl;
  }

  double Incoming()
  {
    return Salary+Allowance+(Hours-70)*20;
  }
};

class Manager:virtual public Person  //行政人員
{
protected:
  int Allowance;

public:
  Manager()
  {
        Duty=2;
    Salary=750;
    Allowance=250;
  }

  void Input()
  {
    cout<<"編號:";  cin>>No;
    cout<<"姓名:";  cin>>Name;
  }

  void Input(ifstream& ifs)  
  {
    ifs>>No>>Name>>Duty;
  } 

  void Output()
  {
    cout<<No<<"\t"<<Name<<"\t"<<Duty<<"\t"<<Incoming()<<endl;
  }

  void Output(ofstream& ofs)
  {
    ofs<<No<<"\t"<<Name<<"\t"<<Duty<<"\t"<<endl;
  }

  double Incoming()
  {
    return Salary+Allowance;
  }
};

class Teacher_Assistant:public Teacher,public Assistant //教師兼實驗員
{
public:
  Teacher_Assistant()
  {
         Duty=3;
    Teacher::Salary=800;
  }
  void Input()
  {
    cout<<"編號:";  cin>>No;
    cout<<"姓名:";  cin>>Name;

cout<<"教師上學期課時:";  cin>>Teacher::Hours;
    cout<<"教師兼職實驗員上學期實驗課時:";  cin>>Assistant::Hours;
  }

  void Input(ifstream& ifs)  
  {
    ifs>>No>>Name>>Duty>>Teacher::Hours>>Assistant::Hours;
  } 

  void Output()
  {
    cout<<No<<"\t"<<Name<<"\t"<<Duty<<"\t"<<Teacher::Hours<<"\t"
      <<Assistant::Hours<<"\t"<<Incoming()<<endl;
  }

  void Output(ofstream& ofs)
  {
    ofs<<No<<"\t"<<Name<<"\t"<<Duty<<"\t"<<Teacher::Hours<<"\t"
      <<Assistant::Hours<<"\t"<<endl;
  }

  double Incoming()
  {
    return Salary+(Teacher::Hours-120)*20
      +Allowance+(Assistant::Hours-70)*20;
  }
};

class Manager_Teacher:public Manager,public Teacher //行政人員兼教師
{
public:
  Manager_Teacher()
  {
         Duty=4;
    Manager::Salary=750;
  }

  void Input()
  {
    cout<<"編號:";  cin>>No;
    cout<<"姓名:";  cin>>Name;
    cout<<"行政人員兼職教師上學期課時:";  cin>>Hours;
  }

  void Input(ifstream& ifs)  
  {
    ifs>>No>>Name>>Duty>>Hours;
  } 

  void Output()
  {
    cout<<No<<"\t"<<Name<<"\t"<<Duty<<"\t"<<Hours<<"\t"<<Incoming()<<endl;
  }

  void Output(ofstream& ofs)
  {
    ofs<<No<<"\t"<<Name<<"\t"<<Duty<<"\t"<<Hours<<"\t"<<endl;
  }

  double Incoming()
  {
    return Salary+Allowance+Hours*20;
  }
};

class College
{
private:
  Person *PL;
  void Clear();
  int College::Find(int ID,Person **p1,Person **p2);
public:
  College();      //構造
  ~College();     //析構
  void Add();     //增加職工
  void Delete();  //刪除職工
  void Modify();  //修改職工
  void Print();   //輸出職工信息
  void Save();    //職工信息存盤
  void Load();    //職工信息裝入
};

College::College()  //構造函數(創建1個頭結點的鏈表)
{
  Person *p=new Teacher;
  PL=p;

  cout<<"自動裝入數據...\n";
  Load();
}

College::~College() //析構函數(僅保留1個頭結點)
{
  Person *p=PL;
  while(p)  //逐個刪除結點,包括頭結點
  {
    PL=p->next;
    delete p;
    p=PL;
  }
  PL=0;
}

void College::Add()  //增加職工
{
  cout<<"\n** 增加職工 **\n";

  //查找尾結點
  Person *p=PL;
  while(p->next)p=p->next;

  int ch;
  cout<<"輸入職工分類碼[0-教師,1-實驗員,2-行政人員,3-教師兼實驗員,4-行政兼教師]:";  cin>>ch;
  //創建新結點,錄入數據,連接到鏈表
  Teacher *pt;
  Assistant *pa;
  Manager *pm;
  Teacher_Assistant *pta;
  Manager_Teacher *pmt;
  switch(ch)
  {
    case 0:  pt=new Teacher;   pt->Input();
      p->next=pt;  
      break;
    case 1:  pa=new Assistant; pa->Input();
      p->next=pa;  
      break;
    case 2:  pm=new Manager;   pm->Input();
      p->next=pm;  
      break;
    case 3:  pta=new Teacher_Assistant;  pta->Input();
    p->next=pta; 
      break;
    case 4:  pmt=new Manager_Teacher;  pmt->Input();
      p->next=pmt;
      break;
    default:  return;
  }
}

void College::Clear() //清除所有的職工結點(僅保留頭結點)
{
  Person *p=PL->next;
  while(p)
  {
    PL->next=p->next;
    delete p;
    p=PL->next;
  }
}

//查找職工結點(返回1-找到,0-未找到.結點指針由p1返回,p2為前看指針)
int College::Find(int ID,Person **p1,Person **p2)   
{
  *p1=PL->next;
  *p2=PL;
  while(*p1)
  {
    if((*p1)->No==ID)
      break;  //找到
    else 
    {
      *p2=*p1;  //繼續查找
      *p1=(*p1)->next;
    }
  }
  return *p1?1:0;
}

void College:elete()   //刪除職工
{
  cout<<"\n** 刪除職工 **\n";

  int No;
  Person *p1,*p2;
  
  cout<<"編號:";  cin>>No;
  if(!Find(No,&p1,&p2))
  {
    cout<<"指定的人員沒有找到!\n";
  }
  else
  {
    p2->next=p1->next;  //連接
    delete p1;
    cout<<"正確刪除!\n";
  }
}

void College::Modify()   //修改職工
{
  cout<<"\n** 修改職工 **\n";

  int No;
  Person *p1,*p2;
  
  cout<<"編號:";  cin>>No;
  if(!Find(No,&p1,&p2))
  {
    cout<<"指定的人員沒有找到!\n";
  }
  else
  {
    p1->Output();  //輸出原來的職工信息(做提示)
    p1->Input();  //輸入新的職工信息(更新)
    cout<<"修改完成!\n";
  }
}

void College:rint()    //輸出職工信息
{
  cout<<"\n** 職工信息表 **\n";
  cout<<"編號 姓名 崗位 其它 收入情況\n";

  Person *p=PL->next;
  if(!p)
  {
    cout<<"無職工記錄!\n";
    return;
  }

  while(p)  //遍歷鏈表,輸出職工信息
  {
    p->Output();
    p=p->next;
  }
}

void College::Save()     //職工信息存盤
{
  ofstream f("erson.dat",ios:ut);  //打開文件

  //遍歷輸出至文件
  Person *p=PL->next;
  while(p)  
  {
    p->Output(f);
    p=p->next;
  }

  f.close();  //關閉文件

  cout<<"職工信息已經保存在Person.dat.\n";
}
void Collegead()     //職工信息裝入
{
  char buf[81];  //臨時空間
  int Duty;    //人員類型
  Person *p2;  //新建結點的指針
  long t;  //讀寫位置

  //清除現有結點(保留頭結點)
  Clear();  

  //打開文件
  ifstream f("erson.dat",ios::in);
    
  //建立結點,讀數據
  Person *p=PL; //尾結點指針
  while(1)
  {
    //讀取人員類型
    t=f.tellg();
    f>>buf>>buf>>Duty;

    if(f)
    {
      //根據人員類型創建新結點
      switch(Duty)
      {
        case 0:  p2=new Teacher; break;
        case 1:  p2=new Assistant; break;
        case 2:  p2=new Manager; break;
        case 3:  p2=new Teacher_Assistant; break;
        case 4:  p2=new Manager_Teacher; break;
        default:  f.close();  return;
      }
      p->next=p2;
      p=p->next;
      f.seekg(t);
      p->Input(f);     
    }
    else
      break;   
  }

  //關閉文件
  f.close();
}


void main()
{
  char ch;
  College c;  //定義大學對象

  //顯示主菜單,接受選擇,并分支調用大學類的相應功能的成員函數
  do
  {
    cout<<"\n☆☆ 高校工資管理系統 ☆☆\n";
    cout<<"1-增加職工\n";
    cout<<"2-刪除職工\n";
    cout<<"3-修改職工\n";
    cout<<"4-輸出職工信息(工資)\n";
    cout<<"5-數據存盤\n";
    cout<<"6-數據裝入\n";
    cout<<"7-退出\t請選擇(1-7):";

    cin>>ch;
    switch(ch)
    {
      case '1':  c.Add();   break;
      case '2':  c.Delete();break;
      case '3':  c.Modify();break;
      case '4':  c.Print(); break;
      case '5':  c.Save();  break;
      case '6':  c.Load();  break;
    }
  }while(ch!='7');
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本色道久久综合亚洲91 | 亚洲成av人在线观看| 奇米亚洲午夜久久精品| 91女神在线视频| 日韩免费一区二区三区在线播放| 国产精品毛片a∨一区二区三区 | 欧美在线观看你懂的| 欧美精品一区二区三区蜜臀| 一区二区三区在线观看欧美| 国模套图日韩精品一区二区| 欧美午夜精品久久久久久孕妇| 国产人久久人人人人爽| 免费成人在线观看| 欧美色精品天天在线观看视频| 国产精品欧美经典| 蓝色福利精品导航| 欧美一区在线视频| 亚洲图片有声小说| 欧洲一区在线电影| 中文字幕一区二区三区在线观看| 国产乱理伦片在线观看夜一区| 7777精品久久久大香线蕉| 一区二区三区在线视频免费| 99热这里都是精品| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美亚洲综合一区| 国产精品高清亚洲| 国产成人精品在线看| 久久色在线观看| 精品一区二区三区在线播放| 欧美一区二区观看视频| 天天亚洲美女在线视频| 色婷婷综合久久久久中文 | 中文字幕+乱码+中文字幕一区| 欧美96一区二区免费视频| 欧美日韩国产首页在线观看| 亚洲人吸女人奶水| 99综合影院在线| 亚洲免费色视频| 色香色香欲天天天影视综合网| 国产精品欧美久久久久一区二区| 国产成人超碰人人澡人人澡| 亚洲国产精品黑人久久久| 成人深夜视频在线观看| 国产精品国产a级| 99精品欧美一区二区蜜桃免费| 亚洲欧美怡红院| 91福利国产精品| 日韩影院在线观看| 欧美成人猛片aaaaaaa| 久久99精品视频| 精品国产成人系列| 狠狠v欧美v日韩v亚洲ⅴ| 精品福利一二区| eeuss鲁片一区二区三区在线看| 自拍偷拍欧美激情| 欧美日韩精品一区二区天天拍小说| 亚洲成人自拍一区| 精品久久久久久久久久久久久久久久久 | 亚洲成人精品一区二区| 91麻豆精品国产自产在线| 久久av老司机精品网站导航| 国产欧美视频在线观看| 色先锋aa成人| 狠狠色综合色综合网络| 亚洲视频你懂的| 欧美一区二区人人喊爽| 懂色av中文字幕一区二区三区 | 91蝌蚪porny| 日本特黄久久久高潮| 久久精品亚洲国产奇米99| 色婷婷av一区| 国产又粗又猛又爽又黄91精品| 国产精品三级电影| 91麻豆精品久久久久蜜臀| 成人午夜精品在线| 午夜久久久久久久久| 亚洲国产精品精华液2区45| 欧美另类videos死尸| 国产91富婆露脸刺激对白| 午夜在线成人av| 国产精品萝li| 久久综合九色综合久久久精品综合 | 91精品一区二区三区久久久久久| 国模少妇一区二区三区| 亚洲一二三四区不卡| 久久久美女毛片| 欧美情侣在线播放| 91女厕偷拍女厕偷拍高清| 国精产品一区一区三区mba视频| 亚洲国产成人av网| 国产精品久线观看视频| 精品久久久久久久久久久久久久久 | 日韩一区二区三区免费看| 国产福利精品导航| 亚洲一区二区av电影| 久久九九久久九九| 欧美性生活一区| 国产精品亚洲午夜一区二区三区| 一区二区高清在线| 久久久精品免费网站| 欧美精品一卡两卡| 国产乱码精品一区二区三区av| 日韩精品福利网| 亚洲精选视频在线| 久久免费看少妇高潮| 欧美一级日韩一级| 日本福利一区二区| 成人精品国产免费网站| 麻豆精品国产传媒mv男同| 天堂久久一区二区三区| 亚洲精品第一国产综合野| 久久―日本道色综合久久| 欧美日韩一区精品| 一本色道久久综合亚洲91 | 成人欧美一区二区三区在线播放| 久久影院午夜论| 日韩欧美美女一区二区三区| 色八戒一区二区三区| 99re66热这里只有精品3直播| 激情综合色丁香一区二区| 亚洲影院久久精品| 亚洲视频一二区| 精品久久久影院| 91精品在线免费观看| 欧美专区亚洲专区| 欧美三级一区二区| 色999日韩国产欧美一区二区| 成人免费av资源| 国产精品综合一区二区三区| 久久99精品国产91久久来源| 三级亚洲高清视频| 一区二区三区免费网站| 亚洲一区在线免费观看| 亚洲黄色av一区| 亚洲免费观看高清完整版在线观看 | 欧美图区在线视频| 欧美日韩美少妇| 91成人免费网站| 一本一道久久a久久精品| 欧美影院一区二区| 欧美久久一二区| 欧美一区二区三区的| 欧美一级黄色片| 日韩精品中文字幕在线一区| 久久嫩草精品久久久精品| 国产人成亚洲第一网站在线播放| 国产精品人成在线观看免费| 国产人成亚洲第一网站在线播放| 中文字幕av一区二区三区| 中文字幕欧美日本乱码一线二线| 亚洲欧洲国产专区| 亚洲与欧洲av电影| 美女网站色91| 成人午夜电影久久影院| 91老师片黄在线观看| 欧美v亚洲v综合ⅴ国产v| 国产亚洲成aⅴ人片在线观看 | 成人久久久精品乱码一区二区三区 | 亚洲视频在线一区| 亚洲精品综合在线| 日本vs亚洲vs韩国一区三区二区| 麻豆精品蜜桃视频网站| 99久久亚洲一区二区三区青草| 色激情天天射综合网| 欧美老肥妇做.爰bbww视频| 中文字幕中文乱码欧美一区二区| 一区二区三区丝袜| 国产精品亚洲第一| 色视频一区二区| 91精品国产91综合久久蜜臀| 欧美国产禁国产网站cc| 亚洲小少妇裸体bbw| 国产在线精品一区二区| 91国偷自产一区二区三区成为亚洲经典| 欧美日韩一区二区三区视频| 久久久久久久性| 日韩电影免费在线观看网站| av在线播放成人| 91精品福利在线一区二区三区| 亚洲精品国产无套在线观| 国产一区在线观看麻豆| 欧美婷婷六月丁香综合色| 欧美激情综合五月色丁香 | 中文字幕在线一区| 奇米777欧美一区二区| 91丝袜美腿高跟国产极品老师| 91精品国产品国语在线不卡| 国产精品毛片a∨一区二区三区| 琪琪一区二区三区| 欧美色图免费看| 日本一区二区三区在线不卡| 国产一区二区免费看| 欧美精品第1页| 亚洲综合在线五月| 成人午夜又粗又硬又大| 国产精品对白交换视频| 国内成人免费视频| 欧美成人a∨高清免费观看| 一区二区三区中文字幕|