📄 grademana.cpp
字号:
// GradeMana.cpp : implementation file
//
#include "stdafx.h"
#include "教学管理系统.h"
#include "GradeMana.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// GradeMana dialog
GradeMana::GradeMana(CWnd* pParent /*=NULL*/)
: CDialog(GradeMana::IDD, pParent)
{
//{{AFX_DATA_INIT(GradeMana)
coursenumber = _T("");
testgrade = _T("");
usualgrade = _T("");
teachnumber = _T("");
studentnumber = _T("");
gap = _T("");
//}}AFX_DATA_INIT
}
void GradeMana::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(GradeMana)
DDX_Control(pDX, IDC_GRADEMANA_QUERME, box2);
DDX_Control(pDX, IDC_GRADEMANA_INMETH, box1);
DDX_Control(pDX, IDC_LIST1, list);
DDX_Text(pDX, IDC_GRADEMANA_COUNO, coursenumber);
DDX_Text(pDX, IDC_GRADEMANA_GRADE1, testgrade);
DDX_Text(pDX, IDC_GRADEMANA_GRADE2, usualgrade);
DDX_Text(pDX, IDC_GRADEMANA_TEANO, teachnumber);
DDX_Text(pDX, IDC_GRADEMANA_STUNO, studentnumber);
DDX_Text(pDX, IDC_GRADEMANA_INPUT, gap);
//}}AFX_DATA_MAP
}
BOOL GradeMana::OnInitDialog()
{
CDialog::OnInitDialog();
DWORD dwExStyle=LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP ;
list.SetExtendedStyle(dwExStyle);
list.InsertColumn(0,"总评成绩",LVCFMT_CENTER,120);
list.InsertColumn(0,"平时成绩",LVCFMT_CENTER,120);
list.InsertColumn(0,"考试成绩",LVCFMT_CENTER,120);
list.InsertColumn(0,"教师号",LVCFMT_CENTER,85);
list.InsertColumn(0,"学号",LVCFMT_CENTER,85);
list.InsertColumn(0,"课程号",LVCFMT_CENTER,85);
box1.AddString("按课程号输入");
box1.AddString("按学号输入");
box2.AddString("系号");
box2.AddString("上课教师职工号");
box2.AddString("课程号");
box2.AddString("学生姓名");
box2.AddString("学号");
chose=-1;
select=-1;
return TRUE;
}
BEGIN_MESSAGE_MAP(GradeMana, CDialog)
//{{AFX_MSG_MAP(GradeMana)
ON_BN_CLICKED(IDC_GRADEMANA_QUERYCOU, OnGrademanaQuerycou)
ON_BN_CLICKED(IDC_GRADEMANA_ADD, OnGrademanaAdd)
ON_BN_CLICKED(IDC_GRADEMANA_MODIFY, OnGrademanaModify)
ON_BN_CLICKED(IDC_GRADEMANA_QUERY, OnGrademanaQuery)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// GradeMana message handlers
void GradeMana::OnCancel()
{
// TODO: Add extra cleanup here
EndDialog(0);
}
void GradeMana::OnGrademanaQuerycou()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
int i= box1.GetCurSel();
if(i==0)
{
chose=1;
}
if(i==1)
{
chose=2;
}
if(chose==-1)
{
AfxMessageBox("请选择输入方式");
return;
}
CString sSql,a,b,c,d,e,f;
if(chose==1)
{
if(coursenumber.IsEmpty())
{
AfxMessageBox("请输入课程号");
return;
}
connection.Initialize();
sSql.Format("select * from 成绩 where 课程号='%s' order by 学号 desc",coursenumber);
connection.Connect(sSql);
list.DeleteAllItems();
if((connection.m_pRecordset->adoEOF))
{
AfxMessageBox("没有学生选修该课程");
connection.Unitialize();
return ;
}
connection.m_pRecordset->MoveFirst();
while(!connection.m_pRecordset->adoEOF)
{
_variant_t TheValue;
TheValue = connection.m_pRecordset->Fields->GetItem("课程号")->Value;
a=TheValue.bstrVal;
TheValue = connection.m_pRecordset->Fields->GetItem("学号")->Value;
b=TheValue.bstrVal;
TheValue = connection.m_pRecordset->Fields->GetItem("考试成绩")->Value;
c=TheValue.bstrVal;
TheValue = connection.m_pRecordset->Fields->GetItem("平时成绩")->Value;
d=TheValue.bstrVal;
TheValue = connection.m_pRecordset->Fields->GetItem("总评成绩")->Value;
e=TheValue.bstrVal;
int nIndex= list.InsertItem(0,a);
list.SetItemText(nIndex,1,b );
list.SetItemText(nIndex,3,c );
list.SetItemText(nIndex,4,d );
list.SetItemText(nIndex,5,e );
connection1.Initialize();
sSql.Format("select * from 选修 where 课程号='%s' and 学号 ='%s'",a,b);
connection1.Connect(sSql);
connection1.m_pRecordset->MoveFirst();
while(!connection1.m_pRecordset->adoEOF)
{
_variant_t TheValue;
TheValue = connection1.m_pRecordset->Fields->GetItem("教师号")->Value;
f=TheValue.bstrVal;
list.SetItemText(nIndex,2,f );
connection1.m_pRecordset->MoveNext();
}
connection1.Unitialize();
connection.m_pRecordset->MoveNext();
}
connection.Unitialize();
}
}
void GradeMana::OnGrademanaAdd()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(chose==-1)
{
AfxMessageBox("请选择输入方式");
return;
}
CString sSql,a,b,c;
if(coursenumber.IsEmpty())
{
AfxMessageBox("请输入课程号");
return;
}
if(studentnumber.IsEmpty())
{
AfxMessageBox("请输入学号");
return;
}
if(testgrade.IsEmpty())
{
AfxMessageBox("请输入考试成绩");
return;
}
if(usualgrade.IsEmpty())
{
AfxMessageBox("请输入平时成绩");
return;
}
connection.Initialize();
sSql.Format("select * from 选修 where 课程号='%s'and 学号='%s'",coursenumber,studentnumber);
connection.Connect(sSql);
if(connection.m_pRecordset->adoEOF)
{
AfxMessageBox("该学生没有选修该课程");
connection.Unitialize();testgrade="";
usualgrade="";
UpdateData(FALSE);
return;
}
connection.Unitialize();
connection.Initialize();
sSql.Format("select * from 成绩 where 课程号='%s'and 学号='%s'",coursenumber,studentnumber);
connection.Connect(sSql);
if(!(connection.m_pRecordset->adoEOF))
{
_variant_t TheValue;
TheValue = connection.m_pRecordset->Fields->GetItem("考试成绩")->Value;
a=TheValue.bstrVal;
if(a!="0")
{
AfxMessageBox("该学生已录入该课程成绩!");
connection.Unitialize();testgrade="";
usualgrade="";
UpdateData(FALSE);
return;
}
}
CString grade;
float temp;
temp=atol(testgrade)*0.7+atol(usualgrade)*0.3;
grade.Format("%g",temp);
connection.m_pRecordset->Fields->GetItem(_variant_t("考试成绩"))->Value=_bstr_t(testgrade);
connection.m_pRecordset->Fields->GetItem(_variant_t("平时成绩"))->Value=_bstr_t(usualgrade);
connection.m_pRecordset->Fields->GetItem(_variant_t("总评成绩"))->Value=_bstr_t(grade);
connection.m_pRecordset->Update();
connection.Unitialize();
OnGrademanaQuerycou();
testgrade="";
usualgrade="";
UpdateData(FALSE);
MessageBox("成绩录入成功");
}
void GradeMana::OnGrademanaModify()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(coursenumber.IsEmpty())
{
AfxMessageBox("请输入课程号");
return;
}
if(studentnumber.IsEmpty())
{
AfxMessageBox("请输入学号");
return;
}
if(testgrade.IsEmpty())
{
AfxMessageBox("请输入考试成绩");
return;
}
if(usualgrade.IsEmpty())
{
AfxMessageBox("请输入平时成绩");
return;
}
connection.Initialize();
CString student;
student.Format("select * from 成绩 where 课程号='%s'and 学号='%s'",coursenumber,studentnumber);
connection.Connect(student);
if(connection.m_pRecordset->adoEOF)
{
AfxMessageBox("该学生没有选修该课程,修改失败");
connection.Unitialize();
return;
}
CString grade;
float temp;
temp=atol(testgrade)*0.7+atol(usualgrade)*0.3;
grade.Format("%g",temp);
connection.m_pRecordset->Fields->GetItem(_variant_t("考试成绩"))->Value=_bstr_t(testgrade);
connection.m_pRecordset->Fields->GetItem(_variant_t("平时成绩"))->Value=_bstr_t(usualgrade);
connection.m_pRecordset->Fields->GetItem(_variant_t("总评成绩"))->Value=_bstr_t(grade);
connection.m_pRecordset->Update();
connection.Unitialize();
OnGrademanaQuerycou();
MessageBox("成绩修改成功");
}
void GradeMana::OnGrademanaQuery()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
int i= box2.GetCurSel();
if(i==0){select=1;}
if(i==1){select=2;}
if(i==2){select=3;}
if(i==3){select=4;}
if(i==4){select=5;}
if(select==-1)
{
AfxMessageBox("请选择查询方式");
return;
}
if(gap.IsEmpty())
{
AfxMessageBox("请输入查询资料");
return;
}
GradShowDlg.gap=gap;
GradShowDlg.select=select;
GradShowDlg.DoModal();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -