“有错误”;架构x86“U 64”的未定义符号&&引用;ld:未找到架构x86“U 64”的符号; 我是新手,我第一个C++课程。我有一个作业,试图写一个C++代码,用于创建一个学生操作链表“插入、更新、删除、显示、写入”。我认为我已经完成了代码的编写,因为当我完成时,我没有任何错误。然而,当我尝试运行时,“构建失败”,并在服务器上看到错误。这是我第一次看到这种类型的错误。如果有人帮我弄清楚为什么会发生这种情况,以及如何解决它,我会非常高兴。多谢各位

“有错误”;架构x86“U 64”的未定义符号&&引用;ld:未找到架构x86“U 64”的符号; 我是新手,我第一个C++课程。我有一个作业,试图写一个C++代码,用于创建一个学生操作链表“插入、更新、删除、显示、写入”。我认为我已经完成了代码的编写,因为当我完成时,我没有任何错误。然而,当我尝试运行时,“构建失败”,并在服务器上看到错误。这是我第一次看到这种类型的错误。如果有人帮我弄清楚为什么会发生这种情况,以及如何解决它,我会非常高兴。多谢各位,c++,linked-list,C++,Linked List,我的代码如下 #include <stdio.h> #include <stdlib.h> #include <string.h> #define TRUE 1 #define FALSE 0 struct person { int id; char name [20]; float grade; struct person *next ; }Student; typedef struct person *Studen

我的代码如下

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define TRUE 1
#define FALSE 0

struct person {

    int id;
    char name [20];
    float grade;
    struct person *next ;

}Student;

typedef struct person *StudentPtr;

StudentPtr slist = NULL;

int ItemFound = FALSE;
int ItemExists = FALSE;


void GetStudent (StudentPtr *TemPtr)
{
    *TemPtr = (StudentPtr)malloc(sizeof(person));
}


void FindStudent (StudentPtr *PredPtr, StudentPtr *LocPtr, int id)
{
    *PredPtr = NULL;
    *LocPtr = slist;
    ItemFound = FALSE;
    ItemExists = FALSE;

    while(ItemFound == FALSE && (*LocPtr!=NULL))
    {
        if((*LocPtr)->id < id)
        {
            *PredPtr = *LocPtr;
            *LocPtr = ((*LocPtr)->next);
        }
        else
        {
            ItemFound = TRUE;

            if(((*PredPtr)->next)->id == id)

                ItemExists = TRUE;

        }
    }
}

void AddStudent(int id, char name)
{
    StudentPtr Something, PredPtr, TemPtr;

    FindStudent(&PredPtr, &Something, id);

    GetStudent(&TemPtr);

    TemPtr->id = id;
    TemPtr->grade = 0.0;
    strcat(TemPtr->name, &name);

    if(ItemExists == TRUE)
        printf("Student is already in the list.");
    else
    {
        if(PredPtr == NULL)
    {
        TemPtr->next = slist;
        slist = TemPtr;
        printf("[%d, %s] Adding operation is SUCCESSFUL to the linked list. Student order: ", id, &name);

    }
    else
        TemPtr->next = PredPtr->next;
        PredPtr->next = TemPtr;
        printf("[%d, %s] Adding operation is SUCCESSFUL to the linked list. Student order: ", id, &name);

    }

}

void UpdateStudent(int id, float grade)
{
    StudentPtr Something, PredPtr;

    FindStudent(&PredPtr, &Something, id);

    if(ItemExists == FALSE)
        printf("[%f] Student does not found! Grade is not changed.]", grade);
    else
        (PredPtr->next)->grade = grade;
}

void DeleteStudent(int id)
{
    StudentPtr LocPtr, PredPtr;

    FindStudent(&PredPtr, &LocPtr, id);

    if(ItemExists == FALSE)
        printf("[%d] Student does not found! Delete operation is not completed.", id);
    else
    {   if(PredPtr == NULL)
        {   slist = LocPtr->next;
            free(LocPtr);
            printf("[%d] Delete operation is SUCCESSFUL.", id);
        }
        else
        {
            PredPtr->next = LocPtr->next;
            free(LocPtr);
            printf("[%d] Delete operation is SUCCESSFUL.", id);
        }
    }
}

int main()
{
    int ENDED=FALSE;

    while(ENDED==FALSE)
    {
        printf("Welcome to Student Registration Program!\n\n");
        printf("[1] Insert, [2] Change, [3] Remove, [4] Show, [5] Write, [9] to exit\n\n");
        int selection;
        scanf("%d", &selection);
        printf("\nSelect: %d\n\n", selection);

        if(selection==1 || selection==2 || selection==3 || selection==4 || selection==5 || selection==9)
        {
            int id;

            switch(selection)
            {
                case 1:
                {   char name[40];
                    char surname[40];

                    printf("\nPlease input id, name, surname: ");

                    scanf("%d %s %s", &id, name, surname);

                    strcat(name, " ");
                    strcat(name, surname);

                    void AddStudent(int, char[40]);

                    AddStudent(id, name);

                    break;
                }

                case 2:
                {   float grade;
                    printf("\nPlease input id, grade: ");
                    scanf("%d %f", &id, &grade);

                    UpdateStudent(id, grade);

                    break;
                }

                case 3:
                {   printf("\nPlease input id: ");
                    scanf("%d", &id);

                    DeleteStudent(id);

                    break;
                }

                case 4:
                {   StudentPtr LocPtr = slist;

                    printf("\n        Id             Name   Grade");
                    printf("\n----------   --------------   -----");

                    while(LocPtr != NULL)
                    {
                        printf("\n%10d %16s %7.2f", LocPtr->id, LocPtr->name, LocPtr->grade);
                        LocPtr = LocPtr->next;
                    }

                    printf("\nPlease press a button to continue...");
                    char button;
                    scanf("%c", &button);

                    break;
                }

                case 5:
                {   FILE *fout = fopen("Students.txt","w");
                    StudentPtr temp;
                    temp = slist;

                    fprintf(fout, "\n        Id             Name   Grade");
                    fprintf(fout, "\n----------   --------------   -----");

                    while(temp != NULL)
                    {
                        printf("\n%10d %16s %7.2f", temp->id, temp->name, temp->grade);
                        temp = temp->next;
                    }fclose(fout);

                    printf("\nAll records have been written to the file.");
                    printf("\nPlease press a button to continue...");
                }
                case 9:
                {    printf("Thanks for using this program. See you later.");
                    ENDED = TRUE;
                }
            }
        }
        else
            printf("Please enter a valid selection.");


    }
}
#包括
#包括
#包括
#定义真1
#定义FALSE 0
结构人{
int-id;
字符名[20];
浮子等级;
结构人*next;
}学生;
typedef结构人*StudentPtr;
StudentPtr slist=NULL;
int ItemFound=FALSE;
int ItemExists=FALSE;
无效GetStudent(StudentPtr*诱惑者)
{
*诱惑=(学生PTR)马洛克(人数);
}
无效查找学生(StudentPtr*PredPtr,StudentPtr*LocPtr,内部id)
{
*PredPtr=NULL;
*LocPtr=滑动;
ItemFound=FALSE;
ItemExists=FALSE;
while(ItemFound==FALSE&&(*LocPtr!=NULL))
{
如果((*LocPtr)->id下一步);
}
其他的
{
ItemFound=TRUE;
如果(((*PredPtr)->next)->id==id)
ItemExists=TRUE;
}
}
}
void AddStudent(int-id,char-name)
{
学生喜欢什么,喜欢什么,喜欢什么;
查找学生(&PredPtr,&Something,id);
GetStudent(诱惑者和诱惑者);
诱惑者->id=id;
诱惑者->等级=0.0;
strcat(诱惑者->名称和名称);
如果(ItemExists==TRUE)
printf(“学生已在列表中”);
其他的
{
如果(PredPtr==NULL)
{
诱惑者->下一步=slist;
slist=诱惑者;
printf(“[%d,%s]向链表添加操作成功。学生顺序:”,id,&name);
}
其他的
诱惑者->下一步=PredPtr->下一步;
PredPtr->next=诱惑者;
printf(“[%d,%s]向链表添加操作成功。学生顺序:”,id,&name);
}
}
void UpdateStudent(内部id,浮动等级)
{
学生什么的,PredPtr;
查找学生(&PredPtr,&Something,id);
如果(ItemExists==FALSE)
printf(“[%f]学生未找到!成绩未更改。]”,成绩);
其他的
(PredPtr->next)->等级=等级;
}
无效删除学生(内部id)
{
学生PTR LocPtr、PredPtr;
查找学生(&PredPtr,&LocPtr,id);
如果(ItemExists==FALSE)
printf(“[%d]学生未找到!删除操作未完成。”,id);
其他的
{if(PredPtr==NULL)
{slist=LocPtr->next;
免费(LocPtr);
printf(“[%d]删除操作成功。”,id);
}
其他的
{
PredPtr->next=LocPtr->next;
免费(LocPtr);
printf(“[%d]删除操作成功。”,id);
}
}
}
int main()
{
int=FALSE;
while(end==FALSE)
{
printf(“欢迎参加学生注册计划!\n\n”);
printf(“[1]插入,[2]更改,[3]删除,[4]显示,[5]写入,[9]退出\n\n”);
int选择;
scanf(“%d”,选择(&S);
printf(“\n选择:%d\n\n”,选择);
如果(选择==1 | |选择==2 | |选择==3 | |选择==4 | |选择==5 | |选择==9)
{
int-id;
开关(选择)
{
案例1:
{字符名称[40];
查氏[40];
printf(“\n请输入id、姓名:”);
scanf(“%d%s%s”、&id、姓名、姓氏);
strcat(名称“”);
strcat(姓名、姓氏);
void AddStudent(int,char[40]);
AddStudent(id、姓名);
打破
}
案例2:
{浮动等级;
printf(“\n请输入id,等级:”);
scanf(“%d%f”,&id,&grade);
更新学生(id、年级);
打破
}
案例3:
{printf(“\n请输入id:”);
scanf(“%d”和&id);
学生证;
打破
}
案例4:
{StudentPtr LocPtr=slist;
printf(“\n Id名称等级”);
printf(“\n---------”;
while(LocPtr!=NULL)
{
printf(“\n%10d%16s%7.2f”,LocPtr->id,LocPtr->name,LocPtr->grade);
LocPtr=LocPtr->next;
}
printf(“\n请按一个按钮继续…”);
字符按钮;
scanf(“%c”按钮和(&B);
打破
}
案例5:
{FILE*fout=fopen(“Students.txt”,“w”);
学生临时工;
温度=滑动列表;
fprintf(fout,“\n Id名称等级”);
fprintf(fout,“\n--------------------------”;
while(temp!=NULL)
{
printf(“\n%10d%16s%7.2f”,temp->id,temp->name,temp->grade);
温度=温度->下一步;
}fclose(fout);
printf(“\n所有记录都已写入文件。”);
printf(“\n请按一个按钮继续…”);
}
案例9:
{printf(“感谢您使用此程序。再见。”);
结束=真;
}
}
class Person {
public:
    int id;
    char* name;
    float grade;
    Person *p_next;
}

class Students {
public:
    void    addStudent(int id, char* name);
    Person* getStudent(int id);

private:
    Person *p_init;
}
Students students;
students.addStudent(...);
Person *student = students.getStudent(id);
student->grade = 22;