📄 inpluscoredlg.cpp
字号:
// InpluscoreDlg.cpp : implementation file
//
#include "stdafx.h"
#include "学籍管理系统.h"
#include "InpluscoreDlg.h"
#include "MainView.h"
#include "StuinfoSet1.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CInpluscoreDlg dialog
CInpluscoreDlg::CInpluscoreDlg(CWnd* pParent /*=NULL*/)
: CDialog(CInpluscoreDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CInpluscoreDlg)
m_boxcollage = _T("");
m_boxsub = _T("");
m_boxteam = _T("");
m_stunum = _T("");
m_score = _T("");
m_name = _T("");
//}}AFX_DATA_INIT
}
void CInpluscoreDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CInpluscoreDlg)
DDX_Control(pDX, IDC_COMBOBOXEXCOLLAGE, m_comboxcollage);
DDX_Control(pDX, IDC_COMBOBOXEXTEAM, m_comboxteam);
DDX_Control(pDX, IDC_COMBOBOXEXSUB, m_comboxsub);
DDX_Control(pDX, IDC_LIST_PLUIN, m_inplulist);
DDX_CBString(pDX, IDC_COMBOBOXEXCOLLAGE, m_boxcollage);
DDX_CBString(pDX, IDC_COMBOBOXEXSUB, m_boxsub);
DDX_CBString(pDX, IDC_COMBOBOXEXTEAM, m_boxteam);
DDX_Text(pDX, IDC_EDIT_NUM, m_stunum);
DDX_Text(pDX, IDC_EDIT_SCORE, m_score);
DDX_Text(pDX, IDC_EDIT_NAME, m_name);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CInpluscoreDlg, CDialog)
//{{AFX_MSG_MAP(CInpluscoreDlg)
ON_NOTIFY(NM_CLICK, IDC_LIST_PLUIN, OnClickListPluin)
ON_CBN_SELCHANGE(IDC_COMBOBOXEXCOLLAGE, OnSelchangeComboboxexcollage)
ON_CBN_SELCHANGE(IDC_COMBOBOXEXTEAM, OnSelchangeComboboxexteam)
ON_CBN_SELCHANGE(IDC_COMBOBOXEXSUB, OnSelchangeComboboxexsub)
ON_BN_CLICKED(IDC_BUTTON_INPUT, OnButtonInput)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CInpluscoreDlg message handlers
BOOL CInpluscoreDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//初始化列表框
m_inplulist.SetExtendedStyle (LVS_EX_FULLROWSELECT |LVS_EX_GRIDLINES |LVS_EX_INFOTIP);
int nWidth = 110 ;
m_inplulist.InsertColumn( 0 , "学号" ,LVCFMT_LEFT,120 );
m_inplulist.InsertColumn( 1 , "姓名" ,LVCFMT_LEFT,nWidth * 2 / 3 );
m_inplulist.InsertColumn( 2 , "得分" ,LVCFMT_LEFT,nWidth * 2 / 3 );
//在这对对话框进行初始化,向组合框添加学院信息
CDatabase db;
CStuinfoSet rsstu;
CRecordset rs(&db);
CString sqlstr,resul,resul0;
COMBOBOXEXITEM insItem;
insItem.mask=CBEIF_TEXT;
insItem.iItem=0;
insItem.iImage=0;
sqlstr="select * from colinfo";
db.Open(rsstu.GetDefaultConnect());
rs.Open(CRecordset::forwardOnly,sqlstr);
int i=0;
while(!rs.IsEOF())
{
rs.GetFieldValue((int)0,resul);
insItem.pszText=resul.GetBuffer(0);
resul.ReleaseBuffer();
m_comboxcollage.InsertItem(&insItem);
i++;
rs.MoveNext();
}
insItem.pszText="所有学院";
m_comboxcollage.InsertItem(&insItem);
rs.Close();
///////////////////////////////////////////////////////////
sqlstr="select subname from subinfo where subtype='公共基础课'";
rs.Open(CRecordset::forwardOnly,sqlstr);
i=0;
while(!rs.IsEOF())
{
rs.GetFieldValue((int)0,resul);
insItem.pszText=resul.GetBuffer(0);
resul.ReleaseBuffer();
m_comboxsub.InsertItem(&insItem);
i++;
rs.MoveNext();
}
rs.Close();
/////////////////////////////////////////////////////////
sqlstr="select stunum,name from stuinfo";
rs.Open(CRecordset::forwardOnly,sqlstr);
i=0;
while(!rs.IsEOF())
{
rs.GetFieldValue((int)0,resul0);
m_inplulist.InsertItem(i,resul0);
rs.GetFieldValue((int)1,resul0);
m_inplulist.SetItemText(i,1,resul0);
i++;
rs.MoveNext();
}
rs.Close();
// m_comboxcollage.SetCurSel(1);
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//单击表内某个记录
void CInpluscoreDlg::OnClickListPluin(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int item=GetSelectedItem();//得到被选的行
CString resul=m_inplulist.GetItemText(item,0);
m_stunum=resul;
resul=m_inplulist.GetItemText(item,1);
m_name=resul;
resul=m_inplulist.GetItemText(item,2);
m_score=resul;
UpdateData(FALSE);
*pResult = 0;
}
//返回所选行行号
int CInpluscoreDlg::GetSelectedItem()
{
for(int i=0; i<m_inplulist.GetItemCount(); i++)
{
if( m_inplulist.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
{
return i;//当有一行被选中,返回行号
}
}
return -2;//如果未选中任何一行则返回-2
}
//学院下拉框 改变
void CInpluscoreDlg::OnSelchangeComboboxexcollage()
{
// TODO: Add your control notification handler code here
//学员队
for(int k=-20;k<20;k++)
{
m_comboxteam.DeleteItem(0);//删除后选项立即改变,保持有第0项
}
CInpluscoreDlg::UpdateData();
m_boxteam="";
UpdateData(FALSE);
CDatabase db;
CStuinfoSet rsstu;
CRecordset rs(&db);
CString sqlstr,resul,resul0;
COMBOBOXEXITEM insItem;
insItem.mask=CBEIF_TEXT;
insItem.iItem=0;
insItem.iImage=0;
sqlstr="select teamname from teaminfo where belongcol='"+m_boxcollage+"'";
db.Open(rsstu.GetDefaultConnect());
rs.Open(CRecordset::forwardOnly,sqlstr);
int i=0;
while(!rs.IsEOF())
{
rs.GetFieldValue((int)0,resul);
insItem.pszText=resul.GetBuffer(0);
resul.ReleaseBuffer();
m_comboxteam.InsertItem(&insItem);
rs.MoveNext();
}
rs.Close();
if(m_boxcollage=="所有学院")
sqlstr="select stunum,name from stuinfo";
else
sqlstr="select stunum,name from stuinfo where collage='"+m_boxcollage+"'";
m_inplulist.DeleteAllItems();
rs.Open(CRecordset::forwardOnly,sqlstr);
i=0;
while(!rs.IsEOF())
{
rs.GetFieldValue((int)0,resul0);
m_inplulist.InsertItem(i,resul0);
rs.GetFieldValue((int)1,resul0);
m_inplulist.SetItemText(i,1,resul0);
i++;
rs.MoveNext();
}
rs.Close();
if(m_boxsub!="")
OnSelchangeComboboxexsub();
}
//学员队下拉框 改变
void CInpluscoreDlg::OnSelchangeComboboxexteam()
{
// TODO: Add your control notification handler code here
CInpluscoreDlg::UpdateData();
if(m_boxteam=="")
return;
CDatabase db;
CStuinfoSet rsstu;
CRecordset rs(&db);
CString sqlstr,resul,resul0;
COMBOBOXEXITEM insItem;
insItem.mask=CBEIF_TEXT;
insItem.iItem=0;
insItem.iImage=0;
db.Open(rsstu.GetDefaultConnect());
sqlstr="select stunum,name from stuinfo where stuteam='"+m_boxteam+"' and collage='"+m_boxcollage+"'";
m_inplulist.DeleteAllItems();
rs.Open(CRecordset::forwardOnly,sqlstr);
int i=0;
while(!rs.IsEOF())
{
rs.GetFieldValue((int)0,resul0);
m_inplulist.InsertItem(i,resul0);
rs.GetFieldValue((int)1,resul0);
m_inplulist.SetItemText(i,1,resul0);
i++;
rs.MoveNext();
}
rs.Close();
if(m_boxsub!="")
OnSelchangeComboboxexsub();
}
//课程框改变
void CInpluscoreDlg::OnSelchangeComboboxexsub()
{
// TODO: Add your control notification handler code here
CInpluscoreDlg::UpdateData();//得到m_boxsub值
if(m_boxsub=="")
return;
CDatabase db;
CStuinfoSet rsstu;
CRecordset rs(&db);
CString sqlstr,resul,resul0;
db.Open(rsstu.GetDefaultConnect());
for(int j=0;j<m_inplulist.GetItemCount();j++)
{
resul=m_inplulist.GetItemText(j,0);
sqlstr="select score from scoreinfo where stunum='"+resul+"' and subname='"+m_boxsub+"'";
rs.Open(CRecordset::forwardOnly,sqlstr);
if(rs.IsBOF())
{
m_inplulist.SetItemText(j,2,"未录入");
}
else
{
rs.GetFieldValue((int)0,resul0);
m_inplulist.SetItemText(j,2,resul0);
rs.MoveNext();
}
rs.Close();
}
m_stunum="";
m_name="";
m_score="";
UpdateData(FALSE);
}
//确认输入成绩
void CInpluscoreDlg::OnButtonInput()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CString noin="未录入";
if(noin.Find(m_score)!=-1||m_score=="")
{
AfxMessageBox("请输入成绩");
return;
}
if(m_boxsub=="")
{
AfxMessageBox("选择课程");
return;
}
if(m_stunum=="")
{
AfxMessageBox("选择学员");
return;
}
CDatabase db;
CStuinfoSet rsstu;
CRecordset rs(&db);
CString sqlstr;
db.Open(rsstu.GetDefaultConnect());
sqlstr="select score from scoreinfo where stunum='"+m_stunum+"' and subname='"+m_boxsub+"'";
rs.Open(CRecordset::forwardOnly,sqlstr);
int item=GetSelectedItem();
double scor=atof(m_score);
if(rs.IsBOF())
{
//记录不存在,插入
sqlstr.Format("insert into scoreinfo values('%s','%s','%f')",m_stunum,m_boxsub,scor);
}
else
{
//记录存在,更新
sqlstr.Format("update scoreinfo set score=%f where stunum='%s' and subname='%s'",scor,m_stunum,m_boxsub);
}
CMainView::RunSQL(sqlstr);
m_inplulist.SetItemText(item,2,m_score);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -