c++程序设计,,,,,学生成绩管理系统
最好有流程图1 学生成绩管理系统
要求:
(1) 由键盘输入每个学生的学号和四门课程的成绩;
(2) 计算每个学生的平均分和总分;
(3) 按总分从高到底排出名次,并按名次输出学生的基本信息,包括学号、各科成绩,平均分和总分;
(4) 根据用户要求,输出某门课程(由键盘输入课程号且成绩在90分以上(含90))且总分在前五名的学生情况,包括学号、各科成绩、平均分和总分;
补充:可以发到xl6205230384@163.com邮箱
追问:流程图有吗
最好有流程图1 学生成绩管理系统
要求:
(1) 由键盘输入每个学生的学号和四门课程的成绩;
(2) 计算每个学生的平均分和总分;
(3) 按总分从高到底排出名次,并按名次输出学生的基本信息,包括学号、各科成绩,平均分和总分;
(4) 根据用户要求,输出某门课程(由键盘输入课程号且成绩在90分以上(含90))且总分在前五名的学生情况,包括学号、各科成绩、平均分和总分;
补充:可以发到xl6205230384@163.com邮箱
追问:流程图有吗
答案:#include<vector>
#include<iostream>
#include<string>
#include<sstream>
#include<algorithm>
using namespace std;struct student
{
string num;
int score[4];
float ave;
int tot;
};
typedef vector<student>::iterator iter;
void in(vector<student> &vec)
{
cout<<"请按顺序输入学生姓名以及个门功课成绩。输入00结束"<<endl;
student stud;
string st;
while((cin>>st)!="00")
{
stud.tot=0;
stud.num=st;
if(stud.num=="00")
break;
for(int i=0;i<4;i++)
{
cin>>stud.score[i];
stud.tot+=stud.score[i];
}
stud.ave=stud.tot/4;
vec.push_back(stud);
}
system("cls");
vector<student>::size_type siz=vec.size();}
int tot_comp(const student &a,const student &b)
{
if(a.tot < b.tot)
return 0;
else
return 1;
}
void show(const vector<student> &vec)
{
vector<student>::size_type siz=vec.size();
for(int i=0;i<siz;i++)
{
cout<<vec[i].num<<" "<<vec[i].score[0]<<" ";
cout<<vec[i].score[1]<<" "<<vec[i].score[2]<<" ";
cout<<vec[i].score[3]<<" ";
cout<<vec[i].ave<<" "<<vec[i].tot<<endl;
}
}
void show2(const vector<student> &vec)
{
system("cls");
cout<<"请输入课程号";
int n;
cin>>n;
vector<student>::size_type siz=vec.size();
if(siz>5)
{
siz=5;
}
for(int i=0;i<siz;i++)
{
if(vec[i].score[n-1]>=90)
{
cout<<vec[i].num<<" "<<vec[i].score[0]<<" ";
cout<<vec[i].score[1]<<" "<<vec[i].score[2]<<" ";
cout<<vec[i].score[3]<<" ";
cout<<vec[i].ave<<" "<<vec[i].tot<<endl;
}
}
system("pause");
show2(vec);
}
void main()
{
vector<student> vec;
in(vec);
sort(vec.begin(),vec.end(),tot_comp);
show(vec);
show2(vec);
}