小型人员信息管理系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

成绩评定表学生姓名初珊珊班级学号1203060111专业通信工程课程设计题目小型人员信息管理系统的设计与实现评语组长签字:成绩日期20年月日课程设计任务书学院信息科学与工程专业通信工程学生姓名初珊珊班级学号1203060111课程设计题目小型人员信息管理系统的设计与实现实践教学要求与任务某小型公司主要有四类人员:经理、兼职技术人员、销售经理和兼职推销员。现在,需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。人员编号基数为1000,每输入一个人员信息编号顺序加1。程序要有对所有人员提升级别的功能。本例中为简单起见,所有人员的初始级别均为1级,然后进行升级,经理升为4级,兼职技术人员和销售经理升为3级,推销员认为1级。月薪计算办法是:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;兼职推销员的月薪按该推销员当月销售额的4%提成;销售经理即拿固定月薪也领取销售提成,固定月薪为5000元,销售提成为所管辖部门当月销售总额的千分之五。要求为每一类人员单独建立文件,并在每个文件中手工录入一些人员基本信息,并根据这些基本信息计算职工的月薪,并将计算结果保存入相应的磁盘文件中。要求编写程序实现上述功能,并且可以通过实例演示上述功能。工作计划与进度安排第17周:分析题目,查阅课题相关资料,进行类设计、算法设计;第18周:程序的设计、调试与实现;第19周:程序测试与分析,撰写课程设计报告,进行答辩验收。指导教师:201年月日专业负责人:201年月日学院教学副院长:201年月日摘要C++是支持面向过程的设计,更是支持基于对象和面向对象的程序设计。类是C++中十分重要的概念,它是实现面向对象程序设计的基础。本文采用虚基类及其派生类实现了对小型人员信息的管理,类的封装性和信息隐蔽性可以很好的保护公司员工的信息,同时采用了VisualC++6.0的控制台工程和MFC工程实现了对员工基本信息的输入和全部信息的输出及保存。关键词:信息管理;类;控制台工程;MFC工程目录1需求分析..............................................................................................................................12算法基本原理......................................................................................................................13类设计..................................................................................................................................24基于控制台的应用程序......................................................................................................34.1类的接口设计...............................................................................................................44.2类的实现.......................................................................................................................74.3主函数设计.................................................................................................................114.4基于控制台的应用程序测试.....................................................................................125基于MFC的应用程序........................................................................................................145.1基于MFC的应用程序设计.........................................................................................155.1.1MFC程序界面设计............................................................................................................155.1.2MFC程序代码设计..........................................................................................................165.2基于MFC的应用程序测试............................................................................................20结论........................................................................................................................................23参考文献..................................................................................................................................2411需求分析(1)对小型公司进行小型人员信息操作管理系统。该公司主要有四类人员:经理、销售经理、兼职技术人员、兼职推销员;定义一个虚基类并且派生四个子类。(2)系统需要存储这些人员的姓名、编号、级别、当月薪水,输入基本信息,计算月薪总额,显示并保存全部信息;每个派生类的构造函数要实现对其特有数据成员的初始化。(3)系统具体要求:①编号要求:人员编号基数为1000,每输入一个员工姓名编号加1;编号定义为全局静态变量即可。②级别要求:所有人员的初始级别均为1级,然后进行升级,经理升为4级,兼职技术人员和销售经理升为3级,兼职推销员为1级;直接对级别赋值即可。③月薪要求:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;兼职推销员的月薪按该推销员当月销售额的4%提成;销售经理既拿固定月薪也领取销售提成,固定月薪为5000元,销售提成为所管辖部门当月销售总额的千分之五。④总体要求:为每一类人员单独建立文件,并在每个文件中手工录入一些人员基本信息,并根据这些基本信息计算职工的月薪,并将计算结果保存入相应的磁盘文件中。2算法基本原理(1)定义一个员工虚基类Employmee(),包括员工姓名、级别、编号月薪共有的基本数据成员;(2)在基类的基础上派生出经理Mansger()类、销售经理Salemansger()类、兼职技术人员Technology()类和兼职推销员Saleman()类,并在这四个派生类中添加各自数据成员和成员函数。具体分析如下:2①员工编号的可以定义全局静态变量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();其中功能构造函数用来开辟储存空间,插入函数采用单链表现实信息的输入,打印函数用来输出录入员工的全部信息,析构函数用来释放空间。基类与各派生类之间的关系如下图所示:3charname[30];intnumber;intlevel;floatwages;Employee()voidprintf()friendclassHeadvoidsave()voidprintf()friendclassHeadintsum1Salemansger():Employee()voidsave()Technology():Employee()floattimevoidprintf()friendclassHeadvoidsave()intsum2Saleman():Employee()voidprintf()friendclassHeadvoidsave()Mansger():Employee()图1Employee类和其派生类关系的图形表示在程序实现过程中,各派生类的成员函数需要访问基类Employee的数据成员,利用公有继承方式派生,同时将Employee类中的数据成员的访问控制设置为保护类型。这样,经过公有派生之后,基类的保护成员在派生类中依然是保护成员,可以被派生类的成员函数访问。4基于控制台的应用程序整个程序分为三部分,各种职员的类,结构体链表以及封装在结构体链表的类。实现时先生成各种职员的对象指针,之后将生成的对象指针插入到链表中,最后通过封装类类的成员函数对链表节点进行操作,实现对员工的操作。44.1类的接口设计#includeiostream#includestring.h#includefstreamusingnamespacestd;staticintcount=0;//全局动态变量,用于记录员工编号//定义虚基类classEmployee{public:Employee()//构造函数,初始化员工基本信息{cout请输入员工姓名:;cinname;++count;number=count+1000;level=1;}voidprintf();//打印函数friendclassHead;//声明友元类protected://

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功