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

📄 mainview.cpp

📁 ACCESS数据库+MFC编写的学生数据库管理系统
💻 CPP
字号:
// MainView.cpp : implementation file
#include "stdafx.h"
#include "学籍管理系统.h"
#include "MainView.h"
#include  "afxdb.h"
#include "AddstuDlg.h"
#include "AddcollageDlg.h"
#include "AddteamDlg.h"
#include "AddspeDlg.h"
#include "AddsubDg.h"
#include "InpluscoreDlg.h"
#include "InspescoreDlg.h"
#include "AddmakeupDlg.h"
#include "DelinfoDlg.h"
#include "LiuTuiDlg.h"
#include "MakeupListDlg.h"
#include "PubscoreDlg.h"
#include "SpescoreDlg.h"
#include "EditstuDlg.h"
#include "AdminmanageDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMainView

IMPLEMENT_DYNCREATE(CMainView, CFormView)

CMainView::CMainView()
	: CFormView(CMainView::IDD)
{
	//{{AFX_DATA_INIT(CMainView)
	m_main_selstunum = _T("");
	m_main_selstuname = _T("");
	m_main_outcon = _T("");
	m_main_outname = _T("");
	m_main_outno = _T("");
	m_main_outdata = _T("");
	m_main_outspe = _T("");
	m_main_outcol = _T("");
	//}}AFX_DATA_INIT
}

CMainView::~CMainView()
{
}

void CMainView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMainView)
	DDX_Control(pDX, IDC_LIST_MAINPAGE, m_list_mainpage);
	DDX_Text(pDX, IDC_EDIT_MAINSELNUM, m_main_selstunum);
	DDX_Text(pDX, IDC_EDIT_MAINSELNAME, m_main_selstuname);
	DDX_Text(pDX, IDC_EDIT_OUTCON, m_main_outcon);
	DDX_Text(pDX, IDC_EDIT_OUTNAME, m_main_outname);
	DDX_Text(pDX, IDC_EDIT_OUTNO, m_main_outno);
	DDX_Text(pDX, IDC_EDIT_OUTPDATE, m_main_outdata);
	DDX_Text(pDX, IDC_EDIT_OUTSPE, m_main_outspe);
	DDX_Text(pDX, IDC_EDIT_OUTCOL, m_main_outcol);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMainView, CFormView)
	//{{AFX_MSG_MAP(CMainView)
	ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd)
	ON_NOTIFY(NM_RCLICK, IDC_LIST_MAINPAGE, OnRclickListMainpage)
	ON_EN_CHANGE(IDC_EDIT_MAINSELNUM, OnChangeEditMainselnum)
	ON_NOTIFY(NM_CLICK, IDC_LIST_MAINPAGE, OnClickListMainpage)
	ON_BN_CLICKED(IDC_BUTTON_DEL, OnButtonDel)
	ON_COMMAND(ID_STU_RDEL, OnStuRdel)
	ON_COMMAND(ID_STU_RADD, OnStuRadd)
	ON_BN_CLICKED(IDC_BUTTON_ADDCOL, OnButtonAddcol)
	ON_BN_CLICKED(IDC_BUTTON_ADDTEAM, OnButtonAddteam)
	ON_BN_CLICKED(IDC_BUTTON_ADDSPE, OnButtonAddspe)
	ON_BN_CLICKED(IDC_BUTTON_ADDSUB, OnButtonAddsub)
	ON_COMMAND(ID_MANAGE_COLADD, OnManageColadd)
	ON_COMMAND(ID_MANAGE_SPCADD, OnManageSpcadd)
	ON_COMMAND(ID_MANAGE_SPCDEL, OnManageSpcdel)
	ON_COMMAND(ID_MANAGE_SUBADD, OnManageSubadd)
	ON_COMMAND(ID_MANAGE_SUBDEL, OnManageSubdel)
	ON_COMMAND(ID_MANAGE_TEAMADD, OnManageTeamadd)
	ON_COMMAND(ID_MANAGE_TEAMDEL, OnManageTeamdel)
	ON_COMMAND(ID_MANAGE_COLDEL, OnManageColdel)
	ON_BN_CLICKED(IDC_BUTTON_INPLUSCOR, OnButtonInpluscor)
	ON_BN_CLICKED(IDC_BUTTON_INSPCSCOR, OnButtonInspcscor)
	ON_BN_CLICKED(IDC_BUTTON_MAKEUPADD, OnButtonMakeupadd)
	ON_BN_CLICKED(IDC_BUTTON_DELINFO, OnButtonDelinfo)
	ON_BN_CLICKED(IDC_BUTTON_LIUTUI, OnButtonLiutui)
	ON_BN_CLICKED(IDC_BUTTON_MAKEUPLOOK, OnButtonMakeuplook)
	ON_BN_CLICKED(IDC_BUTTON_PUBSCORELOOK, OnButtonPubscorelook)
	ON_BN_CLICKED(IDC_BUTTON_SPESCORELOOK, OnButtonSpescorelook)
	ON_EN_CHANGE(IDC_EDIT_MAINSELNAME, OnChangeEditMainselname)
	ON_BN_CLICKED(IDC_BUTTON_EIIT, OnButtonEiit)
	ON_COMMAND(ID_MANAGE_ADMINMANAGE, OnManageAdminmanage)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMainView diagnostics

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

void CMainView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMainView message handlers

void CMainView::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class
	//初始化列表框
	m_list_mainpage.SetExtendedStyle   (LVS_EX_FULLROWSELECT   |LVS_EX_GRIDLINES   |LVS_EX_INFOTIP);
    int  nWidth = 110 ;
    m_list_mainpage.InsertColumn( 0 , "学号" ,LVCFMT_LEFT,90 );
	m_list_mainpage.InsertColumn( 1 , "姓名" ,LVCFMT_LEFT,60 );
	m_list_mainpage.InsertColumn( 2 , "性别" ,LVCFMT_LEFT,nWidth * 1 / 3 );
	m_list_mainpage.InsertColumn( 3 , "民族" ,LVCFMT_LEFT,60 );
	m_list_mainpage.InsertColumn( 4 , "生日" ,LVCFMT_LEFT,nWidth * 2 / 3 );
	m_list_mainpage.InsertColumn( 5 , "队别" ,LVCFMT_LEFT,165  );
	m_list_mainpage.InsertColumn( 6 , "专业" ,LVCFMT_LEFT,nWidth * 2 / 3 );
	m_list_mainpage.InsertColumn( 7 , "入学时间" ,LVCFMT_LEFT,nWidth  * 2 / 3 );
	m_list_mainpage.InsertColumn( 8 , "联系方式" ,LVCFMT_LEFT,nWidth  * 2 / 3 );
	//插入记录
	CString str(_T("select * from   stuinfo"));
	CStuinfoSet rs;
	rs.Open(CRecordset::snapshot,str);
	UpdataMainList(rs);
	
}


void CMainView::OnButtonAdd() 
{
	// TODO: Add your control notification handler code here
	CAddstuDlg dlg;
	if(dlg.DoModal()==IDOK)
	{
		CStuinfoSet rsupdata;
		rsupdata.Open();
		UpdataMainList(rsupdata);
		MessageBox("添加记录成功","添加成功",MB_OK|MB_ICONINFORMATION);
	}
}


int CMainView::GetSelected() 
{
	// TODO: Add your control notification handler code here

      for(int i=0; i<m_list_mainpage.GetItemCount(); i++)
      {
           if( m_list_mainpage.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
           {
				return i;//当有一行被选中,返回行号
           }
      }
	  return -2;//如果未选中任何一行则返回-2
	
}

void CMainView::OnRclickListMainpage(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	CPoint point;
	CMenu menu;
	menu. LoadMenu(IDR_MENU_RCLICK);	 	 //get menu resource
	CMenu* pPopup=menu.GetSubMenu(0);	 
	GetCursorPos(&point);
	pPopup-> TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
	*pResult = 0;
}





void CMainView::UpdataMainList(CStuinfoSet &rs)
{
	int  i = 0 ;
    CString strsql="select * from stuinfo order by collage";
	if(rs.IsOpen())
		rs.Close();
    rs.Open(CRecordset::snapshot);
    m_list_mainpage.DeleteAllItems();
     while ( ! rs.IsEOF())
      {
        m_list_mainpage.InsertItem(i, rs.m_stuNum);
         m_list_mainpage.SetItemText(i, 1 ,rs.m_name);
        m_list_mainpage.SetItemText(i, 2 ,rs.m_sex);
        m_list_mainpage.SetItemText(i, 3 ,rs.m_race);
		m_list_mainpage.SetItemText(i, 4 ,rs.m_birthday);
		m_list_mainpage.SetItemText(i, 5 ,rs.m_collage+" "+rs.m_stuteam);
		m_list_mainpage.SetItemText(i, 6 ,rs.m_spename);
		m_list_mainpage.SetItemText(i, 7 ,rs.m_enrolment);
		m_list_mainpage.SetItemText(i, 8 ,rs.m_connect);
        rs.MoveNext();
        i ++ ;
	 }

}

void CMainView::OnChangeEditMainselnum() 
{
	
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if (m_main_selstunum=="")
	{
		for (int i=0;i<m_list_mainpage.GetItemCount();i++)
			{
					m_list_mainpage.SetItemState(i, 0, LVIS_SELECTED|LVIS_FOCUSED);					
			}
		return;
	}
	for (int i=0;i<m_list_mainpage.GetItemCount();i++)
	{
		CString num=m_list_mainpage.GetItemText(i,0);
		if (num.Find(m_main_selstunum)!=-1)
		{
			m_list_mainpage.SetItemState(i, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
		}
		else
		{
			m_list_mainpage.SetItemState(i, 0, LVIS_SELECTED|LVIS_FOCUSED);
		}
					
	}

	
}





void CMainView::OnClickListMainpage(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int nItem=GetSelected();
	CString lpszText;
		m_main_outno=m_list_mainpage.GetItemText(nItem,0) ;
		m_main_outname=m_list_mainpage.GetItemText(nItem,1) ;
		m_main_outdata=m_list_mainpage.GetItemText(nItem,7) ;
		m_main_outspe=m_list_mainpage.GetItemText(nItem,6) ;
		m_main_outcon=m_list_mainpage.GetItemText(nItem,8) ;
		m_main_outcol=m_list_mainpage.GetItemText(nItem,5) ;
	UpdateData(FALSE);
	*pResult = 0;
}

void CMainView::OnButtonDel() 
{
	// TODO: Add your control notification handler code here
	int nItem=GetSelected();
	CString delstr,number,name;
	number=m_list_mainpage.GetItemText(nItem,0) ;
	name=m_list_mainpage.GetItemText(nItem,1);
	if(number=="")
	{
		MessageBox("请选择要删除的学生记录","删除错误",MB_ICONHAND);
		return;
	}
	delstr.Format("确认删除学号为\"%s\"的学生\"%s\"吗?",number,name);

	if(MessageBox(delstr,"删除",MB_ICONQUESTION|MB_YESNO)==IDYES)
	{
		
		CString sql;
		sql.Format("delete from stuinfo where stunum=\'%s\'",number);//注意是单引号
		RunSQL(sql);
		m_list_mainpage.DeleteItem(nItem);		
		MessageBox("删除成功","删除成功",MB_OK|MB_ICONINFORMATION);
	}
	
}

void CMainView::RunSQL(CString sql)
{
		CDatabase db;
		CStuinfoSet delnum;
		db.Open(delnum.GetDefaultConnect());
		db.ExecuteSQL(sql);
	

}

void CMainView::OnStuRdel() 
{
	// TODO: Add your command handler code here
	OnButtonDel();

	
}

void CMainView::OnStuRadd() 
{
	// TODO: Add your command handler code here
	OnButtonAdd();
	
}

void CMainView::OnButtonAddcol() 
{
	// TODO: Add your control notification handler code here
	CAddcollageDlg dlg;
	dlg.DoModal();


	
}

void CMainView::OnButtonAddteam() 
{
	// TODO: Add your control notification handler code here
	CAddteamDlg dlg;
	dlg.DoModal();

	
}

void CMainView::OnButtonAddspe() 
{
	// TODO: Add your control notification handler code here
	CAddspeDlg dlg;
	dlg.DoModal();

	
	
}

void CMainView::OnButtonAddsub() 
{
	// TODO: Add your control notification handler code here
	CAddsubDg dlg;
	dlg.DoModal();

	
}

void CMainView::OnManageColadd() //增加学院
{
	// TODO: Add your command handler code here
	OnButtonAddcol();
	
}

void CMainView::OnManageSpcadd() //增加专业
{
	// TODO: Add your command handler code here
	OnButtonAddspe();
	
}

void CMainView::OnManageSpcdel() //删除专业
{
	// TODO: Add your command handler code here
	CDelinfoDlg dlg;
	dlg.DoModal();	
}

void CMainView::OnManageSubadd() //增加课程
{
	// TODO: Add your command handler code here
	OnButtonAddsub();
	
}

void CMainView::OnManageSubdel() //删除课程
{
	// TODO: Add your command handler code here
	CDelinfoDlg dlg;
	dlg.DoModal();	
}

void CMainView::OnManageTeamadd() //增加学员队
{
	// TODO: Add your command handler code here
	OnButtonAddteam();
	
}

void CMainView::OnManageTeamdel() //删除学员队
{
	// TODO: Add your command handler code here
	CDelinfoDlg dlg;
	dlg.DoModal();	
}

void CMainView::OnManageColdel() //删除学院
{
	// TODO: Add your command handler code here
	CDelinfoDlg dlg;
	dlg.DoModal();	
}

void CMainView::OnButtonInpluscor() //输入公共基础课程序
{
	// TODO: Add your control notification handler code here
	CInpluscoreDlg dlg;
	dlg.DoModal();
	
}

void CMainView::OnButtonInspcscor() 
{
	// TODO: Add your control notification handler code here
	CInspescoreDlg dlg;
	dlg.DoModal();
	
}

void CMainView::OnButtonMakeupadd() 
{
	// TODO: Add your control notification handler code here
	CAddmakeupDlg dlg;
	dlg.DoModal();
	
}

void CMainView::OnButtonDelinfo() 
{
	// TODO: Add your control notification handler code here
	CDelinfoDlg dlg;
	dlg.DoModal();
	
}

void CMainView::OnButtonLiutui() 
{
	// TODO: Add your control notification handler code here
	CLiuTuiDlg dlg;
	dlg.DoModal();	
}




void CMainView::OnButtonMakeuplook() 
{
	// TODO: Add your control notification handler code here
	CMakeupListDlg	dlg;
	dlg.DoModal();
}

void CMainView::OnButtonPubscorelook() 
{
	// TODO: Add your control notification handler code here
	CPubscoreDlg	dlg;
	dlg.DoModal();	
}


void CMainView::OnButtonSpescorelook() 
{
	// TODO: Add your control notification handler code here
	
	CSpescoreDlg	dlg;
	dlg.DoModal();	
}

void CMainView::OnChangeEditMainselname() 
{
	UpdateData(TRUE);
	if (m_main_selstuname=="")
	{
		for (int i=0;i<m_list_mainpage.GetItemCount();i++)
			{
					m_list_mainpage.SetItemState(i, 0, LVIS_SELECTED|LVIS_FOCUSED);					
			}
		return;
	}
	for (int i=0;i<m_list_mainpage.GetItemCount();i++)
	{
		CString name=m_list_mainpage.GetItemText(i,1);
		if (name.Find(m_main_selstuname)!=-1)
		{
			m_list_mainpage.SetItemState(i, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
		}
		else
		{
			m_list_mainpage.SetItemState(i, 0, LVIS_SELECTED|LVIS_FOCUSED);
		}
					
	}

	
}

void CMainView::OnButtonEiit() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	
	if(GetSelected()==-2)
	{
		MessageBox("请选择要修改的学生记录","修改错误",MB_ICONHAND);
		return;
	}


	CEditstuDlg dlg;
	CStuinfoSet rs,rs1;
	rs.m_strFilter.Format("stunum='%s'",m_main_outno);
	rs.Open();
	while(!rs.IsEOF())
	{
			dlg.m_stunum=rs.m_stuNum;
			dlg.m_name=rs.m_name;
			dlg.m_sex=rs.m_sex;
			dlg.m_spe=rs.m_spename;
			dlg.m_collage=rs.m_collage;
			dlg.m_con=rs.m_connect;
			dlg.m_nav=rs.m_native;
			dlg.m_race=rs.m_race;
			dlg.m_team=rs.m_stuteam;
			int   a,b,c   ;   
			sscanf(rs.m_birthday.GetBuffer(rs.m_birthday.GetLength()),"%d-%d-%d",&a,&b,&c);   
			CTime   time(a,b,c,0,0,0); 
			dlg.m_birthday=time;  
			sscanf(rs.m_enrolment.GetBuffer(rs.m_enrolment.GetLength()),"%d-%d-%d",&a,&b,&c);   
			CTime   time1(a,b,c,0,0,0); 
			dlg.m_enrolment=time1;

			rs.MoveNext();

	}
	rs.Close();
	if (dlg.DoModal()==IDOK)
	{
		
		rs1.Open();
		UpdataMainList(rs1);
		MessageBox("修改成功","修改成功",MB_OK|MB_ICONINFORMATION);
	}

}

void CMainView::OnManageAdminmanage() 
{
	// TODO: Add your command handler code here
	CAdminmanageDlg dlg;
	dlg.DoModal();
}

⌨️ 快捷键说明

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