课程设计——面向对象陈学设计(人事管理系统).doc

上传人:仙人指路1688 文档编号:2386220 上传时间:2023-02-17 格式:DOC 页数:22 大小:124KB
返回 下载 相关 举报
课程设计——面向对象陈学设计(人事管理系统).doc_第1页
第1页 / 共22页
课程设计——面向对象陈学设计(人事管理系统).doc_第2页
第2页 / 共22页
课程设计——面向对象陈学设计(人事管理系统).doc_第3页
第3页 / 共22页
课程设计——面向对象陈学设计(人事管理系统).doc_第4页
第4页 / 共22页
课程设计——面向对象陈学设计(人事管理系统).doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《课程设计——面向对象陈学设计(人事管理系统).doc》由会员分享,可在线阅读,更多相关《课程设计——面向对象陈学设计(人事管理系统).doc(22页珍藏版)》请在三一办公上搜索。

1、目 录一、 设计目的2二、 功能介绍2三、 程序流程3四、 设计步骤(不用加过多代码)4五、 设计总结9六、 程序清单9七、 参考文献22一、设计目的(1) 只能使用C+语言,源程序要有适当的注释,使程序容易阅读(2) 至少采用文本菜单界面(如果能采用图形菜单界面更好)(3) 学生可自动增加新功能模块(视情况可另外加分)(4) 写出课程设计报告,具体要求见相关说明文档(5) 用文件进行管理二、功能介绍(1)数据录入功能(2)查询功能:分为姓名查询和应缴税款查询两种(3)统计功能:输入一个部门,统计该部门的人员应缴税款总和并显示数据。(4)排序功能:能实现选择按月薪升序或降序排序并显示数据。三、

2、程序流程 开始(J/T)进入系统J新增显示查找退出修改删除 结束T新建追加按编号查按姓名查按年龄查按职位查按编号按姓名逐个删除全部删除四、设计步骤1.登陆界面设计登录界面如图1所示:图1 登录界面 在登录界面中,实现进入系统和退出系统功能。 算法描述:用 jiemian1() 函数判断用户输入的字符,如果是“ j”或“J” 字符,则进入人事管理系统,如果是“t”或“T”字符,则退出人事管理系统,如果是其他字符则提示错误并请求重新输入。2添加模块设计 添加模块界面如图2所示:图2 添加模块界面 在添加模块中,实现新建和追加的功能。 算法描述:利用YunSuan类中的成员函数workerdata(

3、)来进入添加模块,再通过函数workerdata()中的loop_1和loop_1i的执行来实现新建和追加功能。再通过if语句进行判断用户输入的字符,如果是“1”字符,则执行新建功能,如果是“2”字符,则执行追加功能。class YunSuan (定义YunSuan声明)void workerdata() (YunSuan类中成员函数的声明) 3.显示模块设计 显示模块界面如图3所示:图3 显示模块界面 在显示设计中,实现显示(输出)员工的编号、姓名、年龄、职位、联系电话和联系地址的功能。 算法描述:利用YunSuan类中的成员函数workerdata()来进入显示模块,再通过YunSuan类

4、中的disp()函数来实现显示员工对象的数据的功能。class YunSuan (定义YunSuan声明)void workerdata() (YunSuan类中成员函数的声明)void disp() for(int i=0;i=top;i+) if(mani.GetOnoff()=0) if(i%5=0) coutpprintn() 5.修改模块设计 修改模块界面如图5所示:图5 修改模块界面在修改模块中,实现按员工编号和按员工姓名来修改员工资料的功能。 算法描述:利用YunSuan类中的成员函数workerdata()来进入修改模块,再利用manin.printw(); w-pprintn

5、;w-deldate();以及do语句来实现按员工编号和按员工姓名修改的功能。class YunSuan (定义YunSuan声明)void workerdata() (YunSuan类中成员函数的声明)manin.printw();w-pprintn();w-deldate();addperson(worherbh,m,k,workern,addr,postt); 6.删除模块设计 删除模块界面如图6所示:图6 删除模块界面 在删除模块中,实现逐个删除和全部删除员工数据的功能 算法描述:利用YunSuan类中的成员函数workerdata()来进入删除模块,再利用workerdata()函数

6、loop_5和loop_52中的switch(xz5)语句来执行功能,用w-deldate()来达到删除员工数据的目的。class YunSuan (定义YunSuan声明)void workerdata() (YunSuan类中成员函数的声明)w-deldate(); 7.退出模块设计 退出模块界面如图7所示:图7 退出模块界面 在退出模块中,实现退出人事管理系统的功能。 算法描述:利用jiemian3()函数来输出退出模块界面,提示退出系统。8(1)员工类成员函数:构造函数 Worker();设置姓名函数 void SetName(char na);设置地址函数 void SetAdr(c

7、har dizhi);设置员工职位函数void SetPost(char zhiwei);设置联系电话函数int GetTelp()return telp; (1)员工类数据成员:int bianha; int onoff; char name5; int age; ;int telp; char adr15; char post109(1)yunsuan类成员函数:构造函数 yunsuan();删除函数void clear();比较编号函数Worker *query(int personid);比较姓名函数Worker *qu(char na);Worker *qw(char na)比较年龄

8、函数Worker *pq(int qxid);输出函数void disp() ;void disp2();输出界面函数void jiemian1();void jiemian3()析构功能函数void workerdata();对yunsuan类数据成员的类外声明函数void YunSuan:workerdata(); (2)Yunsuan类数据成员:Int top ; int in; worker man10000;五、设计总结这次的课程设计基本上涵盖了我们大一学习的C+ 语言的知识点,本次课程设计题目不仅要求了我们对课本知识有较深刻的了解,同时要求我们有较强的动手能力。这次课程设计使我了解

9、了一些编程思想和编程技巧,也认识了程序开发的各个环节,包括构思、设计、编写、调试、发布、文档化、维护和修订。如果我们只关心程序运行的结果,而对程序代码的结构的良好丝毫不在意,这是非常不可取的。我们一定要抱着严谨的态度来编程。这次做课程设计不仅让我复习了以前学过的内容,也让我知道一个道理:编程需要兴趣和实际动手。这应该可以借鉴在老师的教学工作上。创新思维至关重要,这不仅让我们写出精简的代码,也有助于开发出高效的程序。六、程序清单#include#include #include #include#include class Worker/员工类 int onoff;/开关数据,当其为0时表示员工

10、存在,为1时表示不存在 int bianh;/编号 char name5;/姓名数组 int age;/年龄 int telp;/联系电话 char adr15;/地址 char post10;/职位public: Worker()/构造函数 char *GetName()return name;/获得姓名 int GetOnoff()return onoff;/获得开关 int GetNo()return bianh;/获得编号 int GetTelp()return telp;/获得联系电话 int GetAge()return age;/获得年龄 char *GetAdr()return

11、 adr;/获得地址 char *GetPost()return post;/获得职位 void SetNum(int num)bianh=num;/用num给编号赋值 void SetAge(int pxid)pxid=age;/用age给年龄赋值 void SetName(char na)/用数组na给姓名赋值 strcpy(name,na); void SetAdr(char dizhi)/用数组dizhi给地址赋值 strcpy(adr,dizhi); void SetPost(char zhiwei)/用数组zhiwei给地址赋值 strcpy(post,zhiwei); void

12、deldate()onoff=1;/删除指定的单个员工的资料 void addperson(int b,int a,long int t,char *na,char *dizhi,char *zhiwei)/将输入的资料赋值给相映的数据 onoff=0; bianh=b; strcpy(name,na); strcpy(adr,dizhi); strcpy(post,zhiwei); age=a; telp=t; void printw()/输出函数,输出文字 coutsetw(10)编号setw(10)姓名setw(10) 年龄setw(10)职位setw(15)联系电话setw(15)联系

13、地址endl; void pprintn()/输出所有员工的资料 if(GetOnoff()=0) coutsetw(10)bianhsetw(10)namesetw(10)agesetw(10) postsetw(15)telpsetw(15)adrendl; ;class YunSuan/ YunSuan类 int top,in; Worker man10000;/将员工类的对象作为YunSuan类的私有成员public: YunSuan()/YunSuan类的构造函数 Worker s; top=-1; fstream file(worker.dat,ios:in);/将文件以输入的方式

14、打开 while(1)/用s给所有员工资料赋初值 file.read(char *)&s,sizeof(s); if(!file)break; top+; mantop=s; file.close();/关闭文件 void clear()/删除所有的员工资料 top=-1; int addperson(int n,int m,int k,char *na,char *dizhi,char *zhiwei) Worker *p=query(n),*q=query(m),*j=query(k); if(p=NULL) top+; mantop.addperson(n,m,k,na,dizhi,zh

15、iwei); return 1; return 0; Worker *query(int personid) /将系统中的编号与输入的编号比较 for(int i=0;i=top;i+) if(mani.GetNo()=personid&mani.GetOnoff()=0) return &mani;in=i; return NULL; Worker *qu(char na)/将系统中的姓名与输入的姓名比较 for(int i=0;i=top;i+) if(strcmp(mani.GetName(),na)=0&mani.GetOnoff()=0) return &mani;in=i; ret

16、urn NULL; Worker *qw(char na)/将系统中的姓名与输入的姓名比较 for(int i=0;i=top;i+) if(strcmp(mani.GetName(),na)=0&mani.GetOnoff()=0) return &mani;in=i; return NULL; Worker *pq(int qxid) /将系统中的年龄与输入的年龄比较 for(int i=0;i=top;i+) if(mani.GetAge()=qxid&mani.GetOnoff()=0) coutendl; mani.pprintn(); return NULL; Worker *qp

17、(char zhiwei) coutendlsetw(11)所找员工资料:endlendl; coutsetw(10)编号setw(10)姓名setw(10) 年龄setw(10)职位setw(15)联系电话 setw(15)联系地址endl; for(int i=0;i=top;i+) if(strcmp(mani.GetPost(),zhiwei)=0&mani.GetOnoff()=0) coutendl; mani.pprintn(); return NULL; void disp()/输出所有员工的资料 for(int i=0;i=top;i+) if(mani.GetOnoff()

18、=0) if(i%5=0) coutendl; mani.pprintn(); void disp2()/输出指定的单个员工的资料 coutendl; manin.pprintn(); void jiemian1()/界面1,进入程序时输出 coutendl; cout 欢迎使用人事管理系统endlendl; coutendl; cout J:进入系统endlendl; cout T:退出系统endlendl; coutnnnn; cout 指导老师:李之玲endl; cout 班 级:网络09406endl; cout 学 生:尹馨宁endl; cout 电 话:2786482endl; c

19、out 地 址:长大学生宿舍1公寓218寝室endl endl; void jiemian3()/界面3,程序结束后输出 coutendlendl; cout 忠心感谢您对本系统的支持!endlendlendlendl; cout 指导老师:李之玲endl; cout 班 级:网络09406 endl; cout 学 生:尹馨宁 endlendlendlendlendlendl; cout 输入任意键退出; do exit(0); while(1); void workerdata(); YunSuan()/YunSuan类的析构函数,作用:释放空间,并将数据存入文件中 fstream fil

20、e(worker.dat,ios:out); for(int i=0;i=top;i+) if(mani.GetOnoff()=0) file.write(char *)&mani,sizeof(mani); file.close(); ;void YunSuan:workerdata()/对YunSuan类的成员函数workerdata的类外声名 char choice=0; char ch,workern20,addr40,postt30; int worherbh; int m; int k; Worker *w; while(choice!=6) coutendlendl; cout

21、功能菜单 endl; coutendl; cout 1:新增endl; cout 2:显示endl; cout 3:查找endl; cout 4:修改endl; cout 5:删除endl; cout 6:退出endl; coutendlchoice; if(choice=6) /clear(); break; switch(choice) case 1: char ch1; coutendlt欢迎进入新增系统!endlendl; cout1.新建(删除原有的记录):endlendl; cout2.追加(保留原有的记录):endlendl; coutendlch1; if(ch1=1) cha

22、r chi; cout确定新建?(Y/N)chi; switch(chi) case Y|y:clear();break; case N|n:goto loop_1b; default:cout错误:输入错误,请重新输入!endl; goto loop_1i; if(ch1!=1&ch1!=2) cout错误:输入错误,请重新输入!endl; goto loop_1; do do coutendl请输入员工编号:worherbh; w=query(worherbh); if(w!=NULL) cout错误:该编号资料已存在,请重新输入。endl; while(w!=NULL); cout请输入

23、员工姓名:workern; cout年龄:m; cout职位:postt; cout联系电话:k; cout联系地址:addr; addperson(worherbh,m,k,workern,addr,postt); coutch; while(ch=y|ch=Y); loop_1b: break; case 2: coutendlsetw(11)所有员工资料:endlendl; coutsetw(10)编号setw(10)姓名setw(10) 年龄setw(10)职位setw(15)联系电话setw(15)联系地址endl; disp(); coutendl; break; case 3:

24、char xz3; int pxid; char na10; char zhiwei15; do coutendl; coutt欢迎进入查询系统!endlendl; cout1.按编号查找:endl; cout2.按姓名查找:endl; cout3.按年龄查找:endl; cout4.按职位查找:endl; cout请输入相应的数字选择:xz3; switch(xz3) case 1: coutworherbh; w=query(worherbh); if(w=NULL) cout该编号员工不存在!endlendl; break; coutendlsetw(11)所找员工资料:endlendl

25、; coutsetw(10)编号setw(10)姓名setw(10) 年龄setw(10)职位setw(15)联系电话setw(15)联系地址 pprintn(); coutendl; break; case 2: coutna; w=qu(na); if(w=NULL) cout该姓名员工不存在!endlendl; break; coutendlsetw(11)所找员工资料:endlendl; coutsetw(10)编号setw(10)姓名setw(10) 年龄setw(10)职位setw(15)联系电话setw(15)联系地址pprintn(); coutendl; break; cas

26、e 3: coutpxid; pq(pxid); coutendl; break; case 4: coutzhiwei; w=qp(zhiwei); coutendl; break; default: cout错误:输入错误,请重新输入!endl; goto loop_3; cout是否还要继续查找(Y/N):endlch; while(ch=y|ch=Y); break; case 4: char choice,workern10; do coutendl; coutt欢迎进入修改系统!endl; coutendl;loop_4: cout1.按员工编号修改:endl; cout2.按员工

27、姓名修改:endl; coutchoice; switch(choice) /int num; case 1: coutworherbh; w=query(worherbh); if(w=NULL) cout该员工资料不存在!pprintn(); w-deldate(); do do coutendl请输入新员工编号:worherbh; w=query(worherbh); if(w!=NULL) cout错误:该编号资料已存在,请重新输入。endl; while(w!=NULL); cout请输入员工姓名:workern; cout年龄:m; cout职位:postt; cout联系电话:k

28、; cout联系地址:addr; addperson(worherbh,m,k,workern,addr,postt); coutch; while(ch=y|ch=Y); break; case 2: coutworkern; w=qw(workern); if(w=NULL) cout该员工资料不存在!pprintn(); w-deldate(); do do coutendl请输入员工新编号:worherbh; w=query(worherbh); if(w!=NULL) cout错误:该编号资料已存在,请重新输入.endl; while(w!=NULL); cout请输入员工姓名:end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号