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

📄 stumandlg.cpp

📁 一个简单的学生成绩管理系统,在VC和SQL 2000下测试成功,(里面有数据库备份文件,直接还原即可,还原数据库后可以在USERS表里找到帐号和密码.
💻 CPP
字号:
// StuManDlg.cpp : implementation file
//

#include "stdafx.h"
#include "student.h"
#include "StuManDlg.h"
#include "EditDlg.h"
#include "EditGraDlg.h"
#include "columns.h"
#include "column.h"
#include "COMDEF.H"
#include "datagrid.h"
#include "_recordset.h"
#include "Base_Imfo.h"
#include "Grade.h"

extern CUsers curUser;


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

/////////////////////////////////////////////////////////////////////////////
// CStuManDlg dialog


CStuManDlg::CStuManDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CStuManDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CStuManDlg)
	m_searchedit = _T("");
	//}}AFX_DATA_INIT
}


void CStuManDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CStuManDlg)
	DDX_Control(pDX, IDC_SSEX_COMBO, m_sSex);
	DDX_Control(pDX, IDC_SEARCH_COMBO, m_search);
	DDX_Control(pDX, IDC_DATAGRID1, m_datagrid);
	DDX_Control(pDX, IDC_ADODC1, m_adodc);
	DDX_Control(pDX, IDC_ADODC2, m_adodc2);
	DDX_Control(pDX, IDC_DATAGRID2, m_datagrid2);
	DDX_Text(pDX, IDC_SEARCH_EDIT, m_searchedit);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CStuManDlg, CDialog)
	//{{AFX_MSG_MAP(CStuManDlg)
	ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton)
	ON_BN_CLICKED(IDC_MODISTU_BUTTON, OnModistuButton)
	ON_BN_CLICKED(IDC_DEL_BUTTON, OnDelButton)
	ON_BN_CLICKED(IDC_MODIGRA_BUTTON, OnModigraButton)
	ON_BN_CLICKED(IDC_REFRESH_BUTTON, OnRefreshButton)
	ON_BN_CLICKED(IDC_SEARCH_BUTTON, OnSearchButton)
	ON_CBN_SELCHANGE(IDC_SEARCH_COMBO, OnSelchangeSearchCombo)
	ON_CBN_SELCHANGE(IDC_SSEX_COMBO, OnSelchangeSsexCombo)
	ON_EN_CHANGE(IDC_SEARCH_EDIT, OnChangeSearchEdit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CStuManDlg message handlers

void CStuManDlg::RefreshData()
{
	
	m_adodc.SetRecordSource("select Stu_Id,BadgeID as 学号,Stu_Name as 姓名,Sex as 性别, Birth as 生日,Major as 专业 from Base_Imfo");
    m_adodc.Refresh();
	
	_variant_t vIndex;
	vIndex=long(0);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(0);
	vIndex=long(1);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(91);
	vIndex=long(2);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(91);
	vIndex=long(3);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex=long(4);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(91);
	vIndex=long(5);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(91);
	
	if(m_adodc.GetRecordset().GetEof()!=1)
	{
		m_adodc2.SetRecordSource("select Stu_Id,BadgeID as 学号,Chinese as 语文,English as 英语, DataStruct as 数据结构,ComAlgor as 计算机算法,OS as 操作系统,Java as Java from Grade where Stu_Id="+m_datagrid.GetItem(0));
	    m_adodc2.Refresh();
	}
	else
	{
		m_adodc2.SetRecordSource("select Stu_Id,BadgeID as 学号,Chinese as 语文,English as 英语, DataStruct as 数据结构,ComAlgor as 计算机算法,OS as 操作系统,Java as Java from Grade");
	    m_adodc2.Refresh();
	}
    _variant_t vIndex2;
    vIndex2=long(0);
    m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(0);
    vIndex2=long(1);
    m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(91);
    vIndex2=long(2);
    m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
    vIndex2=long(3);
    m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
    vIndex2=long(4);
    m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
    vIndex2=long(5);
    m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
    vIndex2=long(6);
    m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
    vIndex2=long(7);
    m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
}

BOOL CStuManDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
    GetDlgItem(IDC_SEARCH_BUTTON)->EnableWindow(FALSE);
	if(curUser.GetUser_type() != 1)
	{
		GetDlgItem(IDC_ADD_BUTTON)->EnableWindow(FALSE);
		GetDlgItem(IDC_MODISTU_BUTTON)->EnableWindow(FALSE);
		GetDlgItem(IDC_DEL_BUTTON)->EnableWindow(FALSE);
		GetDlgItem(IDC_MODIGRA_BUTTON)->EnableWindow(FALSE);
	}
	GetDlgItem(IDC_SSEX_COMBO)->ShowWindow(FALSE);
	m_search.SetCurSel(0);
	m_sSex.SetCurSel(0);
	RefreshData();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

BEGIN_EVENTSINK_MAP(CStuManDlg, CDialog)
    //{{AFX_EVENTSINK_MAP(CStuManDlg)
	ON_EVENT(CStuManDlg, IDC_DATAGRID1, 218 /* RowColChange */, OnRowColChangeDatagrid1, VTS_PVARIANT VTS_I2)
	ON_EVENT(CStuManDlg, IDC_DATAGRID1, 211 /* Change */, OnChangeDatagrid1, VTS_NONE)
	ON_EVENT(CStuManDlg, IDC_DATAGRID1, 216 /* HeadClick */, OnHeadClickDatagrid1, VTS_I2)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

void CStuManDlg::OnRowColChangeDatagrid1(VARIANT FAR* LastRow, short LastCol) 
{
	// TODO: Add your control notification handler code here
	m_adodc2.SetRecordSource("select Stu_Id,BadgeID as 学号,Chinese as 语文,English as 英语, DataStruct as 数据结构,ComAlgor as 计算机算法,OS as 操作系统,Java as Java from Grade where Stu_Id="+m_datagrid.GetItem(0));
	m_adodc2.Refresh();

	_variant_t vIndex2;
	vIndex2=long(0);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(0);
	vIndex2=long(1);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(91);
	vIndex2=long(2);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(3);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(4);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(5);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(6);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(7);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);

	
}



void CStuManDlg::OnAddButton() 
{
	// TODO: Add your control notification handler code here
	CEditDlg dlg;
	
	dlg.cStu_Id="";
	dlg.strSex="男";
	if(dlg.DoModal()==IDOK)
	RefreshData();
}

void CStuManDlg::OnModistuButton() 
{
	// TODO: Add your control notification handler code here
	if(m_adodc.GetRecordset().GetEof()==1)
	{
		MessageBox("没有数据");
		return;
	}

	CEditDlg dlg;

	dlg.cStu_Id=m_datagrid.GetItem(0);
	dlg.m_BadgeID=m_datagrid.GetItem(1);
	dlg.m_StuName=m_datagrid.GetItem(2);
	dlg.strSex=m_datagrid.GetItem(3);
	dlg.m_Birth=m_datagrid.GetItem(4);
	dlg.m_Major=m_datagrid.GetItem(5);

	if(dlg.DoModal()==IDOK)
		RefreshData();
	
}

void CStuManDlg::OnDelButton() 
{
	// TODO: Add your control notification handler code here
	if(m_adodc.GetRecordset().GetEof()==1)
	{
		MessageBox("请选择要删除的数据");
		return;
	}

	if(MessageBox("是否删除当前记录?","请确认",MB_YESNO)==IDYES)
	{
		CBase_Imfo bas;
		CGrade gra;
		bas.sql_delete(m_datagrid.GetItem(0));
		gra.sql_delete(m_datagrid2.GetItem(0));
		RefreshData();
	}
	
}

void CStuManDlg::OnModigraButton() 
{
	// TODO: Add your control notification handler code here
	if(m_adodc2.GetRecordset().GetEof()==1)
	{
		MessageBox("没有数据");
		return;
	}

	CEditGraDlg dlg;

	dlg.cStu_Id=m_datagrid2.GetItem(0);
	dlg.m_BadgeID=m_datagrid2.GetItem(1);
	dlg.m_Chinese=atof(m_datagrid2.GetItem(2));
	dlg.m_English=atof(m_datagrid2.GetItem(3));
	dlg.m_DataStruct=atof(m_datagrid2.GetItem(4));
	dlg.m_ComAlgor=atof(m_datagrid2.GetItem(5));
	dlg.m_OS=atof(m_datagrid2.GetItem(6));
	dlg.m_Java=atof(m_datagrid2.GetItem(7));

	if(dlg.DoModal()==IDOK)
		RefreshData();
	
}

void CStuManDlg::OnRefreshButton() 
{
	// TODO: Add your control notification handler code here
	RefreshData();
	
}

void CStuManDlg::OnChangeDatagrid1() 
{
	// TODO: Add your control notification handler code here
	m_adodc2.SetRecordSource("select Stu_Id,BadgeID as 学号,Chinese as 语文,English as 英语, DataStruct as 数据结构,ComAlgor as 计算机算法,OS as 操作系统,Java as Java from Grade where Stu_Id="+m_datagrid.GetItem(0));
	m_adodc2.Refresh();

	_variant_t vIndex2;
	vIndex2=long(0);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(0);
	vIndex2=long(1);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(91);
	vIndex2=long(2);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(3);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(4);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(5);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(6);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(7);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	
}

void CStuManDlg::OnSearchButton() 
{
	// TODO: Add your control notification handler code here
    UpdateData(true);
	if(m_searchedit=="")
	{
		MessageBox("请输入查询条件.");
		return;
	}
	switch(m_search.GetCurSel())
	{
		case 0:
			{
				m_adodc.SetRecordSource("select Stu_Id,BadgeID as 学号,Stu_Name as 姓名,Sex as 性别, Birth as 生日,Major as 专业 from Base_Imfo where BadgeID='"+m_searchedit+"'");
                m_adodc.Refresh();
				break;
			}
		case 1:
			{
				m_adodc.SetRecordSource("select Stu_Id,BadgeID as 学号,Stu_Name as 姓名,Sex as 性别, Birth as 生日,Major as 专业 from Base_Imfo where Stu_Name='"+m_searchedit+"'");
                m_adodc.Refresh();
				break;
			}
		case 3:
			{
				m_adodc.SetRecordSource("select Stu_Id,BadgeID as 学号,Stu_Name as 姓名,Sex as 性别, Birth as 生日,Major as 专业 from Base_Imfo where Major ='"+m_searchedit+"'");
                m_adodc.Refresh();
				break;
			}
	}

    if(m_adodc.GetRecordset().GetEof()==1)
	{
		m_adodc2.SetRecordSource("select Stu_Id,BadgeID as 学号,Chinese as 语文,English as 英语, DataStruct as 数据结构,ComAlgor as 计算机算法,OS as 操作系统,Java as Java from Grade where BadgeID=':'");
	    m_adodc2.Refresh();
		MessageBox("没找到!");
        return;
	}

	_variant_t vIndex;
	vIndex=long(0);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(0);
	vIndex=long(1);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(91);
	vIndex=long(2);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(91);
	vIndex=long(3);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex=long(4);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(91);
	vIndex=long(5);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(91);

    m_adodc2.SetRecordSource("select Stu_Id,BadgeID as 学号,Chinese as 语文,English as 英语, DataStruct as 数据结构,ComAlgor as 计算机算法,OS as 操作系统,Java as Java from Grade where Stu_Id="+m_datagrid.GetItem(0));
	m_adodc2.Refresh();

	_variant_t vIndex2;
	vIndex2=long(0);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(0);
	vIndex2=long(1);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(91);
	vIndex2=long(2);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(3);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(4);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(5);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(6);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(7);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);

}

void CStuManDlg::OnSelchangeSearchCombo() 
{

	// TODO: Add your control notification handler code here
	m_searchedit=="";
	UpdateData(FALSE);
	if(m_search.GetCurSel()==2)
	{
		GetDlgItem(IDC_SSEX_COMBO)->ShowWindow(TRUE);
		GetDlgItem(IDC_SEARCH_EDIT)->ShowWindow(FALSE);
		GetDlgItem(IDC_SEARCH_BUTTON)->ShowWindow(FALSE);
	}
	else
	{
		GetDlgItem(IDC_SSEX_COMBO)->ShowWindow(FALSE);
		GetDlgItem(IDC_SEARCH_EDIT)->ShowWindow(TRUE);
		GetDlgItem(IDC_SEARCH_BUTTON)->ShowWindow(TRUE);
	}

}

void CStuManDlg::OnSelchangeSsexCombo() 
{
	// TODO: Add your control notification handler code here
	if(m_sSex.GetCurSel()==0)
	{
		m_adodc.SetRecordSource("select Stu_Id,BadgeID as 学号,Stu_Name as 姓名,Sex as 性别, Birth as 生日,Major as 专业 from Base_Imfo where Sex='男'");
		m_adodc.Refresh();
	}
	else
	{
		m_adodc.SetRecordSource("select Stu_Id,BadgeID as 学号,Stu_Name as 姓名,Sex as 性别, Birth as 生日,Major as 专业 from Base_Imfo where Sex='女'");
		m_adodc.Refresh();
	}
	    if(m_adodc.GetRecordset().GetEof()==1)
	{
		m_adodc2.SetRecordSource("select Stu_Id,BadgeID as 学号,Chinese as 语文,English as 英语, DataStruct as 数据结构,ComAlgor as 计算机算法,OS as 操作系统,Java as Java from Grade where BadgeID=':'");
	    m_adodc2.Refresh();
		MessageBox("没找到!");
		return;
	}

	_variant_t vIndex;
	vIndex=long(0);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(0);
	vIndex=long(1);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(91);
	vIndex=long(2);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(91);
	vIndex=long(3);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex=long(4);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(91);
	vIndex=long(5);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(91);

	m_adodc2.SetRecordSource("select Stu_Id,BadgeID as 学号,Chinese as 语文,English as 英语, DataStruct as 数据结构,ComAlgor as 计算机算法,OS as 操作系统,Java as Java from Grade where Stu_Id="+m_datagrid.GetItem(0));
	m_adodc2.Refresh();

	_variant_t vIndex2;
	vIndex2=long(0);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(0);
	vIndex2=long(1);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(91);
	vIndex2=long(2);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(3);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(4);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(5);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(6);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);
	vIndex2=long(7);
	m_datagrid2.GetColumns().GetItem(vIndex2).SetWidth(56);

}

static int ClkNum = 0; //单击次数
void CStuManDlg::OnHeadClickDatagrid1(short ColIndex) 
{
	// TODO: Add your control notification handler code here
	
}

void CStuManDlg::OnChangeSearchEdit() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	UpdateData(true);
	if(m_searchedit!="")
		GetDlgItem(IDC_SEARCH_BUTTON)->EnableWindow(TRUE);
	else 
		GetDlgItem(IDC_SEARCH_BUTTON)->EnableWindow(FALSE);
}

⌨️ 快捷键说明

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