用C++语言编写基于VC++6.0编译环境下的DOS程序--公司员工信息管理系统(English)

这是一个使用C++语言在VC++6.0环境下编写的DOS程序,实现了对公司员工信息的高效管理。系统包括Employee和DBOperate两个类,用于员工信息的存储、读取和操作。员工信息包括编号、姓名、部门、级别、工资和工龄等字段,支持添加、查看、修改和删除员工信息功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


公司员工信息管理系统

 

目   录


一 系统的背景 2
二 系统的编译环境和语言 2
三 系统类的设计 3
3.1 类的对象: 3
3.2 类的属性列表: 3
3.3 类的行为: 3
3.4 具体代码如下: 3
四 系统运行入口的设计 11
五 运行步骤 13
六 数据文件 16
七 参考文献 16
 


一 系统的背景
从事商业活动的公司迫切需要这样一个系统:它能高效的管理公司内部所有员工的个人信息,并能正确快速的对系统的使用者的操作做出回应,以提高效率,降低成本。
该系统能够满足以上的要求,使用户可以快速准确的管理公司员工的信息。
二 系统的编译环境和语言
该系统是采用C++语言在Turbo c下编译而成,。
因为在该系统中有明显的对象,即是公司的员工,且C++语言是一个非常强大的面向对象的语言,因此该系统使用C++编写将会简单,快速而有效。
Turbo C是一个经典且功能强大的编译器,是编译用C++语言写成的程序的首要工具。
三 系统类的设计
3.1 类的对象:
系统有两个类:
Employee :对象是公司里的每一个员工,是系统中最重要的类。
DBOperate :对象是系统的数据文件,完成对员工信息的保存和读取。
3.2 类的属性列表:
Employee :
员工的编号:EmployeeNum (long)
员工的姓名:EmployName (string)
员工所属部门:EmployeeDepart (string)
员工级别:EmployeeGrade (string)
员工工资:EmployeePay (float)
员工工龄:EmpoyeeWorkTime (long)
3.3 类的行为:
Employee :
添加新员工信息:NewInfo();
员工信息浏览:ShowInfo();
员工信息变更:RefreshInfo();
发放工资:    Pay(int EG);//EG为员工级别
解聘员工:  DeleteInfo();
DBOperate :
保存员工信息:WriteIn(int iflag);
读取员工信息:ReadOut();
更新员工总人数:RefreshMaxNum(int iflag);
注释:当iflag 为1时,人数增大;为零时,人数不变,即是修改;为 -1时,人数减少。
3.4 具体代码如下:
long Employee::EmployeeMaxNum = 1000;
float Employee::EmployeeBasePay = 1500;

 int Employee::MaxNum()
 {
  int MN = 0;
  ifstream myf("c://EmployeeMaxNum.txt");

  myf>>MN;
  myf.close();
  return MN;
 }

 void Employee::NewInfo()
 {
  char tmpName[50];
  cout<<"new Employee Name >"; //输入员工名字
  cin>>tmpName;
  Employee::EmployeeName = new char[strlen(tmpName)+1];
  strcpy(Employee::EmployeeName,tmpName);
  //////////////////////////////////////////
  Employee::EmployeeNum = EmployeeMaxNum + Employee::MaxNum()+1; //自动分配员工编号,为基础标号+员工人数
  //////////////////////////////////////////
  char tmpDepart[50];
  cout<<"new Employee Department >"; //输入员工部门名称
  cin>>tmpDepart;
  Employee::EmployeeDepart = new char[strlen(tmpDepart)+1];
  strcpy(Employee::EmployeeDepart,tmpDepart);
  //////////////////////////////////////////
  cout<<"new Employee Grade (1:zhiyuan 2:zhuren 3:jingli 4:dongshizhang) >"; //输入员工等级,1为职员,2为主任,3为经理,4为董事长
  cin>>Employee::EmployeeGrade;
  while(Employee::EmployeeGrade !=1&&
      Employee::EmployeeGrade !=2&&
   Employee::EmployeeGrade !=3&&
   Employee::EmployeeGrade !=4)
  {
   cout<<"Your Input Error! Input Again be careful:)"<<endl;
   cout<<"new Employee Grade (1:zhiyuan 2:zhuren 3:jingli 4:dongshizhang) >";
   cin>>Employee::EmployeeGrade;
  }
  //////////////////////////////////////////
  cout<<"new EmployeeWorkTime >"; //输入员工合同期
  cin>>Employee::EmployeeWorkTime;
  //////////////////////////////////////////
  Employee::EmployeePay = Employee::Pay(Employee::EmployeeGrade);

  DBOperate dbo;
  dbo.ReadOut(); //将原来的数据文件中的数据读出,并加入新的数据
  int MaxNum = Employee::MaxNum();
  EN[MaxNum] = Employee::EmployeeName;
  ENum[MaxNum] = Employee::EmployeeNum;
  ED[MaxNum] = Employee::EmployeeDepart;
  EG[MaxNum] = Employee::EmployeeGrade;
  EWT[MaxNum] = Employee::EmployeeWorkTime;
  EP[MaxNum] = Employee::EmployeePay;
  dbo.WriteIn(1); //将新的信息全部写入数据文件
  return;
 }

 void Employee::ShowInfo()
 {
  for(int i=0;i<Employee::MaxNum();i++)
  {//顺序输出所有员工的信息,Employee::MaxNum()为员工人数
   cout<<"The Employee's Information:"<<endl;
   cout<<"**********************************"<<endl;
   cout<<"* EmployeeName >"<<EN[i]<<endl;
   cout<<"* EmployeeNum >"<<ENum[i]<<endl;
   cout<<"* EmployeeDepart >"<<ED[i]<<endl;
   cout<<"* EmployeeGrade >"<<EG[i]<<endl;
   cout<<"* EmployeeWorkTime >"<<EWT[i]<<endl;
   cout<<"* EmployeePay >"<<EP[i]<<endl;
   cout<<"**********************************"<<endl;
  }
 }


 void Employee::RefreshInfo()
 {
  int cNum = 1000; //基础编号
  DBOperate dbo;
  dbo.ReadOut();
  Employee::ShowInfo(); //先将所有员工信息输出
  cout<<"Please input the Employee's Num >";
  cin>>cNum;
  int MN;
  MN = Employee::MaxNum();

  for(int i=0;i<MN;i++)
  {
   if(ENum[i] == cNum) //通过编号找到指定要更新的员工
   { //依次更新员工信息
    cout<<"***********************************"<<endl;
    cout<<"Your choice's the Employee"<<endl;
    cout<<"**********************************"<<endl;
    cout<<"* EmployeeName >"<<EN[i]<<endl;
    cout<<"* EmployeeNum >"<<ENum[i]<<endl;
    cout<<"* EmployeeDepart >"<<ED[i]<<endl;
    cout<<"* EmployeeGrade >"<<EG[i]<<endl;
    cout<<"* Emplo

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值