已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高校人事档案管理系统设计方法和基本原理: 一、问题描述(功能要求): 某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。要求: 1) 添加删除功能:能根据学院人事的变动情况,添加删除记录;2) 查询功能:能根据编号和姓名进行查询;3) 编辑功能(高级):根据查询对相应的记录进行修改,并存储;4) 统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);5) 保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。6) 人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。 2、问题的解决方案: 源代码#include#include#include#includeusing namespace std;int k;class personprivate: char num10; /编号 char type20; /种类 char name20; /姓名 char sex10; /性别 char age10; /年龄 char staff20; /职务 char zhichen20; /职称 char zzmm20; /政治面貌 char zgxl20; /最高学历 char rzsj20; /任职时间 char lysj30; /来院时间 static int bianhao; /计数器public: void setperson(char *type1,char *name1,char *sex1,char *age1,char *staff1, char *zhichen1,char *zzmm1,char *zgxl1,char *rzsj1,char *lysj1);/构造函数 static int& getbianhao() return bianhao; char * gettype() return type; char * getname() return name; char * getsex() return sex; char * getage() return age; char * getstaff() return staff; char * getzhichen() return zhichen; char * getzzmm() return zzmm; char * getzgxl() return zgxl; char * getrzsj() return rzsj; char * getlysj() return lysj; char * getnum() return num; void tjry(); void find(); void output(); void del(); void xiugai(); void tongji();person p100;person pp100;int k1;int person:bianhao=0;void person:setperson(char *type1,char *name1,char *sex1,char *age1,char *staff1, char *zhichen1,char *zzmm1,char *zgxl1,char *rzsj1,char *lysj1) int static j=1; strcpy(type,type1); strcpy(name,name1); strcpy(sex,sex1); strcpy(age,age1); strcpy(staff,staff1); strcpy(zhichen,zhichen1); strcpy(zzmm,zzmm1); strcpy(zgxl,zgxl1); strcpy(rzsj,rzsj1); strcpy(lysj,lysj1); bianhao+; ofstream file(添加人员.txt,ios_base:app); filepj.getbianhao()endl; filepj.gettype()endl; filepj.getname()endl; filepj.getsex()endl; filepj.getage()endl; filepj.getstaff()endl; filepj.getzhichen()endl; filepj.getzzmm()endl; filepj.getzgxl()endl; filepj.getrzsj()endl; filepj.getlysj()ppk.getnum(); filemppk.gettype(); filemppk.getname(); filemppk.getsex(); filemppk.getage(); filemppk.getstaff(); filemppk.getzhichen(); filemppk.getzzmm(); filemppk.getzgxl(); filemppk.getrzsj(); filemppk.getlysj(); if(strcmp(ppk.gettype(),行政人员)=0|strcmp(ppk.gettype(),教师)=0| strcmp(ppk.gettype(),一般员工)=0) a+; if(strcmp(ppk.getzzmm(),党员)=0) b+; if(strcmp(ppk.getsex(),nv)=0) c+; if(strcmp(ppk.getzgxl(),boshi)=0) d+; k+; filem.close(); cout在职人数setw(12)党员人数setw(12)女工人数setw(12)高学历人数endl; coutasetw(12)bsetw(12)csetw(12)dppk.getnum(); filemppk.gettype(); filemppk.getname(); filemppk.getsex(); filemppk.getage(); filemppk.getstaff(); filemppk.getzhichen(); filemppk.getzzmm(); filemppk.getzgxl(); filemppk.getrzsj(); filemppk.getlysj(); k+; filem.close(); cout请输入要修改的人的编号:x; cout请输入编号为x的人需要修改的项目的代号:endl; cout1:编号-2:人员类型-3:姓名-4:性别-5:年龄-6:职务-7:职称-8:政治面貌-9:最高学历-10:任职时间-11:来院时间y; switch(y) case 1: coutppx.getnum() ; break; case 2: coutppx.gettype(); break; case 3: coutppx.getname(); break; case 4: coutppx.getsex(); break; case 5: coutppx.getage(); break; case 6: coutppx.getstaff(); break; case 7: coutppx.getzhichen(); break; case 8: coutppx.getzzmm(); break; case 9: coutppx.getzgxl(); break; case 10: coutppx.getrzsj(); break; case 11: coutppx.getlysj(); break; ofstream file1(添加人员.txt,ios_base:trunc); for(k=1;k=bianhao;k+) file1ppk.getnum()endl; file1ppk.gettype()endl; file1ppk.getname()endl; file1ppk.getsex()endl; file1ppk.getage()endl; file1ppk.getstaff()endl; file1ppk.getzhichen()endl; file1ppk.getzzmm()endl; file1ppk.getzgxl()endl; file1ppk.getrzsj()endl; file1ppk.getlysj()endl; file1.close(); cout修改并保存完毕ppk.getnum(); filemppk.gettype(); filemppk.getname(); filemppk.getsex(); filemppk.getage(); filemppk.getstaff(); filemppk.getzhichen(); filemppk.getzzmm(); filemppk.getzgxl(); filemppk.getrzsj(); filemppk.getlysj(); k+; filem.close(); cout请输入要被删除信息的人的编号:z; while(zbianhao) cout没有找到你要删除的人,请重新输入:z; for(k=1;k=bianhao;k+) if(z=k) continue; ofstream file2(添加人员.txt,ios_base:trunc); file2ppk.getnum()endl; file2ppk.gettype()endl; file2ppk.getname()endl; file2ppk.getsex()endl; file2ppk.getage()endl; file2ppk.getstaff()endl; file2ppk.getzhichen()endl; file2ppk.getzzmm()endl; file2ppk.getzgxl()endl; file2ppk.getrzsj()endl; file2ppk.getlysj()endl; file2.close(); cout删除记录完毕endl; void person:find() / cout1:按编号查询-2:按姓名查询-请选择(1-2)m; while(m2) cout请重新输入(1-2)m; switch(m) case 1: char n10; coutn; ifstream filem(添加人员.txt,ios_base:in); int k=1; cout编号setw(9)人员类型setw(5)姓名setw(5)性别 setw(5)年龄setw(5)职务setw(5)职称 setw(9)政治面貌setw(10)最高学历setw(10)任职时间 setw(10)来院时间ppk.getnum(); filemppk.gettype(); filemppk.getname(); filemppk.getsex(); filemppk.getage(); filemppk.getstaff(); filemppk.getzhichen(); filemppk.getzzmm(); filemppk.getzgxl(); filemppk.getrzsj(); filemppk.getlysj(); if(strcmp(ppk.getnum(),n)=0) coutppk.getnum()setw(9)ppk.gettype()setw(5)ppk.getname() setw(5)ppk.getsex()setw(5)ppk.getage() setw(5)ppk.getstaff()setw(5)ppk.getzhichen() setw(9)ppk.getzzmm()setw(10)ppk.getzgxl() setw(10)ppk.getrzsj()setw(10)ppk.getlysj()endl;break; k+; if(filem.eof() coutendl; cout 警告:没有要查找的人!; filem.close(); break; case 2: char nname20; coutnname; ifstream filem(添加人员.txt,ios_base:in); int k=1; cout编号setw(9)人员类型setw(5)姓名setw(5)性别 setw(5)年龄setw(5)职务setw(5)职称 setw(9)政治面貌setw(10)最高学历setw(10)任职时间 setw(10)来院时间ppk.getnum(); filemppk.gettype(); filemppk.getname(); filemppk.getsex(); filemppk.getage(); filemppk.getstaff(); filemppk.getzhichen(); filemppk.getzzmm(); filemppk.getzgxl(); filemppk.getrzsj(); filemppk.getlysj(); if(strcmp(ppk.getname(),nname)=0) coutppk.getnum()setw(9)ppk.gettype()setw(5)ppk.getname() setw(5)ppk.getsex()setw(5)ppk.getage() setw(5)ppk.getstaff()setw(5)ppk.getzhichen() setw(9)ppk.getzzmm()setw(10)ppk.getzgxl() setw(10)ppk.getrzsj()setw(10)ppk.getlysj()endl;break; k+; if(filem.eof() coutendl; cout 警告:没有要查找的人!; filem.close(); break; void person:tjry() / int v,l=1; char type220;char name220;char sex210;char age210;char staff220; char zhichen220;char zzmm220;char zgxl220;char rzsj220;char lysj230; cout请输入要添加的人数k; p1.getbianhao()=ppk1.getbianhao(); v=bianhao; for(int i=v+1;i=v+k;i+) cout请输入第l个人的信息endl; couttype2; coutname2; coutsex2; coutage2; coutstaff2; coutzhichen2; coutzzmm2; coutzgxl2; coutrzsj2; coutlysj2; pi.setperson(type2,name2,sex2,age2,staff2,zhichen2,zzmm2,zgxl2,rzsj2,lysj2); l+; void person:output() / ifstream filem(添加人员.txt,ios_base:in); int k=1; cout编号setw(9)人员类型setw(5)姓名setw(5)性别 setw(5)年龄setw(5)职务setw(5)职称 setw(9)政治面貌setw(10)最高学历setw(10)任职时间 setw(10)来院时间ppk.getbianhao(); filemppk.gettype(); filemppk.getname(); filemppk.getsex(); filemppk.getage(); filemppk.getstaff(); filemppk.getzhichen(); filemppk.getzzmm(); filemppk.getzgxl(); filemppk.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- IP 进阶试题与正确答案公布
- 2026年昆明市富民县妇女联合会招聘公益性岗位人员的(1人)笔试模拟试题及答案详解
- 2026年吴起县事业单位人员招聘笔试模拟试题及答案解析
- 2026河北节水有限公司公开招聘工作人员9名笔试参考题库及答案详解
- 2026年青田县网格员招聘考试备考试题及答案解析
- 2026年孝感应城市事业单位“三支一扶”高校毕业生专项招聘16人考试备考试题及答案详解
- 2026武汉音乐学院计划财务与国有资产管理处非事业编人员招聘1人笔试备考试题及答案详解
- 2026惠来县公安局公开招聘警务辅助人员60人考试备考题库及答案详解
- 2025-2026年陕西省人教版高一语文下册第9章综合测试卷
- 2026年四川省部编版高二英语必修一第三章听力专项训练
- 新人教版小学数学六年级上册单元测试卷(全册)
- 《Baby》Justin-Bieber版歌词完整版打印下载打印
- 基层安全生产监管面临的困惑和对策模板范本
- 10kV~500kV输变电及配电工程质量验收与评定标准:01输电线路工程
- 城市轨道交通车站设备(高职)PPT完整全套教学课件
- 润滑油基础油的加氢法生产工艺课件
- 实验六-兔子的解剖-课件
- 饲料和饲料添加剂生产企业从业人员法规考核试题
- 烘干设备购销合同
- 某年中石油俄语水平考试试题
- 架桥机安装拆除监理细则
评论
0/150
提交评论