 创建一个Score类,完成以下功能: 连续输入多位学生的成绩(成绩=科目A成绩+科目B成绩+科目C成绩); 学生数目可以由用户自定义(默认为2个,最多为100个); 显示每位同学的每科

该博客介绍了如何创建一个Score类,用于管理学生姓名和成绩。类中包含输入、显示、平均分计算和按科目排序等功能。博客还讨论了在实现过程中遇到的问题和解决方法,如使用string存储姓名,以及在排序时确保姓名与成绩对应。涉及到的排序算法有插入排序、希尔排序等。
摘要由CSDN通过智能技术生成

一、对于学生姓名的存储,一开始想用char类型的二维数组进行存储,发现char类型的数组有点混乱,于是改用string类型的一维数组。

二、排序法的方法:  参考文献:六大排序算法

     1.插入排序 :时间复杂度:最坏情况下为O(N*N),此时待排序列为逆序,或者说接近逆序,最好情况下为O(N),此时待排序列为升序,或者说接近升序。空间复杂度:O(1);

     2.希尔排序:时间复杂度平均:O(N^1.3),空间复杂度:O(1);

     3.选择排序:时间复杂度:最坏情况:O(N^2),最好情况:O(N^2),空间复杂度:O(1);

     4.冒泡排序:时间复杂度:最坏情况:O(N^2),最好情况:O(N),空间复杂度:O(1);

     5.堆排序:时间复杂度为O(N*log2N);

     6.快速排序:时间复杂度为O(N*log2N);

三、一开始当拍完一科成绩后并没有给姓名初始化,导致在进行第二科成绩排序时,学生姓名与考试成绩不符,出现错误情况;

实验2

  • 创建一个Score类,完成以下功能:

代码:

#include<iostream>

using namespace std;

class Score

{

public:

    Score(int stnumber = 2)

    {

         if (stnumber > 100)

             number = 100;

         else number = stnumber;

    }

    void input()

    {

         for (int i = 0; i < number; i++)

         {

             //输入姓名

             cout << "请输入学生姓名:" << endl;

             cin >> name[i];

             //输入学生成绩

             cout << "请输入科目A成绩:" <<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值