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

📄 enterdialog.cpp

📁 这是目前正应用于辽宁省很多县级中学的试题库系统源代码
💻 CPP
字号:
// EnterDialog.cpp : implementation file
//

#include "stdafx.h"
#include "TestPaper.h"
#include "EnterDialog.h"
#include "MainFrm.h"
#include "TestPaperDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CEnterDialog dialog


CEnterDialog::CEnterDialog(CWnd* pParent /*=NULL*/)
	: CDialog(CEnterDialog::IDD, pParent)
{
	//{{AFX_DATA_INIT(CEnterDialog)
	m_user = _T("");
	m_password = _T("");
	//}}AFX_DATA_INIT
}


void CEnterDialog::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CEnterDialog)
	DDX_Text(pDX, IDC_EDIT1, m_user);
	DDX_Text(pDX, IDC_EDIT2, m_password);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CEnterDialog, CDialog)
	//{{AFX_MSG_MAP(CEnterDialog)
	ON_WM_SETCURSOR()
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEnterDialog message handlers

BOOL CEnterDialog::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
{
	// TODO: Add your message handler code here and/or call default
	return CDialog::OnSetCursor(pWnd, nHitTest, message);
}


void CEnterDialog::OnButton1() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnOK();
	
}

BOOL CEnterDialog::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	try
	{	
		if(!enterbase.IsOpen())
			enterbase.OpenEx("DSN=题库;UID=sa;PWD=");	
	}
    catch(...)
	{
		AfxMessageBox("cann't open database!");
		return 0;
	}
	enterrecord.m_pDatabase=&enterbase;
	((CEdit*)GetDlgItem(IDC_EDIT1))->SetLimitText(20);
    ((CEdit*)GetDlgItem(IDC_EDIT2))->SetLimitText(20);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
void CEnterDialog::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData(TRUE);
	m_user.TrimLeft();
	m_user.TrimRight();
	m_password.TrimLeft();
	m_password.TrimRight();
	try
	{
		if(enterrecord.IsOpen())
		{
			enterrecord.Close();
            enterrecord.Open(CRecordset::dynaset,"select * from 密码表");
		}
		else
		{
			enterrecord.Open(CRecordset::dynaset,"select * from 密码表");
		}
	}
	catch(...)
	{
		AfxMessageBox("cann't open table!");
		return;
	}
	if(enterrecord.GetRecordCount()==0)
	{
		if(m_user=="administrator")
		{
		     enter=TRUE;
		     booladmin=TRUE;
		     struser="administrator";
		     CDialog::OnOK();
		     return;

		}
	   if(m_user!="")
	   {
		    enter=TRUE;
		    struser=m_user;
		    CDialog::OnOK();
		    booladmin=FALSE;
		    return;
	   }
	   if(m_user=="")
	   {
		   	((CEdit*)GetDlgItem(IDC_EDIT1))->SetFocus();
		    m_password="";
		    m_user="";
		    UpdateData(FALSE);
		    AfxMessageBox("对不起,请输入用户名!");
		    return;
	   }
	}


	else
	{
		BOOL  bo1=FALSE;
		BOOL  bo2=FALSE;
		BOOL  bo3=FALSE;
		CString str3;
		CDBVariant XgVa;
		enterrecord.MoveFirst();
	    while(!enterrecord.IsEOF())
		{
			CString temp="administrator";
			int j=0;
		    enterrecord.GetFieldValue(j,XgVa);
			CString man;
			man=XgVa.m_pstring->GetBuffer(1);
			man.TrimLeft();
			man.TrimRight();

			if(temp.Compare(man)==0)
			{
				enterrecord.GetFieldValue(1,XgVa);
				CString man1;
				man1=XgVa.m_pstring->GetBuffer(1);
			    man1.TrimLeft();
		     	man1.TrimRight();
                str1=man1;
				bo1=TRUE;
			}
			if(temp.Compare(man)!=0)
			{
				CString man2;
				man2=XgVa.m_pstring->GetBuffer(1);
			    man2.TrimLeft();
			    man2.TrimRight();
				if(man2.Compare(m_user)==0)
				{
					bo2=TRUE;
				}
				enterrecord.GetFieldValue(1,XgVa);
				man2=XgVa.m_pstring->GetBuffer(1);
			    man2.TrimLeft();
			    man2.TrimRight();
				if(man2.Compare(m_password)==0)
				{
					bo3=TRUE;
				}
			}
			enterrecord.MoveNext();
		}
		if(bo1)
		{
			if(m_user=="administrator" && m_password==str1)
			{
		         enter=TRUE;
		         booladmin=TRUE;
		         struser="administrator";
		         CDialog::OnOK();
		         return;

			}
		}
		
		if(bo2 && bo3)
		{
			    enter=TRUE;
		        struser=m_user;
		        CDialog::OnOK();
		        booladmin=FALSE;
		        return;
		}
		if(!bo1)
		{

			if(m_user=="administrator")
			{
		         enter=TRUE;
		         booladmin=TRUE;
		         struser="administrator";
		         CDialog::OnOK();
		         return;

			}
		}
		    
	    ((CEdit*)GetDlgItem(IDC_EDIT1))->SetFocus();
		m_password="";
		m_user="";
		UpdateData(FALSE);
		AfxMessageBox("对不起,密码或用户名错误!");
		return;
			
		

	}
}

⌨️ 快捷键说明

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