学生成绩管理程序c++

需求分析说明

设计一个菜单驱动的学生成绩管理程序。输 入学生的基本信息,包括学生的学号、姓名、数学、语文、英语等 信息,实现如下管理功能:

  1. 能输入并显示n 个学生的基本信息。
  2. 计算学生的平均分和总分。
  3. 按总分降序进行排序。
  4. 任意输入一个学号,能显示该学生的基本信息。
  5. 可根据需要添加学生信息到指定位置,亦可在最后追加一批 学生信息。
  6. 文件的导入和导出(从文件中读取若干条学生信息,或者将 学生信息输出到文件中)。
  7. 注意:学号不能重复;有效成绩的范围为[0,100]

代码如下:

#include
#include
#include
#include
#include
#includeusing namespace std;class CStudent
{
public:string m_strNumber;  //学号string m_strName;  //姓名string m_strClass;  //班级double m_dChinese;  //语文成绩double m_dMath;  //数学成绩double m_dEnglish;  //英语成绩CStudent() {}friend istream &operator >> ( istream &in, CStudent &s ) //重载>>{in>>s.m_strNumber>>s.m_strName>>s.m_strClass>>s.m_dChinese>>s.m_dMath>>s.m_dEnglish;return in;}friend ostream &operator << ( ostream &out, CStudent &s )  //重载<<{out<vecStu;// vector数组void Create();  //创建void Add();  //添加void Show();  //显示学生基本信息void Change();  //修改学生信息void Delnews();  //删除学生信息void Searchnews();  //查找学生信息void Sort();  //按总分降序排序void Getnews();  //文件的导出,获取文件学生信息void Savenews();  //文件导入,保存为文件数据
};/*  创建  */
void CSystem::Create()
{double d1,d2,d3;cout<<"学生人数:";int n;cin>>n;int i;string str;cout<<"请输入学生的基本信息:"<>str;int flag = 1;for( vector::iterator it=vecStu.begin(); it != vecStu.end(); it++ ){if( it->m_strNumber == str ){flag = 0;}}if( flag == 1 ){cs.m_strNumber = str;break;}else{cout<<"学号重复,请重新输入!"<>cs.m_strName;cout<<"班级: ";cin>>cs.m_strClass;while(1){cout<<"语文成绩: ";cin>>d1;if( d1>=0 && d1<=100){cs.m_dChinese = d1;break;}else{cout<<"成绩错误,请重新输入!"<>d2;if( d2>=0 && d2<=100){cs.m_dMath = d2;break;}else{cout<<"成绩错误,请重新输入!"<>d3;if( d3>=0 && d3<=100){cs.m_dEnglish = d3;break;}else{cout<<"成绩错误,请重新输入!"<>str;int flag = 1;for( vector::iterator it=vecStu.begin(); it != vecStu.end(); it++ ){if( it->m_strNumber == str ){flag = 0;}}if( flag == 1 ){cs.m_strNumber = str;break;}else{cout<<"学号重复,请重新输入!"<>cs.m_strName;cout<<"班级: ";cin>>cs.m_strClass;while(1){cout<<"语文成绩: ";cin>>d1;if( d1>=0 && d1<=100){cs.m_dChinese = d1;break;}else{cout<<"成绩错误,请重新输入!"<>d2;if( d2>=0 && d2<=100){cs.m_dMath = d2;break;}else{cout<<"成绩错误,请重新输入!"<>d3;if( d3>=0 && d3<=100){cs.m_dEnglish = d3;break;}else{cout<<"成绩错误,请重新输入!"<>n;vecStu.insert( vecStu.begin()+(n-1),cs );cout<<"学生信息添加成功"<::iterator it = this->vecStu.begin(); it != vecStu.end(); it++ ){cout<<"学号: "<m_strNumber;cout<<"  姓名: "<m_strName;cout<<"  班级: "<m_strClass;cout<<"  语文成绩: "<m_dChinese;cout<<"  数学成绩: "<m_dMath;cout<<"  英语成绩: "<m_dEnglish;double dsum = it->m_dChinese + it->m_dMath + it->m_dEnglish;cout<<"  总分: "<>strname;cout<<"修改学号输入1,修改语文成绩输入2,修改数学成绩输入3,修改英语成绩输入4"<>n;cout<<"输入改后内容:";vector::iterator it;for( it = vecStu.begin(); it != vecStu.end(); it++ ){if( it->m_strName == strname ){break;}}if(n==1){string s;cin>>s;it->m_strNumber = s;}else{int s;cin>>s;switch(n){case 2:it->m_dChinese = s;case 3:it->m_dMath = s;case 4:it->m_dEnglish = s;}}this->Savenews();
}/*  删除学生信息  */
void CSystem::Delnews()
{if(vecStu.empty()) //判断vector数组是否有学生信息{cout<<"暂无学生信息,无法删除"<>strname;for( vector::iterator it = vecStu.begin(); it != vecStu.end(); it++ ){if( it->m_strName == strname ){vecStu.erase(it);this->Savenews();}}cout<<"已删除"<>n;switch(n){case 1:{string strnumber;cout<<"要查找的学生学号: ";cin>>strnumber;for( vector::iterator it = vecStu.begin(); it != vecStu.end(); it++ ){if( it->m_strNumber == strnumber ){cout<<"学号: "<m_strNumber;cout<<"  姓名: "<m_strName;cout<<"  班级: "<m_strClass;cout<<"  语文成绩: "<m_dChinese;cout<<"  数学成绩: "<m_dMath;cout<<"  英语成绩: "<m_dEnglish;double dsum = it->m_dChinese + it->m_dMath + it->m_dEnglish;cout<<"  总分: "<>strname;for( vector::iterator it = vecStu.begin(); it != vecStu.end(); it++ ){if( it->m_strName == strname ){cout<<"学号: "<m_strNumber;cout<<"  姓名: "<m_strName;cout<<"  班级: "<m_strClass;cout<<"  语文成绩: "<m_dChinese;cout<<"  数学成绩: "<m_dMath;cout<<"  英语成绩: "<m_dEnglish;double dsum = it->m_dChinese + it->m_dMath + it->m_dEnglish;cout<<"  总分: "< B.m_dChinese+B.m_dMath+B.m_dEnglish );
}/*  按总分降序排序  */
void CSystem::Sort()
{sort( vecStu.begin(), vecStu.end() );     //调用库函数sortcout<<"按总分降序排序如下:"<::iterator it = vecStu.begin(); it != vecStu.end(); it++ ){cout<<"学号: "<m_strNumber;cout<<"  姓名: "<m_strName;cout<<"  班级: "<m_strClass;cout<<"  语文成绩: "<m_dChinese;cout<<"  数学成绩: "<m_dMath;cout<<"  英语成绩: "<m_dEnglish;double dsum = it->m_dChinese + it->m_dMath + it->m_dEnglish;cout<<"  总分: "<>cst;vecStu.push_back(cst);}file2.close();
}/* 文件导入,保存为文件数据  */
void CSystem::Savenews()
{ofstream file1( "成绩.txt", ios_base::out | ios_base::binary );if(!(file1.is_open())){cout<<"文件打开失败"<::iterator it = vecStu.begin(); it != vecStu.end(); it++ ){file1<<*it;if( it != vecStu.end()-1 ){file1<>im;if(im==1){CSystem p;p.Create();while(iz==1){cout<<"\n请选择: ";cin>>im;switch(im){case 2:p.Add();break;case 3:p.Show();break;case 4:p.Sort();break;case 5:p.Change();break;case 6:p.Searchnews();break;case 7:p.Show();break;case 8:p.Savenews();break;case 9:p.Getnews();break;case 10:p.Delnews();break;case 11:iz=0;break;}}}return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部