用vc实现学生信息mfc以及c++
时间: 2024-01-22 16:19:28 浏览: 124
vc学生管理系统(MFC下实现)
5星 · 资源好评率100%
学生信息管理系统是一个常见的练手项目,可以用来练习MFC和C++编程。以下是一个简单的实现:
1. 创建MFC应用程序
首先,在Visual Studio中创建一个MFC应用程序,选择“单文档应用程序”模板。
2. 设计界面
在资源视图中,双击IDD_STUDENTINFO对话框,打开对话框编辑器。在对话框中添加需要的控件,例如“添加”、“删除”、“修改”、“查询”按钮,文本框、列表框等。
3. 编写代码
在CStudentInfoApp类的头文件中定义学生信息结构体:
```
struct StudentInfo {
CString name;
int age;
CString gender;
CString major;
};
```
在CStudentInfoApp类的源文件中定义一个vector来存储学生信息:
```
vector<StudentInfo> m_studentList;
```
然后,在对话框类的头文件中定义以下成员变量:
```
CComboBox m_cbGender;
CEdit m_editName;
CEdit m_editAge;
CEdit m_editMajor;
CListBox m_listStudent;
```
在OnInitDialog函数中初始化控件:
```
m_cbGender.AddString(_T("男"));
m_cbGender.AddString(_T("女"));
m_cbGender.SetCurSel(0);
```
在“添加”按钮的单击事件中,获取用户输入的学生信息并添加到vector中:
```
StudentInfo student;
m_editName.GetWindowText(student.name);
CString strAge;
m_editAge.GetWindowText(strAge);
student.age = _ttoi(strAge);
m_cbGender.GetLBText(m_cbGender.GetCurSel(), student.gender);
m_editMajor.GetWindowText(student.major);
m_studentList.push_back(student);
```
在“删除”按钮的单击事件中,获取用户选择的学生信息并从vector中删除:
```
int nIndex = m_listStudent.GetCurSel();
if (nIndex != LB_ERR) {
m_studentList.erase(m_studentList.begin() + nIndex);
}
```
在“修改”按钮的单击事件中,获取用户选择的学生信息并更新:
```
int nIndex = m_listStudent.GetCurSel();
if (nIndex != LB_ERR) {
StudentInfo& student = m_studentList[nIndex];
m_editName.GetWindowText(student.name);
CString strAge;
m_editAge.GetWindowText(strAge);
student.age = _ttoi(strAge);
m_cbGender.GetLBText(m_cbGender.GetCurSel(), student.gender);
m_editMajor.GetWindowText(student.major);
}
```
在“查询”按钮的单击事件中,根据用户输入的关键字查询学生信息:
```
CString strKeyword;
m_editName.GetWindowText(strKeyword);
m_listStudent.ResetContent();
for (const auto& student : m_studentList) {
if (student.name.Find(strKeyword) != -1 || student.major.Find(strKeyword) != -1) {
CString strStudent;
strStudent.Format(_T("%s (%d岁, %s, %s)"), student.name, student.age, student.gender, student.major);
m_listStudent.AddString(strStudent);
}
}
```
4. 编译运行
最后,编译并运行程序,测试学生信息管理功能是否正常。
阅读全文