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

📄 cjcxdlg.cpp

📁 学生成绩管理系统,实现增加删除修改保存等功能
💻 CPP
字号:
// CjcxDlg.cpp : implementation file
//

#include "stdafx.h"
#include "StuManage.h"
#include "CjcxDlg.h"
#include "StudentSet.h"
#include "BjszSet.h"
#include "CjlrSet.h"
#include "CjhzSet.h"

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

/////////////////////////////////////////////////////////////////////////////
// CCjcxDlg dialog


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


void CCjcxDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCjcxDlg)
	DDX_Control(pDX, IDC_COURSENAME_EDIT, m_CourseName);
	DDX_Control(pDX, IDC_STUNO_EDIT, m_StuNo);
	DDX_Control(pDX, IDC_CLASS_COMBO, m_classCombo);
	DDX_Control(pDX, IDC_SCORE_LIST, m_ScoreList);
	DDX_Control(pDX, IDC_STUDENT_LIST, m_StuList);
	DDX_Control(pDX, IDC_TOTAL_LIST, m_TotalList);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCjcxDlg, CDialog)
	//{{AFX_MSG_MAP(CCjcxDlg)
	ON_BN_CLICKED(IDC_SHOW_BUTTON, OnShowButton)
	ON_BN_CLICKED(IDC_QUERYSTUNO_BUTTON, OnQuerystunoButton)
	ON_BN_CLICKED(IDC_QUERYCOURSE_BUTTON, OnQuerycourseButton)
	ON_BN_CLICKED(IDC_CANCEL, OnCancel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCjcxDlg message handlers

BOOL CCjcxDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_StuList.InsertColumn(0,"学号");
	m_StuList.InsertColumn(1,"姓名");
	CRect rect1;
	m_StuList.GetWindowRect(&rect1);
	int wid1=rect1.right-rect1.left;
	m_StuList.SetColumnWidth(0,wid1/2);
    m_StuList.SetColumnWidth(1,wid1/2);
	m_StuList.SetExtendedStyle(LVS_EX_FULLROWSELECT);


	m_ScoreList.InsertColumn(0,"学号");
	m_ScoreList.InsertColumn(1,"课程名称");
	m_ScoreList.InsertColumn(2,"成绩");
	CRect rect2;
	m_ScoreList.GetWindowRect(&rect2);
	int wid2=rect2.right-rect2.left;
	m_ScoreList.SetColumnWidth(0,wid2/3);
    m_ScoreList.SetColumnWidth(1,wid2/3);
	m_ScoreList.SetColumnWidth(2,wid2/3);
	m_ScoreList.SetExtendedStyle(LVS_EX_FULLROWSELECT);


    m_TotalList.InsertColumn(0,"课程编号");
	m_TotalList.InsertColumn(1,"课程名称");
	m_TotalList.InsertColumn(2,"总成绩");
	m_TotalList.InsertColumn(3,"平均成绩");
	m_TotalList.InsertColumn(4,"及格人数");
	m_TotalList.InsertColumn(5,"不及格人数");
	m_TotalList.InsertColumn(6,"缺考人数");
	CRect rect3;
	m_TotalList.GetWindowRect(&rect3);
	int wid3=rect3.right-rect3.left;
	m_TotalList.SetColumnWidth(0,wid3/4);
    m_TotalList.SetColumnWidth(1,wid3/4);
	m_TotalList.SetColumnWidth(2,wid3/4);
	m_TotalList.SetColumnWidth(3,wid3/4);
	m_TotalList.SetColumnWidth(4,wid3/4);
	m_TotalList.SetColumnWidth(5,wid3/4);
	m_TotalList.SetColumnWidth(6,wid3/4);
	m_TotalList.SetExtendedStyle(LVS_EX_FULLROWSELECT);
    

	CBjszSet m_BjszSet;
	CString strSQL;
	strSQL.Format("select className from bjsz");
	m_BjszSet.Open(CRecordset::forwardOnly,strSQL);
	for(int j=0;j<m_BjszSet.GetRecordCount();j++){
		CString temp;
		m_BjszSet.GetFieldValue("className",temp);
        m_classCombo.AddString(temp);
		m_BjszSet.MoveNext();
	}
	m_BjszSet.Close();
  	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CCjcxDlg::OnShowButton() 
{
	// TODO: Add your control notification handler code here

	if(!m_database.IsOpen()) {
		m_database.Open(_T("xscjgl"));
	}
	
	m_StuList.DeleteAllItems();
    CString m_className;
	m_classCombo.GetWindowText(m_className);
	if(m_className.IsEmpty()) {
		MessageBox("请输入班级名称!");
		return;
	}
	else {

		CComboBox *m_value=(CComboBox*) this->GetDlgItem(IDC_CLASS_COMBO);
	    CString m_class;
	    int i=m_value->GetCurSel();
		m_value->GetWindowText(m_class);
	    CString strSQL;
	    strSQL.Format("select * from xsxx where className='%s'",m_class);
	    m_database.ExecuteSQL(strSQL);
        CStudentSet m_StudentSet(&m_database);
	    m_StudentSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
	    if(m_StudentSet.GetRecordCount()!=0)
		    m_StudentSet.MoveFirst();
	    int d=0;
	    while(!m_StudentSet.IsEOF()) {
		    CString temp;
		    m_StudentSet.GetFieldValue("StuNo",temp);
		    m_StuList.InsertItem(d,temp);
		    m_StuList.SetItemText(d,1,m_StudentSet.m_StuName);
	     	m_StudentSet.MoveNext();
		    d++;
		}
    	m_StudentSet.Close();
	}
	
}


void CCjcxDlg::OnQuerystunoButton() 
{
	// TODO: Add your control notification handler code here
	if(!m_database.IsOpen()) {
		m_database.Open(_T("xscjgl"));
	}
	
	m_ScoreList.DeleteAllItems();
    CString m_StudentNo;
	m_StuNo.GetWindowText(m_StudentNo);
	if(m_StudentNo.IsEmpty()) {
		MessageBox("请输入学号!");
		return;
	}
	else {

		CEdit *m_value=(CEdit*) this->GetDlgItem(IDC_STUNO_EDIT);
	    CString m_Student;
	    //int i=m_value->GetCurSel();
		m_value->GetWindowText(m_Student);
	    CString strSQL;
	    strSQL.Format("select * from xscj where StuNo='%s'",m_Student);
	    m_database.ExecuteSQL(strSQL);
        CCjlrSet m_CjlrSet(&m_database);
	    m_CjlrSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
	    if(m_CjlrSet.GetRecordCount()!=0)
		    m_CjlrSet.MoveFirst();
	    int d=0;
	    while(!m_CjlrSet.IsEOF()) {
		    CString temp;
		    m_CjlrSet.GetFieldValue("StuNo",temp);
		    m_ScoreList.InsertItem(d,temp);
		    m_ScoreList.SetItemText(d,1,m_CjlrSet.m_CourseName);
			m_ScoreList.SetItemText(d,2,m_CjlrSet.m_Score);
	     	m_CjlrSet.MoveNext();
		    d++;
		}
    	m_CjlrSet.Close();
	}
}

void CCjcxDlg::OnQuerycourseButton() 
{
	// TODO: Add your control notification handler code here
	if(!m_database.IsOpen()) {
		m_database.Open(_T("xscjgl"));
	}
	
	m_TotalList.DeleteAllItems();
    CString m_Course;
	m_CourseName.GetWindowText(m_Course);
	if(m_Course.IsEmpty()) {
		MessageBox("请输入课程号!");
		return;
	}
	else {

		CEdit *m_value=(CEdit*) this->GetDlgItem(IDC_COURSENAME_EDIT);
	    CString m_courseName;
	    //int i=m_value->GetCurSel();
		m_value->GetWindowText(m_courseName);
	    CString strSQL;
	    strSQL.Format("select * from cjhz where CourseName='%s'",m_courseName);
	    m_database.ExecuteSQL(strSQL);
        CCjhzSet m_CjhzSet(&m_database);
	    m_CjhzSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
	    if(m_CjhzSet.GetRecordCount()!=0)
		    m_CjhzSet.MoveFirst();
	    int d=0;
	    while(!m_CjhzSet.IsEOF()) {
		    CString temp;
		    m_CjhzSet.GetFieldValue("CourseNo",temp);
		    m_TotalList.InsertItem(d,temp);
		    m_TotalList.SetItemText(d,1,m_CjhzSet.m_CourseName);
			m_TotalList.SetItemText(d,2,m_CjhzSet.m_TotalScore);
			m_TotalList.SetItemText(d,3,m_CjhzSet.m_AvgScore);
			m_TotalList.SetItemText(d,4,m_CjhzSet.m_PassNum);
			m_TotalList.SetItemText(d,5,m_CjhzSet.m_NotPassNum);
			m_TotalList.SetItemText(d,6,m_CjhzSet.m_Absence);
	     	m_CjhzSet.MoveNext();
		    d++;
		}
    	m_CjhzSet.Close();
	}
}

void CCjcxDlg::OnCancel() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnOK();
}

⌨️ 快捷键说明

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