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

📄 student.cpp

📁 以前的课程设计,觉得功能不错,界面设计的也不错
💻 CPP
字号:
// Student.cpp : Defines the class behaviors for the application.
//

#include "stdafx.h"
#include "Student.h"
#include "StudentDlg.h"
#include "CrackDlg.h"
#include "GuestSet.h"
#include "odbcinst.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CStudentApp

BEGIN_MESSAGE_MAP(CStudentApp, CWinApp)
	//{{AFX_MSG_MAP(CStudentApp)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG
	ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CStudentApp construction

CStudentApp::CStudentApp()
{
	// TODO: add construction code here,
	// Place all significant initialization in InitInstance
}

/////////////////////////////////////////////////////////////////////////////
// The one and only CStudentApp object

CStudentApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CStudentApp initialization

BOOL CStudentApp::InitInstance()
{
  AfxOleInit();
  HRESULT hr;
  try
  {
  hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
  if(SUCCEEDED(hr))
  {
  hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Student.mdb","","",adModeUnknown);///连接数据库
  ///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51;
  }
  }
  catch(_com_error e)///捕捉异常
  {
  CString errormessage;
  errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
  AfxMessageBox(errormessage);///显示错误信息
  }



	AfxEnableControlContainer();
/**************the code below this is used to connect the acess database*****************/
    CString sPath;
	GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
	sPath.ReleaseBuffer ();
	int nPos;
	nPos=sPath.ReverseFind('\\');
    sPath=sPath.Left (nPos);
	CString lpszFile = sPath + "\\Student.mdb"; 
    char* szDesc;
	int mlen;
	szDesc=new char[256];
	sprintf(szDesc,"DSN=%s? DESCRIPTION=TOC support source? DBQ=%s? FIL=MicrosoftAccess? DEFAULTDIR=%s?? ","Lulianghu_NUAA",lpszFile,sPath);
    //PWD 是密码
	mlen = strlen(szDesc);
    for (int i=0; i<mlen; i++)
	{
	if (szDesc[i] == '?')
	 szDesc[i] = '\0';
	}
	SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",(LPCSTR)szDesc);

/**************the code before this is used to connect the acess database*****************/



#ifdef _AFXDLL
	Enable3dControls();			// Call this when using MFC in a shared DLL
#else
	Enable3dControlsStatic();	// Call this when linking to MFC statically
#endif
//****************This below is used for check the use and password********************//
    CCrackDlg  m_dlg;
    CString    users;
	CString    password;
    bool Flag=TRUE;
	CGuestSet m_set;
    m_set.Open();

  
	while(Flag)
	{
	 if(m_dlg.DoModal()==IDOK)
	 {
       users=m_dlg.m_guest;
	   m_set.MoveFirst();
       while(!m_set.IsEOF())
	   {
		   if(m_set.m_guest==users)
		   {
			   password=m_set.m_password;
		       break;
		   }
		   m_set.MoveNext();

	   }
	   if(password==m_dlg.m_password)
	   { 
		   Flag=FALSE;
		   break;
	   }
	   else
       {
           AfxMessageBox("密码错误,请您重新输入!");
	   }
	 }
     else  // is used to  exit the programm
		 return FALSE;
	}
	m_set.Close();
	m_dlg.DestroyWindow();
//****************This before is used for check the use and password********************//

/*********************the  code below is used for picture show*/


SetDialogBkColor(RGB(255,255,255),RGB(0,0,255));
	CStudentDlg dlg;
	m_pMainWnd = &dlg;
	int nResponse = dlg.DoModal();
	if (nResponse == IDOK)
	{
		// TODO: Place code here to handle when the dialog is
		//  dismissed with OK
	}
	else if (nResponse == IDCANCEL)
	{
		// TODO: Place code here to handle when the dialog is
		//  dismissed with Cancel
	}

	// Since the dialog has been closed, return FALSE so that we exit the
	//  application, rather than start the application's message pump.
	return FALSE;
}

int CStudentApp::ExitInstance() 
{
	// TODO: Add your specialized code here and/or call the base class
		if(m_pConnection->State)
	m_pConnection->Close(); 
	return CWinApp::ExitInstance();
}

⌨️ 快捷键说明

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