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

📄 yucedlg.cpp

📁 用Visual c++写
💻 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 + -