mygatherformula.cpp

来自「一个学生考试成绩管理的半成品」· C++ 代码 · 共 501 行 · 第 1/2 页

CPP
501
字号
// MyGatherFormula.cpp : 实现文件
//

#include "stdafx.h"
#include "ScoreGather.h"
#include "MyGatherFormula.h"
#include ".\mygatherformula.h"


// CMyGatherFormula 对话框

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

CMyGatherFormula::~CMyGatherFormula()
{
}

void CMyGatherFormula::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_SEGMENT, m_segment);
	DDX_Control(pDX, IDC_QUALIFIEDNUMBER, m_qualifiednumber);
	DDX_Control(pDX, IDC_GOOD, m_good);
	DDX_Control(pDX, IDC_GOODNUMBER, m_goodnumber);
	DDX_Control(pDX, IDC_LOW, m_low);
	DDX_Control(pDX, IDC_LOWNUMBER, m_lownumber);
	DDX_Control(pDX, IDC_AVERAGENUMBER, m_averagenumber);
	DDX_Control(pDX, IDC_AVERAGES, m_averages);
	DDX_Control(pDX, IDC_SET, m_set);
	DDX_Control(pDX, IDC_DATAORDER, m_dataorder);
	DDX_Control(pDX, IDC_YEAR, m_year);
	DDX_Control(pDX, IDC_DEFAUL, m_defaul);
	DDX_Control(pDX, IDC_NEWVIEW, m_newview);
	DDX_Control(pDX, IDC_DEL, m_del);
}


BEGIN_MESSAGE_MAP(CMyGatherFormula, CDialog)
	ON_BN_CLICKED(IDC_SET, OnBnClickedSet)
	ON_WM_ERASEBKGND()
	ON_WM_CTLCOLOR()
	ON_CBN_SELCHANGE(IDC_YEAR, OnCbnSelchangeYear)
	ON_BN_CLICKED(IDC_DEFAUL, OnBnClickedDefaul)
	ON_BN_CLICKED(IDC_NEWVIEW, OnBnClickedNewview)
	ON_BN_CLICKED(IDC_DEL, OnBnClickedDel)
END_MESSAGE_MAP()


// CMyGatherFormula 消息处理程序

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

	m_tooltip.Create(this,TTS_ALWAYSTIP);
	m_tooltip.Activate(TRUE);
	m_tooltip.AddTool(GetDlgItem(IDC_SEGMENT),IDS_SEGMENT);
	m_tooltip.AddTool(GetDlgItem(IDC_GOOD),IDS_GOOD);
	m_tooltip.AddTool(GetDlgItem(IDC_GOODNUMBER),IDS_AVERAGENUMBER);
	m_tooltip.AddTool(GetDlgItem(IDC_AVERAGENUMBER),IDS_AVERAGENUMBER);
	m_tooltip.AddTool(GetDlgItem(IDC_QUALIFIEDNUMBER),IDS_AVERAGENUMBER);
	m_tooltip.AddTool(GetDlgItem(IDC_LOW),IDS_LOW);
	m_tooltip.AddTool(GetDlgItem(IDC_LOWNUMBER),IDS_AVERAGENUMBER);
	m_tooltip.AddTool(GetDlgItem(IDC_AVERAGES),IDS_AVERAGES);
	m_tooltip.AddTool(GetDlgItem(IDC_DATAORDER),IDS_PREFACE);
	m_tooltip.AddTool(GetDlgItem(IDC_DEFAUL),IDS_DEFAUL);
	m_tooltip.AddTool(GetDlgItem(IDC_NEWVIEW),IDS_NEWVIEW);
	m_tooltip.AddTool(GetDlgItem(IDC_SET),IDS_SET);
	m_tooltip.AddTool(GetDlgItem(IDC_YEAR),IDS_YEAR);
	m_tooltip.AddTool(GetDlgItem(IDC_DEL),IDS_DELYEAR);
	cwnd_year=GetDlgItem(IDC_YEAR);

	for(int i=70;i<=99;i++)
	{
		CString str;
		str.Format("%d",i);
		m_good.AddString(str+"分为标准");
	}
	for(int i=59;i>=10;i--)
	{
		CString str;
		str.Format("%d",i);
		m_low.AddString(str+"分为标准");
	}
	m_segment.AddString("10分");
	m_segment.AddString("5分");
	m_segment.AddString("2分");
	m_segment.AddString("4分");
	m_segment.AddString("20分");
	m_segment.AddString("25分");
	m_segment.AddString("50分");
	m_averages.AddString("(均分+及格率)÷2");
	m_averages.AddString("(均分+及格率+低分率)÷3");

	m_qualifiednumber.AddString("实考人数");
	m_qualifiednumber.AddString("应考人数");
	m_goodnumber.AddString("实考人数");
	m_goodnumber.AddString("应考人数");
	m_lownumber.AddString("实考人数");
	m_lownumber.AddString("应考人数");
	m_averagenumber.AddString("实考人数");
	m_averagenumber.AddString("应考人数");

	return TRUE;
}

void CMyGatherFormula::OnBnClickedDefaul()
{
	if(m_year.GetCurSel()<0)
	{
		AfxMessageBox("必须选择学年度!");
		GotoDlgCtrl(cwnd_year);
		return;
	}
	else
	{
		m_good.SetCurSel(m_good.FindString(0,_T("80分为标准")));
		m_low.SetCurSel(m_low.FindString(0,_T("30分为标准")));
		m_segment.SetCurSel(0);
		m_averages.SetCurSel(0);
		m_qualifiednumber.SetCurSel(1);
		m_goodnumber.SetCurSel(1);
		m_lownumber.SetCurSel(1);
		m_averagenumber.SetCurSel(1);
		m_dataorder.SetCheck(1);
	}
}

void CMyGatherFormula::UpDateView()
{
	m_year.ResetContent();
	clsctrl();
	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 formula";
	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);
		CString string;
		while(!(m_pRecordset->adoEOF))
		{
			string.Empty();
			string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_year"));
			m_year.SetCurSel(m_year.FindString(0,string));
			int n=m_year.GetCount();
			for(int i=0;i>n;i++)
			{
				CString str;
				m_year.GetLBText(i,str);
				if(string==str)
				{
					string.Empty();
					string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_segment"));
					m_segment.SetCurSel(m_segment.FindString(0,string));
					string.Empty();
					string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_qualifiedformula"));
					m_qualifiednumber.SetCurSel(m_qualifiednumber.FindString(0,string.Right(string.GetLength()-10)));
					string.Empty();
					string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_goodformula"));
					m_good.SetCurSel(m_good.FindString(0,string.Left(10)));
					m_goodnumber.SetCurSel(m_goodnumber.FindString(0,string.Right(8)));
					string.Empty();
					string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_lowformula"));
					m_low.SetCurSel(m_low.FindString(0,string.Left(10)));
					m_lownumber.SetCurSel(m_lownumber.FindString(0,string.Right(8)));
					string.Empty();
					string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_averageformula"));
					m_averagenumber.SetCurSel(m_averagenumber.FindString(0,string));
					string.Empty();
					string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_averagesformula"));
					m_averages.SetCurSel(m_averages.FindString(0,string));
					string.Empty();
					string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_dataorder"));
					if(string==_T("是"))
						m_dataorder.SetCheck(1);
					else
						m_dataorder.SetCheck(0);
				}
				else
					clsctrl();
			}
			if(!(m_pRecordset->adoEOF))
				m_pRecordset->MoveNext();
		}
	}
}

void CMyGatherFormula::OnBnClickedSet()
{
	CString str0,str1,str2,str3,str4,str5,str6,str7,str8,str9;
	str0=str1=str2=str3=str4=str5=str6=str7=str8=str9=_T("");
	if(m_year.GetCurSel()<0)
	{
		AfxMessageBox("必须选择学年度!");
		GotoDlgCtrl(cwnd_year);
		return;
	}
	else
		m_year.GetLBText(m_year.GetCurSel(),str0);
	if(m_segment.GetCurSel()<0)
	{
		AfxMessageBox("必须选择[分数段],或单击[使用默认值]按钮自动填入默认值!");
		GotoDlgCtrl(GetDlgItem(IDC_SEGMENT));
		return;
	}
	else
		m_segment.GetLBText(m_segment.GetCurSel(),str1);
	if(m_qualifiednumber.GetCurSel()<0)
	{
		AfxMessageBox("必须选择[及格率取值],或单击[使用默认值]按钮自动填入默认值!");
		GotoDlgCtrl(GetDlgItem(IDC_QUALIFIEDNUMBER));
		return;
	}
	else
		m_qualifiednumber.GetLBText(m_qualifiednumber.GetCurSel(),str2);
	if(m_good.GetCurSel()<0)
	{
		AfxMessageBox("必须选择[红分率],或单击[使用默认值]按钮自动填入默认值!");
		GotoDlgCtrl(GetDlgItem(IDC_GOOD));
		return;
	}
	else
		m_good.GetLBText(m_good.GetCurSel(),str3);
	if(m_goodnumber.GetCurSel()<0)
	{
		AfxMessageBox("必须选择[红分率取值],或单击[使用默认值]按钮自动填入默认值!");

⌨️ 快捷键说明

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