当前位置:编程学习 > C/C++ >>

c++程序设计,,,,,学生成绩管理系统

 最好有流程图

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);
 
}

上一个:C++语句“void ReadFile(istream & in)”
下一个:谁能给些C\C++的练习题

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,