哪位高手能帮帮忙解决一下这个编程题啊?谢谢啦,期末考试就靠大家了。

2024-12-14 19:28:56
推荐回答(3个)
回答1:

抽了半小时给你写了下。自己看看。
如果没有学C++就把cout<<的语句改成printf,把cin>>改成scanf;我想这个对你不是问题;
运行环境VC6.0;

// StudentManger.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include
#include
//////////////////////////////////////////////////////////////////////////
//要求:
/*
请用C++6.0编写程序,处理10个学生的信息,每个学生的信息包括:学号、姓名、三门成绩。

1:从键盘输入学生的数据用一个函数实现
2:输出成绩表(包括每个学生的学号、姓名、三门成绩及平均分数)用一个函数
3:再用一个函数输出平均分在前3名的学生姓名及平均分。*/

//////////////////////////////////////////////////////////////////////////
//定义学生信息结构体;
typedef struct _student
{
char no[20];
char name[10];
float eng;
float math;
float chinese;
float averager;
} student;

/////////////
////这里赋值两个学生对象把stu2的内容复制到stu1;
void copy(student *stu1,student *stu2)
{
strcpy(stu1->no,stu2->no);
strcpy(stu1->name,stu2->name);
stu1->eng = stu2->eng;
stu1->math = stu2->math;
stu1->chinese = stu2->chinese;
stu1->averager = stu2->averager;

}

////////////////////////////////////////////////////////////////////////////
//计算学生的平均成绩;
float calcAverage(student stu)
{
return (stu.math+stu.eng+stu.chinese)/3.0;
}

//////////////////////////////////////////////////////////////////////////
//输入学生信息;
void inPut(student *stu)
{
int count = 0;
cout<<"请输入学生信息!"< cout<<"共十名学生:"<
for (int i=0;i<10;i++)
{
cout<<"输入顺序是学生学号,姓名,英语成绩,数学成绩,语文成绩:"< cin>>stu[i].no>>stu[i].name>>stu[i].eng>>stu[i].math>>stu[i].chinese;
stu[i].averager = calcAverage(stu[i]);
}

}

//////////////////////////////////////////////////////////////////////////
//输出学生信息;
void outPut(student *stu)
{

cout<<"学生的信息和成绩如下"< for (int i=0;i<10;i++)
{
cout< cout< }
}

//////////////////////////////////////////////////////////////////////////
//对学生按平均成绩进行排序,并输出前三名的信息;
void sortAndOutput(student *stu)
{
int maxpos = 0;
for (int i=0;i<9;i++)
{
maxpos = i;
for (int j=i+1;j<10;j++)
{
if (stu[maxpos].averager {
maxpos = j;
}
}
if (maxpos!=i)
{
student *temp = new student;
copy(temp,&stu[i]);
copy(&stu[i],&stu[maxpos]);
copy(&stu[maxpos],temp);

}
}
cout<<" 按学生平均成绩排序后前三名的信息如下:"< for (int k=0;k<3;k++)
{
cout< }
}
int main(int argc, char* argv[])
{
// printf("Hello World!\n");

student stu[10];
inPut(stu);
outPut(stu);
sortAndOutput(stu);
return 0;
}
后来给你修改了下,应该比较完美了;

回答2:

自己做才有意义!

回答3:

#include
#include
#include
using namespace std;
//声明用于储存信息的数组
string number[10];//学号
string name[10];//姓名
int a1[10],a2[10],a3[10];//成绩
double avg[10];//均分
double sumav=0;//总平均分

void ReadData();
void PrintData();
void Printavg();

int main()
{
ReadData();
PrintData();
Printavg();
}

void ReadData(){
//输出用户输入的提示
cout<<"请依次输入10个学生的信息:学号、姓名、三门成绩,用空格隔开"< for(int i=0;i<10;i++)
{
cin>>number[i]>>name[i]>>a1[i]>>a2[i]>>a3[i];
avg[i]=(a1[i]+a2[i]+a3[i])/3;
}
}

void PrintData(){
cout<<"输出的成绩表:学号、姓名、三门成绩、平均分数\n"<for(int i=0;i<10;i++)
cout<}

void Printavg(){
double b[10];
for(int i=0;i<10;i++){
b[i]=avg[i];
}
sort(b,b+10);//从低到高排序

//输出平均分在前三的学生姓名
cout<<"平均分前三名的同学姓名(从高到低排序):"< for(int j=0;j<3;)
{
for(int i=0;i<10;i++){
if(b[9]==avg[i]){
cout< j++;
}
if(b[8]==avg[i]){
cout< j++;
}
if(b[7]==avg[i]){
cout< j++;
}
}
}

for(int i=0;i<10;i++){
sumav+=avg[i];
}
//输出总平均分
cout<<"十个人的总平均分是:"<}