A改错题--学生信息的输入和输出

A改错题--学生信息的输入和输出

时间: 1ms        内存:128M

描述:

注:本题只需要提交标记为修改部分之间的代码,请按照C++方式提交。

阅读并修改以下程序,实现学生信息的输入和输出。

#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
class Student
{
private:
    const int maxSchoolPeriod;  //学制
    int no;  //学号
    char name[20];  //姓名
public:
/*****修改的起始行******/
    Student(int Period,int no,char name[]):name(name)
    {
        this->maxSchoolPeriod = Period;
        no = no;
    }
/*****修改的终止行*****/
    void output()
    {
        cout<<maxSchoolPeriod<<" "<<no<<" "<<name<<endl;
    }
};
int  main()
{
    int no;
    char name[20];
    cin>>no>>name;
    Student stu1(4,no,name); //本科生4年
    cin>>no>>name;
    Student stu2(3,no,name); //专科生3年
    stu1.output();
    stu2.output();
    return 0;
}

输入:

第一行: 学号 姓名
第二行: 学号 姓名

输出:

第一行: 学制 学号 姓名
第二行: 学制 学号 姓名

示例输入:

101 zhangsan
102 lisi

示例输出:

4 101 zhangsan
3 102 lisi

提示:

参考答案(内存最优[1092]):

#include<stdio.h>
int main()
{
    int a=4,b=3;
    char str1[20],str2[20];
    gets(str1);
    gets(str2);
    printf("%d ",a);
    puts(str1);
    printf("%d ",b);
    puts(str2);
    return 0;
}

参考答案(时间最优[0]):


#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
class Student
{
private:
    const int maxSchoolPeriod;  //
    int no;  //
    char name[20];  //
public:
    Student(int P,int n,char na[]):maxSchoolPeriod(P),no(n)
    {
        strcpy(name,na);

    }
    void output()
    {
        cout<<maxSchoolPeriod<<" "<<no<<" "<<name<<endl;
    }
};
int  main()
{
    int no;
    char name[20];
    cin>>no>>name;
    Student stu1(4,no,name); //本科生4年
    cin>>no>>name;
    Student stu2(3,no,name); //专科生3年
    stu1.output();
    stu2.output();
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注