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

📄 stuinfomana.cpp

📁 分管理员和学生界面
💻 CPP
字号:
// StuInfoMana.cpp : implementation file
//

#include "stdafx.h"
#include "教学管理系统.h"
#include "StuInfoMana.h"

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

/////////////////////////////////////////////////////////////////////////////
// StuInfoMana dialog


StuInfoMana::StuInfoMana(CWnd* pParent /*=NULL*/)
	: CDialog(StuInfoMana::IDD, pParent)
{
	//{{AFX_DATA_INIT(StuInfoMana)
	number = _T("");
	name = _T("");
	sex = _T("");
	birth = _T("");
	entrygrade = _T("");
	sdeptnumber = _T("");
	inputnumber = _T("");
	//}}AFX_DATA_INIT
}


void StuInfoMana::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(StuInfoMana)
	DDX_Text(pDX, IDC_EDIT_NO, number);
	DDX_Text(pDX, IDC_EDIT_NAME, name);
	DDX_Text(pDX, IDC_EDIT_SEX, sex);
	DDX_Text(pDX, IDC_EDIT_DATE, birth);
	DDX_Text(pDX, IDC_EDIT_GRADE, entrygrade);
	DDX_Text(pDX, IDC_EDIT_DEPT, sdeptnumber);
	DDX_Text(pDX, IDC_EDIT_INPUT, inputnumber);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(StuInfoMana, CDialog)
	//{{AFX_MSG_MAP(StuInfoMana)
	ON_BN_CLICKED(IDC_BUTTON_QUERY, OnButtonQuery)
	ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd)
	ON_BN_CLICKED(IDC_BUTTON_MODIFY, OnButtonModify)
	ON_BN_CLICKED(IDC_BUTTON_INPUT, OnButtonInput)
	ON_BN_CLICKED(IDC_BUTTON_OUTPUT, OnButtonOutput)
	ON_BN_CLICKED(IDC_BUTTON_GRADUATE, OnButtonGraduate)
	ON_BN_CLICKED(IDC_BUTTON_HISTORY, OnButtonHistory)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// StuInfoMana message handlers

void StuInfoMana::OnButtonQuery() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if(inputnumber.IsEmpty())
	{
		AfxMessageBox("请输入学号");
		return;
	}
	connection.Initialize();
	CString student;
	student.Format("select * from 学生 where 学号='%s'",inputnumber);
	connection.Connect(student);
	if(connection.m_pRecordset->adoEOF)
	{
		AfxMessageBox("没有该学生的资料");
		number="";
		name="";
		sex="";
		birth="";
		entrygrade="";
		sdeptnumber="";
		UpdateData(FALSE);
		connection.Unitialize();	
		return;
	}
	connection.m_pRecordset->MoveFirst();
	while(!connection.m_pRecordset->adoEOF)
	{    
		_variant_t TheValue; 
		
        TheValue = connection.m_pRecordset->Fields->GetItem("学号")->Value;
		number=TheValue.bstrVal;
		
		TheValue = connection.m_pRecordset->Fields->GetItem("姓名")->Value;
		name=TheValue.bstrVal;
		
		TheValue = connection.m_pRecordset->Fields->GetItem("性别")->Value;
		sex=TheValue.bstrVal;
		
		
		TheValue = connection.m_pRecordset->Fields->GetItem("出生日期")->Value;
		birth=TheValue.bstrVal;
		

		TheValue = connection.m_pRecordset->Fields->GetItem("入学成绩")->Value;
		entrygrade=TheValue.bstrVal;
        
		TheValue = connection.m_pRecordset->Fields->GetItem("所在系号")->Value;
		sdeptnumber=TheValue.bstrVal;

        UpdateData(FALSE);
		connection.m_pRecordset->MoveNext();
	}		
    connection.Unitialize();
}

void StuInfoMana::OnButtonAdd() 
{
	// TODO: Add your control notification handler code here
	CString student; 
	UpdateData(TRUE);
	if(number.IsEmpty())
	{
		AfxMessageBox("请输入学号");
		return;
	}
	if(name.IsEmpty())
	{
		name="空";
	}
	if(sex.IsEmpty())
		sex="空";
	if(birth.IsEmpty())
		birth="空";
	if(entrygrade.IsEmpty())
		entrygrade="空";
	if(sdeptnumber.IsEmpty())
		sdeptnumber="空";
	connection.Initialize();
	student.Format("select * from 系 where 系号='%s'",sdeptnumber);
	connection.Connect(student);
	if(connection.m_pRecordset->adoEOF)
	{
		AfxMessageBox("没有该系资料");
		connection.Unitialize();
		return;
	}
	connection.Unitialize();	
	connection.Initialize();
	student.Format("select * from 学生 where 学号='%s'",number);
	connection.Connect(student);
	if(!(connection.m_pRecordset->adoEOF))
	{
		AfxMessageBox("已有该学号的资料,不可重复录入");
		connection.Unitialize();
		return;
	} 
   connection.m_pRecordset->AddNew();///添加新记录 
   connection.m_pRecordset->PutCollect("学号",_variant_t(number));
   connection.m_pRecordset->PutCollect("姓名",_variant_t(name));
   connection.m_pRecordset->PutCollect("性别",_variant_t(sex));
   connection.m_pRecordset->PutCollect("出生日期",_variant_t(birth));
   connection.m_pRecordset->PutCollect("入学成绩",_variant_t(entrygrade));
   connection.m_pRecordset->PutCollect("所在系号",_variant_t(sdeptnumber));
   connection.m_pRecordset->Update();
   connection.Unitialize();
   
   connection.Initialize();
   student.Format("select * from 学生登录 ");
   connection.Connect(student);  
   connection.m_pRecordset->AddNew();///添加新记录 
   connection.m_pRecordset->PutCollect("学生id",_variant_t(number));
   connection.m_pRecordset->PutCollect("密码",_variant_t(number));
   connection.m_pRecordset->Update();
   connection.Unitialize();
   MessageBox("学生录入成功");
}

void StuInfoMana::OnButtonModify() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if(number.IsEmpty())
	{
		AfxMessageBox("请输入学号");
		return;
	}
	connection.Initialize();
	CString student;
	student.Format("select * from 学生 where 学号='%s'",number);
	connection.Connect(student);
	if(connection.m_pRecordset->adoEOF)
	{
		AfxMessageBox("没有该学生的资料,修改失败");
		connection.Unitialize();
		return;
	}
	connection1.Initialize();
	student.Format("select * from 系 where 系号='%s'",sdeptnumber);
	connection1.Connect(student);
	if(connection1.m_pRecordset->adoEOF)
	{
		AfxMessageBox("没有该系资料");
		connection1.Unitialize();	
		return;
	}
	connection1.Unitialize();
	connection.m_pRecordset->Fields->GetItem(_variant_t("学号"))->Value=_bstr_t(number);
	connection.m_pRecordset->Fields->GetItem(_variant_t("姓名"))->Value=_bstr_t(name);
	connection.m_pRecordset->Fields->GetItem(_variant_t("性别"))->Value=_bstr_t(sex);
	connection.m_pRecordset->Fields->GetItem(_variant_t("出生日期"))->Value=_bstr_t(birth);
	connection.m_pRecordset->Fields->GetItem(_variant_t("入学成绩"))->Value=_bstr_t(entrygrade);
	connection.m_pRecordset->Fields->GetItem(_variant_t("所在系号"))->Value=_bstr_t(sdeptnumber);
	connection.m_pRecordset->Update();
	MessageBox("资料修改成功");
	connection.Unitialize();
}

void StuInfoMana::OnButtonInput() 
{
	// TODO: Add your control notification handler code here
	CString student; 
	COleDateTime dt= COleDateTime::GetCurrentTime();
	CString currentDT=dt.Format();
	UpdateData(TRUE);
	if(number.IsEmpty())
	{
		AfxMessageBox("请输入学号");
		return;
	}
	if(name.IsEmpty())
	{
		name="空";
	}
	if(sex.IsEmpty())
		sex="空";
	if(birth.IsEmpty())
		birth="空";
	if(entrygrade.IsEmpty())
		entrygrade="空";
	if(sdeptnumber.IsEmpty())
		sdeptnumber="空";
  connection.Initialize();
  student.Format("select * from 系 where 系号='%s'",sdeptnumber);
  connection.Connect(student);
  if(connection.m_pRecordset->adoEOF)
  {
	  AfxMessageBox("没有该系资料");
	  connection.Unitialize();	
	  return;
  }
  connection.Unitialize();
  connection.Initialize();
  student.Format("select * from 学生 where 学号='%s'",number);
  connection.Connect(student);
  if(!(connection.m_pRecordset->adoEOF))
  {
	  AfxMessageBox("已有该学号的资料,不可重复录入");
	  connection.Unitialize();	
	  return;
  }
  connection.m_pRecordset->AddNew();///添加新记录 
  connection.m_pRecordset->PutCollect("学号",_variant_t(number));
  connection.m_pRecordset->PutCollect("姓名",_variant_t(name));
  connection.m_pRecordset->PutCollect("性别",_variant_t(sex));
  connection.m_pRecordset->PutCollect("出生日期",_variant_t(birth));
  connection.m_pRecordset->PutCollect("入学成绩",_variant_t(entrygrade));
  connection.m_pRecordset->PutCollect("所在系号",_variant_t(sdeptnumber));
  connection.m_pRecordset->Update();
  connection.Unitialize();
  
  connection.Initialize();
  student.Format("select * from 学生历史");
  connection.Connect(student);
  connection.m_pRecordset->AddNew();///添加新记录 
  connection.m_pRecordset->PutCollect("学号",_variant_t(number));
  connection.m_pRecordset->PutCollect("类别",_variant_t("转入"));
  connection.m_pRecordset->PutCollect("时间",_variant_t(currentDT));
  connection.m_pRecordset->Update();
  connection.Unitialize();
  
  connection.Initialize();
  student.Format("select * from 学生登录 ");
  connection.Connect(student);  
  connection.m_pRecordset->AddNew();///添加新记录 
  connection.m_pRecordset->PutCollect("学生id",_variant_t(number));
  connection.m_pRecordset->PutCollect("密码",_variant_t(number));
  connection.m_pRecordset->Update();
  connection.Unitialize();
  MessageBox("学生转入成功");
}

void StuInfoMana::OnButtonOutput() 
{
	// TODO: Add your control notification handler code here
	CString sSql;
	COleDateTime dt= COleDateTime::GetCurrentTime();
	CString currentDT=dt.Format();
	UpdateData(TRUE);
	if(inputnumber.IsEmpty())
	{
		AfxMessageBox("请输入学号");
		return;
	}
	connection.Initialize();
    sSql.Format("select * from 学生 where 学号='%s'",number);
    connection.Connect(sSql);
	if((connection.m_pRecordset->adoEOF))
	{
		AfxMessageBox("没有该学号的资料");
		connection.Unitialize();
		return;
	}
    if(AfxMessageBox("确定该学生转出吗?",MB_YESNO) == IDYES)
	{
		connection.m_pRecordset->Delete(adAffectCurrent);///删除当前记录
		connection.m_pRecordset->Update();
		connection.Unitialize();
		tag=1;
		connection.Initialize();
		sSql.Format("select * from 成绩 where 学号='%s'",number);
		connection.Connect(sSql);
		if(connection.m_pRecordset->adoEOF)
		{
			tag=0;
		}
		if(tag==1)
		{
			connection.m_pRecordset->MoveFirst();
			while(!connection.m_pRecordset->adoEOF)
			{ 
				connection.m_pRecordset->Delete(adAffectCurrent);///删除当前记录
				connection.m_pRecordset->Update();
				connection.m_pRecordset->MoveNext();
			}
		}
		connection.Unitialize(); 
		tag=1;
		connection.Initialize();
		sSql.Format("select * from 选修 where 学号='%s'",number);
		connection.Connect(sSql);	   	   
		if(connection.m_pRecordset->adoEOF)
		{
			tag=0;
		}
		if(tag==1)
		{
			connection.m_pRecordset->MoveFirst();
			while(!connection.m_pRecordset->adoEOF)
			{ 
				connection.m_pRecordset->Delete(adAffectCurrent);///删除当前记录
				connection.m_pRecordset->Update();
				connection.m_pRecordset->MoveNext();
			}
		}
		connection.Unitialize(); 
		connection.Initialize();
		sSql.Format("select * from 学生登录  where 学生id='%s'",number);
		connection.Connect(sSql);  
		connection.m_pRecordset->MoveFirst();
		while(!connection.m_pRecordset->adoEOF)
		{
			connection.m_pRecordset->Delete(adAffectCurrent);///删除当前记录
			connection.m_pRecordset->Update();
			connection.m_pRecordset->MoveNext();
		}
		connection.Unitialize();
		connection.Initialize();
		sSql.Format("select * from 学生历史");
		connection.Connect(sSql);
		connection.m_pRecordset->AddNew();///添加新记录 
		connection.m_pRecordset->PutCollect("学号",_variant_t(number));
		connection.m_pRecordset->PutCollect("类别",_variant_t("转出"));
		connection.m_pRecordset->PutCollect("时间",_variant_t(currentDT));
		connection.m_pRecordset->Update();
		connection.Unitialize();
		
		number="";
		name="";
		sex="";
		birth="";
		entrygrade="";
		sdeptnumber="";
		UpdateData(FALSE);	
		MessageBox("学生转出成功");
	}
}

void StuInfoMana::OnButtonGraduate() 
{
	// TODO: Add your control notification handler code here
	CString sSql; 
	COleDateTime dt= COleDateTime::GetCurrentTime();
	CString currentDT=dt.Format();
	UpdateData(TRUE);
	if(number.IsEmpty())
	{
		AfxMessageBox("请输入学号");
		return;
	}
	connection.Initialize();
    sSql.Format("select * from 学生 where 学号='%s'",number);
    connection.Connect(sSql);
	if((connection.m_pRecordset->adoEOF))
	{
		AfxMessageBox("没有该学号的资料");
		connection.Unitialize();
		return;
	}
    if(AfxMessageBox("确定该学生毕业吗?",MB_YESNO) == IDYES)
	{
		connection.m_pRecordset->Delete(adAffectCurrent);///删除当前记录
		connection.m_pRecordset->Update();
		connection.Unitialize();
		
		connection.Initialize();
		sSql.Format("select * from 学生历史");
		connection.Connect(sSql);
		connection.m_pRecordset->AddNew();///添加新记录 
		connection.m_pRecordset->PutCollect("学号",_variant_t(number));
		connection.m_pRecordset->PutCollect("类别",_variant_t("毕业"));
		connection.m_pRecordset->PutCollect("时间",_variant_t(currentDT));
		connection.m_pRecordset->Update();
		connection.Unitialize();
		tag=1;
		connection.Initialize();
		sSql.Format("select * from 成绩 where 学号='%s'",number);
		connection.Connect(sSql);
		if(connection.m_pRecordset->adoEOF)
		{
			tag=0;
		}
		if(tag==1)
		{
			connection.m_pRecordset->MoveFirst();
			while(!connection.m_pRecordset->adoEOF)
			{
				connection.m_pRecordset->Delete(adAffectCurrent);///删除当前记录
				connection.m_pRecordset->Update();
				connection.m_pRecordset->MoveNext();
			}
		}
		connection.Unitialize(); 
		tag=1;
		connection.Initialize();
		sSql.Format("select * from 选修 where 学号='%s'",number);
		connection.Connect(sSql);	   	   
		if(connection.m_pRecordset->adoEOF)
		{
			tag=0;
		}
		if(tag==1)
		{
			connection.m_pRecordset->MoveFirst();
			while(!connection.m_pRecordset->adoEOF)
			{ 
				connection.m_pRecordset->Delete(adAffectCurrent);///删除当前记录
				connection.m_pRecordset->Update();
				connection.m_pRecordset->MoveNext();
			}
		}
		connection.Unitialize(); 		
		number="";
		name="";
		sex="";
		birth="";
		entrygrade="";
		sdeptnumber="";
		UpdateData(FALSE);	
		connection.Initialize();
		sSql.Format("select * from 学生登录  where 学生id='%s'",number);
		connection.Connect(sSql);  
		connection.m_pRecordset->MoveFirst();
		while(!connection.m_pRecordset->adoEOF)
		{
			connection.m_pRecordset->Delete(adAffectCurrent);///删除当前记录
			connection.m_pRecordset->Update();
			connection.m_pRecordset->MoveNext();
		}
		connection.Unitialize();
		MessageBox("学生毕业处理成功");
	}
}

void StuInfoMana::OnButtonHistory() 
{
	// TODO: Add your control notification handler code here
	history.DoModal();
}

⌨️ 快捷键说明

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