mfc学生成绩管理系统c++
时间: 2023-10-02 13:11:55 浏览: 74
MFC(Microsoft Foundation Class)是微软公司开发的一套基于C++的图形用户界面(GUI)类库,可以用于开发Windows平台的应用程序。下面是一个简单的学生成绩管理系统的示例代码:
首先,需要创建一个MFC框架的应用程序,并添加以下几个控件:
1. 一个编辑框(IDC_EDIT_NAME),用于输入学生姓名
2. 一个下拉列表框(IDC_COMBO_SUBJECT),用于选择科目
3. 一个编辑框(IDC_EDIT_SCORE),用于输入成绩
4. 一个列表框(IDC_LIST_RESULT),用于显示查询结果
在头文件中定义如下变量和函数:
```cpp
class CMyDlg : public CDialogEx
{
public:
CMyDlg(CWnd* pParent = nullptr); // 标准构造函数
enum { IDD = IDD_MY_DIALOG };
protected:
HICON m_hIcon;
CString m_strName; // 学生姓名
CString m_strSubject; // 科目
int m_nScore; // 成绩
CArray<CString, CString> m_arrSubjects; // 存储科目名称的数组
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedBtnAdd();
afx_msg void OnBnClickedBtnQuery();
virtual BOOL OnInitDialog();
};
```
在实现文件中定义如下函数:
```cpp
BOOL CMyDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 设置图标
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// 添加科目到下拉列表框中
m_arrSubjects.Add(_T("语文"));
m_arrSubjects.Add(_T("数学"));
m_arrSubjects.Add(_T("英语"));
for (int i = 0; i < m_arrSubjects.GetSize(); i++)
{
GetDlgItem(IDC_COMBO_SUBJECT)->SendMessage(CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)m_arrSubjects[i]);
}
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT_NAME, m_strName);
DDX_CBString(pDX, IDC_COMBO_SUBJECT, m_strSubject);
DDX_Text(pDX, IDC_EDIT_SCORE, m_nScore);
DDX_Control(pDX, IDC_LIST_RESULT, m_lstResult);
}
void CMyDlg::OnBnClickedBtnAdd()
{
// 添加学生成绩
m_lstResult.AddString(m_strName + _T(" ") + m_strSubject + _T(" ") + CString(m_nScore));
}
void CMyDlg::OnBnClickedBtnQuery()
{
// 查询学生成绩
m_lstResult.ResetContent();
for (int i = 0; i < m_lstResult.GetCount(); i++)
{
CString strItem;
m_lstResult.GetText(i, strItem);
if (strItem.Find(m_strName) >= 0 && strItem.Find(m_strSubject) >= 0)
{
m_lstResult.AddString(strItem);
}
}
}
```
在对话框类中添加控件的响应函数:
```cpp
void CMyDlg::OnBnClickedBtnAdd()
{
UpdateData(TRUE);
OnBnClickedBtnAdd();
}
void CMyDlg::OnBnClickedBtnQuery()
{
UpdateData(TRUE);
OnBnClickedBtnQuery();
}
```
这样就完成了一个简单的学生成绩管理系统的开发。当用户输入学生姓名、选择科目、输入成绩后,点击“添加”按钮,学生成绩就会显示在列表框中。当用户输入学生姓名、选择科目后,点击“查询”按钮,系统会在列表框中显示符合条件的学生成绩。
阅读全文