员工管理系统(C 语言)——客户端解析

源码下载地址:https://download.csdn.net/download/wenfei11471/10477504
客户端功能:
1、运行时先测试是否能连通服务器(不畅通如下图所示):
2、登录时需要正确输入账号和密码(如下图所示):

3、成功登录后,具有下图所示功能:
4、查询功能如下:
5、修改的具体功能如下:
6、修改的具体操作如下:
7、查历史记录功能如下:

客户端逻辑函数详解:
1、main 函数:
1] 与服务器建立连接,通过函数 net_init 产生连接套接字 connfd;
2] 通过函数 name_fun 获取用户名,函数 password_fun 获取密码;
3] 请求服务器验证是否登录成功;
4] 登录成功,进入登录处理函数 login_handle_fun 进行相关操作;
5] 登录不成功,根据服务器返回信息判断已有用户登录还是账号密码错误;
6] 登录不成功会提示继续登录还是退出客户端。
2、login_handle_fun 函数:
1] 参数:PRO * command (传输内容的结构体指针),int connfd (连接套接字)
2] 返回值:无
3] 功能:
1) 利用函数 read_file 函数显示客户端用户的功能主界面;
2) 获取并判断用户的需求;
3) 请求服务器验证是否登录成功;
4) 查看个人信息利用函数 show_info_fun 操作;
5) 修改个人信息利用函数 modify_info_fun 操作;
6) 查看历史记录利用函数 show_hist_fun 操作;
7) 退出登录步骤:先向服务器发送退出信号,然后进入登录用户界面;
8) 退出客户端:先向服务器发送退出信号,然后结束进程;
9) 非命令输入,提示输入错误,重新选择。
3、show_info_fun 函数:
1] 参数:PRO * command (传输内容的结构体指针),int connfd (连接套接字)
2] 返回值:无
3] 功能:
1) 封装查看个人信息协议 LOG_SER_INFO 并发送服务器;
2) 接收服务器数据并打印信息(用户已登录必有信息);
3) 工资打印方式可修改为只保留 2 位有效数字。
4、show_hist_fun 函数:
1] 参数:PRO * command (传输内容的结构体指针),int connfd (连接套接字)
2] 返回值:无
3] 功能:
1) 封装查看个人信息协议 LOG_SER_HIST 并发送服务器;
2) 接收服务器数据并打印信息(用户已登录必有信息);
3) 打印历史记录必须事先知道历史记录数据库的 Column 数目。
5、modify_info_fun 函数:
1] 参数:PRO * command (传输内容的结构体指针),int connfd (连接套接字)
2] 返回值:无
3] 功能:
1) 利用函数 read_file 函数显示用户可修改的选项;
2) 获取并判断用户的需求;
3) 修改登录密码利用函数 modify_pswd_fun 操作;
4) 修改联系方式利用函数 modify_tele_fun 操作;
5) 修改 E_mail 利用函数 modify_mail_fun 操作;
6) 修改家庭住址利用函数 modify_addr_fun 操作;
7) 非命令输入,提示输入错误,重新选择;
8) 客户端用户不具备修改职位和工资权限。
6、modify_pswd_fun 函数:
1] 参数:PRO * command (传输内容的结构体指针),int connfd (连接套接字)
2] 返回值:无
3] 功能:
1) 封装查看个人信息协议 LOG_MOD_PSWD;
2) 利用函数 password_fun 获取合法的密码发送服务器;
3) 接收服务器数据并打印登录密码是否修改成功。
7、modify_tele_fun 函数:
1] 参数:PRO * command (传输内容的结构体指针),int connfd (连接套接字)
2] 返回值:无
3] 功能:
1) 封装查看个人信息协议 LOG_MOD_TELE 并发送服务器;
2) 接收服务器数据并打印联系方式是否修改成功;
3) 手机号码为 1 开头的 11 位数,需要判断;
4) scanf 赋值会留下 \n 在缓存区,需要用 getchar() 清除;
5) 本项目中使用的是 double 类型,最佳数据类型为 long long int 类型。
8、modify_mail_fun 函数:
1] 参数:PRO * command (传输内容的结构体指针),int connfd (连接套接字)
2] 返回值:无
3] 功能:
1) 封装查看个人信息协议 LOG_MOD_MAIL 并发送服务器;
2) 接收服务器数据并打印 E_mail 是否修改成功。
9、modify_addr_fun 函数:
1] 参数:PRO * command (传输内容的结构体指针),int connfd (连接套接字)
2] 返回值:无
3] 功能:
1) 封装查看个人信息协议 LOG_MOD_ADDR 并发送服务器;
2) 接收服务器数据并打印家庭住址是否修改成功。

客户端功能函数详解:
1、illegal_string_fun 函数:
1] 参数:char *str 字符串
2] 返回值:int 类型
3] 功能:
1) 检查字符串中除了大小写字母和数字外是否含有其他字符;
2) 如果字符串中全是大小写字母或数字则返回 0,否则返回 1。
2、name_fun 函数:
1] 参数:char *str 字符串
2] 返回值:无
3] 功能:
1) 从输入端获取用户名;
2) 判断用户名是否为 0;
3) 判断用户名不能超过 19 个字符;
4) 利用 illegal_string_fun 判断是否有非法字符;
5) 用户名符合要求后将其赋值到 username 中;
6) 不能用 username = name,那样在函数结束后 name 会被释放;
7) 可以使用 strcpy 和 strcat 两个函数。
3、password_fun 函数:
1] 参数:char *str 字符串
2] 返回值:无
3] 功能:
1) 从输入端获取密码;
2) 判断密码不能少于 4 个字符;
3) 判断密码不能大于 19 个字符;
4) 利用 illegal_string_fun 判断是否有非法字符;
5) 密码符合要求后将其赋值到 usrpsw 中;
6) 不能用 usrpsw = psw,那样在函数结束后 psw 会被释放;
7) 可以使用 strcpy 和 strcat 两个函数。
4、net_init 函数:
1] 参数:无
2] 返回值:int connfd
3] 功能:
1) 客户端与服务器建立连接并返回连接套接字 connfd。
5、failed 函数:
1] 参数:int ret,char *message
2] 返回值:无
3] 功能:
1) 基本错误检查,出错会打印错误信息。
6、read_file 函数:
1] 参数:const char *file 文件路径
2] 返回值:无
3] 功能:
1) 按照路径打开文件;
2) 读取文件;
3) 输出到标准输出;
4) 关闭文件。

客户端头文件详解:
1、mydef.h 头文件:
1] 定义客户端的所有请求指令
2] 服务器的所有回复指令
3] 各类可能使用到的路径名
4] 各类常用的字符串汇总
5] 类型常量值定义
2、myfunction.h 头文件:
1] 对客户端所有使用到的函数进行申明
3、myinclude.h 头文件:
1] 定义函数中所有要使用到的头文件
4、mystruct.h 头文件:
1] 定义传输协议和数据类型

客户端目录介绍:
1、app 目录: 存放 Makefile 后产生的可执行文件
2、function 目录: 存放客户端功能函数
3、include 目录: 存放客户端相关的头文件
4、main 目录: 存放客户端主函数
5、obj 目录: 存放 Makefile 后产生的目标文件
6、step 目录: 存放客户端逻辑函数
7、text 目录: 存放客户端可能使用到的文档,如界面文档

猜你喜欢

转载自blog.csdn.net/wenfei11471/article/details/80687677
今日推荐