📄 o31.htm
字号:
<html>
<head>
<title>简单的用户密码管理系统</title>
<meta http-equiv="目录类型" content="文本/html; 字符集=gb2312">
</head>
<body bgcolor="#FFFFFF">
<table width="100%" border="0" height="285">
<tr>
<td height="35">
<div align="center" class="p14"><font color="#000000">简单的用户密码管理系统</font></div>
</td>
</tr>
<tr valign="top">
<td>
<div align="left"><font color="#000000">一、功能 <br>
提供软件的一般用户管理系统</font> </div>
<p><font color="#000000">二、设计思路及程序实现 <br>
1.建立的表:以下表在建立时应该先加密码,程序打开时才由程序传递密码。以 <br>
避免直接用工具可打开DB文件。 <br>
<br>
① 用户资料表 <br>
用户ID: 用户登录时输入的用户名。
<br>
用户姓名: 用户的真实姓名。
<br>
密码:
用户密码(在存入前应该进行必要的加密) <br>
权限:
用户级别。 <br>
有效期开始:该帐号从何时开始有效(下面程序没利用该功能)
<br>
有效期截止:何时该帐号不能用。 <br>
是否有效: 可以让该用户暂时为不可用。
<br>
出错次数: 用户连续输错密码次数(当有正确输入时复位)
<br>
出错限度: 允许输错密码次数,如果超过该限度,该用户置为不可用,必须找管理员为其复位。
<br>
备注:
必要的说明。</font>
<p><font color="#000000"> ② 活动表: <br>
用户ID:
记录进入系统的用户ID. <br>
活动状态: 该用户是否是当前活动用户。(程序允许A用户进入后,不必
<br>
退出系统而让B用户进入,A用户被置为非活动用户,当B退出后A被变为活动用户,只 <br>
有第一个用户才能退出系统,同时清空活动表)</font>
<p><font color="#000000"> 2. 进入系统的验证</font>
<p><font color="#000000"> ① 供用户进入系统的密码输入窗口。</font>
<p><font color="#000000"> ② 当用户输入完成后,首先打开用户资料表,检查该用户是否存在,若不存在,清空用户输入,提示不存在该用户,让用户从新输入,用户名输入错误这里将不作次数限制。</font>
<p><font color="#000000"> ③ 若存在该用户,接着验证密码,如果正确,根据用户的使用期限,是否有效作判断,并根据结果作出是否允许用户进入系统。如果不允许,给出相应的提示后关闭系统。否则,根据用户的级别置某些功能不能使用,同时在活动表中记录该用户已进
<br>
入,并复位出错次数字段。 <br>
<br>
④ 如果存在该用户,但密码错误,用户资料表中的出错次数加一。让用户从新输入。</font>
<p><font color="#000000"> ⑤ 实现部分功能的程序 <br>
void __fastcall Tpasswdfm::Edit2KeyDown(TObject *Sender,
WORD &Key, <br>
TShiftState Shift) <br>
{ <br>
String userID; <br>
bool endflag=0; <br>
short cout=0; <br>
if(Key==VK_RETURN) <br>
{ <br>
userID=Edit1->Text; <br>
Session->AddPassword(123456);
<br>
DM1->PasDTable->Active=true;
<br>
DM1->PasDTable->FindFirst();</font>
<p><font color="#000000"> while((!DM1->PasDTable->Eof)
&& (!endflag))//找到用户 <br>
{ <br>
if(DM1->PasDTable->FieldByName("用户代码")->Value==userID)
<br>
{ endflag=1;
<br>
} <br>
else
{DM1->PasDTable->Next();} <br>
}</font>
<p><font color="#000000"> if(endflag)//找到了用户 <br>
{ <br>
if(DM1->PasDTable->FieldByName("密码")->Value==
<br>
passwdfm->Edit2->Text) <br>
{ <br>
DM1->PasDTable->Edit(); <br>
cout=0; <br>
DM1->PasDTable->FieldByName("出错次数")->Value=cout; <br>
DM1->PasDTable->Post(); <br>
if(DM1->PasDTable->FieldByName("权限")->Value>1) <br>
//根据权限设置不可用菜单 <br>
{ <br>
Main->N5->Enabled=false; <br>
} <br>
else { <br>
Main->N5->Enabled=true; <br>
} <br>
Session->RemovePassword(123456); <br>
DM1->PasDTable->Close(); <br>
passwdfm->Close();</font>
<p><font color="#000000">
Session->AddPassword(123456);// 用户使用表登记 <br>
DMPaswd->ActiveTable->Active=true; <br>
DMPaswd->ActiveTable->FindFirst(); <br>
DMPaswd->ActiveTable->Insert(); <br>
DMPaswd->ActiveTable->FieldByName <br>
("用户代码")->Value=userID; <br>
DMPaswd->ActiveTable->FieldByName("活动状态")->Value=true; <br>
DMPaswd->ActiveTable->Post(); <br>
Session->RemovePassword(123456); <br>
DMPaswd->ActiveTable->Close(); <br>
} <br>
else{MessageBox(NULL,"密码出错,累积三次将关闭系统","密码输入信息
<br>
",MB_OK); <br>
cout=DM1->PasDTable->FieldByName("出错次数")->Value; <br>
cout++; <br>
DM1->PasDTable->Edit(); <br>
DM1->PasDTable->FieldByName("出错次数")->Value=cout; <br>
DM1->PasDTable->Post();</font>
<p><font color="#000000">
if(DM1->PasDTable->FieldByName("出错次数")->Value <br>
< DM1->PasDTable->FieldByName("出错限制")->Value) <br>
{passwdfm->Edit1->Text=""; <br>
passwdfm->Edit2->Text=""; <br>
passwdfm->ActiveControl=Edit1; <br>
} <br>
else <br>
{ MessageBox(NULL,"登录失败次数超过限额,请与管理员联系", <br>
"密码输入信息",MB_OK); <br>
Application->Terminate(); <br>
} <br>
} <br>
} <br>
else//无该用户 <br>
{MessageBox(NULL,"无该用户","密码输入信息",MB_OK);
<br>
passwdfm->Edit1->Text="";
<br>
passwdfm->Edit2->Text="";
<br>
passwdfm->ActiveControl=Edit1;
<br>
} <br>
} <br>
}</font>
<p><font color="#000000">3、密码修改 <br>
一般用户只能修改自己的密码,当用户选择该功能时,提示用户输入一次旧密码,两次新密码。用户可以按清除键重新输入。当用户输入完成后,先从活动表找出
<br>
该用户ID,再按ID寻找用户资料表找到该用户,先比较旧密码,错误提示从新修改,正 <br>
确则完成修改。</font>
<p><font color="#000000">4、超级用户可以设置/修改用户资料表中的所有资料及密码初始化。</font>
<p><font color="#000000">
(zyqsj)</font>
<p> <font color="#000000"> <br>
</font>
<p> <font color="#000000"> <br>
</font>
</p>
</td>
</tr>
</table>
<br>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -