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

📄 stutranin.cpp

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

#include "stdafx.h"
#include "EduAdministration.h"
#include "StuTranIn.h"

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

/////////////////////////////////////////////////////////////////////////////
// CStuTranIn dialog


CStuTranIn::CStuTranIn(CWnd* pParent /*=NULL*/)
	: CDialog(CStuTranIn::IDD, pParent)
{
	//{{AFX_DATA_INIT(CStuTranIn)
	m_fromSchool = _T("");
	m_inGrade = _T("");
	m_outGrade = _T("");
	m_inInstitute = _T("");
	m_outInstitute = _T("");
	m_inSpecialty = _T("");
	m_outSpecialty = _T("");
	m_name = _T("");
	m_num = _T("");
	m_toSchool = _T("");
	m_inTranTime = _T("");
	m_outTranTime = _T("");
	//}}AFX_DATA_INIT
}


void CStuTranIn::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CStuTranIn)
	DDX_Control(pDX, IDC_EDTTOSCH, m_ctlToSchool);
	DDX_Control(pDX, IDC_BTNCOMP, m_btnComp);
	DDX_Control(pDX, IDC_LISTLOGSOUT, m_LogListOut);
	DDX_Control(pDX, IDC_LISTLOGSIN, m_LogListIn);
	DDX_Control(pDX, IDC_EDTSTUNUM, m_ctlNum);
	DDX_Control(pDX, IDC_EDTSTUNAME, m_ctlName);
	DDX_Control(pDX, IDC_BTNOK, m_btnOk);
	DDX_Control(pDX, IDC_BTNCLEAR, m_btnClear);
	DDX_Text(pDX, IDC_EDTFROMSCH, m_fromSchool);
	DDX_Text(pDX, IDC_EDTGRADE, m_inGrade);
	DDX_Text(pDX, IDC_EDTGRADE2, m_outGrade);
	DDX_Text(pDX, IDC_EDTINSTITUTE, m_inInstitute);
	DDX_Text(pDX, IDC_EDTINSTITUTE2, m_outInstitute);
	DDX_Text(pDX, IDC_EDTSPECIALTY, m_inSpecialty);
	DDX_Text(pDX, IDC_EDTSPECIALTY2, m_outSpecialty);
	DDX_Text(pDX, IDC_EDTSTUNAME, m_name);
	DDX_Text(pDX, IDC_EDTSTUNUM, m_num);
	DDX_Text(pDX, IDC_EDTTOSCH, m_toSchool);
	DDX_Text(pDX, IDC_EDTTRANTIME, m_inTranTime);
	DDX_Text(pDX, IDC_EDTTRANTIME2, m_outTranTime);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CStuTranIn, CDialog)
	//{{AFX_MSG_MAP(CStuTranIn)
	ON_BN_CLICKED(IDC_RADIOIN, OnRadioin)
	ON_BN_CLICKED(IDC_RADIOOUT, OnRadioout)
	ON_BN_CLICKED(IDC_BTNOK, OnBtnok)
	ON_BN_CLICKED(IDC_BTNCOMP, OnBtncomp)
	ON_BN_CLICKED(IDC_BTNCLEAR, OnBtnclear)
	ON_WM_SHOWWINDOW()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CStuTranIn message handlers

BOOL CStuTranIn::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_btnClear.SetIcon(IDI_ICONCANCEL);
	m_btnOk.SetIcon(IDI_ICONOK);
	m_bInSelected = false;
	m_bOutSelected = false;

	m_LogListIn.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_LogListOut.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

	m_LogListIn.InsertColumn(0,"学号",LVCFMT_LEFT,60);
	m_LogListIn.InsertColumn(1,"姓名",LVCFMT_LEFT,60);
	m_LogListIn.InsertColumn(2,"转入学院",LVCFMT_LEFT,60);
	m_LogListIn.InsertColumn(3,"转入专业",LVCFMT_LEFT,60);
	m_LogListIn.InsertColumn(4,"转入年级",LVCFMT_LEFT,60);
	m_LogListIn.InsertColumn(5,"来自学校",LVCFMT_LEFT,60);
	m_LogListIn.InsertColumn(6,"办理时间",LVCFMT_LEFT,60);

	m_LogListOut.InsertColumn(0,"学号",LVCFMT_LEFT,60);
	m_LogListOut.InsertColumn(1,"姓名",LVCFMT_LEFT,60);
	m_LogListOut.InsertColumn(2,"来自学院",LVCFMT_LEFT,60);
	m_LogListOut.InsertColumn(3,"来自专业",LVCFMT_LEFT,60);
	m_LogListOut.InsertColumn(4,"来自年级",LVCFMT_LEFT,60);
	m_LogListOut.InsertColumn(5,"转到学校",LVCFMT_LEFT,60);
	m_LogListOut.InsertColumn(6,"办理时间",LVCFMT_LEFT,60);

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

void CStuTranIn::OnRadioin() 
{
	// TODO: Add your control notification handler code here
	m_bOutSelected = false;
	m_bInSelected = true;
	
}

void CStuTranIn::OnRadioout() 
{
	// TODO: Add your control notification handler code here
	m_bOutSelected = true;
	m_bInSelected = false;
	
}

void CStuTranIn::OnBtnok() 
{
	// TODO: Add your control notification handler code here
	if(!m_bInSelected&&!m_bOutSelected)
		return;
	UpdateData();
	if(m_name==""||m_num == ""){
		AfxMessageBox("请输入学生名字和学号");
		m_ctlNum.SetFocus();
		if(m_num!="")
			m_ctlName.SetFocus();
		return;
	}
	if(m_bInSelected)
	{
		if(!m_Stu.IsOpen())
			m_Stu.Open();
		m_Stu.m_strFilter.Format("stuNum='%s'",m_num);
		m_Stu.Requery();
		if(!m_Stu.IsEOF()){
			AfxMessageBox("学号已存在");
			m_Stu.Close();
			m_ctlNum.SetFocus();
			return;
		}
		m_Stu.Close();

		if(m_inTranTime==""||m_inSpecialty==""||m_inInstitute==""||m_inGrade==""
			||m_fromSchool==""){
			AfxMessageBox("转入资料不完整,请输入。");
			return;
			}

		if(!m_StuIn.IsOpen())
			m_StuIn.Open();
		m_StuIn.AddNew();
		m_StuIn.m_fromSchool = m_fromSchool;
		m_StuIn.m_grade = m_inGrade;
		m_StuIn.m_inId = m_num;
		m_StuIn.m_inName = m_name;
		m_StuIn.m_inNum = m_num;
		m_StuIn.m_institute = m_inInstitute;
		m_StuIn.m_specialty = m_inSpecialty;
		m_StuIn.m_tranDate = m_inTranTime;
		m_StuIn.Update();
		m_StuIn.Close();

		if(!m_Stu.IsOpen())
			m_Stu.Open();
		m_Stu.AddNew();
		m_Stu.m_stuName = m_name;
		m_Stu.m_stuNum = m_num;
		m_Stu.m_grade = m_inGrade;
		m_Stu.m_institute = m_inInstitute;
		m_Stu.m_specialty = m_inSpecialty;
		m_Stu.Update();
		m_Stu.Close();

		int i = m_LogListIn.GetItemCount();
		m_LogListIn.InsertItem(i,m_num);
		m_LogListIn.SetItemText(i,1,m_name);
		m_LogListIn.SetItemText(i,2,m_inInstitute);
		m_LogListIn.SetItemText(i,3,m_inSpecialty);
		m_LogListIn.SetItemText(i,4,m_inGrade);
		m_LogListIn.SetItemText(i,5,m_fromSchool);
		m_LogListIn.SetItemText(i,6,m_inTranTime);
	
		if(!m_course.IsOpen())
			m_course.Open();
		m_course.m_strFilter.Format("institute='%s' and specialty='%s'",m_inInstitute,m_inSpecialty);
		m_course.Requery();
		if(m_course.IsEOF()){
			m_course.Close();
			setFieldNull();
			return;
		}
		CString stucourse="";
		while (!m_course.IsEOF())
		{
			stucourse +=m_course.m_couID + " ";
			m_course.MoveNext();
		}
		m_course.Close();
		
		if(!m_StuCourse.IsOpen())
			m_StuCourse.Open();
		m_StuCourse.AddNew();
		m_StuCourse.m_ID = m_num;
		m_StuCourse.m_stuNum = m_num;
		m_StuCourse.m_courseIDs = stucourse;
		m_StuCourse.Update();
		m_StuCourse.Close();

		setFieldNull();

	}
	else
	{
		if(m_outTranTime==""||m_outSpecialty==""||m_outInstitute==""||m_outGrade==""
			||m_toSchool==""){
			AfxMessageBox("转出资料不完整,请输入。");
			return;
		}
		
		if(!m_Stu.IsOpen())
			m_Stu.Open();
		m_Stu.m_strFilter.Format("stuNum='%s'",m_num);
		m_Stu.Requery();
		if(m_Stu.IsEOF()){
			AfxMessageBox("无此学生");
			m_Stu.Close();
			m_ctlNum.SetFocus();
			return;
		}
		m_Stu.Delete();
		m_Stu.Close();

		if(!m_StuOut.IsOpen())
			m_StuOut.Open();
		m_StuOut.AddNew();
		m_StuOut.m_outId = m_num;
		m_StuOut.m_outName = m_name;
		m_StuOut.m_outNum = m_num;
		m_StuOut.m_grade = m_outGrade;
		m_StuOut.m_institute = m_outInstitute;
		m_StuOut.m_specialty = m_outSpecialty;
		m_StuOut.m_ToSchool = m_toSchool;
		m_StuOut.m_tranDate = m_outTranTime;
		m_StuOut.Update();
		m_StuOut.Close();

		if(!m_StuCourse.IsOpen())
			m_StuCourse.Open();
		m_StuCourse.m_strFilter.Format("stuNum='%s'",m_num);
		m_StuCourse.Requery();
		if(!m_StuCourse.IsEOF())
			m_StuCourse.Delete();
		m_StuCourse.Close();

		int j = m_LogListOut.GetItemCount();
		m_LogListOut.InsertItem(j,m_num);
		m_LogListOut.SetItemText(j,1,m_name);
		m_LogListOut.SetItemText(j,2,m_outInstitute);
		m_LogListOut.SetItemText(j,3,m_outSpecialty);
		m_LogListOut.SetItemText(j,4,m_outGrade);
		m_LogListOut.SetItemText(j,5,m_toSchool);
		m_LogListOut.SetItemText(j,6,m_outTranTime);
		
	}
	setFieldNull();
	
}

void CStuTranIn::setInList()
{
	m_LogListIn.DeleteAllItems();
	int i=0;
	if(!m_StuIn.IsOpen())
		m_StuIn.Open();
	while (!m_StuIn.IsEOF())
	{
		m_LogListIn.InsertItem(i,m_StuIn.m_inNum);
		m_LogListIn.SetItemText(i,1,m_StuIn.m_inName);
		m_LogListIn.SetItemText(i,2,m_StuIn.m_institute);
		m_LogListIn.SetItemText(i,3,m_StuIn.m_specialty);
		m_LogListIn.SetItemText(i,4,m_StuIn.m_grade);
		m_LogListIn.SetItemText(i,5,m_StuIn.m_fromSchool);
		m_LogListIn.SetItemText(i,6,m_StuIn.m_tranDate);

		i++;
		m_StuIn.MoveNext();
	}
	m_StuIn.Close();
}

void CStuTranIn::setOutList()
{
	m_LogListOut.DeleteAllItems();
	int i=0;
	if(!m_StuOut.IsOpen())
		m_StuOut.Open();
	while (!m_StuOut.IsEOF())
	{
		m_LogListOut.InsertItem(i,m_StuOut.m_outNum);
		m_LogListOut.SetItemText(i,1,m_StuOut.m_outName);
		m_LogListOut.SetItemText(i,2,m_StuOut.m_institute);
		m_LogListOut.SetItemText(i,3,m_StuOut.m_specialty);
		m_LogListOut.SetItemText(i,4,m_StuOut.m_grade);
		m_LogListOut.SetItemText(i,5,m_StuOut.m_ToSchool);
		m_LogListOut.SetItemText(i,6,m_StuOut.m_tranDate);

		i++;
		m_StuOut.MoveNext();
	}
	m_StuOut.Close();
}


void CStuTranIn::setFieldNull()
{
	m_num = "";
	m_name = "";
	m_inTranTime = "";
	m_inSpecialty = "";
	m_inInstitute = "";
	m_inGrade = "";
	m_fromSchool = "";
	m_outTranTime = "";
	m_outSpecialty = "";
	m_outInstitute = "";
	m_outGrade = "";
	m_toSchool = "";

	UpdateData(false);
}

void CStuTranIn::OnBtncomp() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	if(m_num == ""){
		AfxMessageBox("请输入学生学号");
		m_ctlNum.SetFocus();
		return;
	}
	if(!m_Stu.IsOpen())
		m_Stu.Open();
	m_Stu.m_strFilter.Format("stuNum='%s'",m_num);
	m_Stu.Requery();
	if(!m_Stu.IsEOF())
	{
		m_outGrade = m_Stu.m_grade;
		m_outInstitute = m_Stu.m_institute;
		m_outSpecialty = m_Stu.m_specialty;
		m_name = m_Stu.m_stuName;
		UpdateData(false);
		m_ctlToSchool.SetFocus();
	}
	m_Stu.Close();
}

void CStuTranIn::OnBtnclear() 
{
	// TODO: Add your control notification handler code here
	m_inGrade = "";
	m_inInstitute = "";
	m_inSpecialty = "";
	m_inTranTime = "";
	m_outGrade = "";
	m_outInstitute = "";
	m_outSpecialty = "";
	m_outTranTime = "";
	m_name = "";
	m_num = "";
	m_fromSchool = "";
	m_toSchool = "";

	m_ctlNum.SetFocus();

	UpdateData(false);
	
}

void CStuTranIn::OnShowWindow(BOOL bShow, UINT nStatus) 
{
	CDialog::OnShowWindow(bShow, nStatus);
	
	// TODO: Add your message handler code here
	setInList();
	setOutList();
	
}

⌨️ 快捷键说明

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