资源简介
~内容详细值得借鉴和下载~设计文档(员工信息管理系统概要设计、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的火灾自动报警系统设计
- 下一篇:小样本下的卫星图像典型目标识别_测试集
相关资源
- 易语言源码易语言取千千静听服务器
- IP地址监控小工具
- memcached1.4.5源代码
- 使用IIS搭建Web服务器.docx
- 如何破解域控服务器管理员密码
- Socket5服务器源代码
- tcp协议解码及分析
- FTP服务器和客户端源代码 vs2010能运行
- _Socket_服务端向指定的客户端发送消息
- RMI 服务器与客户端源码,很简单,自
- OPC DCOM配置(不需要客户机和服务器相
- Linux下基于UDP的socket编程,适用多客户
- 新时达二代一体机服务器万能程序
- Go-tcpserver-一个Go库用于快速构建Tcp服
- Delphi实现简单TCP服务器范例源码.rar
- js读取本地图片进行预览,上传服务器
- IBM System X驱动与安装指导完全手册v
- Modbus TCP协议
- linux_sntp精确到秒级服务器
- 图解用WAS对Web服务器进行压力测试
- Qt服务器1源代码
- NC601串口服务器驱动
- FastDFS单机版图片服务器
- linux下的简单文件服务器和客户端程序
- syslog日志服务器安装及配置详解,本
- 在linux中使用tcp实现一个简单文件服务
- Dr.COM客户端破解[自动获取服务器地址
- 基于TCP的聊天室包含客户端与服务器
- 基于linux系统的ftp服务器
- Modbus Poll
评论
共有 条评论