早教吧作业答案频道 -->其他-->
学生成绩统计系统使用面向对象的方法编写一个程序,实现在如下菜单中,输入数字序号,执行相应功能。基本要求(1)选择课程,输入学生人数,以及本课程所有学生的成绩(2)统计本
题目详情
学生成绩统计系统
使用面向对象的方法编写一个程序,实现在如下菜单中,输入数字序号,执行相应功能。
基本要求
(1) 选择课程,输入学生人数,以及本课程所有学生的成绩
(2) 统计本课程的总成绩,平均成绩,最高成绩,最低成绩。
(3) 将所有学生成绩以及统计的各项结果,以友好的界面形式显示。
(4) 下列菜单所给的课程只作为参考,可以根据自己的实际情况设计课程名称。
学生成绩管理系统
请选择课程:
1. C++程序设计
2. 图形图像处理
3. 英语
4. 计算机导论
5. 高等数学
6. 退出系统
使用面向对象的方法编写一个程序,实现在如下菜单中,输入数字序号,执行相应功能。
基本要求
(1) 选择课程,输入学生人数,以及本课程所有学生的成绩
(2) 统计本课程的总成绩,平均成绩,最高成绩,最低成绩。
(3) 将所有学生成绩以及统计的各项结果,以友好的界面形式显示。
(4) 下列菜单所给的课程只作为参考,可以根据自己的实际情况设计课程名称。
学生成绩管理系统
请选择课程:
1. C++程序设计
2. 图形图像处理
3. 英语
4. 计算机导论
5. 高等数学
6. 退出系统
▼优质解答
答案和解析
//vc6.0下测试通过
//自己添加剩下的课程吧。。。我有点懒。。。
//有什么问题追问我哦 ^_^
#include
using namespace std;
#define MaxSize 50
#define SubjectNum 2
#define MATH 0
#define ENGLISH 1
typedef struct node{
char name[20];
float score[SubjectNum];
struct node * next;
} Node;
class Students{
private:
int num;//学生数
Node student[MaxSize];//学生表
public:
Students(){ num = 0;}
bool Add();
float Average( int);
float Sum( int);
float Min( int);
float Max( int);
void Display();
};
float Students::Average( int _subject){
float sum = 0;
for( int i = 0; i < num; i++){
sum += student[i].score[_subject];
}
return sum / num;
}
float Students::Sum( int _subject){
float sum = 0;
for( int i = 0; i < num; i++){
sum += student[i].score[_subject];
}
return sum;
}
float Students::Max( int _subject){
float max = 0;
for( int i = 0; i < num; i++){
if( student[i].score[_subject] > max)
max = student[i].score[_subject];
}
return max;
}
float Students::Min( int _subject){
float min = 0;
for( int i = 0; i < num; i++){
if( student[i].score[_subject] < min)
min = student[i].score[_subject];
}
return min;
}
bool Students::Add(){
cout << "输入学生数:" ;
cin >> num;
if( num <= MaxSize){
for( int i = 0; i < num; i ++){
cout << "第" << i + 1 << "个学生的数据" << endl;
cout << "姓名:";
cin >> student[i].name;
cout << "数学:";
cin >> student[i].score[0];
cout << "英语:";
cin >> student[i].score[1];
}
cout << "完成" << endl << endl;;
return true;
}else{
cout << "失败" << endl;
return false;
}
}
void Students::Display(){
cout << "-----------------成绩单-------------" << endl << endl;
cout << "姓名\t" << "数学" << "\t英语" << endl;
for( int i = 0; i < num; i++){
cout << student[i].name << "\t" << student[i].score[MATH] << "\t" << student[i].score[ENGLISH] << endl;
}
cout << "平均\t" << Average( MATH) << "\t" << Average( ENGLISH) << endl;
cout << "总分\t" << Sum( MATH) << "\t" << Sum( ENGLISH) << endl;
cout << "最高\t" << Max( MATH) << "\t" << Max( ENGLISH) << endl;
cout << "最低\t" << Min( MATH) << "\t" << Min( ENGLISH) << endl;
cout << "-------------------------------------" << endl << endl;
}
int main(){
Students st;
st.Add();
st.Display();
return 0;
}
//自己添加剩下的课程吧。。。我有点懒。。。
//有什么问题追问我哦 ^_^
#include
using namespace std;
#define MaxSize 50
#define SubjectNum 2
#define MATH 0
#define ENGLISH 1
typedef struct node{
char name[20];
float score[SubjectNum];
struct node * next;
} Node;
class Students{
private:
int num;//学生数
Node student[MaxSize];//学生表
public:
Students(){ num = 0;}
bool Add();
float Average( int);
float Sum( int);
float Min( int);
float Max( int);
void Display();
};
float Students::Average( int _subject){
float sum = 0;
for( int i = 0; i < num; i++){
sum += student[i].score[_subject];
}
return sum / num;
}
float Students::Sum( int _subject){
float sum = 0;
for( int i = 0; i < num; i++){
sum += student[i].score[_subject];
}
return sum;
}
float Students::Max( int _subject){
float max = 0;
for( int i = 0; i < num; i++){
if( student[i].score[_subject] > max)
max = student[i].score[_subject];
}
return max;
}
float Students::Min( int _subject){
float min = 0;
for( int i = 0; i < num; i++){
if( student[i].score[_subject] < min)
min = student[i].score[_subject];
}
return min;
}
bool Students::Add(){
cout << "输入学生数:" ;
cin >> num;
if( num <= MaxSize){
for( int i = 0; i < num; i ++){
cout << "第" << i + 1 << "个学生的数据" << endl;
cout << "姓名:";
cin >> student[i].name;
cout << "数学:";
cin >> student[i].score[0];
cout << "英语:";
cin >> student[i].score[1];
}
cout << "完成" << endl << endl;;
return true;
}else{
cout << "失败" << endl;
return false;
}
}
void Students::Display(){
cout << "-----------------成绩单-------------" << endl << endl;
cout << "姓名\t" << "数学" << "\t英语" << endl;
for( int i = 0; i < num; i++){
cout << student[i].name << "\t" << student[i].score[MATH] << "\t" << student[i].score[ENGLISH] << endl;
}
cout << "平均\t" << Average( MATH) << "\t" << Average( ENGLISH) << endl;
cout << "总分\t" << Sum( MATH) << "\t" << Sum( ENGLISH) << endl;
cout << "最高\t" << Max( MATH) << "\t" << Max( ENGLISH) << endl;
cout << "最低\t" << Min( MATH) << "\t" << Min( ENGLISH) << endl;
cout << "-------------------------------------" << endl << endl;
}
int main(){
Students st;
st.Add();
st.Display();
return 0;
}
看了学生成绩统计系统使用面向对象的...的网友还看了以下:
编写一个函数,求标准的一元二次方程ax2+bx+c=0的根,要求方程的系数都可以以主程序输入来改变 2020-05-14 …
足球运动员射门时,直接参与此过程的系统主要有A.所有系统均参与B.运动系统和神经系统C.运动系统、 2020-05-16 …
MATLAB求解线性方程组现有方程z=a*x^2+2*b*x*y+c*y^2+d*x+e*y.利用 2020-05-16 …
线性代数的概念理论问题,急!一向量组1可以由向量组2线性表出,如果向量组1是齐次线性方程的系数项, 2020-05-16 …
以下不属于ERP系统特点的是(3)。A.是统一的集成系统B.是开放的系统C.是面向业务流程的系统D. 2020-05-26 …
实系数一元二次方程的系数概念ax^2+bx+c=0请问abc都要是实数嘛?特别是c,也一定要是实数 2020-06-06 …
确定高层建筑热水采暖系统与集中热网相连的系统形式时,要求( )。 A.系统最高点不倒空,不汽化 2020-06-07 …
在平面直角坐标系中,借助直角三角板可以找到一元二次方程的实数根.比如对于方程x2-5x+2=0,操 2020-06-11 …
求VB高手。刚学,不要写的太复杂。1.通过InputBox函数输入一元二次方程的系数a、b、c,且 2020-06-23 …
两个一元二次方程有公共根的必要条件左边是什么的平方 ,右边是两个2项式相乘 ,都是两个方程的系数式 2020-06-27 …