📄 yucedlg.cpp
字号:
// YuceDlg.cpp : implementation file
//
#include "stdafx.h"
#include "mining.h"
#include "YuceDlg.h"
#include "xueshengchengji.h"
#include "GuojiModifyDlg.h"
#include "Yucejieguo.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CYuceDlg dialog
extern TreeNode dt;
CYuceDlg::CYuceDlg(CWnd* pParent /*=NULL*/)
: CDialog(CYuceDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CYuceDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CYuceDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CYuceDlg)
DDX_Control(pDX, IDC_COMBO1, m_com);
DDX_Control(pDX, IDC_LIST1, m_list);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CYuceDlg, CDialog)
//{{AFX_MSG_MAP(CYuceDlg)
ON_WM_CLOSE()
ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
ON_BN_CLICKED(IDC_ZAOSHENGJIANCE, OnZaoshengjiance)
ON_BN_CLICKED(IDC_DELETE, OnDelete)
ON_BN_CLICKED(IDC_XIUGAIJILU, OnXiugaijilu)
ON_BN_CLICKED(IDC_YUCE, OnYuce)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CYuceDlg message handlers
BOOL CYuceDlg::OnInitDialog()
{
CDialog::OnInitDialog();
GetDlgItem(IDC_DELETE)->EnableWindow(FALSE);
//GetDlgItem(IDC_XIUGAIJILU)->EnableWindow(FALSE);
CString chengjiName,xueshengName;
m_Recchengji.Open(AFX_DB_USE_DEFAULT_TYPE,_T("SELECT * FROM 预测学校成绩表"));// OR 课内机时=0 OR 课外机时=0 OR 期末成绩=0");
m_Recxuesheng.Open(AFX_DB_USE_DEFAULT_TYPE,_T("SELECT * FROM 预测过级成绩表"));
chengjiName=m_Recchengji.GetTableName();
xueshengName=m_Recxuesheng.GetTableName();
m_com.AddString(chengjiName.GetBuffer(10));
m_com.AddString(xueshengName.GetBuffer(10));
m_com.SetCurSel(0);
chengjiName.ReleaseBuffer();
xueshengName.ReleaseBuffer();
ShowList(0);
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CYuceDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
CDialog::OnClose();
}
void CYuceDlg::ShowList(int nIndex)
{
m_oldIndex=nIndex;
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
if(nIndex==0)
{
m_list.InsertColumn(0,_T("学号"),LVCFMT_LEFT);
m_list.InsertColumn(1,_T("教学机时"));
m_list.InsertColumn(2,_T("自由机时"));
m_list.InsertColumn(3,_T("期末成绩"));
//设置列的宽度
for(int j=0;j<4;j++)
{
m_list.SetColumnWidth(j ,90);
}
int i=0;
m_Recchengji.MoveFirst();
do
{
CString s;
m_list.InsertItem(i,m_Recchengji.m_column1,0);
s.Format("%d",(int)m_Recchengji.m_column2);
m_list.SetItemText(i,1,s);
s.Format("%d",(int)m_Recchengji.m_column3);
m_list.SetItemText(i,2,s);
s.Format("%d",(int)m_Recchengji.m_column4);
m_list.SetItemText(i,3,s);
i++;
m_Recchengji.MoveNext();
} while(!m_Recchengji.IsEOF());
m_Recchengji.MoveFirst();
}
else
if(nIndex==1)
{
m_list.InsertColumn(0,_T("学号"),LVCFMT_IMAGE|LVCFMT_LEFT);
m_list.InsertColumn(1,_T("姓名"));
m_list.InsertColumn(2,_T("专业"));
m_list.InsertColumn(3,_T("过级成绩"));
//设置列的宽度
for(int j=0;j<4;j++)
{
m_list.SetColumnWidth(j ,90);
}
int i=0;
m_Recxuesheng.MoveFirst();
do
{
CString s;
m_list.InsertItem(i,m_Recxuesheng.m_column1,0);
m_list.SetItemText(i,1,m_Recxuesheng.m_column2);
m_list.SetItemText(i,2,m_Recxuesheng.m_column3);
s.Format("%d",(int)m_Recxuesheng.m_column4);
m_list.SetItemText(i,3,s);
i++;
m_Recxuesheng.MoveNext();
} while(!m_Recxuesheng.IsEOF());
m_Recxuesheng.MoveFirst();
}
}
void CYuceDlg::OnSelchangeCombo1()
{
int nIndex;
GetDlgItem(IDC_DELETE)->EnableWindow(FALSE);
//GetDlgItem(IDC_XIUGAIJILU)->EnableWindow(FALSE);
nIndex=m_com.GetCurSel();
if(m_oldIndex==nIndex)
return;
ListClear();
ShowList(nIndex);
}
void CYuceDlg::ListClear()
{
m_list.DeleteAllItems();
m_list.DeleteColumn(0);
m_list.DeleteColumn(0);
m_list.DeleteColumn(0);
m_list.DeleteColumn(0);
}
void CYuceDlg::OnZaoshengjiance()
{
int nCurSel;
nCurSel=m_com.GetCurSel();
if(nCurSel==0)
{
m_Recchengji.Close();
m_Recchengji.Open(AFX_DB_USE_DEFAULT_TYPE,_T("SELECT * FROM 预测学校成绩表 WHERE \
学号='No' OR 教学机时=0 OR 自由机时=0 OR 期末成绩=0"));
if(m_Recchengji.IsEOF()&&m_Recchengji.IsBOF())
{
MessageBox("预测学校成绩表记录已清理完毕","提示");
//m_chengjiFinish=true;
m_Recchengji.Close();
m_Recchengji.Open(AFX_DB_USE_DEFAULT_TYPE,"SELECT * FROM 预测学校成绩表");
return;
}
GetDlgItem(IDC_DELETE)->EnableWindow(TRUE);
// GetDlgItem(IDC_XIUGAIJILU)->EnableWindow(TRUE);
ListClear();
ShowList(0);
m_Recchengji.Close();
m_Recchengji.Open(AFX_DB_USE_DEFAULT_TYPE,_T("SELECT * FROM 预测学校成绩表"));
}
else
{
m_Recxuesheng.Close();
m_Recxuesheng.Open(AFX_DB_USE_DEFAULT_TYPE,_T("SELECT * FROM 预测过级成绩表 \
WHERE 学号='No' OR 姓名='No' OR 专业='No' OR 过级成绩=0"));
if(m_Recxuesheng.IsEOF()&&m_Recxuesheng.IsBOF())
{
MessageBox("预测过级成绩表记录已清理完毕","提示");
//m_xueshengFinish=true;
m_Recxuesheng.Close();
m_Recxuesheng.Open(AFX_DB_USE_DEFAULT_TYPE,"SELECT * FROM 预测过级成绩表");
return;
}
GetDlgItem(IDC_DELETE)->EnableWindow(TRUE);
//GetDlgItem(IDC_XIUGAIJILU)->EnableWindow(TRUE);
ListClear();
ShowList(1);
m_Recxuesheng.Close();
m_Recxuesheng.Open(AFX_DB_USE_DEFAULT_TYPE,"SELECT * FROM 预测过级成绩表");
}
}
void CYuceDlg::OnDelete()
{
POSITION pos=m_list.GetFirstSelectedItemPosition();
if (pos == NULL)
{
MessageBox("您没有选择记录","提示",MB_OK|MB_ICONINFORMATION);
}
else
{
int nItem[50];
int i=0;
CString s;
while (pos)
{
nItem[i]=m_list.GetNextSelectedItem(pos);
i++;
}
for(i--;i>=0;i--)
{
s.Format("%s",m_list.GetItemText(nItem[i],0));
DeleteRecord(s);
m_list.DeleteItem(nItem[i]);
}
}
}
void CYuceDlg::DeleteRecord(CString strXuehao)
{
int nIndex;
nIndex=m_com.GetCurSel();
if(nIndex==0)
{
m_Recchengji.MoveFirst();
do
{
if(m_Recchengji.m_column1==strXuehao)
{
m_Recchengji.Delete();
m_Recchengji.Requery();
break;
}
m_Recchengji.MoveNext();
}while(!m_Recchengji.IsEOF());
}
else
{
m_Recxuesheng.MoveFirst();
do
{
if(m_Recxuesheng.m_column1==strXuehao)
{
m_Recxuesheng.Delete();
m_Recxuesheng.Requery();
break;
}
m_Recxuesheng.MoveNext();
}while(!m_Recxuesheng.IsEOF());
}
}
void CYuceDlg::OnXiugaijilu()
{
//得到所有被选中的记录的位置
POSITION pos=m_list.GetFirstSelectedItemPosition();
//没有被选中的记录
if (pos == NULL)
{
MessageBox("您没有选择记录","提示",MB_OK|MB_ICONINFORMATION);
return;
}
//有被选中的记录
int nIndex;
nIndex=m_com.GetCurSel();
CString s;
if(nIndex==0) //如果当前是学校成绩表
{
Cxueshengchengji dlg;
while (pos) //修改所选中的记录
{
int nItem=m_list.GetNextSelectedItem(pos);
s.Format("%s",m_list.GetItemText(nItem,0));
dlg.m_xuehao=s;
s.Format("%s",m_list.GetItemText(nItem,1));
dlg.m_keneijishi=atoi(s);
s.Format("%s",m_list.GetItemText(nItem,2));
dlg.m_kewaijishi=atoi(s);
s.Format("%s",m_list.GetItemText(nItem,3));
dlg.m_qimochengji=atoi(s);
if(dlg.DoModal()==IDOK)
{
//修改数据库
m_Recchengji.MoveFirst();
do
{
if(dlg.m_xuehao!=m_Recchengji.m_column1)
m_Recchengji.MoveNext();
else
{
m_Recchengji.Edit();
m_Recchengji.m_column1=dlg.m_xuehao;
if((dlg.m_keneijishi>=0&&dlg.m_keneijishi<=40)&&(dlg.m_kewaijishi<100)&&\
(dlg.m_qimochengji>=0&&dlg.m_qimochengji<=100) )
{
m_Recchengji.m_column2=dlg.m_keneijishi;
m_Recchengji.m_column3=dlg.m_kewaijishi;
m_Recchengji.m_column4=dlg.m_qimochengji;
m_Recchengji.Update();
m_Recchengji.Requery();
}
else
MessageBox("请您所填机时数在0--40,自由机时数不要超过100,分数在0--100","提示");
m_Recchengji.MoveFirst();
break;
}
}while(!m_Recchengji.IsEOF());
//更新m_list控件的显示内容
m_list.SetItemText(nItem,0,dlg.m_xuehao);
if((dlg.m_keneijishi>=0&&dlg.m_keneijishi<=40)&&(dlg.m_kewaijishi<100)&&\
(dlg.m_qimochengji>=0&&dlg.m_qimochengji<=100) )
{ s.Format("%d",(int)dlg.m_keneijishi);
m_list.SetItemText(nItem,1,s);
s.Format("%d",(int)dlg.m_kewaijishi);
m_list.SetItemText(nItem,2,s);
s.Format("%d",(int)dlg.m_qimochengji);
m_list.SetItemText(nItem,3,s);
}
else ;
}//end_if(dlg.DoModal==IDOK)
}//end_while(pos)
}//end_if(nIndex=0)
else //如果当前是过级成绩表
{
CGuojiModifyDlg dlg;
while (pos) //修改所选中的记录
{
int nItem=m_list.GetNextSelectedItem(pos);
dlg.m_xuehao=m_list.GetItemText(nItem,0);
dlg.m_xingming=m_list.GetItemText(nItem,1);
dlg.m_zhuanye=m_list.GetItemText(nItem,2);
dlg.m_chengji=atoi(m_list.GetItemText(nItem,3));
if(dlg.DoModal()==IDOK)
{
//修改数据库
m_Recxuesheng.MoveFirst();
do
{
if(dlg.m_xuehao!=m_Recxuesheng.m_column1)
m_Recxuesheng.MoveNext();
else
{
m_Recxuesheng.Edit();
m_Recxuesheng.m_column1=dlg.m_xuehao;
m_Recxuesheng.m_column2=dlg.m_xingming;
m_Recxuesheng.m_column3=dlg.m_zhuanye;
if(dlg.m_chengji>=0&&dlg.m_chengji<=100)
m_Recxuesheng.m_column4=dlg.m_chengji;
else MessageBox("您所填的分数不合法请在0--100","提示");
m_Recxuesheng.Update();
m_Recxuesheng.Requery();
m_Recxuesheng.MoveFirst();
break;
}
}while(!m_Recxuesheng.IsEOF());
//更新m_list控件的显示内容
m_list.SetItemText(nItem,0,dlg.m_xuehao);
m_list.SetItemText(nItem,1,dlg.m_xingming);
m_list.SetItemText(nItem,2,dlg.m_zhuanye);
if(dlg.m_chengji>=0&&dlg.m_chengji<=100)
{
s.Format("%d",dlg.m_chengji);
m_list.SetItemText(nItem,3,s);
} else ;
}//end_if(dlg.DoModal==IDOK)
}//end_while(pos)
}//end_else
}
void CYuceDlg::OnYuce()
{
if(m_Recchengji.IsOpen())
m_Recchengji.Close();
if(m_Recxuesheng.IsOpen())
m_Recxuesheng.Close();
EndDialog(0);
if(strcmp(dt.Title,"first")!=0)
{
MessageBox("您还没有生成规则!","错误",MB_OK|MB_ICONWARNING);
return;
}
CYucejieguo dlg;
dlg.DoModal();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -