高校人事管理系统C代码

合集下载

高校教师人事管理系统(c和链表)

高校教师人事管理系统(c和链表)

高校教师人事管理系统(c和链表)#include "stdio.h"#include "stdlib.h"#include "string.h"#define FORMAT printf("编号姓名性别出生日期(格式:2010 08 01) 参加工作时间工资学院职称学位\n ");#define LEN sizeof(struct teacher)struct teacher *creat(void);void print(struct teacher *head);void save(struct teacher *head);struct teacher *read(void);struct teacher *add(void);struct teacher *array(struct teacher *head);struct teacher *del();struct teacher *modify();void find();void statistics();struct date{int year,month,day;};typedef struct teacher //编号、姓名、性别、出生日期、参加工作时间、工资、学院、职称(助教、讲师、副教授、教授)、学位(学士、硕士、博士){long number;int salary;char name[20], sex[10], date_time[20], college[20],title[20], degree[20] ;struct date birth;struct teacher *next;}TE;int n=0,m=0,n_1=0; //n:记录教师数目;m和n_1都是记录读取文件中的教师数目;TE * creat(void) //函数功能:创建teacher信息{TE *head=NULL, *p1=NULL, *p2=NULL;p1=p2=(TE *)malloc(LEN);printf("请输入教师信息:\n");FORMAT;scanf("%ld%s%s%d%d%d%s%d%s%s%s",&p1->number,p1->name, p1->sex, &p1->birth.year,&p1->birth.month,&p1->birth.day,&p1->date_time, &p1->salary, p1->college, p1->title, p1->degree);while(p1->number!=0){n+=1;if(n == 1) head=p1;else p2->next=p1;p2=p1;p1=(TE *)malloc(LEN);scanf("%ld%s%s%d%d%d%s%d%s%s%s",&p1->number,p1->name, p1->sex, &p1->birth.year,&p1->birth.month,&p1->birth.day,&p1->date_time, &p1->salary, p1->college, p1->title, p1->degree);//printf("OK!\n");}p2->next=NULL;free(p1);return(head);}void print(TE *head) //函数功能:输出信息{TE *p1=head;printf("共有教师 %d 名\n",m);FORMAT;if(head!=NULL)do{printf("%ld\t%s\t%s\t%d_%d_%d\t%s\t%d\t%s\t%s\t%s\n", p1->number, p1->name, p1->sex,p1->birth.year,p1->birth.month,p1->birth.day,&p1->date_time, &p1->salary, p1->college, p1->title, p1->degree);p1=p1->next;}while(p1!=NULL);}TE *del() //函数功能:删除信息{long can_num;TE *head,*p1,*p2;p1=p2=head=read();print(head);printf("请输入要删除的教师编号\n");scanf("%ld",&can_num);while(p1->number != can_num && p1->next !=NULL) { p2=p1; p1=p1->next; } //找出p1指向的节点if(p1->number == can_num){if(p1==head) head=p1->next;else p2->next=p1->next;printf("del: %ld\n",can_num);n--;printf("还有教师%d位\n",n);}else printf("没有你要查找的教师!\n");save(head);return(head);}void find() //函数功能:查找{int select;long find_num;charfind_name[20],find_time[20],find_college[20],find_title[20];TE *p1,*p2,*head;p1=p2=head=read();print(head);printf("按下列选项查询教师信息\n");printf("1.编号 2.姓名 3.参加工作时间 4.学院 5.职称 \n 请选择:");scanf("%d",&select);if(select==1){printf("请输入编号:");scanf("%ld",&find_num);while(p1->number != find_num && p1->next !=NULL){ p2=p1; p1=p1->next; }if(p1->number == find_num ){FORMAT;printf("%ld %s %s %d %d %d %s %d %s % s %s\n",p1->number, p1->name, p1->sex,p1->birth.year,p1->birth.month,p1->birth.day,&p1->date_time, &p1->salary, p1->college, p1->title, p1->degree);}else printf("没有要查找的教师信息!!\n");}if(select==2){printf("请输入姓名:");scanf("%s",find_name);while(strcmp(p1->name,find_name)!=0 && p1->next !=NULL ){ p2=p1; p1=p1->next; }if(strcmp(p1->name,find_name)==0){FORMAT;printf("%ld %s %s %d %d %d %s %d %s % s %s\n",p1->number, p1->name, p1->sex,p1->birth.year,p1->birth.month,p1->birth.day,&p1->date_time, &p1->salary, p1->college, p1->title, p1->degree);}else printf("没有要查找的教师信息!!\n");}if(select==3){int n_n=0;printf("请输入参加工作时间:");scanf("%s",find_time);while(p1 != NULL){if(strcmp(p1->date_time,find_time)==0){if(n_n ==0) FORMAT;printf("%ld %s %s %d %d %d %s %d %s % s %s\n",p1->number, p1->name, p1->sex,p1->birth.year,p1->birth.month,p1->birth.day,&p1->date_time, &p1->salary, p1->college, p1->title, p1->degree);n_n++;}p1=p1->next;}if(n_n == 0) printf("没有要查找的教师信息!!\n");}if(select==4){int n_n=0;printf("学院:");scanf("%s",find_college);while(p1 != NULL ){if(strcmp(p1->college,find_college)==0 ){if(n_n ==0) FORMAT;printf("%ld %s %s %d %d %d %s %d %s % s %s\n",p1->number, p1->name, p1->sex,p1->birth.year,p1->birth.month,p1->birth.day,&p1->date_time, &p1->salary, p1->college, p1->title, p1->degree);n_n++;}p2=p1; p1=p1->next;}if(n_n == 0) printf("没有要查找的教师信息!!\n");}if(select==5){int n_n=0;printf("职称:");scanf("%s",find_title);while(p1!=NULL ){if(strcmp(p1->title,find_title) ==0 ){if(n_n ==0) FORMAT;printf("%ld %s %s %d %d %d %s %d %s % s %s\n",p1->number, p1->name, p1->sex,p1->birth.year,p1->birth.month,p1->birth.day,&p1->date_time, &p1->salary, p1->college, p1->title, p1->degree);n_n++;}p2=p1; p1=p1->next;}if(n_n == 0) printf("没有要查找的教师信息!!\n");}}void statistics() //函数功能:统计{int birth_num=0,sum=0,title_num[4]={0},de_num[3]={0};float proport=0;TE *head,*p1,*p2;p1=head=read();print(p1);while(p1 != NULL){if(p1->birth.year >= 1980) birth_num++;p2=p1; p1=p1->next; sum++;}proport=(float)birth_num*100/sum;printf("\n1980后教师共有 %d 位,80后教师占教师总数的比率是:%4.2f \n",birth_num,proport);sum=0;p1=head;while(p1 != NULL){if(strcmp(p1->title,"助教")==0) title_num[0]++;if(strcmp(p1->title,"讲师")==0) title_num[1]++;if(strcmp(p1->title,"副教授")==0) title_num[2]++;if(strcmp(p1->title,"教授")==0) title_num[3]++;p2=p1; p1=p1->next; sum++;}for(int i=0; i<4 ;i++) sum+=title_num[i] ;proport=(float)(title_num[2]+title_num[3])/sum;printf("\n助教%d位、讲师%d位、副教授%d位、教授%d位。

c语言设计的人事管理系统源码

c语言设计的人事管理系统源码

#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(); //虚基函数,搭成一个框架,以后在此基础上扩充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];};people people::operator =(people p1)//定义运算符重载{strcpy(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);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(){people::enter();cout<<"输入班级名称:";cin>>classnumber;}virtual void display();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: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(){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(){};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;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));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;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;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;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();}void graduate::write(){graduate gra;char ch;ofstream myfile("graduate.txt",ios::app);do{gra.enter();myfile.write((char *)&gra,sizeof(gra));cout<<"还需要输入下个研究生的信息吗(y/n):";cin>>ch;}while(ch=='y'||ch=='Y');myfile.close();}void graduate::change_infor(){graduate gra;int num,p;cout<<"请输入你要修改或者删除的研究生的编号:";cin>>num;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);cout<<"你是要修改还是要删除该研究生的记录(1:删除2:修改):";cin>>p;if(p==1){gra.number=-1;break;}else {cout<<"请输入新的信息"<<endl;gra.enter();break;}}}myfile.write((char *)&gra,sizeof(gra));myfile.close();}void teacher_asistant::display(){cout<<setw(8)<<"姓名"<<setw(8)<<"编号"<<setw(5)<<"性别"<<setw(12)<<"出生日期"<<setw(12)<<"身份证号"<<setw(8)<<"班级名称"<<setw(10)<<"专业"<<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(8)<<id<<setw(8)<<classnumber<<setw(10)<<subject<<setw(10)<< principalship<<setw(10)<<department<<endl;cout<<"他的导师的情况是:"<<endl;adviser.display();}void teacher_asistant::readfile(){ifstream myfile("tec_asistant.txt",ios::nocreate);while(myfile){people *p;teacher_asistant tec_asis;p=&tec_asis;if(myfile.read((char*)&tec_asis,sizeof(tec_asis))){if(tec_asis.number!=-1)p->display();}}myfile.close();}void teacher_asistant::write(){teacher_asistant tec_asis;char ch;ofstream myfile("tec_asistant.txt",ios::app);do{tec_asis.enter();myfile.write((char *)&tec_asis,sizeof(tec_asis));cout<<"还需要输入下个助教生的信息吗(y/n):";cin>>ch;}while(ch=='y'||ch=='Y');myfile.close();}//void teacher_asistant::change_infor(){teacher_asistant tec_asis;int num,p;cout<<"请输入你要修改或者删除的助教生的编号:";cin>>num;fstream myfile("tec_asistant.txt",ios::in|ios::out);while(myfile.good()){myfile.read((char*)&tec_asis,sizeof(tec_asis));if(num==tec_asis.number){myfile.seekg(-sizeof(tec_asis),ios::cur);cout<<"你是要修改还是要删除该助教生的记录(1:删除2:修改):";cin>>p;if(p==1){tec_asis.number=-1;break;}else {cout<<"请输入新的信息"<<endl;tec_asis.enter();break;}}}myfile.write((char *)&tec_asis,sizeof(tec_asis));myfile.close();}void menu(){cout<<"\n\n\t\t**************************************************"<<endl;cout<<"\t\t*\t 人事管理系统\t *"<<endl;cout<<"\t\t*------------------------------------------------*"<<endl;cout<<" \t\t* 1.请输入人事信息 2.显示人事信息*"<<endl;cout<<" \t\t* 3.对信息的修改或删除 4.返回主菜单0.退出*"<<endl;cout<<"\t\t**************************************************"<<endl;cout<<" \t\t\t\t请选择操作(0=======4) "<<endl;cout<<"\t\t\t\t 请选择:";}void select(){people *pt;student st; teacher te; graduate gr; teacher_asistant t_a;if(i==1) pt=&st;else if(i==2) pt=&gr;else if(i==3) pt=&te;else if(i==4) pt=&t_a;do{int ch;cin>>ch;switch(ch){case 0:exit(0);case 1:pt->write();cout<<"你还想进行何种操作:";break;case 2:pt->readfile();cout<<"你还想进行何种操作:";break;case 3:pt->change_infor();cout<<"你还想进行何种操作:";break;case 4:k=0;break;default:cout<<"你的选择错误,请重新选择:";break;}}while(k);}void main(){b:cout<<"\n\n\t\t***************************************************"<<endl;cout<<"\t\t*\t 人事管理系统\t *"<<endl;cout<<"\t\t*-----------------------------------------------------*"<<endl;cout<<"\t\t* 1:学生*"<<endl;cout<<"\t\t* 2:研究生*"<<endl;cout<<"\t\t* 3:教师*"<<endl;cout<<"\t\t* 4:助教*"<<endl;cout<<"\t\t* 0:退出*"<<endl;cout<<"***************************************************"<<endl;cout<<"请选择(0---4):";cin>>i;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();select();break;}case 4:{system("cls");menu();select();break;}default :cout<<"你的选择有误,请重新选择:";break;}if(k==0)k=1;system("cls");goto b;}。

C语言人事管理系统设计

C语言人事管理系统设计

设计题目:人事管理系统设计目录:1.设计任务---------------------------------------------------------------------------------------------12.正文-----------------------------------------------------------------------------------------------------------2(1).系统模块图------------------------------------------------------------------------------------------3 (2).模块说明---------------------------------------------------------------------------------------------3 (3).用户使用说明---------------------------------------------------------------------------------------3 (4).测试结果---------------------------------------------------------------------------------------------33.设计小结--------------------------------------------------------------------------------------------------94.附录-----------------------------------------------------------------------------------------------------------10一.设计任务1、需求分析:人事档案信息采用文件存储,因而要提供文件的输入输出操作;根据学院人事的变动情况,添加删除记录,因而要提供文件的添加删除操作;根据编号和姓名进项查询,所以要提供文件的查找操作;高级编辑功能,就是提供文件的修改操作;统计功能要提供统计操作;排序功能要提供用排序算法对文件记录的排序;另外还要提供键盘式选择菜单以实现功能选择。

高校人事管理系统

高校人事管理系统

高校人事管理系统5、1源程序#include <fstream.h>//全局变量(代码表)char *Type[]={"行政人员","教师","一般员工","退休人员","返聘人员","临时工"}; char *Sex[]={"男","女"};char *Pos[]={"无","科级","处级","地级"};char *TechPos[]={"无","初级","中级","高级"};char *Party[]={"群众","中共党员","民主党派"};char *Study[]={"小学","初中","高中","大专","大学","硕士","博士"};class Date //日期类{private:int y,m,d;public:friend ostream& operator<<(ostream& os,Date& day);friend istream& operator>>(istream& is,Date& day);};ostream& operator<<(ostream& os,Date& day){os<<day.y<<"/"<<day.m<<"/"<<day.d;return os;}istream& operator>>(istream& is,Date& day){is>>day.y>>day.m>>day.d;return is;}class Person //人员类{private:int No; //编号int Type; //职工分类char Name[20];//姓名int Sex; //性别int Age; //年龄Date D1; //参加工作时间Date D2; //来院时间int Pos; //职务int TechPos; //职称int Party; //政治面貌int Study; //学历Person *next;public:Person(){next=0;}void Print(); //输出1个职工信息friend istream& operator>>(istream& is,Person &p); //重载">>",人员信息输入. friend class College;};void Person::Print(){cout<<No<<","<<::Type[Type]<<","<<Name<<","<<::Sex[Sex]<<","<<Age<<","<<D1<<","<<D2<<","<<::Pos[Pos]<<","<<::TechPos[TechPos]<<","<<::Party[Party]<<","<<::Study[Study]<<endl;}istream& operator>>(istream& is,Person &p){cout<<"编号:"; cin>>p.No;cout<<"职工分类[0-行政人员,1-教师,2-一般员工,3-退休人员,4-返聘人员,5-临时工]:"; cin>>p.Type;cout<<"姓名:"; cin>>;cout<<"性别[0-男,1-女]:"; cin>>p.Sex;cout<<"年龄:"; cin>>p.Age;cout<<"参加工作时间:"; cin>>p.D1;cout<<"来院时间:"; cin>>p.D2;cout<<"职务[0-无,1-科级,2-处级,3-地级]:";cin>>p.Pos;cout<<"职称[0-无,1-初级,2-中级,3-高级]:";cin>>p.TechPos;cout<<"政治面貌[0-群众,1-中共党员,2-民主党派]:"; cin>>p.Party;cout<<"学历[0-小学,1-初中,2-高中,3-大专,4-大学,5-硕士,6-博士]:";cin>>p.Study;return is;}class College //大学类{private:Person *PL; //职工链表void Clear(); //清除所有的职工结点(仅保留头结点) int Find(int ID,Person **p1,Person **p2); //查找职工结点public:College(); //构造~College(); //析构void Add(); //增加职工void Delete(); //删除职工void Modify(); //修改职工void Print(); //输出职工信息void Stat(); //综合统计void Save(); //职工信息存盘void Load(); //职工信息装入};College::College() //构造函数(创建1个头结点的链表) {Person *p=new Person;p->next=0;PL=p;cout<<"自动装入数据...\n";Load();}College::~College() //析构函数(仅保留1个头结点){Person *p=PL;while(p) //逐个删除结点,包括头结点{PL=p->next;delete p;p=PL;}PL=0;}void College::Add() //增加职工{cout<<"\n** 增加职工**\n";//创建新结点Person *pa=new Person;cin>>*pa;pa->next=0;//查找尾结点Person *p=PL;while(p->next)p=p->next;//连接p->next=pa;}void College::Clear() //清除所有的职工结点(仅保留头结点){Person *p=PL->next;while(p){PL->next=p->next;delete p;p=PL->next;}}//查找职工结点(返回1-找到,0-未找到.结点指针由p1返回,p2为前看指针) int College::Find(int ID,Person **p1,Person **p2){*p1=PL->next;*p2=PL;while(*p1){if((*p1)->No==ID)break; //找到else{*p2=*p1; //继续查找*p1=(*p1)->next;}}return *p1?1:0;}void College::Delete() //删除职工{cout<<"\n** 删除职工**\n";int No;Person *p1,*p2;cout<<"编号:"; cin>>No;if(!Find(No,&p1,&p2)){cout<<"指定的人员没有找到!\n";}else{p2->next=p1->next; //连接delete p1;cout<<"正确删除!\n";}}void College::Modify() //修改职工{cout<<"\n** 修改职工**\n";int No;Person *p1,*p2;cout<<"编号:"; cin>>No;if(!Find(No,&p1,&p2)){cout<<"指定的人员没有找到!\n";}else{p1->Print(); //输出原来的职工信息(做提示)cin>>*p1; //输入新的职工信息(更新)cout<<"修改完成!\n";}}void College::Print() //输出职工信息{cout<<"\n** 职工信息表**\n";cout<<"编号职工分类姓名性别年龄参加工作时间来院时间职务职称政治面貌学历\n";Person *p=PL->next;if(!p){cout<<"无职工记录!\n";return;}while(p) //遍历链表,输出职工信息{p->Print();p=p->next;}}void College::Stat() //综合统计{cout<<"\n** 综合统计**\n";int n1,n2,n3,n4;//n1-在职,n2-党员,n3-女工,n4-高职称或高学历(博士) n1=n2=n3=n4=0;Person *p=PL->next;while(p){if(p->Type!=3&&p->Type!=4&&p->Type!=5)n1++; //在职计数if(p->Party==1)n2++; //党员计数if(p->Sex==1)n3++; //女教工计数if(p->Study==6||p->TechPos==3)n4++; //高级职称/高学历计数p=p->next;}//统计数据输出cout<<"在职人员人数:"<<n1<<endl;cout<<"中共党员人数:"<<n2<<endl;cout<<"女工人数:"<<n3<<endl;cout<<"高学历/高职称人数:"<<n4<<endl;}void College::Save() //职工信息存盘{ofstream f("Person.dat",ios::out|ios::binary); //打开文件//遍历输出至文件Person *p=PL->next;while(p){f.write((char *)p,sizeof(Person));p=p->next;}f.close(); //关闭文件cout<<"职工信息已经保存在Person.dat.\n";}void College::Load() //职工信息装入{//清除现有结点(保留头结点)Clear();//打开文件ifstream f("Person.dat",ios::in|ios::binary);//建立结点,读数据Person *p=PL; //尾结点指针while(1){Person *pa=new Person; //建立新结点f.read((char *)pa,sizeof(Person)); //读入数据if(f){p->next=pa; //连接新结点p=pa; //更新尾结点指针}else{delete pa;break;}}//关闭文件f.close();}void main(){char ch;College c; //定义大学对象//显示主菜单,接受选择,并分支调用大学类的相应功能的成员函数do{cout<<"\n☆☆高校人事管理系统☆☆\n";cout<<"1-增加职工\n";cout<<"2-删除职工\n";cout<<"3-修改职工\n";cout<<"4-输出职工信息\n";cout<<"5-综合统计\n";cout<<"6-数据存盘\n";cout<<"7-数据装入\n";cout<<"8-退出\t请选择(1-8):";cin>>ch;switch(ch){case '1': c.Add(); break;case '2': c.Delete();break;case '3': c.Modify();break;case '4': c.Print(); break;case '5': c.Stat(); break;case '6': c.Save(); break;case '7': c.Load(); break;}}while(ch!='8');}5、2数据文件Person.dat:(Person类数据作为记录的二进制格式文件)class Person //人员类{private:int No; //编号int Type; //职工分类char Name[20];//姓名int Sex; //性别int Age; //年龄Date D1; //参加工作时间Date D2; //来院时间int Pos; //职务int TechPos; //职称int Party; //政治面貌int Study; //学历Person *next;public:Person(){next=0;}void Print(); //输出1个职工信息friend istream& operator>>(istream& is,Person &p); //重载">>",人员信息输入. friend class College;};5、3运行结果参考自动装入数据...☆☆高校人事管理系统☆☆1-增加职工2-删除职工3-修改职工4-输出职工信息5-综合统计6-数据存盘7-数据装入8-退出请选择(1-8):4** 职工信息表**编号职工分类姓名性别年龄参加工作时间来院时间职务职称政治面貌学历1,教师,wu,男,36,1993/5/1,2003/3/1,无,高级,群众,硕士2,教师,liu,男,22,2003/7/1,2003/7/1,无,无,群众,大学3,行政人员,tao,男,40,1984/7/1,1998/7/1,科级,高级,中共党员,大学4,教师,luo,男,25,1993/7/1,1993/7/1,无,初级,群众,硕士5,教师,he,女,22,2003/7/1,2003/7/1,无,无,群众,大学6,返聘人员,lin,男,65,1958/7/1,1958/7/1,处级,高级,中共党员,大学7,教师,zhao,女,22,2003/7/1,2003/7/1,无,无,群众,大学8,教师,quan,女,30,1998/7/1,1998/7/1,地级,中级,群众,大学☆☆高校人事管理系统☆☆1-增加职工2-删除职工3-修改职工4-输出职工信息5-综合统计6-数据存盘7-数据装入8-退出请选择(1-8):5** 综合统计**在职人员人数:7中共党员人数:2女工人数:3高学历/高职称人数:3☆☆高校人事管理系统☆☆1-增加职工2-删除职工3-修改职工4-输出职工信息5-综合统计6-数据存盘7-数据装入8-退出请选择(1-8):8 Press any key to continue。

C 课设高校人员信息管理系统附全部代码

C  课设高校人员信息管理系统附全部代码

《基于C++的面向对象程序设计实例》课程设计报告报告题目:高校人员信息管理系统作者所在系部:计算机科学与工程系作者所在专业:计算机科学与技术作者所在班级:作者姓名:指导教师姓名:完成时间:2010年6月《基于C++的面向对象程序设计实例》任务书一.目的与要求1、目的(1)要求学生能够熟练掌握C++语言的基本知识和技能。

(2)基本掌握面向对象程序设计的基本思路和方法。

(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

2、基本要求(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计。

(2)在系统的设计中,要求运用面向对象的机制(继承、派生及多态性)来实现系统功能,并且要建立清晰的类层次关系。

(3)在系统设计中要分析和定义各个类,每个类中要有各自的数据成员和成员函数。

(4)主函数中提供菜单选项,并给出足够的选择信息以及提示信息。

(5)程序具有一定的健壮性,不会因为用户的输入错误引起程序运行错误而中断执行。

对输入值的类型、大小范围、字符串的长度等,进行正确性检查,对不合法的输入值给出出错信息,指出错误类型,等待重新输入。

3、创新要求在基本要求达到后,可根据实际情况进行创新设计,如根据查找结果进行修改的功能及设计出比较友好的界面等。

二.验收方式完成设计内容之后,即可开始验收。

验收时,首先由学生简要说明所做题目的思路、设计结构及实现过程,然后运行程序并进行测试,对输出结果作出解释,同时认真回答教师提出的问题。

三.课设报告在完成验收之后,提交课设报告。

其中报告中需包括系统设计要求,设计思路,系统功能模块图,系统流程图,类的层次图(包括类成员列表),调试过程,关键程序代码,总结,参考书目等。

另外,课设报告要严格遵守模板文件的格式要求,思路清晰,内容详实丰富。

四.成绩评定课设总成绩=验收成绩(50%)+课程设计报告成绩(30%)+程序源代码(10%)+课设态度、考勤与遵守教学制度情况(10%)五.说明1、每位同学在以下的题目中任选一个来完成。

人事管理系统c语言版

人事管理系统c语言版

⼈事管理系统c语⾔版int menu(){printf("请按提⽰输⼊完毕操作!\n");printf("1.查询员⼯信息\n");printf("2.统计员⼯数量\n");printf("3.录⼊员⼯信息\n");printf("4.删除员⼯信息\n");printf("5.按id排序全部员⼯\n");printf("6.打印全部员⼯信息\n");printf("7.退出系统\n");return 0;}如menu()函数所看到的,该系统⼀共同拥有7个功能#include <stdio.h>#include <stdlib.h>#include <string.h>struct emp{int id;char name[50];struct emp * next;// struct emp * prev;};struct emp * initList();struct emp * addListTailNode(struct emp * head);struct emp * deleteListNode(struct emp * head,int id);struct emp * searchEmp(struct emp * head,int id);int printList(struct emp * l);int printNode(struct emp * p);struct emp * sortList(struct emp * head);int getListLen(struct emp * head);int writeToDisk(struct emp * head);struct emp * readFromDisk();int menu();int usage(struct emp * head);#include "emp.h"int main(){struct emp * head;head=readFromDisk();usage(head);return 0;}struct emp * initList(){struct emp * head;head=(struct emp *)malloc(sizeof(struct emp));head->next=NULL;return head;}struct emp * addListTailNode(struct emp * head){int id;char name[50];struct emp * p, * last , * check;last = head;while(last->next!=NULL){last=last->next;}printf("依次输⼊:员⼯id号,姓名!\n");scanf("%d%s",&id,&name);check = head;while(check!=last){ //遍历check=check->next;if(id==check->id){printf("加⼊�失败!员⼯id号反复!\n");return head;}}p=(struct emp *)malloc(sizeof(struct emp));p->id=id;strcpy(p->name,name);//last->next=p;last=p;p->next=NULL;printf("%s员⼯信息已加⼊�!\n",p->name);return head;}struct emp * deleteListNode(struct emp * head,int id){struct emp * p,* q;p = head->next;while(p!=NULL){if(p->next->id==id){break;}p=p->next;}if(head->next==NULL){printf("书籍信息为空!删除失败!\n");}else{q = p->next;p->next = q->next;printf("%s书籍信息被删除!\n",q->name);free(q);}return head;}struct emp * searchEmp(struct emp * head,int id){//查询,返回节点信息 struct emp * p;p = head->next;while(p!=NULL){if(p->id==id){break;}p=p->next;}return p;}int printNode(struct emp * p){//打印节点信息if(p!=NULL){printf("员⼯id: %d 员⼯姓名:%s\n",p->id,p->name);}else{printf("系统内⽆该员⼯信息!\n");}return 0;}int printList(struct emp * head){ //打印整条链表struct emp * p;p = head->next;while(p!=NULL){printNode(p);p=p->next;}return 0;}struct emp * sortList(struct emp * head){//排序struct emp * p,* q;int temp_id;char temp_name[50];for(p=head->next;p!=NULL;p=p->next){for(q=p->next;q!=NULL;q=q->next){if(p->id>q->id){temp_id = q->id;q->id = p->id;p->id = temp_id;//strcpy(temp_name,q->name);strcpy(q->name,p->name);strcpy(p->name,temp_name);}}}return head;}int getListLen(struct emp * head){int len=0;struct emp * p;p=head->next;while(p!=NULL){len++;p=p->next;}return len;}int writeToDisk(struct emp * head){FILE * fp;struct emp * p;if((fp = fopen("D:\\emp.hhtx", "w")) == 0){printf("写⼊失败……!\n");return 0;}//p=head->next;while(p!=NULL){fwrite(p,sizeof(struct emp),1,fp);printf("%d %s\n",p->id,p->name);p=p->next;}fclose(fp);return 0;}struct emp * readFromDisk(){FILE * fp;struct emp * head,* last,* p,* temp;head = initList();if((fp = fopen("D:\\emp.hhtx", "r")) == 0){printf("载⼊失败……未找到存档数据!\n\n"); return head;}//last = head;p=(struct emp *)malloc(sizeof(struct emp)); while(p!=NULL){p=(struct emp *)malloc(sizeof(struct emp)); fread(p,sizeof(struct emp),1,fp);printf("读取数据: %d %s\n",p->id,p->name); //last->next=p;last=p;p=p->next;}fclose(fp);printf("系统数据初始化完毕!");return head;}int menu(){printf("请按提⽰输⼊完毕操作!\n");printf("1.查询员⼯信息\n");printf("2.统计员⼯数量\n");printf("3.录⼊员⼯信息\n");printf("4.删除员⼯信息\n");printf("5.按id排序全部员⼯\n");printf("6.打印全部员⼯信息\n");printf("7.退出系统\n");return 0;}int usage(struct emp * head){int x,id;struct emp * p;menu();while(1){printf("请输⼊序列号:");scanf("%d",&x);switch(x){case 1:printf("输⼊所要查询的员⼯的id号:");scanf("%d",&id);p = searchEmp(head,id);printNode(p);printf("---------------------------------\n");break;case 2:printf("系统中⼀共存在%d个员⼯\n",getListLen(head)); break;case 3:head=addListTailNode(head);printf("---------------------------------\n");break;case 4:printf("输⼊所要删除的员⼯的id号:");scanf("%d",&id);head=deleteListNode(head,id);printf("---------------------------------\n");break;case 5:printf("排序開始……\n");head=sortList(head);printf("排序已完毕!\n");printf("---------------------------------\n");break;case 6:printList(head);printf("---------------------------------\n");break;case 7:writeToDisk(head);printf("保存完毕……\n");printf("已退出系统!\n");printf("---------------------------------\n");return 0;default:return 0;}}return 0;}。

高校人事管理系统课程设计C++版

高校人事管理系统课程设计C++版

一.需求分析1.目的与意义、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、2.系统流程图二.总体设计1.系统功能分析执行程序后,按界面的显示,选择1—8种操作。

选1,增加人员资料,资料包括编号、职工类别、姓名、性别、年龄、来院时间、职务、职称、党派、学历。

选2,删除人员信息。

选3,修改人员信息,可以选择要修改的内容。

选4,查询人员信息,可按编号或姓名查询。

选5,数据存盘。

选6,数据装入。

选7,显示所有信息。

选8,退出。

2.系统功能模块划分与设计三.详细设计1.源程序代码#include<>#include<>#include<>#include<>class person{private:int no;...\n";}void save()面设计cout<<"**"<<endl;cout<<" 高校人事管理系统"<<endl;cout<<" "<<endl;cout<<" 1---增加人员资料"<<endl;cout<<" 2---删除人员信息"<<endl;cout<<" 3---修改人员信息"<<endl;cout<<" 4---查询人员信息"<<endl;cout<<" 5---数据存盘"<<endl;cout<<" 6---数据装入"<<endl;cout<<" 7---显示所有信息"<<endl;cout<<" 8---退出(1-8):"<<endl;cout<<"**"<<endl;cout<<"**"<<endl;2.各功能模块实现添加功能void add()编号查询bool find1(){int id;person *ahead=myfirst;person *follow=ahead;cout<<"请输入编号:"<<endl;cin>>id;cout<<"****"<<endl;if(ahead==NULL){cout<<"无人员信息!"<<endl;return false;}else{while(ahead!=NULL){if(ahead->getnum()==id){printf1(ahead);return true;}else{follow=ahead;ahead=ahead->getnext();}}cout<<"无此人信息:"<<endl;return false;}}2.按姓名查询bool find2( ){char nm[20];person *ahead=myfirst;person *follow=ahead;cout<<"输入姓名";cin>>nm;cout<<"****"<<endl;if(ahead==NULL){cout<<"无人员信息"<<endl;return false;}else{while(ahead!=NULL){if(strcmp(ahead->getname(),nm)==0){printf1(ahead);return true;}else{follow=ahead;ahead=ahead->getnext();}}cout<<"查无此人:"<<endl;return false;}}数据存盘功能void save(){ofstream fperson;("",ios::out);person *p=myfirst;while(p){fperson<<p->getnum()<<"\t"<<p->gettype()<<"\t"<<p->getname()<<"\t"<<p->ge tsex()<<"\t"<<p->getage()<<"\t"<<p->gettime()<<"\t"<<p->getpos()<<"\t"<<p->gettec hpos()<<"\t"<<p->getparty()<<"\t"<<p->getstudy();fperson<<endl;p=p->getnext();}();cout<<"保存数据已经完成"<<endl;}数据装入功能void load(){int nnum,nage;charntype[20],nname[20],nsex[20],ntime[20],npos[20],ntechpos[20],nparty[20],nstudy[2 0];ifstream fperson;("",ios::in);while()){fperson>>nnum>>ntype>>nname>>nsex>>nage>>ntime>>npos>>ntechpos>>np arty>>nstudy;insertatlast(nnum,ntype,nname,nsex,nage,ntime,npos,ntechpos,nparty,nstudy);}();cout<<"\n人员和相关数据已经装入.....\n";}显示功能void printf(){person *ahead=myfirst;cout<<"编号---姓名---性别---年龄---职工类型---职务---职称---学历---政治面貌---来院时间\n"<<endl;while(ahead!=NULL){ cout<<setiosflags(ios::left)<<setw(4)<<ahead->getnum()<<setiosflags(ios::left)<<set w(6)<<ahead->getname() ;cout<<setiosflags(ios::left)<<setw(5)<<ahead->getsex()<<setiosflags(ios::left)<<setw( 4)<<ahead->getage() ;cout<<setiosflags(ios::left)<<setw(10)<<ahead->gettype()<<seti osflags(ios::left)<<setw(6)<<ahead->getpos() ;cout<<setiosflags(ios::left)<<setw(6)<<ahead->gettechpos()<<setiosflags(ios::left)<<s etw(6)<<ahead->getstudy();cout<<setiosflags(ios::left)<<setw(9)<<ahead->getparty()<<setiosflags(ios::left)<<set w(12)<<ahead->gettime()<<endl;ahead=ahead->getnext();}}五.系统调试1.没有调用#include<>导致strcpy()操作不合法。

高校人事管理系统程序设计源代码

高校人事管理系统程序设计源代码

目录新建一个头文件类,名字为:,再建一个源文件,名字随意,代码按顺序粘贴进去即可运行。

错误!未定义书签。

? 头文件:错误!未定义书签。

? 源文件:错误!未定义书签。

新建一个头文件类,名字为:,再建一个源文件,名字随意,代码按顺序粘贴进去即可运行。

头文件:#include <iostream>#include <fstream>using namespace std;dd(n1);i1++;}else if(b==2) dd(n2);i2++;}else if(b==3) dd(n3);i3++;}else if(b==4) dd(n4);i4++;}else if(b==5){break;}else{cout<<"输入有误!请重试!"<<endl;cout<<endl;system ("pause");system ("cls");continue;}}}ave(file);file<<endl;file<<i2<<endl; ave(file); file<<endl;file<<i3<<endl; ave(file); file<<endl;file<<i4<<endl; ave(file);();}Oxz; ead(file);}file>>i2; Ojs;ead(file);}file>>i3; Oyb;ead(file);}file>>i4; Otx;ead(file);}();}Oxz==g){h=g-1;xz[h].show();z=1;editPer(g,z); Ojs==g){h=g-1;js[h].show();z=2;editPer(g,z); Oyb==g){h=g-1;yb[h].show();z=3;editPer(g,z); Otx==g){h=g-1;tx[h].show();z=4;editPer(g,z); ame,nam)==0) {xz[t].show();x=1;editPer(xz[t].NOxz,x); Oxz,x);ame,nam)==0){js[t].show();x=2;editPer(js[t].NOjs,x); Ojs,x);ame,nam)==0){yb[t].show();x=3;editPer(yb[t].NOyb,x); Oyb,x);ame,nam)==0){tx[t].show();x=4;editPer(tx[t].NOtx,x); Otx,x);dd(n1);cout<<endl<<"是否保存(y/n)"<<endl;cin>>su2;if(su2=='y'||su2=='Y'){FileSave();}else break;}if(z==2)js[n2].add(n2);cout<<endl<<"是否保存(y/n)"<<endl; cin>>su2;if(su2=='y'||su2=='Y'){FileSave();}else break;}if(z==3){yb[n3].add(n3);cout<<endl<<"是否保存(y/n)"<<endl; cin>>su2;if(su2=='y'||su2=='Y'){FileSave();}else break;}if(z==4)tx[n4].add(n4);cout<<endl<<"是否保存(y/n)"<<endl;cin>>su2;if(su2=='y'||su2=='Y'){FileSave();}else break;}}else break;break;}}Oxz--; Ojs--; Oyb--; Otx--;职人员 2.党员 3.女性人员 4.高学历高职称人员"<<endl;int r;cin>>r;if(r==1){z=i1+i2+i3;cout<<"在职人员数:"<<z<<endl; }else if(r==2){for(i=0;i<i1;i++){if(strcmp(xz[i].zzmm ,"党员")==0) g++;}for(i=0;i<i2;i++){if(strcmp(js[i].zzmm,"党员")==0) g++;}for(i=0;i<i3;i++){if(strcmp(yb[i].zzmm,"党员")==0) g++;}for(i=0;i<i4;i++){if(strcmp(tx[i].zzmm,"党员")==0) g++;}cout<<"党员数:"<<g<<endl; }else if(r==3){for(i=0;i<i1;i++){if(strcmp(xz[i].sex,"女")==0)g++;}for(i=0;i<i2;i++){if(strcmp(js[i].sex,"女")==0)g++;}for(i=0;i<i3;i++){if(strcmp(yb[i].sex,"女")==0)g++;}for(i=0;i<i4;i++){if(strcmp(tx[i].sex,"女")==0)g++;}cout<<"女性人员数:"<<g<<endl; }else if(r==4){int g=0,h=0,c=0;for(i=0;i<i1;i++){if(strcmp(xz[i].zgxl,"大学")==0)g++;}for(i=0;i<i2;i++){if(strcmp(js[i].zgxl,"大学")==0)g++;}for(i=0;i<i3;i++){if(strcmp(yb[i].zgxl,"大学")==0) g++;}for(i=0;i<i4;i++){if(strcmp(tx[i].zgxl,"大学")==0) g++;}for(i=0;i<i1;i++){if(strcmp(xz[i].zgxl,"高中")==0) h++;}for(i=0;i<i2;i++){if(strcmp(js[i].zgxl,"高中")==0) h++;}for(i=0;i<i3;i++){if(strcmp(yb[i].zgxl,"高中")==0) h++;for(i=0;i<i4;i++){if(strcmp(tx[i].zgxl,"高中")==0) h++;}for(i=0;i<i1;i++){if(strcmp(xz[i].zgxl,"初中")==0) h++;}for(i=0;i<i2;i++){if(strcmp(js[i].zgxl,"初中")==0) h++;}for(i=0;i<i3;i++){if(strcmp(yb[i].zgxl,"初中")==0) h++;}for(i=0;i<i4;i++)if(strcmp(tx[i].zgxl,"初中")==0)h++;}cout<<"大学人数:"<<g<<" 高中人数:"<<h<<" 初中人数:"<<c<<endl; }else{cout<<"统计的类型错误!"<<endl;system("PAUSE");}cout<<"是否继续人事统计:Y继续、其他退出"<<endl;char x;cin>>x;if(x!='y' && x!='Y')break;}}。

学校人事管理系统 c语言编写

学校人事管理系统  c语言编写

学校人事管理系统注:开始输入的管理员的姓名和学号是,xx 2013#include 〈stdio。

h>#include <stdlib.h〉#include <windows.h〉typedef struct teacher{char name[20];char sex[20];char birth[20];char post[20];//职称int age;char timein[20];//入校时间}teac;teac tea[1000];int count = 0,flag1 = 0;char str[20],Administrator[20]= ”xx”,accounts[20]= ”2013";void enter();//进入void init();//初始化void scan();//查看void find();//查找void change();//修改void sum();//统计void del();//删除void add();//添加void rank();//排序void save();//保存void copy(teac *t1,teac *t2);//赋值void main(){int m;enter();init();while (1){system("cls");//清屏printf(”\n\n*********学校人事管理系统*********”);printf(”\n________________________________________________\n");printf(”\n*1.查看职工信息表\n”);printf("\n*2。

查找职工\n");printf("\n*3.修改职工信息\n");printf("\n*4。

统计同一类型职工的人数\n");printf("\n*5。

c++高校人事档案管理系统(2021整理)

c++高校人事档案管理系统(2021整理)

高校人事档案管理系统设计方法和根本原理:一、问题描述〔功能要求〕:某高校,主要人员有:在职人员〔行政人员、教师、一般员工〕、退休人员、返聘人员和临时工。

现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。

要求:1) 添加删除功能:能根据学院人事的变动情况,添加删除记录;2) 查询功能:能根据编号和姓名进行查询;3) 编辑功能〔高级〕:根据查询对相应的记录进行修改,并存储;4) 统计功能:能根据多种参数进行人员的统计〔在职人数、党员人数、女工人数、高学历高职称人数〕;5) 保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和翻开。

6) 人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。

2、问题的解决方案:源代码#include<iostream>#include<fstream>#include<cstring>#include<iomanip>using namespace std;int k;class person{private:char num[10]; //编号char type[20]; //种类char name[20]; //姓名char sex[10]; //性别char age[10]; //年龄char staff[20]; //职务char zhichen[20]; //职称char zzmm[20]; //政治面貌char zgxl[20]; //最高学历char rzsj[20]; //任职时间char lysj[30]; //来院时间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 p[100];person pp[100];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); file<<p[j].getbianhao()<<endl;file<<p[j].gettype()<<endl;file<<p[j].getname()<<endl;file<<p[j].getsex()<<endl;file<<p[j].getage()<<endl;file<<p[j].getstaff()<<endl;file<<p[j].getzhichen()<<endl;file<<p[j].getzzmm()<<endl;file<<p[j].getzgxl()<<endl;file<<p[j].getrzsj()<<endl;file<<p[j].getlysj()<<endl;j++;file.close();}void person::tongji() //{int a=0;int b=0;int c=0;int d=0;int k=1;ifstream filem("添加人员.txt",ios_base::in); while(!filem.eof()){filem>>pp[k].getnum();filem>>pp[k].gettype();filem>>pp[k].getname();filem>>pp[k].getsex();filem>>pp[k].getage();filem>>pp[k].getstaff();filem>>pp[k].getzhichen();filem>>pp[k].getzzmm();filem>>pp[k].getzgxl();filem>>pp[k].getrzsj();filem>>pp[k].getlysj();if(strcmp(pp[k].gettype(),"行政人员")==0||strcmp(pp[k].gettype(),"教师")==0||strcmp(pp[k].gettype(),"一般员工")==0)a++;if(strcmp(pp[k].getzzmm(),"党员")==0)b++;if(strcmp(pp[k].getsex(),"nv")==0)c++;if(strcmp(pp[k].getzgxl(),"boshi")==0)d++;k++;}filem.close();cout<<"在职人数"<<setw(12)<<"党员人数"<<setw(12)<<"女工人数"<<setw(12)<<"高学历人数"<<endl;cout<<a<<setw(12)<<b<<setw(12)<<c<<setw(12)<<d<<endl;}void person::xiugai() //{int k=1;ifstream filem("添加人员.txt",ios_base::in);while(!filem.eof()){filem>>pp[k].getnum();filem>>pp[k].gettype();filem>>pp[k].getname();filem>>pp[k].getsex();filem>>pp[k].getage();filem>>pp[k].getstaff();filem>>pp[k].getzhichen();filem>>pp[k].getzzmm();filem>>pp[k].getzgxl();filem>>pp[k].getrzsj();filem>>pp[k].getlysj();k++;}filem.close();cout<<"请输入要修改的人的编号:"<<endl;int x,y;cin>>x;cout<<"请输入编号为"<<x<<"的人需要修改的工程的代号:"<<endl;cout<<"1:编号-2:人员类型-3:姓名-4:性别-5:年龄-6:职务-7:职称-8:政治面貌-9:最高学历-10:任职时间-11:来院时间"<<endl;cin>>y;switch(y){case 1:{cout<<"请输入新的编号"; cin>>pp[x].getnum() ;}break;case 2:{cout<<"请输入新的人员类型"; cin>>pp[x].gettype();} break;case 3:{cout<<"请输入新的姓名";cin>>pp[x].getname();}break;case 4:{cout<<"请输入新的性别";cin>>pp[x].getsex();}break;case 5:{cout<<"请输入新的年龄";cin>>pp[x].getage();}break;case 6:{cout<<"请输入新的职务";cin>>pp[x].getstaff();}break;case 7:{cout<<"请输入新的职称";cin>>pp[x].getzhichen();} break;case 8:{cout<<"请输入新的政治面貌";cin>>pp[x].getzzmm();} break;case 9:{cout<<"请输入新的最高学历";cin>>pp[x].getzgxl();} break;case 10:{cout<<"请输入新的任职时间";cin>>pp[x].getrzsj();} break;case 11:{cout<<"请输入新的来院时间";cin>>pp[x].getlysj();} break;}ofstream file1("添加人员.txt",ios_base::trunc);for(k=1;k<=bianhao;k++){file1<<pp[k].getnum()<<endl;file1<<pp[k].gettype()<<endl;file1<<pp[k].getname()<<endl;file1<<pp[k].getsex()<<endl;file1<<pp[k].getage()<<endl;file1<<pp[k].getstaff()<<endl;file1<<pp[k].getzhichen()<<endl;file1<<pp[k].getzzmm()<<endl;file1<<pp[k].getzgxl()<<endl;file1<<pp[k].getrzsj()<<endl;file1<<pp[k].getlysj()<<endl;}file1.close();cout<<"修改并保存完毕"<<endl;}void person::shancu() //{int z;ifstream filem("添加人员.txt",ios_base::in);int k=1;while(!filem.eof()){filem>>pp[k].getnum();filem>>pp[k].gettype();filem>>pp[k].getname();filem>>pp[k].getsex();filem>>pp[k].getage();filem>>pp[k].getstaff();filem>>pp[k].getzhichen();filem>>pp[k].getzzmm();filem>>pp[k].getzgxl();filem>>pp[k].getrzsj();filem>>pp[k].getlysj();k++;}filem.close();cout<<"请输入要被删除信息的人的编号:"<<endl;cin>>z;while(z<1||z>bianhao){cout<<"没有找到你要删除的人,请重新输入:"<<endl;cin>>z;} for(k=1;k<=bianhao;k++){if(z==k)continue;ofstream file2("添加人员.txt",ios_base::trunc);file2<<pp[k].getnum()<<endl;file2<<pp[k].gettype()<<endl;file2<<pp[k].getname()<<endl;file2<<pp[k].getsex()<<endl;file2<<pp[k].getage()<<endl;file2<<pp[k].getstaff()<<endl;file2<<pp[k].getzhichen()<<endl;file2<<pp[k].getzzmm()<<endl;file2<<pp[k].getzgxl()<<endl;file2<<pp[k].getrzsj()<<endl;file2<<pp[k].getlysj()<<endl;file2.close();}cout<<"删除记录完毕"<<endl;}void person::find() //{cout<<"1:按编号查询--2:按姓名查询-请选择(1-2)"<<endl;int m;cin>>m;while(m<1||m>2){cout<<"请重新输入(1-2)"<<endl;cin>>m;}switch(m){case 1:{char n[10];cout<<"请输入要查找的编号:";cin>>n;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)<<"来院时间"<<endl;while(!filem.eof()){filem>>pp[k].getnum();filem>>pp[k].getname();filem>>pp[k].getsex();filem>>pp[k].getage();filem>>pp[k].getstaff();filem>>pp[k].getzhichen();filem>>pp[k].getzzmm();filem>>pp[k].getzgxl();filem>>pp[k].getrzsj();filem>>pp[k].getlysj();if(strcmp(pp[k].getnum(),n)==0){cout<<pp[k].getnum()<<setw(9)<<pp[k].gettype()<<setw(5)<<pp[k].getnam e()<<setw(5)<<pp[k].getsex()<<setw(5)<<pp[k].getage()<<setw(5)<<pp[k].getstaff()<<setw(5)<<pp[k].getzhichen()<<setw(9)<<pp[k].getzzmm()<<setw(10)<<pp[k].getzgxl()<<setw(10)<<pp[k].getrzsj()<<setw(10)<<pp[k].getlysj()<<endl;break;} k++;if(filem.eof()){cout<<endl;cout<<" 警告:没有要查找的人!!!!!!!!!!";}}filem.close();} break;case 2:{char nname[20];cout<<"请输入要查找的姓名:";cin>>nname;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)<<"来院时间"<<endl;while(!filem.eof()){filem>>pp[k].getnum();filem>>pp[k].gettype();filem>>pp[k].getsex();filem>>pp[k].getage();filem>>pp[k].getstaff();filem>>pp[k].getzhichen();filem>>pp[k].getzzmm();filem>>pp[k].getzgxl();filem>>pp[k].getrzsj();filem>>pp[k].getlysj();if(strcmp(pp[k].getname(),nname)==0){cout<<pp[k].getnum()<<setw(9)<<pp[k].gettype()<<setw(5)<<pp[k].getnam e()<<setw(5)<<pp[k].getsex()<<setw(5)<<pp[k].getage()<<setw(5)<<pp[k].getstaff()<<setw(5)<<pp[k].getzhichen()<<setw(9)<<pp[k].getzzmm()<<setw(10)<<pp[k].getzgxl()<<setw(10)<<pp[k].getrzsj()<<setw(10)<<pp[k].getlysj()<<endl;break;} k++;if(filem.eof()){cout<<endl;cout<<" 警告:没有要查找的人!!!!!!!!!!";}}filem.close();}break;}}void person::tjry() //{int v,l=1;char type2[20];char name2[20];char sex2[10];char age2[10];char staff2[20];char zhichen2[20];char zzmm2[20];char zgxl2[20];char rzsj2[20];char lysj2[30];cout<<"请输入要添加的人数"<<endl;cin>>k;p[1].getbianhao()=pp[k1].getbianhao();v=bianhao;for(int i=v+1;i<=v+k;i++){cout<<"请输入第"<<l<<"个人的信息"<<endl;cout<<"人员类型"; cin>>type2;cout<<"姓名:"; cin>>name2;cout<<"性别:"; cin>>sex2;cout<<"年龄:"; cin>>age2;cout<<"职务:"; cin>>staff2;cout<<"职称:"; cin>>zhichen2;cout<<"政治面貌:"; cin>>zzmm2;cout<<"最高学历:"; cin>>zgxl2;cout<<"任职时间:"; cin>>rzsj2;cout<<"来院时间:"; cin>>lysj2;p[i].setperson(type2,name2,sex2,age2,staff2,zhichen2,zzmm2,zgxl2,rzsj 2,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)<<"来院时间"<<endl;while(!filem.eof()){filem>>pp[k].getbianhao();filem>>pp[k].gettype();filem>>pp[k].getname();filem>>pp[k].getsex();filem>>pp[k].getage();filem>>pp[k].getstaff();filem>>pp[k].getzhichen();filem>>pp[k].getzzmm();filem>>pp[k].getzgxl();filem>>pp[k].getrzsj();filem>>pp[k].getlysj();cout<<pp[k].getbianhao()<<setw(9)<<pp[k].gettype()<<setw(5)<<pp[k].ge tname()<<setw(5)<<pp[k].getsex()<<setw(5)<<pp[k].getage()<<setw(5)<<pp[k].getstaff()<<setw(5)<<pp[k].getzhichen()<<setw(9)<<pp[k].getzzmm()<<setw(10)<<pp[k].getzgxl()<<setw(10)<<pp[k].getrzsj()<<setw(10)<<pp[k].getlysj()<<endl;k++;}k1=--k;filem.close();}void menu(){person pjk;int c;cout<<endl;cout<<"1.添加人员信息并保存"<<endl;cout<<"2.删除人员信息"<<endl;cout<<"3.修改人员信息"<<endl;cout<<"4.查询人员信息"<<endl;cout<<"5.统计人员信息"<<endl;cout<<"6.显示所有信息"<<endl;cout<<"7.退出"<<endl;cout<<" 请选择(1-7): "<<endl;cin>>c;switch(c){case 1: pjk.tjry();menu();break;case 2:pjk.del();menu(); break;case 3:pjk.xiugai();menu(); break;case 4:pjk.find() ;cout<<endl<<endl; menu();break;case 5:pjk.tongji();menu(); break;case 6:pjk.output();menu();break;case 7:exit(1);break;}}void main(){menu(); }。

高校人事管理系统C 程序设计源代码

高校人事管理系统C 程序设计源代码

目录新建一个头文件类,名字为:,再建一个源文件,名字随意,代码按顺序粘贴进去即可运行。

头文件:#include <iostream>#include <fstream>using namespace std;dd(n1);i1++;}else if(b==2)dd(n2);i2++;}else if(b==3)dd(n3);i3++;}else if(b==4)dd(n4);i4++;}else if(b==5){FileSave();break;}else{cout<<"输入有误!请重试!"<<endl;cout<<endl;system ("pause");system ("cls");continue;}}}ave(file);file<<endl;file<<i2<<endl;ave(file);file<<endl;file<<i3<<endl;ave(file);file<<endl;file<<i4<<endl;ave(file);file<<endl;();}Oxz;ead(file);}file>>i2;Ojs;ead(file);}file>>i3;Oyb;ead(file);}file>>i4;Otx;ead(file);}();}Oxz==g){h=g-1;xz[h].show();z=1;editPer(g,z);Ojs==g){h=g-1;js[h].show();z=2;editPer(g,z);Oyb==g){h=g-1;yb[h].show();z=3;editPer(g,z);Otx==g){h=g-1;tx[h].show();z=4;editPer(g,z);ame,nam)==0){xz[t].show();x=1;editPer(xz[t].NOxz,x);Oxz,x);ame,nam)==0){js[t].show();x=2;editPer(js[t].NOjs,x);Ojs,x);ame,nam)==0){yb[t].show();x=3;editPer(yb[t].NOyb,x);Oyb,x);ame,nam)==0){tx[t].show();x=4;editPer(tx[t].NOtx,x);Otx,x);dd(n1);cout<<endl<<"是否保存(y/n)"<<endl;cin>>su2;if(su2=='y'||su2=='Y'){FileSave();}else break;}if(z==2){js[n2].add(n2);cout<<endl<<"是否保存(y/n)"<<endl;cin>>su2;if(su2=='y'||su2=='Y'){FileSave();}else break;}if(z==3){yb[n3].add(n3);cout<<endl<<"是否保存(y/n)"<<endl;cin>>su2;if(su2=='y'||su2=='Y'){FileSave();}else break;}if(z==4){tx[n4].add(n4);cout<<endl<<"是否保存(y/n)"<<endl;cin>>su2;if(su2=='y'||su2=='Y'){FileSave();}else break;}}else break;break;}}Oxz--;Ojs--;Oyb--;Otx--;职人员 2.党员 3.女性人员 4.高学历高职称人员"<<endl;int r;cin>>r;if(r==1){z=i1+i2+i3;cout<<"在职人员数:"<<z<<endl;}else if(r==2){for(i=0;i<i1;i++){if(strcmp(xz[i].zzmm ,"党员")==0)g++;}for(i=0;i<i2;i++){if(strcmp(js[i].zzmm,"党员")==0)g++;}for(i=0;i<i3;i++){g++;}for(i=0;i<i4;i++){if(strcmp(tx[i].zzmm,"党员")==0) g++;}cout<<"党员数:"<<g<<endl;}else if(r==3){for(i=0;i<i1;i++){if(strcmp(xz[i].sex,"女")==0)g++;}for(i=0;i<i2;i++){if(strcmp(js[i].sex,"女")==0)g++;}for(i=0;i<i3;i++){if(strcmp(yb[i].sex,"女")==0)g++;}for(i=0;i<i4;i++){if(strcmp(tx[i].sex,"女")==0)g++;}cout<<"女性人员数:"<<g<<endl; }else if(r==4){int g=0,h=0,c=0;for(i=0;i<i1;i++){if(strcmp(xz[i].zgxl,"大学")==0)g++;}for(i=0;i<i2;i++){g++;}for(i=0;i<i3;i++){if(strcmp(yb[i].zgxl,"大学")==0) g++;}for(i=0;i<i4;i++){if(strcmp(tx[i].zgxl,"大学")==0) g++;}for(i=0;i<i1;i++){if(strcmp(xz[i].zgxl,"高中")==0) h++;}for(i=0;i<i2;i++){if(strcmp(js[i].zgxl,"高中")==0) h++;}for(i=0;i<i3;i++){if(strcmp(yb[i].zgxl,"高中")==0) h++;}for(i=0;i<i4;i++){if(strcmp(tx[i].zgxl,"高中")==0) h++;}for(i=0;i<i1;i++){if(strcmp(xz[i].zgxl,"初中")==0) h++;}for(i=0;i<i2;i++){if(strcmp(js[i].zgxl,"初中")==0) h++;}for(i=0;i<i3;i++){if(strcmp(yb[i].zgxl,"初中")==0)h++;}for(i=0;i<i4;i++){if(strcmp(tx[i].zgxl,"初中")==0)h++;}cout<<"大学人数:"<<g<<" 高中人数:"<<h<<" 初中人数:"<<c<<endl; }else{cout<<"统计的类型错误!"<<endl;system("PAUSE");}cout<<"是否继续人事统计:Y继续、其他退出"<<endl;char x;cin>>x;if(x!='y' && x!='Y')break;}}。

人事信息管理系统(含源代码)

人事信息管理系统(含源代码)

*******************实践教学*******************兰州理工大学计算机与通信学院2013年春季学期C程序设计课程设计题目:人事信息管理系统专业班级:计算机二班*名:***学号:********指导教师:***成绩:前言人事信息管理系统是一种典型的管理信息系统。

管理信息系统(MIS)是一门跨越若干领域的新学科。

在强调管理,强调信息的现代社会中越来越普及。

管理系统能够实现管理信息系统化是一个企事业单位不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以人事信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。

一直以来人们使用传统人工的方式管理档案,这种管理方式存在着许多缺点。

如:效率低、保密性差。

时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

因此,随着企业的壮大和发展,传统的管理方式已不在适应企业的需要。

而使用计算机对人事信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高企事业单位人事信息管理工作的效率,是企事业单位人事管理部门的科学化、正规化管理的重要途径,也是企事业单位与世界接轨的重要途径。

人事信息资源管理系统是企业员工管理的一个重要内容。

当今社会人员流动越来越频繁,人事管理工作也变得越来越复杂。

如果能够实现人事管理的自动化,无疑将给企业管理部门带来很大的方便。

人事信息管理就是把分散在企业单位的职工信息实行统一、集中、规范的收集管理,建立分类编号管理、电脑存储查询等现代化、专业化的管理系统。

企业人事管理的对象是企业、企业化管理的事业单位及职工本人。

人事信息管理为企业单位和个人提供信息输入、信息修改、信息查询、工资调整、依据信息出具个人的基本档案等服务;为企业单位和个人提供信息的收集、整理、保管服务。

目录前言 (I)摘要 (I)1需求分析 (1)1.1问题描述 (1)1.2系统功能 (2)1.3编程环境与工具 (2)2总体设计 .................................................................................................................................... 错误!未定义书签。

C语言课程设计报告—人事管理系统1

C语言课程设计报告—人事管理系统1

人事管理系统前言:现代计算机技术的发展为人们的学习、生活、工作提供了很大的帮助, 各行各业都需要特定计算系统的运用, 我们需要了解这些系统是怎么样为我们服务以及他们是怎样编辑出来的。

我们需要学习C语言编程, 根据课堂讲授内容, 做相应的自主练习, 消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题, 逐渐培养编程能力、用计算机解决实际问题的能力, 能够按照要求编辑一些基本的程序, 提高自己的思维能力。

题目:(1)某高校主要人员有: 在职人员(行政人员、教师、一般员工)、退休人员及临时工。

现在需要储存这些人员的人事档案信息, 内容包括编号、姓名、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。

其中, 人员编号唯一, 不能重复。

(2)添加删除功能:能根据学院人事的变动情况, 添加删除记录。

(3)查询功能: 能根据编号和姓名进行查询。

(4)编辑功能(高级): 根据查询对相应的记录进行修改并记录。

(5)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数, 高学历高职称人数), 统计要求同时显示被统计着的信息。

排序功能: 按照年龄、来院时间进行排序。

保存功能: 能对输入的数据进行相应的存储。

分析:我们编辑的程序要能够满足题目的要求, 可以进行这么多的功能的计算!但是在开始我们运行使用程序的时候必须要知道我们要运用这些功能中的哪一个!这就要求我们可以程序中任意选择我们所需要的功能!很显然我们要编辑存储人员的信息自然要运用到文件!而人员的信息必须要以结构体的形式来表示才能够方便我们提取信息!我们选择了要运行的功能分支之后!这些功能是以主函数以外的被调函数!当有需要时被调函数还可以调用其他的被吊函数!例如我们题目中的统计和查询功能, 就可以用这种方式来编辑程序!方便清楚!设计:很显然主程序要用到SWICTH函数, 这样可以选择要运行的那个功能的函数来执行, 而其他的功能函数则不必运行!三、解题思路1.定义结构struct staff{char num[10];char name[20];char sex[10];int age;char title[20];char p_landscape[30];char Qualifications[30];int Service_time;char come_time[30];char category[30];}staff[100];2.主程序进入主菜单函数void main(){menu();}/*******************主菜单函数**********************/void menu(){char w0;do{system("cls");fflush(stdin); /*清除缓冲区输入*/puts("***********************高校人事管理系统**********************\n\n");puts("\t\t\t\t1)增加人员信息\n"); puts("\t\t\t\t2)删除人员信息 \n"); puts("\t\t\t\t3)查询人员信息\n"); puts("\t\t\t\t4)修改人员信息\n"); puts("\t\t\t\t5)统计人员信息\n"); puts("\t\t\t\t6)对人员排序\n");puts("\t\t\t\t7)保存人员信息\n"); puts("\t\t\t\t8)浏览人员信息\n"); puts("\t\t\t\t9)退出\n");printf("\t\t\t\t 请选择 [ ]\b\b"); w0=getchar();}while(w0<'1'||w0>'9'); switch(w0-48){case 1:add();break;case 2:delete_data();break;case 3:search();break;case 4:modify();break; case 5:stastic();break;case 6:sort();break;case 7:save();break;case 8:browse();break;case 9:break;} }(1)查询功能int search_data()/*{int i,flag; char s[30],w0;system("cls");/*清屏*/ n=load(); do{fflush(stdin); /*清除缓冲区输入*/printf(" 通过1)编号 2)姓名 [ ]\b\b"); w0=getchar(); }while(w0<'1'||w0>'2'); if(w0=='1'){/*按编号查找*/ flag=0;puts("输入人员编号:"); scanf("%s",s); for(i=0;i<n;i++){if(strcmp(s,staff[i].num)==0){printf_face();printf_one(staff[i]); flag=1;break;} else continue; }if(flag==0)puts("该人员不存在!"); }else {/*按姓名查找*/ flag=0;puts("输入人员姓名:"); scanf("%s",s); for(i=0;i<n;i++){if(strcmp(s,staff[i].name)==0){printf_face();printf_one(staff[i]);flag=1;break;}else continue;}if(flag==0) puts("该人员不存在!");}return i;void search(){int k;char w1;loop: k=search_data();do{fflush(stdin); /*清除缓冲区输入*/printf("1)回主菜单 2)退出 3)继续查询 [ ]\b\b"); w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')menu();else if(w1=='2')exit(0);void add(){char w0,w1;loop: system("cls");puts("请输入编号(如001):");scanf("%s",s.num);if(test(s.num))goto loop;/*编号重复*/puts("请输入姓名:");scanf("%s",);puts("请输入性别(男,女):");scanf("%s",s.sex);puts("请输入年龄:");scanf("%d",&s.age);puts("请输入职务(教授副教授讲师助教学生后勤人员):");scanf("%s",s.duty);puts("请输入职称 (无初级高级 ):");scanf("%s",s.title);puts("请输入政治面貌( 党员非党员 ):");scanf("%s",s.p_landscape);puts("请输入最高学历(小学初中高中大学硕士学位更高):");scanf("%s",s.Qualifications);puts("请输入任职时间:");scanf("%d",&s.Service_time);puts("请输入来院时间(如20050101):");scanf("%s",e_time);puts("请输入人员类别(行政人员教师一般员工退休人员临时工):");scanf("%s",s.category);do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');switch(w0){case 1:save(s);break;case 2:break;}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续增加人员信息 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')goto loop;else if(w1=='2')menu();else exit(0);}(3)保存信息void save(){char w0;save_all();printf("所有信息已保存!\n");do{fflush(stdin); /*清除缓冲区输入*/printf("1) 回主菜单 2) 退出 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1')menu();else exit(0);}void save_all()/*保存所有数据函数*/{int i;FILE *fp;if((fp=fopen("text.txt","wb"))==NULL){printf("无法打开文件!");exit(0);}for(i=0;i<n;i++){if(staff[i].age!=0)fprintf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",staff[i].num,staff[i].name, staff[i].sex,staff[i].age,staff[i].duty,staff[i].title,staff[i].p_landscape,sta ff[i].Qualifications,staff[i].Service_time,staff[i].come_time,staff[i].category );else continue;}fclose(fp);}(4)删除人员void delete_data(){int k; char w0,w1;loop: k=search_data();if(k<n){do{fflush(stdin); /*清除缓冲区输入*/printf("确认要删除该人员信息? 1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){staff[k].age=0;save_all();puts("该人员信息已被删除!");} } do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续删除数据 2)回主菜单 3)退出w1=getchar();}while(w1<'1'||w1>'3'); if(w1=='1') goto loop; else if(w1=='2')menu(); else exit(0); }(5)修改人员信息 void modify() {int k=0,w0,g; char h[30],w1,w2; loop: g=search_data(); if(g<n){ do{puts("\t\t\t 修改: 1)编号"); puts("\t\t\t 2)姓名"); puts("\t\t\t 3)性别"); puts("\t\t\t 4)年龄"); puts("\t\t\t 5)职务"); puts("\t\t\t 6)职称"); puts("\t\t\t 7)政治面貌"); puts("\t\t\t 8)最高学历"); puts("\t\t\t 9)任职时间"); puts("\t\t\t 10)来院时间"); puts("\t\t\t 11)人员类别"); printf(" 请选择 : [ ]\b\b"); scanf("%d",&w0);}while(w0<1||w0>11); switch(w0){case 1:puts("请输入新编号:");scanf("%s",h);strcpy(staff[g].num,h);break; case 2:puts("请输入姓名:");scanf("%s",h);strcpy(staff[g].name,h);break; case 3:puts("请输入性别:");scanf("%s",h);strcpy(staff[g].sex,h);break; case 4:puts("请输入年龄:");scanf("%d",&k);staff[g].age=k;break; case 5:puts("请输入职务:");scanf("%s",h);strcpy(staff[g].duty,h);break; case 6:puts("请输入职称:");scanf("%s",h);strcpy(staff[g].title,h);break;scanf("%s",h);strcpy(staff[g].p_landscape,h);break;case 8:puts("请输入最高学历:");scanf("%s",h);strcpy(staff[g].Qualifications,h);break;case 9:puts("请输入任职时间:");scanf("%d",&k);staff[g].Service_time=k;break;case 10:puts("请输入来院时间:");scanf("%s",h);strcpy(staff[g].come_time,h);break;case 11:puts("请输入人员类别:");scanf("%s",h);strcpy(staff[g].category,h);break;}do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)保存 2)否[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'2');if(w1=='1'){save_all(); puts("保存修改成功!");}}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续修改 2)回主菜单 3)退出[ ]\b\b");w2=getchar();}while(w2<'1'||w2>'3');if(w2=='1')goto loop;else if(w2=='2')menu();else exit(0);}(6)统计人员信息void stastic(){int i,count;char w0,w1;n=load();if(n==0){puts("没有数据!");getchar();menu();}loop: system("cls");do{fflush(stdin); /*清除缓冲区输入*/printf("通过1)在职人员 2)党员\n");printf(" 3)女工人数 4)最高学历 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'4');if(w0=='1'){/*统计在职人员*/printf_face();for(i=0,count=0;i<n&&staff[i].age;i++)if(strcmp(staff[i].category,"退休人员")!=0&&strcmp(staff[i].category,"临时工")!=0){count++; printf_one(staff[i]);} printf("\t\t\t\t 共有%d 条记录",count); }else if(w0=='2'){/*统计党员*/ printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].p_landscape,"党员count++; printf_one(staff[i]);} printf("\t\t\t\t 共有%d 条记录",count);}else if(w0=='3'){/*统计女工人员*/ printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].sex,"女")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t 共有%d 条记录",count);}else {/*统计高学历人员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].Qualifications,"硕士学位")==0||strcmp(staff[i].Qualifications,"更高")==0){count++; printf_one(staff[i]);} printf("\t\t\t\t 共有%d 条记录",count);} do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)继续统计 2)回主菜单 3)退出 [ ]\b\b"); w1=getchar();}while(w1<'1'||w1>'3'); if(w1=='1') goto loop; else if(w1=='2')menu(); else exit(0); }(6) 排序功能void sort() {int i,j;char w0,w1; struct staff s1; loop: n=load();system("cls"); do{fflush(stdin); /*清除缓冲区输入*/printf("通过 1)年龄 2)来院时间w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){/*按年龄排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(staff[i].age>staff[j].age){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}else {/*按来院时间排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(strcmp(staff[i].come_time,staff[j].come_time)>0){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}printf_face();for(i=0;i<n;i++) /*显示排序结果*/printf_one(staff[i]);do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)回主菜单 2)继续排序 3)退出[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') menu();else if(w1=='2')goto loop;else exit(0);}四、运行与测试报告*********************************高校人事管理系统******************************1)增加人员信息2)删除人员信息3)查询人员信息4)修改人员信息5)统计人员信息6)对人员排序7)保存人员信息8)浏览人员信息9)退出请选择【 1】请输入编号(如001):20071003335请输入姓名:majianbo请输入性别(男,女):nan请输入年龄:20请输入职务(教授副教授讲师助教学生后勤人员): jiaoshou请输入职称 (无初级高级 ):gaoji请输入政治面貌( 党员非党员 ):danyuan请输入最高学历(小学初中高中大学硕士学位更高): shuoshi请输入任职时间:20070901请输入来院时间(如20050101):20070901请输入人员类别(行政人员教师一般员工退休人员临时工): jiaoshi是否保存?1)是 2)否 [1]该信息已成功保存!1)继续增加人员信息 2)回主菜单 3)退出 [ ]程序:#include<stdlib.h>#include <stdio.h>#include <string.h>struct staff/*定义结构体*/{char num[10];/*编号*/char name[20];/*姓名*/char sex[10];/*性别*/int age;/*年龄*/char duty[20];/*职务*/char title[20];/*职称*/char p_landscape[30];/*政治面貌*/char Qualifications[30];/*学历*/int Service_time;/*任职时间*/char come_time[30];/*来院时间*/char category[30];/*人员类别*/}staff[100];struct staff s;int n;void menu();void printf_face()/*显示数据结构项目函数*/{printf("编号姓名性别年龄职务职称政治面貌学历任职时间来院时间人员类别\n");}void printf_one(struct staff p)/*输出单个数据函数*/{printf("%-4s%-7s%-5s%-3d%-7s%-5s%-8s%-12s%-5d%-12s%-3s\n",p.num,,p.se x,p.age,p.duty,p.title,p.p_landscape,p.Qualifications,p.Service_time,e_tim e,p.category);}int load()/*加载函数*/{int i=0;FILE *fp;if((fp=fopen("text.txt","rb"))==NULL){return 0; exit(0);}for(i=0;!feof(fp);i++){ /*输出数据到结构体*/fscanf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",staff[i].num,staff[i].name,staff [i].sex,&staff[i].age,staff[i].duty,staff[i].title,staff[i].p_landscape,staff[i ].Qualifications,&staff[i].Service_time,staff[i].come_time,staff[i].category);} fclose(fp);return i;}int search_data()/*查找单个数据函数*/{int i,flag;char s[30],w0;system("cls");/*清屏*/n=load();do{fflush(stdin); /*清除缓冲区输入*/printf(" 通过1)编号 2)姓名 [ ]\b\b");w0=getchar(); }while(w0<'1'||w0>'2');if(w0=='1'){/*按编号查找*/flag=0;puts("输入人员编号:");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,staff[i].num)==0){printf_face();printf_one(staff[i]);flag=1;break;}else continue;}if(flag==0)puts("该人员不存在!");}else {/*按姓名查找*/flag=0;puts("输入人员姓名:");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,staff[i].name)==0){printf_face();printf_one(staff[i]);flag=1;break;}else continue;}if(flag==0) puts("该人员不存在!");}return i;}void save_all()/*保存所有数据函数*/{int i;FILE *fp;if((fp=fopen("text.txt","wb"))==NULL){printf("无法打开文件!");exit(0);}for(i=0;i<n;i++){if(staff[i].age!=0)fprintf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",staff[i].num,staff[i].name, staff[i].sex,staff[i].age,staff[i].duty,staff[i].title,staff[i].p_landscape,sta ff[i].Qualifications,staff[i].Service_time,staff[i].come_time,staff[i].category );else continue;}fclose(fp);}int test(char h[10])/*检查编号是否重复*/{int i;n=load();for(i=0;i<n;i++)if(strcmp(h,staff[i].num)==0){puts("输入的编号有重复!请重新输入编号!");system("pause");return 1;}return 0;}void single_save(struct staff p)/*保存单个数据函数*/{FILE *fp;if((fp=fopen("text.txt","ab+"))==NULL){printf("无法打开文件!");exit(0);}fprintf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",p.num,,p.sex,p.age,p.duty ,p.title,p.p_landscape,p.Qualifications,p.Service_time,e_time,p.category);printf("该信息已成功保存!\n");fclose(fp);}/*********************************修改模块**********************************/ void modify(){int k=0,w0,g;char h[30],w1,w2;loop: g=search_data();if(g<n){do{puts("\t\t\t修改: 1)编号");puts("\t\t\t 2)姓名");puts("\t\t\t 3)性别");puts("\t\t\t 4)年龄");puts("\t\t\t 5)职务");puts("\t\t\t 6)职称");puts("\t\t\t 7)政治面貌");puts("\t\t\t 8)最高学历");puts("\t\t\t 9)任职时间");puts("\t\t\t 10)来院时间");puts("\t\t\t 11)人员类别");printf(" 请选择 : [ ]\b\b");scanf("%d",&w0);}while(w0<1||w0>11);switch(w0){case 1:puts("请输入新编号:");scanf("%s",h);strcpy(staff[g].num,h);break;case 2:puts("请输入姓名:");scanf("%s",h);strcpy(staff[g].name,h);break;case 3:puts("请输入性别:");scanf("%s",h);strcpy(staff[g].sex,h);break;case 4:puts("请输入年龄:");scanf("%d",&k);staff[g].age=k;break;case 5:puts("请输入职务:");scanf("%s",h);strcpy(staff[g].duty,h);break;case 6:puts("请输入职称:");scanf("%s",h);strcpy(staff[g].title,h);break;case 7:puts("请输入政治面貌:");scanf("%s",h);strcpy(staff[g].p_landscape,h);break;case 8:puts("请输入最高学历:");scanf("%s",h);strcpy(staff[g].Qualifications,h);break;case 9:puts("请输入任职时间:");scanf("%d",&k);staff[g].Service_time=k;break;case 10:puts("请输入来院时间:");scanf("%s",h);strcpy(staff[g].come_time,h);break;case 11:puts("请输入人员类别:");scanf("%s",h);strcpy(staff[g].category,h);break;}do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)保存 2)否[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'2');if(w1=='1'){save_all(); puts("保存修改成功!");}}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续修改 2)回主菜单 3)退出[ ]\b\b");w2=getchar();}while(w2<'1'||w2>'3');if(w2=='1')goto loop;else if(w2=='2')menu();else exit(0);}/************************保存模块******************************/void save(){char w0;save_all();printf("所有信息已保存!\n");do{fflush(stdin); /*清除缓冲区输入*/printf("1) 回主菜单 2) 退出 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1')menu();else exit(0);}/*************************查找模块*****************************/ void search(){int k;char w1;loop: k=search_data();do{fflush(stdin); /*清除缓冲区输入*/printf("1)回主菜单 2)退出 3)继续查询 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')menu();else if(w1=='2')exit(0);else goto loop;}/***************************增加模块*****************************/ void add(){char w0,w1;loop: system("cls");puts("请输入编号(如001):");scanf("%s",s.num);if(test(s.num))goto loop;/*编号重复*/puts("请输入姓名:");scanf("%s",);puts("请输入性别(男,女):");scanf("%s",s.sex);puts("请输入年龄:");scanf("%d",&s.age);puts("请输入职务(教授副教授讲师助教学生后勤人员):");scanf("%s",s.duty);puts("请输入职称 (无初级高级 ):");scanf("%s",s.title);puts("请输入政治面貌( 党员非党员 ):");scanf("%s",s.p_landscape);puts("请输入最高学历(小学初中高中大学硕士学位更高):");scanf("%s",s.Qualifications);puts("请输入任职时间:");scanf("%d",&s.Service_time);puts("请输入来院时间(如20050101):");scanf("%s",e_time);puts("请输入人员类别(行政人员教师一般员工退休人员临时工):");scanf("%s",s.category);do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');switch(w0-48){case 1:single_save(s);break;case 2:break;}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续增加人员信息 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')goto loop;else if(w1=='2')menu();else exit(0);}/*******************************删除模块*****************************/void delete_data(){int k; char w0,w1;loop: k=search_data();if(k<n){do{fflush(stdin); /*清除缓冲区输入*/printf("确认要删除该人员信息? 1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){staff[k].age=0;save_all();puts("该人员信息已被删除!");}}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续删除数据 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') goto loop;else if(w1=='2')menu();else exit(0);}/********************************统计模块*******************************/void stastic(){int i,count;char w0,w1;n=load();if(n==0){puts("没有数据!");getchar();menu();}loop: system("cls");do{fflush(stdin); /*清除缓冲区输入*/printf("通过1)在职人员 2)党员\n");printf(" 3)女工人数 4)最高学历 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'4');if(w0=='1'){/*统计在职人员*/printf_face();for(i=0,count=0;i<n&&staff[i].age;i++)if(strcmp(staff[i].category,"退休人员")!=0&&strcmp(staff[i].category,"临时工")!=0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}else if(w0=='2'){/*统计党员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].p_landscape,"党员")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}else if(w0=='3'){/*统计女工人员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].sex,"女")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}else {/*统计高学历人员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].Qualifications,"硕士学位")==0||strcmp(staff[i].Qualifications,"更高")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)继续统计 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') goto loop;else if(w1=='2')menu();else exit(0);}/*******************************排序模块***********************************/ void sort(){int i,j;char w0,w1;struct staff s1;loop: n=load();system("cls");do{fflush(stdin); /*清除缓冲区输入*/printf("通过 1)年龄 2)来院时间 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){/*按年龄排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(staff[i].age>staff[j].age){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}else {/*按来院时间排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(strcmp(staff[i].come_time,staff[j].come_time)>0){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}printf_face();for(i=0;i<n;i++) /*显示排序结果*/printf_one(staff[i]);do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)回主菜单 2)继续排序 3)退出[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') menu();else if(w1=='2')goto loop;else exit(0);}/********************************浏览模块**************************************/void browse(){int i;char w0;n=load();system("cls");printf_face();for(i=0;i<n ;i++)printf_one(staff[i]);printf("\t\t\t\t共有%d条人员记录\n",n);do{fflush(stdin); /*清除缓冲区输入*/printf(" 1)回主菜单 2)退出 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1') menu();if(w0=='2') exit(0);}/********************************主菜单函数*************************************/void menu(){char w0;do{system("cls");fflush(stdin); /*清除缓冲区输入*/puts("*********************************高校人事管理系统*******************************\n\n");puts("\t\t\t\t1)增加人员信息\n");puts("\t\t\t\t2)删除人员信息 \n");puts("\t\t\t\t3)查询人员信息\n");puts("\t\t\t\t4)修改人员信息\n");puts("\t\t\t\t5)统计人员信息\n");puts("\t\t\t\t6)对人员排序\n");puts("\t\t\t\t7)保存人员信息\n");puts("\t\t\t\t8)浏览人员信息\n");puts("\t\t\t\t9)退出\n");printf("\t\t\t\t请选择 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'9');switch(w0-48){case 1:add();break;case 2:delete_data();break;case 3:search();break;case 4:modify();break;case 5:stastic();break;case 6:sort();break;case 7:save();break;case 8:browse();break;case 9:break;}}/***********************************主函数****************************************/void main(){menu();}。

c语言课程设计之人事管理系统

c语言课程设计之人事管理系统

C语言课程设计之人事管理系统简介人事管理系统是一种用于管理组织内人员信息和管理人力资源的系统。

在本文档中,我们将介绍一个使用C语言编写的简单人事管理系统。

该系统可以实现员工信息的添加、删除、修改和查询,以及一些基本的人事管理功能。

功能模块1. 员工信息管理模块•添加员工信息:包括姓名、工号、职位、部门等基本信息。

•删除员工信息:根据工号删除指定员工的信息。

•修改员工信息:根据工号修改指定员工的信息。

•查询员工信息:可以根据姓名、工号等条件查询员工的信息。

2. 薪资管理模块•发放工资:根据员工的工作时长、加班情况等计算工资并发放。

•调整薪资:可以根据员工表现调整薪资水平。

3. 考勤管理模块•打卡记录:记录员工的上下班打卡情况。

•考勤统计:统计员工的出勤情况,包括迟到、早退、旷工等信息。

系统设计1. 数据结构•员工信息结构体:包括姓名、工号、职位、部门等信息。

•薪资结构体:包括基本工资、加班工资等信息。

•考勤记录结构体:包括打卡时间、出勤情况等信息。

2. 功能实现•员工信息管理:使用链表或数组存储员工信息,实现增删改查操作。

•薪资管理:根据员工的工作情况计算薪资并更新薪资信息。

•考勤管理:记录员工的打卡信息并统计考勤情况。

系统实现1. 界面设计•采用控制台界面,通过菜单选择实现各项功能。

•显示员工信息列表、薪资管理界面和考勤记录界面。

2. 代码实现•使用C语言实现各个功能模块,包括管理员工信息、计算薪资、记录考勤等。

•采用函数封装、模块化设计,提高代码的可读性和可维护性。

测试与验证1. 单元测试•对每个功能模块进行单元测试,确保功能的正确性。

•模拟各种情况,包括正常情况和异常情况。

2. 系统测试•综合测试所有功能模块,验证系统的完整性和稳定性。

•模拟真实使用情况,检查系统的性能和可靠性。

总结通过本文档的介绍,我们了解了一个简单的C语言编写的人事管理系统的设计思路和实现方法。

人事管理系统是组织管理中的重要系统之一,对于提高工作效率和管理人力资源具有重要意义。

人事管理系统——C语言

人事管理系统——C语言

人事管理管理系统[要求]某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。

现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。

其中,人员编号唯一,不能重复。

(1)添加删除功能:能根据学院人事的变动情况,添加删除记录;(2)查询功能:能根据编号和姓名进行查询;(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;(4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息;(5)排序功能:按照年龄、来院时间进行排序;(6)保存功能:能对输入的数据进行相应的存储;一、需求分析:根据题目要求,职工信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。

另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将N定为100,也即最多可储存的职工人数为100;二、总体设计:根据以上需求分析,将程序分成以下几个模块:1、新建档案信息;2、删除信息;3、追加信息;4、搜索查找信息(按姓名或者编号搜索);5、浏览全部信息;6、修改信息;7、信息排序;8、信息统计;三、详细设计;1、主函数:〈1〉需求分析:为使系统执行完每部分功能后能够方便的回到系统主界面,main()函数设计的很简单,只包含一个menu()函数,其余的全部功能都通过menu()函数调用来实现,并通过menu()函数的递归调用实现返回主界面的功能。

main()函数定义如下:main(){menu();}而menu()定义如下:〈2〉流程图:void menu(){int n,w1;do{printf("\n\t\t\t\t菜\t单\n");printf("\n\t\t0\t新建档案信息\n\n");printf("\t\t1\t删除信息\n\n");printf("\t\t2\t追加信息\n\n");printf("\t\t3\t搜索查找信息\n\n");printf("\t\t4\t浏览所有信息\n\n");printf("\t\t5\t修改信息\n\n");printf("\t\t6\t信息排序\n\n");printf("\t\t7\t信息统计\n\n");printf("\t\t8\t离开\n\n");printf("\t\t请选择您要进行的操作[ ]\b\b"); /**显示一系列功能并提示选择**/scanf("%d",&n);if(n<0||n>8){w1=1;getchar();}else w1=0;}while(w1==1); /**输入n并判断是否属于0到8**/switch(n){case 0:build();break;case 1:del();break;case 2:add();break;case 3:search();break;case 4:browse();break;case 5:modify();break;case 6:order();break;case 7:data();break;case 8:exit(0);default:{printf("输入错误!请重新输入");menu();}/**根据n的值调用各功能函数**/}}2、各功能模块设计:(1)、新建档案信息模块:<1>、数据结构;看各个数据信息,编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别,均为字符串类型,在文件中以文本形式存放,每条记录对应一个人员的信息,可以方便信息的管理;而数据读进内存中时,可以以结构体的形式,每一个结构体包含了一个人员的全部信息,多的人员的信息组成了一个结构体数组。

高校人事管理系统C++代码

高校人事管理系统C++代码

#include〈iostream〉#include<string>#include<fstream〉powered by #include<iomanip>using namespace std;class employee{protected:int number;char name[20];char sex[6];char workplace[20];char place[20];char nation[6];char birth[20];char party[10];char id[20];float score[5];public:Employee *nest;Employee(){}~Employee(){}char* getname(){ return name;}int getnumber(){return number;}double getscore(int i){ return score[i];}float get(){return(score[0]+ score[1]+ score[2]+ score[3]+ score[4]);} void input(){int e=1;cout<〈“\t\t\t按提示输入 :”<<endl ;cout〈〈“\t\t输入工号 :”;cin〉〉workplace ;do{cout〈〈“\t\t输入性别 :” ;cin〉〉sex ;if(strcmp(sex,“man”)==0 ||strcmp(sex,“woman”)==0){cout<<“\t\t输入籍贯:”;cin 〉>place;cout〈〈“\t\t输入民族:”;cin >〉nation;cout<<“\t\t输入生日:”;cin 〉>birth;cout<<“\t\t输入政治面貌:”;cin 〉〉party;cout<〈“\t\t输入身份证号:”;cin 〉〉id;cout<<“\t\t输入工作时间:";cin >>score[0];cout〈<“\t\t输入缺勤次数:”;cin >>score[1];cout<<“\t\t输入业绩总评成绩:";cin >〉score[2];cout〈〈“\t\t输入跳动工作次数:";cin 〉〉score[3];cout〈<“\t\t输入目前工资:”;cin 〉>score[4];e=0;}else{cout<<“\t\t\t无此类型性别!重新输入!”<〈endl ;e=1 ;}}while(e);return ;}void input(ifstream &is){is>>number〉>name〉〉sex〉〉place>〉nation〉〉birth〉〉party>〉id >〉score[0]>〉score[1]>> score[2]>> score[3]〉〉score[4]; is.get();}void output(){cout〈〈“职工基本信息如下:”<<endl;cout<<“工号:"〈<number〈〈“姓名:”〈<name<<“性别:”〈〈sex〈<“籍贯:”<〈place<〈“民族:"<〈nation〈〈“工作单位:”〈<workplace〈<“生日:”〈<birth〈〈“政治面貌:”<〈party〈<endl<<“身份证号:”〈<id〈〈“工作时间:”<〈score[0]〈<“缺勤次数:”〈< score[1]〈<“业绩总评成绩:”<〈score[2]<<“调动工作次数:”〈<score[3]〈〈“目前工资:"<〈score[4]<<endl;}void output(ofstream &os){os〈<setw(6)〈<number<<setw(15)<<name〈〈setw(6)〈〈sex〈<setw(20)<<place〈〈setw(6)〈〈nation<〈setw(20)<<workplace〈〈setw(20)〈〈birth〈〈setw(20)<<party〈〈setw(20)<<id<<setw(6)<〈score[0]<〈setw(6)〈< score[1]<〈setw(6)〈< score[2]<〈setw(6)〈< score[3]〈<setw(6)〈〈score[4]〈〈endl;}};class company{Public:company(){head=new Employee;head—>next=NULL;key=0;} ~company(){delete head;}void input();void mend();void del();int find(Employee**p,int num,char *pn=“^”);void found();void show();void save();void begin();void clear;char mainmenu();int getkey(){return key;}void setkey(int k)(key=k;)Employee *head;int key;};Void company::input(){Employee *p,*p2=NULL;P=head;int n;while(p->next)p=p-〉next;while(n){p2=new Employee;p2->input();p—〉next=p2;p2—〉next=NULL;p=p—>next;company::setkey(1);cout〈〈”\t\t\t按1继续,按0返回:";cin>>n;}}int company::find(Employee **p1,int num,char *pn){Employee *p;p=head;while(p-〉next){(*p1)=p;if((p—>next)—>getnumber()==num!strcmp((p->next)—>getname(),pn))return 1;p=p->next;}return 0;}void company::found(){Employee *p;int num=—1,n=9;char name[20]=”^”;{cout〈<”\t\t1:按工号查找,2:按姓名查找:";cin>>n;}while(n〈1||n>2);if(n==1){cout〈〈”\t\t\t输入工号:";cin〉〉num;}if(n==2){cout<<”\t\t\t输入姓名:”;cin>>name;}if(!find(&p,num,name)){cout<〈”\t\t找不到你要查找的内容!”〈<endl;return;}(p-〉next)->output();}V oid company::del(){Employee *p,*p2;int num;cout<〈”\t\t\t输入工号:”;cin〉〉num;if(!find(&p,num,”^”)){cout〈〈”\t\t找不到你要删除的内容!”<〈endl;return;}(p-〉next)->output();p2=p—〉next;p—>next=p2-〉next;delete p2;company::setkey(1);}void company::show(){Employee::*p;p=head;while(p->next){(p—>next)-〉output();p=p—>next;}}void company::mend(){Employee *p;int num=-1,n;char name[20]=”^”;do{cout<〈”\t\t1:按工号修改,2:按姓名修改:”;cin〉〉n;}while(n〈1||n〉2);if(n==1){cout〈〈”\t\t\t输入工号:”;cin>>num;}if(n==2){cout<〈"\t\t\t输入姓名:";cin>〉num;}if(!find(&p,num,name)){cout〈<”\t\t找不到你要修改的内容!”〈〈endl;return;}(p->next)->output();(p-〉next)-〉input();Company::setkey(1);}void company::save(){Employee *p;p=head;ofstream os(“Employee.txt”,ios::out);if(company::getkey()==1){while(p—>next){(p->next)—>output(os);p=p-〉next;}}cout<〈”\t\t\t文件已保存!”<<endl ;company ::setkey(0);}void company ::begin(){Employee *p,*p2 ;p=head;clear();long t;ifstream is(“Employee。

C#实验报告(人事管理系统)

C#实验报告(人事管理系统)

C#实验报告(人事管理系统)学号149074353姓名程裕博班级物141指导教师夏敏安徽工业大学计算机学院2016年12月一.程序步骤先设置一个登录界面(连接数据库),登录时进行判断,根据不同的错误信息进行报错,如密码错误。

登陆成功后,进入主界面。

主界面通过树和表格来显示数据。

可以对人员,班组,部门进行增删改查操作,数据保存在数据库中。

二.程序源码1.数据库表结构2、登录界面using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using CCWin;using System.Data.SqlClient;namespace实验__人事管理系统{public partial class Form_login : CCSkinMain{public Form_login(){InitializeComponent();}string src = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\users\博博\documents\visual studio 2013\Projects\实验——人事管理系统\实验——人事管理系统\MyData.mdf;Integrated Security=True";private void Form1_Load(object sender, EventArgs e){}private void button_login_Click(object sender, EventArgs e){string user = this.skinTextBox.Text;string password = this.skinTextBox2.Text;int sign1 = 0;int sign2 = 0;if (user == "" || password == "")MessageBox.Show("您输入的数据不完整!");else{string sql1 = string.Format("select USERNAME from [Table_login] where USERNAME=N'{0}';", user);using (SqlConnection coon = new SqlConnection(src)){SqlCommand cmd = new SqlCommand(sql1, coon);coon.Open();using (SqlDataReader dr = cmd.ExecuteReader()){while (dr.Read()){sign1++;}}}if (sign1 == 0)MessageBox.Show("未查询到您的用户信息!");if (sign1 != 0){string sql2 = string.Format("select PASSWORD from [Table_login] where USERNAME=N'{0}';", user);using (SqlConnection coon = new SqlConnection(src)){SqlCommand cmd = new SqlCommand(sql2, coon);coon.Open();using (SqlDataReader dr = cmd.ExecuteReader()){while (dr.Read()){if (password == dr["PASSWORD"].ToString())sign2++;}}}}if (sign1 != 0 && sign2 == 0)MessageBox.Show("您的密码输入错误!");if (sign2 != 0){Form_show f1 = new Form_show(user, this);f1.Show();this.Visible = false;}}}}}3、主界面using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Timers;using System.Data.SqlClient;using CCWin;namespace实验__人事管理系统{public partial class Form_show : Form{public Form_show(){InitializeComponent();}public Form_show(string name1,Form_login f){login_name=name1;fl = f;InitializeComponent();}string login_name="xx";Form_login fl =null ;TreeNode t = new TreeNode();int ID=-1;public List<person> list = new List<person>();string name;string birth;string sex;string education;string adminisitrator;string manegetime;// string category_name;string src = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\users\博博\documents\visual studio 2013\Projects\实验——人事管理系统\实验——人事管理系统\MyData.mdf;Integrated Security=True";private void Form_show_Load(object sender, EventArgs e){toolStripStatusLabel_name.Text = "管理员:" + this.login_name; toolStripStatusLabel_time.Text = "登录时间:" +DateTime.Now.ToLongTimeString();Addparent();this.dataGridView1.ClearSelection();}private void toolStripStatusLabel_name_Click(object sender, EventArgs e) {}private void Form_show_FormClosed(object sender, FormClosedEventArgs e) {fl.Close();}public void Addparent(){string sql = "select * from [Table_tree] where PR_NUMBER=-1";using (SqlConnection coon = new SqlConnection(src)){SqlCommand cmd = new SqlCommand(sql, coon);coon.Open();using (SqlDataReader dr = cmd.ExecuteReader()){while (dr.Read()){string name = dr["NAME"].ToString();string number = dr["NUMBER"].ToString();// string category=dr["CATEGORY"].ToString();TreeNode tn = new TreeNode();tn.Text = name;tn.Tag = number;tn.ImageIndex = 1;AddChild(number, tn);treeView_jiegou.Nodes.Add(tn);// skinTreeView1.Nodes.Add(tn);}}}}private void AddChild(string pnumber, TreeNode pnode){if (Convert.ToInt32(pnode.Tag) == 0 || (pnode.Parent!=null &&Convert.ToInt32(pnode.Parent.Tag) == 0)){string sql = "select * from [Table_tree] where PR_NUMBER=" + pnumber + "order by NAME desc;";using (SqlConnection conn = new SqlConnection(src)){SqlCommand cmd = new SqlCommand(sql, conn);conn.Open();using (SqlDataReader dr = cmd.ExecuteReader()){while (dr.Read()){string name = dr["NAME"].ToString();string number = dr["NUMBER"].ToString();// string category = dr["CATEGORY"].ToString();TreeNode tn = new TreeNode();tn.Text = name;tn.Tag = number;tn.ImageIndex = 1;AddChild(number, tn);pnode.Nodes.Add(tn);}}}}else{string sql = "select * from [Table_tree] where PR_NUMBER=" + pnumber + "order by NAME desc;";using (SqlConnection conn = new SqlConnection(src)){SqlCommand cmd = new SqlCommand(sql, conn);conn.Open();using (SqlDataReader dr = cmd.ExecuteReader()){while (dr.Read()){string name = dr["NAME"].ToString();string number = dr["NUMBER"].ToString();// string category = dr["CATEGORY"].ToString();TreeNode tn = new TreeNode();tn.Text = name;tn.Tag = number;tn.ImageIndex = 0;AddChild(number, tn);pnode.Nodes.Add(tn);}}}}}private void skinButton_add_Click(object sender, EventArgs e)//无用的按钮{}private void skinButton_add_Click_1(object sender, EventArgs e){//MessageBox.Show("添加!");if (t.Parent.Parent!=null && t.Parent!=null){Form_Addperson fp = new Form_Addperson(t, toolStripStatusLabel_name.Text, DateTime.Now.ToString());fp.Owner = this;fp.Show();list.Clear();}elseMessageBox.Show("请到班组添加人员!");// reshow();}private void treeView_jiegou_AfterSelect(object sender, TreeViewEventArgs e){string sql = "select * from Table_person where CATEGORY_NUMBER="+ e.Node.Tag;List<person> list = new List<person>();using (SqlConnection conn = new SqlConnection(src)){SqlCommand cmd = new SqlCommand(sql, conn);conn.Open();using (SqlDataReader dr = cmd.ExecuteReader()){while (dr.Read()){person p = new person();p.Person_name = dr["PERSON_NAME"].ToString();p.Category_name = dr["CATEGORY_NAME"].ToString();p.Sex = dr["SEX"].ToString();string []dt=dr["BIRTH"].ToString().Split(' ');p.Birth = dt[0];cation = dr["EDUCATION"].ToString();p.Adminisitrator = dr["ADMINISITRATOR"].ToString();p.Manegetime=dr["MANEGETIME"].ToString();list.Add(p);}}this.dataGridView1.ClearSelection();this.dataGridView1.DataSource = list;ID = -1;}}private void添加部门ToolStripMenuItem_Click(object sender, EventArgs e){if (t.Parent == null || t.Parent.Parent == null){Form_Add fa = new Form_Add(t);fa.Owner = this;fa.Show();}else{Form_Addperson fp = new Form_Addperson(t, toolStripStatusLabel_name.Text, DateTime.Now.ToString());fp.Owner = this;fp.Show();list.Clear();this.dataGridView1.DataSource = list;}}private void treeView_jiegou_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e){this.t = e.Node;// MessageBox.Show();}public void reshow(){treeView_jiegou.Nodes.Clear();Addparent();}private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) {//string name;//string birth;////string education;//string adminisitrator;//string manegetime;if (e.RowIndex != -1){name = this.dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();birth = this.dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();education =this.dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();adminisitrator =this.dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString();manegetime =this.dataGridView1.Rows[e.RowIndex].Cells[6].Value.ToString();sex = this.dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();//MessageBox.Show(name+birth+education+adminisitrator+manegetime+sex);string sql = string.Format("select ID from Table_person wherePERSON_NAME=N'{0}' and BIRTH=N'{1}' and ADMINISITRATOR=N'{2}' and MANEGETIME=N'{3}'", name, birth, adminisitrator, manegetime);// MessageBox.Show(sql);using (SqlConnection coon = new SqlConnection(src)){SqlCommand cmd = new SqlCommand(sql, coon);coon.Open();using (SqlDataReader dr = cmd.ExecuteReader()){while (dr.Read()){ID = (int)dr["ID"];}}}}}private void skinButton_delete_Click(object sender, EventArgs e){if (ID != -1){string sql = "delete from Table_person where ID="+ID.ToString()+";";using (SqlConnection coon = new SqlConnection(src)){SqlCommand cmd = new SqlCommand(sql,coon);coon.Open();int n=cmd.ExecuteNonQuery();if(n==1){MessageBox.Show("删除成功!");reshowview();reshow();}//foreach (person p in list)//{// if (p.Adminisitrator == adminisitrator && p.Birth == birth && p.Person_name == name && p.Manegetime == manegetime)// {// list.Remove(p);// }//}//this.dataGridView1.DataSource = list;}}else{MessageBox.Show("未选定行!");}}private void skinButton_rewrite_Click(object sender, EventArgs e){if (ID != -1){Form_rewrite fr = new Form_rewrite(name, sex, birth, education, toolStripStatusLabel_name.Text, manegetime, ID);fr.Owner = this;fr.Show();}elseMessageBox.Show("未选定行!");//list.Clear();// this.dataGridView1.DataSource=list;}private void skinButton1_search_Click(object sender, EventArgs e){string sql = "select * from Table_person where 1=1";List<person> list1 = new List<person>();// list1.Clear();if (this.textBox1.Text.Trim() != "")sql = sql + " and PERSON_NAME like N'%"+ this.textBox1.Text.Trim()+ "%'";if (this.textBox2.Text.Trim() != "")sql = sql + " and CATEGORY_NAME like N'%"+ this.textBox2.Text.Trim()+ "%'"; sql += ";";using (SqlConnection conn = new SqlConnection(src)){SqlCommand cmd = new SqlCommand(sql, conn);conn.Open();using (SqlDataReader dr = cmd.ExecuteReader()){while (dr.Read()){person p = new person();p.Person_name = dr["PERSON_NAME"].ToString();p.Category_name = dr["CATEGORY_NAME"].ToString();p.Sex = dr["SEX"].ToString();string[] dt = dr["BIRTH"].ToString().Split(' ');p.Birth = dt[0];cation = dr["EDUCATION"].ToString();p.Adminisitrator = dr["ADMINISITRATOR"].ToString();p.Manegetime = dr["MANEGETIME"].ToString();list1.Add(p);}}this.dataGridView1.ClearSelection();this.dataGridView1.DataSource = list1;}}private void skinButton_reset_Click(object sender, EventArgs e){this.textBox1.Text = "";this.textBox2.Text = "";List<person> list1 = new List<person>();this.dataGridView1.DataSource = list1;}public void reshowview(){List<person> list1 = new List<person>();list1.Clear();this.dataGridView1.DataSource = list1;}private void删除部门ToolStripMenuItem_Click(object sender, EventArgs e) {Form_delete fm_delete = new Form_delete(t);fm_delete.Owner = this;fm_delete.Show();}private void修改单位ToolStripMenuItem_Click(object sender, EventArgs e) {Form_rename rename = new Form_rename(t, t.Text.ToString());rename.Owner = this;rename.Show();}}}4、人员类using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace实验__人事管理系统{public class person{private string person_name;public string Person_name{get { return person_name; }set { person_name = value; } }private string category_name;public string Category_name{get { return category_name; }set { category_name = value; } }private string birth;public string Birth{get { return birth; }set { birth = value; }}private string sex;public string Sex{get { return sex; }set { sex = value; }}private string education;public string Education{get { return education; }set { education = value; }}private string adminisitrator;public string Adminisitrator{get { return adminisitrator; }set { adminisitrator = value; }}private string manegetime;public string Manegetime{get { return manegetime; }set { manegetime = value; }}}}5、删除界面using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Data.SqlClient;using CCWin;namespace实验__人事管理系统{public partial class Form_delete : CCSkinMain{public Form_delete(){InitializeComponent();}public Form_delete(TreeNode node){InitializeComponent();this.t = node;}TreeNode t = new TreeNode();string src = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\users\博博\documents\visual studio 2013\Projects\实验——人事管理系统\实验——人事管理系统\MyData.mdf;Integrated Security=True";private void Form_delete_Load(object sender, EventArgs e){}private void skinButton_sure_Click(object sender, EventArgs e){if (t != null && t.Parent != null){if (t.Parent.Tag.ToString() == "0"){// /ox.Show(t.Tag.ToString()+":"+t.Text);string sql1 = "delete from Table_person where CATEGORY_NUMBERin(select NUMBER from Table_tree where PR_NUMBER in(select NUMBER from Table_tree where NAME=N'" + t.Text + "'));";// MessageBox.Show(sql1);using (SqlConnection coon = new SqlConnection(src)){SqlCommand cmd = new SqlCommand(sql1, coon);coon.Open();int n = cmd.ExecuteNonQuery();// MessageBox.Show("您已经删除了" + n.ToString() + "条数据!");}string sql2 = "delete from Table_tree where PR_NUMBER in(select NUMBER from Table_tree where NAME=N'" + t.Text + "');";// MessageBox.Show(sql2);using (SqlConnection coon = new SqlConnection(src)){SqlCommand cmd = new SqlCommand(sql2, coon);coon.Open();int n = cmd.ExecuteNonQuery();// MessageBox.Show("您已经删除了" + n.ToString() + "条数据!");}string sql3 = "delete from Table_tree where NAME=N'" + t.Text + "';";// MessageBox.Show(sql3);using (SqlConnection coon = new SqlConnection(src)){SqlCommand cmd = new SqlCommand(sql3, coon);coon.Open();int n = cmd.ExecuteNonQuery();// MessageBox.Show("您已经删除了" + n.ToString() + "条数据!"); }}else{string sql4 = "delete from Table_person where CATEGORY_NUMBER ="+ t.Tag + ";";string sql5 = "delete from Table_tree where NUMBER =" + t.Tag + ";";// MessageBox.Show(sql4);using (SqlConnection coon = new SqlConnection(src)){SqlCommand cmd = new SqlCommand(sql4, coon);coon.Open();int n = cmd.ExecuteNonQuery();// MessageBox.Show("您已经删除了" + n.ToString() + "条数据!");SqlCommand cmd1 = new SqlCommand(sql5, coon);int n1 = cmd1.ExecuteNonQuery();// MessageBox.Show("您已经删除了" + n.ToString() + "条数据!");}}}Form_show ff = new Form_show();ff = (Form_show)this.Owner;ff.reshow();this.Close();}private void skinButton_giveup_Click(object sender, EventArgs e){this.Close();}}}5、添加界面(部门,班组)using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using CCWin;using System.Data.SqlClient;namespace实验__人事管理系统{public partial class Form_Add : CCSkinMain{public Form_Add(){InitializeComponent();}public Form_Add(TreeNode t1){this.t = t1;InitializeComponent();}int ID;TreeNode t = new TreeNode();string src = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\users\博博\documents\visual studio 2013\Projects\实验——人事管理系统\实验——人事管理系统\MyData.mdf;Integrated Security=True";private void Form_Add_Load(object sender, EventArgs e){}private void skinButton_add_Click(object sender, EventArgs e){if (this.textBox_categoryname.Text != ""){string sql = ";";string sql1 = "select ID from Table_tree where ID=(select MAX(ID) from Table_tree);";using (SqlConnection conn = new SqlConnection(src)){SqlCommand cmd = new SqlCommand(sql1, conn);conn.Open();SqlDataReader dr = cmd.ExecuteReader();while (dr.Read()){ID = (int)dr["ID"];}// MessageBox.Show(ID.ToString());//MessageBox.Show("添加成功,数据库。

C语言课程设计(论文)-高校人事管理系统设计

C语言课程设计(论文)-高校人事管理系统设计

一、题目要求 (2)1、系统功能的基本要求....................................................................... 错误!未定义书签。

2、提示................................................................................................... 错误!未定义书签。

二、需求分析 (3)三、总体设计 (3)四、详细设计 (4)1、主函数 (4)2、各模块设计 (5)(0)浏览模块------------------------------------------------------------------------6(1)删除模块--------------------------------------------------------------------------------------错误!未定义书签。

(2) 查询模块-------------------------------------------------------------------------------------8(2.1) 按编号查询模块----------------------------------------------------------------------------9(2.2) 按姓名查询模块----------------------------------------------------------------------------9(3)编辑模块............................................................................... 错误!未定义书签。

高校人事管理系统C++程序设计源代码

高校人事管理系统C++程序设计源代码

目录新建一个头文件类,名字为:Person.h,再建一个源文件,名字随意,代码按顺序粘贴进去即可运行。

(2)头文件: (2)源文件: (12)新建一个头文件类,名字为:Person.h,再建一个源文件,名字随意,代码按顺序粘贴进去即可运行。

头文件:#include <iostream>#include <fstream>using namespace std;//基类class Person{public:char name[20];char sex[6];int age;char zzmm[10];char zgxl[10];int rzsj;int lysj;int gongzi;virtual void add(){cout<<"姓名:";cin>>name;cout<<"性别:";cin>>sex;cout<<"年龄:";cin>>age;cout<<"工资:";cin>>gongzi;cout<<"政治面貌:";cin>>zzmm;cout<<"最高学历:";cin>>zgxl;cout<<"任职时间:";cin>>rzsj;cout<<"来院时间:";cin>>lysj;}virtual void show(){cout<<"姓名:"<<name<<endl<<"性别:"<<sex<<endl<<"年龄:"<<age<<endl<<"工资:"<<gongzi<<endl<<"政治面貌:"<<zzmm<<endl<<"最高学历:"<<zgxl<<endl<<"任职时间:"<<rzsj<<endl<<"来院时间:"<<lysj<<endl;}virtual void save(fstream &f){f<<name<<" "<<sex<<" "<<age<<" "<<gongzi<<" "<<zzmm<<" "<<zgxl<<" "<<rzsj<<" "<<lysj<<" ";}virtual void read(fstream &f){f>>name>>sex>>age>>gongzi>>zzmm>>zgxl>>rzsj>>lysj;}};//行政人员class xzry:virtual public Person{public:char zhiwu[10];char jibie[10];int NOxz;void add(int &num1){num1++;NOxz=num1;cout<<"行政人员编号:"<<NOxz<<endl;Person::add();cout<<"职务:";cin>>zhiwu;cout<<"级别:";cin>>jibie;}void show(){cout<<"行政人员编号:"<<NOxz<<endl;Person::show();cout<<"职务:"<<zhiwu<<endl<<"级别:"<<jibie<<endl;}virtual void save(fstream &f){f<<NOxz<<" "; //记录正在输入的行政人员编号Person::save(f);f<<zhiwu<<" "<<jibie<<" "<<endl;}virtual void read(fstream &f){Person::read(f);f>>zhiwu>>jibie;}};//教师class jiaoshi:virtual public Person{public:char zhiwu[10];char zhicheng[10];int NOjs;void add(int &num2){num2++;NOjs=num2;cout<<"教师编号:"<<NOjs<<endl; Person::add();cout<<"职务:";cin>>zhiwu;cout<<"职称:";cin>>zhicheng;}void show(){cout<<"教师编号:"<<NOjs<<endl;Person::show();cout<<"职务:"<<zhiwu<<endl<<"职称:"<<zhicheng<<endl; }virtual void save(fstream &f){f<<NOjs<<" ";Person::save(f);f<<zhiwu<<" "<<zhicheng<<endl;}virtual void read(fstream &f){Person::read(f);f>>zhiwu>>zhicheng;}};//一般员工class ybyg:virtual public Person{public:char zhiwu[10];int NOyb;void add(int &num3){num3++;NOyb=num3;cout<<"一般员工编号:"<<NOyb<<endl; Person::add();cout<<"职务:";cin>>zhiwu;}void show(){cout<<"一般员工编号:"<<NOyb<<endl; Person::show();cout<<"职务:"<<zhiwu<<endl;}virtual void save(fstream &f){f<<NOyb<<" ";Person::save(f);f<<zhiwu<<" "<<endl;}virtual void read(fstream &f){Person::read(f);f>>zhiwu;}};//退休员工class tuixiu:virtual public Person //退休人员{public:int tuixiusj;int NOtx;void add(int &num4){num4++;NOtx=num4;cout<<"退休员工编号:"<<NOtx<<endl;Person::add();cout<<"退休时间:";cin>>tuixiusj;}void show(){cout<<"退休员工编号:"<<NOtx<<endl;Person::show();cout<<"退休时间:"<<tuixiusj<<endl; }virtual void save(fstream &f){f<<NOtx<<" ";Person::save(f);f<<tuixiusj<<" "<<endl;}virtual void read(fstream &f){Person::read(f);f>>tuixiusj;}};源文件:#include "Person.h"#include "string.h"#include <iostream>#include <fstream>using namespace std;int i1=0,i2=0,i3=0,i4=0; //定义总数int n1=0,n2=0,n3=0,n4=0; //定义编号xzry xz[100]; //定义行政人员100人jiaoshi js[100]; //定义教师人员100人ybyg yb[100]; //定义一般员工100人tuixiu tx[100]; //定义退休人员100人void addPerson(); //添加学院工作人员函数void FileSave(); //信息保存函数void FileRead(); //读取文件函数void findChange(); //查询并编辑工作人员信息函数void Delete(int j,int k); //删除函数void editPer(int v,int z); //编辑工作人员信息void findName(); //根据姓名查询函数void findNO(); //根据编号查询函数void tongji(); //统计函数//主函数void main(){FileRead();n1=i1;n2=i2;n3=i3;n4=i4;int a;while(1){cout<<"**********欢迎进入高校人事管理系统**************"<<endl; cout<<"* 输入选项进行选择*"<<endl; cout<<"* *"<<endl; cout<<"* 1、添加学院工作人员*"<<endl; cout<<"* 2、查询*"<<endl; cout<<"* 编辑*"<<endl; cout<<"* 删除工作人员信息*"<<endl; cout<<"* 3、人员统计*"<<endl;cout<<"* 4、退出程序*"<<endl; cout<<"* *"<<endl; cout<<"************************************************"<<endl; cout<<endl;cout<<"请选择:";cin>>a;system("cls");if (a==1){ addPerson(); }else if (a==2){ findChange(); }else if (a==3){ tongji(); }else if (a==4){ break; }else{cout<<"输入有误!请重试!"<<endl;cout<<endl;system ("pause");system ("cls");continue;}}}//添加学院工作人员函数void addPerson(){int b;while(1){cout<<"*******请选择人员工作岗位*********"<<endl; cout<<"* 1、行政人员*"<<endl; cout<<"* 2、教师*"<<endl; cout<<"* 3、一般员工*"<<endl; cout<<"* 4 、退休人员*"<<endl; cout<<"* 5、保存并退出*"<<endl; cout<<"**********************************"<<endl; cout<<endl<<"要添加请选择,不添加请选退出:"; cin>>b; cout<<endl;system("cls");if (b==1) //添加行政人员{xz[i1].add(n1);}else if(b==2) //添加教师{js[i2].add(n2);i2++;}else if(b==3) //添加一般员工{yb[i3].add(n3);i3++;}else if(b==4) //添加退休人员{tx[i4].add(n4);i4++;}else if(b==5){FileSave();break;}{cout<<"输入有误!请重试!"<<endl;cout<<endl;system ("pause");system ("cls");continue;}}}//信息保存函数void FileSave(){int k;fstream file;file.open("data.dat", ios::out);file<<i1<<endl; //保存已输入的行政人员总数for(k=0;k<i1;k++)xz[k].save(file);file<<endl;file<<i2<<endl; //保存已输入的教师人员总数for(k=0;k<i2;k++)js[k].save(file);file<<endl;file<<i3<<endl; //保存已输入的一般员工总数for(k=0;k<i3;k++)yb[k].save(file);file<<endl;file<<i4<<endl; //保存已输入的退休人员总数for(k=0;k<i4;k++)tx[k].save(file);file<<endl;file.close();}//读取文件函数void FileRead(){int k;fstream file;file.open("data.dat", ios::in);file>>i1; //读取行政人员总数for(k=0;k<i1;k++){file>>xz[k].NOxz; //读取行政人员编号xz[k].read(file);}file>>i2; //读取教师人员总数for(k=0;k<i2;k++){file>>js[k].NOjs; //读取教师人员编号js[k].read(file);}file>>i3; //读取一般员工总数for(k=0;k<i3;k++){file>>yb[k].NOyb; //读取一般员工编号yb[k].read(file);}file>>i4; //读取退休人员总数for(k=0;k<i4;k++){file>>tx[k].NOtx; //读取退休人员编号tx[k].read(file);}file.close();}//查询并编辑工作人员信息void findChange(){int e;while(1){cout<<"****************************"<<endl;cout<<"* 1、编号查询*"<<endl;cout<<"* 2、姓名查询*"<<endl; cout<<"* 3、退出*"<<endl; cout<<"****************************"<<endl; cout<<"请选择:";cin>>e; cout<<endl;system("cls");if (e==1){findNO();}else if (e==2){findName();}else if (e==3){break;}else{cout<<"输入有误!请重试!"<<endl;system ("pause");system ("cls");continue;}}}//根据编号查询函数void findNO(){int f,g,z;int h;while(1){cout<<"========请输入查询人所在的分类========"<<endl; cout<<" 1、行政人员"<<endl;cout<<" 2、教师人员"<<endl;cout<<" 3、一般员工"<<endl;cout<<" 4、退休人员"<<endl;cout<<" 5、退出"<<endl;cout<<"==================================== =="<<endl;cout<<"请输入:";cin>>f;cout<<endl;system("cls");if (f==1)cout<<"========行政人员查询========"<<endl; cout<<"请输入查询的编号:";cin>>g;for(int t1=0;t1< i1;t1++){if(xz[t1].NOxz==g){h=g-1;xz[h].show();z=1;editPer(g,z); //是否编辑Delete(g,z); //是否删除}}}else if (f==2){cout<<"========教师人员查询========"<<endl; cout<<"请输入查询的编号:";cin>>g;for(int t2=0;t2< i2;t2++){if(js[t2].NOjs==g)h=g-1;js[h].show();z=2;editPer(g,z); //是否编辑Delete(g,z); //是否删除}}}else if (f==3){cout<<"========一般员工查询========"<<endl; cout<<"请输入查询的编号:";cin>>g;for(int t3=0;t3< i3;t3++){if(yb[t3].NOyb==g){h=g-1;yb[h].show();z=3;editPer(g,z); //是否编辑Delete(g,z); //是否删除}}else if (f==4){cout<<"========退休人员查询========"<<endl; cout<<"请输入查询的编号:";cin>>g;for(int t4=0;t4< i4;t4++){if(tx[t4].NOtx==g){h=g-1;tx[h].show();z=4;editPer(g,z); //是否编辑Delete(g,z); //是否删除}}}else if (f==5){break;}elsecout<<"输入有误!请重试!"<<endl;system ("pause");system ("cls");continue;}}}//根据姓名查询函数void findName(){char s;char nam[20];int x;while(1){cout<<"=========正在通过姓名进行查询========="<<endl<<endl;cout<<"请输入查询的姓名:";cin>>nam;for(int t=0;t<(i1+i2+i3+i4);t++){if(strcmp(xz[t].name,nam)==0){xz[t].show();x=1;editPer(xz[t].NOxz,x); //是否编辑Delete(xz[t].NOxz,x); //是否删除cout<<endl;}else if(strcmp(js[t].name,nam)==0){js[t].show();x=2;editPer(js[t].NOjs,x); //是否编辑Delete(js[t].NOjs,x); //是否删除cout<<endl;}else if(strcmp(yb[t].name,nam)==0){yb[t].show();x=3;editPer(yb[t].NOyb,x); //是否编辑Delete(yb[t].NOyb,x); //是否删除cout<<endl;}else if(strcmp(tx[t].name,nam)==0){tx[t].show();x=4;editPer(tx[t].NOtx,x); //是否编辑Delete(tx[t].NOtx,x); //是否删除cout<<endl;}elsecontinue;}cout<<"是否继续查询或修改(y/n)"<<endl;cin>>s;if(s=='y'||s=='Y') continue;else break;}}//编辑工作人员信息void editPer(int v,int z){char su1;char su2;n1=v-1;n2=v-1;n3=v-1;n4=v-1;while(1){cout<<endl<<"是否进行修改(y/n)"<<endl; cin>>su1;if(su1=='y'||su1=='Y'){if(z==1){xz[n1].add(n1);cout<<endl<<"是否保存(y/n)"<<endl; cin>>su2;if(su2=='y'||su2=='Y'){FileSave();}else break;}if(z==2){js[n2].add(n2);cout<<endl<<"是否保存(y/n)"<<endl; cin>>su2;if(su2=='y'||su2=='Y'){FileSave();}else break;}if(z==3){yb[n3].add(n3);cout<<endl<<"是否保存(y/n)"<<endl; cin>>su2;if(su2=='y'||su2=='Y'){FileSave();}else break;}if(z==4){tx[n4].add(n4);cout<<endl<<"是否保存(y/n)"<<endl; cin>>su2;if(su2=='y'||su2=='Y'){FileSave();}else break;}}else break;break;}}//删除函数void Delete(int j,int k){char su4;int jg=j;n1=j;n2=j;n3=j;n4=j;while(1){cout<<endl<<"是否删除(y/n)"<<endl;cin>>su4;if(su4=='y'||su4=='Y'){if(k==1){for(;n1<i1;n1++){xz[n1-1]=xz[n1]; //删除搜索的行政人员信息xz[n1-1].NOxz--; //信息删除后编号重排}i1--;FileSave();cout<<"=====你所查询编号为"<<jg<<"的行政人员信息已删除====="<<endl<<endl;system("pause");system("cls");}if(k==2){for(;n2<i2;n2++){js[n2-1]=js[n2]; //删除搜索的教师信息js[n2-1].NOjs--; //信息删除后编号重排}i2--;FileSave();cout<<"=====你所查询编号为"<<jg<<"的教师信息已删除====="<<endl<<endl;system("pause");system("cls");}if(k==3){for(;n3<i3;n3++){yb[n3-1]=yb[n3]; //删除搜索的一般员工信息yb[n3-1].NOyb--; //信息删除后编号重排}i3--;FileSave();cout<<"=====你所查询编号为"<<jg<<"的一般员工信息已删除====="<<endl<<endl;system("pause");system("cls");}if(k==4){for(;n4<i4;n4++){tx[n4-1]=tx[n4]; //删除搜索的退休员工信息tx[n4-1].NOtx--; //信息删除后编号重排}i4--;FileSave();cout<<"=====你所查询编号为"<<jg<<"的退休员工信息已删除====="<<endl<<endl;system("pause");system("cls");}else break;}break;}}void tongji() //人事统计while(1){int z,i;int g=0;cout<<"请输入要统计的类型:1.在职人员 2.党员 3.女性人员 4.高学历高职称人员"<<endl;int r;cin>>r;if(r==1){z=i1+i2+i3;cout<<"在职人员数:"<<z<<endl;}else if(r==2){for(i=0;i<i1;i++){if(strcmp(xz[i].zzmm ,"党员")==0)g++;}for(i=0;i<i2;i++)if(strcmp(js[i].zzmm,"党员")==0) g++;}for(i=0;i<i3;i++){if(strcmp(yb[i].zzmm,"党员")==0) g++;}for(i=0;i<i4;i++){if(strcmp(tx[i].zzmm,"党员")==0) g++;}cout<<"党员数:"<<g<<endl; }else if(r==3){for(i=0;i<i1;i++){if(strcmp(xz[i].sex,"女")==0)g++;for(i=0;i<i2;i++){if(strcmp(js[i].sex,"女")==0)g++;}for(i=0;i<i3;i++){if(strcmp(yb[i].sex,"女")==0)g++;}for(i=0;i<i4;i++){if(strcmp(tx[i].sex,"女")==0)g++;}cout<<"女性人员数:"<<g<<endl; }else if(r==4){int g=0,h=0,c=0;for(i=0;i<i1;i++)if(strcmp(xz[i].zgxl,"大学")==0) g++;}for(i=0;i<i2;i++){if(strcmp(js[i].zgxl,"大学")==0) g++;}for(i=0;i<i3;i++){if(strcmp(yb[i].zgxl,"大学")==0) g++;}for(i=0;i<i4;i++){if(strcmp(tx[i].zgxl,"大学")==0) g++;}for(i=0;i<i1;i++){if(strcmp(xz[i].zgxl,"高中")==0)h++;}for(i=0;i<i2;i++){if(strcmp(js[i].zgxl,"高中")==0) h++;}for(i=0;i<i3;i++){if(strcmp(yb[i].zgxl,"高中")==0) h++;}for(i=0;i<i4;i++){if(strcmp(tx[i].zgxl,"高中")==0) h++;}for(i=0;i<i1;i++){if(strcmp(xz[i].zgxl,"初中")==0) h++;}for(i=0;i<i2;i++){if(strcmp(js[i].zgxl,"初中")==0)h++;}for(i=0;i<i3;i++){if(strcmp(yb[i].zgxl,"初中")==0)h++;}for(i=0;i<i4;i++){if(strcmp(tx[i].zgxl,"初中")==0)h++;}cout<<"大学人数:"<<g<<" 高中人数:"<<h<<" 初中人数:"<<c<<endl;}else{cout<<"统计的类型错误!"<<endl;system("PAUSE");. ..}cout<<"是否继续人事统计:Y继续、其他退出"<<endl; char x;cin>>x;if(x!='y' && x!='Y')break;}}a。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
cout<<“\t\t输入籍贯:”;
cin >>place;
cout<<“\t\t输入民族:”;
cin >>nation;
cout<<“\t\t输入生日:”;
cin >>birth;
cout<<“\t\t输入政治面貌:”;
cin >>party;
cout<<“\t\t输入身份证号:”;
cin >>id;
}
};
classcompany
{
Public:
company(){head=new Employee;head->next=NULL;key=0;}
~company(){delete head;}
void input();
void mend();
voiddel();
int find(Employee**p,int num,char *pn=“^”) ;
<<“民族:”<<nation
<<“工作单位:”<<workplace
<<“生日:”<<birth
<<“政治面貌:”<<party<<endl
<<“身份证号:”<<id
<<“工作时间:”<<score[0]
<<“缺勤次数:”<<score[1]
<<“业绩总评成绩:”<<score[2]
<<“调动工作次数:”<<score[3]
void input()
{
inte=1;
cout<<“\t\t\t按提示输入:”<<endl;
cout<<“\t\t输入工号:”;
cin>>workplace;
do
{
cout<<“\t\t输入性别:”;
cin>>sex;
if(strcmp(sex,“man”)==0 || strcmp(sex,“woman”)==0)
p=p->next;
company::setkey(1);
cout<<”\t\t\t按1继续,按0返回:”;
cin>>n;
}
}
int company::find(Employee **p1,int num,char *pn)
{
Employee *p;
p=head;
while(p->next)
{
(*p1)=p;
cin >>score[4];
e=0;
}
else
{
cout<<“\t\t\t无此类型性别!重新输入!”<<endl;
e=1;
}
}while(e);
return ;
}
void input(ifstream & is)
{
is>>number>>name>>sex>>place>>nation>>birth>>party>>id
void found();
void show();
void save();
void begin();
void clear;
char mainmenu();
int getkey(){return key;}
void setkey(int k)(key=k;)
private:
Employee *head;
~Employee(){}
char* getname(){ return name; }
int getnumber(){ return number; }
double getscore(int i){ return score[i];}
float get(){ return(score[0]+score[1]+score[2]+score[3]+score[4]);}
>>score[0]>>score[1]>>score[2]>>score[3]>>score[4];
is.get();
}
void output()
{
cout<<“职工基本信息如下:”<<endl;
cout<<“工号:”<<number
<<“姓名:”<<name
<<“性别:”<<sex
<<“籍贯:”<<place
<<setw(20)<<birth
<<setw(20)<<party
<<setw(20)<<id
<<setw(6)<<score[0]
<<setw(6)<<score[1]
<<setw(6)<<score[2]
<<setw(6)<<score[3]
<<setw(6)<<score[4]
<<endl;
cout<<“\t\t输入工作时间:”;
cin >>score[0];
cout<<“\t\t输入缺勤次数:”;
cin >>score[1];
cout<<“\t\t输入业绩总评成绩:”;
cin >>score[2];
cout<<“\t\t输入跳动工作次数:”;
cin >>score[3];
cout<<“\t\t输入目前工 company::input()
{
Employee *p,*p2=NULL;
P=head;
int n;
while(p->next)
p=p->next;
while(n)
{
p2=new Employee;
p2->input();
p->next=p2;
p2->next=NULL;
char sex[6];
char workplace[20];
char place[20];
char nation[6];
char birth[20];
charparty[10];
char id[20];
float score[5];
public:
Employee *nest;
Employee(){}
if((p->next)->getnumber()==num!strcmp((p->next)->getname(),pn))
return 1;
p=p->next;
}
return 0;
}
void company::found()
#include<iostream>
#include<string>
#include<fstream>powered by
#include<iomanip>
using namespace std;
class employee
{
protected:
intnumber;
char name[20];
<<“目前工资:”<<score[4]<<endl;
}
void output(ofstream & os)
{
os<<setw(6)<<number
<<setw(15)<<name
<<setw(6)<<sex
<<setw(20)<<place
<<setw(6)<<nation
<<setw(20)<<workplace
相关文档
最新文档