您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 长春大学课程设计――面向对象程序设计(人事管理系统)
长春大学课程设计纸共22页第1页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊目录一、设计目的…………………………………………………………………2二、功能介绍…………………………………………………………………2三、程序流程…………………………………………………………………3四、设计步骤(不用加过多代码)…………………………………………4五、设计总结…………………………………………………………………9六、程序清单…………………………………………………………………9七、参考文献…………………………………………………………………22长春大学课程设计纸共22页第2页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊一、设计目的(1)只能使用C++语言,源程序要有适当的注释,使程序容易阅读(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)学生可自动增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档(5)用文件进行管理二、功能介绍(1)数据录入功能(2)查询功能:分为姓名查询和应缴税款查询两种(3)统计功能:输入一个部门,统计该部门的人员应缴税款总和并显示数据。(4)排序功能:能实现选择按月薪升序或降序排序并显示数据。长春大学课程设计纸共22页第3页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊三、程序流程开始(J/T)进入系统J新增显示查找退出修改删除结束T新建追加按编号查按姓名查按年龄查按职位查按编号按姓名逐个删除全部删除长春大学课程设计纸共22页第4页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊四、设计步骤1.登陆界面设计登录界面如图1所示:图1登录界面在登录界面中,实现进入系统和退出系统功能。算法描述:用jiemian1()函数判断用户输入的字符,如果是“j”或“J”字符,则进入人事管理系统,如果是“t”或“T”字符,则退出人事管理系统,如果是其他字符则提示错误并请求重新输入。2.添加模块设计添加模块界面如图2所示:图2添加模块界面长春大学课程设计纸共22页第5页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊在添加模块中,实现新建和追加的功能。算法描述:利用YunSuan类中的成员函数workerdata()来进入添加模块,再通过函数workerdata()中的loop_1和loop_1i的执行来实现新建和追加功能。再通过if语句进行判断用户输入的字符,如果是“1”字符,则执行新建功能,如果是“2”字符,则执行追加功能。classYunSuan(定义YunSuan声明)voidworkerdata()(YunSuan类中成员函数的声明)3.显示模块设计显示模块界面如图3所示:图3显示模块界面在显示设计中,实现显示(输出)员工的编号、姓名、年龄、职位、联系电话和联系地址的功能。算法描述:利用YunSuan类中的成员函数workerdata()来进入显示模块,再通过YunSuan类中的disp()函数来实现显示员工对象的数据的功能。classYunSuan(定义YunSuan声明)voidworkerdata()(YunSuan类中成员函数的声明)voiddisp(){for(inti=0;i=top;i++){if(man[i].GetOnoff()==0)if(i%5==0)coutendl;man[i].pprintn();}}(成员函数disp()的定义)长春大学课程设计纸共22页第6页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊4.查找模块设计查找模块界面如图4所示:图4查找模块界面在查找模块中,实现按编号查找、按姓名查找和按职位查找员工对象的功能。算法描述:利用YunSuan类中的成员函数workerdata()来进入查找模块,再利用workerdata()函数中的switch(xz3)语句来进行具体的查询操作并输出查询结果。classYunSuan(定义YunSuan声明)voidworkerdata()(YunSuan类中成员函数的声明)switch(xz3)w-pprintn()5.修改模块设计修改模块界面如图5所示:图5修改模块界面长春大学课程设计纸共22页第7页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊在修改模块中,实现按员工编号和按员工姓名来修改员工资料的功能。算法描述:利用YunSuan类中的成员函数workerdata()来进入修改模块,再利用man[in].printw();w-pprintn;w-deldate();以及do语句来实现按员工编号和按员工姓名修改的功能。classYunSuan(定义YunSuan声明)voidworkerdata()(YunSuan类中成员函数的声明)man[in].printw();w-pprintn();w-deldate();addperson(worherbh,m,k,workern,addr,postt);6.删除模块设计删除模块界面如图6所示:图6删除模块界面在删除模块中,实现逐个删除和全部删除员工数据的功能算法描述:利用YunSuan类中的成员函数workerdata()来进入删除模块,再利用workerdata()函数loop_5和loop_52中的switch(xz5)语句来执行功能,用w-deldate()来达到删除员工数据的目的。classYunSuan(定义YunSuan声明)voidworkerdata()(YunSuan类中成员函数的声明)w-deldate();长春大学课程设计纸共22页第8页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊7.退出模块设计退出模块界面如图7所示:图7退出模块界面在退出模块中,实现退出人事管理系统的功能。算法描述:利用jiemian3()函数来输出退出模块界面,提示退出系统。8.(1)员工类成员函数:构造函数Worker(){};设置姓名函数voidSetName(charna[]);设置地址函数voidSetAdr(chardizhi[]);设置员工职位函数voidSetPost(charzhiwei[]);设置联系电话函数intGetTelp(){returntelp;(1)员工类数据成员:intbianha;intonoff;charname[5];intage;;inttelp;charadr[15];charpost[10]9.(1)yunsuan类成员函数:构造函数yunsuan();删除函数voidclear();比较编号函数Worker*query(intpersonid);长春大学课程设计纸共22页第9页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊比较姓名函数Worker*qu(charna[]);Worker*qw(charna[])比较年龄函数Worker*pq(intqxid);输出函数voiddisp();voiddisp2();输出界面函数voidjiemian1();voidjiemian3()析构功能函数voidworkerdata();对yunsuan类数据成员的类外声明函数voidYunSuan::workerdata();(2)Yunsuan类数据成员:Inttop;intin;workerman[10000];五、设计总结这次的课程设计基本上涵盖了我们大一学习的C++语言的知识点,本次课程设计题目不仅要求了我们对课本知识有较深刻的了解,同时要求我们有较强的动手能力。这次课程设计使我了解了一些编程思想和编程技巧,也认识了程序开发的各个环节,包括构思、设计、编写、调试、发布、文档化、维护和修订。如果我们只关心程序运行的结果,而对程序代码的结构的良好丝毫不在意,这是非常不可取的。我们一定要抱着严谨的态度来编程。这次做课程设计不仅让我复习了以前学过的内容,也让我知道一个道理:编程需要兴趣和实际动手。这应该可以借鉴在老师的教学工作上。创新思维至关重要,这不仅让我们写出精简的代码,也有助于开发出高效的程序。六、程序清单#includeiostream.h#includeiomanip.h#includestring.h#includefstream.h#includestdlib.hclassWorker//员工类{intonoff;//开关数据,当其为0时表示员工存在,为1时表示不存在intbianh;//编号charname[5];//姓名数组intage;//年龄inttelp;//联系电话charadr[15];//地址charpost[10];//职位public:Worker(){}//构造函数char*GetName(){returnname;}//获得姓名intGetOnoff(){returnonoff;}//获得开关长春大学课程设计纸共22页第10页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊intGetNo(){returnbianh;}//获得编号intGetTelp(){returntelp;}//获得联系电话intGetAge(){returnage;}//获得年龄char*GetAdr(){returnadr;}//获得地址char*GetPost(){returnpost;}//获得职位voidSetNum(intnum){bianh=num;}//用num给编号赋值voidSetAge(intpxid){pxid=age;}//用age给年龄赋值voidSetName(charna[])//用数组na[]给姓名赋值{strcpy(name,na);}voidSetAdr(chardizhi[])//用数组dizhi[]给地址赋值{strcpy(adr,dizhi);}voidSetPost(charzhiwei[])//用数组zhiwei[]给地址赋值{strcpy(post,zhiwei);}voiddeldate(){onoff=1;}//删除指定的单个员工的资料voidaddperson(intb,inta,longintt,char*na,char*dizhi,char*zhiwei)//将输入的资料赋值给相映的数据{onoff=0;bianh=b;strcpy(name,na);strcpy(adr,dizhi);strcpy(post,zhiwei);age=a;telp=t;}voidprintw()//输出函数,输出文字{coutsetw(10)编号setw(10)姓名setw(10)年龄setw(10)职位setw(15)联系电话setw(15)联系地址endl;}voidpprintn()//输出所有员工的资料{if(GetOnoff()==0)coutsetw(10)bianhsetw(10)namesetw(10)agesetw(10)postsetw(15)telpsetw(15)adrendl;}};classYunSuan//YunSuan类长春大学课程设计纸共22页第11页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊{inttop,in;Workerman[10000];//将员工类的对象作为YunSuan类的私有成员public:YunSuan()//YunSuan类的构造函数{Workers;top=-1;fstreamfile(worker.dat,ios::in);//将文件以输入的方式打开while(1)//用s给所有员工资料赋初值{file.read((
本文标题:长春大学课程设计――面向对象程序设计(人事管理系统)
链接地址:https://www.777doc.com/doc-3572202 .html