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

📄 scoredlg.cpp

📁 学生成绩管理系统,可以对学生的成绩修改,删除,添加,查询等操作
💻 CPP
字号:
// ScoreDlg.cpp : implementation file
//

#include "stdafx.h"
#include "StudentScore.h"
#include "ScoreDlg.h"
#include "ScoreAddDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CScoreDlg dialog


CScoreDlg::CScoreDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CScoreDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CScoreDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CScoreDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CScoreDlg)
	DDX_Control(pDX, IDC_LIST_SCORE, m_list);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CScoreDlg, CDialog)
	//{{AFX_MSG_MAP(CScoreDlg)
	ON_BN_CLICKED(ID_SCORE_ADD, OnScoreAdd)
	ON_BN_CLICKED(ID_SCORE_EDIT, OnScoreEdit)
	ON_BN_CLICKED(ID_SCORE_DEL, OnScoreDel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CScoreDlg message handlers

BOOL CScoreDlg::OnInitDialog()
{	
	CDialog::OnInitDialog();
	//如果没有打开数据库,则打开数据库
	if(!m_database.IsOpen())
	{
		m_database.Open(_T("studentscore"));
	    m_recordSet.m_pDatabase=&m_database;
	}
	//初始化里CList 控件的和header
	m_list.InsertColumn(0,"成绩编号");
    m_list.InsertColumn(1,"学生名");
    m_list.InsertColumn(2,"课程名");
	m_list.InsertColumn(3,"分数");
	//设置header的宽度
    RECT rectList;
	m_list.GetWindowRect(&rectList);
	int wid=rectList.right-rectList.left-4;
	for(int i=0;i<4;i++)
		m_list.SetColumnWidth(i,wid/4);
    m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
	//调用refreshList()初始化CList中的数据
	RefreshList();
	return true;
}

void CScoreDlg::RefreshList()
{
	//删除CList的所有内容
	m_list.DeleteAllItems();
	//打开记录集
	CString strSQL;
	strSQL.Format("select * from score,student,course where student.student_no=score.student_no and course.course_no=score.course_no and score.active_status='Y'");
    m_recordSet.Open(CRecordset::forwardOnly,strSQL);
	//将记录集显示到 CList中
	for(int i=0;i<m_recordSet.GetRecordCount();i++){
		CString temp;
		m_recordSet.GetFieldValue("score_id",temp);
		m_list.InsertItem(i,temp);
		m_recordSet.GetFieldValue("student_name",temp);
		m_list.SetItemText(i,1,temp);
        m_recordSet.GetFieldValue("course_name",temp);
		m_list.SetItemText(i,2,temp);
		m_recordSet.GetFieldValue("score",temp);
		m_list.SetItemText(i,3,temp);
        m_recordSet.MoveNext();
	}
	//关闭数据库
	m_recordSet.Close();
}

void CScoreDlg::OnScoreAdd() //添加按钮事件
{
	//建立一个CScoreAddDlg对象
	CScoreAddDlg scoreAdd;
	//设置0表示为添加记录状态
	scoreAdd.id="0";
	//显示对话框
	scoreAdd.DoModal();
    RefreshList();
}

void CScoreDlg::OnScoreEdit()//修改按钮事件
{
	//建立一个CScoreAddDlg对象
	CScoreAddDlg scoreAdd;
	//获得当前所中的行
    int row=m_list.GetSelectionMark();
	//将id号赋值给scoreAdd对象
	scoreAdd.id=m_list.GetItemText(row,0);
	if(scoreAdd.id=="")//如果没有选中行,提示选中信息
		MessageBox("请选择所需要修改的记录!");
	else
	{
		scoreAdd.DoModal();
		RefreshList();
	}
}

void CScoreDlg::OnScoreDel() //删除按钮事件
{
	//获得当前所中的行
	int row=m_list.GetSelectionMark();
	//得到当前行的id
	CString id=m_list.GetItemText(row,0);
	if(id=="")//如果id为空,提示选中信息
		MessageBox("请选择所需要删除的记录!");
	else
	{
		CString strSQL;
		//删除语句
       	strSQL.Format("update score set active_status='N' where score_id=%s",id);
		//执行删除操作
		m_database.ExecuteSQL(strSQL);
	}
	RefreshList();
	
}

⌨️ 快捷键说明

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