C++人事管理系统word文档良心出品.docx
- 文档编号:30387293
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:27
- 大小:424.74KB
C++人事管理系统word文档良心出品.docx
《C++人事管理系统word文档良心出品.docx》由会员分享,可在线阅读,更多相关《C++人事管理系统word文档良心出品.docx(27页珍藏版)》请在冰豆网上搜索。
C++人事管理系统word文档良心出品
人事管理系统
********
专业班级:
自动化094班
设计者:
王子斌刘先念丁瑞荣
设计时间:
2010-10
《C++程序设计》课程设计任务书
一、已知技术参数或设计前提
1、本校现拥有学生、研究生、教师、助教的人数。
2、各类成员的姓名,编号,出身日期,性别,身份证号(ID),以及个人相关信息。
3、通过输入各个成员的编号可以修改和删除其相关信息。
4、可以凭借曾经输入的信息,将全部的人事信息输出。
二、设计内容及要求
1、实现新成员信息的录入、修改、删除和显示。
2、实现各个成员的基本信息的记录和保存。
3、查找各个成员的相关信息。
4、要通过文件记录人员身份的相关数据。
三、课程设计工作计划
1、确定题目,成立设计小组,做用户需求分析(2天)
2、查阅资料,进行问题分析,制定方案,确定成员分工(1天)
3、根据方案编写程序并进行调试(5天)
4、撰写设计说明书,完成设计(3天)
5、提交设计内容,答辩
四、相关教材及参考书目
1、《C++语言基础教程》清华大学出版社
2、《C++语言程序设计案例教程》清华大学出版社
3、《Visual C++6.0程序设计》清华大学出版社
4、《Visual C++数据库开发入门与范例解析》机械工业出版社
5、《Visual C++实例教程》电子科技大学出版社
6、《Visual C++数据库系统开发实例导航(第二版)》人民邮电出版社
7、《VisualC++数据库开发自学教程》人民邮电出版社
指导教师签字:
系主任签字:
年月日
一需求分析········································4
二组员分工········································4
三系统总框图······································4
四系统软硬件环境··································5
五模块设计分析····································5
六函数定义及说明··································5
七使用说明········································7
八程序源代码······································12
九结束语··········································22
十参考文献········································22
一、需求分析
学校是生活中一个很大的群体,学校的人事管理也是异常复杂,曾是人事部管理人员的一大难题。
本程序的设计初衷就是为了解决此类问题。
人事部管理人员可以通过该管理系统管理学校各个阶层人员的信息,其包括在校大学生的基本信息(姓名、班级、编号、性别、出身年月、身份证号),在校教师的基本信息(姓名、编号、性别、出身日期、身份证号,职务,所在部门),在校研究生的基本信息(姓名、编号、性别、出身日期、身份证号、专业、导师情况),在校助教的基本信息(姓名、编号、性别、出生日期、身份证号、职务、所在部门),还可以随时添加、删除和修改各个成员的基本信息。
操作实际人性化,简单易懂,快捷,方便,实用性还很强。
二、组员分工
宁欣同学主要负责头文件的定义,classpeople函数的定义声明,重载以及在校学生、在校教师、在校助教、在校研究生信息以共有方式派生类函数代码的编写。
许永维、卢风同学主要负责在校学生、在校教师、在校助教、在校研究生信息的显示、信息写入、信息的读入,信息的修改、函数的编写。
潘晓雨同学主要负责voidmenu()、voidselect()、voidmain()函数的编写以及
整个系统的连接和调试。
三、系统总框图
四、系统软硬件环境(运行平台)
1、本系统的开发环境:
WindowsXPProfessional操作系统
2、本系统开发时的运行环境:
CPU2.4GHZ256M内存80G硬盘WindowsXPProfessional操作系统
3、本系统的编程工具:
VisualC++6.0
五、每个模块的设计分析
classbirthday主要是对成员的出生年月日数据的记录
classpeople主要实现声明人员基类,以便于以后其他类的派生
classstudent:
virtualpublicpeople功能是以公有方式派生出学生类
classteacher:
virtualpublicpeople功能是以公有方式派生出老师类
classgraduate:
virtualpublicstudent功能是以公有方式派生出研究生类
classteacher_asistant:
publicteacher,publicgraduate功能是以公有方式派生出助教类
voidmenu()主要是实现对输入信息的判断,以及外界操作的互动与导向
voidmain()主要是实现对整个系统的函数的实现,整个主界面的引导
六、列出所有定义的函数及说明
intk=1,i定义一个标志变量
classbirthday定义出生年月日类
virtualvoidenter();虚基函数,搭成一个框架,以后在此基础上扩充
virtualvoiddisplay();虚基函数,搭成一个框架,以后在此基础上扩充
classpeople声明人员基类,以便于以后其他类的派生
virtualvoidchange_infor(){}信息修改函数
virtualvoidreadfile(){}从文件中读
virtualvoidwrite(){}将信息写入文件
peopleoperator=(peoplep1)运算符重载
peoplepeople:
:
operator=(peoplep1)定义运算符重载
voidpeople:
:
enter()定义信息输入函数
voidpeople:
:
display()定义信息显示函数
classstudent:
virtualpublicpeople以公有方式派生出学生类
classteacher:
virtualpublicpeople以公有方式派生出老师类
classgraduate:
virtualpublicstudent以公有方式派生出研究生类
classteacher_asistant:
publicteacher,publicgraduate以公有方式派生出助教类
voidstudent:
:
display()定义派生类学生的信息显示函数
voidstudent:
:
write()定义派生类学生的信息写入文件函数
voidstudent:
:
readfile()定义派生类学生的读文件函数
voidstudent:
:
change_infor()定义派生类学生的信息修改函数
voidteacher:
:
display()定义派生类教师的信息显示函数
voidteacher:
:
readfile()定义派生类教师的信息写入文件函数
voidteacher:
:
write()定义派生类教师的读文件函数
voidteacher:
:
change_infor()定义派生类教师的信息修改函数
voidgraduate:
:
display()定义派生类研究生的信息显示函数
voidgraduate:
:
readfile()定义派生类研究生的信息写入文件函数
voidgraduate:
:
write()定义派生类研究生的读文件函数
voidgraduate:
:
change_infor()定义派生类研究生的信息修改函数
voidteacher_asistant:
:
display()定义派生类助教的信息显示函数
voidteacher_asistant:
:
readfile()定义派生类助教的读文件函数
voidteacher_asistant:
:
write()定义派生类助教的信息写入文件函数
idteacher_asistant:
:
change_infor()定义派生类助教的信息修改函
voidmenu()对整个系统主界面的操作
voidselect()对输入信息的判断,以及实现整个系统的动态互动。
voidmain()对整个系统的函数的实现,整个主界面的引导
七、使用说明(操作手册)
1、登入操作界面:
2、选择“1”,可进行对学生的相关操作:
1、
“1”输入人事信息
“2”显示人事信息
“3”对信息的修改和删除
“4”返回主菜单
3、选择“2”,可进行对研究生的相关操作
“1”输入人事信息
“2”显示人事信息
“3”对信息的修改和删除
“4”单返回主菜
“0”退出
4、选择“3”、“4”可进行对教师和助教进行以上相同的抄作
“1”对教师的造作
“2”对助教的操作
“0”是控制退出系统的操作。
八、程序源代码
#include
#include
#include
#include
#include
#include
#include
intk=1,i;//定义一个标志变量
classbirthday
{//定义出生年月日类
public:
intyear;
intmonth;
intday;
};
classpeople
{//声明人员基类,以后在这个基础上派生出其它类
public:
people(){}
virtualvoidenter();//虚基函数,搭成一个框架,以后在此基础上扩充
virtualvoiddisplay();
virtualintget_no(){returnnumber;}
virtualchar*get_name(){returnname;}
virtualvoidchange_infor(){}//信息修改函数
virtualvoidreadfile(){}//从文件中读
virtualvoidwrite(){}//将信息写入文件
peopleoperator=(peoplep1);//运算符重载
intoperator==(peoplep1);
virtual~people(){};
protected:
charname[12];
intnumber;
charsex[12];
birthdaybir;
charid[15];
};
peoplepeople:
:
operator=(peoplep1)//定义运算符重载
{
strcpy(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);
returnp1;
}
intpeople:
:
operator==(peoplep1){
if(id==p1.id)return1;
elsereturn0;
}
voidpeople:
:
enter(){//定义信息输入函数
cout<<"输入姓名:
";cin>>name;
cout<<"输入编号:
";cin>>number;
cout<<"输入性别:
";cin>>sex;
cout<<"生日是(年月日):
";cin>>bir.year>>bir.month>>bir.day;
cout<<"身份证号:
";cin>>id;
}
voidpeople:
:
display(){//定义信息显示函数
cout< cout< } classstudent: virtualpublicpeople {//以公有方式派生出学生类 protected: charclassnumber[20]; public: student(){} virtualvoidenter(){people: : enter();cout<<"\n输入班级名称: ";cin>>classnumber;} virtualvoiddisplay(); virtualvoidreadfile(); virtualvoidwrite(); virtualvoidchange_infor(); virtual~student(){}; }; classteacher: virtualpublicpeople {//以公有方式派生出老师类 protected: charprincipalship[16]; chardepartment[16]; public: teacher(){} virtualvoidenter(){people: : enter();cout<<"\n输入老师的职务: ";cin>>principalship;cout<<"\n输入老师所在的部门: ";cin>>department;} virtualvoiddisplay(); virtualvoidreadfile(); virtualvoidwrite(); virtualvoidchange_infor(); virtual~teacher(){} }; // classgraduate: virtualpublicstudent {//以公有方式派生出研究生类 protected: charsubject[16]; charteacher_adviser[16]; public: graduate(){}; virtualvoidenter(){student: : enter();cout<<"\n输入研究生的专业: ";cin>>subject;cout<<"\n输入导师的情况: ";cin>>teacher_adviser;} virtualvoiddisplay(); virtualvoidreadfile(); virtualvoidwrite(); virtualvoidchange_infor(); virtual~graduate(){}; }; classteacher_asistant: publicteacher,publicgraduate {//以公有方式派生出助教类 public: teacher_asistant(){}; virtualvoidenter(){graduate: : enter();cout<<"\n请输入助教生所在职务: ";cin>>principalship;cout<<"\n请输入所在部门: ";cin>>department;} virtualvoiddisplay(); virtualvoidreadfile(); virtualvoidwrite(); virtualvoidchange_infor(); virtual~teacher_asistant(){} }; voidstudent: : display() {//定义派生类学生的信息显示函数 cout< cout< } voidstudent: : write(){//定义派生类学生的信息写入文件函数 studentstu; charch; ofstreammyfile("student.txt",ios: : app); do{ stu.enter(); myfile.write((char*)&stu,sizeof(stu)); cout<<"还需要输入下个学生的信息吗(y/n): "; cin>>ch;}while(ch=='y'||ch=='Y'); myfile.close(); } voidstudent: : readfile(){//定义派生类学生的读文件函数 ifstreammyfile("student.txt",ios: : nocreate); while(myfile){ studentstu; if(myfile.read((char*)&stu,sizeof(stu))){ if(stu.number! =-1)//删除一个学生的信息,通过不显示来定义删除 stu.display(); } } myfile.close(); } voidstudent: : change_infor(){//定义派生类学生的信息修改函数 studentstu; intnum,p; cout<<"请输入你要修改或者删除的学生的编号: "; cin>>num; fstreammyfile("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); cout<<"你是要修改还是要删除该学生的记录(1: 删除2: 修改): "; cin>>p; if(p==1){stu.number=-1;break;} else{ cout<<"请输入新的信息"< stu.enter();break; } } } myfile.write((char*)&stu,sizeof(stu)); myfile.close(); } voidteacher: : display(){ cout< cout< } voidteacher: : readfile(){ ifstreammyfile("teacher.txt",ios: : nocreate); while(myfile){ people*p; teachertec;p=&tec; if(myfile.read((char*)&tec,sizeof(tec))){ if(tec.number! =-1) p->display(); } } myfile.close(); } // voidteacher: : write(){ teachertec; charch; ofstreammyfile("teacher.txt",ios: : app); do{ tec.enter(); myfile.write((char*)&tec,sizeof(tec)); cout<<"还需要输入下个学生的信息吗(y/n): "; cin>>ch;}while(ch=='y'||ch=='Y'); myfile.close(); } voidteacher: : change_infor(){ teachertec; intnum,p; cout<<"请输入你要修改或者删除的老师的编号: "; cin>>num; fstreammyfile("teacher.txt",ios: : in|ios: : out); while(myfile.good()){ myfile.read((char*)&tec,sizeof(tec)); if(num==tec.number){ myfile.seekg(-sizeof(tec),ios: : cur); cout<<"你是要修改还是要删除该老师的记录(1: 删除2: 修改): "; cin>>p; if(p==1){tec.number=-1;break;} else{ cout<<"请输入新的信息"< tec.enter();break; } } } myfile.write((char*)&tec,sizeof(tec)); myfile.close(); } voidgraduate: : display(){ cout< cout<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 人事管理系统 word 文档 良心 出品