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

📄 grademana.cpp

📁 分管理员和学生界面
💻 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 + -