员工管理系统之修改数据

先贴代码

int use_change()
{
    char *szNo = {0};
    char *szSalary = {0};
    int count = 0;
    int i = 0;
    int j = 0;
    int szcount = 0;
    int flag = 0;
    int fflag = 0;
    int num = 0;

    STAFF_T *p = NULL;

    //开辟空间
    szNo = (char *)malloc(sizeof(char *));
    memset(szNo,0,sizeof(char *));
    szSalary = (char *)malloc(sizeof(char *));
    memset(szSalary,0,sizeof(char *));
    //开辟结构体空间
    p = (STAFF_T *)malloc(sizeof(STAFF_T));

    printf("Please input the staff No.:");

    while(1)
    {
        flag = 0;
        glb_putString(szNo,10,3,1);

        szcount = sizeof(szNo)/sizeof(szNo[0]);

        //判断是否为数字
        for(i = 0; i<szcount; i++)
        {
            if(szNo[i] >= 'a' && szNo[i] <= 'z' || szNo[i] >= 'A' && szNo[i] <= 'Z')
            {
                flag = 1;
            }
        }
        if(flag == 1)
        {
            printf("\nErr:\nInput number only please:\n");
        }
        else
        {
            break;
        }
    }


    //读取文件
    head=FILE_read(staff_fp,sizeof(STAFF_T));

    count = LIST_GetCount(head);

    //判断是否为空
    if(count == 0)
    {
        return -1;
    }


    fflag = 0;
    num = 0;
    //数据遍历打印
    for(i = 1; i <= count; i++)
    {
        p = (STAFF_T *)LIST_GetNode(i,head);  //因为它之前是void * 所以要进行强转
        if(strcmp(p->NO,szNo)==0)
        {
            num++;
            if(num == 1)
            {
                  printf("\nNo Name Salary\n");
                  printf("----------------\n");
            }
            printf("%s %s %s\n",p->NO,p->Name,p->Salary);
            printf("\nPlease input the staff Salary:\n");
            while(1)
            {
                flag = 0;
                glb_putString(szSalary,10,3,1);

                szcount = sizeof(szSalary)/sizeof(szSalary[0]);

                //判断是否为数字
                for(j = 0; j<szcount; j++)
                {
                    if(szSalary[j] >= 'a' && szSalary[j] <= 'z' || szSalary[j] >= 'A' && szSalary[j] <= 'Z')
                    {
                        flag = 1;
                    }
                }
                if(flag == 1)
                {
                    printf("\nErr:\nInput number only please:\n");
                }
                else
                {
                    break;
                }
            }
            strcpy(p->Salary,szSalary);		//对内存操作

            //同步文件的数据
            FILE_update(staff_fp,p,sizeof(STAFF_T),i);
            printf("\n----------------\n");
            printf("\nNo Name Salary\n");
            printf("\n----------------\n");
            printf("%s %s %s\n\n",p->NO,p->Name,p->Salary);
            printf("按任意键回到上级菜单\n");
            getch();
            return 1;
            fflag = 1;
        }
    }
    if(fflag == 0)
    {
         printf("\n Err:\n Staff No. doesn't exist !\n");
         printf("回到上级菜单\n");
    }
    return 0;
}

修改数据的思路,通过读文件,获取一条链表出来,然后通过我们输入的员工号,查询所修改的数据存于文件的哪一个位置,通过修改文件的数据来达到数据的修改。

员工管理系统代码连接:https://download.csdn.net/download/gaodes/10940115

猜你喜欢

转载自blog.csdn.net/Gaodes/article/details/86664340