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

📄 subform1.cpp

📁 一个小型的学生成绩管理系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			m_studentset.MoveNext();
		}while(!m_studentset.IsEOF());
		m_classset.MoveNext();
	}while(!m_classset.IsEOF());
	m_studentset.Close();
	m_classset.Close();
	m_courseset.Close();
	m_gradeset.Close();
	int num;
	num=m_listsearch.GetItemCount();
	if(num==0)
		MessageBox("没有记录");	
}
////////////////////////////////////////
void CSubForm1::OnButtonsearch() 
{
	UpdateData(TRUE);
	m_studentset.m_strFilter="";
	m_classset.m_strFilter="";
	m_courseset.m_strFilter="";
	CString currentzhuanyie;
	CString currentyear;
	CString currentclass;
	CString currentcourse,str;
	CString strclass,strzhuanyie,stryear,strcourse,searchno,searchname;
	if(m_comboyear.GetCurSel()>=0)
		m_comboyear.GetLBText(m_comboyear.GetCurSel(),currentyear);
	if(m_combozhuanyie.GetCurSel()>=0)
		m_combozhuanyie.GetLBText(m_combozhuanyie.GetCurSel(),currentzhuanyie);
	if(m_comboclass.GetCurSel()>=0)
		m_comboclass.GetLBText(m_comboclass.GetCurSel(),currentclass);
	if(m_combocourse.GetCurSel()>=0)
		m_combocourse.GetLBText(m_combocourse.GetCurSel(),currentcourse);
	strzhuanyie="专业名";
	strclass="班级名";
	stryear="学期";
	strcourse="课程名";
	searchno="学号";
	searchname="姓名";
	if(currentzhuanyie=="" && currentclass=="")
	{
		m_classset.m_strFilter="";
	}
	else if(currentzhuanyie!="" && currentclass=="")
	{
		
		m_classset.m_strFilter=strzhuanyie+"='"+currentzhuanyie+"'";
	}
	else if(currentzhuanyie=="" && currentclass!="")
	{
		m_classset.m_strFilter=strclass + "='" + currentclass + "'";
	}
	else
	{
		m_classset.m_strFilter=strzhuanyie + "='" + currentzhuanyie + "'" + "AND " + strclass + "='" + currentclass + "'";
	}
	if(currentyear=="" && currentcourse=="")
	{
		m_courseset.m_strFilter="";
	}
	else if(currentyear!="" && currentcourse=="")
	{
		m_courseset.m_strFilter=stryear + "='" + currentyear + "'";
	}
	else if(currentyear=="" && currentcourse!="")
	{
		m_courseset.m_strFilter=strcourse + "='" + currentcourse + "'";
	}
	else
	{
		str=stryear + "='" + currentyear+"'" + "AND " + strcourse + "='" + currentcourse+"'";
		m_courseset.m_strFilter=str;
	}
	BOOL studentcunzai=FALSE;
	if(m_searchname=="" && m_searchno=="")
	{
		m_studentset.m_strFilter="";
	}
	else if(m_searchname!="" && m_searchno=="")
	{	
		m_studentset.Open();
		m_studentset.MoveFirst();
		do
		{
			if(m_studentset.m_column2==m_searchname)
			{
				studentcunzai=TRUE;
				break;
			}
			m_studentset.MoveNext();
		}while(!m_studentset.IsEOF());
		m_studentset.Close();
		if(studentcunzai)
		{
			m_studentset.m_strFilter=searchname + "='" + m_searchname + "'";
		}
		else
		{
			MessageBox("没有这个学生");
			return;
		}
	}
	else if(m_searchname=="" && m_searchno!="")
	{
		m_studentset.Open();
		m_studentset.MoveFirst();
		do
		{
			if(m_studentset.m_column1==m_searchno)
			{
				studentcunzai=TRUE;
				break;
			}
			m_studentset.MoveNext();
		}while(!m_studentset.IsEOF());
		m_studentset.Close();
		if(studentcunzai)
		{
			m_studentset.m_strFilter=searchno + "='" + m_searchno + "'";
		}
		else
		{
			MessageBox("没有这个学生");
			return;
		}
	}
	else
	{
		
		m_studentset.Open();
		m_studentset.MoveFirst();
		do
		{
			if(m_studentset.m_column2==m_searchname && m_studentset.m_column1==m_searchno)
			{
				studentcunzai=TRUE;
				break;
			}
			m_studentset.MoveNext();
		}while(!m_studentset.IsEOF());
		m_studentset.Close();
		if(studentcunzai)
		{
		m_studentset.m_strFilter=searchname + "='" + m_searchname + "'" + "AND " + searchno + "='" + m_searchno + "'";
		}
		else
		{
			MessageBox("学号与姓名不符");
			return;
		}
	}
	/////////////
	m_studentset.Open();
	m_classset.Open();
	m_courseset.Open();
	m_gradeset.Open();
	BOOL courseno;
	m_listsearch.DeleteAllItems();
	CString grade,coursename,courseyear;
	int j=0;
	m_classset.MoveFirst();
	do
	{
		m_studentset.MoveFirst();
		do
		{
			if(m_studentset.m_column3==m_classset.m_column1)
			{
				m_gradeset.MoveFirst();
				do
				{
					courseno=FALSE;
					if(m_gradeset.m_column1==m_studentset.m_column1)
					{
						m_courseset.MoveFirst();
						do
						{
							if(m_gradeset.m_column2==m_courseset.m_column1)
							{	
								courseno=TRUE;
								coursename=m_courseset.m_column2;
								courseyear=m_courseset.m_column4;
								break;
							}
								m_courseset.MoveNext();
						}while (!m_courseset.IsEOF());
						if(courseno)
						{
							m_listsearch.InsertItem(j,m_gradeset.m_column1,0);
							m_listsearch.SetItemText(j,1,m_studentset.m_column2);
							m_listsearch.SetItemText(j,2,coursename);
							m_listsearch.SetItemText(j,6,courseyear);
							grade.Format("%4.2f",double(m_gradeset.m_column3));
							m_listsearch.SetItemText(j,3,grade);
							m_listsearch.SetItemText(j,4,m_classset.m_column2);
							m_listsearch.SetItemText(j,5,m_classset.m_column3);
							j++;
						}
					}
					m_gradeset.MoveNext();
				}while(!m_gradeset.IsEOF());
			}
				m_studentset.MoveNext();
		}while(!m_studentset.IsEOF());
		m_classset.MoveNext();
	}while(!m_classset.IsEOF());
	m_studentset.Close();
	m_classset.Close();
	m_courseset.Close();
	m_gradeset.Close();
	if(m_listsearch.GetItemCount==0)
		MessageBox("暂无记录");		
	
}

BOOL CSubForm1::PreCreateWindow(CREATESTRUCT& cs) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	return CFormView::PreCreateWindow(cs);
}

void CSubForm1::OutputReport(CDC *pDC, CPrintInfo *pInfo)
{
	CString line;
	TEXTMETRIC metrics;
	int y=100;
	CFont TitleFont,HeadingFont,DetailFont,FooterFont;
	int TabStops[]={700,1000,1300};
	int FooterTabStops[]={350,650};
	TitleFont.CreateFont(72,0,0,0,FW_BOLD,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
		CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_ROMAN,"Times New Romans");
	HeadingFont.CreateFont(54,0,0,0,FW_BOLD,FALSE,TRUE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
		CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_ROMAN,"Times New Romans");
	DetailFont.CreateFont(48,0,0,0,FW_NORMAL,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
		CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_ROMAN,"Times New Romans");
	FooterFont.CreateFont(36,0,0,0,FW_NORMAL,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
		CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_ROMAN,"Times New Romans");
	CFont* OldFont=pDC->SelectObject(&TitleFont);
	pDC->GetTextMetrics(&metrics);
	int lineheight=metrics.tmHeight+metrics.tmExternalLeading;
	//设置行高
	y+=lineheight;
	CString currentzhuanyie;
	CString currentyear;
	CString currentclass;
	CString currentcourse,str;
	if(m_comboyear.GetCurSel()>=0)
		m_comboyear.GetLBText(m_comboyear.GetCurSel(),currentyear);
	if(m_combozhuanyie.GetCurSel()>=0)
		m_combozhuanyie.GetLBText(m_combozhuanyie.GetCurSel(),currentzhuanyie);
	if(m_comboclass.GetCurSel()>=0)
		m_comboclass.GetLBText(m_comboclass.GetCurSel(),currentclass);
	if(m_combocourse.GetCurSel()>=0)
		m_combocourse.GetLBText(m_combocourse.GetCurSel(),currentcourse);
	if(currentyear!="")
		currentyear+="学期";
	if(currentzhuanyie!="")
		currentzhuanyie+="专业";
	if(currentclass!="")
		currentclass+="班";
	str=currentyear+currentzhuanyie+currentclass+currentcourse+"成绩表";
	if(str=="")
		str="成绩表";
	pDC->TextOut(800-str.GetLength()*7,100,str);
	//设置字体	
	pDC->SelectObject(&HeadingFont);
	pDC->GetTextMetrics(&metrics);
	//设置格式
	line.Format("%s\t%s\t%s\t%s","学号","姓名","课程","成绩");
	//输出
	pDC->TabbedTextOut(300,y,line,3,TabStops,0);
	int num=m_listsearch.GetItemCount();
	if(num==0)
		return;
	lineheight=metrics.tmHeight+metrics.tmExternalLeading;
	y+=lineheight;
	pDC->SelectObject(&DetailFont);
	pDC->GetTextMetrics(&metrics);
	//计算行高
	lineheight=metrics.tmHeight+metrics.tmExternalLeading;
	TCHAR currentstudentno[20],currentstudentname[10],currentcoursename[20],currentcoursegrade[10];
	for(int i=0;i<m_listsearch.GetItemCount();i++)
	{
		if(pInfo && abs(y)>2200)
		{
			pInfo->SetMaxPage(pInfo->m_nCurPage+1);
			break;
		}
		m_listsearch.GetItemText(i,0,currentstudentno,20);
		m_listsearch.GetItemText(i,1,currentstudentname,10);
		m_listsearch.GetItemText(i,2,currentcoursename,20);
		m_listsearch.GetItemText(i,3,currentcoursegrade,10);
		line.Format("%s\t%s\t%s\t%s",currentstudentno,currentstudentname,currentcoursename,	currentcoursegrade);
		pDC->TabbedTextOut(300,y,line,3,TabStops,0);
		y+=lineheight;
	}
	if(pInfo)
	{
		pDC->SelectObject(&FooterFont);
		line.Format(str+"第%d页",pInfo->m_nCurPage);
		pDC->TabbedTextOut(50,2300,line,2,FooterTabStops,0);
	}
	pDC->SelectObject(OldFont);

}

void CSubForm1::OnButtonrefresh() 
{
	// TODO: Add your control notification handler code here
	m_studentset.m_strFilter="";
	m_classset.m_strFilter="";
	m_courseset.m_strFilter="";
	m_gradeset.m_strFilter="";
	m_studentset.Open();
	m_classset.Open();
	m_courseset.Open();
	m_gradeset.Open();
	BOOL courseno;
	m_listsearch.DeleteAllItems();
	CString grade,coursename,courseyear;
	int j=0;
	m_classset.MoveFirst();
	do
	{
		m_studentset.MoveFirst();
		do
		{
			if(m_studentset.m_column3==m_classset.m_column1)
			{
			
				m_gradeset.MoveFirst();
				do
				{
					courseno=FALSE;
					if(m_gradeset.m_column1==m_studentset.m_column1)
					{
						m_courseset.MoveFirst();
						do
						{
							if(m_gradeset.m_column2==m_courseset.m_column1)
							{	
								courseno=TRUE;
								coursename=m_courseset.m_column2;
								courseyear=m_courseset.m_column4;
								break;
							}
							m_courseset.MoveNext();
						}while (!m_courseset.IsEOF());
						if(courseno)
						{
							m_listsearch.InsertItem(j,m_gradeset.m_column1,0);
							m_listsearch.SetItemText(j,1,m_studentset.m_column2);
							m_listsearch.SetItemText(j,2,coursename);
							m_listsearch.SetItemText(j,6,courseyear);
							grade.Format("%4.2f",double(m_gradeset.m_column3));
							m_listsearch.SetItemText(j,3,grade);
							m_listsearch.SetItemText(j,4,m_classset.m_column2);
							m_listsearch.SetItemText(j,5,m_classset.m_column3);
							j++;
						}
					}
					
					m_gradeset.MoveNext();
				}while(!m_gradeset.IsEOF());
			}
			m_studentset.MoveNext();
		}while(!m_studentset.IsEOF());
		m_classset.MoveNext();
	}while(!m_classset.IsEOF());
	m_studentset.Close();
	m_classset.Close();
	m_courseset.Close();
	m_gradeset.Close();
	int num;
	num=m_listsearch.GetItemCount();
	if(num==0)
		MessageBox("没有记录");	
}

⌨️ 快捷键说明

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