小型企业工资管理系统

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

设计题目: 小型企业工资管理系统

专 业 计算机科学与技术 班 级 学 生 学 号 指导教师 起止时间

目 录

1 引 言 .......................................................... 1

1.1 问题的提出 (四号黑体) ........................................... 1 1.2国内外研究的现状 (四号黑体) ...................................... 1 1.5任务与分析 (四号黑体) ............................................ 1 2 程序的主要功能 ................................................... 2

2.1输入数据 .......................................................... 2 2.2数据统计 .......................................................... 2 2.3 数据打印 .......................................................... 2 2.4数据备份 .......................................................... 2 2.5退出 .............................................................. 2 3 运行平台 ........................................................ 2 4 总体设计 ........................................................ 3 5 程序类说明 ...................................................... 4 6 模块分析 ........................................................ 6

6.1 经理类成员函数 .................................................... 6 6.2销售经理类成员函数 ................................................ 6 6.3销售员类成员函数 .................................................. 8 6.4技术员类成员函数 .................................................. 9 6.5主函数 ........................................................... 10 7 系统测试 ....................................................... 21 8 结论 ........................................................... 24

参考文献 ......................................................... 25

引 言

1.1 问题的提出

在现代化的企业管理中,工资管理系统有着十分重要的作用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。某小型企业出与这种目的制作了这个工资管理系统。

1.2国内外研究的现状

在现今国内外大中小型企业蓬勃发展,对企业的管理显得越发重要,其中对工资进行管理更是公司发展的命脉。

1.5任务与分析

1、 公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、岗位、年龄、性别等信息。 2、 工资的计算办法: 经理:固定月薪为8000;

技术员:工作时间×小时工资(100元每小时); 销售员:销售额×4%提成;

销售经理:底薪(5000)+所辖部门销售额总额×0.5%; 3、 类的层次结构大体如图1所示:

4、 输入数据要求每类人员不能少于4人,并按以下格式同时输出到文件和屏幕: 职工号 姓名 性别 年龄 岗位 工资 排名

5、 总体设计,要有一个菜单,用于选择各项功能,其中 1) 数据录入:输入各种数据;

2) 数据统计:各类人员的工资计算及最终按工资进行的冒泡排序; 3) 数据打印:打印上述表格; 4) 数据备份:把相关数据写入文件; 5) 退出:退出本系统;

注:各项菜单都调用一个函数来实现。

6、输入并存放某销售经理所辖部门各销售员的业绩及自己的工资表: (选作)

2 程序的主要功能

2.1输入数据

输入各种数据

2.2数据统计

各类人员的工资计算及最终按工资进行的冒泡排序;

2.3 数据打印

打印表格

2.4数据备份

把相关数据写入文件

2.5退出

退出本系统

3 程序运行平台

VC++6.0。

具体操作如下:新建„„工程,添加相应的源文件„„,再编译,链接,执行等,此部分可参照实验指导书前面的内容写。

4 总体设计

图4.1 系统总体框架图

图4.2系统总流程图

程序类的说明

 Employ类的声明

class Employ//雇员类

{

protected:

int num; char name[10]; char sex; int age; int wage; public:

virtual void set()=0; virtual void print()=0; virtual void reserved()=0; };  Manager类的声明

class Manager:public Employ//经理类

{ public: void set(); void print(); void reserved(); };

Salesman类声明 class Salesman:public Employ//销售员类{

protected: int salesvolume; int snum; public:

void set(); void print(); void reserved(); void printinfor();

5

int getsales() {return salesvolume;} int getsnum() {return snum;} };

MarketMan类声明

class MarketMan:public Manager//销售经理类 {

protected: int salesvolume; public: void set(); void print(); void reserved(); int resetwage(); int getnum() {return num;} char*getname() {return name;}

int getamount(Salesman s[],int n) {

salesvolume=0; for(int i=0;i

6 模块分析//此部分应详细介绍设计思想、流程及关键代码等,下面没详细介绍

6.1 经理类成员函数

void Manager::print()//经理类成员函数 {

cout

void Manager::reserved() {

ofstream employf("d:\\managerbf.txt"); employf

void MarketMan::set()//销售经理类成员函数 {

wage=resetwage(); cout>num; cout>name;

cout>sex;

cout>age; }

void MarketMan::print() {

resetwage();

cout

void MarketMan::reserved() {

ofstream employf("d:\\markermanbf.txt"); employf

int MarketMan::resetwage() {

wage=5000+int(salesvolume*0.005); return wage; }

6.3 销售员类成员函数

void Salesman::set()//销售员类成员函数

{

cout>num; cout>name;

cout>sex; cout>age; cout>salesvolume;

cout>snum;

wage=int(salesvolume*0.04); }

void Salesman::printinfor() {

cout

void Salesman::print() {

cout

cout

void Salesman::reserved()

{

ofstream employf("d:\\salesmanbf.txt");

employf

}

6.4 技术员类成员函数

void Technician::set()//技术员类成员函数

{

cout

cin>>num;

cout

cin>>name;

cout

cin>>sex;

cout

cin>>age;

cout

cin>>worktime;

wage=worktime*100;

}

void Technician::print()

{

cout

cout

}

void Technician::reserved()

{

ofstream employf("d:\\technicianbf.txt");

employf

6.5 主函数

int t,m,s,mm;

Technician*pt;

Manager*pm;

Salesman*ps;

MarketMan*pmm;

void setin();

void count();

void printdata();

void reservedall();

void single();

void main()

{

cout

cin>>t>>m>>s>>mm;

pt=new Technician[t];

pm=new Manager[m];

ps=new Salesman[s];

pmm=new MarketMan[mm];

if((!pt)||(!pm)||(!ps)||(!pmm))

{

cout

exit(1);}

single();

}

void single()

{

cout

cout

cout

cout

cout

cout

cout

cout

int choice;

cin>>choice;

switch(choice)

{

case 1:setin();

case 2:count();

case 3:printdata();

case 4:reservedall();

case 5:exit(0);

}

}

void setin()

{

Menu1:

cout

cout

cout

cout

cout

cout

cout

cout

int ch1,i;

cin>>ch1;

switch(ch1)

{

case 1:{for(i=0;i

pt[i].set();

cout

goto Menu1;}

case 2:{for(i=0;i

pm[i].set();

cout

goto Menu1;}

case 3:{for(i=0;i

ps[i].set();

cout

goto Menu1;

}

case 4:{for(i=0;i

pmm[i].set();

cout

goto Menu1;

}

case 5:single();

}}

void count()

{

Menu2:

cout

cout

cout

cout

cout

cout

int ch2,i,j;

cin>>ch2;

switch(ch2)

{

case 1:{for(i=0;i

{cout

cout

if(pmm[i].getnum()==ps[j].getsnum())

ps[j].printinfor();

cout

"

goto Menu2;

}

case 2:{cout

MarketMan pmmm;

for(i=1;i

for(j=0;j

if(pmm[j].getamount(ps,s)

{

pmmm=pmm[j];

pmm[j]=pmm[j+1];

pmm[j+1]=pmmm;

}

:

cout

for(i=0;i

pmm[i].print();

cout

goto Menu2;}

case 3:single();

}}

void printdata()

{

Menu3:

cout

cout

cout

cout

cout

cout

cout

cout

int ch3,i;

cin>>ch3;

switch(ch3)

{case 1:{

cout

cout

for(i=0;i

pt[i].print();

cout

goto Menu3;}

case 2:{ cout

cout

for(i=0;i

pm[i].print();

cout

goto Menu3;}

case 4:{cout

cout

for(i=0;i

pmm[i].print();

cout

goto Menu3;}

case 3:{cout

cout

for(i=0;i

ps[i].print();

cout

case 5:single();

}

}

void reservedall()

{Menu4:

cout

cout

cout

cout

cout

cout

cout

cout

int ch4,i;

cin>>ch4;

switch(ch4)

{

case 1:{for(i=0;i

pt[i].reserved();

goto Menu4;

}

case 2:{for(i=0;i

case 3:{for(i=0;i

case 4:{for(i=0;i

case 5:single(); } }

7 系统测试

首先进入VC++6.0,打开工程person.dsw,然后进入源程序,接着选择Build下的Execute person.exe即可,也可以不打开工程,直接双击person文件夹下的debug或release子文件夹下的person.exe文件即可运行程序。

首先进入工资管理系统:

图7.1

数据输入:

图7.2

图7.3

数据打印:

7.4

图7.5

数据备份:

图7.6

备份数据保存在E盘gzglxt.txt文件下:

图7.7

退出系统:

图7.8

8 结论

通过本次试验,对一个小型企业的工资管理系统的功能全部实现,虽然没有一一演练,但是其他功能也能通过代码人工实现。不过美中不足的是在编写程序过程中没有考虑输出时的格式问题,所以导致数据输出很多都没对齐,但是经过反复努力只能做到大致对齐地步。同时也通过本次课程设计让我对C++更深一步的理解,对我们的学习帮助真的很大。最后要感谢指导老师在课程开始直到结束的细心指导。

参考文献

1. 钱能编著. C++程序设计教程(第二版). 北京:清华大学出版社,2005.09 2.郑莉等 编著. C++程序设计语言(第三版). 北京:清华大学出版社,2005.06 3.陈清华 朱红主编. Visual C++课程设计案例精选与编程指导. 南京:东南大学出版社,2003.06

4.刘振安等编著. C++程序设计课程设计.机械工业出版社,2004.08,北京

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

设计题目: 小型企业工资管理系统

专 业 计算机科学与技术 班 级 学 生 学 号 指导教师 起止时间

目 录

1 引 言 .......................................................... 1

1.1 问题的提出 (四号黑体) ........................................... 1 1.2国内外研究的现状 (四号黑体) ...................................... 1 1.5任务与分析 (四号黑体) ............................................ 1 2 程序的主要功能 ................................................... 2

2.1输入数据 .......................................................... 2 2.2数据统计 .......................................................... 2 2.3 数据打印 .......................................................... 2 2.4数据备份 .......................................................... 2 2.5退出 .............................................................. 2 3 运行平台 ........................................................ 2 4 总体设计 ........................................................ 3 5 程序类说明 ...................................................... 4 6 模块分析 ........................................................ 6

6.1 经理类成员函数 .................................................... 6 6.2销售经理类成员函数 ................................................ 6 6.3销售员类成员函数 .................................................. 8 6.4技术员类成员函数 .................................................. 9 6.5主函数 ........................................................... 10 7 系统测试 ....................................................... 21 8 结论 ........................................................... 24

参考文献 ......................................................... 25

引 言

1.1 问题的提出

在现代化的企业管理中,工资管理系统有着十分重要的作用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。某小型企业出与这种目的制作了这个工资管理系统。

1.2国内外研究的现状

在现今国内外大中小型企业蓬勃发展,对企业的管理显得越发重要,其中对工资进行管理更是公司发展的命脉。

1.5任务与分析

1、 公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、岗位、年龄、性别等信息。 2、 工资的计算办法: 经理:固定月薪为8000;

技术员:工作时间×小时工资(100元每小时); 销售员:销售额×4%提成;

销售经理:底薪(5000)+所辖部门销售额总额×0.5%; 3、 类的层次结构大体如图1所示:

4、 输入数据要求每类人员不能少于4人,并按以下格式同时输出到文件和屏幕: 职工号 姓名 性别 年龄 岗位 工资 排名

5、 总体设计,要有一个菜单,用于选择各项功能,其中 1) 数据录入:输入各种数据;

2) 数据统计:各类人员的工资计算及最终按工资进行的冒泡排序; 3) 数据打印:打印上述表格; 4) 数据备份:把相关数据写入文件; 5) 退出:退出本系统;

注:各项菜单都调用一个函数来实现。

6、输入并存放某销售经理所辖部门各销售员的业绩及自己的工资表: (选作)

2 程序的主要功能

2.1输入数据

输入各种数据

2.2数据统计

各类人员的工资计算及最终按工资进行的冒泡排序;

2.3 数据打印

打印表格

2.4数据备份

把相关数据写入文件

2.5退出

退出本系统

3 程序运行平台

VC++6.0。

具体操作如下:新建„„工程,添加相应的源文件„„,再编译,链接,执行等,此部分可参照实验指导书前面的内容写。

4 总体设计

图4.1 系统总体框架图

图4.2系统总流程图

程序类的说明

 Employ类的声明

class Employ//雇员类

{

protected:

int num; char name[10]; char sex; int age; int wage; public:

virtual void set()=0; virtual void print()=0; virtual void reserved()=0; };  Manager类的声明

class Manager:public Employ//经理类

{ public: void set(); void print(); void reserved(); };

Salesman类声明 class Salesman:public Employ//销售员类{

protected: int salesvolume; int snum; public:

void set(); void print(); void reserved(); void printinfor();

5

int getsales() {return salesvolume;} int getsnum() {return snum;} };

MarketMan类声明

class MarketMan:public Manager//销售经理类 {

protected: int salesvolume; public: void set(); void print(); void reserved(); int resetwage(); int getnum() {return num;} char*getname() {return name;}

int getamount(Salesman s[],int n) {

salesvolume=0; for(int i=0;i

6 模块分析//此部分应详细介绍设计思想、流程及关键代码等,下面没详细介绍

6.1 经理类成员函数

void Manager::print()//经理类成员函数 {

cout

void Manager::reserved() {

ofstream employf("d:\\managerbf.txt"); employf

void MarketMan::set()//销售经理类成员函数 {

wage=resetwage(); cout>num; cout>name;

cout>sex;

cout>age; }

void MarketMan::print() {

resetwage();

cout

void MarketMan::reserved() {

ofstream employf("d:\\markermanbf.txt"); employf

int MarketMan::resetwage() {

wage=5000+int(salesvolume*0.005); return wage; }

6.3 销售员类成员函数

void Salesman::set()//销售员类成员函数

{

cout>num; cout>name;

cout>sex; cout>age; cout>salesvolume;

cout>snum;

wage=int(salesvolume*0.04); }

void Salesman::printinfor() {

cout

void Salesman::print() {

cout

cout

void Salesman::reserved()

{

ofstream employf("d:\\salesmanbf.txt");

employf

}

6.4 技术员类成员函数

void Technician::set()//技术员类成员函数

{

cout

cin>>num;

cout

cin>>name;

cout

cin>>sex;

cout

cin>>age;

cout

cin>>worktime;

wage=worktime*100;

}

void Technician::print()

{

cout

cout

}

void Technician::reserved()

{

ofstream employf("d:\\technicianbf.txt");

employf

6.5 主函数

int t,m,s,mm;

Technician*pt;

Manager*pm;

Salesman*ps;

MarketMan*pmm;

void setin();

void count();

void printdata();

void reservedall();

void single();

void main()

{

cout

cin>>t>>m>>s>>mm;

pt=new Technician[t];

pm=new Manager[m];

ps=new Salesman[s];

pmm=new MarketMan[mm];

if((!pt)||(!pm)||(!ps)||(!pmm))

{

cout

exit(1);}

single();

}

void single()

{

cout

cout

cout

cout

cout

cout

cout

cout

int choice;

cin>>choice;

switch(choice)

{

case 1:setin();

case 2:count();

case 3:printdata();

case 4:reservedall();

case 5:exit(0);

}

}

void setin()

{

Menu1:

cout

cout

cout

cout

cout

cout

cout

cout

int ch1,i;

cin>>ch1;

switch(ch1)

{

case 1:{for(i=0;i

pt[i].set();

cout

goto Menu1;}

case 2:{for(i=0;i

pm[i].set();

cout

goto Menu1;}

case 3:{for(i=0;i

ps[i].set();

cout

goto Menu1;

}

case 4:{for(i=0;i

pmm[i].set();

cout

goto Menu1;

}

case 5:single();

}}

void count()

{

Menu2:

cout

cout

cout

cout

cout

cout

int ch2,i,j;

cin>>ch2;

switch(ch2)

{

case 1:{for(i=0;i

{cout

cout

if(pmm[i].getnum()==ps[j].getsnum())

ps[j].printinfor();

cout

"

goto Menu2;

}

case 2:{cout

MarketMan pmmm;

for(i=1;i

for(j=0;j

if(pmm[j].getamount(ps,s)

{

pmmm=pmm[j];

pmm[j]=pmm[j+1];

pmm[j+1]=pmmm;

}

:

cout

for(i=0;i

pmm[i].print();

cout

goto Menu2;}

case 3:single();

}}

void printdata()

{

Menu3:

cout

cout

cout

cout

cout

cout

cout

cout

int ch3,i;

cin>>ch3;

switch(ch3)

{case 1:{

cout

cout

for(i=0;i

pt[i].print();

cout

goto Menu3;}

case 2:{ cout

cout

for(i=0;i

pm[i].print();

cout

goto Menu3;}

case 4:{cout

cout

for(i=0;i

pmm[i].print();

cout

goto Menu3;}

case 3:{cout

cout

for(i=0;i

ps[i].print();

cout

case 5:single();

}

}

void reservedall()

{Menu4:

cout

cout

cout

cout

cout

cout

cout

cout

int ch4,i;

cin>>ch4;

switch(ch4)

{

case 1:{for(i=0;i

pt[i].reserved();

goto Menu4;

}

case 2:{for(i=0;i

case 3:{for(i=0;i

case 4:{for(i=0;i

case 5:single(); } }

7 系统测试

首先进入VC++6.0,打开工程person.dsw,然后进入源程序,接着选择Build下的Execute person.exe即可,也可以不打开工程,直接双击person文件夹下的debug或release子文件夹下的person.exe文件即可运行程序。

首先进入工资管理系统:

图7.1

数据输入:

图7.2

图7.3

数据打印:

7.4

图7.5

数据备份:

图7.6

备份数据保存在E盘gzglxt.txt文件下:

图7.7

退出系统:

图7.8

8 结论

通过本次试验,对一个小型企业的工资管理系统的功能全部实现,虽然没有一一演练,但是其他功能也能通过代码人工实现。不过美中不足的是在编写程序过程中没有考虑输出时的格式问题,所以导致数据输出很多都没对齐,但是经过反复努力只能做到大致对齐地步。同时也通过本次课程设计让我对C++更深一步的理解,对我们的学习帮助真的很大。最后要感谢指导老师在课程开始直到结束的细心指导。

参考文献

1. 钱能编著. C++程序设计教程(第二版). 北京:清华大学出版社,2005.09 2.郑莉等 编著. C++程序设计语言(第三版). 北京:清华大学出版社,2005.06 3.陈清华 朱红主编. Visual C++课程设计案例精选与编程指导. 南京:东南大学出版社,2003.06

4.刘振安等编著. C++程序设计课程设计.机械工业出版社,2004.08,北京


相关文章

  • 关于中小型企业人力资源管理的几个问题
  • 时代经贸 2010 年 8 月 中旬刊 总第178期 关于中小型企业人力资源管理的几个问题 成玉玲 (南京六合区公路管理站,江苏 南京 211500) [摘 要]从传统的人事管理转向现代人力资源管理,这是中国现阶段企业管理改革的重要课题.在 ...查看


  • 汇算清缴问题库
  • 企业所得税汇算清缴常见问题 1. 我单位为软件企业,享受软件企业税收优惠政策,购置不超五千元的固定资产还能否享受固定资产加速折旧的政策? 答:根据<关于固定资产加速折旧税收政策有关问题的公告>(国家税务总局公告2014年第64号 ...查看


  • 小型项目管理师初始注册.变更注册.延续注册.遗失补办流程
  • 小型项目管理师初始注册.变更注册.延续 注册.遗失补办流程 一.初始注册 根据<江苏省建筑业企业小型项目管理师管理办法(暂行)实施细则>要求,申请人通过资格考试成绩合格后应在一年内申请执业证书,并应当提交下列材料: 1.< ...查看


  • 我国劳动密集型小企业劳动关系问题研究
  • 第51卷第2期Vol.51 No.2华中师范大学学报(人文社会科学版) )JournalofHuazhonNormalUniversitHumanitiesandSocialSciences gy( 2012年3月 Mar.012 2 我国 ...查看


  • 论中小企业如何改革和发展
  • 论小型家族企业如何改革和发展 青岛理工大学 2012级物流管理专业1班 李进益 201222297 2014.5.17 论小型家族企业如何改革和发展 [摘要]随着社会主义市场经济的不断深入发展,中小企业在我国的国民经济中发挥重要的作用日益增 ...查看


  • 中华人民共和国国营企业所得税条例(草案)实施细则
  • 乐税智库文档 财税法规 策划  乐税网 中华人民共和国国营企业所得税条例(草案)实施细则 [标    签]国营企业所得税条例,条例实施细则,生产经营所得 [颁布单位]财政部 [文    号]财政﹝1984﹞65号 [发文日期]1984-10 ...查看


  • 2012年工资情况说明
  • 临沧市利通实业有限责任公司 2012年工资情况说明 临翔区社保局: 根据贵局临翔人社发[2013]16号文件通知精神,为做好2013年社会保险费缴费基数申报工作,我单位及时组织人员对2012年企业工资执行和发放情况进行了清查.现将检查情况说 ...查看


  • 浙江省国税企业所得税热点问题解答
  • 一.我公司为商业零售企业,请问由于商品过期造成的企业损失是采用清单申报还是专项申报? 答:视具体情况而定.<关于商业零售企业存货损失税前扣除问题的公告>(国家税务总局公告[2014]第3号)文件第一条规定,商业零售企业存货因零星 ...查看


  • 基本养老保险费率:国际比较.现实困境与改革方向
  • 作者:苏中兴 中国人民大学学报 2016年05期 中国的基本养老保险缴费费率一直是政府.企业和个人都非常关注的焦点问题.对个人而言,养老保险费率不仅关系着职工在职时的工资水平和费用缴纳,更是关系到职工退休后的养老保障和生活质量.对企业而言, ...查看


热门内容