编写一个c++程序:有一个班级30个学生5门课,编写函数实现下列功能:1.函数average()求第一门课的平均分。2.函数findfail()找出有2门以上(含2门))课程不及格的学生,输出其学号和全部课程成绩及平均成绩。3.函数findgood()找出平均成绩在90分以上或全部成绩在85分以上的学生.最后在主函数输入数据并输出结果(注意不能出现这样的错误:无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用)
时间: 2024-02-24 07:58:31 浏览: 86
有一个一维数组内放个学生成绩求平均成绩。-c++面向对象程序设计
以下是符合要求的C++程序代码:
```c++
#include<iostream>
#include<cstdlib>
using namespace std;
const int N = 30, M = 5;
struct student{
int id;
int score[M];
double avg;
};
student stu[N];
void average(){
double sum = 0;
for(int i = 0; i < N; i++){
sum += stu[i].score[0];
}
double avg = sum / N;
cout << "第一门课的平均分为:" << avg << endl;
}
void findfail(){
for(int i = 0; i < N; i++){
int cnt = 0;
for(int j = 0; j < M; j++){
if(stu[i].score[j] < 60){
cnt++;
}
}
if(cnt >= 2){
cout << "学生" << stu[i].id << "的全部成绩如下:" << endl;
for(int k = 0; k < M; k++){
cout << stu[i].score[k] << " ";
}
double avg = stu[i].avg;
cout << "平均成绩为:" << avg << endl;
}
}
}
void findgood(){
for(int i = 0; i < N; i++){
double avg = stu[i].avg;
bool flag = true;
for(int j = 0; j < M; j++){
if(stu[i].score[j] < 85){
flag = false;
break;
}
}
if(avg >= 90 || flag){
cout << "学生" << stu[i].id << "的全部成绩如下:" << endl;
for(int k = 0; k < M; k++){
cout << stu[i].score[k] << " ";
}
cout << "平均成绩为:" << avg << endl;
}
}
}
int main(){
for(int i = 0; i < N; i++){
stu[i].id = i + 1;
double sum = 0;
for(int j = 0; j < M; j++){
stu[i].score[j] = rand() % 101;//生成0-100之间的随机数
sum += stu[i].score[j];
}
stu[i].avg = sum / M;
}
average();
findfail();
findgood();
return 0;
}
```
在本程序中,首先定义了一个结构体类型`student`,其中包含学生的ID、5门课程的成绩以及平均成绩。然后,分别定义了三个函数`average()`、`findfail()`和`findgood()`,用于实现题目要求的三个功能。函数`average()`计算了第一门课程的平均成绩;函数`findfail()`输出了有两门及以上不及格的学生的全部成绩及平均成绩;函数`findgood()`输出了平均成绩在90分以上或全部成绩在85分以上的学生的全部成绩及平均成绩。最后在主函数中生成了30个学生的5门课程成绩,并输出了结果。
阅读全文