📄 grade_levelinfodlg.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 + -