设计目标:设计一个工资管理系统,用C语言实现。对该系统的要求如下:
一、需求描述:
系统角色:员工、财务人员、系统管理员。其功能分别描述如下:
1.员工
员工能够使用本系统实现个人信息录入、工资查询、个人信息修改功能。
1)个人信息录入
(1)身份证号
(2)姓名
(3)性别
(4)部门
2)工资查询
(1)月薪
(2)年新
(3)月平均收入
3)个人信息修改功能
(1)身份证号
(2)姓名
(3)性别
2.财务人员
财务人员对本单位的人员工资进行增加、删除、修改等。具体包括:
1)员工工资录入
2)员工工资修改
3)员工工资统计
4)员工信息打印
3、系统管理员
能够添加、删除和修改系统用户,设置用户权限。包括:
1)添加新用户
2)删除用户
3)修改用户权限
#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;
}
这是我写的,不知道哪里出问题了。明天老师要查,希望好心人看看。