📄 addqstiondlg.cpp
字号:
// AddQstionDlg.cpp : implementation file
//
#include "stdafx.h"
#include "ExmOnline.h"
#include "AddQstionDlg.h"
#include "ExmOnlineDlg.h"
#include "ADOConn.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAddQstionDlg dialog
CAddQstionDlg::CAddQstionDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAddQstionDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CAddQstionDlg)
m_strBlkAns = _T("");
m_iSelAns = -1;
m_iJudgement = -1;
m_strAnsA = _T("");
m_strAnsB = _T("");
m_strAnsC = _T("");
m_strAnsD = _T("");
m_strQstion = _T("");
//}}AFX_DATA_INIT
}
void CAddQstionDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAddQstionDlg)
DDX_Control(pDX, IDC_COMBO_QSTIONTYPE, m_ctrQstionType);
DDX_Control(pDX, IDC_COMBO_SUBJCT, m_ctrSubjct);
DDX_Text(pDX, IDC_EDIT_BLKANS, m_strBlkAns);
DDX_Radio(pDX, IDC_RADIO_ANSA, m_iSelAns);
DDX_Radio(pDX, IDC_RADIO_JUDGEFALSE, m_iJudgement);
DDX_Text(pDX, IDC_RICHEDIT_ANSA, m_strAnsA);
DDX_Text(pDX, IDC_RICHEDIT_ANSB, m_strAnsB);
DDX_Text(pDX, IDC_RICHEDIT_ANSC, m_strAnsC);
DDX_Text(pDX, IDC_RICHEDIT_ANSD, m_strAnsD);
DDX_Text(pDX, IDC_RICHEDIT_QSTION, m_strQstion);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAddQstionDlg, CDialog)
//{{AFX_MSG_MAP(CAddQstionDlg)
ON_CBN_SELCHANGE(IDC_COMBO_QSTIONTYPE, OnSelchangeComboQstiontype)
ON_CBN_SELCHANGE(IDC_COMBO_SUBJCT, OnSelchangeComboSubjct)
ON_BN_CLICKED(IDC_BUTTON_OK, OnButtonOk)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAddQstionDlg message handlers
BOOL CAddQstionDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CExmOnlineDlg::m_ptrData->SetSelSubjct(&m_ctrSubjct);
HideAll();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CAddQstionDlg::HideAll()
{
//选择
GetDlgItem(IDC_STATIC_ANSA)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_ANSB)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_ANSC)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_ANSD)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_RICHEDIT_ANSA)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_RICHEDIT_ANSB)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_RICHEDIT_ANSC)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_RICHEDIT_ANSD)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_RADIO_ANSA)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_RADIO_ANSB)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_RADIO_ANSC)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_RADIO_ANSD)->ShowWindow(SW_HIDE);
//判断
GetDlgItem(IDC_RADIO_JUDGEFALSE)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_RADIO_JUDGETRUE)->ShowWindow(SW_HIDE);
//填空
GetDlgItem(IDC_STATIC_BLK)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_BLKANS)->ShowWindow(SW_HIDE);
}
void CAddQstionDlg::ShowBlk()
{
GetDlgItem(IDC_STATIC_BLK)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_BLKANS)->ShowWindow(SW_SHOW);
}
void CAddQstionDlg::ShowJdg()
{
GetDlgItem(IDC_RADIO_JUDGEFALSE)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_RADIO_JUDGETRUE)->ShowWindow(SW_SHOW);
}
void CAddQstionDlg::ShowSel()
{
GetDlgItem(IDC_STATIC_ANSA)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_ANSB)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_ANSC)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_ANSD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_RICHEDIT_ANSA)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_RICHEDIT_ANSB)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_RICHEDIT_ANSC)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_RICHEDIT_ANSD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_RADIO_ANSA)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_RADIO_ANSB)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_RADIO_ANSC)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_RADIO_ANSD)->ShowWindow(SW_SHOW);
}
void CAddQstionDlg::OnSelchangeComboQstiontype()
{
// TODO: Add your control notification handler code here
CString strtemp;
m_ctrQstionType.GetLBText(m_ctrQstionType.GetCurSel(),strtemp);
if(strtemp=="选择题") //选择题
{
m_eType=type_sel;
HideAll();
ShowSel();
}
else if(strtemp=="填空题") //填空题
{
m_eType=type_blk;
HideAll();
ShowBlk();
}
else if(strtemp=="判断题") //判断题
{
m_eType=type_jdg;
HideAll();
ShowJdg();
}
}
void CAddQstionDlg::OnSelchangeComboSubjct()
{
// TODO: Add your control notification handler code here
CString strtemp;
m_ctrSubjct.GetLBText(m_ctrSubjct.GetCurSel(),strtemp);
m_strSubjct=strtemp;
}
void CAddQstionDlg::OnButtonOk()
{
// TODO: Add your control notification handler code here
ADOConn Adoconn;
Adoconn.OnInitADOConn();
CString sql;
if(m_eType==type_sel)
{
//选择题
UpdateData();
if(m_iSelAns==-1)
AfxMessageBox("请给出该题的答案!");
else
{
if(m_strAnsA.IsEmpty() || m_strAnsB.IsEmpty())
AfxMessageBox("选项A和B不能为空!");
else if((m_strAnsC.IsEmpty() && m_iSelAns==2) ||
(m_strAnsD.IsEmpty() && m_iSelAns==3))
AfxMessageBox("答案设置不合理!请仔细检查!");
else
{
if(m_iSelAns==0)
m_strAns=m_strAnsA;
else if(m_iSelAns==1)
m_strAns=m_strAnsB;
else if(m_iSelAns==2)
m_strAns=m_strAnsC;
else if(m_iSelAns==3)
m_strAns=m_strAnsD;
sql.Format("select * from titleamount where 科目名称='%s'",m_strSubjct);
Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
m_strBasename=(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("选择题库名称");
int tempid=CExmOnlineDlg::m_ptrData->GetRecordNum(m_strBasename)+1;
sql.Format("insert into %s values(%d,'%s','%s','%s','%s','%s','%s')",
m_strBasename,tempid,m_strQstion,m_strAnsA,m_strAnsB,m_strAnsC,m_strAnsD,m_strAns);
Adoconn.ExecuteSQL((_bstr_t)sql);
}
}
}
else if(m_eType==type_blk)
{
//填空题
UpdateData();
if(m_strBlkAns.IsEmpty())
AfxMessageBox("请给出该题的答案!");
else
{
m_strAns=m_strBlkAns;
sql.Format("select * from titleamount where 科目名称='%s'",m_strSubjct);
Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
m_strBasename=(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("填空题库名称");
int tempid=CExmOnlineDlg::m_ptrData->GetRecordNum(m_strBasename)+1;
sql.Format("insert into %s values(%d,'%s','%s')",
m_strBasename,tempid,m_strQstion,m_strAns);
Adoconn.ExecuteSQL((_bstr_t)sql);
}
}
else if(m_eType==type_jdg)
{
//判断题
UpdateData();
if(m_iJudgement==-1)
AfxMessageBox("请给出答案!");
else
{
if(m_iJudgement==0)
m_strAns="错";
else if(m_iJudgement==1)
m_strAns="对";
sql.Format("select * from titleamount where 科目名称='%s'",m_strSubjct);
Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
m_strBasename=(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("判断题库名称");
int tempid=CExmOnlineDlg::m_ptrData->GetRecordNum(m_strBasename)+1;
sql.Format("insert into %s values(%d,'%s','%s')",
m_strBasename,tempid,m_strQstion,m_strAns);
Adoconn.ExecuteSQL((_bstr_t)sql);
}
}
ClearAll();
Adoconn.ExitConnect();
}
void CAddQstionDlg::ClearAll()
{
//题目
GetDlgItem(IDC_RICHEDIT_QSTION)->SetWindowText("");
//选择
GetDlgItem(IDC_RICHEDIT_ANSA)->SetWindowText("");
GetDlgItem(IDC_RICHEDIT_ANSB)->SetWindowText("");
GetDlgItem(IDC_RICHEDIT_ANSC)->SetWindowText("");
GetDlgItem(IDC_RICHEDIT_ANSD)->SetWindowText("");
//填空
GetDlgItem(IDC_STATIC_BLK)->SetWindowText("");
GetDlgItem(IDC_EDIT_BLKANS)->SetWindowText("");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -