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

📄 simsdlg.cpp

📁 学生信息管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		dlg.m_music=pCS->m_MUSIC;
		dlg.m_sports=pCS->m_SPORTS;
		dlg.m_computer=pCS->m_COMPUTER;
		dlg.m_name=pCS->m_SDT_NAME;
		dlg.m_no=pCS->m_SDT_SCORE;
		dlg.m_bMode=false;
		if(dlg.DoModal()==IDOK)
		{
			OnButtonDelete();
			m_strSQL.Format("insert into STUDENT_SCORE values('%s','%s',%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)",\
				dlg.m_no,dlg.m_name,\
				dlg.m_chinese,dlg.m_math,dlg.m_english,dlg.m_phisicis,dlg.m_chemistry,dlg.m_organism,\
				dlg.m_geography,dlg.m_history,dlg.m_politics,dlg.m_arts,dlg.m_music,dlg.m_sports,dlg.m_computer);
			db.ExecuteSQL(m_strSQL);
			m_strSQL.Format("select* from STUDENT_SCORE where SDT_NO='%s'",dlg.m_no);
			reFreshScoreList(m_strSQL);
		}
	}
}

void CSIMSDlg::OnButtonDelete() 
{
	int choice=GetCheckedRadioButton(IDC_RADIO_INFORMATION,IDC_RADIO_SCORE);
	if(!choice)
	{
		MessageBox("请选择删除类型:\n基本信息或学生成绩","删除提示");
		return;
	}
	if(choice==IDC_RADIO_INFORMATION)
	{
		int i=m_searchResult.GetSelectionMark();
		if(i==-1)
		{
			MessageBox("请选择一个学生再删除","提示");
			return;
		}
		char buf[20];
		strcpy(buf,m_searchResult.GetItemText(i,1));
		CString str;
		str.Format("确定删除'%s'及其所有信息吗?",buf);
		if(MessageBox(str,"删除确认",1)==IDOK)
		{
			strcpy(buf,m_searchResult.GetItemText(i,0));
			m_strSQL.Format("delete from STUDENT_SCORE where SDT_NO='%s'",buf);
			db.ExecuteSQL(m_strSQL);
			m_strSQL.Format("select* from STUDENT_SCORE");
			reFreshScoreList(m_strSQL);
			m_strSQL.Format("delete from STUDENT_INFORMATION where SDT_NO='%s'",buf);
			db.ExecuteSQL(m_strSQL);
			m_strSQL.Format("select* from STUDENT_INFORMATION");
			reFreshSearchList();
		}
	}
	if(choice==IDC_RADIO_SCORE)
	{
		int i=m_searchResult.GetSelectionMark();
		CString str=m_searchResult.GetItemText(i,0);
		if(i==-1)
		{
			i=m_scoreResult.GetSelectionMark();
			str=m_scoreResult.GetItemText(i,0);
		}
		if(i==-1)
		{
			MessageBox("请选择一个学生或成绩再删除!","提示");
			return;
		}
		CString strSQL;
		strSQL.Format("delete from STUDENT_SCORE where SDT_NO='%s'",str);
		db.ExecuteSQL(strSQL);
		m_strSQL.Format("select* from STUDENT_SCORE");
		reFreshScoreList(m_strSQL);
	}
}

void CSIMSDlg::OnButtonAbout() 
{
	CAboutDlg dlg;
	dlg.DoModal();
}

void CSIMSDlg::OnButtonHelp() 
{
	WinExec("hh.exe 学生信息管理系统.chm",SW_SHOW);
}

void CSIMSDlg::initSearchList()
{
	m_searchResult.SetExtendedStyle(LVS_EX_GRIDLINES);
	m_searchResult.SetExtendedStyle(LVS_EX_FULLROWSELECT);
	m_searchResult.InsertColumn(0,"学号");
	m_searchResult.InsertColumn(1,"姓名");
	m_searchResult.InsertColumn(2,"专业");
	m_searchResult.InsertColumn(3,"性别");
	m_searchResult.InsertColumn(4,"生日");
	m_searchResult.InsertColumn(5,"籍贯");
	m_searchResult.InsertColumn(6,"国家");
	m_searchResult.InsertColumn(7,"民族");
	m_searchResult.InsertColumn(8,"身份证号");
	m_searchResult.InsertColumn(9,"健康状况");
	m_searchResult.InsertColumn(10,"入学时间");
	m_searchResult.InsertColumn(11,"状态");
	m_searchResult.InsertColumn(12,"家庭住址");
	m_searchResult.InsertColumn(13,"联系电话");
	m_searchResult.InsertColumn(14,"E_mail");
	m_searchResult.InsertColumn(15,"备注");
	m_searchResult.SetColumnWidth(0,70);
	m_searchResult.SetColumnWidth(1,60);
	m_searchResult.SetColumnWidth(2,100);
	m_searchResult.SetColumnWidth(3,40);
	m_searchResult.SetColumnWidth(4,90);
	m_searchResult.SetColumnWidth(5,110);
	m_searchResult.SetColumnWidth(6,110);
	m_searchResult.SetColumnWidth(7,70);
	m_searchResult.SetColumnWidth(8,150);
	m_searchResult.SetColumnWidth(9,50);
	m_searchResult.SetColumnWidth(10,90);
	m_searchResult.SetColumnWidth(11,40);
	m_searchResult.SetColumnWidth(12,200);
	m_searchResult.SetColumnWidth(13,100);
	m_searchResult.SetColumnWidth(14,150);
	m_searchResult.SetColumnWidth(15,70);
	m_strSQL.Format("select* from STUDENT_INFORMATION");
	reFreshSearchList();
}

void CSIMSDlg::initScoreList()
{
	m_scoreResult.SetExtendedStyle(LVS_EX_GRIDLINES);
	m_scoreResult.SetExtendedStyle(LVS_EX_FULLROWSELECT);
	m_scoreResult.InsertColumn(0,"学号");
	m_scoreResult.InsertColumn(1,"姓名");
	m_scoreResult.InsertColumn(2,"语文");
	m_scoreResult.InsertColumn(3,"数学");
	m_scoreResult.InsertColumn(4,"英语");
	m_scoreResult.InsertColumn(5,"物理");
	m_scoreResult.InsertColumn(6,"化学");
	m_scoreResult.InsertColumn(7,"生物");
	m_scoreResult.InsertColumn(8,"地理");
	m_scoreResult.InsertColumn(9,"历史");
	m_scoreResult.InsertColumn(10,"政治");
	m_scoreResult.InsertColumn(11,"美术");
	m_scoreResult.InsertColumn(12,"音乐");
	m_scoreResult.InsertColumn(13,"体育");
	m_scoreResult.InsertColumn(14,"计算机");
	RECT rect;
	m_scoreResult.GetWindowRect(&rect);
	int width=rect.right-rect.left;
	for(int i=0;i<=14;i++) m_scoreResult.SetColumnWidth(i,width/8);
	m_scoreResult.SetColumnWidth(0,80);
	CString strSQL;
	strSQL.Format("select* from STUDENT_SCORE");
	reFreshScoreList(strSQL);
}

void CSIMSDlg::OnDropdownCombo3() 
{
	CString mCompare=m_strCombo1;
	UpdateData(true);
	if(mCompare==m_strCombo1&&m_strCombo1!="") return;
	int count=m_Combo3.GetCount();
	for(int i=0;i<=count;i++) m_Combo3.DeleteString(0);
	if(m_strCombo1=="")
	{
		m_Combo3.AddString("");
		return;
	}
	m_Combo3.SetDroppedWidth(-1);
	CInformationSet* pCI=new CInformationSet(&db);
	CString str,strSQL;
	if(m_strCombo1=="国家")
	{
		CCountrySet* pCC=new CCountrySet(&db);
		strSQL.Format("select DISTINCT SDT_COUNTRY from STUDENT_INFORMATION");
		pCI->Open(CRecordset::forwardOnly,strSQL);
		while(!pCI->IsEOF())
		{
			pCI->GetFieldValue("SDT_COUNTRY",str);
			if(atoi(str)==0)
			{
				pCI->MoveNext();
				pCC->Close();
				continue;
			}
			strSQL.Format("select* from COUNTRY_CODE where COUNTRY_CODE=%s",str);
			pCC->Open(CRecordset::forwardOnly,strSQL);
			str=pCC->m_COUNTRY_NAME_CN;
			m_Combo3.AddString(str);
			pCI->MoveNext();
			pCC->Close();
		}
		return;
	}
	if(m_strCombo1=="专业")
	{
		CSpecializeSet* pCC=new CSpecializeSet(&db);
		strSQL.Format("select DISTINCT SDT_SPECIALIZE from STUDENT_INFORMATION");
		pCI->Open(CRecordset::forwardOnly,strSQL);
		while(!pCI->IsEOF())
		{
			pCI->GetFieldValue("SDT_SPECIALIZE",str);
			if(atoi(str)==0)
			{
				pCI->MoveNext();
				pCC->Close();
				continue;
			}
			strSQL.Format("select* from SPECIALIZE_CODE where SPECIALIZE_NO=%s",str);
			pCC->Open(CRecordset::forwardOnly,strSQL);
			str=pCC->m_SPECIALIZE_NAME;
			m_Combo3.AddString(str);
			pCI->MoveNext();
			pCC->Close();
		}
		return;
	}
	if(m_strCombo1=="民族")
	{
		CNationSet* pCC=new CNationSet(&db);
		strSQL.Format("select DISTINCT SDT_NATION from STUDENT_INFORMATION");
		pCI->Open(CRecordset::forwardOnly,strSQL);
		while(!pCI->IsEOF())
		{
			pCI->GetFieldValue("SDT_NATION",str);
			if(atoi(str)==0)
			{
				pCI->MoveNext();
				pCC->Close();
				continue;
			}
			strSQL.Format("select* from NATION_CODE where NATION_CODE=%s",str);
			pCC->Open(CRecordset::forwardOnly,strSQL);
			str=pCC->m_NATION_NAME;
			m_Combo3.AddString(str);
			pCI->MoveNext();
			pCC->Close();
		}
		return;
	}
	TranslateChineseToEnglish(m_strCombo1);
	if(m_strCombo1=="SDT_ID")
	{
		m_Combo3.SetDroppedWidth(135);
	}
	strSQL.Format("select DISTINCT %s from STUDENT_INFORMATION",m_strCombo1);
	pCI->Open(CRecordset::forwardOnly,strSQL);
	CString varTime;
	while(!pCI->IsEOF())
	{
		if(m_strCombo1=="SDT_STARTTIME")
		{
			int temp=0;
			pCI->GetFieldValue(temp,varTime);
			str.Format("%s-%s-%s",varTime.Left(4),varTime.Mid(5,2),varTime.Mid(8,2));
		}
		else
		{
			pCI->GetFieldValue(m_strCombo1,str);
		}
		m_Combo3.AddString(str);
		pCI->MoveNext();
	}
}

void CSIMSDlg::OnCancel() 
{
	db.Close();
	CDialog::OnCancel();
}

BOOL CAboutDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	m_brush.CreateSolidBrush(RGB(74,142,184));
	return TRUE;
}

HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	pDC->SetBkMode(TRANSPARENT);
	return m_brush;
}

void CSIMSDlg::reFreshSearchList()
{
	m_searchResult.DeleteAllItems();
	CString str,strSQL;
	CInformationSet* pCI=new CInformationSet(&db);
	CSpecializeSet* pCS=new CSpecializeSet(&db);
	CCountrySet* pCC=new CCountrySet(&db);
	CNationSet* pCN=new CNationSet(&db);
	pCI->Open(CRecordset::forwardOnly,m_strSQL);//MessageBox(m_strSQL);
	int i=0;
	while(!pCI->IsEOF())
	{
		str=pCI->m_SDT_NO;
		m_searchResult.InsertItem(i,str);
		for(int k=1;k<15;k++)
		{
			pCI->GetFieldValue(k,str);
			if(k==2)
			{
				strSQL.Format("select* from SPECIALIZE_CODE where SPECIALIZE_NO=%s",str);
				pCS->Open(CRecordset::forwardOnly,strSQL);
				str=pCS->m_SPECIALIZE_NAME;
				pCS->Close();
			}
			if(k==4||k==10)
			{
				str.Format("%s-%s-%s",str.Left(4),str.Mid(5,2),str.Mid(8,2));
			}
			if(k==6)
			{
				strSQL.Format("select* from COUNTRY_CODE where COUNTRY_CODE=%s",str);
				pCC->Open(CRecordset::forwardOnly,strSQL);
				str=pCC->m_COUNTRY_NAME_CN;
				pCC->Close();
			}
			if(k==7)
			{
				strSQL.Format("select* from NATION_CODE where NATION_CODE=%s",str);
				pCN->Open(CRecordset::forwardOnly,strSQL);
				str=pCN->m_NATION_NAME;
				pCN->Close();
			}
			m_searchResult.SetItemText(i,k,str);
		}
		pCI->MoveNext();
		i++;
	}
	pCI->Close();
	pCS->Close();
	pCC->Close();
	pCN->Close();
	delete pCI;
	delete pCS;
	delete pCC;
	delete pCN;
}

CString CSIMSDlg::TranslateChineseToEnglish(CString& str)
{
	if(str=="学号") str="SDT_NO";
	if(str=="姓名") str="SDT_NAME";
	if(str=="专业") str="SDT_SPECIALIZE";
	if(str=="性别") str="SDT_GENDER";
	if(str=="生日") str="SDT_BIRTHDRY";
	if(str=="籍贯") str="SDT_HOMETOWN";
	if(str=="国家") str="SDT_COUNTRY";
	if(str=="民族") str="SDT_NATION";
	if(str=="身份证号") str="SDT_ID";
	if(str=="健康状况") str="SDT_HEALTH";
	if(str=="入学时间") str="SDT_STARTTIME";
	if(str=="状态") str="SDT_STATE";
	if(str=="家庭住址") str="SDT_HOMEADDRESS";
	if(str=="联系电话") str="SDT_TELENO";
	if(str=="E-mail") str="SDT_E-mail";
	if(str=="备注") str="SDT_MEN";
	return str;
}

void CSIMSDlg::OnDropdownCombo1() 
{
	m_Combo3.SetCurSel(-1);
}

void CSIMSDlg::reFreshScoreList(CString strSQL)
{
	m_scoreResult.DeleteAllItems();
	CScoreSet* pCS=new CScoreSet(&db);
	pCS->Open(CRecordset::forwardOnly,strSQL);
	int i=0;
	int temp=0;
	CString str;
	while(!pCS->IsEOF())
	{
		pCS->GetFieldValue(temp,str);
		m_scoreResult.InsertItem(i,str);
		for(int k=1;k<=14;k++)
		{
			pCS->GetFieldValue(k,str);
			if(atoi(str)==-1) str.Empty();
			m_scoreResult.SetItemText(i,k,str);
		}
		pCS->MoveNext();
		i++;
	}
}

void CSIMSDlg::OnSetFont(CFont* pFont) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	CDialog::OnSetFont(pFont);
}

void CSIMSDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int choice;
	choice=m_searchResult.GetSelectionMark();
	CString str;
	str=m_searchResult.GetItemText(choice,0);
	CString strSQL;
	strSQL.Format("select* from STUDENT_SCORE where SDT_NO='%s'",str);
	reFreshScoreList(strSQL);
	*pResult = 0;
}

void CSIMSDlg::OnDropdownCombo2() 
{
	// TODO: Add your control notification handler code here
	for(int i=0;i<=4;i++) m_Combo2.DeleteString(0);
	CString m_strCombo1;
	m_Combo1.GetWindowText(m_strCombo1);
	m_Combo2.AddString("=");
	m_Combo2.SetCurSel(0);
	if(m_strCombo1=="国家"||m_strCombo1=="民族"||m_strCombo1=="专业")
	{
		m_Combo2.AddString("<>");
	}
	if(m_strCombo1=="学号"||m_strCombo1=="身份证号")
	{
		m_Combo2.AddString(">");
		m_Combo2.AddString("<");
		m_Combo2.AddString("<>");
	}
}

void CSIMSDlg::OnCloseupCombo1() 
{
	// TODO: Add your control notification handler code here
	m_strCombo2="=";
	m_Combo2.SetCurSel(0);
}

⌨️ 快捷键说明

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