www.gusucode.com > VC++宾馆管理系统(Access)程序 > VC++宾馆管理系统(Access)程序\code\RegisterDlg.cpp
// RegisterDlg.cpp : implementation file // Download by http://www.NewXing.com #include "stdafx.h" #include "HotelManageSys.h" #include "RegisterDlg.h" #include "MD5.h" #include "math.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CRegisterDlg dialog extern CHotelManageSysApp theApp; CRegisterDlg::CRegisterDlg(CWnd* pParent /*=NULL*/) : CDialog(CRegisterDlg::IDD, pParent) { //{{AFX_DATA_INIT(CRegisterDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT } void CRegisterDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CRegisterDlg) DDX_Control(pDX, IDC_CHECKLookFor, m_LookFor); DDX_Control(pDX, IDC_CHECKEdit, m_Edit); DDX_Control(pDX, IDC_CHECKDel, m_Del); DDX_Control(pDX, IDC_CHECKAdd, m_Add); DDX_Control(pDX, IDC_EDITUser, m_UserName); DDX_Control(pDX, IDC_EDITPasswordC, m_PasswordC); DDX_Control(pDX, IDC_EDITPassword, m_Password); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CRegisterDlg, CDialog) //{{AFX_MSG_MAP(CRegisterDlg) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRegisterDlg message handlers void CRegisterDlg::OnOK() { // TODO: Add extra validation here //定义加密解密模块指针,并初始化 CMD5* MyMD5 = new CMD5; CString UserName,StrTemp,StrSQL,Password,PasswordC,StrLevel; UpdateData(TRUE); //获取用户输入的用户名 m_UserName.GetWindowText(StrTemp); //加密用户输入的用户名 UserName=MyMD5->MD5_Algorithm(StrTemp); //获取用户输入的密码 m_Password.GetWindowText(StrTemp); //加密用户输入的密码 Password=MyMD5->MD5_Algorithm(StrTemp); //获取用户输入的确认密码 m_PasswordC.GetWindowText(StrTemp); //加密用户输入的确认密码 PasswordC=MyMD5->MD5_Algorithm(StrTemp); //对查询字符串进行赋值 StrSQL="Select * From UserInformation Where Name = '"+UserName+" ' "; //初始化记录集 m_pRs.CreateInstance("ADODB.Recordset"); //打开记录集 //从数据库中查找输入用户名 m_pRs->Open((_variant_t)StrSQL, _variant_t((IDispatch *)theApp.m_pConnection,true), adOpenStatic, adLockOptimistic, adCmdText); //如果用户名存在,则提示“用户名存在,请重新输入用户名” if(m_pRs->GetRecordCount()!= 0) { AfxMessageBox("此用户名已存在,请重新输入用户名"); m_UserName.Clear(); m_UserName.SetFocus(); } //如果用户名不存在,判断两次输入的密码是否一致 //如果两次一致则保存注册信息,否则重新输入密码 else { if(Level()==0) { AfxMessageBox("请选择用户权限"); } else if(Password.CompareNoCase(PasswordC)==0) { m_pRs->AddNew(); m_pRs->PutCollect("Name",_variant_t(UserName)); m_pRs->PutCollect("Pwd",_variant_t(Password)); //将int型转换成CString型 StrLevel.Format("%d",Level()); m_pRs->PutCollect("Level",_variant_t(StrLevel)); m_pRs->Update(); AfxMessageBox("用户注册完毕"); //清空输入信息 m_UserName.Clear(); m_Password.Clear(); m_PasswordC.Clear(); CDialog::OnOK(); } else { AfxMessageBox("输入密码不一致请重新输入密码"); //清空输入信息 m_Password.Clear(); m_PasswordC.Clear(); //设置焦点 m_Password.SetFocus(); } } } int CRegisterDlg::Level() { //定义权限值变量 int LevelNum; //初始化LevelNum值 LevelNum=0; //如果“增加”权限被选中,LevelNum = 1 if(m_Add.GetCheck() == 1) LevelNum+=(int)pow(2,0); //如果“修改”权限被选中,LevelNum = 2 if(m_Edit.GetCheck() == 1) LevelNum+=(int)pow(2,1); //如果“删除”权限被选中,LevelNum = 4 if(m_Del.GetCheck() == 1) LevelNum+=(int)pow(2,2); //如果“打印”权限被选中,LevelNum = 8 if(m_LookFor.GetCheck() == 1) LevelNum+=(int)pow(2,3); return LevelNum; } BOOL CRegisterDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_Add.SetCheck(1); m_Del.SetCheck(1); m_Edit.SetCheck(1); m_LookFor.SetCheck(1); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }