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

📄 gradeadddlg.cpp

📁 c++学生成绩管理系统,功能比较完善的中级管理系统
💻 CPP
字号:
// GradeAddDlg.cpp : implementation file
//

#include "stdafx.h"
#include "学生成绩管理系统.h"
#include "GradeAddDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CGradeAddDlg dialog


CGradeAddDlg::CGradeAddDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CGradeAddDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CGradeAddDlg)
	m_addgrade = 0.0;
	//}}AFX_DATA_INIT
}


void CGradeAddDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CGradeAddDlg)
	DDX_Control(pDX, IDC_COMBOZHUANYIE, m_combozhuanyie);
	DDX_Control(pDX, IDC_COMBOYEAR, m_comboyear);
	DDX_Control(pDX, IDC_COMBOCLASS, m_comboclass);
	DDX_Control(pDX, IDC_COMBOCOURSE, m_combocourse);
	DDX_Control(pDX, IDC_COMBONO, m_combono);
	DDX_Control(pDX, IDC_COMBONAME, m_comboname);
	DDX_Text(pDX, IDC_EDITGRADE, m_addgrade);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CGradeAddDlg, CDialog)
	//{{AFX_MSG_MAP(CGradeAddDlg)
	ON_CBN_SELENDOK(IDC_COMBONAME, OnSelendokComboname)
	ON_CBN_SELENDOK(IDC_COMBONO, OnSelendokCombono)
	ON_CBN_SELENDOK(IDC_COMBOYEAR, OnSelendokComboyear)
	ON_CBN_SELENDOK(IDC_COMBOZHUANYIE, OnSelendokCombozhuanyie)
	ON_CBN_SELENDOK(IDC_COMBOCLASS, OnSelendokComboclass)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CGradeAddDlg message handlers

BOOL CGradeAddDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	//combo
	m_combozhuanyie.ResetContent();
	m_classset.Open();
	BOOL zhuanyie;
	BOOL xueqi;
	int j;
	CString s;
	m_classset.MoveFirst();
	do
	{	
		zhuanyie=TRUE;
		for (j=0;j<m_combozhuanyie.GetCount();j++)
		{
			m_combozhuanyie.GetLBText(j,s);
			if(m_classset.m_column3==s)
			{
				zhuanyie=FALSE;
			}
		}
		if(zhuanyie)
		{
			m_combozhuanyie.AddString(m_classset.m_column3);
		}
		m_comboclass.AddString(m_classset.m_column2);
		m_classset.MoveNext();
	} while(!m_classset.IsEOF());
	m_classset.Close();
	//
	m_studentset.Open();
	m_studentset.MoveFirst();
	do
	{
		m_comboname.AddString(m_studentset.m_column2);
		m_combono.AddString(m_studentset.m_column1);
		m_studentset.MoveNext();
	}while(!m_studentset.IsEOF());
	m_studentset.Close();
//
	m_courseset.Open();
	m_courseset.MoveFirst();
	do
	{
		xueqi=TRUE;		
		for (j=0;j<m_comboyear.GetCount();j++)
		{
			m_comboyear.GetLBText(j,s);
			if(m_courseset.m_column4==s)
			{
				xueqi=FALSE;
			}
		}
		if(xueqi)
		{
			m_comboyear.AddString(m_courseset.m_column4);
		}
		m_combocourse.AddString(m_courseset.m_column2);
		m_courseset.MoveNext();
	} while (!m_courseset.IsEOF());
	m_courseset.Close();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CGradeAddDlg::OnSelendokComboname() 
{
	CString currentstudentno,currentstudentname;
	if(m_combono.GetCurSel()>=0)
		m_combono.GetLBText(m_combono.GetCurSel(),currentstudentno);
	if(m_comboname.GetCurSel()>=0)
		m_comboname.GetLBText(m_comboname.GetCurSel(),currentstudentname);
	if(currentstudentno!="" && currentstudentname!="")
	{
		m_studentset.Open();
		m_studentset.MoveFirst();
		do
		{
			if((m_studentset.m_column1==currentstudentno && m_studentset.m_column2!=currentstudentname)
				||(m_studentset.m_column1!=currentstudentno && m_studentset.m_column2==currentstudentname))
			{
				MessageBox("学号与名字不符,可以只选一项");
				m_combono.SetCurSel(-1);
				m_comboname.SetCurSel(-1);
			}
			m_studentset.MoveNext();
		}while(!m_studentset.IsEOF());
		m_studentset.Close();
	}

	
}

void CGradeAddDlg::OnSelendokCombono() 
{
	CString currentstudentno,currentstudentname;
	if(m_combono.GetCurSel()>=0)
		m_combono.GetLBText(m_combono.GetCurSel(),currentstudentno);
	if(m_comboname.GetCurSel()>=0)
		m_comboname.GetLBText(m_comboname.GetCurSel(),currentstudentname);
	if(currentstudentno != "" && currentstudentname != "")
	{
		m_studentset.Open();
		m_studentset.MoveFirst();
		do
		{
			if((m_studentset.m_column1==currentstudentno && m_studentset.m_column2!=currentstudentname)
				||(m_studentset.m_column1!=currentstudentno && m_studentset.m_column2==currentstudentname))
			{
				MessageBox("学号与名字不符,可以只选一项");
				m_combono.SetCurSel(-1);
				m_comboname.SetCurSel(-1);
			}
			m_studentset.MoveNext();
		}while(!m_studentset.IsEOF());
		m_studentset.Close();
	}
}

void CGradeAddDlg::OnSelendokComboyear() 
{
	CString currentyear;
	m_courseset.Open();
	if(m_comboyear.GetCurSel()>=0)
		m_comboyear.GetLBText(m_comboyear.GetCurSel(),currentyear);
	m_combocourse.ResetContent();
	m_courseset.MoveFirst();
	do
	{
		if(m_courseset.m_column4==currentyear)
			m_combocourse.AddString(m_courseset.m_column2);
		m_courseset.MoveNext();
	} while (!m_courseset.IsEOF());
	m_courseset.Close();	
}

void CGradeAddDlg::OnSelendokCombozhuanyie() 
{
	CString currentzhuanyie;
	m_classset.Open();
	if(m_combozhuanyie.GetCurSel()>=0)
		m_combozhuanyie.GetLBText(m_combozhuanyie.GetCurSel(),currentzhuanyie);
	m_comboclass.ResetContent();
	m_classset.MoveFirst();
	do
	{
		if(m_classset.m_column3==currentzhuanyie)
			m_comboclass.AddString(m_classset.m_column2);
		m_classset.MoveNext();
	} while(!m_classset.IsEOF());
	m_classset.Close();
	//
	m_combono.ResetContent();
	m_comboname.ResetContent();
	m_studentset.Open();
	m_classset.Open();
	m_classset.MoveFirst();
	do
	{
		if(m_classset.m_column3==currentzhuanyie)
		{
			m_studentset.MoveFirst();
			do
			{
				if(m_studentset.m_column3==m_classset.m_column1)
				{
					m_combono.AddString(m_studentset.m_column1);
					m_comboname.AddString(m_studentset.m_column2);
				}
				m_studentset.MoveNext();
			}while(!m_studentset.IsEOF());
		}
		m_classset.MoveNext();
	}while(!m_classset.IsEOF());
	m_studentset.Close();
	m_classset.Close();
}

void CGradeAddDlg::OnSelendokComboclass() 
{
	CString currentclass;
	if(m_comboclass.GetCurSel()>=0)
		m_comboclass.GetLBText(m_comboclass.GetCurSel(),currentclass);
	m_combono.ResetContent();
	m_comboname.ResetContent();
	m_studentset.Open();
	m_classset.Open();
	m_classset.MoveFirst();
	do
	{
		if(m_classset.m_column2==currentclass)
		{
			m_studentset.MoveFirst();
			do
			{
				if(m_studentset.m_column3==m_classset.m_column1)
				{
					m_combono.AddString(m_studentset.m_column1);
					m_comboname.AddString(m_studentset.m_column2);
				}
				m_studentset.MoveNext();
			}while(!m_studentset.IsEOF());
		}
		m_classset.MoveNext();
	}while(!m_classset.IsEOF());
	m_studentset.Close();
	m_classset.Close();
	
}

void CGradeAddDlg::OnOK() 
{
	CString currentyear;
	CString currentcourse;
	CString currentstudentno;
	CString currentstudentname;
	if(m_comboyear.GetCurSel()>=0)
		m_comboyear.GetLBText(m_comboyear.GetCurSel(),currentyear);
	if(m_combocourse.GetCurSel()>=0)
		m_combocourse.GetLBText(m_combocourse.GetCurSel(),currentcourse);
	if(m_combono.GetCurSel()>=0)
		m_combono.GetLBText(m_combono.GetCurSel(),currentstudentno);
	if(m_comboname.GetCurSel()>=0)
		m_comboname.GetLBText(m_comboname.GetCurSel(),currentstudentname);
	if(currentstudentno!="")
		m_addstudentno=currentstudentno;
	else 
	{
		if(currentstudentname!="")
		{
			if(!m_studentset.IsOpen())
				m_studentset.Open();
			m_studentset.MoveFirst();
			do
			{
				if(m_studentset.m_column2==currentstudentname)
				{
					m_addstudentno=m_studentset.m_column1;
					break;
				}
				m_studentset.MoveNext();
			}while(!m_studentset.IsEOF());
			m_studentset.Close();
		}
		else
			MessageBox("没有选择学号或姓名");
	}
	//
	if(currentcourse=="")
		MessageBox("请选择课程");
	else 
	{
		if(currentyear!="")
		{
			if(!m_courseset.IsOpen())
				m_courseset.Open();
			m_courseset.MoveFirst();
			do
			{
				if(m_courseset.m_column2==currentcourse && m_courseset.m_column4==currentyear)
					m_addcourseno=m_courseset.m_column1;
				m_courseset.MoveNext();
			}while(!m_courseset.IsEOF());
			if(m_courseset.IsOpen())
				m_courseset.Close();
		}
		else
		{
			m_courseset.Open();
			m_courseset.MoveFirst();
			do
			{
				if(m_courseset.m_column2==currentcourse)
				{
					m_addcourseno=m_courseset.m_column1;
					break;
				}
				m_courseset.MoveNext();
			}while(!m_courseset.IsEOF());
			m_courseset.Close();
		}
	}
	//////////////////////////
	UpdateData(TRUE);
	BOOL cunzai;
	cunzai=FALSE;
	if(!m_gradeset.IsOpen())
		m_gradeset.Open();
	if(!m_gradeset.IsBOF())
		m_gradeset.MoveFirst();
	do
	{
		if(m_gradeset.m_column1==m_addstudentno && m_gradeset.m_column2==m_addcourseno)
		{
			cunzai=TRUE;
			break;
		}
		m_gradeset.MoveNext();
	}while(!m_gradeset.IsEOF());
	if(cunzai==FALSE)
	{

		if(m_gradeset.IsEOF())
			m_gradeset.MoveLast();
		m_gradeset.AddNew();
		m_gradeset.SetFieldValue(_T("学号"),(LPCTSTR)m_addstudentno);
		m_gradeset.SetFieldValue(_T("课程号"),(LPCTSTR)m_addcourseno);
		m_gradeset.SetFieldValue(_T("成绩"),m_addgrade);
		if(m_gradeset.CanUpdate()==TRUE)
			m_gradeset.Update();
		if(m_gradeset.IsOpen())
			m_gradeset.Close();
	}
	else
	{
		MessageBox("记录已存在");
		return;
	}
	CDialog::OnOK();
}

⌨️ 快捷键说明

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