m0_69827971 2022-09-29 08:54 采纳率: 60%
浏览 110
已结题

求各位大神带一带 真的不是很会

定义Student学生类,其中包括3个成员变量(char[40] 姓名,char[20] 学号,float 分数),两个构造方法(一个默认无参的构造方法,一个为带三个参数姓名学号分数的构造方法用于给成员变量赋值)和ShowInfo()方法。
ShowInfo方法用于显示每个学生类对象的成员变量信息。
主函数中实例化对象:刘明,张亮,调用ShowInfo显示他们信息。
显示的格式为:姓名:XXX,学号:XXXX,分数:XX 分数保留一位小数。
(提示:按类文件+实现文件+主文件格式书写代码)

  • 写回答

2条回答 默认 最新

  • qfl_sdu 2022-09-29 09:05
    关注

    题目给你说的比较清楚了,

    img

    代码如下:
    Student.h (类文件)

    #pragma once
    
    #include <iostream>
    #include <cstring>
    #include <iomanip>
    using namespace std;
    class Student
    {
    private:
        char name[40];//姓名
        char id[20];  //学号
        float score;  //分数
    public:
        //无参构造函数
        Student();
        
        //3参数构造函数
        Student(const char _name[], const char _id[], float s);
        
        void ShowInfo();
        
    };
    
    

    Student.cpp(实现文件)

    #include "Student.h"
    
    Student::Student()
    {
        name[0] = 0;
        id[0] = 0;
        score = 0;
    }
    //3参数构造函数
    Student::Student(const char _name[], const char _id[], float s)
    {
        strcpy_s(name, 40,_name);
        strcpy_s(id,20, _id);
        score = s;
    }
    void Student::ShowInfo()
    {
        cout << "姓名:" << name << ",学号:" << id << ",分数:";
        cout << fixed << setprecision(1) << score << endl; //保留1位小数
    }
    
    

    main.cpp(主文件)

    #include "Student.h"
    using namespace std;
    
    
    int main()
    {
        Student lm("刘明", "100001", 89.5);
        Student zl("张亮", "100002", 88);
        lm.ShowInfo();
        zl.ShowInfo();
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
  • 快乐鹦鹉 2022-09-29 09:05
    关注

    哪部分不会啊?参考一下:

    #include <iostream>
    using namespace std;
    #include<iomanip>
    #include <string.h>
    class Student
    {
    private:
        char name[40];
        char id[20];
        float score;
    public:
        Student() {}
        Student(char n[40],char d[20],float s)
        {
            strcpy_s(name,40,n);
            strcpy_s(id,20,d);
            score = s;
        }
        void ShowInfo()
        {
            cout<<"姓名:"<<name<<endl;
            cout<<"学号:"<<id<<endl;
            cout<<"成绩:"<<setiosflags(ios::fixed)<<setprecision(1)<<score<<endl;
        }
    };
    
    int main()
    {
        Student s1("刘明","11223344",98);
        Student s2("张亮","11223355",85);
        s1.ShowInfo();
        s2.ShowInfo();
        return 0;
    }
    
    
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月29日
  • 已采纳回答 9月29日
  • 赞助了问题酬金15元 9月29日
  • 创建了问题 9月29日

悬赏问题

  • ¥30 计算机网络子网划分路由模拟操作
  • ¥15 MATLAB的画图问题
  • ¥15 c语言用fopen_s成功打开文件之后闪退
  • ¥20 用C++完成,并且运用数组
  • ¥30 求解电力系统潮流计算结果不收敛问题
  • ¥15 某易易盾点选data解析逆向
  • ¥15 系统崩溃,关于订单的处理
  • ¥15 datax-web连接hive为数据源时发生报错,如何解决?
  • ¥15 plink在进行gwas分析时总读取不到表型
  • ¥20 数据结构与c语言的实践内容