_Phoebe__ 2022-04-19 19:29 采纳率: 96.9%
浏览 41
已结题

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

这个代码增加 删除成绩信息不会用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);
}
  • 写回答

3条回答 默认 最新

  • 关注

    你题目的解答代码如下:

    #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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 已采纳回答 4月19日
  • 创建了问题 4月19日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?