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

📄 myschoolclassnumber.cpp

📁 一个学生考试成绩管理的半成品
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// MySchoolClassNumber.cpp : 实现文件
//

#include "stdafx.h"
#include "ScoreGather.h"
#include "MySchoolClassNumber.h"
#include ".\myschoolclassnumber.h"


// CMySchoolClassNumber 对话框

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

CMySchoolClassNumber::~CMySchoolClassNumber()
{
}

void CMySchoolClassNumber::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_GRADELIST, m_gradelist);
	DDX_Control(pDX, IDC_CLASSSPIN, m_classspin);
	DDX_Control(pDX, IDC_SPIN1, m_spin);
	DDX_Control(pDX, IDC_ADD, m_add);
	DDX_Control(pDX, IDC_MODIFY, m_modify);
	DDX_Control(pDX, IDC_DEL, m_del);
}


BEGIN_MESSAGE_MAP(CMySchoolClassNumber, CDialog)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnNMClickList1)
	ON_EN_SETFOCUS(IDC_CLASSSPIN, OnEnSetfocusClassspin)
	ON_WM_VSCROLL()
	ON_BN_CLICKED(IDC_ADD, OnBnClickedAdd)
	ON_BN_CLICKED(IDC_MODIFY, OnBnClickedModify)
	ON_BN_CLICKED(IDC_DEL, OnBnClickedDel)
	ON_WM_ERASEBKGND()
	ON_WM_CTLCOLOR()
END_MESSAGE_MAP()


// CMySchoolClassNumber 消息处理程序

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

	m_tooltip.Create(this,TTS_ALWAYSTIP);
	m_tooltip.Activate(TRUE);
	m_tooltip.AddTool(GetDlgItem(IDC_YEAR),IDS_YEAR);
	m_tooltip.AddTool(GetDlgItem(IDC_PLACENAME),IDS_PLACENAME);
	m_tooltip.AddTool(GetDlgItem(IDC_SCHOOLNAME),IDS_SCHOOLNAME);
	m_tooltip.AddTool(GetDlgItem(IDC_ADD),IDS_ADD);
	m_tooltip.AddTool(GetDlgItem(IDC_MODIFY),IDS_MODIFY);
	m_tooltip.AddTool(GetDlgItem(IDC_DEL),IDS_DEL);
	m_tooltip.AddTool(GetDlgItem(IDC_LIST1),IDS_SCN_LIST1);
	m_tooltip.AddTool(GetDlgItem(IDC_GRADELIST),IDS_GRADELIST);
	m_tooltip.AddTool(GetDlgItem(IDC_CLASSSPIN),IDS_CLASSSPIN);
	m_tooltip.AddTool(GetDlgItem(IDC_SPIN1),IDS_SPIN1);
	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,130);
	m_list1.InsertColumn(2,"学      校",LVCFMT_LEFT,114);
	m_list1.InsertColumn(3,"班    级",LVCFMT_LEFT,100);
	cwnd_year=GetDlgItem(IDC_YEAR);
	cwnd_placename=GetDlgItem(IDC_PLACENAME);
	cwnd_schoolname=GetDlgItem(IDC_SCHOOLNAME);
	cwnd_gradelist=GetDlgItem(IDC_GRADELIST);
	cwnd_classspin=GetDlgItem(IDC_LIST1);
	m_gradelist.AddString("一年级");
	m_gradelist.AddString("二年级");
	m_gradelist.AddString("三年级");
	m_gradelist.AddString("四年级");
	m_gradelist.AddString("五年级");
	m_gradelist.AddString("六年级");
	m_gradelist.AddString("七年级");
	m_gradelist.AddString("八年级");
	m_gradelist.AddString("九年级");
	m_spin.SetBase(1);
	m_spin.SetRange(1,100);
	m_spin.SetBuddy(GetDlgItem(IDC_CLASSSPIN));

	return TRUE;
}

void CMySchoolClassNumber::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)));
		SetDlgItemText(IDC_PLACENAME,m_list1.GetItemText(row,1));
		SetDlgItemText(IDC_SCHOOLNAME,m_list1.GetItemText(row,2));
		m_gradelist.SetCurSel(m_gradelist.FindString(0,m_list1.GetItemText(row,3).Left(2)+_T("年级")));
		int number=0;
		int row1=m_list1.GetItemCount();
		for(int n=0;n<row1;n++)
		{
			CString str1,str2,str3,str4;
			m_year.GetLBText(m_year.GetCurSel(),str1);
			GetDlgItemText(IDC_PLACENAME,str2);
			GetDlgItemText(IDC_SCHOOLNAME,str3);
			m_gradelist.GetLBText(m_gradelist.GetCurSel(),str4);
			if(m_list1.GetItemText(n,0)+m_list1.GetItemText(n,1)+m_list1.GetItemText(n,2)+m_list1.GetItemText(n,3).Left(2)==str1+str2+str3+str4.Left(2))
				number++;
		}
		SetDlgItemInt(IDC_CLASSSPIN,number,1);
	}
	else
	{
		m_year.SetCurSel(-1);
		SetDlgItemText(IDC_PLACENAME,_T(""));
		SetDlgItemText(IDC_SCHOOLNAME,_T(""));
		m_gradelist.SetCurSel(-1);
		SetDlgItemText(IDC_CLASSSPIN,_T(""));
		m_spin.SetPos(1);
	}
	*pResult = 0;
}

void CMySchoolClassNumber::OnEnSetfocusClassspin()
{
	GotoDlgCtrl(cwnd_classspin);
}

void CMySchoolClassNumber::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
	if( pScrollBar->GetDlgCtrlID() == IDC_SPIN1 )
	{
		SetDlgItemInt(IDC_CLASSSPIN,nPos,1);
		CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
	}
	else	
		CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}

void CMySchoolClassNumber::OnBnClickedAdd()
{
	CString str1,str2,str3,str4,str5,str_class;
	int number=1;
	if(m_year.GetCurSel()<0)
	{
		AfxMessageBox("必须选择学年度!");
		GotoDlgCtrl(cwnd_year);
		return;
	}
	else
		m_year.GetLBText(m_year.GetCurSel(),str1);
	GetDlgItemText(IDC_PLACENAME,str2);
	if(str2.IsEmpty())
	{
		AfxMessageBox("必须填写乡镇!");
		GotoDlgCtrl(cwnd_placename);
		return;
	}
	GetDlgItemText(IDC_SCHOOLNAME,str3);
	if(str3.IsEmpty())
	{
		AfxMessageBox("必须填写学校!");
		GotoDlgCtrl(cwnd_schoolname);
		return;
	}
	if(m_gradelist.GetCurSel()<0)
	{
		AfxMessageBox("必须选择年级!");
		GotoDlgCtrl(cwnd_gradelist);
		return;
	}
	else
		m_gradelist.GetLBText(m_gradelist.GetCurSel(),str4);
	GetDlgItemText(IDC_CLASSSPIN,str5);
	if(atol(str5)>1)
		number=atol(str5);
	CString strSQL;
	strSQL="select * from schoolnumber";
	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);
	}
	for(int n=1;n<=number;n++)
	{
		int row=m_list1.GetItemCount();
		str5.Format("%d",n);
		str_class=str4.Left(2)+"("+str5+")班";//构造班级字符串
		for(int m=0;m<row;m++)
			if(str1+str2+str3+str_class==m_list1.GetItemText(m,0)+m_list1.GetItemText(m,1)+m_list1.GetItemText(m,2)+m_list1.GetItemText(m,3))
			{
				AfxMessageBox("信息不能重复!");
				return;
			}
		m_list1.InsertItem(row,str1);
		m_list1.SetItemText(row,1,str2);
		m_list1.SetItemText(row,2,str3);
		m_list1.SetItemText(row,3,str_class);
		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_gradeclassname",_variant_t(m_list1.GetItemText(row,3)));
		m_pRecordset->Update();
	}
	m_pRecordset->Close();
	m_pRecordset=NULL;
	GotoDlgCtrl(cwnd_gradelist);
}

void CMySchoolClassNumber::OnBnClickedModify()
{
	POSITION pos=m_list1.GetFirstSelectedItemPosition();
	int row;
	if(pos)
		row=m_list1.GetNextSelectedItem(pos);
	else
	{
		AfxMessageBox("请单击要修改的内容!");
		return;
	}
	CString str1,str2,str3,str4,str5,str_class;
	int number=1;
	if(m_year.GetCurSel()<0)
	{
		AfxMessageBox("必须选择学年度!");
		GotoDlgCtrl(cwnd_year);
		return;
	}
	else
		m_year.GetLBText(m_year.GetCurSel(),str1);
	if(str1!=m_list1.GetItemText(row,0))
	{
		AfxMessageBox("[学年度]内容不能修改,如要修改,请在“学年度及学科设置”表中修改!");
		GotoDlgCtrl(cwnd_year);
		return;
	}
	GetDlgItemText(IDC_PLACENAME,str2);
	if(str2.IsEmpty())
	{
		AfxMessageBox("必须填写乡镇!");
		GotoDlgCtrl(cwnd_placename);
		return;
	}
	GetDlgItemText(IDC_SCHOOLNAME,str3);
	if(str3.IsEmpty())
	{
		AfxMessageBox("必须填写学校!");
		GotoDlgCtrl(cwnd_schoolname);

⌨️ 快捷键说明

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