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

合集下载

人事综合管理系统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和链表)

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

c课程设计高校人员管理系统

c课程设计高校人员管理系统

c 课程设计高校人员管理系统一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,能够运用C语言编写简单的程序,培养学生的编程思维和解决问题的能力。

具体包括以下三个方面的目标:1.知识目标:学生能够理解并掌握C语言的基本语法、数据结构和算法,了解计算机编程的基本原理。

2.技能目标:学生能够运用C语言编写简单的程序,具备一定的编程实践能力。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,培养学生勇于探索、创新的精神。

二、教学内容根据教学目标,本课程的教学内容主要包括C语言的基本语法、数据结构和算法。

具体安排如下:1.第一章:C语言概述,介绍C语言的发展历程、特点和基本语法。

2.第二章:数据类型和运算符,介绍C语言的基本数据类型、运算符和表达式。

3.第三章:流程控制,介绍顺序结构、分支结构和循环结构。

4.第四章:函数,介绍函数的定义、声明和调用,以及常用库函数。

5.第五章:数组和字符串,介绍一维数组、多维数组和字符串的基本操作。

6.第六章:指针,介绍指针的概念、运算和应用。

7.第七章:结构体和联合体,介绍结构体、联合体的定义和应用。

8.第八章:文件操作,介绍文件的概念、文件读写操作和文件权限管理。

9.第九章:算法和数据结构,介绍基本算法和常用数据结构。

三、教学方法为了达到教学目标,本课程采用以下教学方法:1.讲授法:教师讲解C语言的基本语法、数据结构和算法,引导学生理解和掌握相关知识。

2.案例分析法:通过分析典型程序案例,让学生学会运用C语言解决实际问题。

3.实验法:安排上机实验,让学生动手编写程序,培养学生的编程实践能力。

4.讨论法:学生分组讨论,促进学生之间的交流与合作,提高学生的解决问题的能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程准备以下教学资源:1.教材:《C程序设计语言》(K&R著)或《C Primer Plus》(Stephen Prata著)。

高校人事管理系统 (C++)

高校人事管理系统 (C++)

一、设计内容与设计要求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++程序设计课程设计》刘振安编著 TP312C5632。

《C++ Builder和Delphi课程设计与系统开发案例》伍俊良清华大学出版社 7—302-06072-X3。

高校人事管理系统C 实验报告

高校人事管理系统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课程设计

人事管理系统c 课程设计一、教学目标本课程旨在通过学习人事管理系统C的相关知识,使学生掌握以下知识目标:1.理解人事管理系统C的基本概念和组成部分;2.掌握人事管理系统C的主要功能和操作方法;3.了解人事管理系统C在现代企业管理中的应用和意义。

同时,通过实践操作和案例分析,培养学生以下技能目标:1.能够熟练操作人事管理系统C进行日常的人事管理;2.能够根据企业实际情况,进行人事管理系统的配置和优化;3.能够运用人事管理系统C进行人力资源数据的分析和决策。

在教学过程中,注重培养学生的情感态度和价值观,使学生:1.认识到人事管理系统C在提高企业效率和降低成本方面的重要性;2.培养学生对新技术的敏感度和积极学习的态度;3.培养学生团队合作和解决问题的能力。

二、教学内容本课程的教学内容主要包括以下几个部分:1.人事管理系统C的基本概念和组成部分;2.人事管理系统C的主要功能和操作方法;3.人事管理系统C在现代企业管理中的应用和意义;4.人事管理系统C的配置和优化方法;5.人事管理系统C的数据分析和决策应用。

教学过程中,将结合具体教材和案例,进行详细的讲解和操作演示,确保学生能够全面掌握相关知识。

三、教学方法为了提高教学效果和学生的参与度,本课程将采用多种教学方法:1.讲授法:通过讲解和案例分析,使学生掌握人事管理系统C的基本概念和主要功能;2.讨论法:通过小组讨论和分享,培养学生的思考和解决问题的能力;3.实验法:通过实际操作和模拟实验,使学生熟练掌握人事管理系统C的操作方法;4.案例分析法:通过分析真实案例,使学生了解人事管理系统C在实际企业管理中的应用。

四、教学资源为了支持本课程的教学,将准备以下教学资源:1.教材:选择适合的教材,为学生提供全面的知识体系;2.参考书:提供相关的参考书籍,丰富学生的知识视野;3.多媒体资料:制作教学PPT和视频资料,提高学生的学习兴趣;4.实验设备:准备计算机和相关设备,为学生提供实际操作的机会。

VC++制作一个人事管理系统--教职工管理系统(DOC 23页)

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语言人事管理系统

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语言教师管理系统代码

C语言教师管理系统代码

C语言教师管理系统代码(共6页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--#include <>#include <>#include <>#include <>/*函数声明*/void input(); 实现教师信息的录入\n");printf("2. 求每个教师的总工资,并输出\n");printf("3. 按总工资从高到低排序,输出教师信息\n");printf("4. 查找指定姓名的教师信息,若不存在,给出提示信息\n");printf("5. 查找基本工资最高的教师信息\n");printf("6. 修改指定职工号的职工信息\n");printf("7. 程序结束\n");printf("************************************************\n"); printf("请输入你要执行的操作:\n");scanf("%d",&n);while( n<1 || n>7){printf("请重新输入\n");scanf("%d",&n);}return n;}um);printf("请输入教师姓名:");scanf("%s",a[i].name);printf("请输入教师出生日期:");scanf("%d%d%d",&a[i].,&a[i].,&a[i].;printf("请输入教师性别:");getchar();scanf("%c",&a[i].sex);printf("请输入教师基本工资:");scanf("%f",&a[i].jbgz);printf("请输入教师津贴:");scanf("%f",&a[i].jt);}}um,a[i].name,a[i].,a[i].,a[i].,a[i].sex,a[i].jbgz,a[i].jt,a[i].jbgz+a[i].jt);}bgz+a[j].jt)>(a[i].jbgz+a[i].jt))k=j;if(k!=i){temp=a[i];a[i]=a[k];a[k]=temp;}}output(a,n);}ame)==0){printf("工作号,姓名,出生日期,性别,基本工资,津贴,总工资:\n");printf("%s %s %d %d %d %c %f %f %f\n",a[i].num,a[i].name,a[i].,a[i].,a[i].,a[i].sex,a[i]. jbgz,a[i].jt,a[i].jbgz+a[i].jt);flag=1;}}if(flag==0)printf("查无此人!\n");}bgz>temp=a[i];}printf("工作号,姓名,出生日期,性别,基本工资,津贴,总工资:\n");printf("%s %s %d %d %d %c %f %f %f\n",,,}um)==0){printf("%s %s %d %d %d %c %f %f %f\n",a[i].num,a[i].name,a[i].,a[i].,a[i].,a[i].sex,a[i]. jbgz,a[i].jt,a[i].jbgz+a[i].jt);printf("请重新输入职工号.姓名.出生日期.性别.基本工资.津贴:\n");scanf("%s %s %d %d %d %c %f %f",a[i].num,a[i].name,&a[i].,&a[i].,&a[i].,&a[i].sex,&a [i].jbgz,&a[i].jt);flag=1;}}if(flag==0)printf("查无此人!\n");printf("修改后的教师信息:\n");printf("职工号.姓名.出生日期.性别.基本工资.津贴.总工资:\n");for(i=0;i<n;i++)printf("%s %s %d %d %d %c %f %f %f\n",a[i].num,a[i].name,a[i].,a[i].,a[i].,a[i]. sex,a[i].jbgz,a[i].jt,a[i].jbgz+a[i].jt);}void main()int num;struct teacher tea[3];while(num=menu()){switch(num){case 1: input(tea,3); break;case 2: output(tea,3);break;case 3: sortbyzgz(tea,3);break;case 4: searchbyname(tea,3);break;case 5: searchbyjbgz(tea,3);break; case 6: repeat(tea,3);break;case 7: exit(0);}getch(); //按任意键继续system("cls"); //清屏}}。

人事管理系统c课程设计

人事管理系统c课程设计

人事管理系统c课程设计一、课程目标知识目标:1. 让学生理解人事管理系统的基本概念和功能,掌握其在我国企业中的应用情况。

2. 使学生掌握数据库管理、数据查询和更新等基本操作,并能运用到人事管理系统c课程设计中。

3. 帮助学生了解软件工程的基本原理,掌握系统分析与设计的方法,为今后从事软件开发工作打下基础。

技能目标:1. 培养学生运用所学知识,结合实际需求,独立设计并实现一个简单的人事管理系统。

2. 提高学生运用编程语言(C语言)进行系统开发的能力,熟练掌握相关开发工具和调试技巧。

3. 培养学生团队协作和沟通能力,能在项目中进行有效的分工与合作。

情感态度价值观目标:1. 激发学生对计算机科学和软件工程的兴趣,培养其主动学习的习惯和探究精神。

2. 培养学生具备良好的职业道德和职业素养,认识到人事管理系统在企业管理中的重要性。

3. 引导学生关注社会发展,了解企业需求,树立正确的就业观念,为未来职业生涯规划做好准备。

课程性质:本课程为实践性较强的课程,旨在让学生通过实际操作,掌握人事管理系统c课程设计的方法和技巧。

学生特点:学生具备一定的计算机基础和编程能力,对人事管理系统有一定了解,但实际操作经验不足。

教学要求:结合学生特点和课程性质,采用案例教学、任务驱动、分组合作等教学方法,注重培养学生的实践能力和团队协作精神。

在教学过程中,分解课程目标为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. 人事管理系统概述:介绍人事管理系统的基本概念、发展历程、功能模块及应用场景。

教材章节:第一章 人事管理系统概述2. 数据库基础:讲解数据库的基本原理,重点掌握SQL语言及数据库设计方法。

教材章节:第二章 数据库基础3. C语言编程基础:复习C语言编程基础,包括数据类型、运算符、控制结构、函数等。

教材章节:第三章 C语言编程基础4. 人事管理系统设计与实现:分析人事管理系统的需求,学习软件工程的基本原理,进行系统设计与实现。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

c人事管理系统课程设计

c人事管理系统课程设计

c人事管理系统课程设计一、教学目标本课程旨在通过学习c人事管理系统,使学生掌握相关的知识、技能以及情感态度价值观。

具体目标如下:1.理解c人事管理系统的基本概念和原理;2.掌握c人事管理系统的主要组成部分及其功能;3.了解c人事管理系统的发展历程和趋势。

4.能够熟练使用c人事管理系统软件;5.能够独立完成c人事管理系统的安装、配置和维护;6.能够根据实际需求,设计和实施c人事管理系统。

情感态度价值观目标:1.培养学生对c人事管理系统的兴趣和热情;2.培养学生对工作的责任心和敬业精神;3.培养学生团队协作和沟通的能力。

二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.c人事管理系统的基本概念和原理:介绍c人事管理系统的基本概念,如人事管理、人力资源管理等,以及其原理和作用。

2.c人事管理系统的主要组成部分及其功能:详细讲解c人事管理系统的主要组成部分,如员工信息管理、薪酬管理、考勤管理等,并阐述其功能和应用。

3.c人事管理系统的发展历程和趋势:介绍c人事管理系统的发展历程,分析其未来发展趋势,让学生了解行业动态。

4.c人事管理系统的安装、配置和维护:讲解c人事管理系统的安装、配置和维护方法,培养学生具备实际操作能力。

5.c人事管理系统的设计和实施:结合实际案例,讲解如何设计和实施c人事管理系统,培养学生具备实际项目经验。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。

1.讲授法:通过讲解c人事管理系统的基本概念、原理和发展趋势,使学生掌握相关知识。

2.讨论法:学生就c人事管理系统的设计和实施展开讨论,培养学生的思考和沟通能力。

3.案例分析法:分析实际案例,使学生了解c人事管理系统的应用场景和实际效果。

4.实验法:安排实验课程,让学生动手操作c人事管理系统,提高其实际操作能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程将选用以下教学资源:1.教材:选用权威、实用的c人事管理系统教材,作为课程主要学习资料。

c人事管理系统课程设计

c人事管理系统课程设计

c人事管理系统课程设计一、课程目标知识目标:1. 理解人事管理系统的基本概念、功能及在企业管理中的应用;2. 掌握人事管理系统的主要模块,如员工信息管理、薪资管理、考勤管理等;3. 学会使用数据库管理人事数据,了解数据查询、更新、删除等基本操作。

技能目标:1. 能够运用所学知识,设计简单的人事管理系统功能模块;2. 学会使用至少一种编程语言(如Java、C#等)实现人事管理系统的部分功能;3. 提高分析问题、解决问题的能力,通过实际操作,学会调试和优化系统。

情感态度价值观目标:1. 培养学生对信息技术学科的兴趣,提高学习积极性;2. 增强学生的团队协作意识,学会与他人共同解决问题;3. 培养学生的创新意识,鼓励敢于尝试、勇于探索的精神。

课程性质:本课程为信息技术学科,旨在让学生了解并掌握人事管理系统的基本知识和技能,提高实际操作能力。

学生特点:学生为高中年级,已具备一定的计算机操作能力和编程基础,对实际应用场景感兴趣。

教学要求:结合课程性质和学生特点,注重理论联系实际,强调实践操作,培养学生的学习兴趣和动手能力。

将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. 人事管理系统概述- 了解人事管理系统的概念、作用及发展历程;- 分析人事管理系统在实际企业中的应用场景。

2. 人事管理系统模块介绍- 员工信息管理:学习如何录入、查询、修改和删除员工信息;- 薪资管理:掌握薪资计算、发放及个人所得税处理方法;- 考勤管理:了解考勤制度,学习如何进行考勤数据统计和分析;- 招聘管理:了解招聘流程,学习如何发布招聘信息、筛选简历等。

3. 数据库技术在人事管理系统中的应用- 学习数据库基础知识,如数据表、字段、数据类型等;- 掌握数据库设计原则,学会使用SQL语言进行数据操作;- 结合人事管理系统,设计数据库表结构,实现数据存储和管理。

4. 编程语言实现人事管理系统功能- 选择一种编程语言(如Java、C#等),学习其基本语法和应用;- 结合实际需求,编写程序实现人事管理系统的部分功能;- 学会调试程序,优化系统性能。

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

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

江苏大学课程设计报告课程设计名称:C++程序设计系别:三系学生姓名:班级:学号:成绩:指导教师:开课时间:2011-2012 学年二学期高校人事管理系统一、课程设计目的******************************************************************* 二、课程设计内容******************************************************************* 三、高校人事管理系统概要设计*******************************************************************四、高校人事管理系统详细设计与实现******************************************************************** 五、总结********************************************************************一.课程设计目的本课程设计是在学习面向对象基本理论之后的实践教学环节。

该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。

要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。

学生通过课程设计在下述各方面得到锻炼:(1)能根据实际问题的具体情况,结合面向对象的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。

(2)提高程序设计和调试能力。

学生通过上机实习,验证自己设计的算法和程序的正确性。

学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。

二.课程设计内容职工信息管理系统建立一个职工信息管理系统,对于普通员工只能查询和修改自己的详细信息和查询其他员工的简单信息,对于人事部门人员可以查询、修改、增加所有职工的详细信息(但不包含修改工资),对于财务部门人员可以查询所有职工的详细信息,和修改职工的工资。

高校人事管理系统C

高校人事管理系统C

高校人事管理系统c高校人事管理系统c是一款非常重要的软件,特别是对于管理高校的人力资源方面。

本文主要介绍高校人事管理系统c的功能、使用方法以及优点等内容,方便用户了解该软件并更好地应用于实际工作中。

一、高校人事管理系统c的功能高校人事管理系统c具有以下功能:1. 员工信息管理:可对员工信息进行新增、删除、修改、查询等操作,包括基本信息、教育经历、工作经历、职称和薪水等。

2. 绩效管理:管理员可依据岗位要求制定绩效考核指标,员工进行绩效考核,并根据考核结果统计每位员工的绩效。

3. 岗位聘用:负责管理每个岗位的职责要求和招聘计划,为高校的招聘提供信息支持。

4. 薪酬管理:设置各个岗位的工资标准和薪酬结构,计算员工的工资并发放工资。

5. 培训管理:记录每个员工的培训情况,制订个性化培训计划。

以上是高校人事管理系统c的主要功能,这些功能可以为高校管理人员提供更便捷和高效的工作方式。

二、高校人事管理系统c的使用方法高校人事管理系统c的使用相对简单,且符合人性化设计原则。

下面通过以下五个步骤介绍该软件的使用方法:1. 登录系统:进入软件后,用户需要输入正确的账号和密码来登录系统。

2. 点击功能区:系统主界面中包含各种功能区,用户需要点击所需的功能区,比如员工信息管理、绩效管理等等。

3. 选择操作类型:在功能区中选择对员工信息、考核情况等操作的类型,比如添加、删除、修改、查询等。

4. 输入或选择数据:在进行操作时,用户需要按要求输入或选择相关数据,比如员工身份证号码、基本信息、职称等。

5. 确认提交:操作完成后,用户需要确认并提交相关信息,可以进行打印等操作。

三、高校人事管理系统c的优点高校人事管理系统c具有以下优点:1. 高效便捷:该软件集成了许多管理模块,可以快速地为高校提供便捷的人事管理服务。

2. 易使用性:软件的GUI设计人性化,不需要太多的操作技巧,即可进行各项管理任务。

3. 数据安全性:通过该软件管理的数据可进行自动备份,有效保障数据的安全性和完整性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
n_n++;
}
p1=p1->next;
}
if(n_n == 0) printf("没有要查找的教师信息!!\n");
}
if(select==4)
{
int n_n=0;
printf("学院:");
scanf("%s",find_college);
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;
};
typedef struct teacher //编号、姓名、性别、出生日期、参加工作时间、工资、学院、职称(助教、讲师、副教授、教授)、学位(学士、硕士、博士)
{
long number;
int salary;
char name[20], sex[10], date_time[20], college[20],title[20], degree[20] ;
//printf("OK!\n");
}
p2->next=NULL;
free(p1);
return(head);
}
void print(TE *head) //函数功能 :输出信息
{
TE *p1=head;
printf("共有教师 %d 名\n",m);
FORMAT;
else p2->next=p1->next;
printf("del: %ld\n",can_num);
n--;
printf("还有教师%d位\n",n);
}
else printf("没有你要查找的教师!\n");
save(head);
return(head);
{ 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);
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);
}
else printf("没有要查找的教师信息!!\n");
}
if(select==2)
{
printf("请输入姓名:");
scanf("%s",find_name);
while(strcmp(p1->name,find_name)!=0 && p1->next !=NULL )
}
else printf("没有要查找的教师信息!!\n");
}
if(select==3)
{
int n_n=0;
printf("请输入参加工作时间:");
scanf("%s",find_time);
while(p1 != NULL)
{
print(head);
printf("按下列选项查询教师信息\n");
printf("1.编号 2.姓名 3.参加工作时间 4.学院 5.职称 \n 请选择:");
scanf("%d",&select);
if(select==1)
{
printf("请输入编号:");
scanf("%ld",&find_num);
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->degr
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};
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);
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);
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++;
}
void find() //函数功能 :查找
{
int select;
long find_num;
char find_name[20],find_time[20],find_college[20],find_title[20];
TE *p1,*p2,*head;
p1=p2=head=read();
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");
while(p1 != NULL )
{
if(strcmp(p1->college,find_college)==0 )
相关文档
最新文档