高校人事管理系统C++程序设计源代码
人事管理系统源代码
#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 100struct member_info{char xm[7];char xb[3];char sr[15];char whcd[13];char zc[17];char sfzh[19];char lxdh[12];int gl;int nl;};struct member_info member[N+1];int CurrentCount=0;void input(){char sfjx=1;while(sfjx!=0){if(CurrentCount==N){printf("\n人数已达上限,不能添加!!!\n");sfjx=0;}else{CurrentCount++;printf("\n请输入员工信息(姓名性别生日年龄文化程度联系电话身份证号码工龄职称):\n");scanf("%s%s%s%d%s%s%s%d%s",member[CurrentCount].xm,member[CurrentCount].xb,memb er[CurrentCount].sr,&member[CurrentCount].nl,member[CurrentCount].whcd,member[CurrentC ount].lxdh,member[CurrentCount].sfzh,&member[CurrentCount].gl,member[CurrentCount].zc);printf("\n是否继续(0--结束,其它--继续):");scanf("%d",&sfjx);}}printf("人员已排序");int i,j;for(i=1;i<CurrentCount;i++)for(j=CurrentCount;j>i;j--)if(strcmp(member[j].sfzh,member[j-1].sfzh)<0){member[0]=member[j];member[j]=member[j-1];member[j-1]=member[0];}printf("\n 人事基本信息表\n");printf(" 序号姓名性别生日年龄文化程度联系电话身份证号码工龄职称\n");for(i=1;i<=CurrentCount;i++)printf("%4d %6s%3s%11s%3d%8s%12s%20s%3d%5s\n",i,member[i].xm,member[i].xb,member[ i].sr,member[i].nl,member[i].whcd,member[i].lxdh,member[i].sfzh,member[i].gl,member[i].zc);system("pause");}void save(){FILE *fp;fp=fopen("ygjbxx.txt","w");if(fp==NULL)printf("\n文件打开不成功,信息无法保存!!!\n");else{fprintf(fp,"%d",CurrentCount);for(int i=1;i<=CurrentCount;i++)fprintf(fp,"\n%8s%4s%16s%4d%14s%13s%20s%4d%18s",member[i].xm,member[i].xb,member[ i].sr,member[i].nl,member[i].whcd,member[i].lxdh,member[i].sfzh,member[i].gl,member[i].zc);fclose(fp);printf("\n信息已成功保存!!!\n");}system("pause");}void read(){FILE *fp;fp=fopen("ygjbxx.txt","r");if(fp==NULL)printf("\n文件打开不成功,信息无法读取!!!\n");else{fscanf(fp,"%d",&CurrentCount);for(int i=1;i<=CurrentCount;i++){fscanf(fp,"%s%s%s%d%s%s%s%d%s",member[i].xm,member[i].xb,member[i].sr,&member[i].nl, member[i].whcd,member[i].lxdh,member[i].sfzh,&member[i].gl,member[i].zc);printf("姓名:%s性别:%s生日:%s年龄:%d 文化程度: %s 联系电话: %s 身份证号码: %s 工龄: %d 职称: %s\n",member[i].xm,member[i].xb,member[i].sr,member[i].nl,member[i].whcd,member[i].lxd h,member[i].sfzh,member[i].gl,member[i].zc);}fclose(fp);printf("\n信息已成功读取!!!\n");}system("pause");}void search(){char dcsfzh[19];int sfjx=1,i;while(sfjx!=0){printf("\n请输入一个待查员工的身份证号码:");scanf("%s",dcsfzh);strcpy(member[0].sfzh,dcsfzh);i=CurrentCount;while(strcmp(member[i].sfzh,dcsfzh)!=0)i--;if(i==0)printf("查无此人!!!\n");else{printf("\n此人详细信息如下:\n");printf("姓名:%s性别:%s生日:%s年龄:%d 文化程度: %s 联系电话: %s 身份证号码: %s 工龄: %d 职称: %s\n",member[i].xm,member[i].xb,member[i].sr,member[i].nl,member[i].whcd,member[i].lxd h,member[i].sfzh,member[i].gl,member[i].zc);}printf("\n是否继续(0--结束,其它--继续):");scanf("%d",&sfjx);}system("pause");}void del(){char dcsfzh[19];int sfjx=1,i,j;while(sfjx!=0){printf("\n请输入一个待删员工的身份证号码:");scanf("%s",dcsfzh);strcpy(member[0].sfzh,dcsfzh);i=CurrentCount;while(strcmp(member[i].sfzh,dcsfzh)!=0)i--;if(i==0)printf("查无此人!!!\n");else{printf("\n此人详细信息如下:\n");printf("姓名:%s性别:%s生日:%s年龄:%d 文化程度: %s 联系电话: %s 身份证号码: %s 工龄: %d 职称: %s\n",member[i].xm,member[i].xb,member[i].sr,member[i].nl,member[i].whcd,member[i].lxd h,member[i].sfzh,member[i].gl,member[i].zc);printf("\n按任意键开始删除......\n");system("pause");for(j=i+1;j<=CurrentCount;j++)member[j-1]=member[j];CurrentCount--;printf("\n已成功删除......\n");system("pause");}printf("\n是否继续(0--结束,其它--继续):");scanf("%d",&sfjx);}system("pause");}void modify(){char dcsfzh[19];int sfjx=1,i;while(sfjx!=0){printf("\n请输入一个待修改员工的身份证号码:");scanf("%s",dcsfzh);strcpy(member[0].sfzh,dcsfzh);i=CurrentCount;while(strcmp(member[i].sfzh,dcsfzh)!=0)i--;if(i==0)printf("查无此人!!!\n");else{printf("\n此人详细信息如下:\n");printf("姓名:%s性别:%s生日:%s年龄:%d 文化程度: %s 联系电话: %s 身份证号码: %s 工龄: %d 职称: %s\n",member[i].xm,member[i].xb,member[i].sr,member[i].nl,member[i].whcd,member[i].lxd h,member[i].sfzh,member[i].gl,member[i].zc);printf("\n请输入新内容......\n");printf("\n请输入人员相关信息(姓名性别生日年龄文化程度联系电话身份证号码工龄职称):");scanf("%s%s%s%d%s%s%s%d%s",member[CurrentCount].xm,member[CurrentCount].xb,memb er[CurrentCount].sr,&member[CurrentCount].nl,member[CurrentCount].whcd,member[CurrentC ount].lxdh,member[CurrentCount].sfzh,&member[CurrentCount].gl,member[CurrentCount].zc);printf("\n已成功修改......\n");system("pause");}printf("\n是否继续(0--结束,其它--继续):");scanf("%d",&sfjx);}system("pause");}int check(){int count=0,name,pass;while(count<=2){printf("\n请输入用户名及密码:");scanf("%d%d",&name,&pass);count++;if((name==1)&&(pass==1))count=10;elseif(count>2)count=5;}if(count==10)return 0;elsereturn 1;}struct mem_gz{float jbgz;float cql;float jj;float kk;float grsd;float sf;};struct mem_gz mem[N+1];void inputgz(){char sfjx=1;CurrentCount=0;while(sfjx!=0){if(CurrentCount==N){printf("\n工资已添加完毕,无法添加!!!\n");sfjx=0;}else{CurrentCount++;printf("请输入身份证号码为:%s的员工工资资料\n",member[CurrentCount].sfzh);printf("\n请输入员工工资信息(基本工资考勤奖金扣款个人所得税):\n");scanf("%f%f%f%f%f",&mem[CurrentCount].jbgz,&mem[CurrentCount].cql,&mem[CurrentCoun t].jj,&mem[CurrentCount].kk,&mem[CurrentCount].grsd);mem[CurrentCount].sf=mem[CurrentCount].jbgz*mem[CurrentCount].cql+mem[CurrentCount].jj -mem[CurrentCount].kk-mem[CurrentCount].grsd;}printf("\n是否继续(0--结束,其它--继续):\n");scanf("%d",&sfjx);}system("pause");}void savegz(){FILE *fq;fq=fopen("yggzxx.txt","w");if(fq==NULL)printf("\n文件打开不成功,信息无法保存!!!\n");else{fprintf(fq,"%d",CurrentCount);for(int i=1;i<=CurrentCount;i++)fprintf(fq,"\n%f %f %f %f %f %f",mem[i].jbgz,mem[i].cql,mem[i].jj,mem[i].kk,mem[i].grsd,mem [i].sf);fclose(fq);printf("\n信息已成功保存!!!\n");}system("pause");}void readgz(){FILE *fq;fq=fopen("yggzxx.txt","r");if(fq==NULL)printf("\n文件打开不成功,信息无法读取!!!\n");else{fscanf(fq,"%d",&CurrentCount);for(int i=1;i<=CurrentCount;i++){fscanf(fq,"%f%f%f%f%f%f",&mem[i].jbgz,&mem[i].cql,&mem[i].jj,&mem[i].kk,&mem[i].grsd, &mem[i].sf);printf("基本工资: %f 考勤: %f 奖金: %f 扣款: %f 个人所得税: %f 实发工资:%f\n",mem[i].jbgz,mem[i].cql,mem[i].jj,mem[i].kk,mem[i].grsd,mem[i].sf);}fclose(fq);printf("\n信息已成功读取!!!\n");}system("pause");}void searchgz(){int dcbh;int sfjx=1;while(sfjx!=0){printf("\n请输入一个待查员工编号(身份证号从小到大的顺序):");scanf("%d",&dcbh);if(dcbh<1||dcbh>CurrentCount)printf("查无此人!!!\n");else{printf("\n此人工资信息如下:\n");printf("基本工资: %f 考勤: %f 奖金: %f 扣款: %f 个人所得税: %f 实发工资:%f\n",mem[dcbh].jbgz,mem[dcbh].cql,mem[dcbh].jj,mem[dcbh].kk,mem[dcbh].grsd,mem[dcb h].sf);}printf("\n是否继续(0--结束,其它--继续):");scanf("%d",&sfjx);}system("pause");}void delgz(){int dcbh;int sfjx=1,j;while(sfjx!=0){printf("\n请输入一个待删工资的编号:");scanf("%d",&dcbh);if(dcbh<1||dcbh>CurrentCount)printf("查无此人!!!\n");else{printf("\n此人工资信息如下:\n");printf("基本工资: %f 考勤: %f 奖金: %f 扣款: %f 个人所得税: %f 实发工资:%f\n",mem[dcbh].jbgz,mem[dcbh].cql,mem[dcbh].jj,mem[dcbh].kk,mem[dcbh].grsd,mem[dcb h].sf);printf("\n按任意键开始删除......\n");system("pause");for(j=dcbh+1;j<=CurrentCount;j++)mem[j-1]=mem[j];CurrentCount--;printf("\n已成功删除......\n");system("pause");}printf("\n是否继续(0--结束,其它--继续):");scanf("%d",&sfjx);}system("pause");}void modifygz(){int dcbh;int sfjx=1;while(sfjx!=0)printf("\n请输入一个待修改工资员工的编号:");scanf("%d",&dcbh);if(dcbh<1||dcbh>CurrentCount)printf("查无此人!!!\n");else{printf("\n此人工资信息如下:\n");printf("基本工资: %f 考勤: %f 奖金: %f 扣款: %f 个人所得税: %f 实发工资:%f\n",mem[dcbh].jbgz,mem[dcbh].cql,mem[dcbh].jj,mem[dcbh].kk,mem[dcbh].grsd,mem[dcb h].sf);printf("\n请输入新内容......\n");printf("\n请输入人员工资信息(基本工资考勤奖金扣款个人所得税实发工资):");scanf("%f%f%f%f",&mem[CurrentCount].jbgz,&mem[dcbh].cql,&mem[dcbh].jj,&mem[dcbh].kk ,&mem[dcbh].grsd,&mem[dcbh].sf);printf("\n已成功修改......\n");system("pause");}printf("\n是否继续(0--结束,其它--继续):");scanf("%d",&sfjx);}system("pause");}void listgz(){int i;printf("\n 员工工资信息表\n");printf(" 序号基本工资考勤奖金扣款个人所得税实发工资\n");for(i=1;i<=CurrentCount;i++)printf("%4d %8f%8f%8f%8f",i,mem[i].jbgz,mem[i].cql,mem[i].jj,mem[i].kk,mem[i].grsd,mem[i]. sf);system("pause");}void main(){int xz=1;printf(" *~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*\n");printf(" * 欢迎使用人事工资管理系统*\n");printf(" ***************************************\n\n\n");if(check()!=0)printf("\n你无权使用本系统......\n\n");system("pause");}else{while(xz!=0){printf("\n请选择相应功能:\n");printf("1-录入\n2-查询\n3-修改\n4-删除\n5-保存\n6-读取\n7-输入员工工资\n8-保存工资信息\n9-读取工资信息\n10-修改工资信息\n11-删除工资信息\n12-工资列表\n0-结束\n请输入选择:");scanf("%d",&xz);switch(xz){case 1:input();break;case 2:search();break;case 3:modify();break;case 4:del();break;case 5:save();break;case 6:read();break;case 7:inputgz();break;case 8:savegz();break;case 9:readgz();break;case 10:modifygz();break;case 11:delgz();break;case 12:listgz();break;case 0:printf("\n\n谢谢使用本系统!\n\n");system("pause");break;default:printf("\n无此功能,请重新选择......\n");system("pause");}}}}。
高校教师人事管理系统(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语言设计的人事管理系统源码
#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语言人事管理系统设计
设计题目:人事管理系统设计目录: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++课程设计——高校人事管理系统
课程设计报告课程名称面向对象程序设计课题名称高校人事管理系统专业通信工程班级通信1101学号姓名指导教师XXXX201X年12 月22 日湖南工程学院课程设计任务书课程名称面向对象程序设计课题高校人事管理系统专业班级通信工程学生姓名XX学号XX指导老师XXX审批任务书下达日期201X 年12 月22 日任务完成日期201X 年 1 月 6 日一、设计内容与设计要求1.课程设计目的:面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。
2.课题题目高校人事管理系统3.设计要求:⑴设计课题题目:第5个课题是扩展课题,有能力完成的同学可以选择。
其余每位同学根据自己学号除以4所得的余数加一选择相应题号的课题。
换题者不记成绩。
⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。
②完成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模块图)。
③完成系统详细设计:包括数据库需求分析;类层次图;界面设计与各功能模块实现。
④系统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修改和调整。
⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出每一步的操作步骤。
⑥关键源程序(带注释)⑶按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。
⑷不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。
二、进度安排第 17 周星期四 14时:00分——18时:00分星期五 19时:分——21时:00分第 18 周星期三 19时:00分——21时:00分星期四 19时:00分——21时:00分三.实验内容课题4:高校人事管理系统(一)、课程设计题目:高校人事管理系统(二)、目的与要求:1、目的:(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
人事管理系统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++版
一.需求分析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()操作不合法。
C语言课程设计人事管理管理系统Ⅱ
C语言课程设计人事管理管理系统Ⅱ[要求]某高校要紧人员有:在职人员(行政人员、教师、一样职员)、退休人员和临时工。
现在,需要储备这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时刻、来院时刻、人员类别。
其中,人员编号唯独,不能重复。
(1)添加删除功能:能依照学院人事的变动情形,添加删除记录;(2)查询功能:能依照编号和姓名进行查询;(3)编辑功能(高级):依照查询对相应的记录进行修改,并储备;(4)统计功能:能依照多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息;(5)排序功能:按照年龄、来院时刻进行排序;(6)储存功能:能对输入的数据进行相应的储备;一.需求分析:依照题目要求,人事信息是存放在文件中的,因此应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,储存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。
另外程序中要求储备的模块,采纳的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,如此的方法容易明白得、容易编写,但当文件中的数据量专门大时,这种方法也存在一定的难度,在本程序中将RS定为100,也即最多可储存的职工人数为100;二总体设计:依照以上需求分析,将程序分成以下几个模块:1扫瞄:****扫瞄文件(0)2 删除****删除记录(1)3查询****按名称查询(2)****按编号查询(3)4 编辑****查询名称编辑信息(4)****查询编号编辑信息(5)5 统计****统计在职人数(6)****统计党员人数(7)****统计女工人数(8)****统计硕士以上学历人数(9)****统计副教授以上职称人数(10)6 排序****按年龄进行排序(11)****按来院时刻进行排序(12)7 储存****将输入的记录进行储存(13)三详细设计;1、主函数:主函数设计的比较简单,只提供输入、处理和输出部分的函数调用。
高校人事管理系统程序设计源代码
目录新建一个头文件类,名字为:,再建一个源文件,名字随意,代码按顺序粘贴进去即可运行。
错误!未定义书签。
? 头文件:错误!未定义书签。
? 源文件:错误!未定义书签。
新建一个头文件类,名字为:,再建一个源文件,名字随意,代码按顺序粘贴进去即可运行。
头文件:#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程序设计源代码
目录新建一个头文件类,名字为:,再建一个源文件,名字随意,代码按顺序粘贴进去即可运行。
头文件:#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++){if(strcmp(yb[i].zzmm,"党员")==0)}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)}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语言人事管理系统
一、内容(标题:宋体,粗体,四号字)本程序主要实现了对高校人事的管理。
其不仅可以对人员的新建、添加、删除的基本操作,还可以进行查询编辑、以不同的方式排序等操作。
进行操作时,只要输入相对应的数字或信息即可。
二、上机环境操作系统:win 7\.windows Xp开发工具:VC6.0三、函数调用关系图四、各函数功能说明1. void add(); 新建\添加2. void del(); 删除3. void sear_edit(); 查询编辑4. void scan(); 浏览5. void order(); 排序6. void old_order(); 年龄排序7. void comingtime_order(); 来院时间排序8. void main() 主函数五、算法描述或流程图0.main ( )函数1.add ( )函数2.del ()函数3.sear_edit( )函数4.scan ()函数5.order ( )函数6.exit ()函数六、程序运行效果图0.main ()函数1.添加函数exit ()exit ()退出2.浏览3.查询编辑4.删除5.排序6.删后浏览七、总结一星期的C语言课程设计结束了,在这八天的时间里,我自己独立完成了一个程序从构思结构,到编写代码,然后上机调试运行的过程,感觉自己收获很大。
通过解决一个又一个的问题,熟悉了C语言的应用,对计算机语言应用的理解又深了一层,在老师的指导下,学会了模块设计的方法,用流程图表示算法,掌握了用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++语言课程设计-人事管理系统
C++语言课程设计——人事管理系统目录一、需求分析..................................3二、程序的主要功能............................3三、程序运行平台..............................3四、系统总枢架图..............................3五、程序类的说明..............................4六、源程序....................................5七、模块分析..................................12八、特色函数..................................13九、不足与对策................................13一、需求分析小型公司人员信息的管理用大型软件系统来管理很不现实,而一个小巧玲珑的信息管理系统可能更适于此类公司。
二、程序的主要功能1、添加功能:添加职员的基本信息,包括姓名、编号、级别、工作时间、工作成绩等;2、修改功能:对信息进行修改;3、查找功能:根据要求查找已有人员信息;4、显示功能:显示所存信息的内容。
三、程序运行环境Visual c++6.0四、系统总框架图五、程序类的说明六、源程序//pengfuyuan.cpp#include<iostream.h>#include"employee.h"int main(){manager m1;technician t1;salesmanager sm1;salesman s1;employee *emp[4]={&m1,&t1,&sm1,&s1};//用指针数组的个元素存放各对象的地址int i;for(i=0;i<4;i++){ /*依次调用各派生类对象的成员函数,完成各自不同的升级、计算月薪、显示信息功能。
人事管理系统(源代码
附录:毕业设计程序清单设计题目人事管理系统教学班:学生姓名:学号:指导教师:完成日期:Option ExplicitDim Bupdata As BooleanDim i As IntegerPrivate Sub Cmbdegree_Click()If Cmbdegree.Text = "定制" ThenFrmTable.ShowCmbdegree.ListIndex = 0End IfEnd SubPrivate Sub Cmbdepart_Click()If Cmbdepart.Text = "定制" ThenFrmTable.ShowCmbdepart.ListIndex = 0End IfEnd SubPrivate Sub CmdAddNew_Click()If CmdAddNew.Caption = "添加" ThenCmdAddNew.Caption = "确认"CmdDel.Enabled = FalseCmdOK.Enabled = FalseDataA.ReadOnly = FalseFor i = 1 To 12If Txt(i).Text = "" Then Txt(i).Text = 0 'DataA.Recordset.Fields(i) = 0Next iDataA.Recordset.AddNewTxt(0).Locked = FalseIf FrmMain.cutable = "employee" ThenDataA.Recordset.Fields(13) = frmLogin.EmploIDDataA.Recordset.Fields(14) = NowIf Opsex(0) ThenDataA.Recordset.Fields(4) = "男"ElseDataA.Recordset.Fields(4) = "女"End IfDataA.Recordset.Fields(7) = Cmbdegree.TextDataA.Recordset.Fields(8) = Cmbdepart.TextElseIf FrmMain.cutable = "leave" ThenDataA.Recordset.Fields(8) = frmLogin.EmploIDDataA.Recordset.Fields(9) = NowElseDataA.Recordset.Fields(13) = frmLogin.EmploIDDataA.Recordset.Fields(14) = NowEnd IfTxt(0).SetFocusElse 'OKIf Txt(0).Text = "" ThenMsgBox "不可以为空"Txt(0).SetFocusExit SubEnd IfFor i = 1 To 12If Txt(i).Text = "" Then Txt(i).Text = 0 'DataA.Recordset.Fields(i) = 0 Next iIf FrmMain.cutable = "employee" ThenDataB.Recordset.FindFirst "职工编号=" + Txt(0).TextIf Not DataB.Recordset.NoMatch ThenMsgBox "职员编号重复"Txt(0).Text = ""Txt(0).SetFocusExit SubEnd IfElseIf FrmMain.cutable = "leave" ThenDataB.Recordset.FindFirst "假条编号=" + Txt(0).TextIf Not DataB.Recordset.NoMatch ThenMsgBox "假条编号重复"Txt(0).Text = ""Txt(0).SetFocusExit SubEnd IfElseFor i = 4 To 10If Not IsNumeric(Txt(i).Text) ThenMsgBox "not a number"Txt(i).SetFocusExit SubEnd IfNext iDataB.Recordset.FindFirst "工资编号=" + Txt(0).TextIf Not DataB.Recordset.NoMatch ThenMsgBox "工资编号重复"Txt(0).Text = ""Txt(0).SetFocusExit SubEnd IfEnd IfDataA.Recordset.UpdateDataA.Recordset.MoveLastFrmMain.DataA.RefreshFrmMain.DataB.RefreshDataB.RefreshCmdAddNew.Caption = "添加"CmdDel.Enabled = TrueCmdOK.Enabled = TrueEnd IfEnd SubPrivate Sub CmdCacel_Click()If CmdAddNew.Caption = "确认" ThenDataA.Recordset.CancelUpdateEnd IfFrmMain.Enabled = TrueFrmMain.SetFocusUnload MeFrmMain.DataA.RefreshIf FrmMain.cutable = "employee" ThenFrmMain.DBGA.Columns("性别").Button = TrueFrmMain.DBGA.Columns("学历").Button = TrueFrmMain.DBGA.Columns("部门").Button = True End IfEnd SubPrivate Sub CmdDel_Click()DataA.ReadOnly = FalseDataA.Recordset.DeleteDataA.Recordset.MoveNextIf DataA.Recordset.EOF ThenDataA.Recordset.MoveLastEnd IfFrmMain.DataA.RefreshEnd SubPrivate Sub cmdOK_Click()If Txt(0).Text = "" ThenMsgBox "不可以为空"Txt(0).SetFocusExit SubEnd IfBupdata = FalseDataA.Recordset.EditIf FrmMain.cutable = "leave" ThenDataA.Recordset.Fields(8) = frmLogin.EmploIDDataA.Recordset.Fields(9) = NowElseIf FrmMain.cutable = "employee" ThenDataA.Recordset.Fields(13) = frmLogin.EmploIDDataA.Recordset.Fields(14) = NowIf Opsex(0) ThenDataA.Recordset.Fields(4) = "男"ElseDataA.Recordset.Fields(4) = "女"End IfDataA.Recordset.Fields(7) = Cmbdegree.TextDataA.Recordset.Fields(8) = Cmbdepart.TextDataA.Recordset.Fields(13) = frmLogin.EmploIDDataA.Recordset.Fields(14) = NowElseFor i = 4 To 10If Not IsNumeric(Txt(i).Text) ThenMsgBox "not a number"Txt(i).SetFocusExit SubEnd IfNext iDataA.Recordset.Fields(13) = frmLogin.EmploIDDataA.Recordset.Fields(14) = NowEnd IfFor i = 1 To 12If Txt(i).Text = "" Then Txt(i).Text = 0 'DataA.Recordset.Fields(i) = 0 Next iDataA.Recordset.UpdateFrmMain.DataA.RefreshDataB.RefreshEnd SubPrivate Sub DataA_V alidate(Action As Integer, Save As Integer)If Action = 11 And Bupdata ThenSave = 0End IfEnd SubPrivate Sub Lab_Click(Index As Integer)End SubPrivate Sub Txt_KeyPress(Index As Integer, KeyAscii As Integer)If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack And Index = 0 Then KeyAscii = 0Exit SubEnd IfIf FrmMain.cutable = "leave" And Index = 1 ThenIf (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack ThenKeyAscii = 0Exit SubEnd IfEnd IfIf FrmMain.cutable = "salary" ThenIf Index <= 3 ThenIf (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack ThenKeyAscii = 0Exit SubEnd IfEnd IfIf Index = 13 Then Exit SubIf (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack And KeyAscii <> 46 ThenKeyAscii = 0Exit SubEnd IfEnd IfEnd SubPrivate Sub Txt_change(Index As Integer)If Bupdata = False Then Bupdata = TrueIf FrmMain.cutable = "salary" ThenIf Txt(Index).Text = "" Then Exit SubIf Index >= 4 And Index <= 6 ThenTxt(7).Text = V al(Txt(4).Text) + V al(Txt(5).Text) + V al(Txt(6).Text)Txt(12).Text = V al(Txt(7).Text) - V al(Txt(11).Text)End IfIf Index >= 8 And Index <= 10 ThenTxt(11).Text = V al(Txt(8).Text) + V al(Txt(9).Text) + V al(Txt(10).Text)Txt(12).Text = V al(Txt(7).Text) - V al(Txt(11).Text)End IfEnd IfEnd SubPrivate Sub Form_Load()DataA.DatabaseName = App.Path + "\sm.mdb"DataB.DatabaseName = App.Path + "\sm.mdb"DataA.Caption = FrmMain.cutableDataA.RecordSource = "select * from " + FrmMain.cutableDataB.RecordSource = "select * from " + FrmMain.cutableDataA.RefreshTxt(0).Locked = True'If FrmMain.DBGA.Row = 0 Then Exit SubIf FrmMain.cutable = "employee" Then 'employeeFor i = 0 To 12Lab(i).Caption = DataA.Recordset.Fields(i).NameNext iTxt(0).DataField = DataA.Recordset.Fields(0).NameTxt(1).DataField = DataA.Recordset.Fields(1).NameTxt(2).DataField = DataA.Recordset.Fields(2).NameTxt(3).DataField = DataA.Recordset.Fields(3).NameTxt(4).V isible = FalseTxt(5).DataField = DataA.Recordset.Fields(5).NameTxt(6).DataField = DataA.Recordset.Fields(6).NameTxt(7).V isible = FalseTxt(8).V isible = FalseTxt(9).DataField = DataA.Recordset.Fields(9).NameTxt(10).DataField = DataA.Recordset.Fields(10).NameTxt(11).DataField = DataA.Recordset.Fields(11).NameTxt(12).DataField = DataA.Recordset.Fields(12).NameTxt(13).DataField = DataA.Recordset.Fields(15).NameIf FrmMain.cuAp > -1 ThenDataA.Recordset.Move (FrmMain.cuAp)ElseDataA.Recordset.MoveFirstEnd IfIf DataA.Recordset.Fields(4) = "男" ThenOpsex(0).V alue = TrueElseOpsex(1).V alue = TrueEnd If'设置lsdegree的显示项For i = 0 To FrmMain.LsDegree.ListCount - 2Cmbdegree.AddItem FrmMain.LsDegree.List(i)If FrmMain.LsDegree.List(i) = DataA.Recordset.Fields(7) ThenCmbdegree.ListIndex = iEnd IfNext iIf Cmbdegree.ListIndex = -1 ThenCmbdegree.AddItem DataA.Recordset.Fields(7)Cmbdegree.ListIndex = Cmbdegree.ListCount - 1End IfCmbdegree.AddItem "定制"'设置lsdepart的显示项For i = 0 To FrmMain.LsDepart.ListCount - 2Cmbdepart.AddItem FrmMain.LsDepart.List(i)If FrmMain.LsDepart.List(i) = DataA.Recordset.Fields(8) ThenCmbdepart.ListIndex = iEnd IfNext iIf Cmbdepart.ListIndex = -1 ThenCmbdepart.AddItem DataA.Recordset.Fields(8)Cmbdepart.ListIndex = Cmbdepart.ListCount - 1End IfCmbdepart.AddItem "定制"'设置完毕ElseIf FrmMain.cutable = "leave" Then 'leaveTxt(7).V isible = TrueCmbdegree.V isible = FalseCmbdepart.V isible = FalseFrame1.V isible = FalseFor i = 8 To 12Lab(i).Visible = FalseTxt(i).V isible = FalseNext iFor i = 0 To 7Lab(i).Caption = DataA.Recordset.Fields(i).NameTxt(i).DataField = DataA.Recordset.Fields(i).NameNext iTxt(13).DataField = DataA.Recordset.Fields(10).NameIf FrmMain.cuAp > -1 ThenDataA.Recordset.Move (FrmMain.cuAp)ElseDataA.Recordset.MoveFirstEnd IfElse 'salaryFrame1.V isible = FalseCmbdegree.V isible = FalseCmbdepart.V isible = FalseFor i = 0 To 12Lab(i).Caption = DataA.Recordset.Fields(i).NameTxt(i).DataField = DataA.Recordset.Fields(i).NameNext iTxt(13).DataField = DataA.Recordset.Fields(15).NameTxt(7).Locked = TrueTxt(11).Locked = TrueTxt(12).Locked = TrueIf FrmMain.cuAp > -1 ThenDataA.Recordset.Move (FrmMain.cuAp)ElseDataA.Recordset.MoveFirstEnd IfEnd IfEnd SubPrivate Sub Form_Unload(Cancel As Integer)FrmMain.Enabled = TrueFrmMain.SetFocusUnload MeFrmMain.DataB.RefreshEnd SubOption ExplicitConst MxUser = 100Public EmploID As IntegerPublic CurUser As StringPublic CurId As StringPublic CurPsw As StringDim user(MxUser), pws(MxUser), state(MxUser), Emplo(MxUser) As StringPrivate Sub Form_Load()Dim i As IntegerIf App.PrevInstance ThenMsgBox ("程序已经运行,不能再次装载。
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++代码
#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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录新建一个头文件类,名字为:Person.h,再建一个源文件,名字随意,代码按顺序粘贴进去即可运行。
(2)头文件: (2)源文件: (2)新建一个头文件类,名字为: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;}}. word ..。