📄 user.cpp
字号:
// User.cpp: implementation of the CUser class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "database.h"
#include "User.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CUser::CUser()
{
successful = false;
}
CUser::~CUser()
{
}
bool CUser::CheckUser(CString user, CString pwd)
{
ifstream fread;
fread.open("user.dat", ios::in);
struct USER us;
memset(&us, 0, sizeof(USER));
while(fread.read((char*)&us, sizeof(USER)))
{
if((user == us.name) && (pwd == us.pwd))
{
successful = true;
right = us.right;
break;
}
fread.read((char*)&us, 1);//滤去回车
}
fread.close();
return successful;
}
void CUser::addUser(CString name, CString pwd, int right)
{
fstream f;
f.open("user.dat", ios::app | ios::in | ios::out);
f.seekp(0, ios::end);
struct USER us;
memset(&us, 0, sizeof USER);
strcpy(us.name, name.GetBuffer(name.GetLength()));
strcpy(us.pwd, pwd.GetBuffer(pwd.GetLength()));
us.right = right;
f.write((char*)&us, sizeof(struct USER));
f<<endl;
f.close();
}
void CUser::SetUser(CString strName, CString strPwd)
{
name = strName;
pwd = strPwd;
ifstream fread;
fread.open("user.dat", ios::in);
struct USER us;
memset(&us, 0, sizeof(USER));
while(fread.read((char*)&us, sizeof(USER)))
{
if((name == us.name) && (pwd == us.pwd))
{
right = us.right;
break;
}
fread.read((char*)&us, 1);//滤去回车
}
fread.close();
}
//改变指定用户strName权限
//flag = 1 增加新权限
//flag = 0 减少权限
void CUser::ChangeRight(CString strName, int changeRight, int flag)
{
fstream f;
f.open("user.dat", ios::in | ios::out);
struct USER us;
memset(&us, 0, sizeof(struct USER));
while(f.read((char*)&us, sizeof(struct USER)))
{
if((us.name == strName))
break;
f.read((char*)&us, 1);
}
if(f.eof())
{
AfxMessageBox("error");
return;
}
else
{
if(flag == 1)
{
us.right |= changeRight;
}
else if(flag == 0)
{
us.right &= ~changeRight;
}
else
{
AfxMessageBox("error in user.cpp");
return ;
}
f.seekp(-(signed(sizeof(struct USER))), ios::cur);
f.write((char*)&us, sizeof(struct USER));
}
f.close();
}
CUser* CUser::GetCurrentUser()
{
this->SetUser(name, pwd);
return this;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -