课程设计-工资管理系统

工资管理系统

 

摘  要

 

职工工资管理系统是由职工信息管理模块和工资信息管理模块组成。职工工资管理系统可以实现对职工基本工资进行管理、实际发放工资管理、职工信息记录的查询等多项管理。在模块中分别实现对职工基本信息管理。如:添加职工、修改职工信息、删除职工信息、查询职工信息等功能程序设计。该工资管理系统采用Visual C++面向对象程序设计。事先,我们对程序进行了粗略的分析,确定了C++中类、构造函数、成员函数等函数,接着通过对各种函数的使用,编出了这个职工工资管理系统,最后在McrosoftVisual C++软件中不断调试运行,并发现错误,解决错误。并且经过适当完善,初步实现了设计目标。

 

 

 

关键词:;面向对象;类;工资管理

 

 

 

 

《C++程序设计》课程设计

 

------职工工资管理

 

一、引 言

 

随着信息时代的到来,计算机应用十分广泛。职工工资管理是企业单位必不可少的管理程序,也是企业体制的重要组成部分。当前许多企业之中,真正使用计算机管理职工工资机制对企业来说非常的重要。

 

C++语言具有面向对象特性,是一种使用非常广泛的计算机编程语言,一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。面向对象编程中时程序设计的基本单位。但对象的静态数据往往是用某种类型的数据来表示,对象的动态属性要用成员函数来实现。面向函数的实现归根到底是算法的设计。

 

职工工资管理系统是以C++面向对象为基础编译出来的,其中用到了:类的使用、数组、循环体、函数的调用、封装等内容。

 

 

二、设计目的与任务

 

1、课程设计目的

 

<1>通过职工工资管理系统的编写,掌握C++面向对象设计,培养实事求是、认真、严谨的科学态度和刻苦钻研不断创新的精神,逐步建立正确的全局观。

 

<2>了解软件工程编程的思想,对以后的学习增加更多学习兴趣。

 

<3>提高各行业的工作效率,不断完善服务的质量。

 

2、课程设计任务

 

使用C++面向对象程序设计设计一个简易的工资管理系统。定义职工(employee)类,其中包括工号、姓名、性别、电话、家庭住址、所在科室和工资。(1)设计菜单实现功能选择;(2)添加功能:输入人员信息,并保存到文件中;(3)删除功能:输入人员编号实现删除,并保存到文件中

 

 (4)修改功能:输入人员编号及其他相关信息,实现修改并保存到文件中

 

 (5)查询功能①能够根据姓名精确查询人员信息;②能够根据所在科室精确查询该科室所有人员信息;(6)统计功能:根据性别分别统计男女员工的平均工资并输出结果

 

三、设计方案

 

1、总体设计

 

程序要求实现对工资进行统计并且显示职工所有信息,能够实行添加职工信息、查询职工信息、修改职工信息、查询职工信息等功能。

 

我们定义了一个Employee类(class Empolyee),我们定义了下述成员函数:

 

(1)void Addemployee();该函数添加职工信息。

 

(2)void Delectemployee();该函数删除职工信息。

 

(3)void Updaemployee();该函数修改职工信息。

 

(4)void reseacherstudentbyname();该函数用于按名字查询职工信息。

 

(5)void reseacherstudentbyoffice();该函数用于按科室查询职工信息。

 

(6)void add();该函数统计男女职工的平均工资。

 

(7)void SaveFile();该函数用于对文件的书写。

 

菜单输出放在主函数中。在函数中创建了高级数组vector,并用vector数组装创建的对象。

2、详细设计

 

(1)类的设计

 

class employee

 

{

 

public:

 

 int id ,salary;

 

 string name,tele,address,office,sex;

 

employee(int id ,stringname,string sex,string tele,string address,string office,int salary)

 

{

 

 this->id=id;

 

 this->salary=salary;

 

 this->sex=sex;

 

 this->name=name;

 

 this->tele=tele;

 

 this->address=address;

 

 this->office=office;

 

}

 

};

 

  (2)主函数的设计

 

int main()

 

{

 

 while(true)

 

 {

 

 cout<<"========================职工工资管理系统========================="<<'\n'

 

  <<"1.添加职工"<<'\n'

 

  <<"2.删除职工"<<'\n'

 

  <<"3.修改职工"<<'\n'

  <<"4.按姓名查询职工"<<'\n'

 

  <<"5.按科室查询职工"<<'\n'

 

  <<"6.按性别统计职工平均工资职工"<<'\n'

 

  <<"0.推出职工工资管理系统"<<'\n'

 

  <<"========================职工工资管理系统========================="<<'\n';

 

 cout<<"请输入你的选择:"<

 

 int input;

 

 cin>>input;

 

 switch(input)

 

 {

 

 case 1:Addemployee(); break;

 

 case 2: Delectemployee();break;

 

 case 3: Updaemployee();break;

 

 case 4:reseacherstudentbyname() ;break;

 

 case 5:reseacherstudentbyoffice(); break;

 

 case 6: add();break;

 

 case 0:exit(1);break;

 

 }

 

 }

 

 return 0;

 

}

(3)成员函数的设计

 

<1>文件书写函数:

 

voidSaveFile()

 

{

 

   fstream file;

 

 file.open("d:\\stuData.txt",ios::out);

 

 vector::iteratoritr=stu.begin();

 

 while(itr!=stu.end())

 

 {

 

 file<<(*itr).id<<"\n";

 

 file<<(*itr).name<<"\n";

 

 file<<(*itr).sex<<"\n";

 

 file<<(*itr).tele<<"\n";

 

 file<<(*itr).address<<"\n";

 

 file<<(*itr).office<<"\n";

 

 file<<(*itr).salary<<"\n";

 

 itr++;

 

 }

 

 file.close();

 

}

<2>添加职工信息函数:

 

  voidAddemployee()

 

 {

 

      intid,salary;

 

 string name,tele,address,office,sex;

 

 cout<<"请输入职工编号\n";

 

 cin>>id;

 

 cout<<"请输入职工名字\n";

 

 cin>>name;

 

 cout<<"请输入职工性别\n";

 

 cin>>sex;

 

 cout<<"请输入职工电话号码\n";

 

 cin>>tele;

 

 cout<<"请输入职工地址\n";

 

 cin>>address;

 

 cout<<"请输入职工科室\n";

 

 cin>>office; cout<<"请输入职工薪水\n";

 

 cin>>salary;

 

 employeeT(id,name,sex,tele,address,office,salary );

 

 stu.push_back(T);

 

 cout<<"你已成功添加职工,现有"<

 

 SaveFile();

 

 }

<3>删除职工信息函数:

 

voidDelectemployee()

 

 {

 

 cout<<"请输入要删除的职工号";

 

 int id;

 

 cin>>id;

 

 vector::iteratorp=stu.begin();

 

 while(p!=stu.end())

 

 {

 

  if((*p).id==id)

 

  {

 

   stu.erase (p);

 

   break;

 

  }

 

  p++;

 

 }

 

cout<<"你已成功删除职工"<

 

SaveFile();

 

 }

<4>修改职工信息函数:

 

voidUpdaemployee()

 

 {

 

 int id ,salary;

 

 string name,tele,address,office,sex;

 

 cout<<"输入你要修改的职工号\n";

 

 cin>>id;

 

 vector::iterator  p=stu.begin ();

 

 while(p!=stu.end())

 

 {

 

  if((*p).id=id)

 

  {

 

  

 

  cout<<"请输入修改职工的姓名\n";

 

   cin>>name;

 

  cout<<"请输入修改职工的性别\n";

 

  cin>>sex;

 

  cout<<"请输入修改职工的电话号码\n";

 

   cin>>tele;

 

  cout<<"请输入修改职工的地址\n";

 

   cin>>address;

 

  cout<<"请输入修改职工的科室\n";

 

   cin>>office;

 

   cout<<"请输入修改职工的薪水\n";

 

  cin>>salary;

 

  (*p).id=id;

 

  (*p).name=name;

 

  (*p).sex=sex;

 

  (*p).tele=tele;

 

  (*p).address=address;

 

  (*p).office=office;

 

   (*p).salary=salary;

 

  break;

 

  }

 

  p++;

 

 }

 

 SaveFile();

 

 }

<5>按名字查询职工信息函数:

 

voidreseacherstudentbyname()

 

 {

 

 cout<<"请输入你要查询的人的名字\n";

 

 string name;

 

 cin>>name;

 

 vector::iterator p=stu.begin ();

 

 while(p!=stu.end())

 

 {

 

  if((*p).name==name)

 

  {

 

   cout<<"职工的编号:\n"<<(*p).id<

 

   cout<<"职工的姓名:\n"<<(*p).name<

 

   cout<<"职工的性别:\n"<<(*p).sex<

 

   cout<<"职工的电话号码:\n"<<(*p).tele<

 

   cout<<"职工的地址:\n"<<(*p).address<

 

   cout<<"职工的科室:\n"<<(*p).office<

 

   cout<<"职工的薪水:\n"<<(*p).salary<

 

   break;

 

  }

 

  p++;

 

 }

 

 }

<6>按科室查询职工信息:

 

voidreseacherstudentbyoffice()

 

 {

 

 cout<<"请输入你要查询的人的科室\n";

 

 string office;

 

 cin>>office;

 

 vector::iterator  p=stu.begin ();

 

 while(p!=stu.end())

 

 {

 

  if((*p).office==office)

 

  {

 

   cout<<"职工的编号:\n"<<(*p).id<

 

   cout<<"职工的姓名:\n"<<(*p).name<

 

   cout<<"职工的性别:\n"<<(*p).sex<

 

   cout<<"职工的电话号码:\n"<<(*p).tele<

 

   cout<<"职工的地址:\n"<<(*p).address<

 

   cout<<"职工的科室:\n"<<(*p).office<

 

   cout<<"职工的薪水:\n"<<(*p).salary<

 

  }

 

  p++;

 

 }

 

 }

<7>统计职工平均工资函数:

 

void add()

 

 {

 

 int s=0,l=0,sum1=0,sum2=0;

 

    vector::iterator  p=stu.begin();

 

 while(p!=stu.end())

 

 {

 

  if((*p).sex=="man" ){s++;sum1=sum1+(*p).salary;}

 

  else if((*p).sex=="woman"){l++;sum2=sum2+(*p).salary;}

 

  p++;

 

  

 

 }

 

 if(s==0)cout<<"男职工的平均薪水:"<<"0"<

 

  else cout<<"男职工的平均薪水:"<

 

  if(l==0)cout<<"女职工的平均薪水:"<<"0"<

 

  else cout<<"女职工的平均薪水:"<

 

 }

3、程序清单

 

#include

 

#include

 

#include

 

#include

 

usingnamespace std;

 

classemployee

 

{

 

public:

 

     int id ,salary;

 

     string name,tele,address,office,sex;

 

     employee(int id ,string name,stringsex,string tele,string address,string office,int salary)

 

     {

 

          this->id=id;

 

          this->salary=salary;

 

          this->sex=sex;

 

          this->name=name;

 

          this->tele=tele;

 

          this->address=address;

 

          this->office=office;

 

     }

 

};

 

int main()

 

{

 

     void Addemployee();

 

     void Delectemployee();

 

     void Updaemployee();

 

     void reseacherstudentbyname();

 

     void reseacherstudentbyoffice();

 

     void add();

 

     void SaveFile();

 

     while(true)

 

     {

 

          cout<<"========================职工工资管理系统========================="<<'\n'

 

                <<"1.添加职工"<<'\n'

 

                <<"2.删除职工"<<'\n'

 

                <<"3.修改职工"<<'\n'

 

                

 

                <<"4.按姓名查询职工"<<'\n'

 

                <<"5.按科室查询职工"<<'\n'

 

                <<"6.按性别统计职工平均工资职工"<<'\n'

 

                <<"0.推出职工工资管理系统"<<'\n'

 

                <<"========================职工工资管理系统========================="<<'\n';

 

          cout<<"请输入你的选择:"<

 

          int input;

 

          cin>>input;

 

          switch(input)

 

          {

 

           case1:Addemployee(); break;

 

          case 2: Delectemployee();break;

 

          case 3: Updaemployee();break;

 

          case 4:reseacherstudentbyname();break;

 

          case 5:reseacherstudentbyoffice();break;

 

          case 6: add();break;

 

          case 0:exit(1);break;

 

          }

 

     }

 

     return 0;

 

}

 

vectorstu;

 

 

 

voidSaveFile()

 

{

 

   fstream file;

 

     file.open("d:\\stuData.txt",ios::out);

 

     vector::iteratoritr=stu.begin();

 

     while(itr!=stu.end())

 

     {

 

          file<<(*itr).id<<"\n";

 

          file<<(*itr).name<<"\n";

 

          file<<(*itr).sex<<"\n";

 

          file<<(*itr).tele<<"\n";

 

          file<<(*itr).address<<"\n";

 

          file<<(*itr).office<<"\n";

 

          file<<(*itr).salary<<"\n";

 

          itr++;

 

     }

 

     file.close();

 

}

 

voidAddemployee()

 

{

 

     int id,salary;

 

     string name,tele,address,office,sex;

 

     cout<<"请输入职工编号\n";

 

     cin>>id;

 

     cout<<"请输入职工名字\n";

 

     cin>>name;

 

     cout<<"请输入职工性别\n";

 

     cin>>sex;

 

     cout<<"请输入职工电话号码\n";

 

     cin>>tele;

 

     cout<<"请输入职工地址\n";

 

     cin>>address;

 

     cout<<"请输入职工科室\n";

 

     cin>>office; cout<<"请输入职工薪水\n";

 

     cin>>salary;

 

     employeeT(id,name,sex,tele,address,office,salary );

 

     stu.push_back(T);

 

     cout<<"你已成功添加职工,现有"<

 

     SaveFile();

 

}

 

voidDelectemployee()

 

{

 

     cout<<"请输入要删除的职工号";

 

     int id;

 

     cin>>id;

 

     vector::iteratorp=stu.begin();

 

     while(p!=stu.end())

 

     {

 

          if((*p).id==id)

 

          {

 

                stu.erase (p);

 

                break;

 

          }

 

          p++;

 

     }

 

     cout<<"你已成功删除职工"<

 

     SaveFile();

 

}

 

voidUpdaemployee()

 

{

 

     int id ,salary;

 

     string name,tele,address,office,sex;

 

     cout<<"输入你要修改的职工号\n";

 

     cin>>id;

 

     vector::iterator  p=stu.begin ();

 

     while(p!=stu.end())

 

     {

 

          if((*p).id=id)

 

          {

 

                

 

                cout<<"请输入修改职工的姓名\n";

 

                cin>>name;

 

                cout<<"请输入修改职工的性别\n";

 

                cin>>sex;

 

                cout<<"请输入修改职工的电话号码\n";

 

                cin>>tele;

 

                cout<<"请输入修改职工的地址\n";

 

                cin>>address;

 

                cout<<"请输入修改职工的科室\n";

 

                cin>>office;

 

                cout<<"请输入修改职工的薪水\n";

 

                cin>>salary;

 

                (*p).id=id;

 

                (*p).name=name;

 

                (*p).sex=sex;

 

                (*p).tele=tele;

 

                (*p).address=address;

 

                (*p).office=office;

 

                (*p).salary=salary;

 

                break;

 

          }

 

          p++;

 

     }

 

     SaveFile();

 

}

 

voidreseacherstudentbyname()

 

{

 

     cout<<"请输入你要查询的人的名字\n";

 

     string name;

 

     cin>>name;

 

     vector::iterator  p=stu.begin ();

 

     while(p!=stu.end())

 

     {

 

          if((*p).name==name)

 

          {

 

                cout<<"职工的编号:\n"<<(*p).id<

 

                cout<<"职工的姓名:\n"<<(*p).name<

 

                cout<<"职工的性别:\n"<<(*p).sex<

 

                cout<<"职工的电话号码:\n"<<(*p).tele<

 

                cout<<"职工的地址:\n"<<(*p).address<

 

                cout<<"职工的科室:\n"<<(*p).office<

 

                cout<<"职工的薪水:\n"<<(*p).salary<

 

                break;

 

          }

 

          p++;

 

     }

 

     SaveFile();

 

}

 

voidreseacherstudentbyoffice()

 

{

 

     cout<<"请输入你要查询的人的科室\n";

 

     string office;

 

     cin>>office;

 

     vector::iterator  p=stu.begin ();

 

     while(p!=stu.end())

 

     {

 

          if((*p).office==office)

 

          {

 

                cout<<"职工的编号:\n"<<(*p).id<

 

                cout<<"职工的姓名:\n"<<(*p).name<

 

                cout<<"职工的性别:\n"<<(*p).sex<

 

                cout<<"职工的电话号码:\n"<<(*p).tele<

 

                cout<<"职工的地址:\n"<<(*p).address<

 

                cout<<"职工的科室:\n"<<(*p).office<

 

                cout<<"职工的薪水:\n"<<(*p).salary<

 

          }

 

          p++;

 

     }

 

     

 

}

 

void add()

 

{

 

     int s=0,l=0,sum1=0,sum2=0;

 

     vector::iterator  p=stu.begin();

 

     while(p!=stu.end())

 

     {

 

          if((*p).sex=="man"){s++;sum1=sum1+(*p).salary;}

 

          else if((*p).sex=="woman"){l++;sum2=sum2+(*p).salary;}

 

          p++;

 

          

 

     }

 

     if(s==0)cout<<"男职工的平均薪水:"<<"0"<

 

     else cout<<"男职工的平均薪水:"<

 

     if(l==0)cout<<"女职工的平均薪水:"<<"0"<

 

     else cout<<"女职工的平均薪水:"<

 

}

4、程序调试与体会

 

这是一个关于职工信息管理系统,具有输入、输出、删除、查询、修改、保存、退出等功能。

 

可按照相关提示进行调试操作:

 

增加职工信息按“1”键;

 

删除职工信息按“2”键;

 

修改职工信息按“3”键;

 

按姓名查询职工信息按“4”键;

 

按科室查询职工信息按“5”键;

 

按性别统计职工平均工资按“6”键;

 

推出职工工资管理系统按“0”键;

 

我们在程序编写的过程中遇到了很多问题。如:类中有的数据定义为私用以致不能访问(如图0)

 

 

图0错误提示图

 

通过查询资料得知,基类中的私有成员可以以两种形式存在,以private或以protected的形式,以private的形式如果要继承的话需要友元,而以protected的形式的话可以以私有的形式直接继承(用protected方式声明派生类)。为了简单化,我们全部把它的成员公有化。

 

体会:       

 

经过对职工信息管理系统的分析与编写,我们得到了很大的收获。自主学习的必要性更是解决问题的基础,我们5个人一组,在设计的过程中,我们相互讨论,相互学习,发挥出各自的优势,发现自己的不足,取长补短。更重要的是这次设计让我们对C++面向对象编程设计有了更深刻的认识和更全面的掌握,也提升了我们分析问题的能力和思考问题的逻辑能力,更明白实际调研的重要性。在系统分析和设计的部分仍然花了比较多的时间,特别是源代码的编写和调试,经过反复的改写、调试、再改写、调试,我们最终完成了任务。

 

 运行结果:

 

程序运行的界面(主菜单)如图1所示。

 

 

 

图1:程序运行的界面图

 

 

 

在主菜单中功能选项中输入“1"进行添加职工信息,如图2。

 

 

 

图2:添加职工信息图

 

 

 

在主菜单功能选项中输入“2”可以进行删除职工信息(如图3):

 

 

 

图3:删除职工信息图

 

 

 

在主菜单功能选项中输入“3”可以进行修改职工信息(如图4):

 

 

 

图4:修改职工信息图

 

 

 

在主菜单功能选项中输入“4”可以进行按姓名查询职工信息(如图5):

 

 

 

图5:按姓名查询职工信息图

 

 

 

在主菜单功能选项中输入“5”可以进行按科室查询职工信息(如图6):

 

 

 

 

 

图6:按科室查询职工信息图

 

 

 

在主菜单功能选项中输入“6”可以进行职工信息统计(如图7):

 

 

 

图7:职工信息统计图

 

 

 

在主菜单功能选项中输入“0”退出管理系统(如图8):

 

 

 

图8:退出管理系统图

 

 

四、结 论

 

本次设计我们组的题目是职工工资管理系统,因为事先老师的细心指导,我们才得以的完成这次课程设计。在系统分析和设计的部分仍然花了比较多的时间,特别是源代码的编写和调试,经过反复的改写、调试、再改写、调试,我们最终完成了任务。

 

经过对职工信息管理系统的分析与编写,我们得到了很大的收获。自主学习的必要性更是解决问题的基础,我们五个人一组,在设计的过程中,我们相互讨论,相互学习,发挥出各自的优势,发现自己的不足,取长补短,增强了团队意识。更重要的是这次设计让我们对C++面向对象设计编程有了更深刻的认识和更全面的掌握,也提升了我们分析问题的能力和思考问题的逻辑能力,更明白实际调研的重要性。对面向对象编程有了深刻的理解,对软件工程有了了解。在以后的学习中我们会更加的努力,深刻的钻研,增强团队意识。

 

 

 

五、致 谢

 

感谢我们的指导老师袁辉勇老师,谢谢他在我们的课程设计过程中提出了指导性的方案和架构,并指引我们阅读相关的资料和书籍,使我们在不熟悉的领域中仍能迅速掌握新的方法和技术。

 

感谢校领导给我们这次难得的锻炼机会,让我们能更好的理解和实践 C++面向对象编程,让我们对面向对象编程有了更深刻的认知,对已学知识有了更进一步的巩固。

 

也谢谢我的同学与我们一起合作,共同完成了这个课程设计。

 

 

 

六、参考文献

 

[1] 冯博琴等编.《C++程序设计语言》.北京:中国铁道出版社,2011

 

[2] 揣锦华等编.《C++程序设计语言》.西安:西安电子科技大学出版社,2003

 

[3]刘振安编著.《C++程序设计课程设计》.北京:机械工业出版社,2007.

 

[4] 吕凤翥著.《C++语言基础教程》.北京:清华大学出版社,2001

 

[5]张国峰编著.《C++语言及其程序设计教程》.北京:电子工业出版社,1996.

 

[6] 伍俊良《管理信息系统(MIS)开发与应用》.北京:科学出版社,1999

 

[7] 邓飞,李瑶主编.《C++程序设计语言》.北京:中国人民出版社,1993

 

[8] 郑莉,董渊,张瑞丰.《C++语言课程设计》(第三版).北京:清华大学出版社,2004

 

[9] 钱能.《C++程序设计实验指导》.北京:清华大学出版社,2005

 

[10] 罗建军等编.《C++程序设计教程学习指导》.北京:高等教育出版社,2003

 

你可能感兴趣的:(编程语言,C++)