c++课程设计之高校教职工人事管理系统

合集下载

人事管理-c++课程设计之高校教职工人事管理系统 精品

人事管理-c++课程设计之高校教职工人事管理系统 精品

《C++程序设计》课程设计报告高校教职工人事管理系统年级/专业/班:学生姓名:学号:指导教师:开题时间: 20XX 年 09 月 06 日完成时间: 20XX 年 09 月 28 日目录一、引言 (1)二、设计目的与任务 (1)1、本课程设计的目的 (1)2、本课程设计的任务 (1)三、设计方案 (1)1、总体设计 (1)2、详细设计 (2)3、程序清单 (5)4、程序调试与体会 (14)5、运行过程截图 (14)四、结论 (17)五、致谢 (17)六、 (17)《C++程序设计语言》课程设计——高校教职工人事管理系统一、引言随着人们生活水平的提高,计算机发展异常迅速。

如今,计算机已经深入到我们社会的各个领域,计算机的使用也已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用。

通过计算机对各类问题求解已经成为一种高效、快捷的方式。

本课程设计就是用C++研究两点距离的求解的问题,实现对两点距离的问题求解,和实现类模板的应用以及函数的调用。

二、设计目的与任务1、本课程设计的目的1)通过课程设计更进一步理解C++的基础知识和面向对象的思想。

2)训练用系统的观点和软件开发一般规范进行软件开发,并在此过程中培养严谨的科学态度和良好的工作作风。

初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。

3)熟练掌握C++中类及类模板在程序中的应用,并熟练了解类中函数的调用。

2、本课程设计的任务使用类实现编写一个高校教职工人事管理系统,能够实现教职工信息增加、删除、修改、查找,能够统计在职人员、中共党员、女教职工、高职称、高学历的人数,信息的输入输出能够重载输入与输出操作符,并且要求有错误提示功能,例如输入日期,输入错误提示重新输入。

三、设计方案1、总体设计(1)定义员工(Person)类,其中包括编号、职工分类("行政人员","教师","一般员工","退休人员","返聘人员","临时工")、性别、年龄,职务("无","科级","处级","地级");、职称("无","初级","中级","高级");、政治面貌("群众","中共党员","民主党派")、学历("中专","大专","大学","硕士","博士")。

高校教师人事管理系统(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 课程设计一、课程目标知识目标:1. 让学生理解人事管理系统的基本概念,掌握其功能模块和操作流程。

2. 使学生掌握数据库管理的基本方法,能够运用SQL语句进行数据查询、插入、修改和删除。

3. 帮助学生了解人力资源管理的基本原则,结合实际案例进行分析。

技能目标:1. 培养学生运用C语言编写简单的人事管理系统功能模块的能力。

2. 培养学生具备数据库设计和操作的能力,能够根据实际需求创建数据库表、编写SQL语句。

3. 提高学生的团队协作能力,通过分组讨论、协作完成项目任务。

情感态度价值观目标:1. 培养学生对待人事管理系统开发的认真态度,注重程序规范和代码质量。

2. 培养学生对人力资源管理的兴趣,激发学生探讨实际问题的热情。

3. 引导学生树立正确的职业观,认识到人事管理系统在企业管理中的重要作用。

课程性质分析:本课程为实践性较强的课程,旨在让学生在掌握基本理论知识的基础上,通过实际操作,提高解决实际问题的能力。

学生特点分析:学生具备一定的C语言基础和数据库知识,但对人事管理系统的整体架构和实际应用尚不了解,需要通过本课程的学习,逐步提高。

教学要求:1. 结合实际案例,注重理论知识与实际操作相结合,提高学生的实践能力。

2. 采用任务驱动教学法,激发学生的学习兴趣,引导学生主动探索。

3. 强化团队合作,培养学生的沟通能力和协作精神。

二、教学内容1. 人事管理系统概述- 了解人事管理系统的基本概念、发展历程和实际应用场景。

- 分析人事管理系统的功能模块和业务流程。

2. 数据库基础- 复习数据库的基本概念,如表、字段、记录等。

- 掌握SQL语句的基本操作,包括数据查询、插入、修改和删除。

3. C语言编程实践- 运用C语言编写人事管理系统中的功能模块,如员工信息录入、查询、修改等。

- 学习如何使用C语言调用数据库接口,实现数据存取。

4. 人力资源管理基础知识- 了解人力资源管理的基本原则、方法和技巧。

C语言课设之人事管理系统

C语言课设之人事管理系统

C语言课程设计——人事管理系统题目要求:人事管理管理系统[要求]某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。

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

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

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

另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件存贮,这样的方法在一定程度上提高了对数据处理的灵活性,较容易理解,但存在处理中遇到以外情况而丢失数据的风险,另外当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将N定为100,基本上能满足要求;二、总体设计:根据以上需求分析,将程序分成以下几个模块:1、新建数据文件(build new data);2、添加记录(add data);3、删除记录(delete data);4、按工号搜索(search by number);5、按姓名搜索(search by name);6、浏览全部数据(browse all);7、修改数据(modify the data);8、排序功能(order the volume);9、统计功能(data a volume);系统功能模块图如下:三、详细设计;1、主函数:〈1〉需求分析:为使系统执行完每部分功能后能够方便的回到系统主界面,main()函数设计的较简单,只包含一个menu()函数,其余的全部功能都通过menu()函数调用来实现,并通过menu()函数的递归调用实现返回主界面的功能。

人事管理系统c课程设计

人事管理系统c课程设计

人事管理系统c 课程设计一、课程目标知识目标:1. 让学生理解人事管理系统的基本概念和功能,掌握系统设计的基本原理;2. 使学生掌握数据库管理、数据查询和更新等基本操作;3. 帮助学生了解我国企事业单位人事管理的相关规定和流程。

技能目标:1. 培养学生运用所学知识设计简单的人事管理系统,具备实际操作能力;2. 提高学生分析问题、解决问题的能力,能够根据实际需求进行系统优化;3. 培养学生团队协作和沟通能力,能在项目中进行有效分工与合作。

情感态度价值观目标:1. 培养学生热爱祖国、热爱人民,树立为人民服务的意识;2. 培养学生具备责任心和敬业精神,养成良好的工作态度;3. 引导学生认识到信息技术在企事业单位人事管理中的重要作用,激发学生深入学习信息技术的兴趣。

课程性质分析:本课程为人事管理系统设计,结合信息技术和企事业单位实际需求,具有较强的实践性和应用性。

学生特点分析:学生为高年级学生,具备一定的信息技术基础和编程能力,对实际应用有较高的兴趣。

教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力;2. 重视团队协作,培养学生的沟通能力和协作精神;3. 关注学生情感态度价值观的培养,使学生在学习过程中形成正确的价值观。

二、教学内容1. 人事管理系统概述- 了解人事管理系统的定义、功能和发展历程;- 掌握人事管理系统在企事业单位中的应用。

2. 数据库管理基础- 学习数据库的基本概念、设计原则和SQL语言;- 掌握人事管理系统数据库的建立、维护和查询方法。

3. 人事管理系统模块设计- 分析人事管理系统的主要模块及其功能;- 学习系统设计的基本流程和方法,包括需求分析、模块划分、界面设计等。

4. 系统实现与测试- 掌握人事管理系统的编程实现,运用所学编程语言进行开发;- 学习系统测试方法,确保系统稳定可靠。

5. 企事业单位人事管理规范- 了解我国企事业单位人事管理的相关规定和流程;- 掌握人事管理系统在实际应用中的注意事项。

人事管理系统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.实验设备:准备计算机和相关设备,为学生提供实际操作的机会。

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

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++制作一个人事管理系统--教职工管理系统(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语言职工人事管理系统课程设计报告书

目录一、实验目的 (3)二、实验课题简介 (3)三、实验内容 (3)1、实验总体设计 (3)2、涉及函数模块的功能及流程图 (4)3、原程序清单 (5)4、程序测试结果 (17)四、实验结论 (17)五、实验体会及建议 (17)六、参考文献 (17)一实验目的:1、进一步掌握计算机程序设计基础基本概念,理解其原理与方法。

2、进一步理解和巩固所学的理论知识,掌握高级语言程序设计的编程技巧。

3、培养分析解决实际问题的能力,培养进行高级语言程序设计的实际编程能力。

二. 实验任务1.用C语言设计一个综合应用程序。

主要设计内容有数据库管理程序设计、图形设计、科学计算程序设计、简单游戏程序设计等。

2.学生可以结合自己的专业及兴趣爱好自由命题,也可以从已给几类题目中任选一题,下面题目只是基本要求,鼓励同学自主创新、自由发挥。

三. 实验要求1. 要求学生自主完成以下工作:1)查阅资料,选定题目。

2)制定方案,进行程序总体设计和详细设计。

3)程序详细设计,调试,运行。

4)撰写设计报告。

2. 实验报告内容包括:封面、实验目的、实验内容、设计方案制定、总体设计、详细设计、源程序清单(要求有详细注释)、总结与体会。

二实验课题简介1. 课题名称:数据库管理软件--------职工人事管理系统设计2. 功能:实现简单的职工人事信息管理,基本信息包括职工编号、姓名、性别、年龄、身份证号和简历(50字以内)基本要求:1.设计简单的菜单,能够进行系统功能选择。

2.实现信息的录入功能。

3.在已有信息的基础上添加新的记录。

4.删除指定编号的记录。

5.修改指定编号的记录6.实现信息的浏览功能7.按编号查询功能8.按身份证号排序功能3.相关知识:结构体、数组、常用算法(排序、查找、删除)三实验内容:1. 实验总体设计:实现简单的学生宿舍基本信息管理用数组、指针、结构体等相关知识完成如下内容:1)、简单菜单界面,按1-7、0键选择选项2)、实现各个函数的功能2.函数模块:主模块:main()/*主函数*/其它模块:struct worker/*建立结构体*/Appendworker()/*输入职工信息*/Printworker()/*输出职工信息*/Sortworker()/*按入职工人数排序*/Searchworker()/*查找职工信息*/Deleteworker()/*删除职工人数信息*/Addworker()/*添加职工信息*/Amendworker()/*修改职工信息*/char Menu() /*显示菜单*/算法说明Step 1 输出主菜单Step 2 按1-7、0键选择Step 3 实现各个函数的功能各函数功能及流程图struct worker/*建立结构体*/ Appendworker()/*输入职工信息*/ Printworker()/*输出职工信息*/ Sortworker()/*按入职工人数排序*/ Searchworker()/*查找职工信息*/ Deleteworker()/*删除职工人数信息*/ Addworker()/*添加职工信息*/ Amendworker()/*修改职工信息*/ char Menu() /*显示菜单*/流程图程序测试(1)静态检查;(2)静态检查无误后,上机调试;(3)改正语法错误;运行。

人事管理系统c课程设计

人事管理系统c课程设计

人事管理系统c课程设计一、教学目标本课程旨在通过学习人事管理系统的设计与实现,使学生掌握人力资源管理的基本理论知识,培养学生运用计算机技术进行人事管理的能力。

具体目标如下:1.知识目标:(1)理解人力资源管理的基本概念、原则和方法。

(2)熟悉人事管理系统的基本功能和模块。

(3)掌握数据库设计、编程语言以及软件工程相关知识。

2.技能目标:(1)能够运用人力资源管理理论知识分析和解决实际问题。

(2)具备人事管理系统的设计和开发能力。

(3)学会使用相关编程工具和数据库管理系统。

3.情感态度价值观目标:(1)培养学生热爱祖国、为人民服务的情感态度。

(2)培养学生团结协作、积极进取的精神风貌。

(3)培养学生诚实守信、遵纪守法的良好品质。

二、教学内容本课程主要内容包括:人力资源管理基本理论、人事管理系统设计方法、数据库设计、编程语言以及软件工程相关知识。

具体安排如下:1.人力资源管理基本理论:介绍人力资源管理的基本概念、原则和方法,包括招聘、培训、考核、薪酬等方面。

2.人事管理系统设计方法:讲解人事管理系统的设计思路、流程和技巧,包括需求分析、系统设计、编码和测试等环节。

3.数据库设计:学习数据库的基本概念、设计方法和技巧,掌握数据库管理系统的基本操作。

4.编程语言:学习常用的编程语言,如Java、C++等,掌握基本的编程思想和方法。

5.软件工程:了解软件工程的原理和方法,学会使用相关的软件工程工具。

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

具体方法如下:1.讲授法:通过讲解理论知识,使学生掌握基本概念和原理。

2.案例分析法:通过分析实际案例,使学生学会运用理论知识分析和解决实际问题。

3.实验法:通过动手实践,使学生掌握编程语言和数据库管理系统的基本操作。

四、教学资源本课程所需教学资源包括:教材、参考书、多媒体资料、实验设备等。

具体资源如下:1.教材:选用国内权威出版的教材,如《人力资源管理》、《数据库原理》等。

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

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

湘南学院C语言课程设计课程:人事管理系统姓名:学号:系别:计算机科学与技术专业:计算机科学与技术级别:时间:2012年6月5日目录1…………………………………………………成员分工表2…………………………………………………系统功能分析3…………………………………………………函数简介4…………………………………………………系统流程图5…………………………………………………原代码6…………………………………………………各成员总结成员分工表一、系统功能分析人事管理系统的主要任务是对人事档案进行整理,使得能方便快捷地对人事档案进行查询、统计、更新,并且能按一定要求输出报表。

通过该系统,使企业的人事管理工作系统化、规范化、自动化,从而提高企业人事管理的效率。

本系统分为如下的几大模块:档案查询,输入新员工的信息,删除员工信息和浏览员工信息。

其中的主要模块包括:1、主界面模块该模块提供管理系统的主界面,是主系统的唯一入口,该界面提供用户登陆和新用户的注册。

2、查询模块该模块提供查询符合某一条件的人事档案的界面,其中包括两种查询方式,一种是按姓名查找,另一种是按职工号查找。

3、输\插入模块该模块主要功能是输入新员工的信息。

4、删除模块该模块主要是删除员工的信息。

5、浏览模块该模块提供全部人事档案的界面。

6、退出系统二、函数简介该系统运用了三个结构体数组和10个函数,结构体数组包括:denglu数组、yuefen1数组和worker数组,denglu 数组中有两个元素:用户名username[10]和密码key[5];yuefen1数组中只有一个元素:月份,而worker数组中包含有二十个元素:职工号gonghao,姓名xingming[20],应发工资yfgz,实发工资sf,电费df,税金sj,性别sex[4],职位position[10],部门department[10],工作时间wokestate[20],联系电话tel[13],身份证号shenfenzheng[20],银行卡号kahao[10],QQ 号码qq[10],年龄age,邮箱email[20],政治面貌plotical[10],籍贯jiguan[40],婚否ifmarry[5],住址address[40],实发工资sfgz。

(完整word版)C语言课程设计人事管理系统

(完整word版)C语言课程设计人事管理系统
Int age; //年龄
Char job[10]; //职务
Char post[10]; //职称
Char politic[10]; //政治面貌
Char edu_level[1ቤተ መጻሕፍቲ ባይዱ]; //最高学历
Char period[10]; //任职时间
Char start_time[10]; //来院时间
printf("年龄: ");
scanf("%d",&PAInfo[changeIndex].age);
printf("部门:");
scanf("%d",PAInfo[changeIndex].job);
Char type[10]; //人员类别
}PAInfo;
主要代码结构
1.主函数
为使系统执行完每部分功能后能够方便的回到系统主界面,main()函数设计的较简单,只包含一个menu()函数,其余的全部功能都通过menu()函数调用来实现,并通过menu()函数的递归调用实现返回主界面的功能。
void main()
printf("请重新输入该人事信息");
printf("编号:");
scanf("%s",PAInfo[changeIndex].NO);
printf("姓名:");
scanf("%s",PAInfo[changeIndex].name);
printf("性别:");
scanf("%s",PAInfo[changeIndex].sex);
fh();//统计

人事管理系统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语言课程设计之人事管理系统1本科生C语言课程设计论文课程名称 C语言课程设计教师姓名朱莉本科生姓名李百蝉本科生学号 1002986本科生专业地质学所在院系地球科学学院日期: 12月26日2目录目录 (3)1.课程论文题目 (3)2.程序设计思路 (3)3.功能模块图 (4)4.程序代码 (4)5.程序运行结果 (30)6.课程设计总结 (32)7.致谢 (32)8.参考文献 (32)3一课程论文题目某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。

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

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

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

另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将M定为 ,也即最多可储存的职工人数为 ;根据以上需求分析,将程序分成以下几个模块:1.添加和删除****添加人员信息并保存(1)****按名称和编号查询与删除记录并保存(2)2.查询与编辑****按名称和编号查询****重新编辑信息并保存3. 统计****统计在职人数****统计党员人数****统计女工人数****统计硕士以上学历和副教授以上职称人数****将统计得到的信息保存在worker3.txt文件中4. 排序5。

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

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

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

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

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

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

c语言课程设计图书管理系统高校教师人事管理系统

c语言课程设计图书管理系统高校教师人事管理系统

c语言课程设计图书管理系统高校教师人事管理系统图书借阅治理是图书馆一个最差不多的工作,那个地点用C语言的知识设计开发一个简单的图书借阅治理系统,系统要紧实现图书信息和学生信息的治理,图书查询及图书借阅治理。

系统设计要求系统要紧实现以下六个功能:①用户登录。

系统用户分为治理员和学生。

治理员登录时必须输入密码,密码正确才能进入系统;学生登录时无需密码,输入学号即可。

②图书信息治理。

图书信息包括:书号、书名、作者、图书分类、出版社、出版时刻、单价、总量和库存量。

图书信息治理包括:输入图书信息(从键盘或从文件)、储存图书信息、修改图书信息、增加图书信息、删除图书信息和输出图书信息。

③学生信息治理。

学生信息包括:学号、姓名、借书卡(借阅标记、书号、借阅时刻)。

学生信息治理包括:输入学生信息(从键盘或从文件)、储存学生信息、修改学生信息、增加学生信息、删除学生信息和输出学生信息。

④图书查询功能。

图书查询分为:按书名查询、按作者查询、按图书分类查询、按出版社查询和按出版时刻查询。

⑤借书功能。

借书时,先判定学生是否有闲暇的借书卡,若没有则应输出提示信息;若有闲暇的借书卡,则要求学生输入所借图书的书号,若该书库存量不为0,则将该书借出,同时在借书卡上记录该书的书号和借阅时刻,并修改该书的库存量。

⑥还书功能。

还书时,先检查学生的借书卡,若借书卡都为空,则不能进行还书操作,若有借书卡不为空,则能够还书,现在要求学生输入所还图书的书号,将对应借书卡上的记录清零,并修改该书的库存量。

系统总体设计1. 功能模块图系统功能模块图2. 数据结构设计系统共定义了四个结构体类型,包括日期类型、借书卡类型、图书类型和学生类型,其中在图书类型中要使用日期类型,而在学生类型中要使用日期和借书卡类型,定义如下:typedef struct date //日期类型{ short year; //年short month; //月short day; //日}SDATE;typedef struct library_card //借书卡类型{ Short flag; //是否借阅标记Char ISBN[20]; //所借图书的书号SDATE bor_time; //借阅时刻}SLCARD;typedef struct student //学生类型{ char num[15]; //学号char name[20]; //姓名SLCARD card[5]; //借书卡(规定每人最多有5张)}SSTUD;typedef struct book //图书类型{ char ISBN[20]; //书号char bookname[40]; //书名char author[20]; //作者char publisher[30]; //出版社char bookclass[20]; //图书分类short total_num, stock_num; //总量,库存量float price; //单价SDATE publish_time; //出版时刻}SBOOK;系统定义了两个全局变量数组,分别存放图书信息和学生信息,因数组大小是固定的,为使用方便在系统中定义两个符号常量,具体定义如下:#define BOOKNUM 1000 // BOOKNUM为系统承诺的最大图书数量#define STUDNUM 100 // STUDNUM为系统承诺的最多学生人数SSTUD student[STUDNUM]={0}; //学生数组,初始化为0SBOOK book[BOOKNUM]={0}; //图书数组,初始化为03. 功能模块设计(1) main函数的设计:由于图书信息和学生信息都储存在文件中,系统运行的第一个工作是从文件中将图书信息和学生信息读入到内存数组book和数组student中,在读入信息的过程中同时统计出目前图书的数量和学生的人数,并将数据分别存放在整型变量bn和sn中,bn为图书数量,sn为学生人数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c++课程设计之高校教职工人事管理系

《C++程序设计》课程设计报告
高校教职工人事管理系统
年级/专业/班:
学生姓名:
学号:
指导教师:
开题时间:年 09 月 06 日
完成时间:年 09 月 28 日
目录
一、引言 .................................................................... 错误!未定义书签。

二、设计目的与任务 ................................................ 错误!未定义书签。

1、本课程设计的目的........................................ 错误!未定义书签。

2、本课程设计的任务........................................ 错误!未定义书签。

三、设计方案 ............................................................ 错误!未定义书签。

1、总体设计........................................................ 错误!未定义书签。

2、详细设计........................................................ 错误!未定义书签。

3、程序清单........................................................ 错误!未定义书签。

4、程序调试与体会............................................ 错误!未定义书签。

5、运行过程截图................................................ 错误!未定义书签。

四、结论 .................................................................... 错误!未定义书签。

五、致谢 .................................................................... 错误!未定义书签。

六、参考文献 ............................................................ 错误!未定义书签。

《C++程序设计语言》课程设计
——高校教职工人事管理系统
一、引言
随着人们生活水平的提高, 计算机发展异常迅速。

如今, 计算机已经深入到我们社会的各个领域, 计算机的使用也已不再局限于科学计算, 它已进入人类社会的各个领域并发挥着越来越重要的作用。

经过计算机对各类问题求解已经成为一种高效、快捷的方式。

本课程设计就是用C++研究两点距离的求解的问题, 实现对两点距离的问题求解, 和实现类模板的应用以及函数的调用。

二、设计目的与任务
1、本课程设计的目的
1) 经过课程设计更进一步理解C++的基础知识和面向对象的思想。

2) 训练用系统的观点和软件开发一般规范进行软件开发, 并在此过程中培养严谨的科学态度和良好的工作作风。

初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。

3) 熟练掌握C++中类及类模板在程序中的应用, 并熟练了解类中函数的调用。

2、本课程设计的任务
使用类实现编写一个高校教职工人事管理系统, 能够实现教职工信息增加、删除、修改、查找, 能够统计在职人员、中共党
员、女教职工、高职称、高学历的人数, 信息的输入输出能够重载输入与输出操作符, 而且要求有错误提示功能, 例如输入日期, 输入错误提示重新输入。

三、设计方案
1、总体设计
( 1) 定义员工( Person) 类, 其中包括编号、职工分类( "行政人员","教师","一般员工","退休人员","返聘人员","临时工") 、性别、年龄, 职务( "无","科级","处级","地级") ;、职称( "无","初级","中级","高级") ;、政治面貌( "群众","中共党员","民主党派") 、学历( "中专","大专","大学","硕士","博士") 。

( 2) 实现下面的功能
a、设计菜单实现功能选择;
b、输入功能: 输入员工的信息, 并保存到文件中;
c、删除资料: 能够根据编号删除员工的资料;
d、修改功能: 能够根据编号来修改员工的资料;
e、查询功能: 能够根据编号来查看员工的资料;
f、统计功能: 能够统计在职人员、中共党员、女教职工、高职称、高学历的人数。

g、错误提示功能: 如果输入的资料不合法, 将会提示错误, 并给予指导。

2、详细设计。

相关文档
最新文档