⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lc_bcb_31.txt

📁 c++ builder 的一些txt文档
💻 TXT
字号:

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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -