高校工资管理系统3-10

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

某大学工资管理信息系统开发
一.系统规划
随着计算机技术的飞速发展,计算机在企业和大学管理中应用的普及,利用计算机实现人事工资的管理势在必行。

利用计算机支持企业效率完成劳动人事管理的日常事务,是适应现代企业制度要人事管理要求。

推动企业和大学劳动人事管理走向科学化、规范化的必要条件工资管理是任何企业单位都必须要进行的一项工作,因此,开发制作工资管理系统具有较大的社会现实意义。

而工资管理是一项琐碎、复杂而有十分细致的工作,工资计算、发放、核算的工作量大,一般不允许出错,实行电子化的工资管理,可以让人力资源管理人员从繁重琐碎的案头工作解脱出来,去完成更重要的工作。

职工工资管理信息系统的实现可以减轻比较繁琐的手工工资管理更加针对性、便捷性、可视化的管理职工工资。

1.实验目的:
1.能够正确运用系统分析的过程与方法,通过设计某大学工资管理信息系统
来复习巩固管理信息系统知识,提高系统实践能力。

2.熟悉业务流程图、数据流程图的绘制。

3.树立正确的系统分析思想,培养分析问题的能力,提高查询资料和撰写书而文件的能力。

2.实验内容
1.实根据系统描述,分析系统需求,论证系统开发的可行性阐述系统完成的
主要功能及特点。

2.根据管理业务调查过程方法,绘制管理信息系统业务流程。

3.明确数据流程的调查与分析过程,绘制数据流程图。

二.系统分析
1.可行性分析
可行性分析一般可定义为:可行性分析是建设的前期对工程项目的一种考察和坚定,对拟定中的项目进行全面与综合的技术、经济能力的调查,判断它是否可行。

可行性分析阶段的主要工作包括以下几方面:
1.新系统目标可行性分析:
分析新系统的目标是否符合企业的现状和发展的需求。

2.社会可行性分析:
社会可行性分析主要是指管理信息系统的开发是否符合国家法律、下策、是否能够与社会大系统实现良好的对接。

3.经济可行性分析:
技术可行性分析主要是对开发新系统所投入的资金与系统投入使用后带来的经济效益进行比较,确认新系统是否会给带来一定的经济效益。

4. 技术可行性分析:
技术可行性分析是根据新系统的目标累衡量是否具备所需要的技术,包括系
统开发人员数量和水平,硬件方面,软件方面及其他应用技术。

5.管理可行性分析:
管理可行性分析主要是分析现行的管理体制和领导是否具有现代化管理意识和管理水平。

2.数据库的概念设计
概念设计的任务是根据用户的需求设计数据库的概念数据模型,概念模型是从用户的角度看到的数据库,用E-R图来表示,对数据库进行概念模型的设计,包括的数据库的实体及其属性。

实体间联、实体有职工、工资、部门
关系模式的设计如下:
职工(职工号,姓名,性别,应付工资,部门,年龄)
工资(职工号,基本工资,性别,扣款合计,应发工资)
部门报表(部门代码,注册号哦,别名,员工人数,性质)
一、系统分析部分
1、业务流程图
图1-1 工资系统业务流程图2、数据流程图
图1-2 工资系统数据流程图
3、数据字典
Ⅰ、数据流的描述
数据流编号:D-01
数据流名称:工资信息表
数据流来源:系统管理员
数据流去向:录入分类
数据项组成:职工编号+职工姓名+职工所在部门代号
+职工所在部门名称+工资情况
数据流量:约1张/月
Ⅱ、处理逻辑的描述
处理逻辑编号:P-01
处理逻辑名称:录入分类
输入的数据流:工资信息表
处理描述:根据人事部提供的信息情况,对工资信息表进
行分类整理,对于该加的工资加上去,该扣的
扣了,完成操作后,放入员工基本信息管理。

输出的数据流:员工基本信息管理
处理频率:1次/月
Ⅲ、数据存储的描述
数据存储编号:F-01
外部实体名称:上月职工工资台账
简述:登记上月职工工资台账
数据存储组成:职工证号+职工姓名+基本工资+交通补贴
+应发工资+房费+水电费+实发工资+备

关键字:职工证号+职工姓名+工资
相关处理:P-01
Ⅳ、外部实体的描述
外部实体编号:S-01
外部实体名称:人事处
简述:统计人事调整变动清单
4、某大学工资管理信息系统流程设想图(新系统模型)
图1-3 工资管理信息系统流程设想图
二、系统设计部分
1、功能结构图设计
图2-1工资管理子系统功能结构图2、新系统信息处理流程设计
图2-2 工资管理子系统的信息系统流程图
3、输出设计(主要指打印输出设计)
图2-3 工资表的输出设计
4、存储文件格式设计(数据库结构设计)
数据库的概念逻辑设计可以用ER模型来表示。

其中各自的属性为:
教职工:部门代码、教师工号、姓名、工资
人事部:部门号、个人工号、姓名
财务处:部门号、个人工号、姓名
图2-4 工资系统的ER模型
图2-5 教职工个人信息的数据录入卡设计
6、代码设计(职工证号和部门代号)
如下是职工证号及其所在部门代码设计:
字段字段名称类型宽度小数说明
1 ZGZH Character 6 0 职工证号
2 ZGXM Character 12 0 职工姓名
3 BMDM Character
4 0 部门代码
4 BMMC Character 12 0 部门名称
三、系统实施部分
1、程序框图
图3-1工资系统程序框图
2、模拟运行数据
图3-3 扣电费的模拟系统
图3-3 查询工资的模拟系统
2、源程序
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#include <conio.h>
#define TITLE "\n 月份工号姓名应发工资各种折扣实发工资\n #define DATA
" %2d %4ld %-10s %6.1f %6.1f %6.1f\n",p1->month
,p1->num,p1->name,p1->should_pay,p1->rebate,p1->actual_pay typedef struct pay
{
long num;
short month;
char name[20];
float gw,jn,zw,zl,jt,yj;
float should_pay;
float fz,gj,sd,others;
float rebate;
float actual_pay;
struct pay *next;
}PAY;
FILE *fp;
PAY *p1=NULL,*p2=NULL,*head=NULL;
void menu();
PAY *input();
void output();
void save(PAY *head);
PAY *open();
PAY *insert();
void search();
PAY *del();
PAY *revise();
/*主程序模块*/
void main(void)
{
short sel;
do
{
menu();
scanf("%d",&sel);
switch(sel)
{
case 1:
head=input(); //输入模块
break;
case 2:
head=insert(); //插入模块
break;
case 3:
head=revise(); //修改模块
break;
case 4:
head=del(); //删除模块
break;
case 5:
search(); //查找模块
break;
case 6:
output(); //输出模块
break;
case 7:
save(head); //保存模块
break;
case 0:
break;
}
}
/*菜单*/
void menu()
{
printf("\n\n\n\n\n\n\n");
printf("\t\t\t\t *主菜单选项*\n\n");
printf("\t\t\t\t1.创建工资档案\n");
printf("\t\t\t\t2.新增工资信息\n");
printf("\t\t\t\t3.修改工资信息\n");
printf("\t\t\t\t4.删除工资信息\n");
printf("\t\t\t\t5.查找工资信息\n");
printf("\t\t\t\t6.分类信息列表\n");
printf("\t\t\t\t7.保存信息\n");
printf("\t\t\t\t0.退出\n");
printf("\n\n\n\n\n\n\n\n");
}
/*输入模块*/
PAY *input()
{
short n=1;
p1=(PAY*)malloc(sizeof(PAY));
if(p1==NULL)
{
printf("内存不足,无法创建链表!");
getch();
}
printf("\n请输入第%d位职工的信息(以工号为0结束):\n",n);
printf(" 工号:");
scanf("%d",&p1->num);
if(p1->num==0)
{
printf("按任意键返回!");
getch();
free(p1);
return 0;
}
getchar();
printf(" 姓名:");
gets(p1->name);
printf(" 工资月份:");
scanf("%d",&p1->month);
printf(" 岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴:\n"); scanf("%f,%f,%f,%f,%f,%f",&p1->gw,&p1->jn,&p1->zw,&p1->zl,&p1->jt,&p1->yj); printf(" 房租扣款,公积金,水电费,其它扣款:\n");
scanf("%f,%f,%f,%f",&p1->fz,&p1->gj,&p1->sd,&p1->others);
p1->should_pay=p1->gw+p1->jn+p1->zw+p1->zl+p1->jt+p1->yj;
p1->rebate=p1->fz+p1->gj+p1->sd+p1->others;
p1->actual_pay=p1->should_pay-p1->rebate;
{
if(n==1)
head=p1;
else
p2->next=p1;
n++;
p2=p1;
p1=(PAY*)malloc(sizeof(PAY));
if(p1==NULL)
{
printf("内存不足,无法创建链表!");
getch();
}
printf("请输入第%d位职工的信息(以工号为0结束):\n",n);
printf(" 工号:");
scanf("%d",&p1->num);
getchar();
if(p1->num==0)
{
p1=NULL;
break;
}
printf(" 姓名:");
gets(p1->name);
printf(" 工资月份:");
scanf("%d",&p1->month);
printf(" 岗位工资,技能工资,职务津贴,职龄津贴,交通补贴,业绩津贴:\n"); scanf("%f,%f,%f,%f,%f,%f",&p1->gw,&p1->jn,&p1->zw,&p1->zl,&p1->jt,&p1->yj); printf(" 房租扣款,公积金,水电费,其它扣款:\n");
scanf("%f,%f,%f,%f",&p1->fz,&p1->gj,&p1->sd,&p1->others);
p1->should_pay=p1->gw+p1->jn+p1->zw+p1->zl+p1->jt+p1->yj;
p1->rebate=p1->fz+p1->gj+p1->sd+p1->others;
p1->actual_pay=p1->should_pay-p1->rebate;
}
p2->next=NULL;
//edit by Yan-Xingyu Class Network-021
printf("职工信息已输入,请按任意键返回,并存盘……");
getch();
return head;
}。

相关文档
最新文档