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

📄 grade_levelinfodlg.cpp

📁 vc++和SQL Server2000实现学生管理系统
💻 CPP
字号:
// Grade_levelinfodlg.cpp : implementation file
//

#include "stdafx.h"
#include "mystudentsys.h"
#include "Grade_levelinfodlg.h"
#include <stdlib.h>
#include <stdio.h>


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

/////////////////////////////////////////////////////////////////////////////
// CGrade_levelinfodlg dialog


CGrade_levelinfodlg::CGrade_levelinfodlg(CWnd* pParent /*=NULL*/)
	: CDialog(CGrade_levelinfodlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CGrade_levelinfodlg)
	m_gradekind = _T("");
	m_lowgrade = 0.0f;
	m_upgrade = 0.0f;
	//}}AFX_DATA_INIT
}


void CGrade_levelinfodlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CGrade_levelinfodlg)
	DDX_Control(pDX, IDC_LIST3, m_List3);
	DDX_Control(pDX, IDC_COMBO1, m_gradekindC);
	DDX_CBString(pDX, IDC_COMBO1, m_gradekind);
	DDX_Text(pDX, IDC_EDIT_lowgrade, m_lowgrade);
	DDX_Text(pDX, IDC_EDIT_upgrade, m_upgrade);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CGrade_levelinfodlg, CDialog)
	//{{AFX_MSG_MAP(CGrade_levelinfodlg)
	ON_BN_CLICKED(IDC_Btn_setgradelevel, OnBtnsetgradelevel)
	ON_BN_CLICKED(IDC_Btn_findbest, OnBtnfindbest)
	ON_BN_CLICKED(IDC_Btnfindbetter, OnBtnfindbetter)
	ON_BN_CLICKED(IDC_Btnfindnormal, OnBtnfindnormal)
	ON_BN_CLICKED(IDC_Btnfindworse, OnBtnfindworse)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CGrade_levelinfodlg message handlers

BOOL CGrade_levelinfodlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_List3.InsertColumn(0,"学生编号");
	m_List3.InsertColumn(1,"考试科目");
	m_List3.InsertColumn(2,"成绩");
	m_List3.InsertColumn(3,"考试类别");
	m_List3.InsertColumn(4,"时间");
	RECT rect;
	m_List3.GetWindowRect(&rect);
	int wid = rect.right-rect.left;
	m_List3.SetColumnWidth(0,wid/5);
	m_List3.SetColumnWidth(1,wid/5);
    m_List3.SetColumnWidth(2,wid/5);
	m_List3.SetColumnWidth(3,wid/5);
	m_List3.SetColumnWidth(4,wid/5);
	m_List3.SetExtendedStyle(LVS_EX_FULLROWSELECT);
	UpdateData(FALSE);
	return TRUE;
}

void CGrade_levelinfodlg::OnBtnsetgradelevel() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	m_gradekindC.GetWindowText(m_gradekind);
	if(m_gradekind.IsEmpty())
	{
		AfxMessageBox("请输入相应的数据!");
	}
	CString sqlStr;
	sqlStr = "SELECT * FROM tb_gradelevel WHERE tb_gradelevel.grade_level='"+m_gradekind+"'";	
	gradelevel_findset = new CGrade_levelset(&((CMystudentsysApp*)AfxGetApp())->m_DB);	
	if(!gradelevel_findset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr)) //打开数据表
	{
		AfxMessageBox("tb_gradelevel表打开失败!");
	}
	gradelevel_findset->Edit();
	gradelevel_findset->m_up_grade  = m_upgrade; //对应变量更新
	gradelevel_findset->m_low_grade = m_lowgrade;
	gradelevel_findset->Update();
	gradelevel_findset->Requery();
	AfxMessageBox("设置成功!");
	DisplayRecord(); //更新显示
	if(gradelevel_findset->IsOpen())
	{
		gradelevel_findset->Close();
		delete gradelevel_findset;
	}
}
bool CGrade_levelinfodlg::DisplayRecord()
{
	m_upgrade  = gradelevel_findset->m_up_grade; //对应变量更新
	m_lowgrade = gradelevel_findset->m_low_grade;
	UpdateData(FALSE);
	return TRUE;
}

void CGrade_levelinfodlg::OnBtnfindbest() 
{
	// TODO: Add your control notification handler code hereBETWEEN
	CString sqlStr_finduplow;
	sqlStr_finduplow = "SELECT * FROM tb_gradelevel WHERE tb_gradelevel.grade_level='优秀'";
	findbest_uplowset = new CGrade_levelset(&((CMystudentsysApp*)AfxGetApp())->m_DB);	
	if(!findbest_uplowset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_finduplow)) //打开数据表
	{
		AfxMessageBox("tb_gradelevel表打开失败!");
	}
    float upgrade  = findbest_uplowset->m_up_grade;
    float lowgrade = findbest_uplowset->m_low_grade;
	if(findbest_uplowset->IsOpen())
	{
		findbest_uplowset->Close();
		delete findbest_uplowset;
	}
	CString sqlStr_findmarks;
	sqlStr_findmarks.Format("SELECT * FROM tb_examinfo_sub WHERE tb_examinfo_sub.grade\
		<='%f' AND tb_examinfo_sub.grade >='%f'",upgrade,lowgrade);
	exammark_findbestset = new CExaminfo_submarkset(&((CMystudentsysApp*)AfxGetApp())->m_DB);
	if(!exammark_findbestset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_findmarks)) //打开数据表
	{
		AfxMessageBox("tb_examinfo_sub表打开失败!");
	}
	CString stuid,subject,kind;
	float marks;
	CString date;
    CTime tDate;
	int i=0;
	m_List3.DeleteAllItems();
	while(!exammark_findbestset->IsEOF())
	{
		stuid   = exammark_findbestset->m_studentid;
		subject = exammark_findbestset->m_code;
		kind    = exammark_findbestset->m_kind;
		marks   = exammark_findbestset->m_grade;
		char buffer[50];
		_gcvt(marks, 4, buffer );
		tDate = exammark_findbestset->m_examdate;
		date  = tDate.Format("%m/%d/%y"); 
		m_List3.InsertItem(i,stuid.GetBuffer(50));
		m_List3.SetItemText(i,1,subject.GetBuffer(50));
		m_List3.SetItemText(i,2,buffer);
		m_List3.SetItemText(i,3,kind.GetBuffer(50));
		m_List3.SetItemText(i,4,date.GetBuffer(50));
		exammark_findbestset->MoveNext();
		i++;
	}
	UpdateData(FALSE);
	if(exammark_findbestset->IsOpen())
	{
		exammark_findbestset->Close();
		delete exammark_findbestset;
	}
	return;
}

void CGrade_levelinfodlg::OnBtnfindbetter() 
{
	// TODO: Add your control notification handler code here
	CString sqlStr_finduplow;
	sqlStr_finduplow="SELECT * FROM tb_gradelevel WHERE tb_gradelevel.grade_level='良好'";
	findbetter_uplowset = new CGrade_levelset(&((CMystudentsysApp*)AfxGetApp())->m_DB);	
	if(!findbetter_uplowset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_finduplow)) //打开数据表
	{
		AfxMessageBox("tb_gradelevel表打开失败!");
	}
    float upgrade  = findbetter_uplowset->m_up_grade;
    float lowgrade = findbetter_uplowset->m_low_grade;
	if(findbetter_uplowset->IsOpen())
	{
		findbetter_uplowset->Close();
		delete findbetter_uplowset;
	}
	CString sqlStr_findmarks;
	sqlStr_findmarks.Format("SELECT * FROM tb_examinfo_sub WHERE tb_examinfo_sub.grade\
		<='%f' AND tb_examinfo_sub.grade >='%f'",upgrade,lowgrade);
	exammark_findbetterset = new CExaminfo_submarkset(&((CMystudentsysApp*)AfxGetApp())->m_DB);
	if(!exammark_findbetterset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_findmarks)) //打开数据表
	{
		AfxMessageBox("tb_examinfo_sub表打开失败!");
	}
	CString stuid,subject,kind;
	float marks;
	CString date;
    CTime tDate;
	int i=0;
	m_List3.DeleteAllItems();
	while(!exammark_findbetterset->IsEOF())
	{
		stuid   = exammark_findbetterset->m_studentid;
		subject = exammark_findbetterset->m_code;
		kind    = exammark_findbetterset->m_kind;
		marks   = exammark_findbetterset->m_grade;
		char buffer[50];
		_gcvt(marks, 4, buffer );
		tDate = exammark_findbetterset->m_examdate;
		date  = tDate.Format("%m/%d/%y"); 
		m_List3.InsertItem(i,stuid.GetBuffer(50));
		m_List3.SetItemText(i,1,subject.GetBuffer(50));
		m_List3.SetItemText(i,2,buffer);
		m_List3.SetItemText(i,3,kind.GetBuffer(50));
		m_List3.SetItemText(i,4,date.GetBuffer(50));
		exammark_findbetterset->MoveNext();
		i++;
	}
	UpdateData(FALSE);

	if(exammark_findbetterset->IsOpen())
	{
		exammark_findbetterset->Close();
		delete exammark_findbetterset;
	}

	return;
}

void CGrade_levelinfodlg::OnBtnfindnormal() 
{
	// TODO: Add your control notification handler code here	
	CString sqlStr_finduplow;
	sqlStr_finduplow="SELECT * FROM tb_gradelevel WHERE tb_gradelevel.grade_level='及格'";	
	findnormal_uplowset = new CGrade_levelset(&((CMystudentsysApp*)AfxGetApp())->m_DB);	
	if(!findnormal_uplowset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_finduplow)) //打开数据表
	{
		AfxMessageBox("tb_gradelevel表打开失败!");
	}
    float upgrade  = findnormal_uplowset->m_up_grade;
    float lowgrade = findnormal_uplowset->m_low_grade;
	if(findnormal_uplowset->IsOpen())
	{
		findnormal_uplowset->Close();
		delete findnormal_uplowset;
	}
	CString sqlStr_findmarks;
	sqlStr_findmarks.Format("SELECT * FROM tb_examinfo_sub WHERE tb_examinfo_sub.grade\
		<='%f' AND tb_examinfo_sub.grade >='%f'",upgrade,lowgrade);
	exammark_findnormalset = new CExaminfo_submarkset(&((CMystudentsysApp*)AfxGetApp())->m_DB);
	if(!exammark_findnormalset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_findmarks)) //打开数据表
	{
		AfxMessageBox("tb_examinfo_sub表打开失败!");
	}
	CString stuid,subject,kind;
	float marks;
	CString date;
    CTime tDate;
	int i=0;
	m_List3.DeleteAllItems();
	while(!exammark_findnormalset->IsEOF())
	{
		stuid   = exammark_findnormalset->m_studentid;
		subject = exammark_findnormalset->m_code;
		kind    = exammark_findnormalset->m_kind;
		marks   = exammark_findnormalset->m_grade;
		char buffer[50];
		_gcvt(marks, 4, buffer );
		tDate=exammark_findnormalset->m_examdate;
		date = tDate.Format("%m/%d/%y"); 	
		m_List3.InsertItem(i,stuid.GetBuffer(50));
		m_List3.SetItemText(i,1,subject.GetBuffer(50));
		m_List3.SetItemText(i,2,buffer);
		m_List3.SetItemText(i,3,kind.GetBuffer(50));
		m_List3.SetItemText(i,4,date.GetBuffer(50));
		exammark_findnormalset->MoveNext();
		i++;
	}
	UpdateData(FALSE);
	if(exammark_findnormalset->IsOpen())
	{
		exammark_findnormalset->Close();
		delete exammark_findnormalset;
	}
	return;
}

void CGrade_levelinfodlg::OnBtnfindworse() 
{
	// TODO: Add your control notification handler code here	
	CString sqlStr_finduplow;
	sqlStr_finduplow="SELECT * FROM tb_gradelevel WHERE tb_gradelevel.grade_level='不及格'";
	findworse_uplowset = new CGrade_levelset(&((CMystudentsysApp*)AfxGetApp())->m_DB);	
	if(!findworse_uplowset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_finduplow)) //打开数据表
	{
		AfxMessageBox("tb_gradelevel表打开失败!");
	}
    float upgrade  = findworse_uplowset->m_up_grade;
    float lowgrade = findworse_uplowset->m_low_grade;
	if(findworse_uplowset->IsOpen())
	{
		findworse_uplowset->Close();
		delete findworse_uplowset;
	}
	CString sqlStr_findmarks;
	sqlStr_findmarks.Format("SELECT * FROM tb_examinfo_sub WHERE tb_examinfo_sub.grade\
		<='%f' AND tb_examinfo_sub.grade >='%f'",upgrade,lowgrade);
	exammark_findworseset = new CExaminfo_submarkset(&((CMystudentsysApp*)AfxGetApp())->m_DB);
	if(!exammark_findworseset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_findmarks)) //打开数据表
	{
		AfxMessageBox("tb_examinfo_sub表打开失败!");
	}
	CString stuid,subject,kind;
	float marks;
	CString date;
    CTime tDate;
	int i=0;
	m_List3.DeleteAllItems();
	while(!exammark_findworseset->IsEOF())
	{
		stuid   = exammark_findworseset->m_studentid;
		subject = exammark_findworseset->m_code;
		kind    = exammark_findworseset->m_kind;
		marks   = exammark_findworseset->m_grade;
		char buffer[50];
		_gcvt(marks, 4, buffer );
		tDate = exammark_findworseset->m_examdate;    
		date  = tDate.Format("%m/%d/%y");  
		m_List3.InsertItem(i,stuid.GetBuffer(50));
		m_List3.SetItemText(i,1,subject.GetBuffer(50));
		m_List3.SetItemText(i,2,buffer);
		m_List3.SetItemText(i,3,kind.GetBuffer(50));
		m_List3.SetItemText(i,4,date.GetBuffer(50));
		exammark_findworseset->MoveNext();
		i++;
	}
	UpdateData(FALSE);
	if(exammark_findworseset->IsOpen())
	{
		exammark_findworseset->Close();
		delete exammark_findworseset;
	}
	return;
}

⌨️ 快捷键说明

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