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

📄 selecoumana.cpp

📁 分管理员和学生界面
💻 CPP
字号:
// SELECOUMANA.cpp : implementation file
//

#include "stdafx.h"
#include "教学管理系统.h"
#include "SELECOUMANA.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// SELECOUMANA dialog


SELECOUMANA::SELECOUMANA(CWnd* pParent /*=NULL*/)
	: CDialog(SELECOUMANA::IDD, pParent)
{
	//{{AFX_DATA_INIT(SELECOUMANA)
	number1 = _T("");
	number2 = _T("");
	coursenumber = _T("");
	teachernumber = _T("");
	//}}AFX_DATA_INIT
}


void SELECOUMANA::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(SELECOUMANA)
	DDX_Control(pDX, IDC_LIST1, courselist);
	DDX_Text(pDX, IDC_SELECOUMANA_NO1, number1);
	DDX_Text(pDX, IDC_SELECOUMANA_NO2, number2);
	DDX_Text(pDX, IDC_SELECOUMANA_CONO, coursenumber);
	DDX_Text(pDX, IDC_SELECOUMANA_TEANO, teachernumber);
	//}}AFX_DATA_MAP
}

BOOL SELECOUMANA::OnInitDialog()
{
	CDialog::OnInitDialog();

	DWORD dwExStyle=LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP ;  
    courselist.SetExtendedStyle(dwExStyle);
    courselist.InsertColumn(0,"教师号",LVCFMT_CENTER,70);
	courselist.InsertColumn(0,"学分",LVCFMT_CENTER,50);
    courselist.InsertColumn(0,"学时",LVCFMT_CENTER,50);
    courselist.InsertColumn(0,"课程名称",LVCFMT_CENTER,200);
	courselist.InsertColumn(0,"课程号",LVCFMT_CENTER,70);
    show();
	// TODO:  在此添加额外的初始化

	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}

BEGIN_MESSAGE_MAP(SELECOUMANA, CDialog)
	//{{AFX_MSG_MAP(SELECOUMANA)
	ON_BN_CLICKED(IDC_SELECOUMANA_OK, OnSelecoumanaOk)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	ON_BN_CLICKED(IDC_SELECOUMANA_QUERY, OnSelecoumanaQuery)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// SELECOUMANA message handlers

void SELECOUMANA::show()
{
	CString sSql,a,b,c,d,f;
	float e;
	connection.Initialize();
	sSql.Format("select * from 课程 order by 课程号 desc");
	connection.Connect(sSql);
	courselist.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;

       	e= connection.m_pRecordset->Fields->GetItem("学分")->Value;
		d.Format("%2g",e);
		flag=0;
		connection1.Initialize();
		sSql.Format("select * from 教学 where 课程号='%s'order by 职工号 desc ",a);
		connection1.Connect(sSql);
		if((connection1.m_pRecordset->adoEOF))
		{
			connection1.Unitialize();
			flag=1;
		}
		if(flag==0)
		{
			connection1.m_pRecordset->MoveFirst();
			while(!connection1.m_pRecordset->adoEOF)
			{    
				_variant_t TheValue; 
				TheValue = connection1.m_pRecordset->Fields->GetItem("职工号")->Value;
				f=TheValue.bstrVal;
				int nIndex= courselist.InsertItem(0,a);
				courselist.SetItemText(nIndex,1,b );
				courselist.SetItemText(nIndex,2,c);   
				courselist.SetItemText(nIndex,3,d);
				courselist.SetItemText(nIndex,4,f);
				connection1.m_pRecordset->MoveNext();
			}
			connection1.Unitialize();
		}
		connection.m_pRecordset->MoveNext();
	} 
	connection.Unitialize();
}

void SELECOUMANA::OnSelecoumanaOk() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	float sum=0,temp,credit;
	CString n[100];
	if(number1.IsEmpty())
	{
		AfxMessageBox("请输入起始学号");
		return;
	}
	if(number2.IsEmpty())
	{
		AfxMessageBox("请输入结尾学号");
		return;
	}
	if(coursenumber.IsEmpty())
	{
		AfxMessageBox("请输入课程号");
		return;
	}
	CString sql;
	connection1.Initialize();
	sql.Format("select * from 教学 where 课程号='%s'and 职工号='%s'",coursenumber,teachernumber);
	connection1.Connect(sql);
	if(connection1.m_pRecordset->adoEOF)
	{
		AfxMessageBox("该教师不教此课程");
		connection1.Unitialize();
		return;
	}
	connection1.Unitialize();
	connection.Initialize();
	sql.Format("select * from 课程 where 课程号='%s'",coursenumber);
	connection.Connect(sql);
	if(connection.m_pRecordset->adoEOF)
	{
		AfxMessageBox("没有该系资料");
		connection.Unitialize();
		return;
	}
	connection.Unitialize();
	long num1=atoi(number1);
	long num2=atoi(number2);
	CString sSql;
	for(int m=num1;m<=num2;m++)
	{ 
		int i=0;int tag=0;int flag=0;int p=0;sum=0;
		CString number;
		number.Format("%d",m);
		CString student;
		connection.Initialize();
		student.Format("select * from 学生 where 学号='%s'",number);
		connection.Connect(student);
		if(connection.m_pRecordset->adoEOF)
		{
			AfxMessageBox("没有学号:"+number +" 的资料");
			connection.Unitialize();
			flag=1;
		}	
		if(flag==0)
		{   
			connection.Unitialize();
			connection.Initialize();
			sSql.Format("select * from 选修 where 学号='%s'",number);
			connection.Connect(sSql);
			if(connection.m_pRecordset->adoEOF)
			{
				p=1;connection.Unitialize();
			}
			if(p==0)
			{
				connection.m_pRecordset->MoveFirst();
				while(!connection.m_pRecordset->adoEOF)
				{ 
					_variant_t TheValue; 
					TheValue=connection.m_pRecordset->Fields->GetItem("课程号")->Value;
					n[i]=TheValue.bstrVal;
					i++;
					connection.m_pRecordset->MoveNext();
				}
				connection.Unitialize();
				for(int j=0;j<i;j++)
				{
					tag=0;connection.Initialize();
					sSql.Format("select * from 课程 where 课程号='%s'",n[j]);
					connection.Connect(sSql);
					connection.m_pRecordset->MoveFirst();
					while(!connection.m_pRecordset->adoEOF)
					{ 
						temp=sum;
						sum=connection.m_pRecordset->Fields->GetItem("学分")->Value;
						sum+=temp;
						connection.m_pRecordset->MoveNext();
					}
					connection.Unitialize();
				}
				connection.Initialize();
				sSql.Format("select * from 课程 where 课程号='%s'",coursenumber);
				connection.Connect(sSql);
				connection.m_pRecordset->MoveFirst();
				while(!connection.m_pRecordset->adoEOF)
				{
					credit=connection.m_pRecordset->Fields->GetItem("学分")->Value;
					connection.m_pRecordset->MoveNext();
				}
				connection.Unitialize();
				sum+=credit;
				if(sum>15)
				{
					MessageBox("学号: "+number+" 选修学分将超过15分,不能选修该课程");
					tag=1;
				}
			}
			if(tag==0)
			{ 
				connection.Initialize();
				sSql.Format("select * from 选修 where 课程号='%s'and 学号='%s'",coursenumber,number);
				connection.Connect(sSql);
				if(!(connection.m_pRecordset->adoEOF))
				{
					AfxMessageBox("学号: "+number+ "已选该课程,不可重复选修");
					connection.Unitialize();
					tag=1;
				}
				if(tag==0)
				{
					connection.m_pRecordset->AddNew();///添加新记录 
					connection.m_pRecordset->PutCollect("课程号",_variant_t(coursenumber));
					connection.m_pRecordset->PutCollect("学号",_variant_t(number));
					connection.m_pRecordset->PutCollect("教师号",_variant_t(teachernumber));
					connection.m_pRecordset->Update();
					connection.Unitialize();
					connection.Initialize();
					sSql.Format("select * from 成绩");
					connection.Connect(sSql);
					connection.m_pRecordset->AddNew();///添加新记录 
					connection.m_pRecordset->PutCollect("课程号",_variant_t(coursenumber));
					connection.m_pRecordset->PutCollect("学号",_variant_t(number));
					connection.m_pRecordset->PutCollect("考试成绩",_variant_t("0"));
					connection.m_pRecordset->PutCollect("平时成绩",variant_t("0"));
					connection.m_pRecordset->PutCollect("总评成绩",_variant_t("0"));
					connection.m_pRecordset->Update();
					connection.Unitialize();
					MessageBox("学号: "+number+ "选修成功");
				}
			}
		}
    }
}

void SELECOUMANA::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	int nItem=courselist.GetNextItem(-1,LVNI_SELECTED);
	if (nItem!=-1)
	{
		coursenumber=courselist.GetItemText(nItem,0);
		teachernumber=courselist.GetItemText(nItem,4);
		UpdateData(FALSE);
	}
	*pResult = 0;
}

void SELECOUMANA::OnCancel() 
{
	// TODO: Add extra cleanup here
	EndDialog(0);
}

void SELECOUMANA::OnSelecoumanaQuery() 
{
	// TODO: Add your control notification handler code here
	SelcoushowDlg.DoModal();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -