《2022年C++人事管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年C++人事管理系统 .pdf(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、人事管理系统指导教师 :张银霞专业班级 :自动化 094 班设 计 者:王子斌刘先念丁瑞荣设计时间 :2010-10 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 22 页 - - - - - - - - - 2 C+程序设计课程设计任务书一、已知技术参数或设计前提1、本校现拥有学生、研究生、教师、助教的人数。2、各类成员的姓名,编号,出身日期,性别,身份证号(ID) ,以及个人相关信息。3、通过输入各个成员的编号可以修改和删除其相关信息。4、可以凭借曾经输入的信息,将
2、全部的人事信息输出。二、设计内容及要求1、实现新成员信息的录入、修改、删除和显示。2、实现各个成员的基本信息的记录和保存。3、查找各个成员的相关信息。4、要通过文件记录人员身份的相关数据。三、课程设计工作计划1、确定题目,成立设计小组,做用户需求分析(2 天)2、查阅资料,进行问题分析,制定方案,确定成员分工(1 天)3、根据方案编写程序并进行调试(5 天)4、撰写设计说明书,完成设计(3 天)5、提交设计内容,答辩四、相关教材及参考书目1、 C+ 语言基础教程清华大学出版社2、 C+ 语言程序设计案例教程清华大学出版社3、 Visual C+ 6.0 程序设计清华大学出版社4、 Visual
3、 C+ 数据库开发入门与范例解析机械工业出版社5、 Visual C+ 实例教程电子科技大学出版社6、 Visual C+ 数据库系统开发实例导航(第二版 ) 人民邮电出版社7、 Visual C+ 数据库开发自学教程人民邮电出版社指导教师签字:系 主 任签字:年月日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 22 页 - - - - - - - - - 3 目录一 需求分析 4 二 组员分工 4 三 系统总框图 4 四 系统软硬件环境 5 五 模块设计分析 5 六
4、函数定义及说明 5 七 使用说明 7 八 程序源代码 12 九 结束语 22 十 参考文献 22 一、需求分析名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 22 页 - - - - - - - - - 4 学校是生活中一个很大的群体,学校的人事管理也是异常复杂,曾是人事部管理人员的一大难题。 本程序的设计初衷就是为了解决此类问题。人事部管理人员可以通过该管理系统管理学校各个阶层人员的信息,其包括在校大学生的基本信息(姓名、班级、编号、性别、出身年月、身份证号) ,在校教
5、师的基本信息(姓名、编号、性别、出身日期、身份证号,职务, 所在部门),在校研究生的基本信息( 姓名、 编号、性别、 出身日期、 身份证号、 专业、导师情况 ) ,在校助教的基本信息(姓名、编号、性别、出生日期、身份证号、职务、所在部门) ,还可以随时添加、删除和修改各个成员的基本信息。操作实际人性化,简单易懂,快捷,方便,实用性还很强。二、组员分工宁欣同学主要负责头文件的定义,class people 函数的定义声明,重载以及在校学生、在校教师、在校助教、在校研究生信息以共有方式派生类函数代码的编写。许永维、卢风同学主要负责在校学生、在校教师、在校助教、在校研究生信息的显示、信息写入、信息的
6、读入,信息的修改、函数的编写。潘晓雨同学主要负责void menu()、 void select()、void main()函数的编写以及整个系统的连接和调试。三、系统总框图四 、系统软硬件环境(运行平台)1、本系统的开发环境:学校各个阶层的成员在校学生在校教师在校研究生在校助教(姓名,班级、编号、性别、出身年月、身份证号)的添加、修改、删除、以及查找。(姓名、编号、性别、出身日期、身份证号,职务,所在部门)的添加、修改、删除。(姓名、编号、性别、出生日期、身份证号、职务、所在部门)的添加、修改、删除。(姓名、编号、性别、出生日期、身份证号、职务、所在部门)的添加、修改、删除。名师资料总结 -
7、 - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 22 页 - - - - - - - - - 5 Windows XP Professional 操作系统2、本系统开发时的运行环境:CPU2.4GHZ 256M内存80G 硬盘Windows XP Professional 操作系统3、本系统的编程工具:Visual C+ 6.0 五、每个模块的设计分析class birthday 主要是对成员的出生年月日数据的记录class people主要实现声明人员基类,以便于以后其他类的派生cla
8、ss student:virtual public people 功能是以公有方式派生出学生类class teacher:virtual public people 功能是以公有方式派生出老师类class graduate:virtual public student 功能是以公有方式派生出研究生类class teacher_asistant:public teacher,public graduate 功能是以公有方式派生出助教类void menu( ) 主要是实现对输入信息的判断,以及外界操作的互动与导向void main( ) 主要是实现对整个系统的函数的实现,整个主界面的引导六 、列出
9、所有定义的函数及说明 int k=1,i 定义一个标志变量class birthday 定义出生年月日类virtual void enter(); 虚基函数,搭成一个框架,以后在此基础上扩充virtual void display(); 虚基函数,搭成一个框架,以后在此基础上扩充class people 声明人员基类,以便于以后其他类的派生virtual void change_infor() 信息修改函数virtual void readfile() 从文件中读virtual void write() 将信息写入文件people operator = (people p1) 运算符重载peo
10、ple people:operator =(people p1) 定义运算符重载void people:enter() 定义信息输入函数void people:display() 定义信息显示函数class student:virtual public people 以公有方式派生出学生类class teacher:virtual public people 以公有方式派生出老师类class graduate:virtual public student 以公有方式派生出研究生类class teacher_asistant:public teacher,public graduate 以公有方
11、式派生出助教类void student:display() 定义派生类学生的信息显示函数void student:write() 定义派生类学生的信息写入文件函数void student:readfile() 定义派生类学生的读文件函数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 22 页 - - - - - - - - - 6 void student:change_infor() 定义派生类学生的信息修改函数void teacher:display() 定义派生类教
12、师的信息显示函数void teacher:readfile() 定义派生类教师的信息写入文件函数void teacher:write() 定义派生类教师的读文件函数void teacher:change_infor() 定义派生类教师的信息修改函数void graduate:display() 定义派生类研究生的信息显示函数void graduate:readfile() 定义派生类研究生的信息写入文件函数void graduate:write() 定义派生类研究生的读文件函数void graduate:change_infor() 定义派生类研究生的信息修改函数void teacher_as
13、istant:display() 定义派生类助教的信息显示函数void teacher_asistant:readfile() 定义派生类助教的读文件函数void teacher_asistant:write() 定义派生类助教的信息写入文件函数id teacher_asistant:change_infor() 定义派生类助教的信息修改函void menu( ) 对整个系统主界面的操作void select() 对输入信息的判断,以及实现整个系统的动态互动。void main( ) 对整个系统的函数的实现,整个主界面的引导七、使用说明(操作手册)名师资料总结 - - -精品资料欢迎下载 -
14、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 22 页 - - - - - - - - - 7 1、登入操作界面: 2 、选择“ 1” ,可进行对学生的相关操作:1、名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 22 页 - - - - - - - - - 8 “1”输入人事信息“2”显示人事信息“3”对信息的修改和删除名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
15、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 22 页 - - - - - - - - - 9 “4”返回主菜单3、选择“ 2” ,可进行对研究生的相关操作“1”输入人事信息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 22 页 - - - - - - - - - 10 “2”显示人事信息“3”对信息的修改和删除“4”单返回主菜“0”退出4、选择“ 3” 、 “4”可进行对教师和助教进行以上相同的抄作“1”对教师的造
16、作“2”对助教的操作名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 22 页 - - - - - - - - - 11 “0”是控制退出系统的操作。八、程序源代码名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 22 页 - - - - - - - - - 12 #include #include #include #include #includ
17、e #include #include int k=1,i; /定义一个标志变量class birthday /定义出生年月日类public: int year; int month; int day; ; class people /声明人员基类,以后在这个基础上派生出其它类public: people() virtual void enter(); /虚基函数, 搭成一个框架, 以后在此基础上扩充virtual void display(); virtual int get_no()return number; virtual char * get_name()return name; v
18、irtual void change_infor() /信息修改函数virtual void readfile() /从文件中读virtual void write() /将信息写入文件people operator = (people p1); /运算符重载int operator = (people p1); virtual people(); protected: char name12; int number; char sex12; birthday bir; char id15; ; people people:operator =(people p1)/ 定义运算符重载 strc
19、py(name,p1.name); number=p1.number; strcpy(sex,p1.sex); bir.day=p1.bir.day; bir.month=p1.bir.month; bir.year=p1.bir.year; strcpy(id,p1.id); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 22 页 - - - - - - - - - 13 return p1; int people:operator =(people p1) if(
20、id=p1.id) return 1; else return 0; void people:enter() /定义信息输入函数coutname; coutnumber; coutsex; coutbir.yearbir.monthbir.day; coutid; void people:display() /定义信息显示函数coutsetw(8) 姓 名 setw(8) 编 号 setw(8) 性 别 setw(8) 出 生 日 期setw(8) 身份证号 setw(8)endl; coutsetw(8)namesetw(8)numbersetw(8)sexsetw(8)bir.yearse
21、tw(8)bir.monthsetw(8)bir.daysetw(8)idsetw(8)endl; class student:virtual public people /以公有方式派生出学生类protected: char classnumber20; public: student() virtual void enter()people:enter();coutclassnumber; virtual void display(); virtual void readfile(); virtual void write(); virtual void change_infor(); v
22、irtual student(); ; class teacher:virtual public people /以公有方式派生出老师类protected: char principalship16; char department16; public: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 22 页 - - - - - - - - - 14 teacher() virtual void enter()people:enter();coutprincipals
23、hip;coutdepartment; virtual void display(); virtual void readfile(); virtual void write(); virtual void change_infor(); virtual teacher() ; / class graduate:virtual public student /以公有方式派生出研究生类protected: char subject16; char teacher_adviser16; public: graduate(); virtual void enter()student:enter();
24、coutsubject;coutteacher_adviser; virtual void display(); virtual void readfile(); virtual void write(); virtual void change_infor(); virtual graduate(); ; class teacher_asistant:public teacher,public graduate /以公有方式派生出助教类public: teacher_asistant(); virtual void enter()graduate:enter();coutprincipals
25、hip;coutdepartment; virtual void display(); virtual void readfile(); virtual void write(); virtual void change_infor(); virtual teacher_asistant() ; void student:display() /定义派生类学生的信息显示函数coutsetw(8) 姓 名 setw(8) 编 号 setw(8) 性 别 setw(8) 出 生 日 期setw(12) 身份证号 setw(8) 班级名称 endl; 名师资料总结 - - -精品资料欢迎下载 - -
26、- - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 22 页 - - - - - - - - - 15 coutsetw(8)namesetw(8)numbersetw(8)sexsetw(8)bir.yearsetw(8)bir.monthsetw(8)bir.daysetw(8)idsetw(8)classnumbersetw(8)endl; void student:write() /定义派生类学生的信息写入文件函数student stu; char ch; ofstream myfile(student.txt,i
27、os:app); do stu.enter(); myfile.write(char *)&stu,sizeof(stu); coutch;while(ch=y|ch=Y); myfile.close(); void student:readfile() /定义派生类学生的读文件函数ifstream myfile(student.txt,ios:nocreate); while(myfile) student stu; if(myfile.read(char*)&stu,sizeof(stu) if(stu.number!=-1) /删除一个学生的信息, 通过不显示来定义删除stu.displ
28、ay(); myfile.close(); void student:change_infor() /定义派生类学生的信息修改函数student stu; int num,p; coutnum; fstream myfile(student.txt,ios:in|ios:out); while(myfile.good() myfile.read(char*)&stu,sizeof(stu); if(num=stu.number) myfile.seekg(-sizeof(stu),ios:cur); coutp; if(p=1)stu.number=-1;break; else cout请输入
29、新的信息endl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 22 页 - - - - - - - - - 16 stu.enter();break; myfile.write(char *)&stu,sizeof(stu); myfile.close(); void teacher:display() coutsetw(8) 姓 名 setw(8) 编 号 setw(8) 性 别 setw(8) 出 生 日 期setw(12) 身份证号 setw(8) 职务 s
30、etw(10) 部门 setw(10)endl; coutsetw(8)namesetw(8)numbersetw(8)sexsetw(8)bir.yearsetw(8)bir.monthsetw(8)bir.daysetw(8)idsetw(8)principalshipsetw(10)departmentsetw(8)display(); myfile.close(); / void teacher:write() teacher tec; char ch; ofstream myfile(teacher.txt,ios:app); do tec.enter(); myfile.write
31、(char *)&tec,sizeof(tec); coutch;while(ch=y|ch=Y); myfile.close(); void teacher:change_infor() teacher tec; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 22 页 - - - - - - - - - 17 int num,p; coutnum; fstream myfile(teacher.txt,ios:in|ios:out); while(myfile.go
32、od() myfile.read(char*)&tec,sizeof(tec); if(num=tec.number) myfile.seekg(-sizeof(tec),ios:cur); coutp; if(p=1)tec.number=-1;break; else cout请输入新的信息endl; tec.enter();break; myfile.write(char *)&tec,sizeof(tec); myfile.close(); void graduate:display() coutsetw(8) 姓 名 setw(8) 编 号 setw(8) 性 别 setw(8) 出
33、生 日 期setw(12) 身份证号 setw(8) 班级名称 setw(8) 专业 setw(8)endl; coutsetw(8)namesetw(8)numbersetw(8)sexsetw(8)bir.yearsetw(8)bir.monthsetw(8)bir.daysetw(8)idsetw(8)classnumbersetw(8)subjectsetw(8)endl; cout他的导师的情况是:endl; coutsetw(8)teacher_advisersetw(8)display(); myfile.close(); 名师资料总结 - - -精品资料欢迎下载 - - - -
34、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 22 页 - - - - - - - - - 18 void graduate:write() graduate gra; char ch; ofstream myfile(graduate.txt,ios:app); do gra.enter(); myfile.write(char *)&gra,sizeof(gra); coutch;while(ch=y|ch=Y); myfile.close(); void graduate:change_infor() graduat
35、e gra; int num,p; coutnum; fstream myfile(graduate.txt,ios:in|ios:out); while(myfile.good() myfile.read(char*)&gra,sizeof(gra); if(num=gra.number) myfile.seekg(-sizeof(gra),ios:cur); coutp; if(p=1)gra.number=-1;break; else cout请输入新的信息endl; gra.enter();break; myfile.write(char *)&gra,sizeof(gra); myf
36、ile.close(); void teacher_asistant:display() coutsetw(8)姓 名 setw(8)编 号 setw(8)性 别 setw(8)出 生 日 期setw(12) 身 份 证 号 setw(8) 班 级 名 称 setw(10) 专 业 setw(8) 职 务setw(8) 部门 setw(8)endl; coutsetw(8)namesetw(8)numbersetw(8)sexsetw(8)bir.yearsetw(8)bir.monthsetw(8)bir.daysetw(8)idsetw(8)classnumbersetw(8)subjec
37、tsetw(10)principalshipsetw(8)departmentsetw(8)endl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 22 页 - - - - - - - - - 19 cout他的导师的情况是:endl; coutsetw(8)teacher_advisersetw(8)display(); myfile.close(); void teacher_asistant:write() teacher_asistant tec_asis;
38、 char ch; ofstream myfile(tec_asistant.txt,ios:app); do tec_asis.enter(); myfile.write(char *)&tec_asis,sizeof(tec_asis); coutch;while(ch=y|ch=Y); myfile.close(); / void teacher_asistant:change_infor() teacher_asistant tec_asis; int num,p; coutnum; fstream myfile(tec_asistant.txt,ios:in|ios:out); wh
39、ile(myfile.good() myfile.read(char*)&tec_asis,sizeof(tec_asis); if(num=tec_asis.number) myfile.seekg(-sizeof(tec_asis),ios:cur); coutp; if(p=1)tec_asis.number=-1;break; else cout请输入新的信息endl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 22 页 - - - - - - - - -
40、 20 tec_asis.enter();break; myfile.write(char *)&tec_asis,sizeof(tec_asis); myfile.close(); void menu() coutnntt*endl; couttt*t 人事管理系统t *endl; couttt*-*endl; cout tt* 1.请输入人事信息2.显示人事信息*endl; cout tt* 3.对信息的修改或删除4.返回主菜单0.退出 *endl; couttt*endl; cout tttt 请选择操作 (0=4) endl; coutch; switch(ch) case 0:exi
41、t(0); case 1:pt-write();coutreadfile();coutchange_infor();cout 你还想进行何种操作:;break; case 4:k=0;break; default:cout 你的选择错误,请重新选择:;break; while(k); void main() b: coutnntt*endl; couttt*t 人事管理系统 t *endl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 22 页 - - - - -
42、- - - - 21 couttt*-*endl; couttt* 1:学生*endl; couttt* 2:研究生*endl; couttt* 3:教师*endl; couttt* 4:助教*endl; couttt* 0:退出*endl; cout *endl; couti; switch(i) case 0:cout你已经退出系统;getch();exit(0); case 1:system(cls);menu();select();break; case 2:system(cls);menu();select();break; case 3:system(cls);menu();sel
43、ect();break; case 4:system(cls);menu();select();break; default :cout 你的选择有误,请重新选择:;break; if(k=0) k=1; system(cls); goto b; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 22 页 - - - - - - - - - 22 九、结束语(存在的问题与不足及对策)设计的整个过程,由于我们自身的知识和经验不足,所以借鉴和吸取了一些别人的经验。但是为了弥补
44、自身的不足,我们也在前人的基础上加了自己的一些创新思想。以后, 我们要更努力的学习有关这方面的知识 , 补充自己的不足之处 , 把自己的知识转化成劳动成果 , 为社会、为国家做出自己应有的贡献. 十、 参考文献1、 C+ 语言基础教程清华大学出版社2、 C+ 语言程序设计案例教程清华大学出版社3、 Visual C+ 6.0 程序设计清华大学出版社4、 Visual C+ 数据库开发入门与范例解析机械工业出版社5、 Visual C+ 实例教程电子科技大学出版社6、 Visual C+ 数据库系统开发实例导航 ( 第二版 ) 人民邮电出版社7、 Visual C+ 数据库开发自学教程人民邮电出版社名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 22 页 - - - - - - - - -