📄 selecoumana.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 + -