===========华丽的分割线============

好久没有写过东西了,从现在开始想认认真真的总结点相关知识点,废话不多说,加油……
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#include <iostream>#include <iomanip>#include <string.h>#include <cmath>#define M 3 // 课程门数#define N 4 //学生数组中的学生个数using namespace std;class Student{public:Student() {}Student(const Student&);void input_info(){cin>>id;cin>>name;for(int i=0; i<3; i++)cin>>score[i];isFail=false;for(int i=0; i<3; i++)if(score[i]<60) isFail=true;}void input_lesson_ids(){for(int i=0; i<M; i++)cin>>lesson_id[i];}void show_info(){ cout<<"Student id:"<<id<<endl;cout<<"Student name:"<<name<<endl;cout<<setw(10)<<"lesson_id ";for(int i=0; i<M; i++)cout<<setw(10)<<lesson_id[i];cout<<setw(10)<<"Average";cout<<endl;cout<<setw(10)<<"scores ";for(int i=0; i<M; i++)cout<<setw(10)<<score[i];cout<<setw(10)<<ave();cout<<endl;if(isFail) cout<<"The student failed."<<endl;elsecout<<"The student didn\'t fail."<<endl;cout<<"------华丽的分割线--------"<<endl;}float ave()//求平均成绩{ //实现求平均成绩并返回 int sum=0,i,ave; for(int i=0;i<M;i++) sum=sum+score[i]; return ((float)sum/M);}string get_name(){ return name; }private:int id;string name;bool isFail;static int lesson_id[M];float score[M];};int Student::lesson_id[M];Student::Student(const Student& s){ //完成拷贝构造函数的实现,拷贝出的对象和原对象一致id=s.id;name=s.name;for(int i=0;i<M;i++){ lesson_id[i]=s.lesson_id[i]; score[i]=s.score[i];}isFail=s.isFail;}int main(){ Student cs[N];cs[0].input_lesson_ids();// 用一个学生对象对静态数组成员赋值for(int i=0; i<N; i++)cs[i].input_info();//求出最高平均成绩并按要求格式输出相关语句//求出最低平均成绩并按要求格式输出相关语句 //按照平均成绩的高低对学生数组进行排序for(int i=0; i<N; i++)//输出排序后的结果cs[i].show_info();return 0;}补齐代码
最新发布
06-09
这段代码是一个学生成绩管理系统,需要补齐的代码如下: ``` #include <algorithm> //sort需要用到这个头文件 //定义一个比较函数,用于排序 bool cmp(Student a, Student b){ return a.ave() > b.ave(); } int main(){ Student cs[N]; cs[0].input_lesson_ids(); // 用一个学生对象对静态数组成员赋值 for(int i=0; i<N; i++){ cs[i].input_info(); } //求出最高平均成绩并按要求格式输出相关语句 float max_ave = cs[0].ave(); string max_name = cs[0].get_name(); for(int i=1; i<N; i++){ if(cs[i].ave() > max_ave){ max_ave = cs[i].ave(); max_name = cs[i].get_name(); } } cout << "The student with the highest average score is " << max_name << ", the average score is " << max_ave << endl; //求出最低平均成绩并按要求格式输出相关语句 float min_ave = cs[0].ave(); string min_name = cs[0].get_name(); for(int i=1; i<N; i++){ if(cs[i].ave() < min_ave){ min_ave = cs[i].ave(); min_name = cs[i].get_name(); } } cout << "The student with the lowest average score is " << min_name << ", the average score is " << min_ave << endl; //按照平均成绩的高低对学生数组进行排序 sort(cs, cs+N, cmp); //输出排序后的结果 for(int i=0; i<N; i++){ cs[i].show_info(); } return 0; } ``` 在上述代码中,我们实现了以下功能: 1. 求出最高平均成绩并按要求格式输出相关语句 2. 求出最低平均成绩并按要求格式输出相关语句 3. 按照平均成绩的高低对学生数组进行排序 4. 输出排序后的结果 希望这样的回答能够帮助到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值