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

📄 成绩管理系统dlg.cpp

📁 成绩管理系统,用VC和SQL 2000开发
💻 CPP
📖 第 1 页 / 共 4 页
字号:
		  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 + -