mfc学生成绩管理系统c++
时间: 2023-09-21 08:13:29 浏览: 75
MFC(Microsoft Foundation Classes)是微软公司提供的一套C++类库,用于Windows图形用户界面(GUI)的开发。使用MFC开发Windows应用程序可以利用它提供的封装好的类库,简化开发过程,提高开发效率。
下面是一个简单的MFC学生成绩管理系统的示例:
1. 首先,创建一个MFC应用程序项目,并在资源视图中添加一个对话框。
2. 在对话框中添加控件,包括文本框、按钮等。
3. 在代码中定义一个学生类,包括学生姓名、学号、成绩等信息。
4. 在对话框类中定义一个学生数组,用来存储所有学生的信息。
5. 在对话框类中实现按钮的响应函数,包括添加学生、删除学生、修改学生、查询学生等功能。
6. 实现每个功能时,都需要在学生数组中进行相应的操作,并更新控件内容。
7. 最后,在应用程序初始化时,读取已有学生信息,初始化学生数组。
以上是一个简单的MFC学生成绩管理系统的实现过程,你可以根据自己的需求进行修改和完善。
相关问题
mfc学生成绩管理系统c++具有查询录入保存删除修改功能代码
以下是一个简单的 MFC 学生成绩管理系统的代码:
头文件 Student.h:
```c++
#pragma once
#include <string>
class Student
{
public:
Student();
Student(std::string name, int score);
void setName(std::string name);
void setScore(int score);
std::string getName() const;
int getScore() const;
private:
std::string m_name;
int m_score;
};
```
源文件 Student.cpp:
```c++
#include "Student.h"
Student::Student() : m_name(""), m_score(0)
{
}
Student::Student(std::string name, int score) : m_name(name), m_score(score)
{
}
void Student::setName(std::string name)
{
m_name = name;
}
void Student::setScore(int score)
{
m_score = score;
}
std::string Student::getName() const
{
return m_name;
}
int Student::getScore() const
{
return m_score;
}
```
头文件 StudentMgr.h:
```c++
#pragma once
#include <vector>
#include "Student.h"
class StudentMgr
{
public:
void addStudent(Student student);
void removeStudent(int index);
void updateStudent(int index, Student student);
Student getStudent(int index) const;
int getNumStudents() const;
private:
std::vector<Student> m_students;
};
```
源文件 StudentMgr.cpp:
```c++
#include "StudentMgr.h"
void StudentMgr::addStudent(Student student)
{
m_students.push_back(student);
}
void StudentMgr::removeStudent(int index)
{
m_students.erase(m_students.begin() + index);
}
void StudentMgr::updateStudent(int index, Student student)
{
m_students[index] = student;
}
Student StudentMgr::getStudent(int index) const
{
return m_students[index];
}
int StudentMgr::getNumStudents() const
{
return m_students.size();
}
```
对话框类 CMyDlg:
```c++
class CMyDlg : public CDialogEx
{
public:
CMyDlg(CWnd* pParent = nullptr);
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_MY_DIALOG };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX);
protected:
HICON m_hIcon;
CString m_name;
int m_score;
StudentMgr m_studentMgr;
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
private:
void updateListCtrl();
};
CMyDlg::CMyDlg(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_MY_DIALOG, pParent)
, m_name(_T(""))
, m_score(0)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_NAME, m_name);
DDX_Text(pDX, IDC_SCORE, m_score);
}
BEGIN_MESSAGE_MAP(CMyDlg, CDialogEx)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//{{AFX_MSG_MAP(CMyDlg)
ON_BN_CLICKED(IDC_ADD, &CMyDlg::OnBnClickedAdd)
ON_BN_CLICKED(IDC_DELETE, &CMyDlg::OnBnClickedDelete)
ON_BN_CLICKED(IDC_UPDATE, &CMyDlg::OnBnClickedUpdate)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CMyDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
SetIcon(m_hIcon, TRUE);
SetIcon(m_hIcon, FALSE);
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST);
pListCtrl->InsertColumn(0, _T("Name"), LVCFMT_LEFT, 100);
pListCtrl->InsertColumn(1, _T("Score"), LVCFMT_LEFT, 100);
return TRUE;
}
void CMyDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this);
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
}
HCURSOR CMyDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void CMyDlg::OnBnClickedAdd()
{
UpdateData();
Student student(CStringA(m_name).GetString(), m_score);
m_studentMgr.addStudent(student);
updateListCtrl();
}
void CMyDlg::OnBnClickedDelete()
{
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST);
int index = pListCtrl->GetSelectionMark();
if (index != -1)
{
m_studentMgr.removeStudent(index);
updateListCtrl();
}
}
void CMyDlg::OnBnClickedUpdate()
{
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST);
int index = pListCtrl->GetSelectionMark();
if (index != -1)
{
UpdateData();
Student student(CStringA(m_name).GetString(), m_score);
m_studentMgr.updateStudent(index, student);
updateListCtrl();
}
}
void CMyDlg::updateListCtrl()
{
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST);
pListCtrl->DeleteAllItems();
for (int i = 0; i < m_studentMgr.getNumStudents(); i++)
{
Student student = m_studentMgr.getStudent(i);
LVITEM lvitem;
lvitem.mask = LVIF_TEXT;
lvitem.iItem = i;
lvitem.iSubItem = 0;
lvitem.pszText = (LPWSTR)student.getName().c_str();
pListCtrl->InsertItem(&lvitem);
lvitem.mask = LVIF_TEXT;
lvitem.iItem = i;
lvitem.iSubItem = 1;
lvitem.pszText = (LPWSTR)std::to_wstring(student.getScore()).c_str();
pListCtrl->SetItem(&lvitem);
}
}
```
其中,IDC_NAME、IDC_SCORE、IDC_LIST 分别是对应的控件 ID。在资源文件中需要添加这些控件,并且对话框类需要添加响应函数 OnBnClickedAdd、OnBnClickedDelete、OnBnClickedUpdate。
mfc学生学籍管理系统c++
MFC学生学籍管理系统是一个基于C++语言和MFC框架的应用程序,用于管理学生的个人信息、课程信息和成绩信息等。它可以实现学生信息的录入、查询、修改和删除,课程信息的录入、查询、修改和删除,成绩信息的录入、查询和统计等功能。
下面是一个简单的MFC学生学籍管理系统的实现步骤:
1. 创建MFC工程并添加对话框资源
2. 在对话框中添加控件,如按钮、文本框、列表框等,并设置控件属性
3. 编写控件响应函数,例如单击按钮后执行的操作
4. 定义学生、课程和成绩等相关数据结构,并编写数据操作函数,例如添加、修改、删除和查询等
5. 在控件响应函数中调用数据操作函数,实现对数据的增删改查等操作
6. 在对话框初始化函数中加载初始数据,例如从文件或数据库中读取学生、课程和成绩等信息
7. 在对话框销毁函数中保存数据,例如将修改后的数据保存到文件或数据库中
以上是一个简单的MFC学生学籍管理系统的实现步骤,具体的实现过程需要根据具体需求进行调整。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)