精华内容
下载资源
问答
  • 职工工资管理系统(含流程图),C语言实训,包含增删查改,排序,实现对文件的操作
  • 工资管理系统流程图

    2012-07-04 10:14:02
    非常详细的工资管理系统流程图!!包括框架、实现过程、以及详细的说明。
  • 职工工资管理系统是用C语言写的,其中包含大量的文件操作,通过相对路径访问。 它的基本结构是单链表,其中也包含大量的操作,包括链表的插人、删除、查询、销毁。这个管理系统包含管理员登录和员工登录两个模块,...
  • 本篇文章主要讲述的是利用 C 语言在 VC6.0编译器下开发的企业职工工资管理系统,在所开发的管理系统中,可以实现录入、修改、查询、删除、排序和将信息保存到文件,以及从文件中读出信息的功能。具体的内容可查看本...

    本篇文章主要讲述的是利用 C 语言在 VC6.0编译器下开发的企业职工工资管理系统,在所开发的管理系统中,可以实现录入、修改、查询、删除、排序和将信息保存到文件,以及从文件中读出信息的功能。具体的内容可查看本文章,欢迎广大朋友们前来学习和指教。如果有需要源代码的朋友们可点击博主的主页资源页面进行下载。

    一、设计思路

    (1)采用 C 语言来进行企业职工工资管理系统的开发设计;
    (2)利用结构体数组实现企业职工工资管理系统的数据结构设计;
    (3)系统具有输入、修改、查询、删除、排序和将信息保存到文件,以及从文件中读出信息的功能;
    (4)系统在实现增、删、改、查、读入文件和读出文件的各个功能用函数的形式来实现;
    (5)利用 do…while 循环语句来建立各个功能模块之间的连接,并且有简单的功能选择操作界面,用户可以通过数字选择功能;

    二、模块设计

    1.数据宏定义

    宏定义则是设置了结构体数组中数组的下标,表示可以输入的数组数据的最大范围。

    #define MAX 1000//企业职工最大人数
    #define NUM 30//结构体数组的下标
    #define ADD 20//地址的长度
    #define NUM1 10//学历,职位,姓名的长度
    #define SEX 5//性别的长度
    

    2.数据库设计

    采用结构体数组来实现职工信息数据的存储,同时在结构体数组中存放了职工对象的属性信息。

    //*****声明结构体*******//
    struct person
    {
    	int num;//职工号
    	char name[NUM1];//姓名
    	char position[NUM1];//职位
    	char gread[NUM1];//学历
    	char sex[SEX];//性别
    	char birth[NUM];//出生
    	char add[ADD];//住址
    	double paid;//基本工资
    	double extra;//奖金
    	double discount;//扣款
    	double pay;//实发工资
    };
    struct person per[MAX];
    int now_per=0;
    

    3.函数模块声明

    (1)声明主体函数

    void star(int n);//输出*函数
    void begin();//登陆界面函数
    void display();//主界面函数
    void input();//输入信息函数
    void find();//查询信息函数
    void modify();//修改信息函数
    void glance();//浏览信息函数
    void sort();//排序信息函数
    void insert();//插入信息函数
    void dele();//删除信息函数
    

    (2)声明局部函数

    void find_name();//按姓名查找
    void find_num();//按编号查找
    void find_paid();//按工资查找
    void modify_num();//按编号修改
    void modify_name();//按姓名修改
    void sortnum();//按编号排序
    void sortpaid();//按工资排序
    void dele_num();//按编号删除
    void dele_name();//按姓名删除
    void dele_paid();//按工资删除
    void read();//读入信息文件函数
    void save();//保存信息到文件函数
    

    4.系统流程图

    本系统流程图介绍了企业职工工资管理系统能完成的基本功能,以及基本功能下所具备的子功能模块。系统各个功能之间的操作流畅,根据所选择的数字信息便可以实现其对应的操作。
    在这里插入图片描述

    三、函数功能模块

    1.主菜单函数

    企业职工工资管理系统的主菜单页面,通过这个页面可以查看系统所具备的所有基本功能。

    void display()//主菜单函数
    {
       int choose; 
       char ch;
       system("cls");
       do
       {
        printf("\n\n\t");
    	star(60);
    	printf("\n\n\t\t\t"); 
    	printf("欢迎登陆企业工资管理系统");
        printf("\n\n\t");
    	star(60);
    	printf("\n\n\n");
    	printf("\t\t\t1   录入职工信息        \n");
    	printf("\t\t\t2   查询职工信息        \n");
    	printf("\t\t\t3   修改职工信息        \n");
    	printf("\t\t\t4   浏览职工信息        \n");
    	printf("\t\t\t5   排序职工信息        \n");
    	printf("\t\t\t6   插入职工信息        \n");
    	printf("\t\t\t7   删除职工信息        \n");
    	printf("\t\t\t8   文件读入信息        \n");
    	printf("\t\t\t9   安全退出系统        \n");
    	printf("\n\t");
    	star(60);
    	printf("\n\n\t");
        printf("你选择的是(1-9):");
    	fflush(stdin);
    	scanf("%d",&choose);
    	ch=getchar();
    	switch(choose)
    	{
    	case 1:
    		input();
    		break;
    	case 2:
    		find();
    		break;
    	case 3:
    		modify();
    		break;
    	case 4:
    		glance();
    		break;
    	case 5:
    		sort();
    		break;
    	case 6:
    		insert();
    		break;
    	case 7:
    		dele();
    		break;
    	case 8:
    		read();
    		break;
    	case 9:
    		system("cls");
            printf("\n\n\t\t你已经安全退出!\n\n\t\t");
    		exit(0);
    		break;
    	default:
    		printf("请正确输入!");
    		break;
    	}
       }
       while(1);
    }
    

    2.录入职工信息

    根据页面提示信息,可以录入职工的基本数据信息。

    void input()//输入信息函数
    {
    	int i=0;
    	char ch;
    	system("cls");
    	do
    	{
    		printf("\n\n\t");
    		star(60);
    		printf("\n\n\t\t\t\t");
    		printf("录入职工信息");
    		printf("\n\n\t");
    		star(60);
    		printf("\n\n\n\t输入第%d个职工的信息:\n",i+1);
    	    printf("\n\t输入职工编号:\t");
    		fflush(stdin);
    		scanf("%d",&per[i].num);
    		printf("\n\t输入职工姓名:\t");
    		fflush(stdin);
    		gets(per[i].name);
    	    printf("\n\t输入职工性别:\t");
    		fflush(stdin);
    	    gets(per[i].sex);
            printf("\n\t输入职工出生:\t");
    		fflush(stdin);
    		gets(per[i].birth);
            printf("\n\t输入职工住址:\t");
    		fflush(stdin);
    		gets(per[i].add);
    		printf("\n\t输入职工学历:\t");
    		fflush(stdin);
    		gets(per[i].gread);
    		printf("\n\t输入职工职位:\t");
    		fflush(stdin);
    		gets(per[i].position);
    		printf("\n\t输入职工基本工资:\t");
    		fflush(stdin);
    		scanf("%lf",&per[i].paid);
            printf("\n\t输入职工奖金:\t");
    		fflush(stdin);
    		scanf("%lf",&per[i].extra);
            printf("\n\t输入职工扣款:\t");
    		fflush(stdin);
    		scanf("%lf",&per[i].discount);
    		printf("\n\n");
    		i++;
    		now_per=i;
    		save();
    		printf("\n\n\t是否继续输入?(Y/N):");
    		fflush(stdin);
    		ch=getchar();
    		system("cls");
    	}
    	while(ch!='n'&&ch!='N');
    	system("cls");
    }
    
    

    3.查找职工信息

    主要是显示查找职工信息主功能模块下所具备的子功能模块信息。

    void find()//查找信息函数
    {
    	int i=0;
    	int choose;
    	char ch;
    	system("cls");
        do
    	{
        printf("\n\t");
    	star(60);
    	printf("\n\n\t\t\t查询职工信息");
    	printf("\n\n\t");
    	star(60);
    	printf("\n");
    	printf("\n\t1  按编号查找");
    	printf("\n\t2  按姓名查找");
    	printf("\n\t3  按基本工资查找");
    	printf("\n\t4  返回上一层");
    	printf("\n\n\n\t");
    	star(60);
    	printf("\n\n\t你选择的是(1-4):\t");
    	fflush(stdin);
    	scanf("%d",&choose);
    	ch=getchar();
    	switch(choose)
    	{
    	case 1:
           	find_num();
            break;
    	case 2:
    	    find_name();
    		break;
    	case 3:
    		find_paid();
    		break;
    	case 4:
    		display();
    		break;
    	default:
    		printf("请正确输入!");
    		break;
    	}
    	}
    	while(1);
    }
    

    4.修改职工信息

    主要是显示修改职工信息主功能模块下所具备的子功能模块信息。

    void modify()//修改信息函数
    {
    	int choose;
    	char ch;
        system("cls");
    	do
    	{ 
    	  printf("\n\n\t");
    	  star(60);
    	  printf("\n\n\t\t\t排序职工信息");
    	  printf("\n\n\t");
    	  star(60);
    	  printf("\n\n\t");
    	  printf("1  按编号修改\n\t");
    	  printf("2  按姓名排序\n\t");
    	  printf("3  返回上一层");
    	  printf("\n\n\t");
    	  star(60);
    	  printf("\n\n\t\t你的选择是(1-3):\t");
    	  fflush(stdin);
    	  scanf("%d",&choose);
    	  ch=getchar();
    	  switch(choose)
    	  {
    	  case 1:
    		  modify_num();
    		  break;
    	  case 2:
    		  modify_name();
    		  break;
    	  case 3:
    		  display();
    		  break;
    	  default:
    		  printf("请正确选择!");
    		  break;
    	  }
    	}
    	while(1);
    }
    
    

    5.浏览职工信息

    主要是统计所有职工的工资信息,并且显示在页面上。

    void glance()//浏览信息函数
    {
    	int i;
    	char ch;
    	system("cls");
    	do
    	{
          printf("\n\t");
    	  star(95);
    	  printf("\n\n\t\t\t\t\t浏览全部职工信息");
    	  printf("\n\n\t");
    	  star(95);
    	  printf("\n\n\t");
          printf("编号\t姓名\t性别\t出生\t住址\t学历\t职位\t基本工资\t奖金\t扣款\t实发工资\n\n");
    	  for(i=0;i<now_per;i++)
    	  {
    		 per[i].pay=per[i].paid+per[i].extra-per[i].discount;
             printf("\t%-d\t%-s\t%-s\t%-s\t%-s\t%-s\t%-s\t%-.2lf\t\t%-.2lf\t%-.2lf\t%-.2lf\n\n",per[i].num,per[i].name,per[i].sex,per[i].birth,per[i].add,per[i].gread,per[i].position,per[i].paid,per[i].extra,per[i].discount,per[i].pay);
    	  }
    	  printf("\n\t");
    	  star(95);
    	  printf("\n\n\t按任意键继续...\n");
    	  ch=getchar();
    	}
    	while(!ch);
    	system("cls");
    }
    

    6.职工信息排序

    主要是显示职工信息排序主功能模块下所具备的子功能模块信息。

    void sort()//排序信息函数
    {
    	int choose;
    	char ch;
        system("cls");
    	do
    	{ 
    	  printf("\n\n\t");
    	  star(60);
    	  printf("\n\n\t\t\t排序职工信息");
    	  printf("\n\n\t");
    	  star(60);
    	  printf("\n\n\t");
    	  printf("1  按编号排序\n\t");
    	  printf("2  按基本工资排序\n\t");
    	  printf("3  返回上一层");
    	  printf("\n\n\t");
    	  star(60);
    	  printf("\n\n\t\t你的选择是(1-3):\t");
    	  fflush(stdin);
    	  scanf("%d",&choose);
    	  ch=getchar();
    	  switch(choose)
    	  {
    	  case 1:
    		  sortnum();
    		  break;
    	  case 2:
    		  sortpaid();
    		  break;
    	  case 3:
    		  display();
    		  break;
    	  default:
    		  printf("请正确选择!");
    		  break;
    	  }
    	}
    	while(1);
    }
    

    7.插入职工信息

    主要是显示插入职工信息主功能模块下所具备的子功能模块信息。

    void insert()//插入信息函数
    {
    	char ch;
    	system("cls");
    	do
    	{
        printf("\n\t");
    	star(60);
    	printf("\n\n\t\t\t插入职工信息");
    	printf("\n\n\t");
    	star(60);
    	printf("\n\n\t");
    	printf("输入插入的职工信息:\n");
        printf("\n\t输入职工编号:\t");
    	fflush(stdin);
    	scanf("%d",&per[now_per].num);
    	printf("\n\t输入职工姓名:\t");
    	fflush(stdin);
    	gets(per[now_per].name);
        printf("\n\t输入职工性别:\t");
    	fflush(stdin);
    	gets(per[now_per].sex);
        printf("\n\t输入职工出生:\t");
        fflush(stdin);
        gets(per[now_per].birth);
        printf("\n\t输入职工住址:\t");
        fflush(stdin);
    	gets(per[now_per].add);
    	printf("\n\t输入职工学历:\t");
    	fflush(stdin);
    	gets(per[now_per].gread);
    	printf("\n\t输入职工职位:\t");
    	fflush(stdin);
    	gets(per[now_per].position);
    	printf("\n\t输入职工基本工资:\t");
    	fflush(stdin);
    	scanf("%lf",&per[now_per].paid);
        printf("\n\t输入职工奖金:\t");
    	fflush(stdin);
    	scanf("%lf",&per[now_per].extra);
        printf("\n\t输入职工扣款:\t");
    	fflush(stdin);
    	scanf("%lf",&per[now_per].discount);
    	now_per+=1;
    	save();
    	printf("\n\n\t是否需要继续输入?(Y/N):");
    	fflush(stdin);
    	ch=getchar();
    	system("cls");
    	}
    	while(ch!='n'&&ch!='N');
    } 
    

    8.删除职工信息

    主要是显示删除职工信息主功能模块下所具备的子功能模块信息。

    void dele()//删除信息函数
    { 
        int choose;
    	char ch;
        system("cls");
    	do
    	{ 
    	  printf("\n\n\t\t");
    	  star(60);
    	  printf("\n\n\t\t\t\t删除职工信息");
    	  printf("\n\n\t\t");
    	  star(60);
    	  printf("\n\n\t\t");
    	  printf("1  按编号删除\n\t\t");
    	  printf("2  按姓名删除\n\t\t");
    	  printf("3  按基本工资删除\n\t\t");
    	  printf("4  返回上一层\n\t\t");
    	  printf("\n\n\t\t");
    	  star(60);
    	  printf("\n\n\t\t你的选择是(1-4):\t");
    	  fflush(stdin);
    	  scanf("%d",&choose);
    	  ch=getchar();
    	  switch(choose)
    	  {
    	  case 1:
    		  dele_num();
    		  break;
    	  case 2:
    		  dele_name();
    		  break;
    	  case 3:
    		  dele_paid();
    		  break;
    	  case 4:
    		  display();
    		  break;
    	  default:
    		  printf("请正确选择!");
    		  break;
    	  }
    	}
    	while(1);
    }
    

    9.数据读入文件

    该功能主要是将所输入的所有职工数据全部存入文件,可以根据自己的需要指定需要存储的文件路径。

    void save()//保存信息到文件函数
    {
    	int i;
    	char ch;
    	char file[10];
    	FILE *fp;
    	system("cls");
    	printf("\n\n\t请输入要保存的文件路径:\t");
    	fflush(stdin);
    	gets(file);
    	if((fp=fopen(file,"w"))==NULL)
    	{
    		printf("\n\n\t保存失败!");
    		ch=getchar();
    		exit(0);
    	}
    	for(i=0;i<now_per;i++)
           fprintf(fp,"%-d\t%-s\t%-s\t%-s\t%-s\t%-s\t%-s\t%-.2lf\t\t%-.2lf\t%-.2lf\n\n",per[i].num,per[i].name,per[i].sex,per[i].birth,per[i].add,per[i].gread,per[i].position,per[i].paid,per[i].extra,per[i].discount);
    	fclose(fp);
    	printf("\n\n\t正在保存,请稍后");
    	printf(".");
    	Sleep(500);
    	printf(".");
    	Sleep(500);
    	printf(".");
    	Sleep(500);
    	system("cls");
    	printf("\n\n\t职工信息已成功保存在 %s !\n\n",file);
    	Sleep(500);
    	system("cls");
    }
    
    

    10.数据读出文件

    该功能主要实现的是从文件中读出所有职工数据信息,系统关闭之后,下一次打开该系统后,点击该功能后,输入需要读取的数据文件,点击确定即可成功将数据信息读入本职工工资管理系统。

    void read()//从文件读取信息函数
    {
    	int i;
    	char ch;
    	char file[10];
    	FILE *fp;
    	system("cls");
    	printf("\n\n\t请输入要读入职工信息的文件路径:\t");
    	fflush(stdin);
    	gets(file);
        if((fp=fopen(file,"r"))==NULL)
    	{
    		printf("文件读入失败!");
    		ch=getchar();
            display();
    	}
    	now_per=0;
    	for(i=0;i<MAX&&!feof(fp);i++) 
    	{
    	    fscanf(fp,"%d%s%s%s%s%s%s%lf%lf%lf\n\n",&per[i].num,per[i].name,per[i].sex,per[i].birth,per[i].add,per[i].gread,per[i].position,&per[i].paid,&per[i].extra,&per[i].discount);
    	    now_per++;
    	} 	
    	fclose(fp);
        printf("\n\n\t正在文件中读取职工信息,请稍后");
    	printf(".");
    	Sleep(500);
    	printf(".");
    	Sleep(500);
    	printf(".");
    	system("cls");
    	Sleep(500);
    	system("cls");
    	printf("\n\n\n\n\t%s 文件中职工信息读取成功!",file);
    	Sleep(600);
    	printf("\n\n\t请按任意键继续....");
    	ch=getchar();
    	system("cls");
    }
    

    四、功能模块展示

    1.功能页面展示

    在这里插入图片描述

    2.录入职工信息

    在这里插入图片描述在这里插入图片描述

    3.查询职工信息

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.修改职工信息

    在这里插入图片描述
    在这里插入图片描述

    5.浏览职工信息

    在这里插入图片描述

    6. 职工信息排序

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    7.插入职工信息

    在这里插入图片描述
    在这里插入图片描述

    8.删除职工信息

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    9.数据读入文件

    在这里插入图片描述
    在这里插入图片描述

    10.数据读出文件

    在这里插入图片描述
    在这里插入图片描述

    非常感谢广大朋友们的查看,如果对本篇文章有任何问题或者有什么不足之处,还请广大朋友们的不吝赐教。如果有喜欢本篇文章的朋友们还请给博主一个一键三连吧。

    展开全文
  • 工资管理系统数据流
  • 基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的高校职工工资管理系统, 该项目可用各类java课程设计大作业中, 高校职工工资管理系统的系统架构分为前后台两部分, 最终实现在线上进行高校职工工资管理系统各项...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的高校职工工资管理系统, 该项目可用各类java课程设计大作业中, 高校职工工资管理系统的系统架构分为前后台两部分, 最终实现在线上进行高校职工工资管理系统各项功能,实现了诸如用户管理, 登录注册, 权限管理等功能, 并实现对各类高校职工工资管理系统相关的实体进行管理。

    该高校职工工资管理系统为一个采用mvc设计模式进行开发B/S架构项目,并采用分层架构对项目进行架构, 分为pojo+action+service, 其中pojo表明该系统的各类数据库表对应的实体, 在对高校职工工资管理系统进行详细的需求分析后与数据库设计后, 设计实现了如下模块, 即登录模块,权限管理模块, 用户管理模块,高校职工工资管理系统信息管理模块等。并通过java抽象类对其实现

    开发环境

    java环境: Jdk1.8

    Ide: Eclipse EE或者jetbrains Idea

    数据库: mysql5.6以上

    依赖框架:javascript, css, jsp, servlet, filter

    系统需求分析与流程图

    一般而言, 此类的javaweb课程设计大作业都比较简单, 主要目的在于掌握基础的web开发知识, 所以在实现该高校职工工资管理系统的课程设计的时候, 需要首先收集其他的高校职工工资管理系统产品分析, 主要精力用于完成数据库表的设计, 以及基于mvc模式进行代码编写, 页面可以简单的利用bootstrap进行搭建, 进而完成高校职工工资管理系统各个模块的开发

    数据库课程设计

    数据库设计是整个高校职工工资管理系统系统能否正常运转的核心, 合理的数据库设计直接影响到高校职工工资管理系统是否能够正常运行, 本系统采用mysql数据库作为数据存储, 引擎采用innoddb

    系统演示视频

    运行截图

    d01198a72ae1fbc0b17d99c5eb17e7cb.png

    基于jsp的高校职工工资管理系统-登陆功能界面

    d28c21489ef2851d06ef59652e9993c9.png

    基于jsp的高校职工工资管理系统-前台首页

    fa368851edebcb19e683f323f4945974.png

    基于jsp的高校职工工资管理系统-后台信息管理页面

    18b17c5f57c90aac2a19733b6a5791a2.png

    高校职工工资管理系统系统架构图

    51c5d1a68ce4f94f4d8fc64353e58f36.png

    注意事项

    该基于jsp的高校职工工资管理系统项目自带源码, 论文, sql数据库, 答辩ppt, 中期检查报告

    项目首页登陆地址 https://localhost:8080/login.jsp

    项目后台陆地址 https://localhost:8080/admin/login.jsp

    测试用户 cswork 密码 123456

    测试管理员 admin 密码 admin

    功能列表

    高校职工工资管理系统系统登陆模块, 实现高校职工工资管理系统系统的登陆注册权限角色用户的增删改查

    高校职工工资管理系统用户管理模块, 实现高校职工工资管理系统系统的信息管理与增删改查

    前台信息管理模块, 面向普通用户, 实现普通用户对高校职工工资管理系统的录入 修改 删除 自定义查询

    超级管理员管理, 实现后台管理员对高校职工工资管理系统系统的各个模块管理功能, 各个子模块高内聚低耦合

    展开全文
  • 工资管理系统

    千次阅读 2020-09-22 17:12:32
    工资管理系统一、项目介绍二、需求分析2.1业务流程图2.2系统流图2.3数据字典2.4功能需求三、概念结构和...因此设计一个小型公司工资管理系统,由计算机取代人工管理完成工资表核算等工作,从而大大提高财务人员的工作效

    一、项目介绍

    随着经济的发展,企业正向着大型化、规模化发展,而对于大中型企业,员工、学历、职称、受聘时间长短等与工资管理有关的信息随之急剧增加。在这种情况下完全依赖于人工管理,不仅需要耗费大量精力和时间成本,出错率较高,而且给查找、维护和更新带来麻烦。因此设计一个小型公司工资管理系统,由计算机取代人工管理完成工资表核算等工作,从而大大提高财务人员的工作效率,同时也提高数据结算正确率。
    本系统按照一般企业都采用的工资计算公式,即根据员工的职称、学历、受聘日期长短来确定基本工资,按照工资百分比发放津贴,按照人事部门的扣款表扣除部分工资,由此来构成一个员工的当月工资。
    根据公司需求及相关调研,该系统应达到以下目标:
    (1)信息分类清晰,易于管理操作
    (2)能准确无误地表述信息
    (3)快捷的查询功能
    (4)界面简洁友好
    (5)操作简单、易于上手
    系统运行稳定、安全可靠

    二、需求分析

    2.1业务流程图

    在这里插入图片描述

    2.2系统流图

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.3数据字典

    数据元素编号:E001
    数据元素名称:职工号
    别名:
    描述:唯一标识职工信息的关键域
    定义:职工号=8{字符}8
    位置:职工信息表、工资表

    数据元素编号:E002
    数据元素名称:受聘时间
    别名:入职时间
    描述:当前年份-职员入职年份
    定义:受聘时间=2{字符}2
    位置:职工信息表
    工资表

    数据存储编号:D1
    数据存储名称:工资表
    别名:工资信息表
    描述:详细的工资组成
    定义:工资表=职称工资+学历工资+受聘时间工资+津贴-罚款

    数据存储编号:D2
    数据存储名称:用户信息
    别名:用户信息表
    描述:可登陆该系统的财务处用户
    定义:用户信息=用户名+密码+身份

    数据存储编号:D3
    数据存储名称:职工信息
    别名:职工信息表
    描述:公司全体职工信息
    定义:职工信息=职工号+姓名+身份证号+学历+职称+受聘日期+工资

    数据存储编号:D4
    数据存储名称:工资组成
    别名:工资组成信息
    描述:工资的构成标准
    定义:工资组成=职称工资+学历工资+受聘时间工资+津贴-罚款

    数据存储编号:D5
    数据元素名称:扣款表
    别名:罚款表
    描述:由人事部门汇总给财务处的工资扣款信息
    定义:扣款表=迟到罚款+处分罚款

    数据流编号:DF001
    数据流名称:查询要求
    描述:用户输入给系统的查询条件
    定义:职工号/用户名
    数据流来源:用户
    数据流去处:处理逻辑“查询处理”

    数据流编号:DF002
    数据流名称:查询职工信息
    描述:系统输出给职工的信息
    定义:职工号 姓名 身份证号 学历 职称 受聘日期 工资
    数据流来源:系统
    数据流去处:用户

    数据处理编号:DP001
    数据处理名称:查询职工信息处理
    描述:接收和处理用户输入的查询要求,当输入查询条件时,系统会按照要求在职工信息里查找并输出相应信息。
    输入:查询要求
    来源:用户
    输出:1、查询成功 职工信息
    2、查询失败

    数据处理编号:DP002
    数据处理名称:修改工资组成
    描述:用户输入修改工资组成要求,系统根据要求处理
    输入:工资组成
    来源:用户
    输出:修改成功 存储工资组成信息

    数据处理编号:DP003
    数据处理名称:查询工资处理
    描述:用户输入查询工资要求,系统根据要求处理
    输入:职工信息
    来源:用户
    输出:1、查询成功 显示职工工资信息
    2、查询失败 系统提示失败

    2.4功能需求

    在这里插入图片描述
    系统分为三个模块:职工管理,工资管理,系统管理
    **职工管理模块:**财务处人员对职工信息进行查询、添加、修改、删除。
    工资管理模块:
    查询工资信息:财务处人员可通过职工号、姓名关键字等查询工资信息明细。
    查询工资组成:财务处人员可查询当前公司现行的工资发放标准。
    **修改工资组成:**高级财务处人员可根据当年国家政策、公司运营状态和行政部门扣款表对工资组成进行修改。
    系统管理模块:
    修改密码:用户仅可修改本人的密码。增删用户:高级财务处人员可根据入职和离职情况添加删除用户。

    三、概念结构和物理设计

    3.1概念结构设计

    将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。根据需求分析形成的数据字典和数据流图,抽象得到的实体有:
    职工信息(职工号,姓名,职称,学历,受聘日期)
    工资(职工号,姓名,学历,职称,受聘日期,基本工资,罚款)
    津贴(职工号,姓名,津贴)
    实体之间的联系如下:
    一个职工有各自的一种工资
    工资管理系统E-R图如图所示:
    在这里插入图片描述

    3.2 物理结构设计

    为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程就是数据库的物理设计。数据库在物理设备上的存储结构与存取方法称为物理结构。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • C++职工工资管理系统

    2013-06-24 22:43:00
    分析职工工资管理系统程序结构: 画出程序粗略的流程图和各个模块的详细流程图,每个功能模块用文字说明他们的功能(与对应流程图放在一起); 对你已经实现的功能(修改的、新编写的)做详细的说明, 并附上流程图及...
  • printf("\n管理工人的工资\n"); printf(" 1.添加记录\n"); printf(" 2.列出记录\n"); printf(" 3.删除记录\n"); printf(" 4.修改记录\n"); printf(" 5.查找记录\n"); printf(" 6.降序排列\n"); printf(" 7.升序排列...

    展开全部

    #include

    #include

    #include

    #include

    #define MONTH_NUM 5 /* 最多的月份 */

    struct worker

    {

    int number; /* 每个62616964757a686964616fe4b893e5b19e31333264643163工人的工号 */

    char name[15]; /* 每个工人的姓名 */

    int salary[MONTH_NUM]; /* 每个工人M月的工资 */

    int sum; /* 每个工人的总工资 */

    float average; /* 每个工人的平均工资 */

    struct worker *next;

    };

    typedef struct worker STU;

    char Menu(void);

    int Ascending(int a, int b);

    int Descending(int a, int b);

    void IntSwap(int *pt1, int *pt2);

    void CharSwap(char *pt1, char *pt2);

    void FloatSwap(float *pt1, float *pt2);

    STU *AppendNode(STU *head, const int m);

    STU *DeleteNode(STU *head, int nodeNum);

    STU *ModifyNode(STU *head, int nodeNum, const int m);

    STU *SearchNode(STU *head, int nodeNum);

    STU *Appendsalary(STU *head, const int m);

    void Totalsalary(STU *head, const int m);

    void Printsalary(STU *head, const int m);

    STU *Deletesalary(STU *head, const int m);

    void Modifysalary(STU *head, const int m);

    void Sortsalary(STU *head, const int m, int (*compare)(int a, int b));

    void Searchsalary(STU *head, const int m);

    void DeleteMemory(STU *head);

    main()

    {

    char ch;

    int m;

    STU *head = NULL;

    printf("输入要记录的月份(m<10):");

    scanf("%d", &m);

    while (1)

    {

    ch = Menu();

    switch (ch)

    {

    case'1':head = Appendsalary(head, m);

    Totalsalary(head, m);

    break;

    case'2':Printsalary(head, m);

    break;

    case'3':head = Deletesalary(head, m);

    printf("\nAfter deleted\n");

    Printsalary(head, m);

    break;

    case'4':Modifysalary(head, m);

    Totalsalary(head, m);

    printf("\nAfter modified\n");

    Printsalary(head, m);

    break;

    case'5':Searchsalary(head, m);

    break;

    case'6':Sortsalary(head, m, Descending);

    printf("\nsorted in descending order by sum\n");

    Printsalary(head, m);

    break;

    case'7':Sortsalary(head, m, Ascending);

    printf("\nsorted in ascending order by sum\n");

    Printsalary(head, m);

    break;

    case'0':exit(0);

    DeleteMemory(head);

    printf("End of program!");

    break;

    default:printf("Input error!");

    break;

    }

    }

    }

    char Menu(void)

    {

    char ch;

    printf("\n管理工人的工资\n");

    printf(" 1.添加记录\n");

    printf(" 2.列出记录\n");

    printf(" 3.删除记录\n");

    printf(" 4.修改记录\n");

    printf(" 5.查找记录\n");

    printf(" 6.降序排列\n");

    printf(" 7.升序排列\n");

    printf(" 0.退出\n");

    printf("请输入你的选择:");

    scanf(" %c", &ch); /*在%c前面加一个空格,将存于缓冲区中的回车符读入*/

    return ch;

    }

    STU *Appendsalary(STU *head, const int m)

    {

    int i = 0;

    char c;

    do{

    head = AppendNode(head, m); /*向链表末尾添加一个节点*/

    printf("你想添加一个新的记录吗(Y/N)?");

    scanf(" %c",&c); /*%c前面有一个空格*/

    i++;

    }while (c=='Y' || c=='y');

    printf("%d new nodes have been apended!\n", i);

    return head;

    }

    STU *Deletesalary(STU *head, const int m)

    {

    int i = 0, nodeNum;

    char c;

    do{

    printf("请输入你想删除的记录编号:");

    scanf("%d", &nodeNum);

    head = DeleteNode(head, nodeNum); /*删除工号为nodeNum的工人信息*/

    Printsalary(head, m); /*显示当前链表中的各节点信息*/

    printf("Do you want to delete a node(Y/N)?");

    scanf(" %c",&c); /*%c前面有一个空格*/

    i++;

    }while (c=='Y' || c=='y');

    printf("%d nodes have been deleted!\n", i);

    return head;

    }

    void Modifysalary(STU *head, const int m)

    {

    int i = 0, nodeNum;

    char c;

    do{

    printf("请输入你想修改的记录编号:");

    scanf("%d", &nodeNum);

    head = ModifyNode(head, nodeNum, m); /*修改工号为nodeNum的节点*/

    printf("Do you want to modify a node(Y/N)?");

    scanf(" %c",&c); /*%c前面有一个空格*/

    i++;

    }while (c=='Y' || c=='y');

    printf("%d nodes have been modified!\n", i);

    }

    void Totalsalary(STU *head, const int m)

    {

    STU *p = head;

    int i;

    while (p != NULL) /*若不是表尾,则循环*/

    {

    p->sum = 0;

    for (i=0; i

    {

    p->sum += p->salary[i];

    }

    p->average = (float)p->sum / m;

    p = p->next; /*让p指向下一个节点*/

    }

    }

    void Sortsalary(STU *head, const int m, int (*compare)(int a, int b))

    {

    STU *pt;

    int flag = 0, i;

    do{

    flag = 0 ;

    pt = head;

    /*若后一个节点的总工资比前一个节点的总工资高,则交换两个节点中的数据

    注意只交换节点数据,而节点顺序不变,即节点next指针内容不进行交换*/

    while (pt->next != NULL)

    {

    if ((*compare)(pt->next->sum, pt->sum))

    {

    IntSwap(&pt->number, &pt->next->number);

    CharSwap(pt->name, pt->next->name);

    for (i=0; i

    {

    IntSwap(&pt->salary[i], &pt->next->salary[i]);

    }

    IntSwap(&pt->sum, &pt->next->sum);

    FloatSwap(&pt->average, &pt->next->average);

    flag = 1;

    }

    pt = pt->next;

    }

    }while(flag);

    }

    /*交换两个整型数*/

    void IntSwap(int *pt1, int *pt2)

    {

    int temp;

    temp = *pt1;

    *pt1 = *pt2;

    *pt2 = temp;

    }

    /*交换两个实型数*/

    void FloatSwap(float *pt1, float *pt2)

    {

    float temp;

    temp = *pt1;

    *pt1 = *pt2;

    *pt2 = temp;

    }

    /*交换两个字符串*/

    void CharSwap(char *pt1, char *pt2)

    {

    char temp[15];

    strcpy(temp, pt1);

    strcpy(pt1, pt2);

    strcpy(pt2, temp);

    }

    /*决定数据是否按升序排序,a

    int Ascending(int a, int b)

    {

    return a < b;

    }

    /* 决定数据是否按降序排序,a>b为真,则按降序排序 */

    int Descending(int a, int b)

    {

    return a > b;

    }

    void Searchsalary(STU *head, const int m)

    {

    int number, i;

    STU *findNode;

    printf("请输入你想查找的记录编号:");

    scanf("%d", &number);

    findNode = SearchNode(head, number);

    if (findNode == NULL)

    {

    printf("Not found!\n");

    }

    else

    {

    printf("\nNo.%3d%8s", findNode->number, findNode->name);

    for (i=0; i

    {

    printf("%7d", findNode->salary[i]);

    }

    printf("%9d%9.2f\n", findNode->sum, findNode->average);

    }

    }

    void Printsalary(STU *head, const int m)

    {

    STU *p = head;

    char str[100] = {'\0'}, temp[3];

    int i, j = 1;

    strcat(str, "Number Name ");

    for (i=1; i<=m; i++)

    {

    strcat(str, "salary");

    itoa(i,temp, 10);

    strcat(str, temp);

    strcat(str, " ");

    }

    strcat(str," sum average");

    printf("%s", str); /* 打印表头 */

    while (p != NULL) /*若不是表尾,则循环打印*/

    {

    printf("\nNo.%3d%15s", p->number, p->name);

    for (i=0; i

    {

    printf("%7d", p->salary[i]);

    }

    printf("%9d%9.2f", p->sum, p->average);

    p = p->next; /*让p指向下一个节点*/

    j++;

    }

    printf("\n");

    }

    STU *AppendNode(STU *head, const int m)

    {

    STU *p = NULL;

    STU *pr = head;

    int j;

    p = (STU *)malloc(sizeof(STU)); /*为新添加的节点申请内存*/

    if (p == NULL) /*若申请内存失败,则打印错误信息,退出程序*/

    {

    printf("No enough memory to alloc");

    exit(0);

    }

    if (head == NULL) /*若原链表为空表,则将新建节点置为首节点*/

    {

    head = p;

    }

    else /*若原链表为非空,则将新建节点添加到表尾*/

    {

    /*若未到表尾,则继续移动指针pr,直到pr指向表尾*/

    while (pr->next != NULL)

    {

    pr = pr->next;

    }

    pr->next = p; /*将新建节点添加到链表的末尾*/

    }

    pr = p; /*让pr指向新建节点*/

    printf("Input node data......");

    printf("\nInput number:");

    scanf("%d", &p->number);

    printf("Input name:");

    scanf("%s", p->name);

    for (j=0; j

    {

    printf("Input salary%d:", j+1);

    scanf("%d", p->salary+j);

    }

    pr->next = NULL; /*将新建节点置为表尾*/

    return head; /*返回添加节点后的链表的头节点指针*/

    }

    STU *ModifyNode(STU *head, int nodeNum, const int m)

    {

    int j;

    STU *newNode;

    newNode = SearchNode(head, nodeNum);

    if (newNode == NULL)

    {

    printf("Not found!\n");

    }

    else

    {

    printf("Input the new node data:\n");

    printf("Input name:");

    scanf("%s", newNode->name);

    for (j=0; j

    {

    printf("Input salary%d:", j+1);

    scanf("%d", newNode->salary+j);

    }

    }

    return head;

    }

    STU *DeleteNode(STU *head, int nodeNum)

    {

    STU *p = head, *pr = head;

    if (head == NULL) /*链表为空,没有节点,无法删除节点*/

    {

    printf("No Linked Table!\n");

    return(head);

    }

    /*若没找到节点nodeNum且未到表尾,则继续找*/

    while (nodeNum != p->number && p->next != NULL)

    {

    pr = p;

    p = p->next;

    }

    if (nodeNum == p->number) /*若找到节点nodeNum,则删除该节点*/

    {

    if (p == head) /*若待删节点为首节点,则让head指向第2个节点*/

    {

    head = p->next;

    }

    else /*若待删节点非首节点,则将前一节点指针指向当前节点的下一节点*/

    {

    pr->next = p->next;

    }

    free(p); /*释放为已删除节点分配的内存*/

    }

    else /*没有找到待删除节点*/

    {

    printf("This Node has not been found!\n");

    }

    return head; /*返回删除节点后的链表的头节点指针*/

    }

    STU *SearchNode(STU *head, int nodeNum)

    {

    STU *p = head;

    int j = 1;

    while (p != NULL) /*若不是表尾,则循环*/

    {

    if (p->number == nodeNum) return p;

    p = p->next; /*让p指向下一个节点*/

    j++;

    }

    return NULL;

    }

    void DeleteMemory(STU *head)

    {

    STU *p = head, *pr = NULL;

    while (p != NULL) /*若不是表尾,则释放节点占用的内存*/

    {

    pr = p; /*在pr中保存当前节点的指针*/

    p = p->next; /*让p指向下一个节点*/

    free(pr); /*释放pr指向的当前节点占用的内存*/

    }

    }

    凑合着用吧,一些缺少的功能自己加上去就行了。。。

    追问

    不好意思,我要的可以窗口执行的,不是那种黑屏的

    本回答由提问者推荐

    2Q==

    已赞过

    已踩过<

    你对这个回答的评价是?

    评论

    收起

    展开全文
  • 实践报告1. 目的 :通过此次综合编程实践, 使大学生进一步熟悉和掌握C 语言的基本知识,基本编程原理;学习用 C 语言开发应用程序的方法;进一步熟悉计算机程序...职工工资管理系统是程序的主界面A.1 是数据录...
  • java课程设计工资管理系统.doc

    千次阅读 2021-02-12 22:59:31
    java课程设计工资管理系统得分:课程设计报告企业工资管理系统姓名陈志班级122011学号课程名称Java课程设计指导教师2015年12月12日目 录一.工资管理系统需求分析…………………………………1.1功能需求………………...
  • 职工工资管理系统C语言程序课程设计方案1课 程 设 计 报 告课程名称 C语言程序设计课题名称 职工工资管理系统专 业 机械电子班 级 1101班学 号 1姓 名 王贝贝指导教师 肖伟平 何宏 郭芳2012年 12 月 19 日湖南工程...
  • 输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。 显示记录:根据用户提供的记录或者...
  • C++ 课设 职工工资管理系统

    万次阅读 多人点赞 2016-08-10 23:44:09
    职工工资管理系统  现在的大学里经常有一些课程设计 ,这不,我就遇到了 。 我们的c++老师 ,给了我们许多的题目要我们来选择 ,我就选择了这个 ,说难又不难 ,说简单,又不简单的 题目 ——职工工资管理系统 。...
  • 基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的职工工资管理信息系统, 该项目可用各类java课程设计大作业中, 职工工资管理信息系统系统架构分为前后台两部分, 最终实现在线上进行职工工资管理信息系统各项...
  • java职工工资管理系统(GUI+无数据库)

    千次阅读 多人点赞 2020-10-13 23:03:40
    一、说明 前几个星期刚结束的大一java课设,希望能帮助到大家! 获取源程序包请滑到最后,导入Eclipse可直接运行!! 二、系统实现 1 登录界面 创建容器,把相应得组件设置后放...3 系统大致流程图 如图: 三、测试情况
  • 小型员工薪酬管理系统 管理员登录 注册员工信息 修改账户密码 管理员工信息界面 查询员工信息 发放员工工资 显示员工信息 分类搜索(可直接运行)
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼STUDENT*init(){returnNULL;}/*创建链表*/STUDENT*create(){STUDENT*h=NULL,*info;/*STUDENT指向结构体的指针*/for(;;){info=(STUDENT*)malloc(sizeof(STUDENT));/*申请...
  • 员工工资管理系统

    2013-11-02 10:37:52
    工资管理系统是一个数据库管理系统,是针对企业的工资管理业务进行计算机处理而开发的应用软件。它提供关于公司老员工及新员工信息和工资有效管理等事务的信息……
  • 企业为什么要上线客户关系管理系统?客户关系管理系统能帮助企业做些什么?才会让我们的客户关系管理系统话题不断?上线客户关系管理系统是好还是不好呢?1.深圳客户关系管理可以收集客户信息深圳CRM管理系统可以...
  • 系统设计目标及功能 系统目标 使用数组设计一个实用的小型学生成绩管理程序,它有查询和检索等功能,并且能够对指定文件操作。 功能设计要求 增加学生记录 在已有的记录后面追加新的记录 可以随时用它...
  • 信息科学与技术学院课程设计报告2012—2013学年第一学期课程名称:C语言课程设计上机设计题目:院职工工资管理系统学 号:__________________姓 名:__________________专业班级:__________________指导老师:_____...
  • 职工工资管理系统.doc

    2011-06-01 00:58:43
    职工工资管理系统系统是为公司财会部门设计的。主要管理的数据包括:职工号 姓名 岗位工资 奖金 扣除 实发。该系统具有的功能是:根据职工号对职工的信息进行录入、查询、删除 、修改、追加、统计、显示等。对各功能...
  • 1.2 人事管理系统发展趋势 4 1.2.1 世界趋势 4 1.2.2 技术革新 4 1.2.3工作目标和价值观的改变 5 第二章 系统相关技术介绍 6 2.1 C#技术简介 6 2.2 SQL技术 6 2.2.1 数据库的基本概念 6 2.2.2 本系统中数据库的访问 ...
  • 3、工资管理系统,提供多工资方案管理,每个工资方案支持50列数值型数据和10列文本型数据,支持每项工资数据从员工档案和计价计时工资等模块读入;支持每项工资数据默认工资管理,支持将默认工资和历史发放工资数据...
  • 项目编号:jsp288基于ssm的员工工资管理系统(java,web) 运行环境: 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架:Spring+SpringMVC+mybatis 作者联系方式:123311197(QQ) 随着...
  • 所用到的对应项目是SSH框架的员工管理系统 1相关技术研究 1.1HTML HTML(Hyper Text Markup Language)又称为“超文本标记语言”,它不是一种编程语言,而是一种标记语言。它具有简易性、可扩展性、平台无关性的特点...
  • 工资管理系统的开发设计

    千次阅读 2018-12-11 13:14:23
    工资管理系统的开发设计 (一)需求分析 本次课题为工资管理系统的开发和设计。即模拟公司实际运营情况,对员工工资进行管理。整体实现职工工资的录入,删除,查找,修改,读取,工资排序等要求。 应实现以下...
  • 工资管理系统【软件综合设计报告】

    千次阅读 多人点赞 2021-02-01 16:38:29
    该设计要求学生以工资管理业务为背景,调查与分析系统的业务需求,完成系统的需求获取与系统分析工作。 1、以指导书中的业务描述为基础,通过检索资料与图书阅读调查与分析系统的业务需求,明确系统的功能与非...
  • 企业篇之员工工资管理系统(Java+SQL sever实现)

    千次阅读 多人点赞 2020-06-26 11:29:57
    4.1 ER… 2 4.2 数据字典… 2 4.3 关系表… 2 五、数据库物理设计… 2 5.1 索引… 2 5.2 视图… 2 5.3 安全机制… 2 六、应用程序设计… 3 6.1 功能模块… 3 6.2 界面设计… 3 6.3 事务设计… 3 七、测试和运行… ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,657
精华内容 3,862
关键字:

员工工资管理系统流程图