一个班有 n 个学生,需要把每个学生的资料(姓名和学号)输入计算机保存。可以通过输入某一学生的姓名查找其有关资料,当输入一个姓名后,程序就查找该班中有无此学生,如果有,则输出他的姓名和学号(C++)

发布于:2023-10-25 ⋅ 阅读:(98) ⋅ 点赞:(0)

完整代码:

/*一个班有 n 个学生,需要把每个学生的简单材料(姓名和学号)输入计算机保存。然
后可以通过输入某一学生的姓名查找其有关资料,当输入一个姓名后,程序就查找该班
中有无此学生,如果有,则输出他的姓名和学号,如果查不到,则输出“本班无此人”。*/
#include<iostream>
#include<string>
using namespace std;
//定义数组的大小为10
#define N 10
//学生类
class Student{
    //类中的属性默认私有
    //学生姓名
    string m_name;
    //学生学号
    int m_id;
    public:
    //无参构造函数
    Student(){}
    //有参构造函数
    Student(string name,int id){
        this->m_id=id;
        this->m_name=name;
    }
    //打印出当前对象的信息(学号,姓名)
    void getMessage(){
        cout<<"学号:"<<this->m_id<<endl;
        cout<<"姓名:"<<this->m_name<<endl;
    }
    //获取当前对象的姓名
    string getName(){
        return this->m_name;
    }
};
//学生信息录入
void message(int n,Student *stu){
    //循环录入n个学生的信息
    for (int i = 0; i <n; i++)
    {
        int id;
        string name;
        cout<<"请输入第"<<i+1<<"个学生的姓名"<<endl;
        cin>>name;
        cout<<"请输入第"<<i+1<<"个学生的学号"<<endl;
        cin>>id;
        //录入后,进行有参构造对象并存放在stu数组中
        stu[i]=Student(name,id);
    }
    cout<<"录入完成"<<endl;
}
//查询学生
void search(int n,string name,Student *stu){
    //判断是否查询到学生
    int flag=0;
    for (int i = 0; i <n; i++)
    {
        if (stu[i].getName()==name)
        {
            stu[i].getMessage();
            flag=1;
            //查询成功后,直接跳出循环
            break;
        }
    }
    if (flag==0)
    {
        cout<<"本班无此人"<<endl;
    }
}


int main(){
    int n;
    cout<<"输入学生个数n"<<endl;
    cin>>n;
    Student stu[N];
    message(n,stu);
    string name;
    cout<<"输入某一学生的姓名查找其有关资料"<<endl;
    cin>>name;
    search(n,name,stu);
}

运行截图:


网站公告

今日签到

点亮在社区的每一天
去签到