长庚之上 2024-03-14 16:58 采纳率: 50%
浏览 1
已结题

c++类封禁中函数引用错误,求解答

img

img

img

img

img


第一张是student.h,第二张,第三张和第四张是main.cpp,第五张是student.cpp,但是还是报错,那个“.”是英文上的,结果如下

img


求解答

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2024-03-14 16:59
    关注

    长庚之上 下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    根据你提供的代码,从错误信息来看,存在一些问题。

    1. 在student.h文件中,结构体Student的定义需要添加分号,如下所示:
    struct Student {
        std::string name;
        std::string stuNumber;
        float score;
        std::string phoneNumber;
        std::string homeTown;
        std::string address;
    };
    
    1. 在main.cpp文件中,未按照正确的语法格式使用cout语句,需要将双引号内的内容用尖括号括起来,修改如下:
    void showMenu() {
        cout << "**********************" << endl;
        cout << "****** 1. 添加学生信息" << endl;
        cout << "****** 2. 显示学生信息" << endl;
        cout << "****** 3. 删除学生信息" << endl;
        cout << "****** 4. 查找学生信息" << endl;
        cout << "****** 5. 修改学生信息" << endl;
        cout << "****** 6. 清空学生信息" << endl;
        cout << "****** 7. 学生成绩排序" << endl;
        cout << "****** 8. 挂科学生统计" << endl;
        cout << "****** 9. 平均分与总分" << endl;
        cout << "****** 0. 退出管理系统" << endl;
        cout << "**********************" << endl;
    }
    
    1. 在main函数中,创建manageSystem对象后需要调用该对象的成员函数,而不是直接调用manageSystem的静态成员函数,需要修改代码如下:
    int main() {
        manageSystem a;
        manageSystem* p = &a;
        int select;
        bool isRunning = true;
        cout << "欢迎来到学生信息管理系统" << endl;
        while(isRunning) {
            showMenu();
            cin >> select;
            switch (select) {
                case 1:
                    p->stul();
                    cout << "请输入您接下来要进行的操作:" << endl;
                    break;
                case 2:
                    p->stu2();
                    cout << "请输入您接下来要进行的操作:" << endl;
                    break;
                case 3:
                    p->stu3();
                    cout << "请输入您接下来要进行的操作:" << endl;
                    break;
                case 4:
                    p->stu4();
                    cout << "请输入您接下来要进行的操作:" << endl;
                    break;
                case 5:
                    p->stu5();
                    cout << "请输入您接下来要进行的操作:" << endl;
                    break;
                case 6:
                    p->stu6();
                    cout << "请输入您接下来要进行的操作:" << endl;
                    break;
                case 7:
                    p->stu7();
                    cout << "请输入您接下来要进行的操作:" << endl;
                    break;
                case 8:
                    p->stu8();
                    cout << "请输入您接下来要进行的操作:" << endl;
                    break;
                case 9:
                    p->stu9();
                    cout << "请输入您接下来要进行的操作:" << endl;
                    break;
                case 0:
                    isRunning = false;
                    break;
                default:
                    cout << "请输入正确的操作编号" << endl;
                    break;
            }
        }
        return 0;
    }
    

    综上所述,你需要修改代码中的一些语法错误和调用方式错误。希望以上解答对你有所帮助。如果还有其他问题,请随时提问。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月22日
  • 已采纳回答 3月14日
  • 创建了问题 3月14日