C语言设计的人事管理系统源码
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include<iostream.h> #include<string.h> #include<iomanip.h> #include<fstream.h> #include<stdio.h> #include<stdlib.h> #include<conio.h> int k=1,i; class birthday { public: int year; int month; int day; }; class people { public: people(){} //声明人员基类,以后在这个基础上派生出其它类 //定义一个标志变量 //定义出生年月日类
virtual void enter(){people::enter();cout<<"输入班级名称:";cin>>classnumber;} virtual void 百度文库isplay(); virtual void readfile(); virtual void write(); virtual void change_infor(); virtual ~student(){}; }; class teacher:virtual public people { protected: char principalship[16]; char department[16]; public: //以公有方式派生出老师类
cout<<setw(8)<<name<<setw(8)<<number<<setw(5)<<sex<<setw(4)<<bir.year<<setw(4)<<bir.mo nth<<setw(4)<<bir.day<<setw(10)<<id<<setw(12)<<classnumber<<endl; } void student::write(){ student stu; char ch; ofstream myfile("student.txt",ios::app); do{ stu.enter(); myfile.write((char *)&stu,sizeof(stu)); //定义派生类学生的信息写入文件函数
stu.enter();break; } } } myfile.write((char *)&stu,sizeof(stu)); myfile.close(); } void teacher::display(){ cout<<setw(8)<<" 姓 名 "<<setw(8)<<" 编 号 "<<setw(5)<<" 性 别 "<<setw(12)<<" 出 生 日 期 "<<setw(12)<<"身份证号"<<setw(10)<<"职务"<<setw(10)<<"部门"<<endl; cout<<setw(8)<<name<<setw(8)<<number<<setw(5)<<sex<<setw(4)<<bir.year<<setw(4)<<bir.mo nth<<setw(4)<<bir.day<<setw(12)<<id<<setw(10)<<principalship<<setw(10)<<department<<endl ; } void teacher::readfile(){ ifstream myfile("teacher.txt",ios::nocreate); while(myfile){ people *p; teacher tec;p=&tec; if(myfile.read((char*)&tec,sizeof(tec))){ if(tec.number!=-1) p->display(); } } myfile.close(); } // void teacher::write(){ teacher tec; char ch; ofstream myfile("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(); } void teacher::change_infor(){ teacher tec;
teacher(){} virtual void enter(){people::enter();cout<<"输入老师的职务: ";cin>>principalship;cout<<"\n 输入老师所在的部门:";cin>>department;} virtual void display(); virtual void readfile(); virtual void write(); virtual void change_infor(); virtual ~teacher(){} }; // class graduate:virtual public student { protected: char subject[16]; teacher adviser; public: graduate(){}; //以公有方式派生出研究生类
virtual void enter(); 基础上扩充 virtual void display(); virtual int get_no(){return number;} virtual char * get_name(){return name;} virtual void change_infor(){} virtual void readfile(){} virtual void write(){} people operator = (people p1); int operator == (people p1); virtual ~people(){}; protected: char name[12]; int number; char sex; birthday bir; char id[15]; };
return p1; } int people::operator ==(people p1){ if(id==p1.id) return 1; else return 0; } void people::enter(){ //定义信息输入函数 cout<<"输入姓名:"; cin>>name; cout<<"输入编号:"; cin>>number; cout<<"输入性别:"; cin>>sex; cout<<"生日是(年 月 日):"; cin>>bir.year>>bir.month>>bir.day; cout<<"身份证号:";cin>>id; } void people::display(){ //定义信息显示函数 cout<<setw(8)<<" 姓 名 "<<setw(8)<<" 编 号 "<<setw(8)<<" 性 别 "<<setw(8)<<" 出 生 日 期 "<<setw(8)<<"身份证号"<<endl; cout<<setw(8)<<name<<setw(8)<<number<<setw(8)<<sex<<setw(8)<<bir.year<<setw(8)<<bir.mo nth<<setw(8)<<bir.day<<setw(8)<<id<<endl; } class student:virtual public people { protected: char classnumber[20]; public: student(){} //以公有方式派生出学生类
virtual void enter(){student::enter();cout<<"输入研究生的专业: ";cin>>subject;cout<<"输入 导师的情况:"<<endl;adviser.enter();} 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(){}; //以公有方式派生出助教类
cout<<"请输入你要修改或者删除的学生的编号:"; cin>>num; 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); cout<<"你是要修改还是要删除该学生的记录(1:删除 2:修改):"; cin>>p; if(p==1){stu.number=-1;break;} else { cout<<"请输入新的信息"<<endl;
cout<<"还需要输入下个学生的信息吗(y/n):"; cin>>ch;}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.display(); } } myfile.close(); } void student::change_infor(){ student stu; int num,p; //定义派生类学生的信息修改函数 //删除一个学生的信息,通过不显示来定义
int num,p; cout<<"请输入你要修改或者删除的老师的编号:"; cin>>num; fstream myfile("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<<"请输入新的信息"<<endl; tec.enter();break; } } } myfile.write((char *)&tec,sizeof(tec)); myfile.close(); } void graduate::display(){ cout<<setw(8)<<" 姓 名 "<<setw(8)<<" 编 号 "<<setw(5)<<" 性 别 "<<setw(12)<<" 出 生 日 期 "<<setw(8)<<"身份证号"<<setw(8)<<"班级名称"<<setw(10)<<"专业"<<endl; cout<<setw(8)<<name<<setw(8)<<number<<setw(5)<<sex<<setw(4)<<bir.year<<setw(4)<<bir.mo nth<<setw(4)<<bir.day<<setw(8)<<id<<setw(8)<<classnumber<<setw(10)<<subject<<endl; cout<<"他的导师的情况是:"<<endl; adviser.display(); } void graduate::readfile(){ ifstream myfile("graduate.txt",ios::nocreate); while(myfile){ people *p; graduate gra;p=&gra; if(myfile.read((char*)&gra,sizeof(gra))){ if(gra.number!=-1) p->display(); } } myfile.close(); }
virtual void enter(){graduate::enter();cout<<" 请 输 入 助 教 生 所 在 职 务:";cin>>principalship;cout<<"请输入所在部门:";cin>>department;} virtual void display(); virtual void readfile(); virtual void write(); virtual void change_infor(); virtual ~teacher_asistant(){} }; void student::display() { //定义派生类学生的信息显示函数 cout<<setw(8)<<" 姓 名 "<<setw(8)<<" 编 号 "<<setw(5)<<" 性 别 "<<setw(12)<<" 出 生 日 期 "<<setw(12)<<"身份证号"<<setw(12)<<"班级名称"<<endl;
//虚基函数,搭成一个框架,以后在此
//信息修改函数 //从文件中读 //将信息写入文件 //运算符重载
people people::operator =(people p1)//定义运算符重载 { strcpy(name,p1.name); number=p1.number; sex=p1.sex; bir.day=p1.bir.day; bir.month=p1.bir.month; bir.year=p1.bir.year; strcpy(id,p1.id);
virtual void enter(){people::enter();cout<<"输入班级名称:";cin>>classnumber;} virtual void 百度文库isplay(); virtual void readfile(); virtual void write(); virtual void change_infor(); virtual ~student(){}; }; class teacher:virtual public people { protected: char principalship[16]; char department[16]; public: //以公有方式派生出老师类
cout<<setw(8)<<name<<setw(8)<<number<<setw(5)<<sex<<setw(4)<<bir.year<<setw(4)<<bir.mo nth<<setw(4)<<bir.day<<setw(10)<<id<<setw(12)<<classnumber<<endl; } void student::write(){ student stu; char ch; ofstream myfile("student.txt",ios::app); do{ stu.enter(); myfile.write((char *)&stu,sizeof(stu)); //定义派生类学生的信息写入文件函数
stu.enter();break; } } } myfile.write((char *)&stu,sizeof(stu)); myfile.close(); } void teacher::display(){ cout<<setw(8)<<" 姓 名 "<<setw(8)<<" 编 号 "<<setw(5)<<" 性 别 "<<setw(12)<<" 出 生 日 期 "<<setw(12)<<"身份证号"<<setw(10)<<"职务"<<setw(10)<<"部门"<<endl; cout<<setw(8)<<name<<setw(8)<<number<<setw(5)<<sex<<setw(4)<<bir.year<<setw(4)<<bir.mo nth<<setw(4)<<bir.day<<setw(12)<<id<<setw(10)<<principalship<<setw(10)<<department<<endl ; } void teacher::readfile(){ ifstream myfile("teacher.txt",ios::nocreate); while(myfile){ people *p; teacher tec;p=&tec; if(myfile.read((char*)&tec,sizeof(tec))){ if(tec.number!=-1) p->display(); } } myfile.close(); } // void teacher::write(){ teacher tec; char ch; ofstream myfile("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(); } void teacher::change_infor(){ teacher tec;
teacher(){} virtual void enter(){people::enter();cout<<"输入老师的职务: ";cin>>principalship;cout<<"\n 输入老师所在的部门:";cin>>department;} virtual void display(); virtual void readfile(); virtual void write(); virtual void change_infor(); virtual ~teacher(){} }; // class graduate:virtual public student { protected: char subject[16]; teacher adviser; public: graduate(){}; //以公有方式派生出研究生类
virtual void enter(); 基础上扩充 virtual void display(); virtual int get_no(){return number;} virtual char * get_name(){return name;} virtual void change_infor(){} virtual void readfile(){} virtual void write(){} people operator = (people p1); int operator == (people p1); virtual ~people(){}; protected: char name[12]; int number; char sex; birthday bir; char id[15]; };
return p1; } int people::operator ==(people p1){ if(id==p1.id) return 1; else return 0; } void people::enter(){ //定义信息输入函数 cout<<"输入姓名:"; cin>>name; cout<<"输入编号:"; cin>>number; cout<<"输入性别:"; cin>>sex; cout<<"生日是(年 月 日):"; cin>>bir.year>>bir.month>>bir.day; cout<<"身份证号:";cin>>id; } void people::display(){ //定义信息显示函数 cout<<setw(8)<<" 姓 名 "<<setw(8)<<" 编 号 "<<setw(8)<<" 性 别 "<<setw(8)<<" 出 生 日 期 "<<setw(8)<<"身份证号"<<endl; cout<<setw(8)<<name<<setw(8)<<number<<setw(8)<<sex<<setw(8)<<bir.year<<setw(8)<<bir.mo nth<<setw(8)<<bir.day<<setw(8)<<id<<endl; } class student:virtual public people { protected: char classnumber[20]; public: student(){} //以公有方式派生出学生类
virtual void enter(){student::enter();cout<<"输入研究生的专业: ";cin>>subject;cout<<"输入 导师的情况:"<<endl;adviser.enter();} 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(){}; //以公有方式派生出助教类
cout<<"请输入你要修改或者删除的学生的编号:"; cin>>num; 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); cout<<"你是要修改还是要删除该学生的记录(1:删除 2:修改):"; cin>>p; if(p==1){stu.number=-1;break;} else { cout<<"请输入新的信息"<<endl;
cout<<"还需要输入下个学生的信息吗(y/n):"; cin>>ch;}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.display(); } } myfile.close(); } void student::change_infor(){ student stu; int num,p; //定义派生类学生的信息修改函数 //删除一个学生的信息,通过不显示来定义
int num,p; cout<<"请输入你要修改或者删除的老师的编号:"; cin>>num; fstream myfile("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<<"请输入新的信息"<<endl; tec.enter();break; } } } myfile.write((char *)&tec,sizeof(tec)); myfile.close(); } void graduate::display(){ cout<<setw(8)<<" 姓 名 "<<setw(8)<<" 编 号 "<<setw(5)<<" 性 别 "<<setw(12)<<" 出 生 日 期 "<<setw(8)<<"身份证号"<<setw(8)<<"班级名称"<<setw(10)<<"专业"<<endl; cout<<setw(8)<<name<<setw(8)<<number<<setw(5)<<sex<<setw(4)<<bir.year<<setw(4)<<bir.mo nth<<setw(4)<<bir.day<<setw(8)<<id<<setw(8)<<classnumber<<setw(10)<<subject<<endl; cout<<"他的导师的情况是:"<<endl; adviser.display(); } void graduate::readfile(){ ifstream myfile("graduate.txt",ios::nocreate); while(myfile){ people *p; graduate gra;p=&gra; if(myfile.read((char*)&gra,sizeof(gra))){ if(gra.number!=-1) p->display(); } } myfile.close(); }
virtual void enter(){graduate::enter();cout<<" 请 输 入 助 教 生 所 在 职 务:";cin>>principalship;cout<<"请输入所在部门:";cin>>department;} virtual void display(); virtual void readfile(); virtual void write(); virtual void change_infor(); virtual ~teacher_asistant(){} }; void student::display() { //定义派生类学生的信息显示函数 cout<<setw(8)<<" 姓 名 "<<setw(8)<<" 编 号 "<<setw(5)<<" 性 别 "<<setw(12)<<" 出 生 日 期 "<<setw(12)<<"身份证号"<<setw(12)<<"班级名称"<<endl;
//虚基函数,搭成一个框架,以后在此
//信息修改函数 //从文件中读 //将信息写入文件 //运算符重载
people people::operator =(people p1)//定义运算符重载 { strcpy(name,p1.name); number=p1.number; sex=p1.sex; bir.day=p1.bir.day; bir.month=p1.bir.month; bir.year=p1.bir.year; strcpy(id,p1.id);