MIS实验报告Word下载.docx
《MIS实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《MIS实验报告Word下载.docx(27页珍藏版)》请在冰豆网上搜索。
4.2.2系统程序的实现
5.结束语………………………………………………………….19
参考文献
1.概述
1.1选题背景
随着经济全球一体化时代的到来,企业的发展不再仅限于技术的竟争,市场的竟争,更重要的是人才的竟争。
企业在发展过程中,除了要维护好和客户的关系,掌握先进的行业生产技术,还必须拥有一批本领域中具有相当才能的工作人员,才能在信息时代的经济浪潮中立于不败之地。
人才是企,事业单位的宝贵财富,是人力资源管理的核心。
吸引人才,留住人才成为企业人力资源管理的一个重要课题。
要想留住人才不仅需要企业具有良好的发展前景,更重要的是企业要有一个相当健全的管理制。
良好的管理体制,不仅能节省大量的企业人力物力,提高企业的经济效益,更重要能够帮助企业制订计划,按照一个良好的方向发展。
人才的引入给企业的发展注入的新鲜的血液,带动了企业一系列新的发展变化。
但是,人事管理是一项琐碎,繁杂而又必须十分细致的工作,是不能允许时常发生差错的。
而我们国家一直以来使用传统人工的方式管理人事文件档案,这种管理方式存在着许多缺点,如:
效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难。
随着企业自身人力资源的日益庞大,复杂程度逐渐增强,以前简单的几段文字,几张报表的人机作坊再也无法适应如今企业的人事管理了,取代的是运用各种领域的知识,结合计算机科学而开发的人事信息管理系统,科学合理的来管理企业人事信息档案及扩充的人事管理信息系统。
作为计算机应用的一部分,使用计算机对人事档案信息进行管理,具有手工管理所无法比拟的优点。
2.系统分析
2.1需求分析
公司内部的人事的管理,从大的方面分主要集中在公司职员的个人情况、工资细目、调入调出及用车等。
所以该系统主要是实现对数据的录入、插入、删除,网上查询.统计.更新.打印等功能。
其次,为了信息的保密与安全,系统还要提供一定的安全机制
2.2.1管理上的可行性
随着计算机的发展与普及,以及互联网技术的扩展,日常人事管理必将实现无纸化办公,并且加入到公司内部的Intranet或者是Internet上去,实现数据的共享,这样有利于劳资人事信息在单位内部的查询,提高了数据资源的利用,并且能及时的得到更新,不需要象过去那样浪费大量的人力物力去进行抄写,提高了工作的效率
2.2.2技术上的可行性
人事管理信息系统,是一个使用简单、方便灵活的系统,它面向于中小型企业,而中小型企业的人员少,计算机所处理的数据少,所以对计算机性能要求较低。
现有的计算机已可以达到所需的信息处理速度。
数据输入采用的是键盘输入,输出采用显示器输出,现有的设备已经可以承担所要求的数据输入/输出功能。
2.2.3经济上的可行性
所开发的人事管理信息系统是面向中小型企业,比较简单、成本较低
可行性结论。
通过经济,技术和社会等方面的可行性研究,可以确定本系统的开发完全有必要,而且是可行,可以立项开发
图2.1
2.4数据流程
图2.2
2.5数据字典
数据字典与主要数据加工处理的描述:
数据字典中有6类条目:
数据元素、数据结构、数据流、数据存储、外部实体、处理。
(1)数据元素
数据元素条目
表2.3
(2)数据结构
表2.4
(3)数据流
表2.5
(4)数据存储
表2.6
(5)处理过程
表2.7
(6)外部实体
表2.8
3.1平台设计
表3-1系统平台设计
表3.1
系统平台
详细设计
硬件平台
服务器:
PIIII及以上CPU,512M内存,硬盘20G,10/100M网络
客户端:
IE6.0及以上
软件平台
操作系统:
WindowsXP
数据库:
SQLServer2000
3.2软件总体结构设计
3.2.1功能结构设计
图3.2
3.3代码设计
系统里面只有职工号的设计,其它的编号,如:
考勤编号,评价编号,工资编号都用的是系统的自动编号,系统用户表中的登录号与职工号是一样的。
NNNNNN
部门编号
校验码
职工编号
图3.3
3.4数据库设计
图3.4
3.4.2数据表设计
表1为工作岗位情况表。
表1JOB工作岗位情况表(表3.5)
列名
数据类型
可否为空
说明
JOB_ID
NUMBER(3)
NOTNULL
工作岗位代号(主键)
JOB_NAME
VARCHAR2(10)
NULL
工作岗位名称
JOB_POWER
VARCHAR2(20)
岗位权力范围
JOB_TASK
岗位任务描述
表2为员工婚姻状况表。
表2EMPLOYEE_MARRIAGE员工婚姻状况表(表3.6)
EMP_NO
NUMBER(6)
员工号(外部键),指向员工基本情况表的EMP_NO
LOVER_NO
爱人代号
LOVER_NAME
爱人姓名
LOVER_BIRTHDAY
DATE
爱人生日
MARRIAGE_DATE
结婚时间
LOVER_COMPANY
爱人工作单位
LOVER_ZZMM
VARCHAR2(4)
爱人政治面貌
LOVER_JOB
爱人工作职务
表3为员工学历表。
表3EMPLOYEE_SCHOOL员工学历表(表3.7)
EMP_XL
学历
EMP_MAJOR
专业
BY_DATE
毕业时间
BY_SCHOOL
毕业学校
SCHOOL_CLASS
VARCHAR2(6)
学校类型
FOREIGN_LANGUAGE1
外语1
FOREIGN_LANGUAGE1_CLASS
外语1级别
FOREIGN_LANGUAGE2
外语2
FOREIGN_LANGUAGE2_CLASS
外语2级别
表4为员工基本信息表。
表4EMPLOYEE_BASIC员工基本情况表(表3.8)
员工号(主键)
EMP_NAME
员工姓名
DEPT_ID
所在的部门号(外部键),指向所在部门信息表的DEPT_ID
EMP_GENDER
VARCHAR2
(2)
性别
EMP_BIRTHDAY
生日
EMP_HOMETOWN
VARCHAR2(8)
籍贯
EMP_COUNTRY
国籍
EMP_NATION
民族
EMP_ID
NUMBER(20)
身份证号
EMP_MARRIAGE
婚姻状况
EMP_HEALTH
健康状况
EMP_ZZMM
政治面貌
EMP_ZZMM_DATE
参加时间
EMP_BLOOD
血型
EMP_STARTWORK
参加工作时间
EMP_STATE
员工状态
EMP_STATE_DATE
状态时间
EMP_HOMEADRESS
家庭住址
EMP_TELENO
NUMBER(10)
联系电话
EMP_EMAIL
联系E_MAIL地址
工作岗位代号(外部键),指向工作岗位情况表的JOB_ID
表5为部门信息表。
表5DEPT部门信息表(表3.9)
部门代号(主键)
DEPT_NAME
部门名称
DEPT_DESC
VARCHAR2(30)
部门职能描述
DEPT_MANAGER
部门经理代号(外部键),指向员工基本情况表的EMP_NO
DEPT_VICEMANAGER
部门副经理代号(外部键),指向员工基本情况表的EMP_NO
3.5.1登陆界面设计
图3.10
图3.11
3.5.3用户管理界面设计
图3.12
图3.13
3.5.5输入设计
员工基本信息
图3.14
员工信息查询
图3.15
3.5.6输出设计
基本信息总览
图3.16
在进入系统之前,要进行身份确认,只有用户名和用户密码都相符的用户方可进入本系统。
为了防止不合法用户对数据的察看和修改,本系统把用户分为三个级别:
超级、可修改和只读用户,即一二三级用户。
超级(一级)用户不仅拥有对数据的查询、修改权限,还对用户的使用权限进行控制,可以设定用户名、密码和其权限,还可以对纪录进行增加、删除、修改等操作。
可修改(二级)用户对数据可以查询、打印,还可以对纪录进行增加、删除、修改等操作。
只读(三级)用户只拥有对纪录的浏览、查询和打印权限。
当用户要进入系统是必须先输入用户名和密码,按“确认”按钮后,系统辨别用户身份,对合法用户根据用户的权限级别赋予相应的使用功能。
连接数据库的代码如下:
//Profile人事管理
SQLCA.DBMS="
ODBC"
SQLCA.AutoCommit=False
SQLCA.DBParm="
Connectstring='
DSN=人事管理'
"
4.2.1系统类的编写
源程序代码
#include<
iostream.h>
iomanip.h>
string.h>
fstream.h>
constintMaxr=100;
classEmployee//职工类
{
inttag;
//删除标记
intno;
//职工编号
charname[20];
charzw[20];
//职工姓名
intsalary;
//职工工资
public:
Employee(){}
char*getname(){returnname;
}//获取名字
intgettag(){returntag;
}//获取标记
intgetno(){returnno;
}//获取编号
intgetsalary(){returnsalary;
}
voidsetzw(charq[])//设置名字
{
strcpy(zw,q);
}
voidsetname(charna[])//设置名字
strcpy(name,na);
voidgetsalary(intsa){salary=sa;
voiddelna(){tag=1;
}//删除
voidaddemp(intn,intsa,char*na,char*q)//增加
{
tag=0;
no=n;
salary=sa;
voiddisp()//显示职工信息
{
cout<
<
│"
setw(10)<
no<
name<
salary<
zw<
endl;
├—————┼—————┼—————┼—————┤"
};
classDatabase//职工数据类
inttop;
Employeeread[Maxr];
Database()//将职工信息从employee.txt读取到read[]中
{Employees;
top=-1;
fstreamfile("
employee.txt"
ios:
:
in);
while
(1)
file.read((char*)&
s,sizeof(s));
if(!
file)break;
top++;
read[top]=s;
}
file.close();
voidclear()//删除所有
intaddemp(intn,intsa,char*na,char*q)//增加职工
Employee*p=query(n);
if(p==NULL)
read[top].addemp(n,sa,na,q);
return1;
return0;
Employee*query(intempid)
for(inti=0;
i<
=top;
i++)
if(read[i].getno()==empid&
&
read[i].gettag()==0)
return&
read[i];
returnNULL;
Employee*query1(charempna[20])
if((read[i].getname()==empna)&
voiddisp()//职工信息显示
read[i].disp();
voidempdata();
~Database()//将read[]中的信息读如到employee.txt中
out);
if(read[i].gettag()==0)
file.write((char*)&
read[i],sizeof(read[i]));
voidDatabase:
empdata()//职工维护
intchoice=1;
intm=1;
intb=1;
charrname[20];
intempid;
intempsa;
charq[20];
Employee*r;
while(choice!
=0)
cout<
职工维护1:
新增2:
更改3:
删除4:
查找5:
显示6:
全删0:
退出=>
;
cin>
>
choice;
switch(choice)
case1:
setw(50)<
┌—————————————┐\n"
│请选择您所需的操作│\n"
│经理:
1,并按回车键│\n"
│业务经理:
2,并按回车键│\n"
│普通职工:
3,并按回车键│\n"
└—————————————┘\n"
m;
while(m!
=0){
switch(m)
输入经理编号:
empid;
输入奖金:
"
empsa;
输入经理姓名:
rname;
addemp(empid,8000+empsa,rname,"
经理"
);
break;
case2:
输入业务经理编号:
输入月提成:
输入业务经理姓名:
addemp(empid,4000+empsa,rname,"
业务经理"
case3:
输入职工编号:
输入工资:
输入职工姓名:
addemp(empid,empsa,rname,"
普通职工"
r=query(empid);
if(r==NULL)
该职工不存在"
输入新的工资:
r->
getsalary(empsa);
请输入新的职务"
q;
setzw(q);
addemp(empid,empsa,rname,q);
该读者不存在"
delna();
case4:
│按编号查找1,并按回车键│\n"
│返回2,并按回车键│\n"
b;
while(b!
switch(b)
编号"
姓名"
工资"
职务"
disp();
break;
case5:
case6:
clear();
voidmain()
intchoice=1;
DatabaseEmpDB;
while(choice!
=0)
c