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

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

📁 一个小型的学生成绩管理系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// 学生成绩管理系统View.cpp : implementation of the CMyView class
//

#include "stdafx.h"
#include "学生成绩管理系统.h"
#include "MainFrm.h"
#include "学生成绩管理系统Doc.h"
#include "学生成绩管理系统View.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMyView

IMPLEMENT_DYNCREATE(CMyView, CFormView)

BEGIN_MESSAGE_MAP(CMyView, CFormView)
	//{{AFX_MSG_MAP(CMyView)
	ON_CBN_SELENDOK(IDC_COMBOYEAR, OnSelendokComboyear)
	ON_CBN_SELENDOK(IDC_COMBOZHUANYIE, OnSelendokCombozhuanyie)
	ON_CBN_SELENDOK(IDC_COMBOCLASS, OnSelendokComboclass)
	ON_CBN_SELENDOK(IDC_COMBOCOURSE, OnSelendokCombocourse)
	ON_BN_CLICKED(IDC_BUTTONADD, OnButtonadd)
	ON_BN_CLICKED(IDC_BUTTONREFRESH, OnButtonrefresh)
	ON_BN_CLICKED(IDC_BUTTONDELETE, OnButtondelete)
	ON_BN_CLICKED(IDC_BUTTONMODIFY, OnButtonmodify)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyView construction/destruction

CMyView::CMyView()
	: CFormView(CMyView::IDD)
{
	//{{AFX_DATA_INIT(CMyView)
	//}}AFX_DATA_INIT
	// TODO: add construction code here
	bm_dayin1.LoadBitmap(IDB_DAYIN);
	bm_dayin2.LoadBitmap(IDB_DAYIN);
	bm_preview1.LoadBitmap(IDB_PREVIEW);
	bm_preview2.LoadBitmap(IDB_PREVIEW);
}

CMyView::~CMyView()
{
}

void CMyView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyView)
	DDX_Control(pDX, IDC_COMBOZHUANYIE, m_combozhuanyie);
	DDX_Control(pDX, IDC_COMBOCLASS, m_comboclass);
	DDX_Control(pDX, IDC_COMBOCOURSE, m_combocourse);
	DDX_Control(pDX, IDC_COMBOYEAR, m_comboyear);
	DDX_Control(pDX, IDC_LISTMODIFY, m_listmodify);
	//}}AFX_DATA_MAP
}

BOOL CMyView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
	return CFormView::PreCreateWindow(cs);
}

void CMyView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();
//list
	LONG lStyle = m_listmodify.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE);
	lStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP;
	m_listmodify.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0,(LPARAM)lStyle);

	int left=0;
	CString feild[7]={"学号","姓名","课程","成绩","班级","专业","学期"};
	for(int i=0;i<7;i++)
	{
	m_listmodify.InsertColumn(i+1,feild[i],left,100,i);
	left=200*(i+1);
	}
	////显示
	m_studentset.m_strSort="学号";
	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("没有记录");	
//combo
	m_combozhuanyie.ResetContent();
	m_classset.Open();
	BOOL zhuanyie;
	BOOL xueqi;
	CString s;
	m_classset.MoveFirst();
	do
	{	
		zhuanyie=TRUE;
		for (j=0;j<m_combozhuanyie.GetCount();j++)
		{
			m_combozhuanyie.GetLBText(j,s);
			if(m_classset.m_column3==s)
			{
				zhuanyie=FALSE;
			}
		}
		if(zhuanyie)
		{
			m_combozhuanyie.AddString(m_classset.m_column3);
		}
		m_comboclass.AddString(m_classset.m_column2);
		m_classset.MoveNext();
	} while(!m_classset.IsEOF());
	m_classset.Close();

	m_courseset.Open();
	m_courseset.MoveFirst();
	do
	{
		xueqi=TRUE;
		for (j=0;j<m_comboyear.GetCount();j++)
		{
			m_comboyear.GetLBText(j,s);
			if(m_courseset.m_column4==s)
			{
				xueqi=FALSE;
			}
		}
		if(xueqi)
		{
			m_comboyear.AddString(m_courseset.m_column4);
		}
		m_combocourse.AddString(m_courseset.m_column2);
		m_courseset.MoveNext();
	} while (!m_courseset.IsEOF());
	m_courseset.Close();

}

/////////////////////////////////////////////////////////////////////////////
// CMyView printing

BOOL CMyView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CMyView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CMyView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

void CMyView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
	// TODO: add customized printing code here
	OutputReport(pDC,pInfo);
}

/////////////////////////////////////////////////////////////////////////////
// CMyView diagnostics

#ifdef _DEBUG
void CMyView::AssertValid() const
{
	CFormView::AssertValid();
}

void CMyView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

CMyDoc* CMyView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyDoc)));
	return (CMyDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMyView message handlers


void CMyView::OnDraw(CDC* pDC) 
{
	// TODO: Add your specialized code here and/or call the base class
		CWnd*parent=GetParent();
	CMenu*pmenubar=parent->GetMenu();	

	CMenu*pmenu=pmenubar->GetSubMenu(0);
	pmenu->SetMenuItemBitmaps(0,MF_BYPOSITION,&bm_dayin1,&bm_dayin2);
	pmenu->SetMenuItemBitmaps(1,MF_BYPOSITION,&bm_preview1,&bm_preview2);
	
}

void CMyView::OnSelendokComboyear() 
{
	m_studentset.m_strFilter="";
	m_classset.m_strFilter="";
	m_courseset.m_strFilter="";
	// TODO: Add your control notification handler code here
	//combo
	CString currentzhuanyie;
	CString currentyear;
	CString currentclass;
	CString currentcourse;
	CString strclass,strzhuanyie,stryear,strcourse;
	m_courseset.Open();
	if(m_comboyear.GetCurSel()>=0)
		m_comboyear.GetLBText(m_comboyear.GetCurSel(),currentyear);
	m_combocourse.ResetContent();
	m_courseset.MoveFirst();
	do
	{
		if(m_courseset.m_column4==currentyear)
			m_combocourse.AddString(m_courseset.m_column2);
		m_courseset.MoveNext();
	} while (!m_courseset.IsEOF());
	m_courseset.Close();
	//list
	////过滤
	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
	{
		m_courseset.m_strFilter=stryear + "='" + currentyear + "'" + "AND " + strcourse + "='" + currentcourse + "'";
	}
	/////////////
	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::OnSelendokCombozhuanyie() 
{
	// TODO: Add your control notification handler code here
	m_studentset.m_strFilter="";
	m_classset.m_strFilter="";
	m_courseset.m_strFilter="";
	//combo
	CString currentzhuanyie;
	CString currentyear;
	CString currentclass;
	CString currentcourse;
	CString strclass,strzhuanyie,stryear,strcourse;
	m_classset.Open();
	if(m_combozhuanyie.GetCurSel()>=0)
		m_combozhuanyie.GetLBText(m_combozhuanyie.GetCurSel(),currentzhuanyie);
	m_comboclass.ResetContent();
	m_classset.MoveFirst();
	do
	{
		if(m_classset.m_column3==currentzhuanyie)
			m_comboclass.AddString(m_classset.m_column2);
		m_classset.MoveNext();
	} while(!m_classset.IsEOF());
	m_classset.Close();
	//list
	//过滤
	if(m_comboyear.GetCurSel()>=0)
		m_comboyear.GetLBText(m_comboyear.GetCurSel(),currentyear);
	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="班级名";

⌨️ 快捷键说明

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