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

📄 grade_levelinfodlg.cpp

📁 用VC++做的学生管理系统
💻 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;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

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='";//在tb_gradelevel数据表里面查询
	sqlStr+=m_gradekind;
	sqlStr+="'";	
	
	if(!gradelevel_findset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr))//打开数据表
	{
		AfxMessageBox("tb_gradelevel表打开失败!");
	}

	//	gradelevel_findset.AddNew();
	gradelevel_findset.Edit();
	

	gradelevel_findset.m_up_grade=m_upgrade;//对应变量更新
	gradelevel_findset.m_low_grade=m_lowgrade;

//	best_upgrade=gradelevel_findset.m_up_grade;
//	best_lowgrade=gradelevel_findset.m_low_grade;
	gradelevel_findset.Update();
	gradelevel_findset.Requery();
	AfxMessageBox("设置成功!");
//	m_bAdd=false;//设置添加状态为false
//	m_bEdit=false;//设置编辑状态为false
		
	if(gradelevel_findset.IsOpen())
	{
	   gradelevel_findset.Close();
	}
	DisplayRecord();//更新显示
}
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='优秀'";//在tb_gradelevel数据表里面查询
		
	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();
	}

	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);
	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.SetItemData(2,marks);
    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();
	}

	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='良好'";//在tb_gradelevel数据表里面查询
		
	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();
	}

	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);
	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.SetItemData(2,marks);
    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();
	}

	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='及格'";//在tb_gradelevel数据表里面查询
		
	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();
	}

	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);
	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.SetItemData(2,marks);
    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();
	}

	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='不及格'";//在tb_gradelevel数据表里面查询
		
	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();
	}

	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);
	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.SetItemData(2,marks);
    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();
	}

	return;
}

⌨️ 快捷键说明

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