员工管理系统

 1.分析流程图:

服务器:

客户端:

 

2.实现过程

本项目基于TCP通信协议,搭建服务器和客户端,使用epoll实现多客户端的连接,借助sqlite数据库存储数据,实现用户的注册登录与查找。

epoll 的使用:

有客户端连接时连接成功并加入epfd中,其他套接字通信时判断标志位,执行相应代码

通信结构体:

typedef struct staff_info

{

    int no;           // 员工编号

    char usertype[6]; // ADMIN     USER

    char name[128];   // 姓名

    int age;          // 年龄

    char phone[128];  // 电话

    char addr[512];   // 地址

    char work[256];   // 职位

    char date[128];   // 入职年月

    int level;        // 等级

    double salary;    // 工资

} staff_info_t;

// 定义双方通信的结构体信息

typedef struct

{

    int msgtype;        // 请求的消息类型

    char usertype[6];   // ADMIN 1    USER 2

    char username[128]; // 姓名

    char passwd[8];     // 登陆密码

    char recvmsg[258];  // 通信的消息

    int flags;          // 成功标志位

    staff_info_t info;  // 员工信息

} MSG;

登录

 选择登录选项之后输入用户名和密码,根据登录选项和用户名和密码,填充通信结构体,登录标志位为1,填充成功之后发送给服务器并等待回复,服务器接收到判断标志位,执行登录代码,判断user表是否存在该用户名,密码是否正确

管理员登录成功后,可以进行如图操作:

普通用户登录成功后,可以进行如图操作:

 查询

普通用户查询:

 管理员用户查询:

 

 

 修改

普通用户修改

 管理员用户修改

 

 普通用户只能修改自己的个别信息,管理员可以修改所有用户的全部信息,服务器通过通信结构体中的usertype判断用户类型,给出对应的回应

 管理员的添加和删除

 

 

 

管理员添加和删除用户时,需要判断工号,添加时工号已经存在则添加失败,删除时工号不存在则删除失败

历史记录

 

服务器要创建一个history表格存储每次操作的记录,查询时全部发送给客户端

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值