企业雇员管理系统报告.docx
《企业雇员管理系统报告.docx》由会员分享,可在线阅读,更多相关《企业雇员管理系统报告.docx(40页珍藏版)》请在冰豆网上搜索。
企业雇员管理系统报告
小学期课程设计报告
----企业雇员管理系统
学号姓名:
董萍萍14999002
院系:
计算机科学与技术(师范)
时间:
2015.6.24
第一章 概述·················································································
第二章需求分析···········································································
第一节系统需求分析·········································································
第二节可行性分析·············································································
第三章系统设计················································································
第一节系统功能的分析······································································
第四章文件与数据操作···································································
第一节.文件的命名···········································································
第二节.文件中数据的存储方式·····························································
第三节:
文件的操作···········································································
第五章详细设计·············································································
第一节用户登录、欢迎光临和主窗体·················································
一、用户登陆窗体的创建··························································
二、欢迎光临窗体的创建·························································
三、主窗体的创建····································································
第二节系统设置模块·······································································
一、用户管理添加修改删除浏览····················································
二、重新登陆的创建····································································
三、退出系统的创建·································································
第三节雇员管理模块·········································································
一、雇员管理模块的结构···························································
二、雇员信息添加界面创建····························
三.雇员查询界面创建·······························································
第四节薪水管理模块········································································
一.薪水管理模块的结构···························································
二.薪水添加界面的创建···························································
三.薪水查询界面的创建···························································
四.开除或退休的雇员界面创建·····················································
第六章总结·······················································································
1.概述:
科技的飞速发展,各个企业的人员也越来愈多,对于雇员管理,有些企业还停留在传统的管理方面上,所以,建立一良好的企业雇员管理系统是非常有必要的。
本系统的开发主要包括数据文件的设计及用户交互程序的开发。
经分析,交互程序使用C++作为开发工具,数据存储到文件,使用结构体存储,开发出单机版的企业雇员管理系统。
本文从分析课题的题目背景、题目意义、题目要求等出发,分别从需求分析、总体设计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程,最后对系统的完成情况进行了总结。
2.需求分析
2.1功能需求
本系统主要是企业对雇员信息进行简单管理的系统。
该系统需要有雇员的信息录入,查询,修改和删除功能以及部门信息的录入,查询,修改和删除。
加上含有录入,查询,修改和删除功能的薪水管理。
2.2数据需求
雇员信息:
编号、姓名、性别、年龄、地址、身份证号码、联系电话,所在部门等数据项
部门信息:
部门名称,数据项部门信息,部门编号,负责人姓名,部门名称。
薪水信息:
雇员编号,雇员姓名,雇员部门,雇员薪水,月份,领取日期等数据项
2.3性能需求
安全性:
本系统在设计,开发,运行各环节,都需要贯彻了安全性的原则,落实到了每个环节,每个方面。
可靠性:
需要遵循安全性原理,来提高本系统的可靠性。
稳定性:
本系统根据需要可以定义全局变量,可以使用结构体来确保本系统的稳定性。
3.功能模块设计
根据分析整个系统主要划分为4个功能模块,分别执行要求中的功能。
雇员个人信息管理系统可以录入,查询和删除基本的个人。
部门管理可以对部门信息进行录入,查询和删除。
薪水管理则是对雇员工资进行分配,查询等。
系统管理用于系统退出。
功能模块图如图1所示。
图1功能模块图
4.文件与数据操作
第一节.文件的命名
程序中一共创建了三个文件分别是EMP、ADP、SAL。
第二节.文件中数据的存储方式
第三节:
文件的操作
对于文件的操作是采用四个基本操作文件的函数实现的分别是:
1.fopen():
打开文件并且读取文件,通过系统各部分的需求,分别采用r,w和a的方式读取文件。
2.fclose():
关闭文件文件只有关闭了之后才能储存数据,这是文件存储数据的重要操作。
3.fwrite():
指写入函数,此函数用于删除数据。
文件操作中本来是没有删除数据的,于是新建一个文件,将不是用户所需要的数据查找出写入建立的临时文件中,然后关闭临时文件,临时文件就被存储。
原先的文件不进行关闭操作,则被删除。
4.Fread():
读取数据,使用该函数可以用于判断文件是否为空,不为空再进行下一个操作。
5.详细设计
第一节用户登录、欢迎光临和主窗体的创建
1、用户登录界面设计
利用用户登录成功能实现对用户操作权限的限制。
由于技术尚未成熟,目前该系统只供企业管理者使用。
企业管理者也就是管理员拥有系统的所有权限。
用户必须输入正确的密码才能进入下一界面,如果用户的密码输入错误,应用程序会提示错误信息。
下图所示是用户登录界面窗体。
2、主窗体的创建界面设计
雇员管理系统主界面主要实现企业雇员信息管理,部门信息管理,薪水管理,综合查询。
雇员信息的添加删除查询等功能。
选择该界面中不同的身份按钮,就会进入实现不同劝限的窗体。
而且该部分采用while
(1)死循环的方法,使得程序不必在每次执行完一次功能之后就退出。
3.具体代码的实现:
(1)用户登录的代码实现
建立面对控制台的窗口代码实现:
#include"stdio.h"
#include"string.h"
intmain()
{
charnum[100]={"14999002"};
charmima[100]={"dpp789"};
charinput[100]={0};
chariinput[100]={0};
printf("输入账号:
");
gets(input);
printf("输入密码:
");
gets(iinput);
if((strcmp(mima,iinput)!
=0)||(strcmp(num,input)!
=0))
printf("密码或账号错误,登录失败!
\n");
else
printf("登录成功!
\n");
system("pause");//暂停
(2)主窗体的创建界面
while
(1)
{
system("cls");
inta;
cout<<"企业雇员管理系统"<cout<<"==========菜单========="<cout<<"1.雇员信息管理"<cout<<"2.部门信息管理"<cout<<"3.薪水信息管理"<cout<<"4.综合查询"<cout<<"5.系统退出"<cout<<"请输入功能号:
";
cin>>a;
if(a>6||a<=0)
{
cout<<"输入的数字不合法"<continue;
}
if(che(a))
break;
system("pause");//暂停
}
return0;
}
第二节系统设置模块
一.系统设置模块主要功能如下:
(1)雇员信息管理、部门信息管理和薪水管理中的删增改查功能
①输入功能号1:
进行添加数据
②输入功能号2:
显示所有数据
③输入功能号3:
查找数据
④:
输入功能号4:
删除数据
⑤输入功能号5:
返回上一级
具体代码实现:
voidrun_1()
{
system("cls");//清屏
cout<<"企业雇员管理系统>>雇员信息管理"<cout<<"==========菜单========="<cout<<"1.添加数据"<cout<<"2.显示所有数据"<cout<<"3.查找数据"<cout<<"4.删除数据"<cout<<"5.返回上一级"<cout<<"请输入功能号:
";
intc;
cin>>c;
if(c>6||c<=0)
{
cout<<"输入数字不合法"<return;
}
switch(c)
{
case1:
//添加雇员
{
FILE*hhFile=fopen(STR_EMP_DATA_FILE,"a+");//读取文件
if(hhFile!
=0)
{
empt={0};
cout<<"请输入雇员编号:
";
cin>>t.num;
cout<<"请输入雇员姓名:
";
cin>>t.name;
cout<<"请输入雇员年龄:
";
cin>>t.ages;
cout<<"请输入雇员性别:
";
cin>>t.sex;
cout<<"请输入雇员身份证号码:
";
cin>>t.Id;
cout<<"请输入雇员地址:
";
cin>>t.adress;
cout<<"请输入雇员电话号码:
";
cin>>t.Tel;
cout<<"请输入雇员部门:
";
cin>>t.adp;
fwrite(&t,sizeof(emp),1,hhFile);//写入文件
fclose(hhFile);
cout<<"添加成功"<}
}
break;
case2:
//显示数据
{
FILE*hhFile=fopen(STR_EMP_DATA_FILE,"r");//读取文件
if(hhFile!
=0)
{
empt;
cout<<"编号\t姓名\t年龄\t性别\t身份\t地址\t电话\t部门\n";
while(fread(&t,sizeof(emp),1,hhFile)!
=0)//读取文件
cout<fclose(hhFile);
}
}
break;
case3:
//查找数据
{
cout<<"请输入雇员编号:
";
intnum;
cin>>num;
FILE*hhFile=fopen(STR_EMP_DATA_FILE,"r");//读取文件
if(hhFile!
=0)
{
empt;
cout<<"编号\t姓名\t年龄\t性别\t身份\t地址\t电话\t部门\n";
while(fread(&t,sizeof(emp),1,hhFile)!
=0)//读取文件
if(t.num==num)
cout<fclose(hhFile);
}
}
break;
case4:
//删除数据
{
cout<<"请输入雇员编号:
";
intnum;
cin>>num;
FILE*hhFile=fopen(STR_EMP_DATA_FILE,"r");//读取文件
FILE*hTmp=fopen("0.txt","w+");
if(hhFile!
=0)
{
empt;
//cout<<"编号\t姓名\t年龄\t性别\t身份\t地址\t电话\t部门\n";
while(fread(&t,sizeof(emp),1,hhFile)!
=0)//读取文件
if(t.num==num)
{
}
else
{
fwrite(&t,sizeof(emp),1,hTmp);
}
fclose(hhFile);
fclose(hTmp);
system("delEMP.txt");//删除原有数据
system("ren0.txtEMP.txt");//重命名新数据文件
cout<<"删除成功"<}
}
break;
case5:
//返回
break;
}
}
在主函数的中,采用三个函数void_1(),void_2(),void_3(),分别实现各个功能号的功能。
上述代码就是这是第一个功能号——雇员管理信息的具体实现。
另外的两个,部门信息管理和薪水信息管理的功能函数和void_1()函数的结构差不多。
这里就不一一列出。
(2)综合查询:
综合查询包括所有雇员信息查询顿号所有薪水查询以及部门查询
①雇员信息查询
②雇员薪水查询
③部门信息查询
具体代码实现为:
voidrun_4()
{
system("cls");
cout<<"企业雇员管理系统>>综合查询"<cout<<"==========菜单========="<cout<<"1.雇员信息查询"<cout<<"2.雇员薪水查询"<cout<<"3.部门信息查询"<cout<<"4.返回上一级"<cout<<"请输入功能号:
"<intf;
cin>>f;
if(f>5||f<=0)
{
cout<<"输入不合法的数据"<return;
}
switch(f)
{
case1:
{
cout<<"请输入雇员编号:
";
intnum;
cin>>num;
FILE*hhFile=fopen(STR_EMP_DATA_FILE,"r");//读取文件
if(hhFile!
=0)
{
empt;
cout<<"编号\t姓名\t年龄\t性别\t身份\t地址\t电话\t部门\n";
while(fread(&t,sizeof(emp),1,hhFile)!
=0)//读取文件
if(t.num==num)
cout<fclose(hhFile);
}
}
break;
case2:
{
cout<<"请输入雇员编号:
";
intnum;
cin>>num;
FILE*hhhFile=fopen(STR_SAL_DATA_FILE,"r");//读取文件
if(hhhFile!
=0)
{
salt;
cout<<"编号\t姓名\t部门\t薪水\t月份\t发放日期"<while(fread(&t,sizeof(sal),1,hhhFile)!
=0)//读取文件
if(t.num==num)
cout<fclose(hhhFile);
}
}
break;
case3:
{
cout<<"请输入部门编号:
";
intadpnum;
cin>>adpnum;
FILE*hFile=fopen(STR_ADP_DATA_FILE,"r");//读取文件
if(hFile!
=0)
{
adpt;
cout<<"部门编号\t部门名称\n";
while(fread(&t,sizeof(adp),1,hFile)!
=0)//读取文件
if(t.adpnum==adpnum)
cout<fclose(hFile);
}
}
return;
}
}
Void_4()函数,实现了综合查询
6.总结
在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。
另外,在整个开发的过程中,时间也比较仓促。
因此,该系统必然会存在一些缺陷和不足。
因为对企业管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。
回顾该系统从选题,到调研、需求分析、设计、编码实现、测试等,论文的撰写,这系列连贯的过程,感想颇多,收获也很多。
课程设计顺利完成,任务书中所提到的要求也都已经全部实现,可以对公司的设备,员工,部门等信息进行添加,修改和删除。
方便了企业的管理,满足了企业的需求。
但这个程序还不够完善。
例如:
不能控制输出面板的格式问题,如果有用户输入的数据格式有问题就会出现面板混乱的问题。
还有程序中有很多重复的内容,代码不简洁,还可以再完善,只是暂时知识还不够。
附录:
源代码
#include
#include
#include
usingnamespacestd;
voidrun_1();
voidrun_2();
voidrun_3();
voidrun_4();
boolche(inta);//选择
#defineSTR_EMP_DATA_FILE"EMP.txt"//雇员数据文件
#defineSTR_ADP_DATA_FILE"ADP.txt"//部门数据文件
#defineSTR_SAL_DATA_FILE"SAL.txt"//薪水数据文件
structemp
{
intnum;//编号
charname[32];//姓名
intages;//年龄
charsex[4];//性别
charId[100];//身份证号码
charadress[100];//地址
charTel[32];//电话号码
charadp[32];//部门
};
structadp
{
intadpnum;//部门编号
charadpname[32];//部门名称
};
structsal
{
intnum;//编号
charname[32];//姓名
charadpname[32];//部门名称
intsalay;//薪水
intmon;//月
chardate[32];//领取日期
};
emp