📄 学生成绩管理系统view.cpp
字号:
// 学生成绩管理系统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 + -