c++人事管理系统报告
c++人事管理系统报告
课程设计报告课程名称面向对象课程设计设计题目人事管理系统专业班级姓名学号指导教师起止时间2010年12月20日-12月31日成绩评定电气与信息学院人事管理系统一、课程设计的目的现代信息技术的发展,在改变着我们的生活方式的同时,也改变着我们的工作方式,使传统意义上的人事管理的形式和内涵都在发生着根本性的变化。
在过去,一支笔和一张绘图桌,可能就是进行办公的全部工具。
今天,电脑、扫描仪和打印机等,已基本取代了旧的办公用具。
如今,人事管理己完全可以通过电脑进行,并在计算机辅助下准确快速地完成许多复杂的工作。
这些都大大地缩短管理的时间。
而今天,人事管理的内容己经转变为对更为广泛的系统价值的追求。
信息管理,如今已是一个热门话题,它已为许多企业所采用。
我认为,在现代化的进程中,引入现代管理的思想,建立一套可面向企事业单位人事的信息管理系统,也是十分必要的二、课程设计的要求要求了解企业管理信息系统开发的全过程,理解信息系统课程相关的概念,掌握管理信息系统的开发方法。
主要包括:登陆的两个用户:管理员、职工管理员:可以对职工信息进行添加信息、删除信息、查询员工信息、修改员工信息、浏览员工信息。
用户:可以对自己的信息进行浏览、修改、查询;还可以对别人的信息进行查询,浏览。
开发这个系统的目的就是帮助企业的人力资源部门提高工作效率,实现企业人事信息管理的系统化,规范化和自动话。
根据这个系统最终实现的主要功能如下:系统部分:主要完成本系统的维护工作。
员工基本信息部分:主要完成员工基本信息的管理。
本系统是个简单的程序,由于时间和技术有限,功能不是多完整,多具体,还请包涵。
本系统的功能模块图如下:图1功能层次图三、设计思路1.系统分析系统开发背景、开发范围、建设目标与必要性人事信息管理是一个单位信息管理的重要组成部分,它的内容对于一个单位的人事管理起着至关重要的作用。
人事信息管理系统应该能够为管理者提供充足的信息和快捷的查询手段,但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点。
高校人事管理系统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语言职工人事管理系统课程设计报告书
目录一、实验目的 (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. 介绍C人事工资管理系统是一款基于C语言开发的人事工资管理软件。
该软件可以通过输入员工信息、职位信息和工资信息来实现员工工资的管理。
本次实验的目的是通过对C人事工资管理系统的使用,掌握C语言的基本操作和编程思想。
2. 实验环境本次实验的环境为Windows操作系统,使用Mingw-w64作为编译器。
在软件开发过程中,使用了C语言的基本语法和部分函数库,并通过Makefile文件进行编译,得到可执行文件。
3. 功能介绍C人事工资管理系统可以实现以下功能:(1)添加员工信息:通过输入员工的姓名、性别、部门、职位等基本信息,将员工信息存储到文件中。
(2)修改员工信息:可以修改员工的基本信息以及工资等信息。
(3)删除员工信息:根据员工的工号删除员工信息。
(4)查询员工信息:可以根据员工的工号或姓名等信息查询员工的基本信息以及工资等信息。
(5)计算员工工资:根据员工的基本工资、职位工资、绩效工资等信息计算员工的工资。
(6)数据报表统计:根据员工的职位、部门等信息实现数据的报表统计和导出。
4. 实验过程(1)编写员工信息结构体和读写文件函数员工信息包括姓名、性别、工号、职位、部门、基本工资、职位工资、绩效工资等信息。
使用结构体来定义员工信息,并编写读写文件函数来实现员工信息的存储和读取。
(2)实现员工信息的增删改查功能使用链表来存储员工信息,并编写添加、删除、修改和查询员工信息的函数来实现员工信息的管理。
(3)实现员工工资计算功能根据员工的基本工资、职位工资和绩效工资等因素计算员工的工资,并将计算结果存储在员工信息中。
(4)实现数据报表统计功能根据员工的职位、部门和工资等信息实现数据的报表统计和导出。
5. 实验结果通过本次实验,我们成功开发了C人事工资管理系统。
该系统具有实现员工信息管理、工资计算和报表统计等功能,可以方便地帮助企业和机构实现人事工资管理任务。
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语言课程设计综合实习报告题目:人事管理系统姓名:李晋林班学号:191102院(系):计算机学院专业:计算机科学与技术指导教师:何兴恒2010年8月人事管理系统【设计目的】某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员及临时工。
现在需要储存这些人员的人事档案信息,内容包括编号、姓名、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。
其中,人员编号唯一,不能重复。
设计人事管理系统满足以下功能:添加删除功能:能根据学院人事的变动情况,添加删除记录。
(1)查询功能:能根据编号和姓名进行查询。
(2)编辑功能(高级):根据查询对相应的记录进行修改并记录。
(3)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数,高学历高职称人数),统计要求同时显示被统计着的信息。
(4)(5)排序功能:按照年龄、来院时间进行排序。
(5)(6)保存功能:能对输入的数据进行相应的存储。
【设计思路】根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的。
【总体设计】【分块设计】图1—3输入模块流程图图1—4借阅函数流程图图1—5修改、删除、追加模块流程图【程序源代码】#include<stdio.h>#include<string.h>#include<conio.h>#include<stdlib.h>#include<ctype.h>#define STACK_INIT_SIZE 10#define OK 1#define TRUE 1#define FALSE 0#define ERROR 0struct student{int carnum;char lendbook[10];}student[1000];struct book{int booknum;char bookname[10];char bookcreat[10];int turefalse;}book[1000];struct car{int carnum;char studentname[10];int studentclass;}car[100];huanbook(){FILE *fp,*fp2;int i,n;int carnum;char lendbook[10];printf("请你输入你的卡号\n");scanf("%d",&carnum);fp=fopen("car.txt","r");for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++){if(car[i].carnum==carnum){n=i;fclose(fp);printf("请输入你要还的书的名字\n");scanf("%s",lendbook);fp=fopen("record.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++){if(strcmp(student[i].lendbook,lendbook)==0){fclose(fp);fp=fopen("record.txt","r");fp2=fopen("bookl.txt","w");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++){if(strcmp(student[i].lendbook,lendbook)==0){continue;}fwrite(&student[i],sizeof(struct student),1,fp2);}fclose(fp);fclose(fp2);fp=fopen("record.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++){fwrite(&student[i],sizeof(struct student),1,fp);}fclose(fp);fclose(fp2);fopen("bookl.txt","w");fclose(fp2);fp=fopen("book.txt","r");fp2=fopen("bookl.txt","w");for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(i==n){book[i].turefalse=1;fwrite(&book[i],sizeof(struct book),1,fp2);continue;}fwrite(&book[i],sizeof(struct book),1,fp2);}fclose(fp);fclose(fp2);fp=fopen("book.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++){fwrite(&book[i],sizeof(struct book),1,fp);}fclose(fp);fclose(fp2);fopen("bookl.txt","w");fclose(fp2);printf("还书完毕,按任意键返回\n");getch();return 1;}}printf("你没有借过这样的书,任意键返回\n");fclose(fp);getch();return 0;}}printf("系统没这样的卡,按任意键返回\n");fclose(fp);getch();}void findbook(){FILE *fp;char bookname[10];int i;fp=fopen("book.txt","r");printf("请输入你要查找的书名\n");scanf("%s",bookname);for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(bookname,book[i].bookname)==0){if(book[i].turefalse==1){printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);}else {printf("这本书已经有人借出\n");fclose(fp);return (0);}fclose(fp);return FALSE;}}printf("没有你要查询的书籍\n");fclose(fp);return FALSE;}void findbook1(){FILE *fp;char bookcreat[10];int ture,i;fp=fopen("book.txt","r");printf("请输入你要查找的作者名\n");scanf("%s",bookcreat);for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(bookcreat,book[i].bookcreat)==0){if(book[i].turefalse==1){printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);}else {printf("这本书已经有人借出\n");fclose(fp);return 0;}fclose(fp);return FALSE;}}printf("没有你要查询的书籍\n");fclose(fp);return FALSE;}void lendcount(){FILE *fp;int i,n=0;fp=fopen("record.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++){printf("卡号:%d 借出的书籍:%s \n",student[i].carnum,student[i].lendbook);n=n+1;}fclose(fp);printf("目前共有%d本书借出\n",n);printf("按任意键\n");getch();return n;}void chabook(){char ch5;do{printf("---------------欢迎进入图书查询系统!--------------\n");printf(" 1:<按书名查找>\n");printf(" 2:<按作者查找>\n");printf(" 0:<返回>\n");printf("请输入0--2,其他输入为非法输入!\n");scanf("%s",&ch5);switch(ch5){case '1':findbook();getch();break;case '2':findbook1();getch();break;case '0':break;default:printf("无此操作\n");getch();break;}}while(ch5!='0');return FALSE;}void lendbook(){FILE *fp,*fp2;int i,n;int carnum;printf("请你输入你的卡号:\n");scanf("%d",&carnum);fp=fopen("car.txt","r");for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++){if(car[i].carnum==carnum){n=i;fclose(fp);printf("请输入你要借阅的书的名字\n");scanf("%s",student[n].lendbook);fp=fopen("book.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(book[i].bookname,student[n].lendbook)==0){if(book[i].turefalse==0) {printf("对不起,此书有人借出,请借其他书\n");fclose(fp);getch();return;}elsefclose(fp);fp=fopen("record.txt","a+");student[n].carnum=carnum;fwrite(&student[n],sizeof(struct student),1,fp);fclose(fp);fp=fopen("book.txt","r");fp2=fopen("bookl.txt","w");for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(book[i].bookname,student[n].lendbook)==0){book[i].turefalse=0;fwrite(&book[i],sizeof(struct book),1,fp2);continue;}fwrite(&book[i],sizeof(struct book),1,fp2);}fclose(fp);fclose(fp2);fp=fopen("book.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++){fwrite(&book[i],sizeof(struct book),1,fp);}fclose(fp);fclose(fp2);fopen("bookl.txt","w");fclose(fp2);printf("借书完毕,请按任意键返回\n");getch();return;}}printf("这样的书不存,请任意键返回\n");fclose(fp);getch();return;}}printf("你的卡号不存在,请申请卡号,按任意键返回\n");fclose(fp);getch();}void carcount(){FILE *fp;int i,n=0;fp=fopen("car.txt","r");for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++){printf("第%d张卡<卡号:%d 姓名:%s 班级:%d>\n",i+1,car[i].carnum,car[i].studentname,car[i].studentclass);n=n+1;}fclose(fp);printf("目前共有%d本书\n",n);printf("按任意键\n");getch();}void delcar(){FILE *fp,*fp2;int i;int carnum;char choice;fp=fopen("car.txt","r");fp2=fopen("bookl.txt","w");printf("请输入你要删除的卡号\n");printf("如果你输入的卡号存在,系统自动删除该信息!如果不存在,系统不做任何改动\n");scanf("%d",&carnum);for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++){if(car[i].carnum!=carnum){fwrite(&car[i],sizeof(struct car),1,fp2);}}fclose(fp);fclose(fp2);printf("是否真的要删除该卡?删除后该书籍的所有信息将无法恢复《Y/N》\n");scanf("%s",&choice);if(choice=='y'||choice=='Y'){fp=fopen("car.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&car[i],sizeof(struct car),1,fp2)!=0;i++){fwrite(&car[i],sizeof(struct car),1,fp);}fclose(fp);fclose(fp2);fp2=fopen("bookl.txt","w");fclose(fp2);printf("按任意键返回\n");getch();return;}else{printf("按任意键返回\n");getch();return;}}void addcar(){FILE *fp;int i=0;fp=fopen("car.txt","a+");printf("请你输入卡号\n");scanf("%d",&car[i].carnum);printf("请你输入学生姓名\n");scanf("%s",car[i].studentname);printf("请你输入班级\n"); scanf("%d",&car[i].studentclass); fwrite(&car[i],sizeof(struct car),1,fp);fclose(fp);printf("输入完毕,任意键返回\n");getch();}void addbook(){FILE *fp;int i=0;char choice='y';fp=fopen("book.txt","a+");while(choice=='y'||choice=='Y'){printf("请你输入书的序号\n");scanf("%d",&book[i].booknum);printf("请你输入书名\n");scanf("%s",book[i].bookname);printf("请你输入书的作者\n");scanf("%s",book[i].bookcreat);printf("请你设定书的状态(请设为1或0,1代表书还没人借,0表示书已经借出,设其他值)\n");scanf("%d",&book[i].turefalse);fwrite(&book[i],sizeof(struct book),1,fp);printf("是否要输入下本书\n");scanf("%s",&choice);}fclose(fp);}void bookcount(){FILE *fp;int i,n=0;fp=fopen("book.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(book[i].booknum!=0&&strlen(book[i].bookname)!=0&&strlen(book[i].bookcreat)!=0){printf("第%d本书<序号:%d 书名:%s 作者:%s 状态:%d>\n",i+1,book[i].booknum,book[i].bookname,book[i].bookcreat,book[i].turefalse);n=n+1;}}fclose(fp);printf("目前共有%d本书\n",n);printf("按任意键\n");}void delbook(){FILE *fp,*fp2;int i;char bookname[10],choice;fp=fopen("book.txt","r");fp2=fopen("bookl.txt","w");printf("请输入你要删除的书名\n");printf("如果你输入的书名存在,系统自动删除该信息!如果不存在,系统不做任何改动\n");scanf("%s",bookname);for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(bookname,book[i].bookname)!=0){fwrite(&book[i],sizeof(struct book),1,fp2);}}fclose(fp);fclose(fp2);printf("是否真的要删除该书籍?删除后该书籍的所有信息将无法恢复《Y/N》\n");scanf("%s",&choice);if(choice=='y'||choice=='Y'){fp=fopen("book.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++){fwrite(&book[i],sizeof(struct book),1,fp);}fclose(fp);fclose(fp2);fp2=fopen("bookl.txt","w");fclose(fp2);printf("按任意键返回\n");getch();return;}else{printf("按任意键返回\n");getch();return;}}main(){char ch1,ch2,ch3,ch5;do{printf("\t\t请你选择操作类型:\n");printf(" 1:<查阅图书>\n");printf(" 2: <借阅图书>\n");printf(" 3:<管理系统>\n");printf(" 4:<还书>\n");printf(" 0:<退出>\n");printf("请输入0--4\n");scanf("%s",&ch1);switch(ch1){case '1':chabook();break;case '2':lendbook();;break;case '3':{do{printf("---------------欢迎进入管理系统!--------------\n");printf(" 1:<增加图书>\n");printf(" 2:<删除图书>\n");printf(" 3:<书籍统计>\n");printf(" 4:<学生管理系统>\n");printf(" 0:<返回>\n");printf("请输入0--4,其他输入非法!\n");scanf("%s",&ch2);switch(ch2){case '1':addbook(); break;case '2':delbook();break;case '3':bookcount();getch();break;case '4':{do{printf("---------------欢迎进入学生管理系统!--------------\n");printf(" 1:<申请新卡>\n");printf(" 2:<删除卡号>\n");printf(" 3:<借书统计>\n");printf(" 4:<卡号统计>\n");printf(" 0:<返回>\n");printf("请输入0--4,其他输入非法!\n");scanf("%s",&ch3);switch(ch3){case '1':addcar();break;case '2':delcar();break;case '3':lendcount();break;case '4':carcount();break;case '0':break;default:printf("无此操作\n");getch();break;}}while(ch3!='0');}break;case '0':break;default:printf("无此操作\n");getch();break;}}while(ch2!='0');}break;case '4':huanbook();break;case '0':break;default:printf("无此操作\n");getch();break;}}while(ch1!='0');}【设计体会】通过为期8次课的课程设计,对《C语言课程设计》这门课程有了更深一步的了解。
(完整word版)C语言课程设计人事管理系统
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();//统计
公司人事管理系统VC++设计报告
湖南科技大学VC++ 课程设计报告公司人事管理系统学生姓名:学号:年级专业班级:指导老师:学院:湖南·提交日期:2011年12月目录1 前言 (3)2 需求分析 (3)3 概要设计 (4)3.1系统功能模块设计 (4)3.2流程图 (4)4 详细设计 (5)4.1.数据库需求分析 (5)4.2.模块分析 (6)4.3整体界面的实现 (6)4.4查询成绩的实现 (11)4.5添加.删除和修改记录的实现 (13)5 测试分析 (17)6 心得体会 (18)参考文献 (18)致谢 (18)公司人员信息管理系统(湖南科技大学湘潭中国1007020425)摘要本次课程设计任务是通过编写一个公司人员信息管理系统,学习用Visual C++ 6.0开发简单的管理系统。
采用Visual C++ 6.0软件为主要开发工具。
本系统主要完成对公司员工情况和公司信息的管理,包括人员信息的添加、修改、删除等。
系统还可以完成对各类信息的浏览、增加、排序、查询等功能。
由于我们还没有学习数据库,所以在编写这个程序的过程中备受煎熬,显得心有余而力不足。
系统的核心是引用数据库来存储和修改公司人员的信息联系,每一个动作都可能影响到其它的功能,还有数据的改变,当完成对数据的操作时系统会自动地完成数据库的修改。
关键字:VC++6.0;公司人员信息管理系统;模块化设计;数据库;1 前言使用计算机管理人员信息,不但可以大量节省时间、人力、财力、物力,而且能更全面有效地掌握公司的基本情况,及时获取最新而又准确的资料和信息。
此课程设计就是这样一个管理公司人员信息的系统,其功能与实现方面有比较好的的针对性和实用性。
软件是在Visual c++平台上开发的,利用数据库存储数据和信息。
利用数据库操作,能比较方便地实现对人员信息的操作与管理。
2 需求分析Visual C++6.0的MFC提供了大量的类库函数强大支持。
开发一个人员信息管理系统,可以实现人员信息的管理。
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();}。
人力资源vc人员管理系统完整设计报告
人力资源vc人员管理系统完整设计报告一、背景和目的随着信息技术的快速发展,许多企业已经意识到人力资源管理对企业整体运营的重要性。
为此,研发一个可靠的人力资源vc人员管理系统已成为企业的首要任务。
本文旨在设计一种完整的人力资源vc人员管理系统,以提高企业的劳动力生产率、员工满意度及企业整体效益。
二、需求分析1.系统入口及用户权限用户可通过网站、APP等途径登录系统。
管理员根据员工职责分配不同权限,确保用户只能查看和更改自己拥有权限的内容。
2.员工档案管理管理系统可涵盖基本信息、员工图片、用工合同、员工招聘来源、员工岗位信息、授权信息、任职资格证书等。
同时,还可实现员工信息的自动化管理和整合,减少数据重复录入和人为错误,确保员工信息的真实性和完整性。
3.员工考勤管理根据员工出勤、旷工、考勤条例等信息,自动生成考勤数据和工资数据,以便对考勤、工资结算和员工考勤情况进行全面统计分析。
此外,还可对考勤数据进行自动校对,减少数据重复和错误率。
4.员工培训管理包括培训信息、培训计划、培训记录、培训评价等,实现员工培训管理的全面有效性和系统性。
5.绩效管理设置目标、评估和考核机制、数据分析等,分析员工发展潜力和个人能力,提供员工发展方向和生产效率提高的意见和建议。
6.人力成本管理实现人力成本的计算、收缩、分析和预测。
三、系统设计与实现1.系统架构采用B/S+ C/S的架构,具备多终端登录、统一授权和权限管理功能。
2.数据库设计采用关系型数据库,建立员工管理、培训管理、绩效管理、考勤管理、人力成本管理等多个数据表。
3.后台开发采用Spring MVC框架开发员工信息、考勤、培训、绩效、人力成本等模块,实现系统的后台管理。
4.前端开发采用AngularJS等技术,实现员工信息、考勤、培训、绩效、人力成本等模块的前端数据展示和操作。
5.测试与上线进行单元测试、压力测试和功能测试等,保证系统的可靠性和稳定性。
经过测试完成后,启动系统上线并进行日常运维和维护。
C语言课程设计人事管理报告
C语言程序设计上机实习报告指导教师:吴杰学生姓名:董建光学生学号:20051000746班级序号:023052题目编号:23 人事管理系统一.题目要求设计某高校的人事管理系统,实现人员档案信息的添加删除,查询,编辑,统计,排序,保存等功能模块,本程序有功能菜单实现,数据输入和结果输出均用文件存放。
(1)添加删除功能:根据人事变动的情况,添加删除记录;(2)查询功能:能根据编号和姓名进行查询;(3)统计功能:能根据多种参数进行人员的统计,统计要求同时显示被统计者信息;(4)编辑功能:根据查询对相应的记录进行修改,并储存;(5)排序功能:按照年龄,来院时间进行排序;(6)保存功能:能对输入的数据进行相应的存储;二.需求实践分析需要熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、数组、结构体等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。
根据题目要求,由于人事信息是存放在文件中,所以应提供文件的输入和输出等操作;在程序中需要浏览职工的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择。
三.总体设计割据上面的需求分析,可以将这个系统的设计分为追加模块,修改模块,删除模块,查找四.感受与总结优点:如果修改成功,则此算法功能强大而齐备,能够比较全面的对数据信息进行处理,能够综合我们学习的文件处理知识,对于知识与技巧的掌握很有帮助。
缺点:各个功能模块之间有重叠,使程序比较缀余,而且编译浪费时间。
此外本程序的主要漏洞在于加载函数,保存函数及所用到的几个基本函数,其运行出错在于函数总体结构有问题。
感受:我认为可以将所有的函数全部写成一个函数的嵌套形式,使得程序更加简洁,可惜我还不能实现,可以不用菜单,只留下查找函数将其他的加入其内部,使用者也比较容易看懂。
此外还应该考虑一下查找和排序的效率问题,排序我用的是快速排序法可以短时间内处理大量数据,但查找就比较麻烦,还需改进,请老师帮忙改进。
C++人事管理系统课程设计报告
一、设计题目(问题)描述和要求1.题目:人事管理系统2.问题描述:某小型公司,主要有四类人员:经理、兼职技术人员、销售经理和兼职推销员。
现在,需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。
要求:(1)其中,人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。
(2)程序对所有人员有提升级别的功能(3)月薪的计算方法是:经理拿固定月薪,兼职技术人员按工作小时数领取月薪,兼职推销员的报酬按该推销员当月销售额提成 ,销售经理既拿固定月薪也领取销售提成。
(4)能按姓名或者编号显示、查找、增加、删除和保存各类人员的信息二、系统分析与模块设计根据问题描述和要求,系统要求能够按姓名或者编号显示、查找、增加、删除和保存各类人员的信息。
确定程序至少应该具备如下功能:“查询人员”、“增加人员”、“删除人员”、“数据存盘”基本模块。
系统既然具有“数据存盘”功能-人员数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出人员数据,所以系统增加了“人员数据装入”模块,以方便用户使用、避免数据重复录入。
考虑到系统实现简捷,人员数据文件采用文本文件,人员数据文件名:Person.txt。
做为一个完整系统,除了具有增加人员,删除人员信息模块,还应该具有修改人员相关信息的功能,所以本系统设计时考虑增加“修改人员”模块。
考虑到根据编号查找人员信息功能在“删除人员”、“修改人员”等模块都使用,所以可以考虑设置为一个模块。
考虑到系统要求人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。
这样就要求人员编号在增加人员时自动生成(增加1)且不重复。
根据这个要求,可以考虑设置一个全局量:“当前最大编号”,每增加一个人员,当前最大编号自动增1,然后新增加人员使用这个编号。
为了保证系统能记忆这个编号,可以使用一个数据文件保存当前这个编号。
系统每次开始运行前从文件读入这个编号,随着人员增加,编号自动增加,系统每次运行结束时将这个编号写入文件。
C#人事工资管理系统实验报告
武汉工业学院数据库应用系统设计实验报告学号:090501102姓名:毕波班级: 计算机091指导教师:人事工资管理系统设计总说明:在当今社会,工资管理是一项必要而且很关键的工作。
现在随着企业数量的急剧增加,处理人们的工资数据变的越来越烦琐艰巨。
如今,计算机已经普及到了几乎每个学校、家庭,我们的学习和生活已经处处离不开计算机的存在。
本系统依据开发要求主要应用于企业人事系统,完成对日常的工资增删查改的数字化管理。
比较系统地对员工的信息和工资进行管理,查询、增添、修改、删除都变的非常简便,节省了大量的工作量。
本课程设计是在学习了《数据库应用系统》和相关开发软件课程之后,让学生通过实际项目的设计、开发,培养学生独立进行数据库软件的建模、在计算机中进行数据库设计、并通过相关软件开发系统的能力。
本系统的基本功能包括:部门信息的管理(查询、添加、修改、删除学生部门等)、职员信息的管理(录入、查询、修改、删除员工的信息等)、工资信息的管理(录入、查询、修改员工的工资等)。
本系统主要用于对员工工资进行管理,能够进行插入、删除、修改、查询和显示员工的信息。
登录该系统时,用户需要输入口令和密码,以确保数据的安全性,成功登录的用户,可以插入员工的信息和工资,并对员工的信息和工资进行增、删、改操作。
基于上述想法,我们将员工数据保存到数据库中。
我们要求系统能够高效快速的处理数据,并且要保证数据的正确性、相容性和安全性。
所以在数据库中需要定义很多触发器,比如删除了某个员工的信息则删除对应的所有工资信息、活着删除了某部门则删除该部门所有的信息等。
所以我们要从数据库中读取数据,并且和界面联系起来,同时也能将用户界面上的数据存储到数据库中。
以上是设计此系统应该注意的地方和设计原则,以下就是遵循这些原则和标准设计出的一套完整的管理系统。
一系统需求:根据题目需求,可以把系统分为三个部分:部门信息管理部分、职员信息管理部分和工资信息管理部分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程名称面向对象课程设计设计题目人事管理系统专业班级姓名学号指导教师起止时间2010年12月20日-12月31日成绩评定电气与信息学院人事管理系统一、课程设计的目的现代信息技术的发展,在改变着我们的生活方式的同时,也改变着我们的工作方式,使传统意义上的人事管理的形式和内涵都在发生着根本性的变化。
在过去,一支笔和一张绘图桌,可能就是进行办公的全部工具。
今天,电脑、扫描仪和打印机等,已基本取代了旧的办公用具。
如今,人事管理己完全可以通过电脑进行,并在计算机辅助下准确快速地完成许多复杂的工作。
这些都大大地缩短管理的时间。
而今天,人事管理的内容己经转变为对更为广泛的系统价值的追求。
信息管理,如今已是一个热门话题,它已为许多企业所采用。
我认为,在现代化的进程中,引入现代管理的思想,建立一套可面向企事业单位人事的信息管理系统,也是十分必要的二、课程设计的要求要求了解企业管理信息系统开发的全过程,理解信息系统课程相关的概念,掌握管理信息系统的开发方法。
主要包括:登陆的两个用户:管理员、职工管理员:可以对职工信息进行添加信息、删除信息、查询员工信息、修改员工信息、浏览员工信息。
用户:可以对自己的信息进行浏览、修改、查询;还可以对别人的信息进行查询,浏览。
开发这个系统的目的就是帮助企业的人力资源部门提高工作效率,实现企业人事信息管理的系统化,规范化和自动话。
根据这个系统最终实现的主要功能如下:系统部分:主要完成本系统的维护工作。
员工基本信息部分:主要完成员工基本信息的管理。
本系统是个简单的程序,由于时间和技术有限,功能不是多完整,多具体,还请包涵。
本系统的功能模块图如下:图1功能层次图三、设计思路1.系统分析系统开发背景、开发范围、建设目标与必要性人事信息管理是一个单位信息管理的重要组成部分,它的内容对于一个单位的人事管理起着至关重要的作用。
人事信息管理系统应该能够为管理者提供充足的信息和快捷的查询手段,但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点。
如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对人事信息进行管理,具有着手工管理所无法比拟的优点。
这些优点能够极大地提高人事管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
根据以上情况,决定实施建立人事信息管理系统,因为人事信息管理是一个企业单位不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以人事信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算实现企业人事档案的管理势在必行。
当前企业信息管理系统正在从US结构向B/S结构转移,但是由于安全性等方面的因素,C/S结构的管理信息系统仍然占据企业管理信息系统的主流。
人事管理系统是现代企业管理工作不可缺少的一部分,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件。
该系统主要从以下几个功能来实现的:新增:添加新员工的个人信息。
修改:修改已有员工的个人信息。
删除:删除已有员工的个人信息。
查询:根据条件查询员工的信息。
显示所有:显示所有员工的信息。
四、系统流程图1.流程分析通过对职工管理管理业务的详细调查分析,弄清了职工管理工作的业务流程和管理功能,系统业务流程图如下:本系统业务流程图:管理员:图2业务流程图从该流程图可以看出职工管理系统主要有以下几项管理功能:1)员工信息删除:在接到认识部门的员工离职报告后,被解雇或者辞职的员工信息将被管理员删除。
2)员工信息修改:在公司员工发生职位变化后,人事部门向系统管理者发出员工信息修改报告,管理员修改员工信息。
3)员工信息插入:当有新员工进入公司市,管理员在数据库中插入新的员工信息。
4)信息查询:输入要查询的人姓名,很快就出现这个人的所有信息职员:图3业务流程图从该流程图可以看出职工管理系统主要有以下几项管理功能:1)员工信息浏览:员工可以自己浏览自己的信息,及时发现错误,及时修改个人的信息保证个人信息的准确性。
2)员工信息修改:这里是我个人加入一个比较人性化的设计,考虑到我做的只是一个小型的系统,没有什么隐私或者公司利益、个人利益的牵扯,所以员工也可以自行修改自己不正确的信息。
3)员工浏览别人的信息:我这个员工可以通过查找姓名看到别人的信息,可以方便员工要联系某人时不知道他的联系方式,当然必须是熟悉你的人才可以看到你的信息,不会流露到公司外部,所以不牵扯隐私暴露问题。
2.流程图图4 增加记录的流程图3.数据字典为了对数据流程图中的各个元素作出详细的说明,建立数据字典是必要的。
数据字典主要是对数据流程图中的数据项、数据结构、数据流、处理逻辑、数据存储和外部实体等六个方面进行具体的定义。
数据流程图和数据字典一起使用,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。
五、类的层次图员工档案:员工基本信息(姓名,学历等)表1 员工基本信息字段名数据类型关键字段说明编号整型是员工姓名Char 否性别Char 否男、女职务Char 否出生年月日期/时间否身份证号Char 否家庭住址Char 否电话号Char 否六、系统功能模块图1.系统主界面打开项目,编辑运行,进入主界面。
如图6图6登陆界面图 7管理员主界面2.增加界面打开系统主界面,点击新增按钮,进入增加员工信息界面。
如图5图8增加界面进入新增界面,添加职工信息。
这样就写入文件中啦3.查询界面点击主界面中的查询按钮,进入查询职工信息界面。
系统列出以下查询条件:如图9图9查询界面输入要查询的员工的姓名,就会出现下面的内容:图10查询结果界面4.修改界面在你还想进行何种操作:输入3,修改查找人信息,先输入自己要修改人的姓名,然后直接写入自己要修改的内容就行啦,这里有点错误,因为能力有限,我没找出来。
图11修改界面这样就修改完了,我们可以通过显示查找人信息查找下,如图12图12修改成功界面由于上面的错误,导致里面的值会出现这样一种状况,我请教了同学没有人会,我能力有限时间有限就这样,希望你们谅解!5.显示所有界面选择5.显示所有在厂员工,系统会显示所有员工的信息。
如图13图13 显示界面6.删除界面选择你要进行的操作,输入4按回车,在输入要删除的人的姓名,操作如图14、15图14删除界面图15删除界面然后输入y就会删除员工信息,输入N放弃删除如图16图16删除界面七、关键程序代码//全部代码、界面及注释#include<iostream.h>#include<string.h>#include<iomanip.h>#include<fstream.h>#include<stdlib.h>#include<conio.h>char mima[20],employname[10];int sl,k=1,lenth=0;char NAME[20];struct date{int year;int month;int day;};struct infor{char name1[20]; //姓名char sex1[3]; //性别char zhiwu1[10]; //职务char ID1[20]; //身份证号char brithday1[12]; //生日char address1[50]; //家庭住址char tele1[20]; //电话号码char idemployee1[20]; //工作编号char money1[5];}inf[100];void tiquxinxi() //提取信息{char e;int i;int j;ifstream myfile("d:\\q.txt",ios::nocreate);for(i=0;i<1000;i++){myfile.getline(inf[i].name1,11);if(strlen(inf[i].name1)<2) break;for(j=1;j<30;j++)if(inf[i].name1[j]==' ') inf[i].name1[j]='\0';myfile.get(e);myfile.getline(inf[i].sex1,4);for(j=1;j<30;j++)if(inf[i].sex1[j]==' ') inf[i].sex1[j]='\0';myfile.get(e);myfile.getline(inf[i].zhiwu1,11);for(j=1;j<30;j++)if(inf[i].zhiwu1[j]==' ') inf[i].zhiwu1[j]='\0';myfile.get(e);myfile.getline(inf[i].idemployee1,6);for(j=1;j<30;j++)if(inf[i].idemployee1[j]==' ') inf[i].idemployee1[j]='\0';myfile.get(e);myfile.getline(inf[i].ID1,21);for(j=1;j<30;j++)if(inf[i].ID1[j]==' ') inf[i].ID1[j]='\0';myfile.get(e);myfile.getline(inf[i].brithday1,11);myfile.get(e);myfile.getline(inf[i].address1,31);for(j=1;j<30;j++)if(inf[i].address1[j]==' ') inf[i].address1[j]='\0';myfile.get(e);myfile.getline(inf[i].tele1,13);for(j=1;j<30;j++)if(inf[i].tele1[j]==' ') inf[i].tele1[j]='\0';myfile.get(e);myfile.getline(inf[i].money1,6);for(j=1;j<30;j++)if(inf[i].money1[j]==' ') inf[i].money1[j]='\0';myfile.get(e);}lenth=i;myfile.close();}class people //人的类{protected:char name[20]; //姓名char sex[2]; //性别char zhiwu[10]; //职务char ID[20]; //身份证号date brithday; //生日char address[50]; //家庭住址char tele[20]; //电话号码char idemployee[20]; //工作编号double money;public:void input_inf() //输入信息函数{ofstream outfile("d:\\q.txt",ios::in|ios::app); //建立并追加方式if(!outfile){cerr<<"open error!"<<endl;exit(1);}cout<<"请输入职工姓名:"; /*改成按格式输入文件*/cin>>name;outfile<<setiosflags(ios::left)<<setw(10)<<name; //左对齐cout<<"请输入职工性别:";cin>>sex;outfile<<" "<<setw(3)<<sex;cout<<"请输入职工职务:";cin>>zhiwu;outfile<<" "<<setw(10)<<zhiwu;cout<<"请输入职工工作编号(限制5位):";cin>>idemployee;outfile<<" "<<setw(5)<<idemployee;cout<<"请输入职工身份证号:";cin>>ID;outfile<<" "<<setw(20)<<ID;cout<<"请输入职工生日:";cin>>brithday.year>>brithday.month>>brithday.day;outfile<<""<<setw(4)<<brithday.year<<"/"<<setw(2)<<brithday.month<<"/"<<setw(2)<<brithday.day;cout<<"请输入职工家庭住址:";cin>>address;outfile<<" "<<setw(30)<<address;cout<<"请输入职工电话号码:";cin>>tele;outfile<<" "<<setw(12)<<tele;cout<<"请输入职工月薪(不超过5位):";cin>>money;outfile<<" "<<setw(5)<<money;outfile<<"\n";outfile.close();}void seach(char NAME[]) //按姓名查找函数{tiquxinxi();for(int t=0;t<lenth;t++)if(strcmp(NAME,inf[t].name1)==0) break;if(t<lenth){cout<<NAME<<"的信息如下:";cout<<"\n姓名:"<<inf[t].name1;cout<<"\n性别:"<<inf[t].sex1;cout<<"\n职务:"<<inf[t].zhiwu1;cout<<"\n工作编号:"<<inf[t].idemployee1;cout<<"\n身份证号码:"<<inf[t].ID1;cout<<"\n生日:"<<inf[t].brithday1;cout<<"\n联系电话:"<<inf[t].tele1;cout<<"\n地址:"<<inf[t].address1;cout<<"\n工资:"<<inf[t].money1<<endl; //各项信息一一列出else cout<<"查无此人!\n";}void allprint() //显示全部信息函数{tiquxinxi();ifstream myfile("d:\\q.txt",ios::nocreate);int i;char a[120];for(i=0;i<lenth;i++){myfile.getline(a,150);cout<<a<<endl;}myfile.close();}virtual void oneprint()=0; //显示一个人的信息//纯虚函数virtual void change_infor()=0; //修改信息函数virtual void delet()=0; //删除函数};class employee:public people{public:void delet() //只是形式,整个程序不会用到此函数{cout<<"YOU CANNOT DELETE INFORMATION!\n";}void oneprint() //显示一个人的信息{seach(employname);}};class guanliyuan:public people{public:void change_infor() //管理员修改职员信息{tiquxinxi();cout<<"请输入想要修改人的姓名:";cin>>NAME;for(int i=0;i<lenth;i++)if(strcmp(NAME,inf[i].name1)==0) break;if(i>=lenth)cout<<"查无此人!\n";{cout<<"请重新输入信息:"<<endl;cout<<"请输入职工姓名:";cin>>inf[i].name1;cout<<"请输入职工性别:";cin>>inf[i].sex1;cout<<"请输入职工职务(限制5位):";cin>>inf[i].zhiwu1;cout<<"请输入职工工作编号:";cin>>inf[i].idemployee1;cout<<"请输入职工身份证号:";cin>>inf[i].ID1;cout<<"请输入职工生日(YYYY/MM/DD):";cin>>inf[i].brithday1;cout<<"请输入职工家庭住址:";cin>>inf[i].address1;cout<<"请输入职工电话号码:";cin>>inf[i].tele1;cout<<"请输入职工月薪(不超过5位):";cin>>inf[i].money1;ofstream outfile("d:\\q.txt",ios::in);if(!outfile){cerr<<"open error!"<<endl;exit(1);}for(i=0;i<lenth;i++){outfile<<setiosflags(ios::left)<<setw(10)<<inf[i].name1;outfile<<" "<<setw(3)<<inf[i].sex1;outfile<<" "<<setw(10)<<inf[i].zhiwu1;outfile<<" "<<setw(5)<<inf[i].idemployee1;outfile<<" "<<setw(20)<<inf[i].ID1;outfile<<" "<<setw(10)<<inf[i].brithday1;outfile<<" "<<setw(30)<<inf[i].address1;outfile<<" "<<setw(12)<<inf[i].tele1;outfile<<" "<<setw(5)<<inf[i].money1;outfile<<"\n";}outfile.close();}}void delet() //管理员删除职员信息{int j;char e;tiquxinxi();cout<<"以下为"<<NAME<<"的信息:\n";seach(NAME);cout<<"你确定要删除该信息( Y(是) or N(否) )?:";cin>>e;if(e=='y'||e=='Y'){for(int i=0;i<1000;i++)if(strcmp(NAME,inf[i].name1)==0) break;j=i;ofstream outfile("d:\\q.txt",ios::trunc); //全清if(!outfile){cerr<<"open error!"<<endl;exit(1);}for(i=0;i<lenth;i++){if(i==j) continue;outfile<<setiosflags(ios::left)<<setw(10)<<inf[i].name1;outfile<<" "<<setw(3)<<inf[i].sex1;outfile<<" "<<setw(10)<<inf[i].zhiwu1;outfile<<" "<<setw(5)<<inf[i].idemployee1;outfile<<" "<<setw(20)<<inf[i].ID1;outfile<<" "<<setw(10)<<inf[i].brithday1;outfile<<" "<<setw(30)<<inf[i].address1;outfile<<" "<<setw(12)<<inf[i].tele1;outfile<<" "<<setw(5)<<inf[i].money1;outfile<<"\n";}outfile.close();cout<<"你已经成功删除"<<NAME<<"的信息"<<endl;}elsecout<<"你已经放弃了删除该信息!\n";}void oneprint() //显示查找人信息{cout<<"请输入查找人的姓名:";cin>>NAME;seach(NAME);}};void mune1(){cout<<"\t*********************************************************\n";cout<<"\t****------------------------------------------------*****\n";cout<<"\t**** 1.输入个人的信息*****\n";cout<<"\t**** 2.显示个人信息*****\n";cout<<"\t**** 3.修改个人信息*****\n";cout<<"\t**** 4.查找他人信息*****\n";cout<<"\t**** 5.显示所有在厂职工*****\n";cout<<"\t**** 6.返回主菜单*****\n";cout<<"\t**** 0.退出*****\n";cout<<"\t****------------------------------------------------*****\n";cout<<"\t*********************************************************\n"; }void mune2(){cout<<"\t*********************************************************\n";cout<<"\t****------------------------------------------------*****\n";cout<<"\t**** 1.输入职工的信息*****\n";cout<<"\t**** 2.显示查找人的信息*****\n";cout<<"\t**** 3.修改查找人信息*****\n";cout<<"\t**** 4.删除查找人信息*****\n";cout<<"\t**** 5.显示所有在厂职工*****\n";cout<<"\t**** 6.返回主菜单*****\n";cout<<"\t**** 0.退出*****\n";cout<<"\t****------------------------------------------------*****\n";cout<<"\t*********************************************************\n"; }int queding() //确定管理员密码是否正确;{ifstream myfile("d:\\mima.txt",ios::nocreate);myfile.getline(mima,20);myfile.close();int i=0;char aa[10];cout<<"请输入管理员密码"<<":"<<endl;while(1){aa[i] = getch();if(aa[i] == '\r'){aa[i]='\0';break;}if(aa[i] == '\b') {cout<<"\b \b"<<flush;i--;}else {cout<<"*"<<flush;i++;}}aa[i]='\0';if(strcmp(aa,mima)==0) return 1;else return 0;}void select() //菜单管理及选择{people *pt;employee em;guanliyuan guan;if(sl==1) pt=&guan;if(sl==2) pt=&em;cout<<"请选择你要进行的操作(0-6):";do{int ch;cin>>ch;switch(ch){case 0:cout<<"你已经成功退出!谢谢使用!^_^"<<endl;exit(0);case 1:{pt->input_inf();cout<<"你还想进行何种操作:";break;}case 2:{pt->oneprint();cout<<"你还想进行何种操作:";break;}case 3:{pt->change_infor();cout<<"你还想进行何种操作:";break;}case 4:{if(sl==1){cout<<"请输入要删除人的姓名:";cin>>NAME;tiquxinxi();for(int i=0;i<lenth;i++)if(strcmp(NAME,inf[i].name1)==0) break;if(i>=lenth) cout<<"记录中暂无此人信息.\n";elsept->delet();cout<<"你还想进行何种操作:";break;}if(sl==2){cout<<"请输入查找人姓名:";cin>>NAME;pt->seach(NAME);cout<<"你还想进行何种操作:";break;}}case 5:{pt->allprint();;cout<<"你还想进行何种操作:";break;}case 6:k=0;break;default:cout<<"你的选择错误,请重新选择:";break;}}while(k);}int main() //主函数及界面{tiquxinxi();//cout<<lenth;b:cout<<"\n\n\n ☆☆☆☆公司人事管理系统☆☆☆☆\n";cout<<"\n\n\n\n\n";cout<<"\t**********************************************************\n";cout<<"\t***** 请选择你的身份: *****\n";cout<<"\t*****------------------------------------------------*****\n";cout<<"\t***** 1.管理员*****\n";cout<<"\t***** 2.普通职工*****\n";cout<<"\t***** 0.退出*****\n";cout<<"\t**********************************************************\n\n\n\n";do{cout<<"请选择你的身份:";cin>>sl;switch(sl){case 0:{ cout<<"你已经成功退出!谢谢使用!^_^\n";exit(0); }break;case 1:{system("cls");switch(queding()){case 0:{cout<<"你不能以管理员身份进入!\n";break;}case 1:{cout<<"操作成功!你已经以管理员身份成功进入!\n";system("cls");mune2();select();break;}}}break;case 2:{cout<<"请输入您的姓名:";cin>>employname;system("cls");tiquxinxi();for(int i=0;i<lenth;i++)if(strcmp(employname,inf[i].name1)==0) break;if(i>=lenth) cout<<"记录中暂无您的信息,请首先选择1来输入您的信息.\n";mune1();select();}break;default:{cout<<"错误!你只能输入1,2,或0";}}}while(sl>2||sl<0);if(k==0)k=1;system("cls");goto b;return 0;}八、课程设计总结或结论经过两个星期的软件实习,在老师的指导下,顺利完成该软件实习。