C++chapter数组学生成绩处理

IDE:coeblocks

日期:2019/12/3

功能:

(1)找出总分最高的学生及各项成绩
(2)找出不及格的学生及各项成绩
(3)按总分升序并排序并输出

#include <iostream>
#include <cmath>
using namespace std;

void show_id(int a[][4],int row);
void show_max(int a[][4],int row);
void show_fail(int a[][4],int row);
void show_sum(int a[][4],int row);
void bubblesort(int arr[],int row);

int main(void)
{
    int a[8][4]={ {2001,35,34},{2002,40,35},{2003,47,37},{2004,51,38},{2005,32,24},{2006,26,19},
    {2007,38,36},{2008,42,35} },i;
    for(i=0;i<8;i++)
        a[i][3]=a[i][1]+a[i][2];
    show_id(a,8);
    show_max(a,8);
    show_fail(a,8);
    show_sum(a,8);
    return 0;
}

void show_id(int a[][4],int row)
{
    cout<<left<<"按学号升序列表:"<<endl;
    cout<<"学号"<<'\t'<<"笔试"<<'\t'<<"机试"<<'\t'<<"总分"<<endl;
    int arr[row],i,j;
    for(i=0;i<row;i++)
    {
        arr[i]=a[i][0];
    }
    bubblesort(arr,row);
    for(i=0;i<row;i++)
    {
        for(j=0;j<row;j++)
        {
            if(a[j][0]==arr[i])
            {
                cout<<a[j][0]<<'\t'<<a[j][1]<<'\t'<<a[j][2]<<'\t'<<a[j][3]<<endl;
                break;
            }
        }
    }
}

void show_max(int a[][4],int row)
{
    cout<<left<<"最高分学生情况:"<<endl;
    cout<<"学号"<<'\t'<<"笔试"<<'\t'<<"机试"<<'\t'<<"总分"<<endl;
    int arr[row],i,j;
    for(i=0;i<row;i++)
    {
        arr[i]=a[i][3];
    }
    bubblesort(arr,row);
    for(j=0;j<row;j++)
    {
        if(a[j][3]==arr[row-1])
        {
            cout<<a[j][0]<<'\t'<<a[j][1]<<'\t'<<a[j][2]<<'\t'<<a[j][3]<<endl;
            break;
        }
    }
}

void show_fail(int a[][4],int row)
{
    cout<<left<<"不及格学生情况:"<<endl;
    cout<<"学号"<<'\t'<<"笔试"<<'\t'<<"机试"<<'\t'<<"总分"<<endl;
    int arr[row],i,j;
    for(i=0;i<row;i++)
    {
        if(a[i][3]<60)
        {
            for(j=0;j<row;j++)
            {
                if(a[j][3]==a[i][3])
                {
                    cout<<a[j][0]<<'\t'<<a[j][1]<<'\t'<<a[j][2]<<'\t'<<a[j][3]<<endl;
                    break;
                }
            }
        }
    }
}

void show_sum(int a[][4],int row)
{
    cout<<left<<"按总分升序列表:"<<endl;
    cout<<"学号"<<'\t'<<"笔试"<<'\t'<<"机试"<<'\t'<<"总分"<<endl;
    int arr[row],i,j;
    for(i=0;i<row;i++)
    {
        arr[i]=a[i][3];
    }
    bubblesort(arr,row);
    for(i=0;i<row;i++)
    {
        for(j=0;j<row;j++)
        {
            if(a[j][3]==arr[i])
            {
                cout<<a[j][0]<<'\t'<<a[j][1]<<'\t'<<a[j][2]<<'\t'<<a[j][3]<<endl;
                break;
            }
        }
    }
}

void bubblesort(int arr[],int row)
{
    for(int i=0;i<row-1;i++)
    {
        for(int j=0;j<row-i-1;j++)
        {
            if(arr[j]>arr[j+1])
            {
                int t = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = t;
            }
        }
    }
}

发布了57 篇原创文章 · 获赞 2 · 访问量 1864

猜你喜欢

转载自blog.csdn.net/weixin_43476969/article/details/103361815