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

📄 学生成绩管理系统view.cpp

📁 一个小型的学生成绩管理系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
								break;
							}
							m_courseset.MoveNext();
						}while (!m_courseset.IsEOF());
						if(courseno)
						{
							m_listmodify.InsertItem(j,m_gradeset.m_column1,0);
							m_listmodify.SetItemText(j,1,m_studentset.m_column2);
							m_listmodify.SetItemText(j,2,coursename);
							m_listmodify.SetItemText(j,6,courseyear);
							grade.Format("%4.2f",double(m_gradeset.m_column3));
							m_listmodify.SetItemText(j,3,grade);
							m_listmodify.SetItemText(j,4,m_classset.m_column2);
							m_listmodify.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_listmodify.GetItemCount();
	if(num==0)
		MessageBox("没有记录");	
	}
	
}

void CMyView::OnButtonrefresh() 
{
	m_studentset.m_strFilter="";
	m_classset.m_strFilter="";
	m_courseset.m_strFilter="";
	CString currentzhuanyie;
	CString currentyear;
	CString currentclass;
	CString currentcourse;
	CString strclass,strzhuanyie,stryear,strcourse,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);
	strzhuanyie="专业名";
	strclass="班级名";
	stryear="学期";
	strcourse="课程名";
	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;
	}
	/////////////
	m_studentset.Open();
	m_classset.Open();
	m_courseset.Open();
	m_gradeset.Open();
	BOOL courseno;
	m_listmodify.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_listmodify.InsertItem(j,m_gradeset.m_column1,0);
							m_listmodify.SetItemText(j,1,m_studentset.m_column2);
							m_listmodify.SetItemText(j,2,coursename);
							m_listmodify.SetItemText(j,6,courseyear);
							grade.Format("%4.2f",double(m_gradeset.m_column3));
							m_listmodify.SetItemText(j,3,grade);
							m_listmodify.SetItemText(j,4,m_classset.m_column2);
							m_listmodify.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_listmodify.GetItemCount();
	if(num==0)
		MessageBox("没有记录");	
	
}

void CMyView::OnButtondelete() 
{
	if(m_listmodify.GetSelectionMark()>=0)
	{
		TCHAR studentno1[20],coursename1[20],courseyear1[20];
		CString studentno,coursename,courseyear,courseno;
		m_listmodify.GetItemText(m_listmodify.GetSelectionMark(),0,studentno1,20);
		m_listmodify.GetItemText(m_listmodify.GetSelectionMark(),2,coursename1,20);
		m_listmodify.GetItemText(m_listmodify.GetSelectionMark(),6,courseyear1,20);
		studentno=studentno1;
		coursename=coursename1;
		courseyear=courseyear1;
		m_courseset.Open();
		m_courseset.MoveFirst();
		do
		{
			if(m_courseset.m_column2==coursename && m_courseset.m_column4==courseyear)
			{
				courseno=m_courseset.m_column1;
				break;
			}
			m_courseset.MoveNext();
		}while(!m_courseset.IsEOF());
		m_courseset.Close();
		//
		m_gradeset.Open();
		m_gradeset.MoveFirst();
		do
		{
			if(m_gradeset.m_column1==studentno && m_gradeset.m_column2==courseno)
			{
				m_gradeset.Delete();
				break;
			}
			m_gradeset.MoveNext();
		}while(!m_gradeset.IsEOF());
		m_gradeset.Close();
		m_listmodify.DeleteItem(m_listmodify.GetSelectionMark());	
	}
	else
		MessageBox("请选择一条记录");
}

void CMyView::OnButtonmodify() 
{
	if(m_listmodify.GetSelectionMark()>=0)
	{
		TCHAR studentno[20],coursename[20],coursegrade[20],studentname[20],courseyear[20];
		m_listmodify.GetItemText(m_listmodify.GetSelectionMark(),0,studentno,20);
		m_listmodify.GetItemText(m_listmodify.GetSelectionMark(),2,coursename,20);
		m_listmodify.GetItemText(m_listmodify.GetSelectionMark(),3,coursegrade,20);
		m_listmodify.GetItemText(m_listmodify.GetSelectionMark(),1,studentname,20);
		m_listmodify.GetItemText(m_listmodify.GetSelectionMark(),6,courseyear,20);
		gradeeditdlg.m_studentno=studentno;
		gradeeditdlg.m_studentname=studentname;
		gradeeditdlg.m_course=coursename;
		gradeeditdlg.m_grade=coursegrade;
		gradeeditdlg.m_year=courseyear;
		if(gradeeditdlg.DoModal()==IDOK)
		{
			m_studentset.m_strFilter="";
			m_classset.m_strFilter="";
			m_courseset.m_strFilter="";
			CString currentzhuanyie;
			CString currentyear;
			CString currentclass;
			CString currentcourse;
			CString strclass,strzhuanyie,stryear,strcourse,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);
			strzhuanyie="专业名";
			strclass="班级名";
			stryear="学期";
			strcourse="课程名";
			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;
			}
	/////////////
			m_studentset.Open();
			m_classset.Open();
			m_courseset.Open();
			m_gradeset.Open();
			BOOL courseno;
			m_listmodify.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_listmodify.InsertItem(j,m_gradeset.m_column1,0);
									m_listmodify.SetItemText(j,1,m_studentset.m_column2);
									m_listmodify.SetItemText(j,2,coursename);
									m_listmodify.SetItemText(j,6,courseyear);
									grade.Format("%4.2f",double(m_gradeset.m_column3));
									m_listmodify.SetItemText(j,3,grade);
									m_listmodify.SetItemText(j,4,m_classset.m_column2);
									m_listmodify.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_listmodify.GetItemCount();
			if(num==0)
				MessageBox("没有记录");	
		}
			
	}
	else
		MessageBox("请选择一条记录");
}

BOOL CMyView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	return CFormView::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
}

void CMyView::OutputReport(CDC *pDC, CPrintInfo *pInfo)
{
	CString line;
	TEXTMETRIC metrics;
	int y=100;
	CFont TitleFont,HeadingFont,DetailFont,FooterFont;
	int TabStops[]={700,1000,1300};
	int FooterTabStops[]={200,500};
	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_listmodify.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_listmodify.GetItemCount();i++)
	{
		if(pInfo && abs(y)>2200)
		{
			pInfo->SetMaxPage(pInfo->m_nCurPage+1);
			break;
		}
		m_listmodify.GetItemText(i,0,currentstudentno,20);
		m_listmodify.GetItemText(i,1,currentstudentname,10);
		m_listmodify.GetItemText(i,2,currentcoursename,20);
		m_listmodify.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);

}

⌨️ 快捷键说明

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