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

📄 score.cpp

📁 教学管理系统
💻 CPP
字号:
// Score.cpp : implementation file
//

#include "stdafx.h"
#include "COdbc.h"
#include "Score.h"
#include <afxdb.h>
#include "RecordScoreView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CScore dialog


CScore::CScore(CWnd* pParent /*=NULL*/)
	: CDialog(CScore::IDD, pParent)
{
	//{{AFX_DATA_INIT(CScore)
	m_sID = _T("");
	m_cName = _T("");
	m_cScorefrom = _T("");
	m_cScoreto = _T("");
	m_class = _T("");
	m_cID = _T("");
	m_cScore = _T("");
	m_check = -1;
	m_sName = _T("");
	m_result = _T("");
	//}}AFX_DATA_INIT
}


void CScore::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CScore)
	DDX_Control(pDX, IDC_STUDENT_INFO, m_sList);
	DDX_Text(pDX, IDC_STUDENT_ID, m_sID);
	DDX_Text(pDX, IDC_COURSE_NAME, m_cName);
	DDX_Text(pDX, IDC_SCORE_FROM, m_cScorefrom);
	DDX_Text(pDX, IDC_SCORE_TO, m_cScoreto);
	DDX_Text(pDX, IDC_CLASS, m_class);
	DDX_Text(pDX, IDC_COURSE_ID, m_cID);
	DDX_Text(pDX, IDC_SCORE_FEN, m_cScore);
	DDX_Radio(pDX, IDC_RADIO3, m_check);
	DDX_Text(pDX, IDC_STUDENT_NAME, m_sName);
	DDX_Text(pDX, IDC_EDIT1, m_result);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CScore, CDialog)
	//{{AFX_MSG_MAP(CScore)
	ON_BN_CLICKED(IDC_SCORE_ADD, OnScoreAdd)
	ON_BN_CLICKED(IDC_SCORE_DEL, OnScoreDel)
	ON_BN_CLICKED(IDC_SCORE_SLECET, OnScoreSlecet)
	ON_BN_CLICKED(IDC_CLEAN, OnClean)
	ON_BN_CLICKED(IDC_SCORE_CONCEL, OnScoreConcel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CScore message handlers

BOOL CScore::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	LPTSTR lpszCols[]={"学员ID","学员姓名","课程ID","课程名","成绩",NULL}; // 列标题
	int nWidth[] = {86,86,86,86,86,0}; // 列宽度
	LV_COLUMN lvcol;
	lvcol.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
	lvcol.fmt = LVCFMT_LEFT;
	for(int i=0;lpszCols[i]!=NULL;i++)
	{
		lvcol.cx = nWidth[i];
		lvcol.pszText = lpszCols[i];
		m_sList.InsertColumn(i,&lvcol);
	}

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CScore::OnScoreAdd() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);
	if(m_sID.IsEmpty()||m_cID.IsEmpty()||m_cScore.IsEmpty())
	{
		MessageBox("please input id!");
		return;
	}
	CDatabase db;
	BOOL bRtn;
	CString sql,tmp;
	try {
	bRtn = db.OpenEx("DSN=教学管理系统;UID=sa", CDatabase::noOdbcDialog);
	}catch (CDBException *pDBEx) {
	pDBEx->ReportError();
	}catch (CMemoryException *pMemEx) {
	pMemEx->ReportError();
	}
	if (!bRtn)
	printf("连接数据库失败!");
	sql = "update student_lesson set score='";
	sql +=m_cScore;
	sql +="' where student_id='";
	sql +=m_sID;
	sql +="' and lesson_id='";
	sql +=m_cID;
	sql +="'";
	try {
	db.ExecuteSQL(sql);
	} catch (CDBException *pDBEx) {
	pDBEx->ReportError();
	}
	db.Close();
}

void CScore::OnScoreDel() 
{
	// TODO: Add your control notification handler code here
	int i=0;
	int j=0;
	CDatabase db;
	BOOL bRtn;
	CString sql;
	UpdateData(true);
	sql = "";
	if(!m_sID.IsEmpty())
	{	
		sql +="Select * From VIEW1 where student_id='";
		sql +=m_sID;
		sql +="'";
		i=1;
	}
	if(!m_sName.IsEmpty())
	{		
			if(i==1)
				sql +=" and ";
			else sql +="Select * From VIEW1 where ";
			sql +="student_name='";
			sql +=m_sName;
			sql +="'";
			i=1;
			j=1;
	}
	if(!m_cID.IsEmpty())
	{	
			if(i==1)
				sql +=" and ";
			else sql +="Select * From VIEW1 where ";
			sql +="lesson_id='";
			sql +=m_cID;
			sql +="'";
			i=1;
			j=1;
	}
	if(!m_cName.IsEmpty())
	{	
			if(i==1)
				sql +=" and ";
			else sql +="Select * From VIEW1 where ";
			sql +="lesson_name='";
			sql +=m_cName;
			sql +="'";
			i=1;
			j=1;
	}
	if(m_check==0)
	{	
		if(i==1)
				sql +=" and ";
			else sql +="Select * From VIEW1 where ";
			sql +="score>='";
			sql +=m_cScorefrom;
			sql +="'and score<='";
			sql +=m_cScoreto;
			sql +="'";
			i=1;
			j=1;

	}
	if(m_check==1)
	{	
			if(i==1)
				sql +=" and ";
			else sql +="Select * From VIEW1 where ";
			sql +="score='";
			sql +=m_cScore;
			sql +="'";
			i=1;
			j=1;
	}
	if(m_check==2)
	{
			if(i==1)
				sql +=" and ";
			else sql +="Select * From VIEW1 where ";
				sql +="score>=60";
			i=1;
			j=1;
	}
	if(m_check==3)
	{
			if(i==1)
				sql +=" and ";
			else sql +="Select * From VIEW1 where ";
				sql +="score<60";
			i=1;
			j=1;

	}

	if(i==0)
	{	
		MessageBox("please input tiaojian!");
		return;
	}
	sql.TrimRight("union ");

	CRecordScoreView rs(&db);
	try {
	bRtn = rs.Open(CRecordset::snapshot,sql);
	} catch(CDBException *pDBEx) {
	pDBEx->ReportError();
	} catch(CMemoryException *pMemEx) {
	pMemEx->ReportError();
	}
	if(!bRtn) {
	AfxMessageBox("Query table failed!",MB_OK|MB_ICONERROR);
	return ;
	}
	/* 4、逐条获取查询结果*/
	int k=0;
		for(rs.MoveFirst();!rs.IsEOF();rs.MoveNext()) {
			k++;
	// TODO: Add code here
	}
	m_result.Format("%d",k);
	UpdateData(false);
	
	rs.Close();
	db.Close();
}

void CScore::OnScoreSlecet() 
{
	// TODO: Add your control notification handler code here
	int i=0;
	int j=0;
	CDatabase db;
	BOOL bRtn;
	CString sql;
	UpdateData(true);
	sql = "";
	if(!m_sID.IsEmpty())
	{	
		sql +="Select * From VIEW1 where student_id='";
		sql +=m_sID;
		sql +="'";
		i=1;
	}
	if(!m_sName.IsEmpty())
	{		
			if(i==1)
				sql +=" and ";
			else sql +="Select * From VIEW1 where ";
			sql +="student_name='";
			sql +=m_sName;
			sql +="'";
			i=1;
			j=1;
	}
	if(!m_cID.IsEmpty())
	{	
			if(i==1)
				sql +=" and ";
			else sql +="Select * From VIEW1 where ";
			sql +="lesson_id='";
			sql +=m_cID;
			sql +="'";
			i=1;
			j=1;
	}
	if(!m_cName.IsEmpty())
	{	
			if(i==1)
				sql +=" and ";
			else sql +="Select * From VIEW1 where ";
			sql +="lesson_name='";
			sql +=m_cName;
			sql +="'";
			i=1;
			j=1;
	}
	if(m_check==0)
	{	
		if(i==1)
				sql +=" and ";
			else sql +="Select * From VIEW1 where ";
			sql +="score>='";
			sql +=m_cScorefrom;
			sql +="'and score<='";
			sql +=m_cScoreto;
			sql +="'";
			i=1;
			j=1;

	}
	if(m_check==1)
	{	
			if(i==1)
				sql +=" and ";
			else sql +="Select * From VIEW1 where ";
			sql +="score='";
			sql +=m_cScore;
			sql +="'";
			i=1;
			j=1;
	}
	if(m_check==2)
	{
			if(i==1)
				sql +=" and ";
			else sql +="Select * From VIEW1 where score>=60";
			i=1;
			j=1;
	}
	if(m_check==3)
	{
			if(i==1)
				sql +=" and ";
			else sql +="Select * From VIEW1 where score<60";
			i=1;
			j=1;

	}

	if(i==0)
	{	
		MessageBox("please input tiaojian!");
		return;
	}
	sql.TrimRight("union ");

	CRecordScoreView rs(&db);
	try {
	bRtn = rs.Open(CRecordset::snapshot,sql);
	} catch(CDBException *pDBEx) {
	pDBEx->ReportError();
	} catch(CMemoryException *pMemEx) {
	pMemEx->ReportError();
	}
	if(!bRtn) {
	AfxMessageBox("Query table failed!",MB_OK|MB_ICONERROR);
	return ;
	}
	/* 4、逐条获取查询结果*/
	for(rs.MoveFirst();!rs.IsEOF();rs.MoveNext()) {
	// TODO: Add code here
	}
	/* 5、关闭记录集、数据库*/

		/* 清除列表中原有的项*/
	CString tmp;
	m_sList.DeleteAllItems();
	/* 在列表中显示纪录*/
	LVITEM item;
	int nRow=0;
	item.mask = LVIF_TEXT;
	item.state = LVIS_SELECTED;
	item.stateMask = LVIS_SELECTED;
	item.lParam = 1;
	item.iIndent = 0;
	for(rs.MoveFirst();!rs.IsEOF();rs.MoveNext(),nRow++)
	{
	
		item.iItem = nRow;
		int	iSubItem = 0;
		item.iSubItem = iSubItem++;
		item.pszText = (char*)(LPCTSTR)(rs.m_student_id);
		item.cchTextMax = strlen(item.pszText);
		m_sList.InsertItem(&item); // 第一列应用InsertItem()

		item.iSubItem = iSubItem++;
		item.pszText = (char*)(LPCTSTR)(rs.m_student_name);
		item.cchTextMax = strlen(item.pszText);
		m_sList.SetItem(&item); // 其余列用SetItem()

		item.iSubItem = iSubItem++;
		item.pszText = (char*)(LPCTSTR)(rs.m_lesson_id);
		item.cchTextMax = strlen(item.pszText);
		m_sList.SetItem(&item);

		item.iSubItem = iSubItem++;
		item.pszText = (char*)(LPCTSTR)(rs.m_lesson_name);
		item.cchTextMax = strlen(item.pszText);
		m_sList.SetItem(&item);

		item.iSubItem = iSubItem++;
		item.pszText = (char*)(LPCTSTR)(rs.m_score);
		item.cchTextMax = strlen(item.pszText);
		m_sList.SetItem(&item);		
	}
	
	rs.Close();
	db.Close();
}

void CScore::OnClean() 
{
	// TODO: Add your control notification handler code here
	
}

void CScore::OnScoreConcel() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnCancel();
}

⌨️ 快捷键说明

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