📄 成绩管理系统dlg.cpp
字号:
holder=prst->GetCollect("考试成绩");
if(holder.vt!=VT_NULL)
m_list.SetItemText(i,2,(char*)(_bstr_t)holder);
holder=prst->GetCollect("平时成绩");
if(holder.vt!=VT_NULL)
m_list.SetItemText(i,3,(char*)(_bstr_t)holder);
holder=prst->GetCollect("总评成绩");
if(holder.vt!=VT_NULL)
m_list.SetItemText(i,4,(char*)(_bstr_t)holder);
holder=prst->GetCollect("补考");
if(holder.vt!=VT_NULL)
{
if(holder.boolVal)
m_list.SetItemText(i,5,"1");
else m_list.SetItemText(i,5,"0");
}
holder=prst->GetCollect("重修");
if(holder.vt!=VT_NULL)
{
if(holder.boolVal)
m_list.SetItemText(i,6,"1");
else m_list.SetItemText(i,6,"0");
}
prst->MoveNext();
}
prst->Close();
key=false;
}
catch(_com_error&e)
{
AfxMessageBox("操作异常!");
return;
}
}
void CMyDlg::OnSelchangeComboboxex1()
{
// TODO: Add your control notification handler code here
///////////////////////单击选择列表显示///////////////////////////////
CString lb;
m_LB.GetLBText(m_LB.GetCurSel(),lb);
/////////////////////列表加线和整行选择/////////////////////////////////
LONG lStyle = m_list.SendMessage
(LVM_GETEXTENDEDLISTVIEWSTYLE);
lStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES|
LVS_EX_HEADERDRAGDROP;
m_list.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0,
(LPARAM)lStyle);
m_list.SetExtendedStyle(lStyle);
/////////////////////////////////////////////////////////////
int nWidth=100;
int nColumnCount = m_list.GetHeaderCtrl()->GetItemCount();
qq=true;
m_dy.EnableWindow(true);
if(lb=="学生资料")
{
for (int i=0;i < nColumnCount;i++)
{
m_list.DeleteColumn(0);
}
Clean();
m_sc.EnableWindow(TRUE);
m_xg.EnableWindow(TRUE);
m_list.EnableWindow(TRUE);
m_list.SetRedraw(TRUE);m_list.UpdateData(TRUE);
m_list.InsertColumn(0,"学号",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(1,"姓名",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(2,"性别",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(3,"年龄",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(4,"所在系",LVCFMT_LEFT,nWidth);
Readstudent();
}
if(lb=="课程表")
{
for (int i=0;i < nColumnCount;i++)
{
m_list.DeleteColumn(0);
}
Clean();
m_sc.EnableWindow(TRUE);
m_xg.EnableWindow(TRUE);
m_list.EnableWindow(TRUE);
m_list.DeleteAllItems();m_list.Update(TRUE);
m_list.InsertColumn(0,"课程号",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(1,"课程名",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(2,"任课老师",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(3,"学分",LVCFMT_LEFT,nWidth);
Readcourse();
}
if(lb=="选修课成绩表")
{
for (int i=0;i < nColumnCount;i++)
{
m_list.DeleteColumn(0);
}
Clean();
m_sc.EnableWindow(TRUE);
m_xg.EnableWindow(TRUE);
m_list.EnableWindow(TRUE);
m_list.InsertColumn(0,"学号",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(1,"课程号",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(2,"考试成绩",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(3,"平时成绩",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(4,"总评成绩",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(5,"补考",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(6,"重修",LVCFMT_LEFT,nWidth);
ReadSC();
}
if(lb=="补考通知单"||lb=="重修通知单")
{
for (int i=0;i < nColumnCount;i++)
{
m_list.DeleteColumn(0);
}
Clean();
m_sc.EnableWindow(TRUE);
m_xg.EnableWindow(TRUE);
m_list.EnableWindow(TRUE);
m_list.InsertColumn(0,"学号",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(1,"姓名",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(2,"所在系",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(3,"课程号",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(4,"课程名",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(5,"学分",LVCFMT_LEFT,nWidth);
m_list.InsertColumn(6,"成绩",LVCFMT_LEFT,nWidth);
if(lb=="补考通知单")Readbukaotongzhi();
if(lb=="重修通知单")Readchongxiutongzhi();
}
}
void CMyDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
CString lb;
m_LB.GetLBText(m_LB.GetCurSel(),lb);
if(lb=="")
{
AfxMessageBox("请先选择列表!");
return;
}
LONG lStyle = m_list.SendMessage
(LVM_GETEXTENDEDLISTVIEWSTYLE);
lStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES|
LVS_EX_HEADERDRAGDROP;
m_list.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0,
(LPARAM)lStyle);
m_list.SetExtendedStyle(lStyle);
// m_list.;
if(lb=="学生资料")
{
Clean();UpdateData(TRUE);
int i=m_list.GetSelectionMark();
m_stu_xh=m_list.GetItemText(i,0);
m_stu_xm=m_list.GetItemText(i,1);
m_stu_xb=m_list.GetItemText(i,2);
m_stu_nl=m_list.GetItemText(i,3);
m_stu_szx=m_list.GetItemText(i,4);
UpdateData(FALSE);
}
if(lb=="课程表")
{
Clean();UpdateData(TRUE);
int i=m_list.GetSelectionMark();
m_kc_kch=m_list.GetItemText(i,0);
m_kc_kcm=m_list.GetItemText(i,1);
m_kc_rkls=m_list.GetItemText(i,2);
m_kc_xf=m_list.GetItemText(i,3);
UpdateData(FALSE);
}
if(lb=="选修课成绩表")
{
Clean();UpdateData(TRUE);
CString kscj,pscj;
int i=m_list.GetSelectionMark();
m_xuqk_xh=m_list.GetItemText(i,0);
m_xuqk_kch=m_list.GetItemText(i,1);
m_xuqk_kscj=m_list.GetItemText(i,2);
m_xxqk_pscj=m_list.GetItemText(i,3);
if(atoi(m_list.GetItemText(i,5)))m_xxqk_bk=true;
else if(atoi(m_list.GetItemText(i,6)))m_xxqk_cx=true;
UpdateData(FALSE);
}
/* if(lb=="补考通知单"||lb=="重修通知单")
{
Clean();UpdateData(TRUE);
int i=m_list.GetSelectionMark();
m_xuqk_xh=m_list.GetItemText(i,0);
m_stu_xm=m_list.GetItemText(i,1);
m_stu_szx=m_list.GetItemText(i,2);
m_xuqk_kch=m_list.GetItemText(i,3);
m_kc_kcm=m_list.GetItemText(i,4);
m_kc_xf=m_list.GetItemText(i,5);
UpdateData(FALSE);
}
*/
*pResult = 0;
}
void CMyDlg::OnDpdate()
{
// TODO: Add your control notification handler code here
CString lb;
m_LB.GetLBText(m_LB.GetCurSel(),lb);
if(lb=="学生资料")updatestu();
if(lb=="课程表")updatecour();
if(lb=="选修课成绩表")updatesc();
//if(lb=="补考通知单")upbukaotongzhi();
//if(lb=="重修通知单")upchongxiutongzhi();
}
void CMyDlg::updatestu()
{
UpdateData(); // 更新对话框数据
POSITION pos=m_list.GetFirstSelectedItemPosition();
if(pos==NULL)
{
AfxMessageBox("没有选中记录!");
return;
}
if(m_stu_xh=="")
{
// AfxMessageBox("学号不能为空!");
return;
}
CString strSql,stuxh,stuxm,stuxb,stunl,stuszx;
m_STU_XH.GetWindowText(stuxh);
m_STU_XM.GetWindowText(stuxm);
m_STU_XB.GetWindowText(stuxb);
m_STU_NL.GetWindowText(stunl);
m_STU_SZX.GetWindowText(stuszx);
try
{
strSql.Format("update v_student set 姓名='%s',性别='%s',年龄=%d,所在系='%s' where 学号=%d",
stuxm,stuxb,atoi(stunl),stuszx,atoi(stuxh));
_RecordsetPtr prst=NULL;
prst.CreateInstance(__uuidof(Recordset));
prst=m_DBCnt->Execute(_bstr_t(strSql),NULL,adCmdText);
Readstudent();
MessageBox("修改成功!");
}
catch(_com_error& e)
{
AfxMessageBox("操作异常或者是你所在的用户组无此权限!");
return;
}
}
void CMyDlg::updatecour()
{
UpdateData(); // 更新对话框数据
POSITION pos=m_list.GetFirstSelectedItemPosition();
if(pos==NULL)
{
AfxMessageBox("没有选中记录!");
return;
}
if(m_kc_kch=="")
{
// AfxMessageBox("学号不能为空!");
return;
}
CString strSql,kch,kcm,rkls,xf;
m_KC_KCH.GetWindowText(kch);
m_KC_KCM.GetWindowText(kcm);
m_KC_RKLS.GetWindowText(rkls);
m_KC_XF.GetWindowText(xf);
try
{
strSql.Format("update v_course set 课程名='%s',任课老师='%s',学分=%f where 课程号=%d",
kcm,rkls,atof(xf),atoi(kch));
_RecordsetPtr prst=NULL;
prst.CreateInstance(__uuidof(Recordset));
prst=m_DBCnt->Execute(_bstr_t(strSql),NULL,adCmdText);
Readcourse();
MessageBox("修改成功!");
}
catch(_com_error& e)
{
AfxMessageBox("操作异常或者是你所在的用户组无此权限!");
return;
}
}
void CMyDlg::updatesc()
{
UpdateData(); // 更新对话框数据
POSITION pos=m_list.GetFirstSelectedItemPosition();
if(pos==NULL)
{
AfxMessageBox("没有选中记录!");
return;
}
if(m_xuqk_xh==""||m_xuqk_kch=="")
{
// AfxMessageBox("学号不能为空!");
return;
}
CString strSql,xh,kch,bz,kscj,pscj;//_variant_t
float zpcj;
int bk,cx;
m_XXQK_XH.GetWindowText(xh);
m_XXQK_KCH.GetWindowText(kch);
m_XUQK_KSCJ.GetWindowText(kscj);
m_XXQK_PSCJ.GetWindowText(pscj);
if(m_XXQK_BK.GetCheck())bk=1;
else bk=0;
if(m_XXQK_CX.GetCheck())cx=1;
else cx=0;
zpcj=atof(kscj)+atof(pscj);
try
{
strSql.Format("update v_sc set 考试成绩=%f,平时成绩=%f,总评成绩=%f,补考=%d,重修=%d where 学号=%d and 课程号=%d",
atof(kscj),atof(pscj),zpcj,bool(bk),bool(cx),atoi(xh),atoi(kch));
_RecordsetPtr prst=NULL;
prst.CreateInstance(__uuidof(Recordset));
prst=m_DBCnt->Execute(_bstr_t(strSql),NULL,adCmdText);
ReadSC();
MessageBox("修改成功!");
}
catch(_com_error e)
{
AfxMessageBox("操作异常或者是你所在的用户组无此权限!");
return;
}
}
void CMyDlg::Clean()
{
CString lb;
m_LB.GetLBText(m_LB.GetCurSel(),lb);
m_STU_XH.SetWindowText("");
m_STU_XM.SetWindowText("");
m_STU_XB.SetWindowText("");
m_STU_NL.SetWindowText("");
m_STU_SZX.SetWindowText("");
m_KC_KCH.SetWindowText("");
m_KC_KCM.SetWindowText("");
m_KC_RKLS.SetWindowText("");
m_KC_XF.SetWindowText("");
m_XUQK_KSCJ.SetWindowText("");
m_XXQK_XH.SetWindowText("");
m_XXQK_KCH.SetWindowText("");
m_XXQK_PSCJ.SetWindowText("");
m_XXQK_BK.SetCheck(0);
m_XXQK_CX.SetCheck(0);
}
void CMyDlg::Readbukaotongzhi()
{
m_list.DeleteAllItems();
_RecordsetPtr prst=NULL;
_bstr_t strsql("select * from v_bukaotongzhi");
int i=0;
try
{
prst.CreateInstance(__uuidof(Recordset));//MessageBox("1");
prst=m_DBCnt->Execute(strsql,NULL,adCmdText);
_variant_t holder;
while(!prst->adoEOF)
{
holder=prst->GetCollect("学号");
if(holder.vt!=VT_NULL)
m_list.InsertItem(i,(char*)(_bstr_t)holder);
holder=prst->GetCollect("姓名");
if(holder.vt!=VT_NULL)
m_list.SetItemText(i,1,(char*)(_bstr_t)holder);
holder=prst->GetCollect("所在系");
if(holder.vt!=VT_NULL)
m_list.SetItemText(i,2,(char*)(_bstr_t)holder);
holder=prst->GetCollect("课程号");
if(holder.vt!=VT_NULL)
m_list.SetItemText(i,3,(char*)(_bstr_t)holder);
holder=prst->GetCollect("课程名");
if(holder.vt!=VT_NULL)
m_list.SetItemText(i,4,(char*)(_bstr_t)holder);
holder=prst->GetCollect("学分");
if(holder.vt!=VT_NULL)
m_list.SetItemText(i,5,(char*)(_bstr_t)holder);
holder=prst->GetCollect("总评成绩");
if(holder.vt!=VT_NULL)
m_list.SetItemText(i,6,(char*)(_bstr_t)holder);
prst->MoveNext();
}
prst->Close();
}
catch(_com_error&e)
{
AfxMessageBox("操作异常!");
return;
}
}
void CMyDlg::Readchongxiutongzhi()
{
m_list.DeleteAllItems();
_RecordsetPtr prst=NULL;
_bstr_t strsql("select * from v_chongxiutongzhi");
int i=0;
try
{
prst.CreateInstance(__uuidof(Recordset));//MessageBox("1");
prst=m_DBCnt->Execute(strsql,NULL,adCmdText);
_variant_t holder;
while(!prst->adoEOF)
{
holder=prst->GetCollect("学号");
if(holder.vt!=VT_NULL)
m_list.InsertItem(i,(char*)(_bstr_t)holder);
holder=prst->GetCollect("姓名");
if(holder.vt!=VT_NULL)
m_list.SetItemText(i,1,(char*)(_bstr_t)holder);
holder=prst->GetCollect("所在系");
if(holder.vt!=VT_NULL)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -