#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
struct Student
{
int num;
char name[8];
float score[3],ave,sum;
};
void input(Student s[],int n);
void count(Student s[],int n);
void output(Student s[],int n);
void sort(Student s[],int n);
void rate(Student s[],int n);
void searchnum(Student s[],int n);
void searchname(Student s[],int n);
#include "lab5.h"
#include<string>
void input(Student s[],int n)
{
int i,j;
for (i=0;i<n;i++)
{
cout<<"请输入第"<<i+1<<"学生成绩"<<endl;
cout<<"学号 姓名 数学 语文 英语\n";
cin>>s[i].num;
cin>>s[i].name;
for (j=0;j<3;j++)
{
cin>>s[i].score[j];
}
}
cout<<"共输入"<<i<<"个学生记录!"<<endl;
}
void count(Student s[],int n)
{
int i,j;
for (i=0;i<n;i++)
{
s[i].sum=0;
for (j=0;j<3;j++)
s[i].sum=s[i].score[j]+ s[i].sum;
s[i].ave=s[i].sum/float(3.0);
}
cout<<"数据计算完毕"<<endl;
}
void output(Student s[],int n)
{
int i,j;
cout<<n<<"个学生成绩:\n";
cout<<"\n学号 姓名 数学 语文 英语 总成绩 平均成绩\n";
for (i=0;i<n;i++)
{
cout<<s[i].num<<setw(6)<<s[i].name;
cout.precision(4);
for(j=0;j<3;j++)
cout<<setw(6)<<s[i].score[j];
cout<<setw(8)<<s[i].sum<<setw(8)<<s[i].ave;
cout<<endl;
}
}
void sort(Student s[],int n)
{
int i,j;
Student temp;
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
{
if(s[i].sum>s[i+1].sum)
{
temp=s[i];
s[i]=s[i+1];
s[i+1]=temp;
}
}
cout<<"按总成绩排序完毕!"<<endl;
}
void searchnum(Student s[],int n)
{
int i,j;
char flag='Y';
long x;
while(flag=='Y'||flag=='y')
{
cout<<"请输入要查找的学号"<<endl;
cin>>x;
for(i=0;i<n;i++)
{
if (s[i].num==x)
{
cout<<setw(6)<<s[i].num<<setw(6)<<s[i].name;
for(j=0;j<3;j++)
cout<<setw(6)<<s[i].score[j];
cout<<setw(8)<<s[i].sum<<setw(8)<<s[i].ave<<endl;
break;
}
else
cout<<"没有找到学号为"<<x<<"的记录"<<endl;
}
cout<<"是否继续查找(Y/N)?"<<endl;
cin>>flag;
}
}
void searchname(Student s[],int n)
{
int i,j;
char flag='Y';
char x[8];
while(flag=='y'||flag=='Y')
{
cout<<"请输入要查找的姓名"<<endl;
cin>>x;
for(i=0;i<n;i++)
{
if(strcmp(x,s[i].name)==0)
{
for(j=0;j<3;j++)
cout<<setw(6)<<s[i].score[j];
cout<<setw(8)<<s[i].sum<<setw(8)<<s[i].ave<<endl;
break;
}
else
cout<<"没有找到此学生"<<endl;
}
cout<<"继续查找?(Y/N)"<<endl;
cin>>flag;
}
}
void rate(Student s[],int n)
{
int a=0,b=0,c=0,d=0,i;
for(i=0;i<n;i++)
{
if(s[i].ave<=100&&s[i].ave>=85)
a++;
else if (s[i].ave<85&&s[i].ave>=70)
b++;
else if (s[i].ave<70&&s[i].ave>=60)
c++;
else if (s[i].ave<60)
d++;
}
cout<<"优秀人数为:"<<a<<endl;
cout<<"良好人数为:"<<b<<endl;
cout<<"及格人数为:"<<c<<endl;
cout<<"不及格人数为:"<<d<<endl;
}
#include"Lab5.h"
const int M=50;
int main()
{
Student stu[M];
int n;
cout<<"请输入班级人数(人数不超过50):";
cin>>n;
while(n<0||n>50)
{
cout<<"请重新输入(人数不超过50):";
cin>>n;
}
int i,flag=1;
while(flag)
{
cout<<endl;
cout<<"*******************************************"<<endl;
cout<<"*\t1-输入学生数据\t\t\t*"<<endl;
cout<<"*\t2-计算学生的总成绩和平均成绩\t*"<<endl;
cout<<"*\t3-输出学生数据\t\t\t*"<<endl;
cout<<"*\t4-按总成绩排序\t\t\t*"<<endl;
cout<<"*\t5-按学号查找\t\t\t*"<<endl;
cout<<"*\t6-按姓名查找\t\t\t*"<<endl;
cout<<"*\t7-统计优、良、及格、不及格的人数\t*"<<endl;
cout<<"*\t0-退出\t\t\t\t*"<<endl;
cout<<"********************************************"<<endl;
cout<<"输入你的选择(0-7):"<<endl;
cin>>i;
while(i<0||i>7)
{
cout<<"请重新输入你的选择(0—7):";
cin>>i;
}
cout<<endl;
switch(i)
{
case 1:
cout<<"输入学生数据......"<<endl;
input(stu,n);
break;
case 2:
cout<<"计算学生的总成绩和平均成绩......"<<endl;
count(stu,n);
break;
case 3:
cout<<"显示学生数据......"<<endl;
output(stu,n);
break;
case 4:
cout<<"按总成绩排序......"<<endl;
cout<<"排序完成"<<endl;
sort(stu,n);
break;
case 5:
cout<<"按学号查找......"<<endl;
searchnum(stu,n);
break;
case 6:
cout<<"按姓名查找......"<<endl;
searchname(stu,n);
break;
case 7:
cout<<"优、良、合格、不及格人数统计......"<<endl;
rate(stu,n);
break;
case 0:
cout<<"本次处理结束,再见!"<<endl;
flag=0;
}
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考