早教吧作业答案频道 -->其他-->
学生成绩统计系统使用面向对象的方法编写一个程序,实现在如下菜单中,输入数字序号,执行相应功能。基本要求(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;
}
看了学生成绩统计系统使用面向对象的...的网友还看了以下:
求教高手:数据库管理系统(Access)程序设计(1)如果一个数字的平方的低位与该数字相同,那么这 2020-05-17 …
以下有关数码相机的叙述中,错误的是A.数码相机的成像方式和成像过程与传统相机不同B.数码相机在 2020-05-23 …
数据字典是定义()系统描述工具中的数据工具。A.数据流程图B.系统流程图C.程序流程图D.软件结构图 2020-05-23 …
数据独立性是指()。A.数据库管理系统与数据库的相互独立B.用户应用程序与数据库的数据相互独立C. 2020-05-24 …
作业调度,其主要功能是根据一定的算法,从输人的一批作业中选出若干个作业,分配必要的资源,如内存、外设 2020-05-31 …
《无机材料物理化学》课程设计MgO-Al2O3-SiO2系统相图在镁质陶瓷中的应用--烧成范围的研 2020-06-25 …
《九章算术》是中国传统数学最重要的著作,奠定了中国传统数学的基本框架.他的代数成就主要包括开方数、 2020-07-06 …
用fortran77编程.1.分别将100到200之间的全部偶数分解成为两个质数之和.2.打印出由 2020-07-24 …
现在,我们大多数人都使用数码相机而很少使用传统的胶卷相机[标签:数码相机,传统胶卷,相机]两种相机在 2020-11-25 …
数码相机与传统相机的区别在于:所有数码相机都内置有计算机,并且都以电子形式记录图像,而传统相机完全依 2021-01-10 …