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

📄 badialog.cpp

📁 用VC做的一个简单学生成绩管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// BaDialog.cpp : implementation file
//

#include "stdafx.h"
#include "lhwy.h"
#include "BaDialog.h"

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

/////////////////////////////////////////////////////////////////////////////
// CBaDialog dialog
IMPLEMENT_SERIAL(CBaDialog, CDialog, VERSIONABLE_SCHEMA | 2 )

CBaDialog::CBaDialog(CWnd* pParent /*=NULL*/)
	: CDialog(CBaDialog::IDD, pParent)
{ 
  
	//{{AFX_DATA_INIT(CBaDialog)
	//}}AFX_DATA_INIT
}


void CBaDialog::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBaDialog)
	DDX_Control(pDX, IDC_EXPORT, m_ExportButtom);
	DDX_Control(pDX, IDC_STATR, m_StaButton);
	DDX_Control(pDX, IDC_DELECT, m_DelButton);
	DDX_Control(pDX, IDC_FIND, m_FindButton);
	DDX_Control(pDX, IDC_EDIT, m_EditButton);
	DDX_Control(pDX, IDC_ALL, m_AllButton);
	DDX_Control(pDX, IDC_ADD, m_AddButton);
	DDX_Control(pDX, IDC_COMBO1, m_cob);
	DDX_Control(pDX, IDC_LIST1, m_ListCtrlb);
	DDX_Control(pDX, IDC_LIST2, m_ListCtrll);
	DDX_Control(pDX, IDC_LIST3, m_ListCtrlx);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBaDialog, CDialog)
	//{{AFX_MSG_MAP(CBaDialog)
	ON_BN_CLICKED(IDC_STATR, OnStatr)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_BN_CLICKED(IDC_DELECT, OnDelect)
	ON_BN_CLICKED(IDC_FIND, OnFind)
	ON_BN_CLICKED(IDC_ALL, OnAll)
	ON_BN_CLICKED(IDC_EDIT, OnEdit)
	ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST3, OnColumnclickList3)
    ON_MESSAGE(WM_CREATETABEL,OnCreateTabel)
	ON_MESSAGE(WM_DELTABEL,OnDelTabel)
	ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
	ON_BN_CLICKED(IDC_EXPORT, OnExport)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBaDialog message handlers

BOOL CBaDialog::OnInitDialog() 
{
   CDialog::OnInitDialog();
   CDRecordset m_Set(&theApp.m_DB);
   CBRecordset m_bSet(&theApp.m_DB);
   CTRecordset m_tSet(&theApp.m_DB);

    unsigned i=0;
	CODBCFieldInfo Info;
	m_Set.Open(AFX_DB_USE_DEFAULT_TYPE,"一班STUDENT");
	m_ListCtrlx.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	for( i=0;i<m_Set.m_nFields;i++)
	{  
	    m_Set.GetODBCFieldInfo(i,Info);
		m_ListCtrlx.InsertColumn(i,Info.m_strName,LVCFMT_LEFT,70);
	}
    m_Set.Close();

	m_bSet.Open(AFX_DB_USE_DEFAULT_TYPE,"一班OBJECT");
	m_ListCtrlb.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	for( i=0;i<m_bSet.m_nFields;i++)
	{   
	    m_bSet.GetODBCFieldInfo(i,Info);
		m_ListCtrlb.InsertColumn(i,Info.m_strName,LVCFMT_LEFT,80);
	}
	
	
    m_bSet.Close();

	m_ListCtrll.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
    m_ListCtrll.InsertColumn(0,_T("科目"),LVCFMT_IMAGE|LVCFMT_LEFT);
    m_ListCtrll.InsertColumn(1,"任课老师");
    for(i=0;i<2;i++)
	m_ListCtrll.SetColumnWidth(i,80);

   
   m_cob.SetCurSel(0);
   this->Enable(FALSE);
   m_Timer=SetTimer(1,2,NULL);
   m_bIsAsc=TRUE;
   m_bS=TRUE;

 
   
	GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
	sPath.ReleaseBuffer ();
	int nPos;
	nPos=sPath.ReverseFind ('\\');
	sPath=sPath.Left (nPos);
	nPos=sPath.ReverseFind('\\');
    sPath=sPath.Left (nPos);
    lpszFile = sPath + "\\tect.txt";
    
    CFile aFile;
    CFileFind  fFind;
	BOOL bSuccess;
	bSuccess=fFind.FindFile( lpszFile);
	
	if(!bSuccess)
	 aFile.Open( lpszFile,CFile::modeCreate);
	else
	{
	aFile.Open( lpszFile,CFile::modeReadWrite);
    CArchive arr(&aFile,CArchive::load);
    Serialize( arr);
    if(m_Three=="三班")
    m_cob.AddString(m_Three);
    if(m_Four=="四班")
    m_cob.AddString(m_Four);
    if(m_Five=="五班")
    m_cob.AddString(m_Five);
    if(m_Six=="六班")
    m_cob.AddString(m_Six);
    if(m_Seven=="七班")
    m_cob.AddString(m_Seven);
     if(m_Eight=="八班")
    m_cob.AddString(m_Eight);
	}
   aFile.Close();

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

void CBaDialog::OnStatr() 
{
	// TODO: Add your control notification handler code here
	m_ListCtrlx.DeleteAllItems();
	m_ListCtrlb.DeleteAllItems();
	m_ListCtrll.DeleteAllItems();
	if(m_Set.IsOpen())
	m_Set.Close();
	if(m_bSet.IsOpen())
	m_bSet.Close();

    m_cob.GetLBText(m_cob.GetCurSel(),m_Getstring);
   	this->Select();
    CString str;
	str.Format("%sTECHER",m_Getstring);
    m_tSet.Open(AFX_DB_USE_DEFAULT_TYPE,str);
 
    m_nRecordCount=this->Show();
    this->display();
    this->exhibit();
    m_bS = GetDlgItem(IDC_STATR)->EnableWindow(FALSE);
	this->Enable(TRUE);	
}

int  CBaDialog::Show()
{
  int i=0;
  
  m_Set.MoveFirst();
  if(m_Set.m_column1==0)
  {
	 m_Set.Close();
	 return i;
	 }
  do
  {  

  CString s;
  s.Format("%d",m_Set.m_column1);
  m_ListCtrlx.InsertItem(i,s,0);
  m_ListCtrlx.SetItemText(i,1,m_Set.m_column2);
  s.Format("%.1f",m_Set.m_column3);
  m_ListCtrlx.SetItemText(i,2,s);
  s.Format("%.1f",m_Set.m_column4);
  m_ListCtrlx.SetItemText(i,3,s);
  s.Format("%.1f",m_Set.m_column5);
  m_ListCtrlx.SetItemText(i,4,s);
  s.Format("%.1f",m_Set.m_column6);
  m_ListCtrlx.SetItemText(i,5,s);
  s.Format("%.1f",m_Set.m_column7);
  m_ListCtrlx.SetItemText(i,6,s);
  s.Format("%.1f",m_Set.m_column8);
  m_ListCtrlx.SetItemText(i,7,s);
  s.Format("%.2f",m_Set.m_column9);
  m_ListCtrlx.SetItemText(i,8,s);
		
  i++;
  m_Set.MoveNext();
		
  }  while(!m_Set.IsEOF());
  m_Set.Close();
  return i;
  
}


 void CBaDialog::display()
 {
   int i=0;
   m_bSet.MoveFirst();
   do
	 {  
    	CString s;
	    m_ListCtrlb.InsertItem(i,m_bSet.m_column1,0);
		s.Format("%.1f",m_bSet.m_column2);
		m_ListCtrlb.SetItemText(i,1,s);
	    s.Format("%.2f",m_bSet.m_column3);
        m_ListCtrlb.SetItemText(i,2,s);
        s.Format("%d",m_bSet.m_column4);
        m_ListCtrlb.SetItemText(i,3,s);
        s.Format("%d",m_bSet.m_column5);
        m_ListCtrlb.SetItemText(i,4,s);
      
		i++;
        m_bSet.MoveNext();
		
		} while(!m_bSet.IsEOF());
        m_bSet.Close();
 }


 void CBaDialog::exhibit()
 {
  int i=0;
  do
  {  
   m_ListCtrll.InsertItem(i,m_tSet.m_column1,0);
   m_ListCtrll.SetItemText(i,1,m_tSet.m_column2);
   i++;
   m_tSet.MoveNext();
  }while(!m_tSet.IsEOF());
   m_tSet.Close();
 }

 void CBaDialog::Enable( BOOL p)
 {
	 
	 GetDlgItem(IDC_ADD)->EnableWindow(p);
	 GetDlgItem(IDC_DELECT)->EnableWindow(p);
	 GetDlgItem(IDC_EDIT)->EnableWindow(p);
	 GetDlgItem(IDC_FIND)->EnableWindow(p);
	 GetDlgItem(IDC_ALL)->EnableWindow(p);
	 GetDlgItem(IDC_EXPORT)->EnableWindow(p);
 }

 CString CBaDialog::Select()
 {	
     CString str;
     str.Format("%sSTUDENT",m_Getstring);
	 m_Set.Open(AFX_DB_USE_DEFAULT_TYPE,str);
	 str.Format("%sOBJECT",m_Getstring);
     m_bSet.Open(AFX_DB_USE_DEFAULT_TYPE,str);
     
	 return m_Getstring;
 }  
 
 void CBaDialog::Equal()
 {  
	 for(int i=0;i<5;i++)
	 {  
    float p=0;
	if(i==0)
	  p=m_Set.m_column3;
   if(i==1)
	   p=m_Set.m_column4;
   if(i==2)
		p=m_Set.m_column5;
	if(i==3)
	    p=m_Set.m_column6;
    if(i==4)
		p=m_Set.m_column7;


      m_bSet.Edit();
	  if(Selec==FALSE)
	  {
	  m_bSet.m_column2-=p;
	  m_bSet.m_column3=(float)(m_bSet.m_column2/m_nRecordCount);
	  if(p>=60)
	  m_bSet.m_column4-=1;
	  if(p>=80)
	  m_bSet.m_column5-=1;
	  }
	  else
	  {
	  m_bSet.m_column2+=p;
	  m_bSet.m_column3=(float)(m_bSet.m_column2/m_nRecordCount);
	  if(p>=60)
	  m_bSet.m_column4+=1;
	  if(p>=80)
	  m_bSet.m_column5+=1;
	  }
	  
	  m_bSet.Update();
	  if(!m_bSet.IsEOF())
      m_bSet.MoveNext();
	  else
	  break;
	  }
 }

 void CBaDialog::Xuan()
 {
     m_ListCtrlb.DeleteAllItems();
	 this->display();
     m_ListCtrlx.DeleteAllItems();
     this->Show();
 }

void CBaDialog::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	CString m_string;
    m_cob.GetLBText(m_cob.GetCurSel(),m_string);
	if(m_Getstring!=m_string)
	{
	GetDlgItem(IDC_STATR)->EnableWindow(TRUE);
	this->Enable(FALSE);
	}
	CDialog::OnTimer(nIDEvent);
}

void CBaDialog::OnAdd() 
{
	// TODO: Add your control notification handler code here
	Selec=TRUE;
	CAddialog dlg;
    if(dlg.DoModal()==IDOK)
	{
	 CString str=this->Select();
     if(str=="一班")
	  {
	    if(dlg.m_nxue>=200||dlg.m_nxue<100)
		{
		AfxMessageBox("一班学号在100—200之间");
	    m_Set.Close();
		m_bSet.Close();
        return;
		}
	   }
	  else if(str=="二班")
	  {
		if(dlg.m_nxue<200||dlg.m_nxue>=300)
		{
		AfxMessageBox("二班学号在200—300之间");
        m_Set.Close();
		m_bSet.Close();
		return;
		}
	   }
	  else if(str=="三班")
	  {
		 if(dlg.m_nxue<300||dlg.m_nxue>=400)
		 {
		 AfxMessageBox("三班学号在300—400之间");
         m_Set.Close();
		 m_bSet.Close();;
		   return;
		 }
	   }
	   else if(str=="四班")
	   {
		   if(dlg.m_nxue<400||dlg.m_nxue>=500)
		   {
			AfxMessageBox("三班学号在400—500之间");
            m_Set.Close();
		   m_bSet.Close();
		   return;
		   }
	   }
     else if(str=="五班")
	   {if(dlg.m_nxue<500||dlg.m_nxue>=600)
		   {AfxMessageBox("三班学号在500—600之间");
         m_Set.Close();
		   m_bSet.Close();
		   return;}
	 }
else if(str=="六班")
	   {if(dlg.m_nxue<600||dlg.m_nxue>=700)
		   {AfxMessageBox("六班学号在400—500之间");
        m_Set.Close();
		   m_bSet.Close();
		   return;}
}
else if(str=="七班")
	   {if(dlg.m_nxue<700||dlg.m_nxue>=800)
		   {AfxMessageBox("七班学号在700—800之间");
           m_Set.Close();
		   m_bSet.Close();;
		   return;}
}
else if(str=="八班")
	   {if(dlg.m_nxue<800||dlg.m_nxue>=900)
		   {AfxMessageBox("八班学号在800—900之间");
           m_Set.Close();
		   m_bSet.Close();
		   return;}
}
	  m_Set.AddNew();
	  m_nRecordCount+=1;
	  m_Set.m_column1=dlg.m_nxue;
	  m_Set.m_column2=dlg.m_strName;
      m_Set.m_column3=dlg.m_fmaths;
      m_Set.m_column4=dlg.m_fphysical;
      m_Set.m_column5=dlg.m_fchemistry;
	  m_Set.m_column6=dlg.m_fenglish;
	  m_Set.m_column7=dlg.m_fpolitic;
	  m_Set.m_column8=dlg.m_fmaths+dlg.m_fphysical+dlg.m_fchemistry+dlg.m_fenglish+dlg.m_fpolitic;

⌨️ 快捷键说明

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