c++人事管理系统报告

合集下载

c++人事管理系统报告

c++人事管理系统报告

课程设计报告课程名称面向对象课程设计设计题目人事管理系统专业班级姓名学号指导教师起止时间2010年12月20日-12月31日成绩评定电气与信息学院人事管理系统一、课程设计的目的现代信息技术的发展,在改变着我们的生活方式的同时,也改变着我们的工作方式,使传统意义上的人事管理的形式和内涵都在发生着根本性的变化。

在过去,一支笔和一张绘图桌,可能就是进行办公的全部工具。

今天,电脑、扫描仪和打印机等,已基本取代了旧的办公用具。

如今,人事管理己完全可以通过电脑进行,并在计算机辅助下准确快速地完成许多复杂的工作。

这些都大大地缩短管理的时间。

而今天,人事管理的内容己经转变为对更为广泛的系统价值的追求。

信息管理,如今已是一个热门话题,它已为许多企业所采用。

我认为,在现代化的进程中,引入现代管理的思想,建立一套可面向企事业单位人事的信息管理系统,也是十分必要的二、课程设计的要求要求了解企业管理信息系统开发的全过程,理解信息系统课程相关的概念,掌握管理信息系统的开发方法。

主要包括:登陆的两个用户:管理员、职工管理员:可以对职工信息进行添加信息、删除信息、查询员工信息、修改员工信息、浏览员工信息。

用户:可以对自己的信息进行浏览、修改、查询;还可以对别人的信息进行查询,浏览。

开发这个系统的目的就是帮助企业的人力资源部门提高工作效率,实现企业人事信息管理的系统化,规范化和自动话。

根据这个系统最终实现的主要功能如下:系统部分:主要完成本系统的维护工作。

员工基本信息部分:主要完成员工基本信息的管理。

本系统是个简单的程序,由于时间和技术有限,功能不是多完整,多具体,还请包涵。

本系统的功能模块图如下:图1功能层次图三、设计思路1.系统分析系统开发背景、开发范围、建设目标与必要性人事信息管理是一个单位信息管理的重要组成部分,它的内容对于一个单位的人事管理起着至关重要的作用。

人事信息管理系统应该能够为管理者提供充足的信息和快捷的查询手段,但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点。

高校人事管理系统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语言职工人事管理系统课程设计报告书

目录一、实验目的 (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人事工资管理系统实验报告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++课程设计报告-人事管理系统

C++课程设计报告-人事管理系统
4•“系统封面构成”模块:
(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语言课程设计报告

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

(完整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();//统计

公司人事管理系统VC++设计报告

公司人事管理系统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提供了大量的类库函数强大支持。

开发一个人员信息管理系统,可以实现人员信息的管理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;}八、课程设计总结或结论经过两个星期的软件实习,在老师的指导下,顺利完成该软件实习。

相关文档
最新文档