题解:成绩记录(C++描述)

2020-01-25  本文已影响0人  咸鱼爱学习

题目相关

题目描述

现有有N个学生的数据记录,每个记录包括学号、姓名、三科成绩。 编写一个函数input,用来输入一个学生的数据记录。 编写一个函数print,打印一个学生的数据记录。 在主函数调用这两个函数,读取N条记录输入,再按要求输出。 N<100

输入

学生数量N占一行 每个学生的学号、姓名、三科成绩占一行,空格分开。

输出

每个学生的学号、姓名、三科成绩占一行,逗号分开。

解题

分析

​ 读完题目之后,结合输入、输出要求,可显而易见地发现这是考察自定义函数以及结构体的一道题。

​ 根据学生的相关信息,可定义对应的结构体类型

typedef struct node{
    char stuNumber[15];
    char stuName[15];
    int ch;
    int ma;
    int en;
}node;

​ 可先将主题框架构造好,先假设已存在input和output函数直接进行使用,再去思考具体的实现。在假设函数时可以考虑一下它的参数,从这个函数会对什么样的数据进行处理出发进行思考,会更容易些。本题输入、输出和学生相关信息与学生人数有关,所以参数暂定为人数与学生信息。

int main()
{
    int n;
    node tmp;
    cin>>n;

    input(n,stu);// 输入数据
    print(n,stu);//输出数据

    return 0;
}

​ 完成整体后,再去实现具体函数细节。

void input(int n,node stu[])
{
    for(int i=1;i<=n;i++)
    {
        cin>>stu[i].stuNumber>>stu[i].stuName;
        cin>>stu[i].ch>>stu[i].ma>>stu[i].en;
    }
}

void print(int n,node stu[])
{
    for(int i=1;i<=n;i++)
    {
        cout<<stu[i].stuNumber<<","<<stu[i].stuName<<","<<stu[i].ch<<","<<stu[i].ma<<","<<stu[i].en<<endl;
    }
}

完整实现

#include <iostream>
using namespace std;
typedef struct node{
    char stuNumber[15];
    char stuName[15];
    int ch;
    int ma;
    int en;
}node;

node stu[105]={0};

void input(int n,node stu[])
{
    for(int i=1;i<=n;i++)
    {
        cin>>stu[i].stuNumber>>stu[i].stuName;
        cin>>stu[i].ch>>stu[i].ma>>stu[i].en;
    }
}

void print(int n,node stu[])
{
    for(int i=1;i<=n;i++)
    {
        cout<<stu[i].stuNumber<<","<<stu[i].stuName<<","<<stu[i].ch<<","<<stu[i].ma<<","<<stu[i].en<<endl;
    }
}

int main()
{
    int n;
    node tmp;
    cin>>n;

    input(n,stu);
    print(n,stu);

    return 0;
}

​ 题目不是很难,主要考察对基础知识点的掌握。
公众号:咸鱼爱学习

本文由博客一文多发平台 OpenWrite 发布!

上一篇下一篇

猜你喜欢

热点阅读