标题:用数组不会改。。。
只看楼主
专业课的小白
Rank: 1
等 级:新手上路
威 望:1
帖 子:56
专家分:0
注 册:2019-12-17
结帖率:40%
已结贴  问题点数:10 回复次数:8 
用数组不会改。。。
希望在main函数里运用数组;题目要求:输入学生的信息(学号,姓名,性别),学生数目较多。

#include<iostream>
#include<string>
using namespace std;
class Student
{
private:
    string num;
    string name;
    char sex;
public:
    Student()
    {num="000";
    name="none";
    sex='n';}
    Student(string n,string na,char s)
    {
        num=n;
        name=na;
        sex=s;
    }
    void display()
    {
        cout<<"num:"<<num<<endl;
        cout<<"name"<<name<<endl;
        cout<<"sex"<<sex<<endl;
    }
};
int main()
{
    int i,m;
    string a,b;
    char c;
    cout<<"请输入学生的数量:"<<endl;
    cin>>m;
    for(i=1;i<=m;i++)
    {
    cout<<"请依次输入学生的学号,姓名和性别:"<<endl;
    cin>>a>>b>>c;
    Student t(a,b,c);
    t.display();
    }
    return 0;
}
搜索更多相关主题的帖子: string cout name Student num 
2020-04-14 13:05
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
得分:0 
用指针动态分配Student内存
程序代码:
#include<iostream>
#include<string>
using namespace std;
class Student {
    private:
        string num;
        string name;
        char sex;
    public:
        Student() {
            num="000";
            name="none";
            sex='n';
        }
        Student(string n,string na,char s) {
            num=n;
            name=na;
            sex=s;
        }
        void display() {
            cout<<"num:"<<num<<endl;
            cout<<"name"<<name<<endl;
            cout<<"sex"<<sex<<endl;
        }
};
int main() {
    int i,m;
    string a,b;
    char c;
    cout<<"请输入学生的数量:"<<endl;
    cin>>m;
    Student* test[101];
    for(i=1; i<=m; i++) {
        cout<<"请依次输入学生的学号,姓名和性别:"<<endl;
        cin>>a>>b>>c;
        test[i]=new Student(a,b,c);
        test[i]->display();
    }
    return 0;
}

注意,如果是某个类型的指针变量动态分配空间的话,需要用“->”来调用成员
2020-04-14 13:13
专业课的小白
Rank: 1
等 级:新手上路
威 望:1
帖 子:56
专家分:0
注 册:2019-12-17
得分:0 
回复 2楼 雪影辰风
这个知识,我还没学过。如果我上交这份作业,老师应该以为我很厉害!(其实是你很厉害)
当时,定义了一个数组(Sutdent s[100]),但是有error(不能构造函数)好像是这个提示。
我当时有一段是这么写的
cin>>a>>b>>c;
Student t(a,b,c);
t[i].display();
但是显示了多重定义。(我觉得我的逻辑有问题)
2020-04-14 13:47
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
得分:10 
因为你定义的是一个单独的Student实例t,不是个数组啊
使用类的构造函数是需要在定义地时候就自动初始化了,所以目前我不知道有没有可以不在定义处随时初始化的方法(除了我写的指针)
如果实在不行,可以直接加上一个修改成员变量值的函数
收到的鲜花
2020-04-14 14:10
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
得分:0 
回复 3楼 专业课的小白
不过,指针这块没学,为什么会学类呢?
我个人觉得指针应该是比类简单的
因为之前我手写链表结构需要用到指针
总之先记着吧

类型 *指针变量名;
指针变量名=new 类型 //new是动态申请内存的一个关键字,如果你需要申请的是一个数组的话,直接在类型后加上方括号([])里面填长度【如果是一个类的话,想要调用构造函数,直接在类型后按照原定义方式写】
delete 指针变量名; //delete是与new配套的关键字,用来释放new申请的内存,如果是数组的话,在delete后加一堆方括号,不需要加长度
2020-04-14 14:15
专业课的小白
Rank: 1
等 级:新手上路
威 望:1
帖 子:56
专家分:0
注 册:2019-12-17
得分:0 
回复 5楼 雪影辰风
好,那我记着。指针学了……但是我太会你那个表示的方法。我先记着。
2020-04-14 14:40
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
得分:0 
给你找了篇介绍指针的,我个人觉得挺详细。前边可以跳过,直接看动态分配内存的那个就可以了
https://
2020-04-14 15:13
专业课的小白
Rank: 1
等 级:新手上路
威 望:1
帖 子:56
专家分:0
注 册:2019-12-17
得分:0 
公布答案了。。。
#include<iostream>
#include<string>
using namespace std;
class Student
{
private:
    string num;
    string name;
    char sex;
public:
    Student()
    {num="000";
    name="none";
    sex='n';}
    Student(string n,string na,char s)
    {
        num=n;
        name=na;
        sex=s;
    }
    void moStudent(string n,string na,char s)
    {
        num=n;
        name=na;
        sex=s;
    }
    void display()
    {
        cout<<"num:"<<num<<endl;
        cout<<"name:"<<name<<endl;
        cout<<"sex:"<<sex<<endl;
    }
};
int main()
{
    Student s[100];
    int i,m;
    string a,b;
    char c;
    cout<<"请输入学生的人数:"<<endl;
    cin>>m;
    for(i=1;i<=m;i++)
    {
    cout<<"请依次输入学生的学号,姓名和性别:"<<endl;
    cin>>a>>b>>c;
    s[i].moStudent(a,b,c);
    s[i].display();
    }
    return 0;
}
2020-04-20 14:57
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
得分:0 
回复 8楼 专业课的小白
没想到重写一个函数来重新赋值。。。
2020-04-24 12:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501038-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033811 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved