从键盘输入某班级10个学生的学号、姓名、三门课程(语文、数学、英语)的成绩,分别实现如下功能:(1)统计每个学生的总分、平均分;(2)按总分从大到小排出名次;(3)打印出成绩

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 01:45:07
从键盘输入某班级10个学生的学号、姓名、三门课程(语文、数学、英语)的成绩,分别实现如下功能:(1)统计每个学生的总分、平均分;(2)按总分从大到小排出名次;(3)打印出成绩

从键盘输入某班级10个学生的学号、姓名、三门课程(语文、数学、英语)的成绩,分别实现如下功能:(1)统计每个学生的总分、平均分;(2)按总分从大到小排出名次;(3)打印出成绩
从键盘输入某班级10个学生的学号、姓名、三门课程(语文、数学、英语)的成绩,分别实现如下功能:
(1)统计每个学生的总分、平均分;
(2)按总分从大到小排出名次;
(3)打印出成绩在全班平均分以上的学生名单和数据信息.
(4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试成绩.
要求:个功能要求分别用独立的函数来实现,在主函数中通过菜单选择来实现各个功能.且要求使用结构体数组来储存和处理学生信息

从键盘输入某班级10个学生的学号、姓名、三门课程(语文、数学、英语)的成绩,分别实现如下功能:(1)统计每个学生的总分、平均分;(2)按总分从大到小排出名次;(3)打印出成绩
用类对象与容器实现的,看看可以不!
#include <iostream>
#include <vector>
#include <string>
#include <map>
#include <iterator>
#include <iomanip>
using namespace std;
class student{
private:
double language;
double math;
double english;
double number;
double sumsocos;
double avesocos;
int place;
string name;

public:
student(double lenguagevalue=0,double mathvalue=0,double englishvalue=0,double numbervalue=0,double sumsocosvalue=0,double avesocos=0,int placevalue=0,string namevalue="lilei");
double getlanguage();
double getmath();
double getenglish();
double getnumber();
double getsumsocos();
double getplace();
double getavesocos();
string getname();
void setsumsocos(double digit);
void setave(double digit);
void setplace(int placevalue);
double sum();
double average();
};
student::student(double lenguagevalue,double mathvalue,double englishvalue,double numbervalue,double sumsocosvalue,double avesocosvalue,int placevalue,string namevalue):language(lenguagevalue),math(mathvalue),english(englishvalue),number(numbervalue),sumsocos(sumsocosvalue),avesocos(avesocosvalue),place(placevalue){
name=namevalue;
};
void searchstudent(vector< student >::iterator beg,vector< student >::iterator end,double number)
{
bool isfind=false;
for(size_t i=0;i<=number;)
{
if((*beg).getnumber()!=number)
{
beg++;
if(beg==end)
{
break;
}
}
else
{
cout<<"您查询的学生信息为 :"<<endl;
 cout<<"姓名:"<<(*beg).getname()<<" 学号:"<<(*beg).getnumber()<<" 语文:"<<(*beg).getlanguage()<<" 数学:"<<(*beg).getmath()<<" 英语:"<<(*beg).getenglish()<<endl;
 isfind=true;
break;
}
}
if(isfind==false)
{
cout<<"对不起,没有找到你需要的学生信息!"<<endl;
return;
}
};
double sumavesoco(vector<student>::iterator beg,vector<student>::iterator end){
vector<student>::iterator begin=beg;
 vector<student>::iterator ended=end;
 while(begin!=ended)
 {
 int sum=0;
 int ave=0;
 sum+=(*begin).getenglish();
 sum+=(*begin).getlanguage();
 sum+=(*begin).getmath();
 ave=sum/3;
 (*begin).setsumsocos(sum);
 (*begin).setave(ave);
 begin++;
 }
 vector<student>::iterator begin1=beg;
 vector<student>::iterator ended1=end;
 int sumave=0;
 int sumsoco=0;
 int count=0;
 while(begin1!=ended1)
 {
 sumsoco+=(*begin1).getsumsocos();
 count++;
 begin1++;
 }
 sumave=sumsoco/count;
 cout<<"学生总分与平均分为:"<<endl;
 while(beg!=end)
 {
cout<<"姓名:"<<setw(5)<<(*beg).getname()<<"总分:"<<setw(5)<<(*beg).getsumsocos()<<"平均分:"<<setw(5)<<(*beg).getavesocos()<<endl;
 beg++;
 }
 return sumave;
};
void place(vector<student>::iterator beg,vector<student>::iterator end){
vector<student> a(beg,end);
 vector<student>::iterator begin=a.begin();
 for(int i=0;i<a.size();i++)
 {
 for(int j=i+1;j<a.size();j++)
 {
 if(a[i].getsumsocos()<a[j].getsumsocos())
 {
 student astudent;
 astudent=a[i];
 a[i]=a[j];
 a[j]=astudent;
 }
 }
 }
 cout<<"完成排名,按总分大小排名后的次序为:"<<endl;
 vector<student>::iterator begin1=a.begin();
 while(begin1!=a.end())
 {
 cout<<setw(5)<<"姓名:"<<setw(5)<<(*begin1).getname()<<setw(5)<<"学号:"<<setw(5)<<(*begin1).getnumber()<<setw(5)<<"语文:"<<setw(5)<<(*begin1).getlanguage()<<"数学:"<<setw(5)<<(*begin1).getmath()<<"英语:"<<setw(5)<<(*begin1).getenglish()<<endl;
 begin1++;
 }
};
void searchupstudent(vector<student>::iterator beg,vector<student>::iterator end,double avesocos){
cout<<"总成绩在全班平均成绩以上的学生信息为:"<<endl;
while(beg!=end)
{
if((*beg).getsumsocos()>=avesocos)
{
cout<<"姓名:"<<setw(5)<<(*beg).getname()<<"学号:"<<setw(5)<<(*beg).getnumber()<<"总分:"<<setw(5)<<(*beg).getsumsocos()<<"平均分:"<<setw(5)<<(*beg).getavesocos()<<"语文:"<<setw(5)<<(*beg).getlanguage()<<"数学:"<<setw(5)<<(*beg).getmath()<<"英语:"<<setw(5)<<(*beg).getenglish()<<endl;

}
beg++;
}
};
struct
int main()
{
vector< student > stuarray;
loop:cout<<""<<endl;
int chose=0;
cout<<"请输入您的选择!"<<endl;
cin.clear();
cin.sync();
cin>>chose;
if(chose<=0||chose>5)
{
cout<<"输入错误,请重新输入!"<<endl;
goto loop;
}
char ch=0;
int count=0;
double sumave;
switch(chose)
{
case 1:
{
 do{
 cout<<"请输入学生信息!"<<endl;
 double lan,math,english,number,socos,avesocos,place;
 string name,sex;
 cout<<"语文:";
 cin>>lan;
 cout<<endl<<"数学:";
 cin>>math;
 cout<<endl<<"英语:";
 cin>>english;
 cout<<endl<<"学号:";
 cin>>number;
 cin.sync();
 cout<<endl<<"姓名:";
 getline(cin,name);
 cout<<endl;
 student* astudent=new student(lan,math,english,number,socos=0,avesocos=0,place=0,name);
 stuarray.push_back(*astudent);
 cout<<"是否继续输入?"<<endl;
 cin.clear();
cin.sync();
 cin>>ch;
 }while(tolower(ch)=='y');
 cout<<endl;
 goto loop;
}
case 2:
{
 vector<student>::iterator beg=stuarray.begin();
 vector<student>::iterator end=stuarray.end();

 sumave=sumavesoco(beg,end);
 cout<<"全班平均分为:"<<sumave<<endl;
 goto loop;
}

case 3:
{ cout<<"请输入需要查询的学生学号!"<<endl;
 int number2=0;
 cin>>number2;
 searchstudent(stuarray.begin(),stuarray.end(),number2);
 goto loop;
}

case 4:
{

vector<student>::iterator beg=stuarray.begin();
 vector<student>::iterator end=stuarray.end();
 place(beg,end);
 goto loop;
}
case 5:
{
 vector<student>::iterator beg=stuarray.begin();
vector<student>::iterator end=stuarray.end();
 searchupstudent(beg,end,sumave);
 goto loop;
}
}
return 0;
}

从键盘输入某班级10个学生的学号、姓名、三门课程(语文、数学、英语)的成绩,分别实现如下功能:(1)统计每个学生的总分、平均分;(2)按总分从大到小排出名次;(3)打印出成绩 (1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩; (2)从键盘输入10个学生的以上内容(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩;(2)从键盘输 有 5 个学生,每个学生的数据包括学号、班级、姓名、三门课成绩.从键盘输入5 个学生数据,要求打印出每个要求:1、定义学生结构体.2、用一个函数实现5 个学生数据的输入,用另一个函数负 编写程序处理10个学生的信息,每个学生的信息包括:学号、姓名、三门成绩.要求从键盘输入学生的数据用一个函数实现,输出成绩表(包括每个学生的学号、姓名、三门成绩及平均分数)用 有若干个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入这些学生的数据,以学号为0结束输入.要求输出每个学生的学号、姓名、3门课程的成绩、3门课程的平均成绩、平均 编写程序要求从键盘输入若干名学生数据(包括学号 姓名 三门课成绩 ),计算每位学生的总分,将原有数据和 “姓名,班级,学号”英语 SQL如何查找个人平均分大于班级平均分的学生的学号姓名? C语言 编程!二、实验题目:有10个学生,每个学生的数据包括学号,姓名,及三门课成绩,总,平均.二、实验题目:有10个学生,每个学生的数据包括学号,姓名,及三门课成绩,总成绩和平均成绩,从键 在SQL server中查询每个学生的班级、学号、姓名、平均分,结果按平均分降序排列,平均分相同者按班级排列学生信息表 (学号,姓名,性别,出生日期,籍贯,联系电话,身份证号,班级编号); 教学成 有5个学生,每个学生有3门课的成绩,从键盘输入以上的数据(包括学号,姓名,3门课的成绩),计算出平均成绩,将原有数据和计算出的平均成绩存放在磁盘文件STUD中,要求磁盘文件STUD中的数据按平 一个班级,有10名学生每个学生的记录为:学号,姓名,性别,英语,数 学,程序设计,总分,平均分,并按照从高到低的 顺序输出他们的成绩.编程实现以下功能:(1)输入每位学生的各项信息.(2) excel中如何将学号以“2”开头的学生班级编号改为“02”此工作表格中有“班级编码”“学号”“姓名”等等一些学生信息.学号有100012,200020,300023等等样式,班级编号只有01样式.现想把学号以2 编写一个C语言程序,统计一个班(最多50人)的学生成绩,要求实现以下功能:由键盘输入每一个学生的学号,姓名和四门课程的成绩;计算每个学生的平均分和总分;按总分排序(从高到低), C语言基础题.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和 现在有两个表 一个表 A 包含 学号 班级 姓名 性别.B表 学号 课程名称 成绩.求 以下代码 我研究了很久分别求出每位学生的总分成绩以及平均成绩;统计出学生基本情况表中“男生”的记录个 定义一个学生类(Student),属性包括:学号,班号,姓名,性别,年龄,班级总人数方法包括:获得学号,获得班号,获得姓名,获得性别,获得年龄,获得班级总人数,修改学号,修改班号,修改姓名,修改性 数据结构中:编写10个学生成绩的链表,包括学号、姓名、成绩,并用函数求出最高值最低值和平均值