欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    小型人员信息管理系统.docx

    • 资源ID:1907180       资源大小:227.53KB        全文页数:26页
    • 资源格式: DOCX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    小型人员信息管理系统.docx

    成 绩 评 定 表学生姓名初珊珊班级学号1203060111专 业通信工程课程设计题目小型人员信息管理系统的设计与实现评语组长签字:成绩日期 20 年 月 日课程设计任务书学 院信息科学与工程专 业通信工程学生姓名初珊珊班级学号1203060111课程设计题目小型人员信息管理系统的设计与实现实践教学要求与任务某小型公司主要有四类人员:经理、兼职技术人员、销售经理和兼职推销员。现在,需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。人员编号基数为1000,每输入一个人员信息编号顺序加1。程序要有对所有人员提升级别的功能。本例中为简单起见,所有人员的初始级别均为1级,然后进行升级,经理升为4级,兼职技术人员和销售经理升为3级,推销员认为1级。月薪计算办法是:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;兼职推销员的月薪按该推销员当月销售额的4提成;销售经理即拿固定月薪也领取销售提成,固定月薪为5000元,销售提成为所管辖部门当月销售总额的千分之五。要求为每一类人员单独建立文件,并在每个文件中手工录入一些人员基本信息,并根据这些基本信息计算职工的月薪,并将计算结果保存入相应的磁盘文件中。要求编写程序实现上述功能,并且可以通过实例演示上述功能。工作计划与进度安排第17周:分析题目,查阅课题相关资料,进行类设计、算法设计;第一八周:程序的设计、调试与实现;第19周:程序测试与分析,撰写课程设计报告,进行答辩验收。指导教师: 201 年 月 日专业负责人:201 年 月 日学院教学副院长:201 年 月 日摘 要是支持面向过程的设计,更是支持基于对象和面向对象的程序设计。类是中十分重要的概念,它是实现面向对象程序设计的基础。本文采用虚基类及其派生类实现了对小型人员信息的管理,类的封装性和信息隐蔽性可以很好的保护公司员工的信息,同时采用了 6.0的控制台工程和工程实现了对员工基本信息的输入和全部信息的输出及保存。关键词:信息管理;类;控制台工程;工程目 录1 需求分析(1)对小型公司进行小型人员信息操作管理系统。该公司主要有四类人员:经理、销售经理、兼职技术人员、兼职推销员;定义一个虚基类并且派生四个子类。(2)系统需要存储这些人员的姓名、编号、级别、当月薪水,输入基本信息,计算月薪总额,显示并保存全部信息;每个派生类的构造函数要实现对其特有数据成员的初始化。(3)系统具体要求:编号要求:人员编号基数为1000,每输入一个员工姓名编号加1;编号定义为全局静态变量即可。级别要求:所有人员的初始级别均为1级,然后进行升级,经理升为4级,兼职技术人员和销售经理升为3级,兼职推销员为1级;直接对级别赋值即可。月薪要求:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;兼职推销员的月薪按该推销员当月销售额的4提成;销售经理既拿固定月薪也领取销售提成,固定月薪为5000元,销售提成为所管辖部门当月销售总额的千分之五。总体要求:为每一类人员单独建立文件,并在每个文件中手工录入一些人员基本信息,并根据这些基本信息计算职工的月薪,并将计算结果保存入相应的磁盘文件中。2 算法基本原理(1)定义一个员工虚基类( ),包括员工姓名、级别、编号月薪共有的基本数据成员;(2)在基类的基础上派生出经理( )类、销售经理( )类、兼职技术人员( )类和兼职推销员( )类,并在这四个派生类中添加各自数据成员和成员函数。具体分析如下:员工编号的可以定义全局静态变量 0;并且初始化员工编号1000;每输入一个员工的姓名编号加1。员工等级按照要求直接赋值即可;在派生类的构造函数中初始化数据成员并且按照要求计算各成员的月薪。(3)定义一个结构体链表 ,并将链表的头指针头封装在友元类( )中。(4)运行时构造对象指针,并存在链表中,利用类中的成员函数来实现对链表节点的打印、添加、保存。这些操作均作为数据结构中对单链表的操作。3 类设计首先定义一个员工基类,由于要派生出多个子类,所以将其定义为虚基类;在类外定义全局静态变量,用于记录员工的编号。虚基类中的数据成员包括姓名、编号、等级、月薪。虚基类的成员函数包括打印函数 ( ),并声明友元类。然后派生出经理类、销售经理类、兼职技术人员类和兼职推销员类。在派生类的构造函数直接对月薪和等级赋值:月薪8000,等级4;在派生类的构造函数中定义特有的数据成员:销售总额1,并根据要求计算月薪,等级赋值3;在派生类的构造函数中定义特有的数据成员:工作时间,并根据要求计算月薪,等级赋值3;在派生类的构造函数中定义特有的数据成员:销售额2,并根据要求计算月薪,等级赋值1。派生类的功能有打印函数 ( ),储存函数( )。友元类存放的数据成员有 ,功能有构造函数( )、插入函数( )、打印函数( )以及析构函数( );其中功能构造函数用来开辟储存空间,插入函数采用单链表现实信息的输入,打印函数用来输出录入员工的全部信息,析构函数用来释放空间。基类与各派生类之间的关系如下图所示: 30; ; ; ;() () () () 1()() ()()() () () 2()() () ()()() 图1 类和其派生类关系的图形表示在程序实现过程中,各派生类的成员函数需要访问基类的数据成员,利用公有继承方式派生,同时将类中的数据成员的访问控制设置为保护类型。这样,经过公有派生之后,基类的保护成员在派生类中依然是保护成员,可以被派生类的成员函数访问。4 基于控制台的应用程序整个程序分为三部分,各种职员的类,结构体链表以及封装在结构体链表的类。实现时先生成各种职员的对象指针,之后将生成的对象指针插入到链表中,最后通过封装类类的成员函数对链表节点进行操作,实现对员工的操作。4.1 类的接口设计<><><> ; 0; 全局动态变量,用于记录员工编号定义虚基类 : () 构造函数,初始化员工基本信息 <<"请输入员工姓名:" >> ; 1000; 1; (); 打印函数 ; 声明友元类: 数据成员为保护类型 30; ; ; ;派生类 : : ()()48000; 构造函数定义 (); 储存函数 (); 打印函数 ; 声明友元类; 派生类 : : ()() 构造函数定义 3; <<"输入月部门销售总额:" >>1; 5000+0.005*1; 计算销售经理工资 (); 储存函数 (); 打印函数 ;: 1; 销售总额;派生类 : : ()() 构造函数定义 3; <<"输入该技术人员的工作时间:" >> 100*; 计算技术人员工资 (); 储存函数 (); 打印函数 ;: ; 工作时间;派生类 : /: ()() 构造函数定义 1; <<"输入部门月销售总额:" >>2; 0.04*2; 计算销售员工资 (); 储存函数 (); ;: 2; 销售总额;定义友元类 : (); 构造函数 (*); 单链表的插入函数 (); 打印函数 (); 析构函数: *; 单链表的头结点;经过公有派生,四个派生类获得了除构造函数之外的类的全部成员,由于基类的成员是公有和保护类型,因此在派生类中的成员函数中,基类继承来的成员全部可以访问,而对于建立派生类对象的外部模块来讲,基类的保护成员是无法访问的。通过保护访问类型和公有的继承方式,实现了基类的数据的有效共享和可靠保护。友元类可以实现外部函数对类中数据成员的调用,在程序中,员工的基本信息的输入,全部信息的保存都是在基类、派生类的构造函数以及友元类的成员函数中完成,它们的清理工作在友元类析构函数中完成。4.2 类的实现基类输出函数 () <<"姓名:"<<<<" "<<"编号:"<<<<" "<<"等级:"<<<<" "<<"月薪:"<<<<派生类输出函数 () <<"姓名:"<<<<" "<<"编号:"<<<<" "<<"等级:"<<<<" "<<"月薪:"<<<<派生类储存函数 () ("f:"); <<"姓名:"<<<<" "<<"编号:"<<<<" "<<"等级:"<<<<" "<<"月薪:"<<<< <<" "<< 派生类输出函数 () <<"姓名:"<<<<" "<<"编号:"<<<<" "<<"等级:"<<<<" "<<"月薪:"<<<<派生类储存函数 () ("f:"); <<"姓名:"<<<<" "<<"编号:"<<<<" "<<"等级:"<<<<" "<<"月薪:"<<<< <<" "<< 派生类输出函数 () <<"姓名:"<<<<" "<<"编号:"<<<<" "<<"等级:"<<<<" "<<"月薪:"<<<<派生类储存函数 () ("f:"); <<"姓名:"<<<<" "<<"编号:"<<<<" "<<"等级:"<<<<" "<<"月薪:"<<<< <<" "<< 派生类输出函数 () <<"姓名:"<<<<" "<<"编号:"<<<<" "<<"等级:"<<<<" "<<"月薪:"<<<<派生类:储存函数 () ("f:"); <<"姓名:"<<<<" "<<"编号:"<<<<" "<<"等级:"<<<<" "<<"月薪:"<<<< <<" "<<友元类的实现() 友元类的构造函数实现初始化链表 ( )(-1); > (*) 链表的插入函数*; (>) 链表的头结点的下个结点不为空时,开辟空间> > ; >> >>0;链表的输出函数 () *> ()>>(); 插入打印函数>链表的析构函数() *,*q;>() ;> q; 释放空间菜单函数 (*) n;<<"请输入1、打印 0、退出:">>n;(n) 多分支选择语句 1: >(); 输出链表节点 ; 0: ;<<"是否继续?如果继续请按1,退出请按0:">>n;(0)(); 递归调用菜单函数1 1(*) *M; 声明类指针*S;*T;*S1; n;<<"请输入1、经理 2、销售经理 3、技术人员 4、销售员 0、退出:">>n;(n) 1: ; 构造对象指针>(); 储存对象数据>(M); 将对象指针插入到链表中; 2: ; 构造对象指针>(); 储存对象数据>(S); 将对象指针插入到链表中; 3: ; 构造对象指针>(); 储存对象数据>(T); 将对象指针插入到链表中; 4:S1 ; 构造对象指针S1->(); 储存对象数据>(S1); 将对象指针插入到链表中; 0:;<<"是否继续?如果继续请按1,退出请按0:">>n;(0)1(); 递归调用 在类的成员函数实现过程中,派生类的成员函数调用了基类的构造函数,只是整个调用过程中完全是由系统内部完成。基类的保护数据成员,经过公有派生之后,在派生类中是以保护成员的身份出现的,派生类的成员函数可以自由地进行访问。通过定义友元类访问类内的保护成员,并通过单链表法开辟输入空间以便插入员工的信息。最后通过友元类的析构函数释放空间。4.3 主函数设计主函数 () ; 构造对象 n;(1) <<"请输入:1、输入 2、打印 0、退出:">>n;(n) 多分支语句进行菜单的选择 1:1(); ; 2:(); 0:("");("");在程序的主函数部分,定义一个构造对象以便实现调用。多分支选择语句可以选择菜单从而实现输入、打印操作。4.4 基于控制台的应用程序测试程序运行结果如图2-1和2-2所示。 图2-1 程序运行结果1图2-2 程序运行结果2为每类员工保存的文件夹如图3-1所示的、:图3-1存盘文件夹为经理建立的文件夹打开后如图3-2所示: 图3-2显示经理文件夹为销售经理建立的文件夹打开后如图3-3所示: 图3-3显示销售经理文件夹 为兼职技术人员建立的文件夹打开后如图3-4所示:图3-4显示兼职技术人员文件夹为兼职推销员建立的文件夹打开后如图3-5所示:图3-5显示兼职推销员文件夹从图2-1到3-5可以看出,在界面通过对菜单的选择可以输入和打印员工的信息。经理只需要输入姓名,销售经理要输入姓名和当月的部门的销售总额,兼职技术人员要输入姓名和工作时间,兼职推销员要输入姓名和月销售额,然后选择打印菜单即可输出各类人员的全部信息,而这些信息已经通过程序的文件输出流以的格式保存在了电脑磁盘F:梁庶芹文件夹中。打开后便可显示各类员工的全部信息。5 基于的应用程序是通过窗口和控件实现输入输出,设置界面也很重要,界面的美观程度直接影响了程序设计的好坏。下面在类的框架下加入上述类并实现人员的信息管理,通过图形界面的输入和输出。5.1 基于的应用程序设计5.1.1 程序界面设计首先在中建立 ()工程,名称为,并在向导的1中选择 ,即建立基于对话框的应用程序,如下图41和4-2所示。图4-1 建立 ()工程图4-2 建立基于对话框的应用程序将对话框资源中的默认对话框利用工具箱改造成如下界面,如图4-3所示。图4-3显示员工信息程序界面设计图4-3所示的界面中包含了5个 ,7个 控件,5个控件,和一五个 控件,控件的基本信息列表如下表1所示。表1 控件基本信息控件类别控件控件说明 职位见图6 姓名 级别 月薪 存盘 经理见图6销售经理技术人员推销员销售总额工作时间销售额 1 提交见图6 2 3 4 5 姓名栏第一个 姓名栏第二个姓名栏第三个姓名栏第四个 1级别栏第一个 2级别栏第二个 3级别栏第三个 4级别栏第四个1月薪栏第一个1月薪栏第二个1月薪栏第三个1月薪栏第四个 销售总额右边工作时间右边销售额右边5.1.2 程序代码设计为了能够将对话框界面上的控件能够与代码联系起来,需要为一五个 控件建立 ,按键进入 界面,选择 选项卡,可显示成员变量设置界面,如图4-4所示。图4-4成员变量设置界面1通过该界面设置与一五个 控件对应的成员变量,具体与请详见图4-4编写代码也是非常重要的阶段,可以借鉴在设计基于界面的控制台应用程序的代码,并将其作必要的改写,具体改写如下。各员工的姓名直接在界面的姓名档中输入,等级和月薪直接赋值即可。修改内容包括:l 将显示员工信息的( )函数去掉,因为在图形界面的程序上已经不需要连个函数承担输出功能了;l 将存盘函数( )去掉直接在界面的存盘档位每类员工建立文件夹并保存,仍然使用文件输出流;l 菜单函数也不再需要,直接通过对按钮的选择进行输入输出和存盘操作。具体代码如下:为提交键编写的程序,用来实现信息的输出: 1( ) ();() 为经理的等级和月薪赋值 1=4;1=8000;() 为销售经理的等级和月薪赋值 2=3;2=50002*0.005;() 为兼职技术人员的等级和月薪赋值 3=3;3*100;() 为兼职推销员的等级和月薪赋值 4=1;41*0.04;();为经理建立文件夹,将其信息保存在磁盘中 2() ("f:"); <<"姓名:"<<<<" "<<"等级:"<<1<<" "<<"月薪:"<<1<<为销售经理建立文件夹,将其信息保存在磁盘中 3() ("f:"); <<"姓名:"<<<<" "<<"等级:"<<2<<" "<<"月薪:"<<2<<为兼职技术人员建立文件夹,将其信息保存在磁盘中 4() ("f:"); <<"姓名:"<<<<" "<<"等级:"<<3<<" "<<"月薪:"<<3<<为兼职推销员建立文件夹,将其信息保存在磁盘中 5() ("f:"); <<"姓名:"<<<<" "<<"等级:"<<4<<" "<<"月薪:"<<4<<5.2基于的应用程序测试运行程序后,首先出现的界面如图5-1所示。图5-1程序初始运行界面单击读入数据按钮。结果如图5-2所示。图5-2 显示初始信息的界面单击输出结果按钮。结果如图5-3所示。图5-3 显示输出信息的界面

    注意事项

    本文(小型人员信息管理系统.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开