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

📄 scoreoutput.cpp

📁 教学管理系统实现了高校教务、教学和学生三大方面的自动化以及交互式管理
💻 CPP
字号:
// ScoreOutput.cpp : implementation file
//

#include "stdafx.h"
#include "EduAdministration.h"
#include "ScoreOutput.h"

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

/////////////////////////////////////////////////////////////////////////////
// CScoreOutput dialog


CScoreOutput::CScoreOutput(CWnd* pParent /*=NULL*/)
	: CDialog(CScoreOutput::IDD, pParent)
{
	//{{AFX_DATA_INIT(CScoreOutput)
	m_edit1 = _T("");
	m_edit2 = _T("");
	m_lblInput1 = _T("");
	m_lblInput2 = _T("");
	m_lblScore = _T("");
	//}}AFX_DATA_INIT
}


void CScoreOutput::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CScoreOutput)
	DDX_Control(pDX, IDC_BTNPRE, m_btnPre);
	DDX_Control(pDX, IDC_BTNNEXT, m_btnNext);
	DDX_Control(pDX, IDC_EDIT2, m_ctlEdt2);
	DDX_Control(pDX, IDC_EDIT1, m_ctlEdt1);
	DDX_Control(pDX, IDC_LISTSCORE, m_listScore);
	DDX_Control(pDX, IDC_LISTRESULT, m_listResult);
	DDX_Control(pDX, IDC_BTNSEARCH, m_btnSearch);
	DDX_Text(pDX, IDC_EDIT1, m_edit1);
	DDX_Text(pDX, IDC_EDIT2, m_edit2);
	DDX_Text(pDX, IDC_TOINPUT1, m_lblInput1);
	DDX_Text(pDX, IDC_TOINPUT2, m_lblInput2);
	DDX_Text(pDX, IDC_LBLSCORE, m_lblScore);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CScoreOutput, CDialog)
	//{{AFX_MSG_MAP(CScoreOutput)
	ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
	ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
	ON_BN_CLICKED(IDC_BTNSEARCH, OnBtnsearch)
	ON_NOTIFY(NM_CLICK, IDC_LISTRESULT, OnClickListresult)
	ON_BN_CLICKED(IDC_BTNPRE, OnBtnpre)
	ON_BN_CLICKED(IDC_BTNNEXT, OnBtnnext)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CScoreOutput message handlers

BOOL CScoreOutput::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_btnSearch.SetIcon(IDI_ICONSEARCH);
	m_btnSearch.SetTooltipText("全部留空则显示所有");
	m_btnNext.SetIcon(IDI_ICONRIGHT);
	m_btnPre.SetIcon(IDI_ICONLEFT);
	m_btnNext.SetTooltipText("下一个学生");
	m_btnPre.SetTooltipText("上一个学生");
	m_lblInput1 = "查询条件1";
	m_lblInput2 = "查询条件2";
	m_edit1="请选择查询条件";
	m_edit2="请选择查询条件";
	m_lblScore = "成绩列表";
	m_ctlEdt1.SetReadOnly();
	m_ctlEdt2.SetReadOnly();
	UpdateData(false);

	m_bByStu = false;
	m_bBySpe = false;

	m_listResult.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_listResult.InsertColumn(0,"学号",LVCFMT_LEFT,80);
	m_listResult.InsertColumn(1,"姓名",LVCFMT_LEFT,80);
	m_listResult.InsertColumn(2,"学院",LVCFMT_LEFT,80);
	m_listResult.InsertColumn(3,"专业",LVCFMT_LEFT,80);
	m_listResult.InsertColumn(4,"年级",LVCFMT_LEFT,80);

	m_listScore.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_listScore.InsertColumn(0,"课程",LVCFMT_LEFT,100);
	m_listScore.InsertColumn(1,"成绩",LVCFMT_LEFT,100);

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

void CScoreOutput::OnRadio1() 
{
	// TODO: Add your control notification handler code here
	m_bByStu = true;
	m_bBySpe = false;

	m_lblInput1 = "输入学生学号";
	m_lblInput2 = "输入学生姓名";

	m_edit1 = "";
	m_edit2 = "";
	UpdateData(false);

	m_ctlEdt1.SetReadOnly(false);
	m_ctlEdt2.SetReadOnly(false);
	
	m_ctlEdt1.SetFocus();
	
}

void CScoreOutput::OnRadio2() 
{
	// TODO: Add your control notification handler code here
	m_bBySpe = true;
	m_bByStu = false;

	m_lblInput1 = "输入学院";
	m_lblInput2 = "输入专业";

	m_edit1 = "";
	m_edit2 = "";
	UpdateData(false);

	m_ctlEdt1.SetReadOnly(false);
	m_ctlEdt2.SetReadOnly(false);
	m_ctlEdt1.SetFocus();
}

void CScoreOutput::OnBtnsearch() 
{
	// TODO: Add your control notification handler code here

	if(!m_bBySpe&&!m_bByStu)
		return;
	m_listResult.DeleteAllItems();
	UpdateData();
	m_lblScore = "成绩列表";
	UpdateData(false);
	CString st="";
	if(m_bByStu)
	{
		if(m_edit1!="")
			st = "stuNum='"+m_edit1+"'";
		if(m_edit2!=""){
			if(st=="")
				st = "stuName='"+m_edit2+"'";
			else
				st+=" and stuName='"+m_edit2+"'";
		}
	}
	else
	{
		if(m_edit1!="")
			st = "institute='"+m_edit1+"'";
		if(m_edit2!=""){
			if(st=="")
				st = "specialty='"+m_edit2+"'";
			else
				st+=" and specialty='"+m_edit2+"'";
		}
	}
	m_pStu = new CStudents();
	if(!m_pStu->IsOpen())
		m_pStu->Open();
	m_pStu->m_strFilter = st;
	m_pStu->Requery();
	int i=0;
	while (!m_pStu->IsEOF())
	{
		m_listResult.InsertItem(i,m_pStu->m_stuNum);
		m_listResult.SetItemText(i,1,m_pStu->m_stuName);
		m_listResult.SetItemText(i,2,m_pStu->m_institute);
		m_listResult.SetItemText(i,3,m_pStu->m_specialty);
		m_listResult.SetItemText(i,4,m_pStu->m_grade);

		i++;
		m_pStu->MoveNext();
	}
	m_pStu->Close();
	delete m_pStu;

	m_listResult.SetSelectionMark(0);
	setScoreList();
}

void CScoreOutput::setScoreList()
{
	m_listScore.DeleteAllItems();
		if(m_listResult.GetItemCount()==0)
			return;
		char s[20];
		char t[20];
		CString st,strNum,strName,strcouName,strScroe;
		BOOL bGetName=true;
		m_listResult.GetItemText(m_listResult.GetSelectionMark(),0,s,19);
		m_listResult.GetItemText(m_listResult.GetSelectionMark(),1,t,19);
		if(s=="")
			return;
		if(t=="")
			return;
		strName = t;
		strNum = s;
		m_lblScore ="学生 "+ strName+" 的成绩列表";
		UpdateData(false);
		m_pStuScore = new CStuScores();
		if(!m_pStuScore->IsOpen())
			m_pStuScore->Open();
		m_pStuScore->m_strFilter.Format("stuNum='%s' and stuName='%s'",strNum,strName);
		m_pStuScore->Requery();
		if(!m_pStuScore->IsEOF()){
			st=m_pStuScore->m_stuScore;
			char *args = st.GetBuffer(st.GetLength());
			int j=0;
			for(int i=0;i<st.GetLength();i++){
				if(args[i]!=' '){		//不为空格
					if(bGetName){			//当前是课程名
						strcouName+=args[i];
					}
					else					//当前是成绩
					{
						strScroe+=args[i];
					}
				}
				else					//是空格
				{
					if(bGetName){
						bGetName =false;
						m_listScore.InsertItem(j,strcouName);
						strcouName = "";
					}
					else{
						bGetName = true;
						m_listScore.SetItemText(j,1,strScroe);
						strScroe = "";
						j++;
					}
				}
			}	
			m_listScore.SetItemText(j,1,strScroe);
		}
		m_pStuScore->Close();
		delete m_pStuScore;
		
}

void CScoreOutput::OnClickListresult(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	setScoreList();
	
	*pResult = 0;
}

void CScoreOutput::OnBtnpre() 
{
	// TODO: Add your control notification handler code here
	int i = m_listResult.GetSelectionMark();
	if(i==0)
		return;
	i--;
	m_listResult.SetSelectionMark(i);
	setScoreList();
}

void CScoreOutput::OnBtnnext() 
{
	// TODO: Add your control notification handler code here
	int i = m_listResult.GetSelectionMark()+1;
	if(i==m_listResult.GetItemCount())
		return;
	m_listResult.SetSelectionMark(i);
	setScoreList();
}

⌨️ 快捷键说明

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