学生成绩管理
·难度系数:1.08
设计一个Student(学生)类,并使Student类具有以下特点:
(1)该类具有学生姓名、学号、程序设计、信号处理、数据结构三门课程的成绩。
(2)学生全部信息由键盘输入,以提高程序的适应性。
(3)通过成员函数统计学生平均成绩,当课程数量增加时,成员函数无需修改仍可求取平均成绩。
(4)输出学生各科成绩与平均成绩。
(5)学生对象的定义采用对象数组实现。
(6)统计不及格人数。
(7)表格输出整齐美观。
(8)以最方便的方式实现对课程数量和学生数量的修改。
#include<iostream>
using namespace std;
const int COURSE_NUM = 3;//课程数量 课程数量发生变化可直接修改此处
const int STUDENT_NUM = 2;//学生数量 学生数量发生变化可直接修改此处
class student //类名:学生
{
public:
void input();//输入函数
void output();//输出函数
void output1();//输出平均数函数
private:
char name[20];//姓名
char number[20];//学号
char coursename[COURSE_NUM][20];//课程名称
float marks[COURSE_NUM];//分数
};
void student::input()
{
int i;
cout << "请输入姓名:";
cin >> name;
cout << "请输入学号:";
cin >> number;
for (i = 0; i < COURSE_NUM; i++)
{
cout << "请输入第 " << i + 1 << " 门课程名:";
cin >> coursename[i];
cout << "请输入 " <<coursename[i] << " 成绩:";
cin >> marks[i];
}
}
void student::output()
{
int i;
float ave = 0;
cout << "-----------------------------------------" << endl;
cout << "姓名:" << name <<"\t"<< "学号:" << number << "\t"<<endl;
for (i = 0; i < COURSE_NUM; i++)
{
cout << "-----------------------------------------" << endl;
cout <<"\t"<< coursename[i] << ":" << marks[i] <<"\t"<< endl;
ave += marks[i];
}
ave /= COURSE_NUM;//课程数量改变此处不必修改
cout << "-----------------------------------------" << endl;
cout <<"\t"<< "平均成绩:" << ave <<"\t"<< endl;
}
void student::output1()
{
int i ,n,j=0,k=0;
for (i = 0; i < STUDENT_NUM; i++)
{
for(n = 0; n< COURSE_NUM; n++)
{
if(marks[n]<60)
j=1;
}
if(j==1)
k=k+1;
}
cout << "-----------------------------------------" << endl;
cout << "不及格人数为:" << k <<"\t"<< endl;
cout << "-----------------------------------------" << endl;
}
int main()
{
student stu[STUDENT_NUM];
int i;
for (i = 0; i < STUDENT_NUM; i++)
{
stu[i].input();
}
for (i = 0; i < STUDENT_NUM; i++)
{
stu[i].output();
}
stu[i].output1();
return 0;
}
我的程序每个学生都要输入课程名称,太繁琐了,尝试过加一个成员函数,但运行失败。
还有我的统计不及格人数的函数也有问题,
来个大佬指导一下
求求