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

📄 page1.cpp

📁 学生成绩管理系统,一个不错的数据库管理系统。
💻 CPP
字号:
// Page1.cpp : implementation file
//

#include "stdafx.h"
#include "cj.h"
#include "Page1.h"
#include "ADDDIALOG.h"
#include "DELETEDLG.h"
#include "ModifyDlg.h"
#include "FindDlg.h"
#include "BRecordSet.h"
#include "DRecordSet.h"
#include "TRecordSet.h"

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

extern CDatabase m_db;
/////////////////////////////////////////////////////////////////////////////
// CPage1 property page

IMPLEMENT_DYNCREATE(CPage1, CPropertyPage)

CPage1::CPage1() : CPropertyPage(CPage1::IDD)
{
	//{{AFX_DATA_INIT(CPage1)
	
	//}}AFX_DATA_INIT
}

CPage1::~CPage1()
{
}

void CPage1::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPage1)
	DDX_Control(pDX, IDC_LIST3, m_clist3);
	DDX_Control(pDX, IDC_LIST2, m_clist2);
	DDX_Control(pDX, IDC_LIST1, m_clist1);
	DDX_Control(pDX, IDC_COMBO1, m_xuan);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPage1, CPropertyPage)
	//{{AFX_MSG_MAP(CPage1)
	ON_BN_CLICKED(IDC_STATR, OnStatr)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_BN_CLICKED(IDC_DELECT, OnDelect)
	ON_BN_CLICKED(IDC_EDIT, OnEdit)
	ON_BN_CLICKED(IDC_FIND, OnFind)
	ON_BN_CLICKED(IDC_ALL, OnAll)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPage1 message handlers

BOOL CPage1::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_clist1.SetExtendedStyle(LVS_EX_GRIDLINES ); //给LIST添加网格
	m_clist2.SetExtendedStyle(LVS_EX_GRIDLINES );
	m_clist3.SetExtendedStyle(LVS_EX_GRIDLINES );

 
	m_clist1.InsertColumn(0,"科目",LVCFMT_LEFT,45);
	m_clist1.InsertColumn(1,"总成绩",LVCFMT_LEFT,50);
	m_clist1.InsertColumn(2,"平均成绩",LVCFMT_LEFT,65);
	m_clist1.InsertColumn(3,"及格人数",LVCFMT_LEFT,65);
	m_clist1.InsertColumn(4,"优秀人数",LVCFMT_LEFT,65);


	m_clist2.InsertColumn(0,"科目",LVCFMT_LEFT,45);
	m_clist2.InsertColumn(1,"任课老师",LVCFMT_LEFT,70);


	m_clist3.InsertColumn(0,"学号",LVCFMT_LEFT,45);
	m_clist3.InsertColumn(1,"姓名",LVCFMT_LEFT,45);
	m_clist3.InsertColumn(2,"数学",LVCFMT_LEFT,45);
	m_clist3.InsertColumn(3,"物理",LVCFMT_LEFT,45);
	m_clist3.InsertColumn(4,"化学",LVCFMT_LEFT,45);
	m_clist3.InsertColumn(5,"英语",LVCFMT_LEFT,45);
	m_clist3.InsertColumn(6,"政治",LVCFMT_LEFT,45);
	m_clist3.InsertColumn(7,"总成绩",LVCFMT_LEFT,60);
	m_clist3.InsertColumn(8,"平均成绩",LVCFMT_LEFT,65);

    GetDlgItem(IDC_ADD)->ShowWindow(SW_HIDE);
    GetDlgItem(IDC_DELECT)->ShowWindow(SW_HIDE);
    GetDlgItem(IDC_EDIT)->ShowWindow(SW_HIDE);
    GetDlgItem(IDC_FIND)->ShowWindow(SW_HIDE);
    GetDlgItem(IDC_ALL)->ShowWindow(SW_HIDE);
    m_xuan.SetCurSel(1);

    CTRecordSet m_tset(&m_db);
	CBRecordSet m_bset(&m_db);
	CDRecordSet m_set(&m_db);

 	if (m_db.IsOpen())  m_db.Close();

 
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CPage1::OnStatr() 
{
	// TODO: Add your control notification handler code here
 
    GetDlgItem(IDC_ADD)->ShowWindow(SW_SHOW);
    GetDlgItem(IDC_DELECT)->ShowWindow(SW_SHOW);
    GetDlgItem(IDC_EDIT)->ShowWindow(SW_SHOW);
    GetDlgItem(IDC_FIND)->ShowWindow(SW_SHOW);
    GetDlgItem(IDC_ALL)->ShowWindow(SW_SHOW);

	m_db.Open( _T( "lhwy" ), FALSE,FALSE, _T( "ODBC " ),TRUE );
     
 
   if(m_set.IsOpen())    m_set.Close();
   if(m_tset.IsOpen())   m_tset.Close();
   if(m_bset.IsOpen())   m_bset.Close();


 	m_xuan.GetLBText(m_xuan.GetCurSel(),m_Getstring);
    
 	if(m_Getstring=="一班")
   	 m_set.Open();
  
  	if(m_Getstring=="二班")
	 m_set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]",NULL);  
  
    if(m_Getstring=="一班")
      m_tset.Open();

    if(m_Getstring=="二班")
 	 m_tset.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2TECHER]",NULL); 
  	
    if(m_Getstring=="一班")
     m_bset.Open();


    if(m_Getstring=="二班")
 	 m_bset.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2OBJECT]",NULL); 




 //处理表3
     
       m_clist3.DeleteAllItems();
	   int n = 0 ;
	  while(!m_set.IsEOF())
	  {
	    m_clist3.InsertItem(n,"");
        CString s;
		s.Format("%d",m_set.m_column1);
 		m_clist3.SetItemText(n,0,s);
		m_clist3.SetItemText(n,1,m_set.m_column2);
		s.Format("%.1f",m_set.m_column3);
        m_clist3.SetItemText(n,2,s);
		s.Format("%.1f",m_set.m_column4);
     	m_clist3.SetItemText(n,3,s);
		s.Format("%.1f",m_set.m_column5);
     	m_clist3.SetItemText(n,4,s);
    	s.Format("%.1f",m_set.m_column6);
     	m_clist3.SetItemText(n,5,s);
	    s.Format("%.1f",m_set.m_column7);
     	m_clist3.SetItemText(n,6,s);
			s.Format("%.1f",m_set.m_column8);
     	m_clist3.SetItemText(n,7,s);
			s.Format("%.2f",m_set.m_column9);
     	m_clist3.SetItemText(n,8,s);

        m_set.MoveNext();
		n++;
	  }
	  m_set.Close(); 

 
	   
     
	  //处理表2
  
      m_clist2.DeleteAllItems();
	  int i = 0 ;
	  while(!m_tset.IsEOF())
	  {
	    m_clist2.InsertItem(i,"");
		m_clist2.SetItemText(i,0,m_tset.m_column1);
		m_clist2.SetItemText(i,1,m_tset.m_column2);
        m_tset.MoveNext();
		i++;
	  }
	  m_tset.Close();



  //处理表1
  
   m_clist1.DeleteAllItems();
	  int m = 0 ;
 	   while (!m_bset.IsEOF())
	   {
	     m_clist1.InsertItem(m,"");
	 	m_clist1.SetItemText(m,0,m_bset.m_column1);
          CString e;
		 e.Format("%.1f",m_bset.m_column2);
		 m_clist1.SetItemText(m,1,e);
		  e.Format("%.2f",m_bset.m_column3);
		 m_clist1.SetItemText(m,2,e);
		  e.Format("%.1f",m_bset.m_column4);
		 m_clist1.SetItemText(m,3,e);
		  e.Format("%.1f",m_bset.m_column5);
		 m_clist1.SetItemText(m,4,e);
		m_bset.MoveNext();
         m++;
	   }

     m_bset.Close();  
  	  m_db.Close();
     
//  GetDlgItem(IDC_STATR)->EnableWindow(FALSE);
	
}

void CPage1::OnAdd() 
{
	// TODO: Add your control notification handler code here
//	UpdateData();
	CADDDIALOG adddialog;
	if (adddialog.DoModal()==IDOK)
	{  
		
	  	  
 	   if(m_Getstring=="一班")
	   {
		  m_set.Open();
	      if(adddialog.m_nxuehao>=200)
		  {AfxMessageBox(_T("一班的学号在100-200之间!"),MB_OKCANCEL  ,0);	return;}
      
	   }
    
	   if(m_Getstring=="二班")
	   {
	      m_set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]",NULL);  
         if(adddialog.m_nxuehao<200||adddialog.m_nxuehao>=300)
		 {AfxMessageBox(_T("二班的学号在200-300之间!"),MB_OKCANCEL  ,0);   return ;}
	   }

    
	  
	  m_set.AddNew();
	  m_set.m_column1=adddialog.m_nxuehao;
	  m_set.m_column2=adddialog.m_nName;
      m_set.m_column3=adddialog.m_nMaths;
      m_set.m_column4=adddialog.m_nwuli;
      m_set.m_column5=adddialog.m_nhuaxue;
	  m_set.m_column6=adddialog.m_nEnglish;
	  m_set.m_column7=adddialog.m_nzhengz;
	  m_set.m_column8=adddialog.m_nMaths+adddialog.m_nwuli+adddialog.m_nhuaxue+adddialog.m_nEnglish+adddialog.m_nzhengz;
	  m_set.m_column9=(float)(m_set.m_column8/5);
	 
	  m_set.Update();
	  m_set.Requery();
 	  m_set.MoveLast();
	  
	 
      CString s;
      m_clist3.InsertItem(0,"");
	  s.Format("%d",adddialog.m_nxuehao);
	  m_clist3.SetItemText(0,0,s);
	  m_clist3.SetItemText(0,1,adddialog.m_nName);
      s.Format("%.f",adddialog.m_nMaths);
	  m_clist3.SetItemText(0,2,s);
       s.Format("%.f",adddialog.m_nwuli);
	  m_clist3.SetItemText(0,3,s);
       s.Format("%.f",adddialog.m_nhuaxue);
	  m_clist3.SetItemText(0,4,s);
       s.Format("%.f",adddialog.m_nEnglish);
	  m_clist3.SetItemText(0,5,s);
       s.Format("%.f",adddialog.m_nzhengz);
	  m_clist3.SetItemText(0,6,s);
	  s.Format("%.2f",adddialog.m_nMaths+adddialog.m_nwuli+adddialog.m_nhuaxue+adddialog.m_nEnglish+adddialog.m_nzhengz);
      m_clist3.SetItemText(0,7,s);
      s.Format("%.2f",m_set.m_column8/5);
	  m_clist3.SetItemText(0,8,s);
      m_set.MoveFirst();
      m_set.Close();
	}
        
}

void CPage1::OnDelect() 
{
	// TODO: Add your control notification handler code here
     
	CDELETEDLG deletedlg;
  if (deletedlg.DoModal()==IDOK) 
  {
	if (deletedlg.m_npassword!=122100)
    AfxMessageBox(_T("您输入的密码不正确,您没有权限修改记录! :( ,请在帮助文档中获得密码!"),MB_OKCANCEL ,0);
  
      else
	  {
	  BOOL b=FALSE;

 	     if(m_Getstring=="一班")
		 {
		  m_set.Open();
		 }
    
	     if(m_Getstring=="二班")
		 {
	      m_set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]",NULL);  
         }
	
	 
	      m_set.MoveFirst();
      
        do
		{
		  if(deletedlg.m_nxuehao!=m_set.m_column1)
		  m_set.MoveNext();
	     else
		 {   
	    
	 	     b=TRUE;
			 m_set.Delete();
		//	 m_set.Update();      //updatedata 只用在ADDNEW和Edit 中,用来更新记录表;
	 	 m_set.Requery();
		  m_clist3.DeleteAllItems(); 	
	     int n = 0 ;
	     while(!m_set.IsEOF())
		 {
	       m_clist3.InsertItem(n,"");
          CString s;
		s.Format("%d",m_set.m_column1);
 		m_clist3.SetItemText(n,0,s);
		m_clist3.SetItemText(n,1,m_set.m_column2);
		s.Format("%.1f",m_set.m_column3);
        m_clist3.SetItemText(n,2,s);
		s.Format("%.1f",m_set.m_column4);
     	m_clist3.SetItemText(n,3,s);
		s.Format("%.1f",m_set.m_column5);
     	m_clist3.SetItemText(n,4,s);
    	s.Format("%.1f",m_set.m_column6);
     	m_clist3.SetItemText(n,5,s);
	    s.Format("%.1f",m_set.m_column7);
     	m_clist3.SetItemText(n,6,s);
		s.Format("%.1f",m_set.m_column8);
     	m_clist3.SetItemText(n,7,s);
		s.Format("%.2f",m_set.m_column9);
     	m_clist3.SetItemText(n,8,s);

        m_set.MoveNext();
		n++;
		 }
	     m_set.MoveFirst();
		 break;
		 } 
	}while(!m_set.IsEOF());
    m_set.Close();
   if (b==FALSE)  AfxMessageBox("没有此记录");
  }
  }
}

void CPage1::OnEdit() 
{
	// TODO: Add your control notification handler code here
 
 	if(m_Getstring=="一班")
   	 m_set.Open();
  
  	if(m_Getstring=="二班")
	 m_set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]",NULL);  
  
	
	
	CModifyDlg  modifydlg;
  if (modifydlg.DoModal() == IDOK )
  {
      if(modifydlg.m_npassword != 122100)
		  AfxMessageBox(_T(""),MB_OKCANCEL,0);
	  else
	  {
	    m_set.MoveFirst();
			do
			{
			  if (m_set.m_column1 != modifydlg.m_nxuehao)
				  AfxMessageBox(_T(""),MB_OKCANCEL,0);
			  else 
			  {
			    m_clist3.DeleteAllItems();
				m_set.Edit();
				m_set.m_column2=modifydlg.m_Name;
				m_set.m_column3=modifydlg.m_nMaths;
				m_set.m_column4=modifydlg.m_nwuli;
				m_set.m_column5=modifydlg.m_nhuaxue;
				m_set.m_column6=modifydlg.m_nEnglish;
				m_set.m_column7=modifydlg.m_nzhengz;
				m_set.m_column8=modifydlg.m_nMaths+modifydlg.m_nwuli+modifydlg.m_nhuaxue+modifydlg.m_nEnglish+modifydlg.m_nzhengz;
				m_set.m_column9=m_set.m_column8/5;
			
				m_set.Update();
				m_set.Requery();  //Rebuild 表
              
		 m_clist3.DeleteAllItems();
	       int n = 0 ;
	     while(!m_set.IsEOF())
		  {
	    m_clist3.InsertItem(n,"");
        CString s;
		s.Format("%d",m_set.m_column1);
 		m_clist3.SetItemText(n,0,s);
		m_clist3.SetItemText(n,1,m_set.m_column2);
		s.Format("%.1f",m_set.m_column3);
        m_clist3.SetItemText(n,2,s);
		s.Format("%.1f",m_set.m_column4);
     	m_clist3.SetItemText(n,3,s);
		s.Format("%.1f",m_set.m_column5);
     	m_clist3.SetItemText(n,4,s);
    	s.Format("%.1f",m_set.m_column6);
     	m_clist3.SetItemText(n,5,s);
	    s.Format("%.1f",m_set.m_column7);
     	m_clist3.SetItemText(n,6,s);
			s.Format("%.1f",m_set.m_column8);
     	m_clist3.SetItemText(n,7,s);
			s.Format("%.2f",m_set.m_column9);
     	m_clist3.SetItemText(n,8,s);

        m_set.MoveNext();
		n++;
	  }
	   m_set.MoveFirst();
				break;

			  }
			}while(!m_set.IsEOF());
	  }
 }
   m_set.Close();
}



void CPage1::OnFind() 
{
	// TODO: Add your control notification handler code here
	 

	CFindDlg findialg;
	if (findialg.DoModal()==IDOK)
	{
		if(m_Getstring=="一班")
		 {
		  m_set.Open();
		 }
    
	     if(m_Getstring=="二班")
		 {
	      m_set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]",NULL);  
         }
	  if(findialg.m_getstring2==">=")
	   m_set.m_strFilter.Format("[%s]>=%.f",findialg.m_getstring1,findialg.m_ntiaojian); 
	  if(findialg.m_getstring2=="=")
	   m_set.m_strFilter.Format("[%s]=%.f",findialg.m_getstring1,findialg.m_ntiaojian); 
	  if(findialg.m_getstring2=="<=")
	   m_set.m_strFilter.Format("[%s]<=%.f",findialg.m_getstring1,findialg.m_ntiaojian); 
	  m_clist3.DeleteAllItems();
	  m_set.Requery();

	  if(m_set.IsEOF()) { AfxMessageBox(_T("没有您需要的记录! :("),MB_OKCANCEL,0);   m_set.Close();}

   else
	 {
	   int n = 0 ;
	  while(!m_set.IsEOF())
	  {
	    m_clist3.InsertItem(n,"");
        CString s;
		s.Format("%d",m_set.m_column1);
 		m_clist3.SetItemText(n,0,s);
		m_clist3.SetItemText(n,1,m_set.m_column2);
		s.Format("%.1f",m_set.m_column3);
        m_clist3.SetItemText(n,2,s);
		s.Format("%.1f",m_set.m_column4);
     	m_clist3.SetItemText(n,3,s);
		s.Format("%.1f",m_set.m_column5);
     	m_clist3.SetItemText(n,4,s);
    	s.Format("%.1f",m_set.m_column6);
     	m_clist3.SetItemText(n,5,s);
	    s.Format("%.1f",m_set.m_column7);
     	m_clist3.SetItemText(n,6,s);
			s.Format("%.1f",m_set.m_column8);
     	m_clist3.SetItemText(n,7,s);
			s.Format("%.2f",m_set.m_column9);
     	m_clist3.SetItemText(n,8,s);

        m_set.MoveNext();
		n++;
	  }
	  m_set.Close(); 
   } 
}
}

void CPage1::OnAll() 
{
	// TODO: Add your control notification handler code here
	
	m_clist3.DeleteAllItems();
   
	if(m_set.IsOpen())    m_set.Close();

	m_xuan.GetLBText(m_xuan.GetCurSel(),m_Getstring);
	m_set.m_strFilter.Empty();
    
 	if(m_Getstring=="一班")
   	 m_set.Open();
  
  	if(m_Getstring=="二班")
	 m_set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]",NULL);  



//	m_clist3.DeleteAllItems();
	   int n = 0 ;
	  while(!m_set.IsEOF())
	  {
	    m_clist3.InsertItem(n,"");
        CString s;
		s.Format("%d",m_set.m_column1);
 		m_clist3.SetItemText(n,0,s);
		m_clist3.SetItemText(n,1,m_set.m_column2);
		s.Format("%.1f",m_set.m_column3);
        m_clist3.SetItemText(n,2,s);
		s.Format("%.1f",m_set.m_column4);
     	m_clist3.SetItemText(n,3,s);
		s.Format("%.1f",m_set.m_column5);
     	m_clist3.SetItemText(n,4,s);
    	s.Format("%.1f",m_set.m_column6);
     	m_clist3.SetItemText(n,5,s);
	    s.Format("%.1f",m_set.m_column7);
     	m_clist3.SetItemText(n,6,s);
			s.Format("%.1f",m_set.m_column8);
     	m_clist3.SetItemText(n,7,s);
			s.Format("%.2f",m_set.m_column9);
     	m_clist3.SetItemText(n,8,s);

        m_set.MoveNext();
		n++;
	  }
	  m_set.Close(); 

 
}

⌨️ 快捷键说明

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