小型人员信息管理系统Word格式.docx
《小型人员信息管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《小型人员信息管理系统Word格式.docx(8页珍藏版)》请在冰豆网上搜索。
组长签字:
成绩
日期
20年月日
课程设计任务书
学院
信息科学与工程
实践教学要求与任务
某小型公司主要有四类人员:
经理、兼职技术人员、销售经理和兼职推销员。
现在,需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。
人员编号基数为1000,每输入一个人员信息编号顺序加1。
程序要有对所有人员提升级别的功能。
本例中为简单起见,所有人员的初始级别均为1级,然后进行升级,经理升为4级,兼职技术人员和销售经理升为3级,推销员认为1级。
月薪计算办法是:
经理拿固定月薪8000元;
兼职技术人员按每小时100元领取月薪;
兼职推销员的月薪按该推销员当月销售额的4%提成;
销售经理即拿固定月薪也领取销售提成,固定月薪为5000元,销售提成为所管辖部门当月销售总额的千分之五。
要求为每一类人员单独建立文件,并在每个文件中手工录入一些人员基本信息,并根据这些基本信息计算职工的月薪,并将计算结果保存入相应的磁盘文件中。
要求编写程序实现上述功能,并且可以通过实例演示上述功能。
工作计划与进度安排
第17周:
分析题目,查阅课题相关资料,进行类设计、算法设计;
第18周:
程序的设计、调试与实现;
第19周:
程序测试与分析,撰写课程设计报告,进行答辩验收。
指导教师:
201年月日
专业负责人:
201年月日
学院教学副院长:
摘要
C++是支持面向过程的设计,更是支持基于对象和面向对象的程序设计。
类是C++中十分重要的概念,它是实现面向对象程序设计的基础。
本文采用虚基类及其派生类实现了对小型人员信息的管理,类的封装性和信息隐蔽性可以很好的保护公司员工的信息,同时采用了VisualC++的控制台工程和MFC工程实现了对员工基本信息的输入和全部信息的输出及保存。
关键词:
信息管理;
类;
控制台工程;
MFC工程
1需求分析
(1)对小型公司进行小型人员信息操作管理系统。
该公司主要有四类人员:
经理、销售经理、兼职技术人员、兼职推销员;
定义一个虚基类并且派生四个子类。
(2)系统需要存储这些人员的姓名、编号、级别、当月薪水,输入基本信息,计算月薪总额,显示并保存全部信息;
每个派生类的构造函数要实现对其特有数据成员的初始化。
(3)系统具体要求:
①编号要求:
人员编号基数为1000,每输入一个员工姓名编号加1;
编号定义为全局静态变量即可。
②级别要求:
所有人员的初始级别均为1级,然后进行升级,经理升为4级,兼职技术人员和销售经理升为3级,兼职推销员为1级;
直接对级别赋值即可。
③月薪要求:
销售经理既拿固定月薪也领取销售提成,固定月薪为5000元,销售提成为所管辖部门当月销售总额的千分之五。
④总体要求:
为每一类人员单独建立文件,并在每个文件中手工录入一些人员基本信息,并根据这些基本信息计算职工的月薪,并将计算结果保存入相应的磁盘文件中。
2算法基本原理
(1)定义一个员工虚基类Employmee(),包括员工姓名、级别、编号月薪共有的基本数据成员;
(2)在基类的基础上派生出经理Mansger()类、销售经理Salemansger()类、兼职技术人员Technology()类和兼职推销员Saleman()类,并在这四个派生类中添加各自数据成员和成员函数。
具体分析如下:
①员工编号的可以定义全局静态变量staticintcount=0;
并且初始化员工编号number=1000+count;
每输入一个员工的姓名编号加1。
②员工等级按照要求直接赋值即可;
③在派生类的构造函数中初始化数据成员并且按照要求计算各成员的月薪。
(3)定义一个结构体链表structLinked,并将链表的头指针头封装在友元类Head()中。
(4)运行时构造对象指针,并存在链表中,利用类中的成员函数来实现对链表节点的打印、添加、保存。
这些操作均作为数据结构中对单链表的操作。
3类设计
首先定义一个员工基类Employee,由于要派生出多个子类,所以将其定义为虚基类;
在类外定义全局静态变量,用于记录员工的编号。
虚基类Employee中的数据成员包括姓名、编号、等级、月薪。
虚基类的成员函数包括打印函数printf(),并声明友元类。
然后派生出经理Mansger类、销售经理Salemansger类、兼职技术人员Technology类和兼职推销员Saleman类。
在派生类Mansger的构造函数直接对月薪和等级赋值:
月薪8000,等级4;
在派生类Salemansger的构造函数中定义特有的数据成员:
销售总额sum1,并根据要求计算月薪,等级赋值3;
在派生类Technology的构造函数中定义特有的数据成员:
工作时间time,并根据要求计算月薪,等级赋值3;
在派生类Saleman的构造函数中定义特有的数据成员:
销售额sum2,并根据要求计算月薪,等级赋值1。
派生类的功能有打印函数printf(),储存函数save()。
友元类Head存放的数据成员有Linkedtop,功能有构造函数Head()、插入函数Insert()、打印函数printf()以及析构函数~Head();
其中功能构造函数用来开辟储存空间,插入函数采用单链表现实信息的输入,打印函数用来输出录入员工的全部信息,析构函数用来释放空间。
基类与各派生类之间的关系如下图所示:
图1Employee类和其派生类关系的图形表示
在程序实现过程中,各派生类的成员函数需要访问基类Employee的数据成员,利用公有继承方式派生,同时将Employee类中的数据成员的访问控制设置为保护类型。
这样,经过公有派生之后,基类的保护成员在派生类中依然是保护成员,可以被派生类的成员函数访问。
4基于控制台的应用程序
整个程序分为三部分,各种职员的类,结构体链表以及封装在结构体链表的类。
实现时先生成各种职员的对象指针,之后将生成的对象指针插入到链表中,最后通过封装类类的成员函数对链表节点进行操作,实现对员工的操作。
类的接口设计
#include<
iostream>
>
fstream>
usingnamespacestd;
staticintcount=0;
5.1.1
5.1.2C常用算法程序集.北京:
清华大学出版社,1995
[2]钱能.C++程序设计教程(第二版).北京:
清华大学出版社,2007
[3]谭浩强.C++面向对象程序设计(第三版).北京:
清华大学出版社,2005
[4]李庆扬,王能超,易大义.数值分析.湖北:
华中理工大学出版社,1986
[5]陈志泊,王春玲.面向对象的程序设计语言—C++.北京:
人民邮电出版社,2002