学校学生成绩管理
假设一个学校成绩管理要管理的学生信息包括:班级、学号、姓名、学期、每门课程的成绩(每学期的课程门数是不一样的) ,对学生的成绩信息进行管理。
要求实现如下的功能:
实现:学生信息的录入;修改;删除和查询,按学期、学号、成绩不及格等查询。
⑴ 输入学生的成绩信息,包含学号、姓名、性别等基本信息和各课成绩
⑵ 显示全部学生各科成绩信息;
⑶ 对各科分班进行成绩统计分析(总分、平均分、最高分、最低分、及格率等);
⑷ 统计各科各分数段人数及班级信息;
⑸ 按学号或姓名查找并显示某个学生的各科成绩;
⑹ 按课程成绩或总分由高到低排序显示;
⑺ 更新某个学生的基本信息或课程成绩;
⑻ 设计一个菜单,具有上述规定的操作要求、退出系统等最基本的功能。
程序如下:
#include<iostream>
#include<string>
#include<fstream>
#include<sstream>
#include<iomanip>
using namespace std;
class Tstu //通过定义一个类来定义数据录入的函数
{
char name[20];
int number;
float math,cpp,english,average,sum;
public:
Tstu()
{};
Tstu ( char n[20], int num,float ma,float cj,float eng ) ;
float getsum();//得到总分的函数
float getaver(); //得到平均分的函数
friend void main(); //将主函数定义为友元函数,方便访问类中的成员
};
Tstu::Tstu ( char n[20], int num,float ma,float cj,float eng )
{
strcpy(name,n); //得到姓名
number=num; //得到学号
math=ma; //得到数学成绩
cpp=cj; //得到c++成绩
english=eng; //得到英语成绩
}
float Tstu::getsum() //得到总分的函数
{
sum=cpp+english+math;
return sum;
}
float Tstu::getaver() //得到平均分的函数
{
average=getsum()/3;
return average;
}
void main()
{
cout<<"*****************欢迎来到学生成绩查询系统*****************"<<endl;
cout<<"请选择您需要的操作!"<<endl; //菜单的输出
cout<<"操作:"<<endl;
cout<<"(1)数据录入"<<endl;
cout<<"(2)增加学生"<<endl;
cout<<"(3)删除学生"<<endl;
cout<<"(4)修改数据"<<endl;
cout<<"查询:"<<endl;
cout<<"(5)按总成绩查询"<<endl;
cout<<"(6)按姓名查询"<<endl;
cout<<"(7)输出所有学生的数据"<<endl;
cout<<"成绩统计:"<<endl;
cout<<"(8)每个学生的平均成绩"<<endl;
cout<<"(9)各科不及格人数"<<endl;
cout<<"排名:"<<endl;
cout<<"(10)按总分查询排名"<<endl;
cout<<"(11)退出"<<endl;
cout<<"选择相关操作请输入相对的括号里的阿拉伯数字及字母!"<<endl;
int p=0; //全局变量,用于选择菜单时的输入
char w;//全局变量,用于在大项中选择是否继续操作
Tstu *s[100]; //类定义的指针将所录入的数据按类中的形式分别存储
ofstream *file[100];
int i=0; //全局变量,用于做每个录入数据的下标
int j=0;
int chris1=0; //用于判断do-while语句
do //判断输入是否正确
{
cin>>p;
if