便携蓄电池 2021-07-08 21:39 采纳率: 66.7%
浏览 157
已采纳

C语言写工资管理系统

设计目标:设计一个工资管理系统,用C语言实现。对该系统的要求如下:
一、需求描述:
系统角色:员工、财务人员、系统管理员。其功能分别描述如下:
1.员工
员工能够使用本系统实现个人信息录入、工资查询、个人信息修改功能。
1)个人信息录入
(1)身份证号
(2)姓名
(3)性别
(4)部门
2)工资查询
(1)月薪
(2)年新
(3)月平均收入
3)个人信息修改功能
(1)身份证号
(2)姓名
(3)性别
2.财务人员
财务人员对本单位的人员工资进行增加、删除、修改等。具体包括:
1)员工工资录入
2)员工工资修改
3)员工工资统计
4)员工信息打印
3、系统管理员
能够添加、删除和修改系统用户,设置用户权限。包括:
1)添加新用户
2)删除用户
3)修改用户权限

  • 写回答

2条回答 默认 最新

  • 便携蓄电池 2021-07-08 22:06
    关注

    #include <stdio.h>
    #include <string.h>
    #include<stdlib.h>

    //函数声明
    //子窗口正确显示
    int menuSubclassSucces();
    //子窗口错误显示
    int menuSubclassFail();
    //界面显示
    void menuShow();
    //用户选择
    void userChoseFunction(int chose);
    //注册页面成功提示
    int userRegisterMenu();

    int chose;
    //用户账号密码校验
    char userCheck[50];
    char pwdCheck[16];

    //匹配用户名与密码
    int isUserName;
    int isUserPwd;

    //定义管理员用户登录用户名 以及密码
    char userNameR[50] = { "root" };
    char userPwdR[16] = { "abc" };

    //定义财务人员用户登录用户名以及密码
    char userNameC[50] ={"money"};
    char userPwdC[16]={"123"};

    //定义普通用户登录用户名 以及密码
    char userName[50];
    char userPwd[16];

    //界面显示
    void menuShow()
    {
    printf("//\n\n");
    printf("\t欢迎工资管理系统\n\n");
    printf("/
    /\n\n");

    printf("请进行如下选择:\n\n\t1.用户登录\n\n\t2.用户注册\n\n\t3.查看更多\n\n\t4.退出系统\n\n");
    printf("请选择:");
    

    }

    //用户登录选择
    void userLoginChose()
    {
    printf("用户登陆选择:\n1.员工用户\n2.管理员\n3.财务人员\n");
    scanf("%d", &userCdFlag);
    getchar();

    }

    //用户选择
    void userChoseFunction(int chose)
    {
    switch (chose)
    {
    case 1:
    //普通用户
    switch(userCdFlag)
    {
    case 1:
    {
    printf("请输入用户名:");
    gets(userCheck);
    //user check
    isUserName = strcmp(userName, userCheck);
    printf("\n");

                printf("请输入密码:");
                gets(pwdCheck);
                printf("\n");
                //pwd check
                isUserPwd = strcmp(userPwd, pwdCheck);
    
                if ((isUserName == 0) && (isUserPwd == 0))
                {
                    //用于判断返回层次
                    if (menuSubclassSucces() == 0)
                    {
                        break;
                    }
                    else
                    {
                        menuSubclassSucces();
                    }
                }
                //失败页面
                
                {
                    if (menuSubclassFail() == 0)
                    {
                        break;
                    }
                    else
                    {
                        getchar();
                        userChoseFunction(1);
                    }
                }
                printf("\n");
                getchar();
            
            }
            //管理员用户
            case 2:
            {
                printf("请输入用户名:");
                gets(userCheck);
                //user check
                isUserName = strcmp(userNameR, userCheck);
                printf("\n");
    
                printf("请输入密码:");
                gets(pwdCheck);
                printf("\n");
                //pwd check
                isUserPwd = strcmp(userPwdR, pwdCheck);
    
                if ((isUserName == 0) && (isUserPwd == 0))
                {
                    //用于判断返回层次
                    if (menuSubclassSucces() == 0)
                    {
                        break;
                    }
                    else
                    {
                        menuSubclassSucces();//员工登录
                        
    
    
    
                    }
                }
                //失败页面
                else
                {
                    if (menuSubclassFail() == 0)
                    {
                        break;
                    }
                    else
                    {
                        getchar();
                        userChoseFunction(1);
                    }
                }
                printf("\n");
                getchar();
            }
            //财务人员登录 
            case 3:
            {
                printf("请输入用户名:");
                gets(userCheck);
                //user check
                isUserName = strcmp(userNameC, userCheck);
                printf("\n");
    
                printf("请输入密码:");
                gets(pwdCheck);
                printf("\n");
                //pwd check
                isUserPwd = strcmp(userPwdC, pwdCheck);
    
                if ((isUserName == 0) && (isUserPwd == 0))
                {
                    //用于判断返回层次
                    if (menuSubclassSucces() == 0)
                    {
                        break;
                    }
                    else
                    {
                        menuSubclassSucces();//员工登录
                        
    
    
    
                    }
                }
                //失败页面
                else
                {
                    if (menuSubclassFail() == 0)
                    {
                        break;
                    }
                    else
                    {
                        getchar();
                        userChoseFunction(1);
                    }
                }
                printf("\n");
                getchar();
            }
            break;
        }
            break;
        case 2:
            printf("请添加用户名:");
            gets(userName);
            printf("\n");
            printf("请输入密码:");
            gets(userPwd);
            if ((userName != NULL) && (userPwd != NULL))
            {
                userRegisterMenu();
    
            }
            printf("\n");
            userCdFlag = 2;
            break;
        case 3:
            printf("欢迎使用该服务程序,如有疑问,请联系管理员");
            getchar();
            break;
    
        default:
            break;
    }
    

    }

    //子窗口正确显示
    int menuSubclassSucces()
    {
    char succes;
    printf("/登录成功/\n\n");
    printf("输入'y'返回上一层目录\n");
    scanf("%c", &succes);
    if (succes == 'y') return 0;
    else
    {
    return 1;
    }
    }

    //子窗口错误显示
    int menuSubclassFail()
    {
    char fail;
    printf("/登录失败/\n\n");
    printf("'y'重新输入输入\t'n'返回上一层目录\n");
    scanf("%c", &fail);
    if (fail == 'n') return 0;
    else
    {
    return 1;
    }
    }

    //注册页面成功提示
    int userRegisterMenu()
    {
    char succes;
    printf("用户注册成功\n输入‘y’返回登录页面\n\n");
    scanf("%c", &succes);
    if (succes == 'y') return 0;
    else
    {
    return 1;
    }
    }

    int main()
    {
    system("color 8A");
    while (1)
    {
    menuShow();
    scanf("%d", &chose);
    getchar();
    userChoseFunction(chose);
    if (chose == 4) return 0;
    }
    return 0;
    }
    这是我写的,不知道哪里出问题了。明天老师要查,希望好心人看看。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月9日

悬赏问题

  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘