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

📄 addsubjectdlg.cpp

📁 一个在线考试系统的代码。功能包括考试科目管理
💻 CPP
字号:
// AddSubjectDlg.cpp : implementation file
//

#include "stdafx.h"
#include "ExmOnline.h"
#include "AddSubjectDlg.h"

#include "ADOConn.h"
#include "ExmOnlineDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CAddSubjectDlg dialog


CAddSubjectDlg::CAddSubjectDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CAddSubjectDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAddSubjectDlg)
	m_strDbName = _T("");
	m_iSubjctID = 0;
	m_strSubjctName = _T("");
	//}}AFX_DATA_INIT
}


void CAddSubjectDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAddSubjectDlg)
	DDX_Text(pDX, IDC_EDIT_DBNAME, m_strDbName);
	DDX_Text(pDX, IDC_EDIT_SUBJCTID, m_iSubjctID);
	DDX_Text(pDX, IDC_EDIT_SUBJCTNAME, m_strSubjctName);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAddSubjectDlg, CDialog)
	//{{AFX_MSG_MAP(CAddSubjectDlg)
	ON_BN_CLICKED(IDC_BUTTON_OK, OnButtonOk)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAddSubjectDlg message handlers

void CAddSubjectDlg::OnButtonOk() 
{
	// TODO: Add your control notification handler code here
	UpdateData();

	CString selbasename="sel"+m_strDbName;
	CString blkbasename="blk"+m_strDbName;
	CString jdgbasename="judge"+m_strDbName;
	CString resultbasename="result"+m_strDbName;
	CString scorebasename="score"+m_strDbName;

	ADOConn Adoconn;
	Adoconn.OnInitADOConn();
	
	CString sql;
	sql.Format("select * from titleamount where 科目ID=%d or 科目名称='%s' or 库名='%s'",
		m_iSubjctID,m_strSubjctName,m_strDbName);

	Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
	if(Adoconn.m_pRecordset->adoEOF)
	{
		sql.Format("insert into titleamount values(%d,'%s','%s',%d,%d,%d,'%s','%s','%s','%s','%s',%d,%d)",
			m_iSubjctID,m_strSubjctName,m_strDbName,0,0,0,selbasename,
			blkbasename,jdgbasename,resultbasename,scorebasename,50,3600);
		Adoconn.ExecuteSQL((_bstr_t)sql);
		sql.Format("insert into subject values(%d,'%s')",m_iSubjctID,m_strSubjctName);
		Adoconn.ExecuteSQL((_bstr_t)sql);
		sql.Format("create table %s(试题ID int primary key clustered,题目 varchar(200) not null,选项1 varchar(200) not null,选项2 varchar(200) not null,选项3 varchar(200),选项4 varchar(200),答案 varchar(200) not null)",
			selbasename);
		Adoconn.ExecuteSQL((_bstr_t)sql);
		sql.Format("create table %s(试题ID int primary key clustered,题目 varchar(200) not null,答案 varchar(200) not null)",
			blkbasename);
		Adoconn.ExecuteSQL((_bstr_t)sql);
		sql.Format("create table %s(试题ID int primary key clustered,题目 varchar(200) not null,答案 varchar(10) not null)",
			jdgbasename);
		Adoconn.ExecuteSQL((_bstr_t)sql);
		sql.Format("create table %s(学号 int primary key clustered,姓名 varchar(20) not null,题型 int not null,题目ID int not null,题目 varchar(200) not null,标准答案 varchar(200) not null,学生答案 varchar(200) not null,是否正确 bit not null)",
			resultbasename);
		Adoconn.ExecuteSQL((_bstr_t)sql);
		sql.Format("create table %s(学号 int primary key clustered,姓名 varchar(20) not null,答对数 int not null,总数 int not null,正确率 real not null)",
			scorebasename);
		Adoconn.ExecuteSQL((_bstr_t)sql);
	}
	else
		AfxMessageBox("数据库中存在重名!请检查当前科目是否添加过,以及当前库名是否使用过!");

	Adoconn.ExitConnect();
	CDialog::OnOK();
}

BOOL CAddSubjectDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	GetDlgItem(IDC_EDIT_SUBJCTID)->SetWindowText("");	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

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