資源簡介
~內容詳細值得借鑒和下載~設計文檔(員工信息管理系統概要設計、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的火災自動報警系統設計
- 下一篇:小樣本下的衛星圖像典型目標識別_測試集
評論
共有 條評論