学校学生成绩管理
假设一个学校成绩管理要管理的学生信息包括:班级、学号、姓名、学期、每门课程的成绩(每学期的课程门数是不一样的) ,对学生的成绩信息进行管理。
要求实现如下的功能:
实现:学生信息的录入;修改;删除和查询,按学期、学号、成绩不及格等查询。
⑴ 输入学生的成绩信息,包含学号、姓名、性别等基本信息和各课成绩
⑵ 显示全部学生各科成绩信息;
⑶ 对各科分班进行成绩统计分析(总分、平均分、最高分、最低分、及格率等);
⑷ 统计各科各分数段人数及班级信息;
⑸ 按学号或姓名查找并显示某个学生的各科成绩;
⑹ 按课程成绩或总分由高到低排序显示;
⑺ 更新某个学生的基本信息或课程成绩;
⑻ 设计一个菜单,具有上述规定的操作要求、退出系统等最基本的功能。
/****************************************************************
************ 学生成绩管理系统 ***************************
****************************************************************/
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int SIZE=20;
struct student
{
char classnum[SIZE]; //班级
char id[SIZE]; //学号
char name[SIZE]; //姓名
int *score;
};
void input(student p[], string c_name[],int s_num,int c_num); //输入学生的成绩信息,包括学号、姓名、性别等基本信息和各科成绩
void show(student p[], string c_name[],int s_num,int c_num); // 显示全部学生各科成绩信息;
void statistic(student p[], string c_name[],int s_num,int c_num);//对各科分班进行成绩统计分析,计算总分、平均分、最高分、最低分、及格率等;
void section(student p[], string c_name[],int s_num,int c_num); //统计各个科目各分数段人数及班级信息;
void search(student p[], string c_name[],int s_num,int c_num); //按学号或姓名查找并显示某个学生的各科成绩;
void sort(student p[], string c_name[],int s_num,int c_num); //按课程成绩或总分由高到低排序显示;
void update(student p[], string c_name[],int s_num,int c_num); //更新某个学生的基本信息或课程成绩;
void quicksort(int s[],int l,int r); //快速排序
void fileout(student p[], string c_name[],int s_num,int c_num,int semester);//文件形式输出
int main()
{
cout<>first_sel;
cin.get();
while(tolower(first_sel)!='y'&&tolower(first_sel)!='n')
{
cout<<"输入有误,请重新输入(Y/N):";
cin>>first_sel;
cin.get();
}
if(tolower(first_sel)=='y')
{
ifstream fin;
n=1;
cout<<"**************** 说明: ****************"<>student_num;
fin.get();
fin>>semester;
fin.get();
fin>>cour_num;
fin.get();
fin.close();
system("pause");
system("cls");
}
else
{
cout<>student_num;
while(!cin.good())
{
cin.clear();
cin.sync();
cout<<"输入有误!请重新输入学生个数: ";
cin>>student_num;
cin.get();
}
cout<<"================";
cout<<"请输入学期(以数字形式):";
cin>>semester;
while(!cin.good())
{
cin.clear();
cin.sync();
cout<<"输入有误!请重新输入学期: ";
cin>>student_num;
cin.get();
}
cout<>cour_num;
cin.get();
while(!cin.good())
{
cin.clear();
cin.sync();
cout<<"输入有误!请重新输入第 "<>cour_num;
cin.get();
}
}
student *p=new student[student_num];
string *cour_name=new string[cour_num];
if(tolower(first_sel)=='y')
{
ifstream fin;
cout<<"**************** 说明: ******************"<>cour_name[i];
cin.get();
}
}
int i;
int **all_score=new int*[student_num];
for(i=0;i>*(p[i].score+j);
fin.get();
}
}
fin.close();
}
system("pause");
system("cls");
char select='a';
while(select!='q')
{
cout<<"********************************************************************************"<0)
{
cout<<"《****************************************************************************》";
cout<<"《****************************************************************************》";
cout<<"《********************************请继续输入**********************************》";
cout<<"《****************************************************************************》";
cout<<"《****************************************************************************》";
cout<>*(p[i].score+j);
cin.get();
while(!cin.good())
{
cin.clear();
cin.sync();
cout<<"输入有误!请重新输入: ";
cin>>*(p[i].score+j);
cin.get();
}
while(*(p[i].score+j)>100||*(p[i].score+j)<0)
{
cout<>*(p[i].score+j);
cin.get();
while(!cin.good())
{
cin.clear();
cin.sync();
cout<<"输入有误!请重新输入: ";
cin>>*(p[i].score+j);
cin.get();
}
}
}
system("pause");
system("cls");
}
}
void show(student p[], string c_name[],int s_num,int c_num)
{
cout<<"********************************************************************************";
cout<<"科目:\t\t";
for(int j=0;jmax)
max=*(p[j].score+i);
if((*p[j].score+i)=60)
pass++;
}
}
cout<<"《"<=90)
s_90++;
else if(*(p[j].score+i)>=80)
s_80++;
else if(*(p[j].score+i)>=70)
s_70++;
else if(*(p[j].score+i)>=60)
s_60++;
else if(*(p[j].score+i)<60)
s_nopass++;
}
}
cout<>*(p[i].score+j);
cin.get();
cout<<"********************************************************************************";
while(!cin.good())
{
cin.clear();
cin.sync();
cout<<"输入有误!请重新输入: ";
cin>>*(p[i].score+j);
cin.get();
cout<<"********************************************************************************";
}
while(*(p[i].score+j)>100||*(p[i].score+j)<0)
{
cout<<"输入有误,请输入0到100之内的数:";
cin>>*(p[i].score+j);
cin.get();
while(!cin.good())
{
cin.clear();
cin.sync();
cout<<"输入有误!请重新输入: ";
cin>>*(p[i].score+j);
cin.get();
cout<<"********************************************************************************";
}
}
}
}
else
{
cout<<"输入有误,请重新输入:";
cin.get(ch);
cin.get();
cout<<"********************************************************************************";
}
}
}
}
if(n==0)
{
cout<<"没有这名同学。"<=x)
i++;
if(i
1开始界面
2.人数级课程等设置界面
3.输入基础信息界面
4.选择界面
5.显示成绩界面
6.成绩分析界面
7.统计各科各分数段人数界面
8.查找页面
9.按总分由高到底显示成绩界面
10.更新学生成绩界面
11.保存界面
12.再次进入已记录好数据的界面
12.已成功进入之前记录好数据的文档,进入后显示的是选择界面
总结:老师,有一些功能要求看了书自己也实在写不出,而且最近也忙着各科的备考,就参考了一些百度资料以及请教班里面厉害的大神,终于写出来了,尽管不够完美,但是对于基础不是太厉害的我来说已经尽力了。从这次的课程设计中,我发现了C++语言的实用性,所以对这么课的兴趣更浓了,我决定考完试后就自己再去深入的去学习这门课。