求大侠帮忙完成下面这个C++求一份工资结构表管理程序,发邮箱

6172人阅读
编程语言(31)
工资管理系统
职工工资管理系统是由职工信息管理模块和工资信息管理模块组成。职工工资管理系统可以实现对职工基本工资进行管理、实际发放工资管理、职工信息记录的查询等多项管理。在模块中分别实现对职工基本信息管理。如添加职工、修改职工信息、删除职工信息、查询职工信息等功能程序设计。该工资管理系统采用面向对象程序设计。事先,我们对程序进行了粗略的分析,确定了C++中类、构造函数、成员函数等函数,接着通过对各种函数的使用,编出了这个职工工资管理系统,最后在Mcrosoft软件中不断调试运行,并发现错误,解决错误。并且经过适当完善,初步实现了设计目标。
关键词:;面向对象;类;工资管理
《C++程序设计》课程设计
------职工工资管理
随着信息时代的到来,计算机应用十分广泛。职工工资管理是企业单位必不可少的管理程序,也是企业体制的重要组成部分。当前许多企业之中,真正使用计算机管理职工工资机制对企业来说非常的重要。
语言具有面向对象特性,是一种使用非常广泛的计算机编程语言,一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。面向对象编程中时程序设计的基本单位。但对象的静态数据往往是用某种类型的数据来表示,对象的动态属性要用成员函数来实现。面向函数的实现归根到底是算法的设计。
职工工资管理系统是以面向对象为基础编译出来的,其中用到了:类的使用、数组、循环体、函数的调用、封装等内容。
1、课程设计目的
&1&通过职工工资管理系统的编写,掌握C++面向对象设计,培养实事求是、认真、严谨的科学态度和刻苦钻研不断创新的精神,逐步建立正确的全局观。
&2&了解软件工程编程的思想,对以后的学习增加更多学习兴趣。
&3&提高各行业的工作效率,不断完善服务的质量。
2、课程设计任务
使用C++面向对象程序设计设计一个简易的工资管理系统。定义职工(employee)类,其中包括工号、姓名、性别、电话、家庭住址、所在科室和工资。(1)设计菜单实现功能选择;(2)添加功能:输入人员信息,并保存到文件中;(3)删除功能:输入人员编号实现删除,并保存到文件中
&(4)修改功能:输入人员编号及其他相关信息,实现修改并保存到文件中
&(5)查询功能①能够根据姓名精确查询人员信息;②能够根据所在科室精确查询该科室所有人员信息;(6)统计功能:根据性别分别统计男女员工的平均工资并输出结果
1、总体设计
程序要求实现对工资进行统计并且显示职工所有信息,能够实行添加职工信息、查询职工信息、修改职工信息、查询职工信息等功能。
我们定义了一个类()我们定义了下述成员函数:
();该函数添加职工信息。
()该函数删除职工信息。
()该函数修改职工信息。
()该函数用于按名字查询职工信息。
()该函数用于按科室查询职工信息。
()该函数统计男女职工的平均工资。
()该函数用于对文件的书写。
菜单输出放在主函数中。在函数中创建了高级数组,并用数组装创建的对象。
2、详细设计
(1)类的设计
string name,tele,address,office,
this-&salary=
this-&sex=
this-&name=
this-&tele=
this-&address=
this-&office=
(2)主函数的设计
while(true)
cout&&&========================职工工资管理系统
&&&1.添加职工
&&&2.删除职工
&&&3.修改职工
&&&4.按姓名查询职工
&&&5.按科室查询职工
&&&6.按性别统计职工平均工资职工
&&&0.推出职工工资管理系统
&&&========================职工工资管理系统
cout&&&请输入你的选择:
switch(input)
case 1:Addemployee();
case 2: Delectemployee();
case 3: Updaemployee();
case 4:reseacherstudentbyname() ;
case 5:reseacherstudentbyoffice();
case 6: add();
case 0:exit(1);
成员函数的设计
&1&文件书写函数:
file.open(&d:\\stuData.txt&,ios::out);
vector&employee&::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()
string name,tele,address,office,
cout&&&请输入职工编号
cout&&&请输入职工名字
cout&&&请输入职工性别
cout&&&请输入职工电话号码
cout&&&请输入职工地址
cout&&&请输入职工科室
cin&& cout&&&请输入职工薪水
employeeT(id,name,sex,tele,address,office,salary );
stu.push_back(T);
cout&&&你已成功添加职工,现有个职工
SaveFile();
&3&删除职工信息函数:
voidDelectemployee()
&cout&&&请输入要删除的职工号&;
&vector&employee&::iteratorp=stu.begin();
&while(p!=stu.end())
&&if((*p).id==id)
&&&stu.erase (p);
&&p++;
cout&&&你已成功删除职工&&&
SaveFile();
&4&修改职工信息函数:
voidUpdaemployee()
&string name,tele,address,office,
&cout&&&输入你要修改的职工号\n&;
&vector&employee&::iterator&
p=stu.begin ();
&while(p!=stu.end())
&&if((*p).id=id)
&&cout&&&请输入修改职工的姓名\n&;
&&cout&&&请输入修改职工的性别\n&;
&&cout&&&请输入修改职工的电话号码\n&;
&&cout&&&请输入修改职工的地址\n&;
&&cout&&&请输入修改职工的科室\n&;
&&&cout&&&请输入修改职工的薪水\n&;
&&(*p).id=
&&(*p).name=
&&(*p).sex=
&&(*p).tele=
&&(*p).address=
&&(*p).office=
&&&(*p).salary=
&&p++;
&SaveFile();
&5&按名字查询职工信息函数:
voidreseacherstudentbyname()
&cout&&&请输入你要查询的人的名字\n&;
&vector&employee&::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&&
&&p++;
&6&按科室查询职工信息:
voidreseacherstudentbyoffice()
&cout&&&请输入你要查询的人的科室\n&;
&vector&employee&::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&统计职工平均工资函数:
int s=0,l=0,sum1=0,sum2=0;
vector&employee&::iterator&
p=stu.begin();
while(p!=stu.end())
if((*p).sex==&man& ){s++;sum1=sum1+(*p).}
else if((*p).sex==&woman&){l++;sum2=sum2+(*p).}
p++;
if(s==0)cout&&&男职工的平均薪水:
else cout&&&男职工的平均薪水:
if(l==0)cout&&&女职工的平均薪水:
else cout&&&女职工的平均薪水:
string name,tele,address,office,
employee(int id ,string name,stringsex,string tele,string address,string office,int salary)
this-&salary=
this-&sex=
this-&name=
this-&tele=
this-&address=
this-&office=
void Addemployee();
void Delectemployee();
void Updaemployee();
void reseacherstudentbyname();
void reseacherstudentbyoffice();
void add();
void SaveFile();
while(true)
cout&&&========================职工工资管理系统
&&&1.添加职工
&&&2.删除职工
&&&3.修改职工
&&&4.按姓名查询职工
&&&5.按科室查询职工
&&&6.按性别统计职工平均工资职工
&&&0.推出职工工资管理系统
&&&========================职工工资管理系统
cout&&&请输入你的选择:
switch(input)
case1:Addemployee();
case 2: Delectemployee();
case 3: Updaemployee();
case 4:reseacherstudentbyname();
case 5:reseacherstudentbyoffice();
case 6: add();
case 0:exit(1);
file.open(&d:\\stuData.txt&,ios::out);
vector&employee&::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();
string name,tele,address,office,
cout&&&请输入职工编号
cout&&&请输入职工名字
cout&&&请输入职工性别
cout&&&请输入职工电话号码
cout&&&请输入职工地址
cout&&&请输入职工科室
cin&& cout&&&请输入职工薪水
employeeT(id,name,sex,tele,address,office,salary );
stu.push_back(T);
cout&&&你已成功添加职工,现有个职工
SaveFile();
cout&&&请输入要删除的职工号
vector&employee&::iteratorp=stu.begin();
while(p!=stu.end())
if((*p).id==id)
stu.erase (p);
p++;
cout&&&你已成功删除职工
SaveFile();
string name,tele,address,office,
cout&&&输入你要修改的职工号
vector&employee&::iterator&
p=stu.begin ();
while(p!=stu.end())
if((*p).id=id)
cout&&&请输入修改职工的姓名
cout&&&请输入修改职工的性别
cout&&&请输入修改职工的电话号码
cout&&&请输入修改职工的地址
cout&&&请输入修改职工的科室
cout&&&请输入修改职工的薪水
(*p).name=
(*p).tele=
(*p).address=
(*p).office=
(*p).salary=
p++;
SaveFile();
cout&&&请输入你要查询的人的名字
vector&employee&::iterator&
p=stu.begin ();
while(p!=stu.end())
if((*p).name==name)
cout&&&职工的编号:
cout&&&职工的姓名:
cout&&&职工的性别:
cout&&&职工的电话号码:
cout&&&职工的地址:
cout&&&职工的科室:
cout&&&职工的薪水:
p++;
SaveFile();
cout&&&请输入你要查询的人的科室
vector&employee&::iterator&
p=stu.begin ();
while(p!=stu.end())
if((*p).office==office)
cout&&&职工的编号:
cout&&&职工的姓名:
cout&&&职工的性别:
cout&&&职工的电话号码:
cout&&&职工的地址:
cout&&&职工的科室:
cout&&&职工的薪水:
p++;
int s=0,l=0,sum1=0,sum2=0;
vector&employee&::iterator&
p=stu.begin();
while(p!=stu.end())
if((*p).sex==&man&){s++;sum1=sum1+(*p).}
else if((*p).sex==&woman&){l++;sum2=sum2+(*p).}
p++;
if(s==0)cout&&&男职工的平均薪水:
else cout&&&男职工的平均薪水:
if(l==0)cout&&&女职工的平均薪水:
else cout&&&女职工的平均薪水:
4、程序调试与体会
这是一个关于职工信息管理系统,具有输入、输出、删除、查询、修改、保存、退出等功能。
可按照相关提示进行调试操作:
增加职工信息按“1”键;
删除职工信息按“2”键;
修改职工信息按“3”键;
按姓名查询职工信息按“4”键;
按科室查询职工信息按“5”键;
按性别统计职工平均工资按“6”键;
推出职工工资管理系统按“0”键;
我们在程序编写的过程中遇到了很多问题。如:类中有的数据定义为私用以致不能访问如图
图0错误提示图
通过查询资料得知,基类中的私有成员可以以两种形式存在,以或以的形式,以的形式如果要继承的话需要友元,而以的形式的话可以以私有的形式直接继承用方式声明派生类。为了简单化,我们全部把它的成员公有化。
经过对职工信息管理系统的分析与编写,我们得到了很大的收获。自主学习的必要性更是解决问题的基础,我们5个人一组,在设计的过程中,我们相互讨论,相互学习,发挥出各自的优势,发现自己的不足,取长补短。更重要的是这次设计让我们对C++面向对象编程设计有了更深刻的认识和更全面的掌握,也提升了我们分析问题的能力和思考问题的逻辑能力,更明白实际调研的重要性。在系统分析和设计的部分仍然花了比较多的时间,特别是源代码的编写和调试,经过反复的改写、调试、再改写、调试,我们最终完成了任务。
运行结果:
程序运行的界面(主菜单)如图所示。
图程序运行的界面图
在主菜单中功能选项中输入“1&进行添加职工信息,如图2。
图添加职工信息图
在主菜单功能选项中输入“2”可以进行删除职工信息(如图3):
图删除职工信息图
在主菜单功能选项中输入“3”可以进行修改职工信息(如图4):
图修改职工信息图
在主菜单功能选项中输入“4”可以进行按姓名查询职工信息(如图5):
图按姓名查询职工信息图
在主菜单功能选项中输入“5”可以进行按科室查询职工信息(如图6):
图按科室查询职工信息图
在主菜单功能选项中输入“6”可以进行职工信息统计(如图7):
图职工信息统计图
在主菜单功能选项中输入“0”退出管理系统(如图8):
图退出管理系统图
本次设计我们组的题目是职工工资管理系统,因为事先老师的细心指导,我们才得以的完成这次课程设计。在系统分析和设计的部分仍然花了比较多的时间,特别是源代码的编写和调试,经过反复的改写、调试、再改写、调试,我们最终完成了任务。
经过对职工信息管理系统的分析与编写,我们得到了很大的收获。自主学习的必要性更是解决问题的基础,我们五个人一组,在设计的过程中,我们相互讨论,相互学习,发挥出各自的优势,发现自己的不足,取长补短,增强了团队意识。更重要的是这次设计让我们对C++面向对象设计编程有了更深刻的认识和更全面的掌握,也提升了我们分析问题的能力和思考问题的逻辑能力,更明白实际调研的重要性。对面向对象编程有了深刻的理解,对软件工程有了了解。在以后的学习中我们会更加的努力,深刻的钻研,增强团队意识。
感谢我们的指导老师袁辉勇老师,谢谢他在我们的课程设计过程中提出了指导性的方案和架构,并指引我们阅读相关的资料和书籍,使我们在不熟悉的领域中仍能迅速掌握新的方法和技术。
感谢校领导给我们这次难得的锻炼机会,让我们能更好的理解和实践面向对象编程,让我们对面向对象编程有了更深刻的认知,对已学知识有了更进一步的巩固。
也谢谢我的同学与我们一起合作,共同完成了这个课程设计。
冯博琴等编.《C++程序设计语言》.北京:中国铁道出版社,2011
揣锦华等编.《C++程序设计语言》.西安:西安电子科技大学出版社,2003
[3]刘振安编著.《C++程序设计课程设计》.北京:机械工业出版社,2007.
吕凤翥著.《C++语言基础教程》.北京:清华大学出版社,2001
[5]张国峰编著.《C++语言及其程序设计教程》.北京:电子工业出版社,1996.
伍俊良《管理信息系统(MIS)开发与应用》.北京:科学出版社,1999
邓飞,李瑶主编.《C++程序设计语言》.北京:中国人民出版社,1993
郑莉,董渊,张瑞丰.《C++语言课程设计》(第三版).北京:清华大学出版社,2004
钱能.《C++程序设计实验指导》.北京:清华大学出版社,2005
罗建军等编.《C++程序设计教程学习指导》.北京:高等教育出版社,2003
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:29579次
排名:千里之外
原创:36篇
(2)(1)(1)(1)(2)(3)(1)(25)| Copyright &
. All Rights Reserved .工资管理C++程序_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
格式 文档名称 用户评分 浏览量 下载量1前言 ................................................... 2
2工程概况 ............................................... 3
2.1继承与派生的概念 .................................. 3
2.1.1继承格式 ........................................ 3
3正文 ................................................... 4
3.1设计目的和意义 .................................... 4
3.1.1设计目的 ..................................... 4
3.1.2设计意义 ..................................... 4
3.2目标与具体方案 .................................... 4
3.2.1目标 ......................................... 4
3.2.2具体方案 ..................................... 4
3.3设计方法和内容 .................................... 5
3.3.1设计方法 ..................................... 5
3.3.2详细设计 ..................................... 5
3.4设计的关键 ........................................ 6
3.5程序结论 .......................................... 6
4致谢 ................................................... 6
5参考文献 ............................................... 6
附录A 源程序的清单 ...................................... 7
程序结果如图3-1: ................................. 9
程序结果2: ...................................... 10
Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。
虽然微软公司推出了Visual C++.NET(Visual C++7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为平台。
Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。
C++有其强大的功能,基于C++面向过程程序设计。又有其众多的特点。
所谓面向对象的程序设计,就是把面向对象的思想应用到软件工程中,并指导开发维护软件。
对象是由数据和容许的操作组成的封装体,所谓面向对象,就是基于对象的概念,以对象为中心,类和继承为构造机制,认识了解刻画客观世界以及开发出相应的软件系统。
面向对象的程序设计(OOP)并不是刚刚提出来的,主要是由于C++和Java这类语言的传播,OOP最近才显得越来越重要了。为什么面向对象的设计如此流行呢?从理论上讲,用面向对象的语言可以处理任何其他计算机语言所能完成的事情。然而当建立基于智能体的模型时,OOP对于开始的程序员和后来的程序读者都表现出了很大的优势。
继承是指一个对象从另一个对象中获得属性的过程.是面向对象程序设计的三大原则之二,它支持按层次分类的概念.例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种.如果不使用层次的概念,每个对象需要明确定义各自的全部特征.通过层次分类方式,一个对象只需要在它的类中定义是它成为唯一的 各个属性,然后从父类中继承它的通用属性.因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例.一个深度继承的子类将继承它在类层次中的每个祖先的所有属性.
继承与封装可以互相作用.如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性.这是面向对象程序在复杂性上呈线性而非几何增长的一个重要概念.新的子类继承其所有祖先的所有属性. 子类和系统中的其他代码不会产生无法预料的交互作用.
C++的继承与派生在C++中的地位也有其重要,要较好的进行面向对象程序设计,还必须了解面向对象程序设计的另个重要特征――继承性!继承性是面向对象程序设计最重要的特征,可以说,没有掌握继承性,就没有掌握类和对象的精华,也就是没有掌握面向对象程序设计的真谛。
2.1继承与派生的概念
通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。
在C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。
2.1.1继承格式
单继承的定义格式如下:
class &派生类名&:&继承方式&&基类名&
&派生类新定义成员&
其中,&派生类名&是新定义的一个类的名字,它是从&基类名&中派生的,并且按指定的&继承方式&派生的。&继承方式&常使用如下三种关键字给予表示:
public 表示公有基类;
private 表示私有基类;
protected 表示保护基类;
多继承的定义格式如下:
class &派生类名&:&继承方式1&&基类名1&,&继承方式2&&基类名2&,…
&派生类新定义成员&
可见,多继承与单继承的区别从定义格式上看,主要是多继承的基类多于一个。
派生类的三种继承方式
3.1设计目的和意义
3.1.1设计目的
(1)学会编写C++程序。
(2)课程设计是检验我知识能力的一种途径。
(3)课程设计能让我学会许多书本中学不到的东西。
(4)课程设计能使我所学知识融会贯通,熟练掌握C++中一些基本知识点。
(5)课程设计是一次很好的实践机会,可以通过实际操作来找出不足,修改不足,让自己精益求精,做到最好。
(6)通过学生成绩管理系统这个具体的例子把我所学到的和我所想到的都运用进设计一个自己的作品。
3.1.2设计意义
通过课程设计培养了我的动手能力以及综合运用所学的C++语言基础理论,基础知识,基本技能,进行程序分析和程序开发,提高在实际开发中解决问题的能力,达到了能够利用C++语言进行应用程序的规划,分析,设计和实施,更能进一步使我对这门语言有深刻的理解和更好的得到巩固,更能对我所学的知识得到检验。
3.2目标与具体方案
编写一个程序实现小型公司的工资管理。该公司主要有4类成员:经理、简直技术人员、销售经理、和销售员。要求储存这些人员的编号、姓名和月工资,计算月工资并显示全部信息。月工资计算办法为:经理拿固定月薪8000元,简直技术人员按每小时100元领取月薪,销售员按该当月销售额的4%提成,销售经理既拿固定工资也领取销售提成,固定月工资为5000元,销售提成为所管辖部门当月月薪总额的5‰.
3.2.2具体方案
编写程序就是要用程序语言将需要解决的问题和解决问题的方案描述清出
首先、我定义了一个基类(employee)其中包括3个保护数据成员和3个公用成员函数为了便于后面继承与派生。
其次、由基类派生出经理、兼职技术人员、销售员和销售经理等4个类,}

我要回帖

更多关于 求双子男帮忙 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信