意义
掌握MFC控件的基本使用,结合了面向对象和Window消息机制的知识。
选择做简单的成绩管理系统,该项目切合大学生实际情况。易于更好理解。
项目实现了成绩的增加、修改、删除、存储(文件读写操作)的功能。
创建项目
打开软件:VS2022;创建新项目MFC应用;选择基于对话框;有必要的话添加对话框标题(用户界面功能)
设置UI界面
1、工具控件:列表(List Control),编辑框(Edit Control),静态文本(Static Text),下拉框(Combo Box),按钮(Button);
2、列表控件属性: 视图为Report
3、下拉列表外观属性 : 类型为下拉列表;行为属性:数据是 男;女;
为UI控件添加变量(很详细,必须理解)
1、选中控件,右键鼠标,添加变量。
2、添加控制变量,类别、名称、访问权限。(完成所有控件的变量设置,都是重复操作)
3、类向导
界面全部控件添加变量的类型和名称 (选择对话框 右击选择类向导可查看全部控件变量)
可以看到5个按钮对应界面的增 删 改 确定 取消,7个编辑框对应界面相应的属性等。
代码部分
1、创建两个类,一个为Student,存储学生的个人信息;一个为Management,管理学生的个人信息。
2、Student类包含七个成员变量,分别为学号、姓名、性别、年龄、地址、数学成绩、C++成绩。
3、Student类成员函数包括对 七个属性的值的获取与设置。
4、Management类成员变量即Student类列表。
5、Management类有四个成员函数对Student类进行 增 删 改 清
//Student.h
#pragma once
#include <iostream>
using namespace std;
class Student
{
private:
string id;
string name;
string sex;
string age;
string address;
string math;
string programing;
public:
Student();
Student(string sid, string sname, string ssex, string sage, string saddress, string smath, string sprograming);
void setName(string sname);
void setId(string sid);
void setAge(string sage);
void setSex(string ssex);
void setAddress(string saddress);
void setMath(string smath);
void setPrograming(string sprograming);
string getName();
string getSex();
string getAddress();
string getId();
string getAge();
string getMath();
string getPrograming();
friend ostream& operator <<(ostream& os, Student& st);
friend istream& operator >>(istream& is, Student& st);
friend bool LessMath(const Student* st1, const Student* st2);
friend bool LessOop(const Student* st1, const Student* st2);
~Student();
};
//Student.cpp
#include "pch.h"
#include "Student.h"
#include <iostream>
#include <string>
using namespace std;
Student::Student() {
}
Student::Student(string sid, string sname, string ssex, string sage, string saddress, string smath, string sprograming)
{
id = sid;
name = sname;
sex = ssex;
age = sage;
address = saddress;
math = smath;
programing = sprograming;
}
void Student::setName(string sname)
{
name = sname;
}
void Student::setId(string sid)
{
id = sid;
}
void Student::setAge(string sage)
{
age = sage;
}
void Student::setSex(string ssex)
{
sex = ssex;
}
void Student::setAddress(string saddress)
{
address = saddress;
}
void Student::setMath(string smath)
{
math = smath;
}
void Student::setPrograming(string sprograming)
{
programing = sprograming;
}
string Student::getName()
{
return name;
}
string Student::getSex()
{
return sex;
}
string Student::getAddress()
{
return address;
}
string Student::getId()
{
return id;
}
string Student::getAge()
{
return age;
}
string Student::getMath()
{
return math;
}
string Student::getPrograming()
{
return programing;
}
ostream& operator<<(ostream& os, Student& st)
{
os << st.id << '\t' << st.name << '\t';
os << st.sex << '\t' << st.age << '\t';
os << st.address << '\t' << st.math << '\t' << st.programing;
return os;
}
istream& operator>>