资源简介
~内容详细值得借鉴和下载~设计文档(员工信息管理系统概要设计、pthread多线程并发)和可使用的完整程序源码。实现的功能:当用户登录后,根据用户名判断用户是否为管理员。如果为管理员,则进入管理员目录,如果为普通员工,则进入员工目录。在管理员目录,可以查看任意员工的信息,还可修改员工的信息,包括工资、评级,添加或删除用户。在员工目录,可以查看自己的信息,不能查看其他人的信息,可以修改自己的电话,地址等个人信息,但不能修改工资等管理员权限信息。

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include “client.h“
int main(int argc const char *argv[])
{
int sockfd;
struct sockaddr_in serveraddr;
MSG msg;
if((sockfd = socket(AF_INET SOCK_STREAM 0)) < 0)
{
perror(“socket“);
exit(1);
}
bzero(&serveraddr sizeof(serveraddr));
serveraddr.sin_family = AF_INET;
serveraddr.sin_port = htons(atoi(argv[2]));
serveraddr.sin_addr.s_addr = inet_addr(argv[1]);
if(connect(sockfd (struct sockaddr*)&serveraddr sizeof(serveraddr)) < 0)
{
perror(“connect“);
exit(1);
}
while(1)
{
puts(“------------------------------------“);
puts(“----------Login ^_^ ^_^-------------“);
puts(“------------------------------------“);
/*
* 输入登录信息
*/
printf(“please input your name >“);
fgets(msg.name N stdin);
msg.name[strlen(msg.name) - 1] = ‘\0‘;
printf(“please input your password >“);
fgets(msg.passwd N stdin);
msg.passwd[strlen(msg.passwd) - 1] = ‘\0‘;
msg.type = LOAD;
send(sockfd &msg sizeof(MSG) 0);//发送消息给服务器,进行登录验证。
printf(“---load type %d\n“ msg.type);
recv(sockfd &msg sizeof(MSG) 0);//接收服务器的反馈消息。
if(msg.sign == FAILED)//登录失败
{
printf(“%s\n“ msg.data);
continue;
}
if(msg.sign == SUCCESS)//登录成功
{
if(msg.info.type == STAFF)
{
goto User;//进入普通用户界面
}
else if(msg.info.type == ADM)
{
goto Admin;// 进入管理员界面
}
}
}
/*普通用户界面*/
User:
while(1)
{
/*普通用户权限*/
puts(“----------------------------------------------------“);
puts(“-------1: select info 2:modify passwd 3:exit --------“);
puts(“-----------------------------------------------------“);
printf(“please input you command >“);
/*
*输入命令错误处理
*/
int command;
char clear[N];
if(scanf(“%d“&command) == 0)
{
fgets(clear N stdin);
continue;
}
switch(command)
{
case 1:
msg.type = READ;
strcpy(msg.info.name msg.name);
msg.info.no = 0;
send(sockfd &msg sizeof(MSG) 0);//发送查询消息
recv(sockfd &msg sizeof(MSG) 0);//接收服务器的反馈消息
printf(“ ---------recv sign %d\n“ msg.sign);
/*打印用户自身信息*/
printf(“姓名 地址 年龄 级别\n“);
printf(“%s %s %d %d \n“msg.info.name msg.info.addr msg.info.age msg.info.level);
printf(“编号 工资 电话 用户类型\n“);
printf(“%d %lf %s %d \n“msg.info.no msg.info.salary msg.info.phone msg.info.type);
break;
case 2:
getchar();
printf(“please input your new password >“);
getchar();
fgets(msg.passwd N stdin);
msg.passwd[strlen(msg.passwd) - 1] = ‘\0‘;
msg.type = CHANGE;
send(sockfd &msg sizeof(MSG) 0);//发送修改密码的消息
break;
case 3:
msg.type = QUIT;
send(sockfd &msg sizeof(MSG) 0);
goto Exit;//退出程序
}
}
/*管理员界面*/
Admin:
while(1)
{
/*管理员的权限*/
puts(“--------------------------------------------------------------------“);
puts(“-----1:add user 2:delete user 3:modify inf
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-11-02 09:31 员工管理系统项目\
目录 0 2017-11-01 14:41 员工管理系统项目\client\
目录 0 2017-11-01 14:41 员工管理系统项目\client\.svn\
文件 370 2014-06-20 15:42 员工管理系统项目\client\.svn\all-wcprops
文件 638 2014-06-20 15:42 员工管理系统项目\client\.svn\entries
目录 0 2017-11-01 14:41 员工管理系统项目\client\.svn\prop-ba
文件 53 2014-06-20 15:42 员工管理系统项目\client\.svn\prop-ba
目录 0 2016-07-06 14:02 员工管理系统项目\client\.svn\props\
目录 0 2017-11-01 14:41 员工管理系统项目\client\.svn\text-ba
文件 9698 2014-06-20 15:42 员工管理系统项目\client\.svn\text-ba
文件 1134 2014-06-20 11:22 员工管理系统项目\client\.svn\text-ba
文件 16119 2014-06-20 15:42 员工管理系统项目\client\.svn\text-ba
目录 0 2017-11-01 14:41 员工管理系统项目\client\.svn\tmp\
目录 0 2016-07-06 14:02 员工管理系统项目\client\.svn\tmp\prop-ba
目录 0 2016-07-06 14:02 员工管理系统项目\client\.svn\tmp\props\
目录 0 2016-07-06 14:02 员工管理系统项目\client\.svn\tmp\text-ba
文件 16119 2014-06-20 15:42 员工管理系统项目\client\client
文件 9698 2016-06-17 09:22 员工管理系统项目\client\client.c
文件 1134 2014-06-20 10:37 员工管理系统项目\client\client.h
文件 94208 2014-06-19 21:26 员工管理系统项目\pthread多线程并发.doc
目录 0 2017-11-01 14:41 员工管理系统项目\server\
目录 0 2017-11-01 14:41 员工管理系统项目\server\.svn\
文件 468 2014-06-20 15:42 员工管理系统项目\server\.svn\all-wcprops
文件 794 2014-06-20 15:42 员工管理系统项目\server\.svn\entries
目录 0 2017-11-01 14:41 员工管理系统项目\server\.svn\prop-ba
文件 53 2014-06-20 15:42 员工管理系统项目\server\.svn\prop-ba
文件 53 2014-06-20 15:42 员工管理系统项目\server\.svn\prop-ba
目录 0 2016-07-06 14:02 员工管理系统项目\server\.svn\props\
目录 0 2017-11-01 14:41 员工管理系统项目\server\.svn\text-ba
文件 1017 2014-06-20 15:42 员工管理系统项目\server\.svn\text-ba
文件 4104 2014-06-20 15:42 员工管理系统项目\server\.svn\text-ba
............此处省略14个文件信息
- 上一篇:基于PLC的火灾自动报警系统设计
- 下一篇:小样本下的卫星图像典型目标识别_测试集
相关资源
- 虚拟光驱deamon 适用于64位服务器的
- 编写简单的RMI程序 多线程web 服务器
- IOCP 类 简单的IOCP(IO完成端口)服务
- CVI下的TCP服务器和客户端
- SOCKET 网络编程 计算机网络 作业 客户
- 用Socket写的简易FTP服务器和客户端
- vc 编写的基于TCP协议的客户/服务器
- Tomcat6.x
- 简单服务器端口监听和显示客户端发
- 基于串口设备的嵌入式Web服务器系统
- 基于SC28L198的多串口服务器设计
- 基于LW IP的嵌入式串口服务器的设计与
- 基于Linux的串口服务器设计
- 一种嵌入式串口共享服务器的设计
- 轻量级文件服务器Fdfs搭建(fastDFS+n
- 浪潮英信服务器NP120D用户手册
- 20cn的ftp服务器超好用 简洁
- 最好用的FTP服务器
- 惠普动能服务器助力MCAE解决方案
- 通过NAS与文件服务器结合构建数据容
- HP ProLiant ML115服务器产品说明书
- HP ProLiant 存储服务器满足任何规模企
- 服务器及存储设备安装记录检查表
- 64bit.server2008或win10下安装git服务器
- Sun服务器在柳州电力局的成功应用
- Sun服务器与系统在新浪网成功应用案
- 建立在Sun皓龙服务器上的为石GIS解决
- Sun服务器在江苏五星电器的应用
- Sun公司的服务器重组
- 英特尔I/O加速技术
评论
共有 条评论