代码什么的要哭了 2022-04-22 16:38 采纳率: 67.9%
浏览 40
已结题

创建数组对象,运行不出来,显示[Error] ld returned 1 exit status

源代码如下,麻烦各位uu们帮忙看一下对象数组部分问题在哪里,功能是实现多门课程成绩管理,太感谢了
结果报错:

img


/*******************************************************************
*                名    称:学生成绩管理系统1.1                         *             
*                创建日期:2022-4-3                                 *
*                最后修改:2022-4-3                                *
*                版    权:中国农业大学信息与电气工程学院           *
*                版 本 号:1.0                                      *
*******************************************************************/


#include <iostream>
#include <cstring>
using namespace std;

#define N 20   //数组的长度

/*******************************************************       
功能:显示菜单
参数:无                  
返回值:无
*******************************************************/
void displayMenu()
{
    
    cout<<"++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
    cout<<"+                 学生成绩管理系统                 +\n";
    cout<<"+                                                  +\n";
    cout<<"+                    1. 录入                       +\n";
    cout<<"+                    2. 输出                       +\n";
    cout<<"+                    3. 查询                       +\n";
    cout<<"+                    4. 排序                       +\n";
    cout<<"+                    5. 结束                       +\n";
    cout<<"+                                                  +\n";
    cout<<"++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
    
}

/*******************************************************       
功能:登陆函数,验证口令
参数:
类型:char []
说明:用户输入口令                      
返回值:1或0
类型:int
说明:1表示通过验证;0表示没有通过
*******************************************************/
int login()
{
    char password[8];/*用户输入的口令*/
    static char key[8]="1234";
    int count = 0;
    int s=0;
    
    /*====验证用户的口令,如果三次输入均错误,则不允许进入系统====*/
    do
    {
        count++;
        cout<<"请输入口令:";
        gets(password);        
        if(strcmp(password,key)==0)
            s = 1;
        else
            s = 0;
    }while(s==0 && count<3); 
    
    return s;
}
class Score
{
    int *score;  //学生成绩数组 
    int length;  //数组最大长度 
    int alength; //数组实际长度 
public:
    Score();
    Score(int *st, int smax);
    ~Score();
    void inputScore();
    void outputScore();
    int queryScore(int xS);
    void sortScore();
};

//构造函数:传递参数 
Score::Score(int *st, int smax)
{
    score = new int[smax];
    score = st;
    length = smax;
 } 

//析构函数
Score::~Score(){}

//输入学生成绩 
void Score::inputScore()
{
    int i = 0;
    int tmp;
    cout << "请输入学生成绩(以-1结束输入):\n";
    do{
        cout << "第" << i+1 << "个学生:";
        cin >> tmp;
        if(tmp>=0 && tmp <=100)
        {
            score[i] = tmp;
            i++;
        }
    } while(tmp!=-1 && i<length);
    
    alength = i;
}

//输出学生成绩 
void Score::outputScore()
{
    int i=0;
    
    cout<<"学生成绩如下:\n";
    for(i = 0; i < alength; i++)
        cout << i+1 << "\t" << score[i] << endl;
    cout<<"\n";
}

//查询学生成绩 
int Score::queryScore(int xS)
{
    int i;
    
    for(i = 0; i < length; i++)
    {
        if(xS == score[i])
        {
           return i;
        }
    }
    
        return -1;
}

//学生成绩排序 
void Score::sortScore()
{
    int i, j, t;    
    cout<<"成绩排序如下:\n";
    for(i = 0; i < alength - 1; i++)
    {
        for(j = 0; j < alength - i - 1; j++)
            if(score[j] > score[ j + 1 ])
            {
                t = score[j];
                score[j] = score[ j + 1 ];
                score[ j + 1 ] = t;
            }
    }
}

        /*******************************************************       
        功能:主函数
        参数:无                  
        返回值:无
        *******************************************************/
int main()
{
    int choice = 0; /*代表用户选择的操作数字 */
    int s=0,datalen=0,x,find;
    int as[N];
    Score testS(as,N);
    
    Score *p = new Score[3];
    p[0].inputScore();
    p[1].inputScore();
    p[2].inputScore();
    
     /*====验证用户的口令====*/
    if (login( ) == 0) 
    {
        cout<<"口令错误,不允许进入本系统!\n";
        exit( 0 );
    }
    
    /*====根据用户的选择,执行相应的操作.====*/
    while(1)
    {
        
        displayMenu();
        
        cout<<"\n 请选择您的操作(1,2,3,4,5):\n";
        cin>>choice;

        switch(choice)
        {
        case 1:
            testS.inputScore();
            break;
        case 2:
            testS.outputScore();
            break;
        case 3: 
            cout<<"\n 请输入要查找的成绩:";
            cin>>x;
            find=testS.queryScore(x);
            if(find>=0)
                cout<<"要查成绩在数组中的下标为:"<<find+1<<endl;
            else 
                cout<<"没有要查找的成绩。\n";
            break;
        case 4:
            testS.sortScore();
            testS.outputScore();
            break;
        case 5:
            exit(0);
            break;
            
        }
    }    
    cout << "Deleting..." << endl;
    delete[] p;
    return 0;    
}


  • 写回答

1条回答 默认 最新

  • kinghero123456 2022-04-22 17:38
    关注

    添加默认构造函数!!!

    
    Score::Score()
    {
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!