学生成绩管理系统C++

时间:2023-03-09 22:46:07
学生成绩管理系统C++

今天晚上终于做完了学生成绩管理系统!激动!开心!!!哈哈哈~~~~

总共298行代码,第一次写这么多。

其中遇到了好多困难,也烦恼了好久,不过最终都解决了!

做了之后果然,满满的成就感!抑制不住的兴奋,特此纪念一下!

可能还有些小问题,,,不过已经很开心啦,啦啦啦~~~

 #include<iostream>
#include<iomanip> using namespace std;
void menu();//菜单函数
int choice(int x); //选项函数
void Input(float stu[],int &num);//1.输入成绩函数
void Output(float stu[],int &num);//2.输出成绩函数
void Order(float stu[],int &num);//3.排序函数
void Search(float stu[],int &num);//4.查找学生函数
void Insert(float stu[],int &num);//5.插入学生函数
void Delete(float stu[],int &num);//6.删除学生函数
void Statistical_number(float stu[],int &num);//7.统计各分数段人数函数 const int MAX_STUDENT_NUM=;//班级人数
float stu[MAX_STUDENT_NUM];
int currentN=; int main()
{
menu();
int x;
cin>>x;
choice(x);
//菜单循环
while (x!=)
{ menu();
cin>>x;
choice(x);
}
} //菜单
void menu()
{
cout<<"\t\t\t\t\t\t\t\t\t\t\t\t\t\n";
cout<<"\t\t\t欢迎使用成绩管理系统\t\n";
cout<<"\t\t=========================================\n";
cout<<"\t\t1.录入学生 2.显示信息\n";
cout<<"\t\t3.排序总评 4.查找学生\n";
cout<<"\t\t5.插入学生 6.删除学生\n";
cout<<"\t\t7.统计人数 0.退出\n";
cout<<"\t\t=========================================\n";
cout<<"请从0-7中选择一个数:";
} //选项
int choice(int x)
{ switch (x)
{
case :return ;
case :cout<<"你选择了 录入学生"<<endl;
Input(stu,currentN);
break;
case :cout<<"你选择了 显示信息"<<endl;
Output(stu,currentN);
break;
case :cout<<"你选择了 排序总评"<<endl;
Order(stu,currentN);
break;
case :cout<<"你选择了 查找学生"<<endl;
Search(stu,currentN);
break;
case :cout<<"你选择了 插入学生"<<endl;
Insert(stu,currentN);
break;
case :cout<<"你选择了 删除学生"<<endl;
Delete(stu,currentN);
break;
case :cout<<"你选择了 统计人数"<<endl;
Statistical_number(stu,currentN);
break;
default:cout<<"输入非法,请重新输入!\n"<<endl;break;
}
} //1.输入成绩
void Input(float stu[],int &num)
{
char a;
while()
{
int temp=num;
if(temp>=MAX_STUDENT_NUM)
{
cout<<"人数已达到上限,无法再输入!"<<endl;
break;
}
cout<<"请输入成绩(0-100):"<<endl;
cin>>stu[num];
if(stu[num]< || stu[num]>)
{
cout<<"输入错误!成绩应该在0到100之间!"<<endl;
continue;
}
cout<<"是否继续输入学生数据请按Y或N:"<<endl;
cin>>a;
num++;
if(a=='y'||a=='Y')
{ if(num>=MAX_STUDENT_NUM)
{
cout<<"人数已达到上限,无法再输入!"<<endl;
break;
}
}
else if(a=='n'||a=='N')
{
break;
}
}
} //2.输出显示信息
void Output(float stu[],int &num)
{
cout<<"成绩信息如下:"<<endl;
for(int i=;i<num;i++)
{
cout<<fixed<<setprecision()<<setw()<<stu[i]<<' ';
}
} //3.排序
void Order(float stu[],int &num)
{
for(int i=;i<num-;i++)
for(int i=;i<num-;i++)
{
for(int j=;j<num-i;j++)
{
if(stu[i]>stu[i+])
{
float temp=stu[i];
stu[i]=stu[i+];
stu[i+]=temp;
}
}
}
Output(stu,num);
} //4.查找
void Search(float stu[],int &num)
{
int x,i,j=,n=,counter=;
char a;
while()
{ cout<<"请输入你要查找的成绩:";
cin>>x;
for(i=;i<num;i++)
{
j++;
}
for(i=;i<=j;i++)
{ if(x==stu[i])
{
cout<<"查找到第"<<counter<<"个相符的成绩"<<fixed<<setprecision()<<stu[i]<<endl;
n=;counter++;
}
}
if(n)
cout<<"没有该学生信息!"<<endl; cout<<"是否继续查找请按Y或N:"<<endl;
cin>>a;
if(a=='y'||a=='Y')
{
counter=;
continue;
}
else if(a=='n'||a=='N')
{
break;
} }
} //5.插入
void Insert(float stu[],int &num)
{
char a;
while()
{
int temp=num;
if(temp>=MAX_STUDENT_NUM)
{
cout<<"人数已达到上限,无法再输入!"<<endl;
break;
}
cout<<"请输入插入的成绩(0-100):"<<endl;
cin>>stu[num];
if(stu[num]< || stu[num]>)
{
cout<<"数据不符合要求!请重新输入!"<<endl;
continue;
}
cout<<"是否继续输入学生数据请按Y或N:"<<endl;
cin>>a;
num++;
if(a=='y'||a=='Y')
{
if(num>=MAX_STUDENT_NUM)
{
cout<<"人数已达到上限,无法再输入!"<<endl;
break;
}
}
else if(a=='n'||a=='N')
{
break;
}
}
} //6.删除
void Delete(float stu[],int &num)
{
float x;
char a;
int counter=,n=,temp=num;
while()
{ cout<<"请输入要删除的数据:"<<endl;
cin>>x;
for(int i=;i<num;i++)
{
if(x==stu[i])
{
for(int j=i;j<num;j++)
stu[j]=stu[j+];
num--;i--;n=;
}
}
if(n)
{
n=;
cout<<x*1.0<<"分学生信息删除成功!"<<endl;
}
else
cout<<"没有该学生!"<<endl; cout<<"是否继续删除其他学生请按Y或N:"<<endl;
cin>>a;
if(a=='y'||a=='Y')
{
continue;
}
else if(a=='n'||a=='N')
{
Output(stu,num);
break;
} }
} //7.统计各分数段人数
void Statistical_number(float stu[],int &num)
{
int a=,b=,c=,d=,e=;
for(int i=;i<num;i++)
{
if(stu[i]>=)
a++;
else if(stu[i]>=)
b++;
else if(stu[i]>=)
c++;
else if(stu[i]>=)
d++;
else
e++;
}
cout<<"100^90 89^80 79^70 69^60 <60"<<endl;
cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<endl;
}

学生成绩管理系统