高校人事管理系统(C)
人事综合管理系统C语言
人事管理管理系统[要求](1)某高校关键人员有: 在职人员(行政人员、老师、通常职员)、退休人员和临时工。
现在, 需要存放这些人员人事档案信息: 编号、姓名、性别、年纪、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。
其中, 人员编号唯一, 不能反复。
(2)添加删除功效:能依据学院人事变动情况, 添加删除统计;(3)查询功效: 能依据编号和姓名进行查询;(4)编辑功效(高级): 依据查询对对应统计进行修改, 并存放;(5)统计功效:能依据多个参数进行人员统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或副教授以上)), 统计要求同时显示被统计者信息;(6)排序功效: 根据年纪、来院时间进行排序;保留功效: 能对输入数据进行对应存放;需求分析:依据题目要求, 职员信息是存放在文件中, 所以应该提供对应文件输入输出功效, 在程序中应该有添加删除, 查询, 编辑, 统计, 排序, 保留等程序实现对应操作, 另外菜单式选择方法选择程序功效也是必需需。
另外程序中要求存放模块, 采取方法均为将原文件中全部数据读入内存, 在内存中处理以后以覆盖方法写入文件中重新储存, 这么方法轻易了解、轻易编写, 但当文件中数据量很大时, 这种方法也存在一定难度, 在本程序中将N定为100, 也即最多可储存职员人数为100;总体设计:1、依据以上需求分析, 将程序分成以下多个模块:2、新建档案信息;3、删除信息;4、追加信息;5、搜索查找信息(按姓名或编号搜索);6、浏览全部信息;7、修改信息;8、信息排序;9、信息统计;二、具体设计;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 "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语言人事管理系统设计
设计题目:人事管理系统设计目录:1.设计任务---------------------------------------------------------------------------------------------12.正文-----------------------------------------------------------------------------------------------------------2(1).系统模块图------------------------------------------------------------------------------------------3 (2).模块说明---------------------------------------------------------------------------------------------3 (3).用户使用说明---------------------------------------------------------------------------------------3 (4).测试结果---------------------------------------------------------------------------------------------33.设计小结--------------------------------------------------------------------------------------------------94.附录-----------------------------------------------------------------------------------------------------------10一.设计任务1、需求分析:人事档案信息采用文件存储,因而要提供文件的输入输出操作;根据学院人事的变动情况,添加删除记录,因而要提供文件的添加删除操作;根据编号和姓名进项查询,所以要提供文件的查找操作;高级编辑功能,就是提供文件的修改操作;统计功能要提供统计操作;排序功能要提供用排序算法对文件记录的排序;另外还要提供键盘式选择菜单以实现功能选择。
高校人事管理系统
目录摘要 (1)第1章问题描述 (2)第2章需求分析 (3)2.1 需求陈述 (3)2.2建立对象模型 (4)2.3建立功能模型 (4)第3章概要设计 (5)3.1 系统设计 (5)3.1.1 系统分析 (5)3.1.2 系统设计思想 (6)第4章详细设计 (6)4.1 类与对象的设计 (6)4.2详细方法的设计 (6)第5章运行及说明 (7)设计总结 (9)参考文献 (10)致谢 (11)摘要该高校人事管理系统模拟了现实高校人事部门的管理系统,操作简单,功能齐全,是一个高效管理不可或缺的一部分,它起到的作用也是无可替代的。
尤其是在一些的大型的管理系统中,它可是功不可么的。
一个好的管理系统它应该为人们提供最好的管理与服务功能。
此预订系统主要提供人员的录入、信息的查询、修改人员信息等功能。
人员信息的录入、在职员工的查询、修改信息、增加、删去,这些都是该系统最基本的模块。
整个系统各操作窗口大方,操作方便。
通过该程序的演示,能够在今后的学习中更深入的了解对象和类的功能,在解决实际问题时灵活运用它们。
关键词:面向对象、c++、人事管理。
1第1章问题描述1.软件开发综合训练题目简介该设计要求学生以机票预订管理业务为背景,设计、开发一套“高校人事管理系统”软件。
通过该题目的设计,培养学生面向对象程序设计的思想,要求学生达到熟练掌握Java语言的基本知识和技能,基本掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
同时强调好的程序设计风格,提高解决实际问题的能力。
2.主要内容、功能及技术指标1)要求利用面向对象的方法以及c++的编程思想来完成系统的设计;2)要求在设计的过程中,建立清晰的类层次;3)在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;4)在系统的设计中,要求运用面向对象的机制(继承、派生及多态性)来实现系统功能。
5)在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能及设计出比较友好的界面等。
高校人事管理系统C 实验报告
Protected: char name[20]; char sex[10]; int age; Public: setpersonnel(); personnelprint();
返聘时间类
Protected: int month; int year; int day; public: setretime(); retimeprint();
目录
第一章 需求分析.................................................................................................................2 第二章 总体设计.......................................................................................................................2
2.1 系统功能模块...............................................................................................................2 2.3 类之间的关系............................................................................................................. 2 2.3 类的关系图..................................................................................................................3 第三章 各功能模块实现...........................................................................................................4 3.1 模块实现及代码......................................................................................................... 4 3.2 运行结果.............................................................................................................13 第四章 系统调试.....................................................................................................................15 第五章 总结和体会.................................................................................................................15
人事管理系统c课程设计
人事管理系统c 课程设计一、课程目标知识目标:1. 让学生理解人事管理系统的基本概念和功能,掌握系统设计的基本原理;2. 使学生掌握数据库管理、数据查询和更新等基本操作;3. 帮助学生了解我国企事业单位人事管理的相关规定和流程。
技能目标:1. 培养学生运用所学知识设计简单的人事管理系统,具备实际操作能力;2. 提高学生分析问题、解决问题的能力,能够根据实际需求进行系统优化;3. 培养学生团队协作和沟通能力,能在项目中进行有效分工与合作。
情感态度价值观目标:1. 培养学生热爱祖国、热爱人民,树立为人民服务的意识;2. 培养学生具备责任心和敬业精神,养成良好的工作态度;3. 引导学生认识到信息技术在企事业单位人事管理中的重要作用,激发学生深入学习信息技术的兴趣。
课程性质分析:本课程为人事管理系统设计,结合信息技术和企事业单位实际需求,具有较强的实践性和应用性。
学生特点分析:学生为高年级学生,具备一定的信息技术基础和编程能力,对实际应用有较高的兴趣。
教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力;2. 重视团队协作,培养学生的沟通能力和协作精神;3. 关注学生情感态度价值观的培养,使学生在学习过程中形成正确的价值观。
二、教学内容1. 人事管理系统概述- 了解人事管理系统的定义、功能和发展历程;- 掌握人事管理系统在企事业单位中的应用。
2. 数据库管理基础- 学习数据库的基本概念、设计原则和SQL语言;- 掌握人事管理系统数据库的建立、维护和查询方法。
3. 人事管理系统模块设计- 分析人事管理系统的主要模块及其功能;- 学习系统设计的基本流程和方法,包括需求分析、模块划分、界面设计等。
4. 系统实现与测试- 掌握人事管理系统的编程实现,运用所学编程语言进行开发;- 学习系统测试方法,确保系统稳定可靠。
5. 企事业单位人事管理规范- 了解我国企事业单位人事管理的相关规定和流程;- 掌握人事管理系统在实际应用中的注意事项。
C++课程设计 高校人事管理系统
课程设计报告课程设计名称:C++程序设计系别:三系学生姓名:班级:软件2班学号:201103112成绩:指导教师:郑步芹开课时间:2011-2012 学年二学期高校人事管理系统一、课程设计目的本课程设计是在学习面向对象基本理论之后的实践教学环节。
该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。
要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。
学生通过课程设计在下述各方面得到锻炼:(1)能根据实际问题的具体情况,结合面向对象的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。
(2)提高程序设计和调试能力。
学生通过上机实习,验证自己设计的算法和程序的正确性。
学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。
二、课程设计内容职工信息管理系统建立一个职工信息管理系统,对于普通员工只能查询和修改自己的详细信息和查询其他员工的简单信息,对于人事部门人员可以查询、修改、增加所有职工的详细信息(但不包含修改工资),对于财务部门人员可以查询所有职工的详细信息,和修改职工的工资。
(1) 进入系统需要密码验证(2) 具有简单的菜单功能。
(不同类型的员工的菜单形式不同)(3)能够按要求完成职工信息的增加,删除,查询和更新相关信息(4)对程序源代码要给出各部分的详细注释。
(5)雇员信息以文件的形式存储。
(6)自己根据能力及需要添加相应功能模块,增强模拟系统功能。
三、高校人事管理系统概要设计定义一个类,定义类的成员数据、声明成员函数、存储和读取函数并定义一个对象数组。
完成各个函数的具体功能,设计3个不同菜单来完成不同功能的实现 ,设计菜单功能执行函数并以此连接菜单与各功能函数实现调用。
流程图:主菜单普通职工人事部门财务部门修改个人信息显示个人信息查询他人信息增加职工信息查询职工信息修改职工信息删除职工信息查询职工信息修改职工工资四、高校人事管理系统详细设计与实现(1) 建立一个员工的类person(2) 定义成员数据:name姓名、num工号、sex性别、address住址、tele电话、salary工资(3) 声明成员函数:增加职工信息函数input、显示详细信息和他人简单函数show、查找个人和他人信息函数search、修改职工信息和工资函数revise以及存储和读取数据函数write_file、read_file。
VC++制作一个人事管理系统--教职工管理系统(DOC 23页)
VC++制作一个人事管理系统——教职工管理系统关键词:VC++应用程序向导增加对话框资源 ADODC控件 DataGrid控件对话框切换2.1系统设计的目的和意义人事管理系统是公司或学校或其他的事业单位用来统一管理人员的软件,下面我就一学校的教职工管理系统为例。
学校职工查询是学校管理中需要经常处理的一项工作,我的毕业设计结合一个简化的学校教职工管理系统的制作,介绍如何利用VC++的应用程序向导制作应用程序。
该系统的制作涉及一个数据库、两个数据表及其相关的对话框的制作开发,涉及在工程中增加对话框、调用对话框的方法以及应用程序向导的使用方法。
最重要的是,在我的毕业设计中,我将介绍一种新的数据源引用方法,即使用ADODC控件引用数据源并制作应用系统的方法。
我的毕业设计程序是简单的,但方法是重要的。
2.2系统功能设计本系统具有—般系统的数据处理功能,如数据录入、增加、修改、删除等。
2.3数据库与数据表的设计本系统将首先创建一个职工信息数据库,并在它之中创建两个数据表,一个是“职工信息数据表”,—个是“职工工资信息表”。
在我的毕业设计当中,我仅用Microsoft Access 2003创建教职工管理数据库及其数据表。
2.3.1利用Microsoft Access 2003创建教职工管理数据库及其数据表微软公司的许多产品所支持的数据库结构与数据库驱动器类型均是通用的,因此,用户往往可以借助于相关的工具创建数据库与数据表,这里我介绍采用Microsoft Access 2003创建数据库及其数据表的方法。
先定义职工信息数据表的结构,如表2.1所示,它专门用于记录教职工的基本情况。
表2.1职工信息数据表的结构简历备注默认是职工工资情况表的结构定义如表2.2所示,注意,这是一个简化了的职工工资数据表,因为工资表往往比较复杂,而且不同的单位工资表结构也有所不同.我不可能定义一个“万能”的工资表结构,只能创建一个具有示范意义的工资数据表结构。
C++课程设计报告-人事管理系统
(1)系统时钟:在在设定的时间间隔内,系统封面显示达到或超过设定的显示时间,系统
封面会自动释放
(2)功能实现:进入主界面与退出系统。
6.
图模块框架图
7.系统数据分析
所有数据存放到access数据库文件下,由ado连接,通过程序按照要求显 示给用户。找到用户需要的数据。
二、系统设计
{
DataModule3->ADOQuery1->Next();
StatusBar1->Panels->Items[0]->Text="数据指向下一个";
}
void __fastcall TFmain::SpeedButton4Click (TObject *Sender)
{
DataModule3->ADOQuery1->Last();
}
void __fastcall TFmain::N9Click (T Object *Sender)
{
//帮助内容
ShowMessage("\
大家好,虽然只是一个简单的程序但是也要写帮助。\n\
简单的操作如下:\n\
一、打开程序。\n\
二、可以进行数据的添加、删除、浏览、查找\n\
三、关闭。\n\
Action=caNone;
}
void__fastcall TFmain::N10Click (T Object *Sender)
{
AboutBox->ShowModal() ; //显示关于对话框
}
void __fastcall TFmain::Button4Click (T Object *Sender)
C++项目报告之高校人事管理系统
C++课程项目设计说明书项目名称:高校人事管理系统目录...................................................................... 错误!未定义书签。
1 项目(高校人事管理系统)需求分析 (1)1.1项目目标 (1)1.2系统主要功能概述 (1)1.3可行性分析 (1)1.4项目运行环境 (2)2 项目(高校人事管理系统)设计 (3)2.1概要设计 (3)2.2详细设计 (3)2.3项目命名约定 (5)2.4项目分工表 (5)2.5项目进度表 (5)3 项目(高校人事管理系统)功能介绍 (6)4 项目(高校人事管理系统)功能测试 (6)5 项目使用说明 (6)6项目(系统)总结 (7)7 程序源代码 (7)1 项目(高校人事管理系统)需求分析1.1 项目目标1.开发一个高校人事管理系统,修改以前该系统的不足,提高系统的运作效率。
1.2 系统主要功能概述1.高校人事管理系统模块(系统流程图)1.3可行性分析1.系统/技术可行性:windows安装了VC+6.0即可运行。
2.使用可行性采用简单的GUI界面,用户经过短期培训即可方便使用系统。
1.4 项目运行环境2 项目(高校人事管理系统)设计2.1 概要设计设计一个person和school的类,再结合main函数实现搞笑人事管理系统的功能,大致模块如下:2.2 详细设计2.3 项目命名约定类名:大写字母开头如:School类属性:采用匈牙利命名法(即第一个字母小写并表明数据类型)如:int 变量:采用匈牙利命名法(即第一个字母小写并表明数据类型)如:c2.4项目分工表2.5项目进度表3 项目(高校人事管理系统)功能介绍添加功能:实现对新成员的添加。
删除功能:对离校成员信息的清楚。
修改功能:对于在校人员信息的变更加以补充和消减,创建最新信息!查询功能:实现对在校人员信息的提取。
数据存盘与装入功能:对以上信息的变更加以存储,实现下一次信息的调用。
高校人事管理系统
高校人事管理系统一、系统概述高校人事管理系统是一种专为高校机构设计的信息化管理系统,旨在提高高校的人力资源管理效率,优化人事管理流程,规范员工管理操作。
该系统涵盖了高校内部各类人事管理功能,包括员工档案管理、招聘录用、考勤管理、绩效考核、培训发展等,全面服务于高校的人力资源管理工作。
二、系统功能1. 员工档案管理员工档案管理是高校人事管理系统的核心功能之一。
系统可以记录和管理每位员工的个人信息、学历背景、工作经历、奖惩记录等相关信息,实现全面的员工信息存档和查阅功能。
同时,系统还可以生成各类员工档案报表,方便管理者对员工档案进行统计和分析。
2. 招聘录用高校人事管理系统支持在线发布招聘信息、收集简历、进行面试评审、发送录用通知等招聘流程全程管理。
管理者可以通过系统对招聘过程进行跟踪和监管,确保招聘工作的公正和高效进行。
3. 考勤管理考勤管理模块可以帮助高校管理者实时监控员工的出勤情况,统计加班、请假等情况,自动生成考勤报表。
员工也可以通过系统进行请假申请、加班申请等操作,提升了考勤管理的效率和可控性。
4. 绩效考核绩效考核功能可以根据设定的考核指标和权重对员工进行绩效评定,实现全员绩效管理。
系统可以自动生成绩效考核报表,为高校管理者提供决策参考和优化建议。
5. 培训发展培训发展模块包括培训计划制定、培训资源管理、培训效果评估等功能,帮助高校管理者合理规划员工的培训发展路径,提升员工的综合素质和竞争力。
三、系统优势1.信息化管理:高校人事管理系统实现了人事管理流程的信息化和数字化,提高了管理效率和准确性。
2.一体化服务:系统集成了多个模块,涵盖了高校各类人事管理功能,为管理者提供全方位的人事管理服务。
3.数据安全:系统采用了多层安全防护措施,确保员工档案等敏感信息的安全性和保密性。
4.易用性强:系统界面友好、操作简单,支持多端设备访问,提升了用户体验和使用便捷度。
四、系统应用高校人事管理系统可以广泛应用于各类高等院校、科研机构等高校单位,为管理者提供专业、高效的人事管理服务。
高校人事管理系统 (C++)
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告以及系统使用说明书。
1.
题目需求:
(1)添加删除功能:能根据学院人事的变动情况,添加删除记录;
(2)查询功能:能根据编号和姓名进行查询;
(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;
(2)基本掌握面向对象程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、基本要求:
(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
(2)要求在设计的过程中,建立清晰的类层次;
(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;
8.知道一些基本的优化规则,如函数只能做一件事、越小越好、基类要足够的抽象,最好使用组合而不是继承,减少依赖性等等。
9.在程序设计中要与别人合作,把自己的糟粕去掉,吸取别人程序中的精华,与其他同学讨论。
10.编写中要先写好一个功能后马上调试,及时发现问题,及时解决问题,而不是系统写完后再慢慢调试,那样问题会很多,调好这里后那里又出现问题,我们初学者还有很多细节不会注意,这种方法有助于我更快的编写出系统,减少编写时间,把更多的时间留下来完善程序。
{year=y;}
void Time::setMonth(int m)
{month=m;}
void Time::setDay(int d)
{day=d;}
bool Time::judgeLeapYear()
{
bool flag=true;
flag=((year%4==0) && (year%100!=0) || (year%400==0));
高校人事管理系统说明书
高校人事管理系统说明书一、系统概述高校人事管理系统是针对高校人事管理流程设计开发的一款信息化系统,旨在提高高校人事管理效率、简化流程、降低工作负担。
二、功能特点1.人员管理:包括教师、行政人员、工作人员等各类人员的信息管理,包括基本信息、考勤、薪资等。
2.招聘管理:支持发布招聘信息、管理招聘流程、评估招聘结果等功能。
3.考勤管理:实现人员考勤打卡、请假、加班等管理,提供考勤报表和统计功能。
4.薪资管理:包括工资核算、发放管理、社会保险等相关功能。
5.绩效管理:支持设定绩效考核指标、评估绩效结果、制定奖惩措施等功能。
三、系统架构高校人事管理系统采用B/S架构(Browser/Server,即浏览器/服务器模式),前端采用HTML、CSS、JavaScript等技术,后端采用Java开发,并结合数据库技术实现数据存储与处理。
四、使用说明1.登录:用户需输入用户名和密码进行登录,系统将进行身份验证并进入相应模块。
2.功能模块:系统根据用户角色提供不同的功能模块入口,例如管理员可以进行人员管理、招聘管理等操作。
3.操作流程:用户可以根据系统提供的操作指南完成相应操作,系统将实时反馈处理结果。
五、系统优势1.智能化:系统提供智能化的人事管理功能,提高工作效率。
2.信息化:实现高校人事管理信息化,方便数据统计与分析。
3.安全性:采用严格的权限控制和数据加密技术,确保信息安全。
六、技术支持如对系统操作、功能有疑问或建议,可联系系统维护人员进行技术支持。
七、版本更新系统会定期进行版本更新,增加新功能、修复BUG等,以提供更好的使用体验。
以上为《高校人事管理系统说明书》的主要内容,希望能为您提供清晰的系统操作指南。
祝您使用愉快!。
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语言编写的简单人事管理系统。
该系统可以实现员工信息的添加、删除、修改和查询,以及一些基本的人事管理功能。
功能模块1. 员工信息管理模块•添加员工信息:包括姓名、工号、职位、部门等基本信息。
•删除员工信息:根据工号删除指定员工的信息。
•修改员工信息:根据工号修改指定员工的信息。
•查询员工信息:可以根据姓名、工号等条件查询员工的信息。
2. 薪资管理模块•发放工资:根据员工的工作时长、加班情况等计算工资并发放。
•调整薪资:可以根据员工表现调整薪资水平。
3. 考勤管理模块•打卡记录:记录员工的上下班打卡情况。
•考勤统计:统计员工的出勤情况,包括迟到、早退、旷工等信息。
系统设计1. 数据结构•员工信息结构体:包括姓名、工号、职位、部门等信息。
•薪资结构体:包括基本工资、加班工资等信息。
•考勤记录结构体:包括打卡时间、出勤情况等信息。
2. 功能实现•员工信息管理:使用链表或数组存储员工信息,实现增删改查操作。
•薪资管理:根据员工的工作情况计算薪资并更新薪资信息。
•考勤管理:记录员工的打卡信息并统计考勤情况。
系统实现1. 界面设计•采用控制台界面,通过菜单选择实现各项功能。
•显示员工信息列表、薪资管理界面和考勤记录界面。
2. 代码实现•使用C语言实现各个功能模块,包括管理员工信息、计算薪资、记录考勤等。
•采用函数封装、模块化设计,提高代码的可读性和可维护性。
测试与验证1. 单元测试•对每个功能模块进行单元测试,确保功能的正确性。
•模拟各种情况,包括正常情况和异常情况。
2. 系统测试•综合测试所有功能模块,验证系统的完整性和稳定性。
•模拟真实使用情况,检查系统的性能和可靠性。
总结通过本文档的介绍,我们了解了一个简单的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语言课程设计(论文)-高校人事管理系统设计
一、题目要求 (2)1、系统功能的基本要求....................................................................... 错误!未定义书签。
2、提示................................................................................................... 错误!未定义书签。
二、需求分析 (3)三、总体设计 (3)四、详细设计 (4)1、主函数 (4)2、各模块设计 (5)(0)浏览模块------------------------------------------------------------------------6(1)删除模块--------------------------------------------------------------------------------------错误!未定义书签。
(2) 查询模块-------------------------------------------------------------------------------------8(2.1) 按编号查询模块----------------------------------------------------------------------------9(2.2) 按姓名查询模块----------------------------------------------------------------------------9(3)编辑模块............................................................................... 错误!未定义书签。
高校人事管理系统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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设计内容与设计要求
1.课程设计目的:
面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。
2.课题题目
1)公司库存管理系统
2)高校学籍管理系统
3)高校工资管理系统
4)高校人事管理系统
5)通讯录程序设计
6)学生成绩管理系统
7) 图书管理系统
8)文本编辑器的设计与实现
9)学生考勤管理系统
10)公司人员管理系统
3.设计要求:
⑴设计课题题目:每位同学根据自己学号除以9所得的余数加一选择相
应题号的课题。
换题者不记成绩。
(课题10只做为参考课题)
⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括
系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。
②完
成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模
块图)。
③完成系统详细设计:包括数据库需求分析;数据库概念结构设计(E
-R图);数据库逻辑结构设计;类层次图;界面设计与各功能模块实现。
④系
统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修
改和调整。
⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出
每一步的操作步骤。
⑥关键源程序(带注释)
⑶按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。
⑷不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。
二、进度安排
第 18 周星期一 8:00——12:00
星期二 8:00——12:00
星期四 8:00——12:00
第 19 周星期一 8:00——12:00
星期二 14:30——18:30
星期三 8:00——12:00
三、参考书籍
1.《C++程序设计课程设计》刘振安编著 TP312C563
2.《C++ Builder和Delphi课程设计与系统开发案例》伍俊良清华大学出版社7-302-06072-X
3.Visual C++课程设计案例精编严华峰中国水利水电出版社 7-5084-2007-1 2004
4.Visual C++课程设计与系统开发案例伍俊良清华大学出版社 7-302-05968-3 2002
(编程平台不限,vc++, c++ Builder等等。
)
课题4:高校人事管理系统
(一)、课程设计题目:
高校人事管理系统
(二)、目的与要求:
1、目的:
(1)要求学生达到熟练掌握C++语言的基本知识和技能;
(2)基本掌握面向对象程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、基本要求:
(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
(2)要求在设计的过程中,建立清晰的类层次;
(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;
(4)在系统的设计中,至少要用到面向对象的一种机制。
3、创新要求:
在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
4、写出设计说明书
(三)、设计方法和基本原理:
1、问题描述(功能要求):
某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。
现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。
要求:
(1)添加删除功能:能根据学院人事的变动情况,添加删除记录;
(2)查询功能:能根据编号和姓名进行查询;
(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;
(4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);
(5)保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。
(6)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。
2、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述(包括属性和方法);
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告以及系统使用说明书。
目录
1.系统需求分析 ......................................................................................................... - 0 -
2.总体设计 (2)
3.详细设计 (3)
4.系统调试 (4)
5.结果分析 (4)
6.总结 (7)
1.系统需求分析
题目需求:
(1)添加删除功能:能根据学院人事的变动情况,添加删除记录;
(2)查询功能:能根据编号和姓名进行查询;
(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;
(4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);
(5)保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。
(6)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。
系统设计目标:
(1)系统能根据用户输入菜单的选项进行执行。
(2)能对基本错误进行判断,并要求用重新输入。
(3)能够把输入的数据保存到txt文件中,下次能够使用。
(4)有较好的人性化,不至于用户不知道做什么。
系统实现功能:
(1)删除功能:能根据用户输入姓名与编号进行删除。
(2)查询功能:能根据用户输入姓名、编号、职位、来校时间、离校时间。
(3)编辑功能:能根据查询的数据进行修改。
(4)统计功能:能根据多种参数进行人员统计。
(5)保持功能:能对输入的数据进行存储在文件中。
(6)识别错误功能:能对基本错误进行判断,并要求用户重新输入。
(7)人员编号在生成人员信息时自动生成。