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

📄 project.cpp

📁 赛克思书店销售管理系统.可用于二次开发,以C++与sql 写.
💻 CPP
字号:
// Project.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "Project.h"
#include "SkinMagicLib.h"

#include "MainFrm.h"
#include "ProjectDoc.h"
#include "ProjectView.h"

#include "SellBook.h"
#include "Login.h"
#include "BuyBook.h"
#include "RegVip.h"
#include "Search.h"
#include "EmpDlg.h"
#include "ModifyPsw.h"
#include "Information.h"
#include "ChartTab.h"
#include "HyperLink.h"
#include "ManVip.h"

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

BEGIN_MESSAGE_MAP(CProjectApp, CWinApp)
//{{AFX_MSG_MAP(CProjectApp)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
ON_COMMAND(IDM_SYS_SELL, OnSysSell)
ON_COMMAND(IDM_SYS_BUY, OnSysBuy)
ON_COMMAND(IDM_SYS_REGVIP, OnSysRegvip)
ON_COMMAND(IDM_TOOL_CAL, OnToolCal)
ON_COMMAND(IDM_TOOL_TXT, OnToolTxt)
ON_COMMAND(IDM_TOOL_TASKMAN, OnToolTaskman)
ON_COMMAND(IDM_FIND, OnFind)
ON_COMMAND(IDM_MAN_EMP, OnManEmp)
ON_COMMAND(IDM_MAN_PASSWD, OnManPasswd)
ON_COMMAND(IDM_MAIN_CE, OnMainCe)
ON_COMMAND(IDM_MAIN_CV, OnMainCv)
ON_COMMAND(IDM_MAIN_CSB, OnMainCsb)
ON_COMMAND(IDM_MAN_CBD, OnManCbd)
ON_COMMAND(IDM_MAN_BOOK, OnManBook)
ON_COMMAND(IDM_CHART, OnChart)
ON_COMMAND(IDM_HELP_ZHUTI, OnHelpZhuti)
	ON_COMMAND(IDM_SYS_LOGOUT, OnSysLogout)
	ON_COMMAND(IDM_MAN_VIP, OnManVip)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CProjectApp construction

CProjectApp::CProjectApp()
{
	CHECK = FALSE;
}

CProjectApp::~CProjectApp()
{
	if(CHECK == TRUE)          //如果数据库打开,则关闭
	{
		pConn->Close();
		pConn.Release();
	}
	::CoUninitialize();
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CProjectApp object

CProjectApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CProjectApp initialization

BOOL CProjectApp::InitInstance()
{
	AfxEnableControlContainer();
	//打开连接	
	if(FAILED(::CoInitialize(NULL)))
	{
		::MessageBox(NULL,"COM Init error","Error",MB_OK);
		exit(-1);
	}
	
	//登陆	
loop:
	CLogin login;
	if(login.DoModal() == IDOK)
	{
		if(login.m_Logincom == "")
		{
			AfxMessageBox("用户不可为空!");
			goto loop;
		}
		if(login.m_LoginPSW == "")
		{
			AfxMessageBox("密码不可为空!");
			goto loop;
		}
		User = login.m_Logincom;
		CString connectstr;
		connectstr.Format("Provider = \'%s\';Data Source = \'%s\';User Id = \'%s\'; Password = \'%s\'",login.m_Dbms,login.m_SetDatabase,login.m_SetUser,login.m_SetPsw);
		_bstr_t conn = connectstr;
		try
		{
			pConn.CreateInstance(__uuidof(Connection));
			pConn->ConnectionString = conn;
			pConn->Open("","","",-1);
		}
		catch(_com_error& ex)
		{
			AfxMessageBox(ex.Description());
			
			login.m_SetDatabase = _T("angel");
			login.m_SetUser = _T("shop");
			login.m_SetPsw = _T("shop");
			login.m_CheckSet = FALSE;
			
			goto loop;
		}	
		try
		{
			CString sql_;			//在密码表中查找,如果找到则成功登陆。
			sql_.Format("SELECT NAME FROM PASSWORD WHERE NAME=\'%s\' AND PSW=\'%s\'",
				login.m_Logincom, login.m_LoginPSW);
			_bstr_t sql = sql_;
			_RecordsetPtr pRst;
			pRst = pConn->Execute(sql, NULL, adCmdText);
			if (pRst->End)
			{
				AfxMessageBox("登陆失败!");
				pConn->Close();
				pConn.Release();
				CHECK = FALSE;
				login.m_Logincom.Empty();
				login.m_LoginPSW.Empty();
				goto loop;
			}
			CHECK = TRUE;
			pRst->Close();
			pRst.Release();
		} 
		catch(_com_error& e)
		{
			AfxMessageBox(e.ErrorMessage());
		}
		///////////////
#ifdef _AFXDLL
		Enable3dControls();			// Call this when using MFC in a shared DLL
#else
		Enable3dControlsStatic();	// Call this when linking to MFC statically
#endif
		
		SetRegistryKey(_T("Local AppWizard-Generated Applications"));
		
		LoadStdProfileSettings(0);  // Load standard INI file options (including MRU)
		
		CSingleDocTemplate* pDocTemplate;
		pDocTemplate = new CSingleDocTemplate(
			IDR_MAINFRAME,
			RUNTIME_CLASS(CProjectDoc),
			RUNTIME_CLASS(CMainFrame),       // main SDI frame window
			RUNTIME_CLASS(CProjectView));
		AddDocTemplate(pDocTemplate);
	
		CCommandLineInfo cmdInfo;
		ParseCommandLine(cmdInfo);
		
		if (!ProcessShellCommand(cmdInfo))
			return FALSE;
		
		VERIFY( 1 == InitSkinMagicLib( AfxGetInstanceHandle(), "Demo" , 
			NULL,
			NULL ) );
		
		VERIFY( 1 == LoadSkinFromResource( AfxGetInstanceHandle()  , "DEVIOR" ,"SKINMAGIC") ); 
		
		VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , "MainFrame" ));
		VERIFY( 1 == SetDialogSkin( "Dialog" ) );
		((CMainFrame*)m_pMainWnd)->m_bSkinned = TRUE;
		((CMainFrame*)m_pMainWnd)->m_nIndex = 0;
		
		m_pMainWnd->SetWindowText(_T("书店销售管理系统"));
		m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
		m_pMainWnd->UpdateWindow();
	}
	return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();
	virtual BOOL OnInitDialog();
	// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	CHyperLink m_Mail;
	//}}AFX_DATA
	
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL
	
	// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	// No message handlers
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	DDX_Control(pDX, IDC_MAIL, m_Mail);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

BOOL CAboutDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	
	m_Mail.SetURL(_T("mailto:wentao_gao@yahoo.com.cn"));
	
	return TRUE;
}

// App command to run the dialog
void CProjectApp::OnAppAbout()
{
	CAboutDlg aboutDlg;
	aboutDlg.DoModal();
}
/////////////////////////////////////////////////////////////////////////////
// CProjectApp message handlers
void CProjectApp::OnSysSell() 
{
	CSellDlg sellbook;
	sellbook.pConn = pConn;
	sellbook.DoModal();
}

void CProjectApp::OnSysBuy() 
{
	CBuyDlg buybook;
	buybook.pConn = pConn;
	buybook.User = User;
	buybook.DoModal();
}

void CProjectApp::OnSysRegvip() 
{
	CRegVipDlg regvip;
	regvip.pConn = pConn;
	regvip.DoModal();
}

void CProjectApp::OnFind() 
{
	CSearchDlg search;
	search.pConn = pConn;
	search.DoModal();
}

void CProjectApp::OnManVip() 
{
	CManVip manvip;
	manvip.pConn = pConn;
	manvip.DoModal();
}

void CProjectApp::OnManEmp() 
{
	CEmpDlg empdlg;
	empdlg.pConn = pConn;
	empdlg.DoModal();
}

void CProjectApp::OnManPasswd() 
{
	CModifyPsw modifypsw;
	modifypsw.pConn = pConn;
	modifypsw.User = User;
	modifypsw.DoModal();
}

void CProjectApp::OnManBook() 
{
	CInforDlg infor;
	infor.pConn =pConn;
	infor.DoModal();
}

void CProjectApp::OnChart() 
{
	CChartTab ChartTab;
	ChartTab.pConn = pConn;
	ChartTab.DoModal();
}

void CProjectApp::OnToolCal() 
{
	CString str = "C:\\WINDOWS.0\\System32\\calc.exe";
	::ShellExecute(NULL,"open",str,NULL,NULL,SW_SHOWNORMAL);	
}

void CProjectApp::OnToolTxt() 
{
	CString str = "C:\\WINDOWS.0\\System32\\notepad.exe";
	::ShellExecute(NULL,"open",str,NULL,NULL,SW_SHOWNORMAL);
}

void CProjectApp::OnToolTaskman() 
{
	CString str = "C:\\WINDOWS.0\\System32\\taskmgr.exe";
	::ShellExecute(NULL,"open",str,NULL,NULL,SW_SHOWNORMAL);
}

void CProjectApp::OnMainCe()			//清空员工信息
{
	CString _sql;
	_sql = "truncate table EMP";
	_bstr_t sql;
	sql =_sql;
	try
	{
		if(AfxMessageBox("此操作无法恢复,确认清空员工信息吗?",MB_YESNO|MB_DEFBUTTON2) == IDOK)
		{
			pConn->Execute(sql,NULL,adCmdText);
			AfxMessageBox("员工信息已清除");
		}
	}
	catch(_com_error& e)
	{
		AfxMessageBox(e.Description());
	}
}

void CProjectApp::OnMainCv()					//清空会员信息
{
	CString _sql;
	_sql = "truncate table VIP";
	_bstr_t sql;
	sql =_sql;
	try
	{
		if(AfxMessageBox("此操作无法恢复,确认清空会员信息吗?",MB_YESNO|MB_DEFBUTTON2) == IDOK)
		{
			pConn->Execute(sql,NULL,adCmdText);
			AfxMessageBox("会员信息已清除");
		}
	}
	catch(_com_error& e)
	{
		AfxMessageBox(e.Description());
	}
}

void CProjectApp::OnMainCsb()					//清空库存信息
{
	CString _sql;
	_sql = "truncate table STOCK";
	_bstr_t sql;
	sql =_sql;
	try
	{
		if(AfxMessageBox("此操作无法恢复,确认清空库存信息吗?",MB_YESNO|MB_DEFBUTTON2) == IDOK)
		{
			pConn->Execute(sql,NULL,adCmdText);
			AfxMessageBox("会员信息已清除");
		}
	}
	catch(_com_error& e)
	{
		AfxMessageBox(e.Description());
	}
}

void CProjectApp::OnManCbd()						//清空进货信息
{
	CString _sql;
	_sql = "truncate table BUY";
	_bstr_t sql;
	sql =_sql;
	try
	{
		if(AfxMessageBox("此操作无法恢复,确认清空进货信息吗?",MB_YESNO|MB_DEFBUTTON2) == IDOK)
		{
			pConn->Execute(sql,NULL,adCmdText);
			AfxMessageBox("会员信息已清除");
		}
	}
	catch(_com_error& e)
	{
		AfxMessageBox(e.Description());
	}	
}

void CProjectApp::OnHelpZhuti()						//打开帮助文件
{
	TCHAR szPath[100];
	::GetCurrentDirectory (sizeof (szPath) / sizeof (TCHAR), szPath);
	CString strPath = szPath;
	strPath += "\\主题帮助.chm";
	::ShellExecute(NULL,"open",strPath,NULL,NULL,SW_SHOWMAXIMIZED);
}

void CProjectApp::OnSysLogout() 
{
loop:
	CLogin login;
	if(login.DoModal() == IDOK)
	{
		User = login.m_Logincom;
		CString connectstr;
		connectstr.Format("Provider = \'%s\';Data Source = \'%s\';User Id = \'%s\'; Password = \'%s\'",login.m_Dbms,login.m_SetDatabase,login.m_SetUser,login.m_SetPsw);
		_bstr_t conn = connectstr;
		try
		{
			pConn.CreateInstance(__uuidof(Connection));
			pConn->ConnectionString = conn;
			pConn->Open("","","",-1);
		}
		catch(_com_error& ex)
		{
			AfxMessageBox(ex.Description());
			
			login.m_SetDatabase = _T("angel");
			login.m_SetUser = _T("shop");
			login.m_SetPsw = _T("shop");
			login.m_CheckSet = FALSE;
			
			goto loop;
		}	
		try
		{
			CString sql_;			//在密码表中查找,如果找到则成功登陆。
			sql_.Format("SELECT NAME FROM PASSWORD WHERE NAME=\'%s\' AND PSW=\'%s\'",
				login.m_Logincom, login.m_LoginPSW);
			_bstr_t sql = sql_;
			_RecordsetPtr pRst;
			pRst = pConn->Execute(sql, NULL, adCmdText);
			if (pRst->End)
			{
				AfxMessageBox("登陆失败!");
				pConn->Close();
				pConn.Release();
				CHECK = FALSE;
				login.m_Logincom.Empty();
				login.m_LoginPSW.Empty();
				goto loop;
			}
			CHECK = TRUE;
			pRst->Close();
			pRst.Release();
		} 
		catch(_com_error& e)
		{
			AfxMessageBox(e.ErrorMessage());
		}
	}
}


⌨️ 快捷键说明

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