欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构课程设计报告-员工管理系统.docx

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

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

    数据结构课程设计报告-员工管理系统.docx

    数据结构课程设计课程设计报告课程名称课题名称员工管理系统专业 计算机科学与技术班级1120542学 号 19姓名 杨天骄指导教师 周晓青2022年06月24日 cin»Employee:Employeeage;新职工婚姻状况(Y为已婚,N为未婚):cin»Employee:Employeemarriage; 新职工学历,请输入相应学历的序号小学2:初中3:高中4:本科5:硕士 6:博士 while (Employee:Employeedegree !=l&&Employee:Employeedegree !=2&&Employee: :Emplo yeedegree!=3&&Employee:Employeedegree! =4&&Employee:Employeedegree! =5&&Employee:Employeedegree !=6)输入有误,请重新输入1:小学2:初中3:高中4:本科5:硕士 6:博士 cin»Employee:Employeedegree; 新职工所在部门,请输入相应部门的序号董事会2:销售部3:人事部4:客服中心5:财务部6:技术研发部7:安全监察 部cin»Employee:Employeedepart;while(Employee:Employeedepart!=1 &&Employee:Employeedepart !=2&&Employee:Employeedepart!=3&&Employee: :Employeedepart!=4&&Employee:Employeedepart!=5&&Employee: :Employeedepart !=6&&Employee: :Employeedepart !=7) 输入有误,请重新输入董事会2:销售部3:人事部4:客服中心5:财务部6:技术研发部7: 安全监察部 cin»Employee:Employeedepart; 新职工职位,请输入相应职位的序号1:暂时职工2:正式职工3:部门经理4:主任5:董事长 cin»Employee:Employeeposition;while(Employee:Employeeposition !=1 &&Employee:Employeeposition ! =2&&Employee:Employeeposition !=3&&Employee:Employeeposition ! =4&&Employee:Employeepo sition !=5) (输入有误,请重新输 入 1 : 暂时职员 2 :正式职员3:部门经理4:主任5:董事长 cin»Employee:Employeeposition; 作时长(不需要输入单位): 新职工的工cin»Employee:Employeeworktime;Employee: :Employeepay = Employee: :Pay(Employee:Employeeposition);DBOperate dbo; dbo.ReadOutO;int MaxNum = Employee: :MaxNum();EnumfMaxNum = Employee: :Employeenum;EnameMaxNum=Employee:Employeename;Esex|MaxNum二Employee:Employeesex;EageMaxNum = Employee: Employeeage; EmarriageMaxNum = Employee: :Employeemarriage;EdegreeMaxNum二Employee:Employeedegree; EdepartMaxNum= Employee: :Employeedepart; EpositionMaxNum = Employee: :Employeeposition;EworktimeMaxNum=dbo. Writeln(l);添加新成员成功!void Employee:ShowInfo()/程序主体 数据输出函数int choicel, choice2, min, max; long searchnum; Employee e;输出全体职工信息按职工部门输出按职工学历输出按职工年龄输出按职工编号输出请选择查询方式:case 1: showal1();break;请输入要查询职工的部门编号1:董事会2销售部3:人事部4: 客服中心5:财务部6:技术研发部7:安全监察部e. showdepart(choice2);break;请输入要查询职工的学历编号:1:小学2:初 3:高中4:本中科5:硕士 6:博士cin»choice2; e. showdegree (choice2) ; break;请输入要查询的年龄范围最小值cin»min;最大值e. showage(min, max);break;请输入要查询的职工编号e. shownum(searchnum);break;出错啦void Employee:showaH()/全体职工输出函数 int i;long number;for(i=0;i<Employee:MaxNum();i4-+)void Employee:showdepart(int depart) int i;switch(depart) shownum(number); 按职工所在部门输出函数董事会的成员有部的成员有人事部的成员有客服中心的成员有的成员有技术研发部的成员有安全监察部的成员有销售财务部输入错误!if(Edeparti = depart) long number shownum(number) =Enumi;else continue; void Employee:showdegree(int degree) /按职工学历输出函数 int i;switch(degree) case初中学历的员工有初中学历的员工有高中学历的员工有本科学历的员工有硕士学位的员工有博士学位的员工有for(i=0;i<Employee:MaxNum();i+4-) if(Edegreei = degree) long number = Enumi;shownum(number); else continue; )void Employee:showage(int min,int max) /按职工年龄段输出函数 int i;for(i=0;i<Employee:MaxNum();i4-+) if(Eagefi>=min&&Eagei<=max) long number =Enumi; shownum(number);else continue; void Employee:shownum(long number) 按职工编号输出函数 int i;for(i=0;i<Employee:MaxNum();i+)(if(Enumi = number)职工编号:姓名性别:女else if (Esexi=, M')男年龄:岁婚姻情况:i f (Emarr iage i =, Y')婚elseif (Emarriage i=,N')未婚switch (Edegreei)case小学学历:初中高中case本科博士case硕士所在部门:董事会人事部销售部客服中心财务部case技术研发部case安全监察部所任职务:暂时成员正式员部门经理主任董事长工作时长:小时元else continue; void Employee:RefreshInfo() 修改职工信息的函数 int eNum = 1000; DBOperate dbo; dbo.ReadOutO; void Employee:shownum(long number); 请输入您要修改的职工编号: MN 二 Employee:MaxNum();for(int i=0;iMN;i+) /遍历数据文件,查找要修改的职工数据if(Enumi = eNum) Employee:shownum(eNum);请输入该职工的新信息 职工姓名:录入职工的新的数据,职工编号保持不变ein»Employee:Employeename;Enamei= Employee:Employeename; 职 工 性 另 (F 为ein»Employee:Employeesex;Esexi= 女性,M 为男性):职工年龄Employee: Employee sex;ein»Employee: :Employeeage;Eagei = Employee: :Employeeage;职工婚姻状况(Y 为已婚,N 为未婚):ein»Employee:Employeemarriage;Emarriagei = Employee:Employeemarriage;职工学历,请输入相应学历的序号1:小学2:初中3:高中4:本科5:硕士 6: 博士 ein»Employee:Employeedegree;while(Employee:Employeedegree !=l&&Employee:Employeedegree !=2&&Employee: :Employ eedegree!=3&&Employee: :Employeedegree! =4&&Employee: :Employeedegree! =5&&Employee:Employeedegree !=6)输入有误,请重新输入1:小学 2:初中 3:高中 4:本科 5:硕士 6:博士 ein»Employee:Employeedegree; Edegreei = Employee:Employeedegree; 职工所在部门,请输入相应部门的序号 董事会2:销售部3:人事部4:客服中心5:财务部6:技术研发部7:安全 监察部ein»Employee:Employeedepart;while(Employee:Employeedepart !=1 &&Employee:Employeedepart !=2&&Employee: :Employ eedepart !=3&&Employee二Employeedepart !=4&&Empk)yee:Employeedepart!=5&&Employee:Employeedepart!=6&&Employee:Employeedepart!=7) 输入有误,请重新输入董事会2:销售部3:人事部4:客服中心5:财务部6:技术研发 部7:安全监察部cin»Employee: :Employeedepart; Edeparti = Employee:Employeedepart;职工职位,请输入相应职位的序号暂时职员2:正式职员3:部门经理4:主任5:董事长 cin»Employee:Employeeposition;while(Employee:Employeeposition !=1 &&Employee:Employeeposition !=2&&Emplo yee:Employeeposition! =3&&Employee: :Employeeposition!=4&&Employee:Employeeposition !=5)输入有误,请重新输入 暂时职员2:正式职员3:部门经理4:主任5:董事 长 cin»Employee:Employeeposition; Epositioni = Employee:Employeeposition;员工的工作时(不需要输入单位): cin»Employee:Employeeworktime;Eworktimei = Employee:Employeeworktime; Epayi=Employee:Pay(Employee:Employeeposition); break; dbo.Writeln(O); void Employee:DeleteInfo() /删除职工数据的函数char tmp;int eNum = 1000; DBOperate dbo; dbo.ReadOut();void Employee:shownum(long number);请输入您要删除的职工编号:MN 二 Employee:MaxNum();for(int i=0;i<MN;i+) 遍历数据文件,查找要删除的职工 if(Enumi = eNum)Employee: shownum (eNum); 确认要删除该职工信息?(Y为确认,N为抛却): if(tmp='Y') if(i=MN-l) dbo.Writeln(-l); else for(int j=i;j<MNT;j+) Enumj= Enumj+1; dbo. Writein (T) ;删除操作成功float Employee:Pay(int Employeeposition) 根据职工职位计算工资的函数 float tmpPay;tmpPay = Employee: :EmployeeBasePay + Employee: :Employeeposition *Employee: :EmployeeBasePay;return tmpPay;)void DBOperate:Writeln(int iflag) /数据操作函数-写入 DBOperate:RefreshMaxNum(iflag);ofstreamEmployee e; int MN;MN = e.MaxNum(); for(int i=0;i<MN;i+)(myf«Enumi«, ,«Enamei«, ,«Esexi«,«Eagei«, ,«Emarriagei«" ,«Edegreei«' '«Edeparti«* ,«Epositioni«, ,«Eworktimei <<n«Epayi«,) myf.closeO; return;)void DBOperate:ReadOut() 数据操作函数-读出MN = e.MaxNum(); for(int i=0 i<MN;i+)(myf»DBOperate: :Employeenum»DBOperate: :Employeename»DBOperate: :Employeese x»DBOperate:Employeeage»DBOperate:Employeemarriage»DBOperate:Employeedegree»DBOperate:Employeedepart»DBOperate:Employeepos ition»DBOperate:Employeeworktime»DBOperate:Employeepay;Enumi= DBOperate:EmpIoyeenum;Enamei=DBOperate:Employeename;Esexi= DBOperate:Employeesex;Eagei=DBOperate: :Employeeage;Emarriagei = DBOperate: :Employeemarriage;Edegreei=DBOperate: :Employeedegree;Edeparti = DBOperate: :EmpIoyeedepart;Epositioni = DBOperate:Employeeposition;Eworktimeli = DBOperate:Employeeworktime;Epayi=DBOperate:Employeepay;)myf.closeO;)void DBOperate:RefreshMaxNum(int iflag) 更新系统中员工计数文件的函数int MaxNum = 0;MaxNum = MaxNum+iflag;)int main。主函数二灰色 1二蓝色二浅绿色 B二淡浅绿色 紫色 6二黄色设置当前窗口的背景色和前景色9二淡蓝色/ 4=红色二淡黄色/ 2二绿色C二淡红色 7 二白色FA 二/。二淡 绿色5二 紫色黑色 8二亮白色/3D =淡int select = 0; while (select!=5)卜1.2.3.4.5.主菜单T新建并录入职工信息按条件输出职工信息修改指定职工的信息删除职工信息退出系统请选择您需要功能的代号Employee e;DBOperate dbo;switch(select)(case 1:e.NewInfo(); break;case 2:dbo.ReadOut(); e.ShowInfo(); break; e.RefreshInfo(); break;e. Deleteinfo () ; break; case 3:退出成功 case 4:命令错误!if(select = 5) break;exit(l); return 0;目录目录21 .需求分析32 .概要设计32.1 系统的功能分析33 .详细设计44 .测试分析5在调试过程中浮现的一些错误:55 .使用说明66 .测试结果77 .附录8课程设计题目:员工管理系统1需求分析每一个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系 统能够完成员工信息的查询、更新、插入、删除、排序等功能。功能要求:(1)排序:按不同关键字,对所有员工的信息进行排序。(2)查询:按特定条件查找员工。(3)更新:按编号对某个员工的某项信息进行修改。(4)插入:加入新员工的信息。(5)删除:按编号删除已离职的员工的信息。2 .概要设计2.1 系统的功能分析1、基本要求:(1) 要求利用数据结构的编程思路来完成系统的设计。(2) 在系统的设计中,要求运用数据结构的知识来实现系统功能,并且要建立清 晰的类层次关系。(3) 主函数中提供菜单选项,并给出足够的选择信息以及提示信息。(4) 程序具有一定的茁壮性,不会因为用户的输入错误引起程序运行错误而中断执行。对输入值的类型、大小范围、字符串的长度等,进行正确性检查,对不合 法的输入值给出出错信息,指出错误类型,等待重新输入。2、创新要求在基本要求达到后,可根据实际情况进行创新设计,如根据查找结果进行修改的功能及设计出比较友好的界面等。.2.2概要设计1、输入功能的实现:要想实现职工管理系统的输入,必须要建立一个 职工信息系统的抽象数据类型,其中职工信息以链表的存储方式实现。 由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。2、系统处理功能的实现:系统管理员根据公司的人员流动情况,在提 示信息的提示下,选择相应的服务进行操作。如对职工对象中的姓名按 字典顺序进行排序;对排序后的职工对象进行增、册!I、查询、修改、排序 等操作。3、输出的实现:根据选择的操作,输出与之对应的信息。4、系统功能结构根据职工管理系统问题的分析和设计要求,可以得到该职工管理系 统可以分为五个模块:职工信息添加模块、职工信息修改模块、职工信 息删除模块、职工信息查询模块、职工信息排序模块。5、模块函数构造根据系统功能结构图的描述,可以构造出该系统的抽象数据类型和 相对应的函数3 .详细设计3 . 1抽象数据类型定义定义表结点(typedef struct Node)4 .2主函数设计(1)根据详细设计要求,在主函数中,实现了友好的界面设计。系统需要输入职工 的基本信息:编号、姓名、性别、出生年月、学历、职务、电话、住址等。这个系统还利用键盘 输入提供的主菜单服务,在主菜单中,有五种操作的调用:新增职工信息 查询职工 信息删除职工信息 修改职工信息 职工信息排序3 . 3查找算法设计在查询算法中,职工管理系统提供了五种查询操作,实现了系统的人性化查询操 作。这些查询操作分别为:对姓名进行查询,对性别进行查询,对出生年月进行查询,对电话进行查询,对学 历进行查询,对职务进行查询,对住址进行查询等一些列操作。查找算法中,利用链 表的指针的挪移扫描整个职工信息表,利用函数判断字符串是否匹配。4 .测试分析在调试过程中浮现的一些错误:在查询信息和统计信息的调试中,可以显示结果,但由于程序编写还不够完美, 结果只能停留几秒钟,无法进行剪切。还需进一步得对系统进行修改。5 .使用说明进入职工管理系统,首先看到的就是欢迎界面,然后提示:请输入要录入的职工 数,输入完数字后,就提示:按次序挨次输入职工的姓名、性别、出生年月、工作年 月、学历、职务、电话的信息(注意是挨次输入,中间可以用空格,tab,回车做切换输 入),输完信息后自动回到主界面,根据提示:0.结束管理系统L新增职工信息2.删 除职工信息3.查询职工信息4.修改职工信息5.职工信息排序 输入相应操作的数字如0,退出简单职工管理系统;如1,提示挨次输入职工信息,录入完毕自动返回主界 面;如2,提示输入删除的姓名,成功正确返回,错误有提示无此员工信息;如3,会提 示查询方式:0.退出查询系统,回到主菜单1.对姓名进行查询2.对出生年月进行查询 3.对学历进行 查询;如4,提示输入修改职工姓名,然后进行挨次修改职工所有信息; 如5,提示:0.退出排序系统,回到主菜单1.对性别进行排序2.对出生年月进行 排序 3.对姓名进行排序,输入号码进行查询。主菜单息息息信JJJ/XI:言士百工工初彳职职工息入出卷Pvess any kev to土 nLiqEJL一二宙出出出TH职nl-一力龄号全工工工工UJJLJ.JJItef12345请技择杏式:Ffbbs a11Al 如,to continue7 .附录#include<iostream> #include<string> #include<fstream> using namespace std; const N=5000; 定义系统可录入的职工最大数值string EnameN; long EnumN; char EsexN; int EageN;char EmarriageN; int EdepartN; int EpositionN; int EdegreeN; intEworktimeN; float EpayN;class Employee public:string Employeename; long Employeenum; char Employeesex; int Employeeage;char Employeemarriage; int Employeedepart; int Employeeposition; int Employeedegree; int Employeeworktime; float Employeepay;static long EmployeeMaxNum; static float EmployeeBasePay;void NewInfoO; void ShowInfoO; void showall();void showdepart(int depart); void showdegree(int degree); voidshowage(int min,int max); void shownum(long number); void Refreshlnfo(); #include<iostream>#include<string> #include<fstream> using namespace std; const N=5000; 定义系统可录入的职工最大数值string EnameN; long EnumN; char EsexN; int EageN;char EmarriageN; int EdepartN; int EpositionN; int EdegreeN; intEworktimeN; float Epay|N;class Employee public:string Employeename; long Employeenum; char Employeesex; int Employeeage;char Employeemarriage; int Employeedepart; int Employeeposition; int Employeedegree; int Employeeworktime; float Employeepay;static long EmployeeMaxNum; static float EmployeeBasePay;void Newlnfo(); void Showlnfo(); void showall();void showdepart(int depart); void showdegree(int degree); void showagc(int min,int max); void shownum(long number); void Rcfrcshlnfo();myf.close(); return MN; void Employee:NewInfo()/添加新职工函数新职工姓名 cin»Employee:Employeename; Employee:Employeenum = Emp 1 oyeeMaxNum + Employee: MaxNum () +1;新职工性别(F为女性,M为男性):新职工年龄

    注意事项

    本文(数据结构课程设计报告-员工管理系统.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开