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

📄 scorequerydlg.cpp

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

#include "stdafx.h"
#include "ExmOnline.h"
#include "ScoreQueryDlg.h"

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

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

/////////////////////////////////////////////////////////////////////////////
// CScoreQueryDlg dialog


CScoreQueryDlg::CScoreQueryDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CScoreQueryDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CScoreQueryDlg)
	m_fPassRate = 0.0f;
	//}}AFX_DATA_INIT
}


void CScoreQueryDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CScoreQueryDlg)
	DDX_Control(pDX, IDC_COMBO_SUBJCT, m_ctrSubjct);
	DDX_Control(pDX, IDC_LIST_SCORE, m_ctrScoreList);
	DDX_Text(pDX, IDC_EDIT_PASSRATE, m_fPassRate);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CScoreQueryDlg, CDialog)
	//{{AFX_MSG_MAP(CScoreQueryDlg)
	ON_CBN_SELCHANGE(IDC_COMBO_SUBJCT, OnSelchangeComboSubjct)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CScoreQueryDlg message handlers

BOOL CScoreQueryDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	CExmOnlineDlg::m_ptrData->SetSelSubjct(&m_ctrSubjct);
	

	m_ctrScoreList.SetExtendedStyle(LVS_EX_FLATSB
		|LVS_EX_FULLROWSELECT
		|LVS_EX_HEADERDRAGDROP
		|LVS_EX_ONECLICKACTIVATE
		|LVS_EX_GRIDLINES);
	m_ctrScoreList.InsertColumn(0,"学号",LVCFMT_LEFT,100,0);
	m_ctrScoreList.InsertColumn(1,"姓名",LVCFMT_LEFT,70,1);
	m_ctrScoreList.InsertColumn(2,"答对数",LVCFMT_LEFT,70,2);
	m_ctrScoreList.InsertColumn(3,"总题量",LVCFMT_LEFT,70,3);
	m_ctrScoreList.InsertColumn(4,"正确率",LVCFMT_LEFT,70,4);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CScoreQueryDlg::OnSelchangeComboSubjct() 
{
	// TODO: Add your control notification handler code here
	ADOConn Adoconn;
	Adoconn.OnInitADOConn();
	
	UpdateData();
	CString sql;
	CString tempsubjct;
	CString scorebasename;
	int i=0;
	int passcnt=0;
	float tempcorrectrate;
	float passrate;
	char tempratestr[10];

	if(m_ctrSubjct.GetCurSel()!=-1)
	{
		m_ctrSubjct.GetLBText(m_ctrSubjct.GetCurSel(),tempsubjct);
		sql.Format("select * from titleamount where 科目名称='%s'",tempsubjct);
		Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
		scorebasename=(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("学生成绩库");
		sql.Format("select * from %s",scorebasename);
		Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
		while(!Adoconn.m_pRecordset->adoEOF)
		{
			m_ctrScoreList.InsertItem(i,"");
			m_ctrScoreList.SetItemText(i,0,(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("学号"));
			m_ctrScoreList.SetItemText(i,1,(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("姓名"));
			m_ctrScoreList.SetItemText(i,2,(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("答对数"));
			m_ctrScoreList.SetItemText(i,3,(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("总数"));
			m_ctrScoreList.SetItemText(i,4,(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("正确率"));
			if(atof((char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("正确率"))>=0.6)
				passcnt++;
			
			Adoconn.m_pRecordset->MoveNext();
			i++;
		}
		passrate=(passcnt/(float)i)*100;
		GetDlgItem(IDC_EDIT_PASSRATE)->SetWindowText((itoa(passrate,tempratestr,10)));
	}
	Adoconn.ExitConnect();
}

⌨️ 快捷键说明

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