谁能帮小弟解决一个关于C++的编程问题 希望有源代码 急用 谢谢了

来源:百度知道 编辑:UC知道 时间:2024/06/09 01:07:50
我重新选了个学生的项目去做 不过感觉还是有很多地方不是太明白 所以拜托大家帮忙弄下了
接下来是我选的题目 谢谢先啦!

设计一个类CStudent,类中包含一个学生的基本数据如下:
编号,姓名,性别,年龄,数学成绩,计算机成绩,外语成绩。
并假设编号为整数,且从1号往后连续编码:姓名为字符串,性别为字符。如:
1 GuoChen f 20 89 98 94
请采用binary文件形式,并使用随机读写处理方式,对自定义CStudent类的对象数据进行存储和读写处理
(即是说,总按具有连续编码的编号NUM为“序”来对文件中的各对象数据进行随机读写处理)。并
设计该类的成员函数,而且对输出运算符“<<”进行重载,使该运算符能够完成将一个学生的信息输出
到屏幕上。要求成员函数完成以下功能:
1 从键盘输入一个学生的有关信息,并将他们存入到数据文件中(按编号来确定写出位置)。
2 按编号对学生信息进行检索结果并显示到屏幕上。
3 按姓名对学生信息进行检索结果并显示到屏幕上。
4 计算某编号学生的总成绩与平均成绩。
5 列出所有总成绩超过n分的性别为s同学的有关信息(n,s由用户从键盘输入)。
思考:可进一步对上述程序进行扩充,如,添加学生基本数据(籍贯,专业,班级,其他各门成绩,奖惩纪录等),并添加所需要的其他相关处理函数(如可通过咨询教学办公室管理人员后确立),进而将其编制成为一个简单而使用的小型学籍与成绩管理软件。

#include <string>
#include <iostream>
#include <vector>
#include <map>
using namespace std;

class CStudent
{
public :
int nStudentID;
int nAge;
public :
//缺省构造函数——通常为空
CStudent() { }
// 完整的构造函数
CStudent(int nSID, int nA) { nStudentID=nSID; nAge=nA; }
//拷贝构造函数
CStudent(const CStudent& ob)
{ nStudentID=ob.nStudentID; nAge=ob.nAge; }
// 重载“=”
void operator = (const CStudent& ob)
{ nStudentID=ob.nStudentID; nAge=ob.nAge; }
};

int main(int argc, char* argv[])
{
map <string, CStudent> mapStudent;

mapStudent["Joe Lennon"] = CStudent(103547, 22);
mapStudent["Phil McCartney"] = CStudent(100723, 22);
mapStudent["Raoul Starr"] = CStudent(107350, 24);
mapStudent["Gordon Hami