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

📄 mycourseteacher.cpp

📁 一个学生考试成绩管理的半成品
💻 CPP
字号:
// MyCourseTeacher.cpp : 实现文件
//

#include "stdafx.h"
#include "ScoreGather.h"
#include "MyCourseTeacher.h"
#include ".\mycourseteacher.h"


// CMyCourseTeacher 对话框

IMPLEMENT_DYNAMIC(CMyCourseTeacher, CDialog)
CMyCourseTeacher::CMyCourseTeacher(CWnd* pParent /*=NULL*/)
	: CDialog(CMyCourseTeacher::IDD, pParent)
{
}

CMyCourseTeacher::~CMyCourseTeacher()
{
}

void CMyCourseTeacher::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST1, m_list1);
	DDX_Control(pDX, IDC_YEAR, m_year);
	DDX_Control(pDX, IDC_PLACENAME, m_placename);
	DDX_Control(pDX, IDC_SCHOOLNAME, m_schoolname);
	DDX_Control(pDX, IDC_COURSENAME, m_coursename);
	DDX_Control(pDX, IDC_GRADELIST, m_gradelist);
	DDX_Control(pDX, IDC_TEACHERNAME, m_teachername);
	DDX_Control(pDX, IDC_ADD, m_add);
	DDX_Control(pDX, IDC_MODIFY, m_modify);
	DDX_Control(pDX, IDC_DEL, m_del);
}


BEGIN_MESSAGE_MAP(CMyCourseTeacher, CDialog)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnNMClickList1)
	ON_BN_CLICKED(IDC_ADD, OnBnClickedAdd)
	ON_BN_CLICKED(IDC_MODIFY, OnBnClickedModify)
	ON_BN_CLICKED(IDC_DEL, OnBnClickedDel)
	ON_WM_ERASEBKGND()
	ON_WM_CTLCOLOR()
	ON_CBN_SELCHANGE(IDC_YEAR, OnCbnSelchangeYear)
	ON_CBN_SELCHANGE(IDC_PLACENAME, OnCbnSelchangePlacename)
	ON_CBN_SELCHANGE(IDC_SCHOOLNAME, OnCbnSelchangeSchoolname)
	ON_CBN_SELCHANGE(IDC_GRADELIST, OnCbnSelchangeGradelist)
	ON_CBN_SELCHANGE(IDC_COURSENAME, OnCbnSelchangeCoursename)
END_MESSAGE_MAP()


// CMyCourseTeacher 消息处理程序

BOOL CMyCourseTeacher::OnInitDialog()
{
	CDialog::OnInitDialog();

	m_tooltip.Create(this,TTS_ALWAYSTIP);
	m_tooltip.Activate(TRUE);
	m_tooltip.AddTool(GetDlgItem(IDC_LIST1),IDS_MCT_LIST1);
	m_tooltip.AddTool(GetDlgItem(IDC_YEAR),IDS_YEAR);
	m_tooltip.AddTool(GetDlgItem(IDC_PLACENAME),IDS_MCT_PLACENAME);
	m_tooltip.AddTool(GetDlgItem(IDC_SCHOOLNAME),IDS_SCN_SCHOOLNAME);
	m_tooltip.AddTool(GetDlgItem(IDC_COURSENAME),IDS_COURSE);
	m_tooltip.AddTool(GetDlgItem(IDC_GRADELIST),IDS_CLASS);
	m_tooltip.AddTool(GetDlgItem(IDC_TEACHERNAME),IDS_TEACHERNAME);
	m_tooltip.AddTool(GetDlgItem(IDC_ADD),IDS_ADD);
	m_tooltip.AddTool(GetDlgItem(IDC_MODIFY),IDS_MODIFY);
	m_tooltip.AddTool(GetDlgItem(IDC_DEL),IDS_DEL);
	wnd_year=GetDlgItem(IDC_YEAR);
	wnd_placename=GetDlgItem(IDC_PLACENAME);
	wnd_schoolname=GetDlgItem(IDC_SCHOOLNAME);
	wnd_coursename=GetDlgItem(IDC_COURSENAME);
	wnd_gradelist=GetDlgItem(IDC_GRADELIST);
	wnd_teachername=GetDlgItem(IDC_TEACHERNAME);
	DWORD style;
	style=m_list1.GetExStyle();  //获取样式
	style=(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)&(~LVS_EX_CHECKBOXES) ; //设置样式
	m_list1.SetExtendedStyle(style); //应用样式
	m_list1.InsertColumn(0,"学   年   度",LVCFMT_LEFT,200);
	m_list1.InsertColumn(1,"乡      镇",LVCFMT_LEFT,150);
	m_list1.InsertColumn(2,"学      校",LVCFMT_LEFT,140);
	m_list1.InsertColumn(3,"班    级",LVCFMT_LEFT,100);
	m_list1.InsertColumn(4,"学    科",LVCFMT_LEFT,100);
	m_list1.InsertColumn(5,"任课教师",LVCFMT_LEFT,120);

	return TRUE;
}

void CMyCourseTeacher::OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult)
{
	POSITION pos=m_list1.GetFirstSelectedItemPosition();
	int row;
	if(pos)
	{
		row=m_list1.GetNextSelectedItem(pos);
		m_year.SetCurSel(m_year.FindString(0,m_list1.GetItemText(row,0)));
		OnCbnSelchangeYear();
		m_placename.SetCurSel(m_placename.FindString(0,m_list1.GetItemText(row,1)));
		OnCbnSelchangePlacename();
		m_schoolname.SetCurSel(m_schoolname.FindString(0,m_list1.GetItemText(row,2)));
		OnCbnSelchangeSchoolname();
		m_gradelist.SetCurSel(m_gradelist.FindString(0,m_list1.GetItemText(row,3)));
		m_coursename.SetCurSel(m_coursename.FindString(0,m_list1.GetItemText(row,4)));
		SetDlgItemText(IDC_TEACHERNAME,m_list1.GetItemText(row,5));
	}
	else
	{
		m_year.SetCurSel(-1);
		m_placename.SetCurSel(-1);
		m_schoolname.SetCurSel(-1);
		m_gradelist.SetCurSel(-1);
		m_coursename.SetCurSel(-1);
		SetDlgItemText(IDC_TEACHERNAME,_T(""));
	}
	*pResult = 0;
}

void CMyCourseTeacher::OnCbnSelchangeYear()
{
	if(m_year.GetCurSel()>=0)
	{
		CString str;
		m_year.GetLBText(m_year.GetCurSel(),str);
		m_placename.ResetContent();
		m_schoolname.ResetContent();
		m_gradelist.ResetContent();
		m_coursename.ResetContent();
		SetDlgItemText(IDC_TEACHERNAME,_T(""));
		CString strSQL;
		strSQL="select * from schoolnumber";
		strSQL=strSQL+" where my_year='";
		strSQL=strSQL+str+"'";
		HRESULT hTRes;
		hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));				
		hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(strSQL.GetLength()),
			((CScoreGatherApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
			adOpenDynamic,adLockPessimistic,adCmdText); //执行查询,打开记录集]
		while(!(m_pRecordset->adoEOF))
		{
			CString string;
			string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_placename"));
			if(m_placename.FindString(0,string)==-1)
				m_placename.AddString(string);
			if(!(m_pRecordset->adoEOF))
				m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
		m_pRecordset=NULL;
		strSQL="select * from yearcourse";
		strSQL=strSQL+" where my_year='";
		strSQL=strSQL+str+"'";
		hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));				
		hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(strSQL.GetLength()),
			((CScoreGatherApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
			adOpenDynamic,adLockPessimistic,adCmdText); //执行查询,打开记录集]
		while(!(m_pRecordset->adoEOF))
		{
			CString string;
			string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_coursename"));
			if(m_coursename.FindString(0,string)==-1)
				m_coursename.AddString(string);
			if(!(m_pRecordset->adoEOF))
				m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
		m_pRecordset=NULL;
	}
}

void CMyCourseTeacher::OnCbnSelchangePlacename()
{
	if(m_year.GetCurSel()>=0 && m_placename.GetCurSel()>=0)
	{
		CString str,str1;
		m_year.GetLBText(m_year.GetCurSel(),str);
		m_placename.GetLBText(m_placename.GetCurSel(),str1);
		m_schoolname.ResetContent();
		m_gradelist.ResetContent();
		SetDlgItemText(IDC_TEACHERNAME,_T(""));
		CString strSQL;
		strSQL="select * from schoolnumber";
		strSQL=strSQL+" where my_year='";
		strSQL=strSQL+str+"'";
		strSQL=strSQL+" AND my_placename='";
		strSQL=strSQL+str1+"'";
		HRESULT hTRes;
		hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));				
		hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(strSQL.GetLength()),
			((CScoreGatherApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
			adOpenDynamic,adLockPessimistic,adCmdText); //执行查询,打开记录集]
		while(!(m_pRecordset->adoEOF))
		{
			CString string;
			string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_schoolname"));
			if(m_schoolname.FindString(0,string)==-1)
				m_schoolname.AddString(string);
			if(!(m_pRecordset->adoEOF))
				m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
		m_pRecordset=NULL;
	}
}

void CMyCourseTeacher::OnCbnSelchangeSchoolname()
{
	if(m_year.GetCurSel()>=0 && m_placename.GetCurSel()>=0 && m_schoolname.GetCurSel()>=0)
	{
		CString str,str1,str2;
		m_year.GetLBText(m_year.GetCurSel(),str);
		m_placename.GetLBText(m_placename.GetCurSel(),str1);
		m_schoolname.GetLBText(m_schoolname.GetCurSel(),str2);
		m_gradelist.ResetContent();
		SetDlgItemText(IDC_TEACHERNAME,_T(""));
		CString strSQL;
		strSQL="select * from schoolnumber";
		strSQL=strSQL+" where my_year='";
		strSQL=strSQL+str+"'";
		strSQL=strSQL+" AND my_placename='";
		strSQL=strSQL+str1+"'";
		strSQL=strSQL+" AND my_schoolname='";
		strSQL=strSQL+str2+"'";
		HRESULT hTRes;
		hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));				
		hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(strSQL.GetLength()),
			((CScoreGatherApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
			adOpenDynamic,adLockPessimistic,adCmdText); //执行查询,打开记录集
		while(!(m_pRecordset->adoEOF))
		{
			CString string;
			string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_gradeclassname"));
			if(m_gradelist.FindString(0,string)==-1)
				m_gradelist.AddString(string);
			if(!(m_pRecordset->adoEOF))
				m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
		m_pRecordset=NULL;
	}
}

void CMyCourseTeacher::OnCbnSelchangeGradelist()
{
	if(m_year.GetCurSel()>=0 && m_placename.GetCurSel()>=0 && m_schoolname.GetCurSel()>=0 && m_gradelist.GetCurSel()>=0)
		SetDlgItemText(IDC_TEACHERNAME,_T(""));
}

void CMyCourseTeacher::OnCbnSelchangeCoursename()
{
	if(m_year.GetCurSel()>=0 && m_placename.GetCurSel()>=0 && m_schoolname.GetCurSel()>=0 && m_gradelist.GetCurSel()>=0 && m_coursename.GetCurSel()>=0)
		SetDlgItemText(IDC_TEACHERNAME,_T(""));
}

void CMyCourseTeacher::OnBnClickedAdd()
{
	CString str1,str2,str3,str4,str5,str6;
	if(m_year.GetCurSel()<0)
	{
		AfxMessageBox("必须选择学年度!");
		GotoDlgCtrl(wnd_year);
		return;
	}
	else
		m_year.GetLBText(m_year.GetCurSel(),str1);
	if(m_placename.GetCurSel()<0)
	{
		AfxMessageBox("必须选择乡镇!");
		GotoDlgCtrl(wnd_placename);
		return;
	}
	else
		m_placename.GetLBText(m_placename.GetCurSel(),str2);
	if(m_schoolname.GetCurSel()<0)
	{
		AfxMessageBox("必须选择学校!");
		GotoDlgCtrl(wnd_schoolname);
		return;
	}
	else
		m_schoolname.GetLBText(m_schoolname.GetCurSel(),str3);
	if(m_gradelist.GetCurSel()<0)
	{
		AfxMessageBox("必须选择班级!");
		GotoDlgCtrl(wnd_gradelist);
		return;
	}
	else
		m_gradelist.GetLBText(m_gradelist.GetCurSel(),str4);
	if(m_coursename.GetCurSel()<0)
	{
		AfxMessageBox("必须选择学科!");
		GotoDlgCtrl(wnd_coursename);
		return;
	}
	else
		m_coursename.GetLBText(m_coursename.GetCurSel(),str5);
	GetDlgItemText(IDC_TEACHERNAME,str6);
	if(str6.IsEmpty())
	{
		AfxMessageBox("必须填写授课教师!");
		GotoDlgCtrl(wnd_teachername);
		return;
	}
	int row=m_list1.GetItemCount();
	for(int i=0;i<=row;i++)
	{
		if(m_list1.GetItemText(i,0)+m_list1.GetItemText(i,1)+m_list1.GetItemText(i,2)+m_list1.GetItemText(i,3)+m_list1.GetItemText(i,4)+m_list1.GetItemText(i,5)==str1+str2+str3+str4+str5+str6)
		{
			AfxMessageBox("数据不能重复!");
			return;
		}
	}
	m_list1.InsertItem(row,str1);
	m_list1.SetItemText(row,1,str2);
	m_list1.SetItemText(row,2,str3);
	m_list1.SetItemText(row,3,str4);
	m_list1.SetItemText(row,4,str5);
	m_list1.SetItemText(row,5,str6);
	CString strSQL="select * from courseteacher";
	HRESULT hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
	if (SUCCEEDED(hTRes))
	{
		hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
			((CScoreGatherApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
			adOpenDynamic,adLockPessimistic,adCmdText);
		m_pRecordset->AddNew();
		m_pRecordset->PutCollect("my_year",_variant_t(m_list1.GetItemText(row,0)));
		m_pRecordset->PutCollect("my_placename",_variant_t(m_list1.GetItemText(row,1)));
		m_pRecordset->PutCollect("my_schoolname",_variant_t(m_list1.GetItemText(row,2)));
		m_pRecordset->PutCollect("my_classname",_variant_t(m_list1.GetItemText(row,3)));
		m_pRecordset->PutCollect("my_coursename",_variant_t(m_list1.GetItemText(row,4)));
		m_pRecordset->PutCollect("my_teachername",_variant_t(m_list1.GetItemText(row,5)));
		m_pRecordset->Update();
		GotoDlgCtrl(wnd_gradelist);
	}
	m_pRecordset->Close();
	m_pRecordset=NULL;
}

void CMyCourseTeacher::OnBnClickedModify()
{
	// TODO: 在此添加控件通知处理程序代码
}

void CMyCourseTeacher::OnBnClickedDel()
{
	// TODO: 在此添加控件通知处理程序代码
}

void CMyCourseTeacher::UpDateView(void)
{
	m_year.ResetContent();
	m_placename.ResetContent();
	m_schoolname.ResetContent();
	m_gradelist.ResetContent();
	m_coursename.ResetContent();
	SetDlgItemText(IDC_TEACHERNAME,_T(""));
	CString strSQL;
	strSQL="select * from yearcourse";
	HRESULT hTRes;
	hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
	if (SUCCEEDED(hTRes))
	{
		hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
			((CScoreGatherApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
			adOpenDynamic,adLockPessimistic,adCmdText);
		while(!(m_pRecordset->adoEOF))
		{
			CString str=p_MySetClass->GetString(m_pRecordset->GetCollect("my_year"));
			if(m_year.FindString(0,str)==-1)
				m_year.AddString(str);
			if(!(m_pRecordset->adoEOF))
				m_pRecordset->MoveNext();
		}
	}
	m_pRecordset->Close();
	m_pRecordset=NULL;
	strSQL="select * from courseteacher";
	hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
	if (SUCCEEDED(hTRes))
	{
		hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
			((CScoreGatherApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
			adOpenDynamic,adLockPessimistic,adCmdText);
		int r=0;
		m_list1.DeleteAllItems();
		while(!(m_pRecordset->adoEOF))
		{
			m_list1.InsertItem(r,NULL);
			m_list1.SetItemText(r,0,p_MySetClass->GetString(m_pRecordset->GetCollect("my_year")));
			m_list1.SetItemText(r,1,p_MySetClass->GetString(m_pRecordset->GetCollect("my_placename")));
			m_list1.SetItemText(r,2,p_MySetClass->GetString(m_pRecordset->GetCollect("my_schoolname")));
			m_list1.SetItemText(r,3,p_MySetClass->GetString(m_pRecordset->GetCollect("my_classname")));
			m_list1.SetItemText(r,4,p_MySetClass->GetString(m_pRecordset->GetCollect("my_coursename")));
			m_list1.SetItemText(r,5,p_MySetClass->GetString(m_pRecordset->GetCollect("my_teachername")));
			if(!(m_pRecordset->adoEOF))
				m_pRecordset->MoveNext();
			r++;
		}
	}
	m_pRecordset->Close();
	m_pRecordset=NULL;
}

BOOL CMyCourseTeacher::PreTranslateMessage(MSG* pMsg)
{
	m_tooltip.RelayEvent(pMsg);
	return CDialog::PreTranslateMessage(pMsg);
}

void CMyCourseTeacher::OnOK()
{
}

void CMyCourseTeacher::OnCancel()
{
}

BOOL CMyCourseTeacher::OnEraseBkgnd(CDC* pDC)
{
	CBrush brush(RGB(250,220,250));
	CBrush* pOldBrush=pDC->SelectObject(&brush);
	CRect rcClip;
	pDC->GetClipBox(&rcClip);
	pDC->PatBlt(rcClip.left,rcClip.top,rcClip.Width(),rcClip.Height(),PATCOPY);
	pDC->SelectObject(pOldBrush);
	return TRUE;
}

HBRUSH CMyCourseTeacher::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	if(nCtlColor!=CTLCOLOR_EDIT)
	{
		pDC->SetTextColor(RGB(40,20,255));
		pDC->SetBkMode(TRANSPARENT);
		HBRUSH B = CreateSolidBrush(RGB(250,220,250));
		return (HBRUSH) B;
	}
	else
		return CDialog::OnCtlColor(pDC, pWnd, nCtlColor); 
}

⌨️ 快捷键说明

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