这个代码增加 删除 修改成绩信息不会写 想知道怎么写

这个代码增加 删除成绩信息不会用map写 想知道怎么写
要求如下


//用C++ STL设计学生成绩存储管理程序(第1阶段)
//(1)基本数据结构:
//学生类CStudent,包括以下数据成员:
//学号nID(整型),姓名strName(字符串),成绩mapScores(用map容器存储修读过的各门课程的课程号(整型)和成绩);
//(2)数据存储:用某种适当的STL容器存储所有学生的数据;
//(3)增加三个学生数据(每个学生修读若干门课程)到容器中,输出容器中所有学生的信息;
//(4)数据维护:实现对学生数据的增、删、改、查功能(包括增、删、改、查学生信息,以及各科成绩)
#include<bits/stdc++.h>
using namespace std; 
class CStudent{
    int nID;
    string strName;
    map<int, double> mapScores;  //存储多门课程成绩
public:
    CStudent(int _nID, string _strName);
    void setID(int _nID);
    int getID();
    void setName(string _name);
    string getName();
    map<int, double> getScores();
    void insertScore(int cno, double score);  //增加一门课程成绩 cno是课程编号 
    void eraseScore(int cno);     //删除一门课程成绩
    void modify(int cno,double score);//修改课程编号为cno的课程成绩并改为score
    void display();     //输出学生学号、姓名和各科成绩
}
CStudent::CStudent(int _nID,string _strName)
{
    nID=_nID;
    strName=_strName;
}
void CStudent::setID(int _nID)
{
    nID=_nID;
}
int CStudent::getID()
{
    return nID;
}
void CStudent::setName(string _name)
{
    strName=_strName;
}
string CStudent::getName()
{
    return strName;
}
map<int,double> CStudent::getScores()
{
    return mapScores;
}
void CStudent::insertScore()
{
    //插入函数用map怎么写 
}
void CStudent::eraseScore(int cno)
{
    //删除语句用map怎么写 
}
void CStudent::display()
{
    cout<<"学生学号:"<<nID<<endl;
    cout<<"学生姓名: "<<strName<<endl;
    cout<<"学生成绩"//怎么输出 
}
int main()
{
    vector<CStudent> v1;
    CStudent stu1(1001,"Phoebe");
    stu1.insertScore(101,100);
    stu1.insertScore(102,99);
    stu1.insertScore(103,98);
    CStudent stu2(1002,"Lilith");
    stu2.insertScore(101,95);
    stu2.insertScore(104,93);
}

你题目的解答代码如下:

#include<bits/stdc++.h>
using namespace std;
class CStudent{
    int nID;
    string strName;
    map<int, double> mapScores;  //存储多门课程成绩
public:
    CStudent(int _nID, string _strName);
    void setID(int _nID);
    int getID();
    void setName(string _name);
    string getName();
    map<int, double> getScores();
    void insertScore(int cno, double score);  //增加一门课程成绩 cno是课程编号
    void eraseScore(int cno);     //删除一门课程成绩
    void modify(int cno,double score);//修改课程编号为cno的课程成绩并改为score
    void display();     //输出学生学号、姓名和各科成绩
};
CStudent::CStudent(int _nID,string _strName)
{
    nID=_nID;
    strName=_strName;
}
void CStudent::setID(int _nID)
{
    nID=_nID;
}
int CStudent::getID()
{
    return nID;
}
void CStudent::setName(string _name)
{
    strName=_name;
}
string CStudent::getName()
{
    return strName;
}
map<int,double> CStudent::getScores()
{
    return mapScores;
}
void CStudent::insertScore(int cno, double score)
{
    mapScores[cno]=score;
}
void CStudent::eraseScore(int cno)
{
    mapScores.erase(cno);
}
void CStudent::display()
{
    cout<<"学生学号:"<<nID<<endl;
    cout<<"学生姓名: "<<strName<<endl;
    cout<<"学生成绩:"<<endl;//怎么输出
    for (auto ii = mapScores.begin() ; ii != mapScores.end() ; ii++)
    {
        cout <<"   课程编号:"<< ii->first << " 课程成绩: " << ii->second << endl;
    }
}
int main()
{
    vector<CStudent> v1;
    CStudent stu1(1001,"Phoebe");
    stu1.insertScore(101,100);
    stu1.insertScore(102,99);
    stu1.insertScore(103,98);
    stu1.eraseScore(102);
    CStudent stu2(1002,"Lilith");
    stu2.insertScore(101,95);
    stu2.insertScore(104,93);
    stu1.display();
    stu2.display();
}

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632