工资管理系统的开发设计

工资管理系统的开发设计

(一)需求分析

  本次课题为工资管理系统的开发和设计。即模拟公司实际运营情况,对员工工资进行管理。整体实现职工工资的录入,删除,查找,修改,读取,工资排序等要求。

应实现以下功能:

  1. 数据录入功能
    主要是对员工工资的日常管理,如:工资的输入,修改,迅速准确地完成工资信息统计计算以及对员工信息录入,修改等相关操作。
  2. 数据查询功能
    1) 查询某一员工每个月份的工资情况
    2) 查询某一月份每个员工的工资情况
    3) 按编号查找某个员工的全部信息
  3. 数据删除功能
    删除某一员工的相关信息
    4.数据统计功能
    统计员工交纳个人所得税以后的实际工资
  4. 数据排序功能
    对某一员工按照各月工资高低排序
  5. 数据保存功能
    将员工信息保存到文件

(二)初步设计

(1) 用结构体数组存储每个员工信息

struct Month
{
    int month;
    int money;
    int finalmoney;
};
struct worker
{
    char name[30];
    char id[10];
    char job[30];
    unsigned char flag;
    int  mnum;
    int  finalmoney;
    struct Month m[13] ;
} num[maxnum]; //定义人员信息数组

(2) 流程图

工资管理系统的开发设计_第1张图片

(三)详细设计

(1)代码展示

a.全局变量和头文件

#include
#include
#include

#define maxnum 100

FILE*in; //定义文件指针
FILE*out; //定义文件指针

int worknum = 0;

b.主界面

void show()
{
    printf("\n");
    printf("***************工资管理系统主界面***************\n");
    printf("1.职工信息录入\t\t");
    printf("2.职工信息删除\n");
    printf("3.职工信息查找\t\t");
    printf("4.职工信息修改\n");
    printf("5.职工信息读取\t\t");
    printf("6.按照工资排序\n");
    printf("7.返回主界面\t\t");
    printf("8.退出系统\n");
    printf("************************************************\n");
}


c.写入文件和读文件

void Write_File()
{
    FILE *fp;
    int i;
    if ((fp = fopen("worker.txt", "wb")) == NULL)  //打开文件
    {
        printf("inFile open error!\n");
        exit(1);
    }
    for(i=0; i

d.录入

//添加职工信息
void record(int n)
{
    int i,j,salary,month,money;
    char id[10];
    int f=0;
    struct worker tmp;

    Read_File();

    system("cls");
    printf("录入职工信息:\n");
    for(i=0; i

e.读取

//读取职工信息
void read()
{
    int i,j;
    system("cls");
    printf("读取职工信息:\n");
    Read_File();
    printf("月份\t职工号\t姓名\t职务\t应得工资\t实际工资\n");

    for(i=0; i

f.查找

//方法一查找信息
void search1()
{
    int i, j, flag = 0;
    char id[10];
    printf("*****按编号查找某个员工的全部信息****** \n");
    printf("请输入编号:");
    scanf("%s", id);
    Read_File();
    for(i=0; i

g.修改

//修改职工信息
void modify()
{
    int c,i,j,f=0;
    char ch;
    char name[30],job[30],id[10];
    int flag = 0;
    Read_File();
    //Write_File();
    printf("修改员工信息:\n");
    printf("请输入员工编号:");
    scanf("%s",id);
    for(i=0; i

h.删除

//删除职工信息

void delet()
{

    char id[10];
    char c;
    int i,flag=0;
    FILE *fp;
    system("cls");
    printf("删除职工信息:\n");
    printf("请输入职工编号:");
    scanf("%s",id);
    Read_File();
    if ((fp = fopen("worker.txt", "wb")) == NULL)  //打开文件
    {
        printf("open failedd!!\n");
        return;
    }

    for(i=0; i

i.计算实际工资

 int actulSalary(int money)
{
    int k=money/1000;
    double rate;
    switch(k)
    {
    case 1:
    case 2:
    case 3:
    case 4:
    {
        rate=0.1;
        //printf("%.2",money-money*rate);
        break; }
    case 5:
    case 6:
    {
        rate=0.2;
        break;
    }
    case 7:
    case 8:
    {
        rate=0.3;
        break;
    }
    default:
    {
        rate=0.4;
        break;

    }
    }
    return money-money*rate;
}

j.主函数

void main()
{
    int choose,n,i;

    memset(num,0,maxnum*sizeof(struct worker));

    while(1)
    {

        show();
        printf("请输入数字,选择相关操作:");
        scanf("%d",&choose);
        system("cls");
        if(choose==8)
        {
            break;
        }
        switch(choose)
        {
        case 1:
        {
            system("cls");
            printf("请输入录入的人数:\n");
            scanf("%d",&n);
            record(n);
            break;
        }

        case 2:
            delet();
            break;
        case 3:
            search();
            break;
        case 4:
            modify();
            break;
        case 5:
            read();
            break;
        //case 6:
        //   save();
        //  break;
        case 6:
            sort();
            break;
        case 7:
            break;
        default :
            printf("输入数字不正确,请重新输入.");
            break;
        }
        system("pause");
        //system("cls");
    }
}

(三)算法改进

  1.将文件存储换为数据库存储应该更好些
  2.实际情况还应包含更多内容。如:加班时间,加班类别,加班天数,岗位补贴,事假扣款,病假扣款,年终奖金等,应该具体完善。

你可能感兴趣的:(c语言)