您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 高等院校人员标准管理系统
中华人民共和国农业大学面向对象程序设计课程设计报告(/第二学期)高等院校人员管理系统专业计算机学生姓名张三班级学号指导教师康丽指导单位计算机工程系日期6月1.系统设计内容和规定本系统要完毕一种高等院校人员信息管理系统,可以实现学校中各类人员信息录入、查询、修改、删除、记录、保存、显示等操作。假设高校中有三类人员:授课教师、行政人员、行政人员兼职教师(既上课又完毕行政人员工作)。2.需求分析系统详细实现功能如下:1)从文献中加载员工信息:系统可以实现把存储在文献person.txt中学校人员基本信息加载到系统中,可以避免数据重复录入。2)增长学校员工信息:系统可以实现键盘录入新员工信息,员工信息涉及员工编号、类型、姓名、性别、年龄、政治面貌、学历、工资等。如果当前学校无员工,则直接录入员工信息;如果有员工,则自动生成新员工编号(增长1)。学校人员分为授课教师、行政人员、行政人员兼职教师三类,各类员工工资计算办法如下:授课教师工资=基本工资+学时费(30*学时数)行政人员工资=基本工资+行政补贴行政人员兼职教师工资=基本工资+行政补贴+学时费(20*学时数)3)查询学校员工信息:系统可以实现按“编号”或“姓名”查询员工,并输出有关信息。4)修改学校员工信息:系统可以实现对录入员工信息重新进行编辑、修改,分别修改员工姓名、性别、年龄、政治面貌、学历和工资信息。5)删除学校员工信息:系统可以实现当员工离开学校时删除有关信息。6)记录学校员工信息:系统可以记录学校中党员人数和女员工人数。7)学校员工信息存盘:系统可以实现把员工基本信息存储到磁盘文献person.txt中,以便顾客后来读取数据,避免重复录入。8)显示所有员工信息:系统可以输出学校所有员工信息,涉及员工编号、姓名、性别、年龄、政治面貌、学历、工资、人员类型等。9)系统界面采用文本菜单方式,交互性好,系统界面如图1所示:3.概要设计系统数据存盘文献person.txt格式如下:编号姓名性别年龄政治面貌学历工资员工类型100010011002张莉白飞孟丹女32女28男40党员群众党员博士7500123研究生2500博士10500其中员工类型为1表达授课教师,2表达行政人员,3表达行政人员兼职教师(1)类定义系统使用类来组织管理数据,共涉及五个类,分别是学校类school、员工类person、任课教师类teacher、行政人员类staff、行政人员兼职教师类staffteacher。员工类person用来描述学校内各类人员具备公共属性及操作,由于学校里授课教师、行政人员、行政人员兼职教师这三类人员工资计算办法不同,体现出多态性,因而以person类为基类,分别派生出授课教师类teacher、行政人员类staff,再以teacher类和staff类为基类,派生出行政人员兼职教师类staffteacher。由于学校里人员总数容许变动、不拟定,因而学校类school采用链表保存所有人员信息,并用共同办法操作所有人员,类school与类person之间是类聚合关系,上述类关系用UML标记如图2所示:授课教师类teacher行政人员类staff学校类school员工类person行政人员兼职教师类staffteacher图2高等院校人员管理系统类关系UML图员工类person。类属性涉及编号(no)、姓名(name)、性别(sex)、年龄(age)、政治面貌(party)、学历(study)、工资(pay)、员工类型(type)、指向下一种员工指针(mynext),实现对员工类描述。成员函数涉及提取员工编号(getnum)、提取姓名(getname)、提取性别(getsex)、提取年龄(getage)、设立年龄(getagee)、提取政治面貌(getparty)、提取学历(getstudy)、提取员工类型(gettype)、提取工资(getpay)、设立工资(getpayy)、提取指向下一种员工指针(getnext)、设立指向下一种员工指针(setnext)、输出员工信息(output)等。授课教师类teacher。类属性涉及职称(teachpos)、每小时学时费(coursefee)、学时数(coursenum)。成员函数涉及提取工资(getpay)。行政人员类staff。类属性涉及职务级别(pos)、行政补贴(stafffee)。成员函数涉及提取工资(getpay)。行政人员兼职教师类staffteacher。成员函数涉及提取工资(getpay)。学校类school。类属性涉及指向学校中第一位员工指针(myfirst)。成员函数涉及从文献中加载员工信息(load)、增长员工信息(add、input、insert)、按编号查询员工信息(findnum)、按姓名查询员工信息(findname)、修改员工信息(modify)、删除员工信息(deleteperson)、记录员工信息(count)、员工信息存盘(save)、显示学校所有员工信息(showall)等。在基于UML可视化建模工具RationalRose中高等院校人员管理系统各类关系UML图形标记如图3所示:(2)系统重要功能模块流程图1)主函数main流程图(见图4)图4主函数main流程图依照输入执行不同操作显示系统操作菜单创立学校对象开始加载员工信息增长员工信息查询员工信息修改员工信息删除员工信息记录员工信息员工信息存盘显示员工信息退出系统2)从文献中加载员工信息school::load流程图(见图5)3)增长员工信息school::add、school::input、school::insert流程图(见图6)4)按编号或姓名查询员工信息school::findnum、school::findname流程图(见图7)5)修改员工信息school::modify流程图(见图8)6)删除员工信息school::deleteperson流程图(见图9)7)记录员工信息school::count流程图(见图10)8)员工信息存盘school::save流程图(见图11)开始开始打开学校员工数据文献person.txtY学校当前与否有员工?(add)N文献读取失败或文献结束N读取一条员工记录Y员工编号自动加1键盘输入新员工编号键盘输入新员工基本信息(类型、姓名、N依照员工类型调用相应派生类成员函数文献未读到尾Y学校员工链表中加入新结点学校员工链表中加入新创立员工结点(insert)关闭文献结束图6增长员工信息流程图结束图5从文献中加载员工信息流程图开始开始输入待修改员工编号N学校与否有员工N输入待查员工编号和姓名学校与否有员工Y遍历学校员工链表Y遍历学校员工链表N有待修改员工吗N与否有待查员工Y输出此员工信息output输出无此员工Y修改此员工信息(姓名、性别、输出无此员工……图8修改员工信息流程图……图7按编号或姓名查询员工信息流程图有待删除员工吗N输出学校中党员输出学校中女员N学校与否有员工Y遍历学校员工链表1输入记录选项2开始开始输入待删除员工编号记录计数器初始化amount=0遍历学校员工链表遍历学校员工链表Y删除链表中此员工结点并输出无此员工……图10记录员工信息流程图……图9删除员工信息流程图遍历学校员工链表,将人员结点关闭文献开始打开学校员工数据文献person.txt结束图11员工信息存盘流程图(3)详细设计整个程序包括5个文献:school.h、school.cpp是学校类类定义文献和类实现文献;person.h、person.cpp是员工类及其派生类类定义文献和类实现文献;main.cpp是主函数文献。1)员工类person定义(person.h)#includeiostream#includestring#includefstream//包括文献流对象文献#includeiomanipusingnamespacestd;classperson//员工类定义{protected:intno;//编号charname[20];//姓名charsex[10];//性别intage;//年龄charparty[20];//政治面貌charstudy[30];//学历floatpay;//工资inttype;//员工类型,1:授课教师2:行政人员3:表达行政人员兼职教师person*mynext;//指向下一种员工指针public:person();//员工类无参构造函数定义person(intpnum,charpname[],charpsex[],intpage,charpparty[],charpstudy[],floatppay,intntype);//员工类有参构造函数定义person(intpnum,charpname[],charpsex[],intpage,charpparty[],charpstudy[],floatppay,intntype,person*next);//员工类有参构造函数定义intgetnum();//提取员工编号函数定义char*getname();//提取员工姓名函数定义char*getsex();//提取员工性别函数定义intgetage();//提取员工年龄函数定义voidgetagee(intas);//设立员工年龄函数定义char*getparty();//提取员工政治面貌函数定义char*getstudy();//提取员工学历函数定义virtualfloatgetpay();//计算员工工资函数定义voidgetpayy(floattemp);//设立员工工资函数定义intgettype();//提取员工类型函数定义person*getnext();//提取指向下一种员工指针函数定义voidsetnext(person*next);//设立指向下一种员工指针函数定义voidoutput();//输出员工信息函数定义};2)员工类person实现(person.cpp)#includeperson.hperson::person()//员工类无参构造函数{no=0;strcpy(name,);strcpy(sex,);age=0;strcpy(party,);strcpy(study,);pay=0.0;type=0;mynext=NULL;}person::person(intpnum,charpname[],charpsex[],intpage,charpparty[],charpstudy[],floatppay,intptype)//员工类有参构造函数{no=pnum;strcpy(name,pname);strcpy(sex,psex);age=page;strcpy(party,pparty);strcpy(study,pstudy);pay=ppay;type=ptype;mynext=NULL;}person::person(intpnum,charpname[],charpsex[],intpage,charpparty[],charpstudy[],floatppay,intptype,person*next)//员工类有参构造函数{no=pnum;strcpy(name,pname);strcpy(sex,psex);age=page;strcpy(party,pparty);strcpy(study,pstudy);pay=ppay;type=ptype;mynext=next;}intperson::getnum(){returnno;}char*person::getname(){returnname;}char*person::getsex(){returnsex;}char*person::getparty(){returnparty;}char*person::getstudy(){returnstudy;}intperson::getage(){returnage;}voidperson::geta
本文标题:高等院校人员标准管理系统
链接地址:https://www.777doc.com/doc-8767287 .html