原本在一个文本中单做成工程文件就出错了

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

大学才接触C语言,编写成绩管理系统做成工程文件就出错了,总是找不到标识符和使用了未定义型

void save()
{
    int n;
    FILE* fp;
    struct student* p;
    system("cls");
    printf("\t\t************************************\n");
    printf("\t\t*        文件的保存功能            *\n");
    printf("\t\t*        1.确定文件保存功能        *\n");
    printf("\t\t*        2.放弃文件保存功能        *\n");
    printf("\t\t*        3.返回文件打开和保存模块  *\n");
    printf("\t\t************************************\n");
    printf("\t\t 请输入你的选择(输入对应的编号):");
    scanf("%d", &n);
    switch (n)
    {
    case 1: p = head;
        fp = fopen("result.txt", "w+");
        if (p == NULL)
        {
            printf("\t\t程序中没有数据需要保存!\n");
            exit(0);
        }
        else if (fp == NULL)
        {
            printf("\t\t文件打开失败\n");
            exit(0);
        }
        else
        {
            do
            {
                fprintf(fp, "%d\t%s\t%s\t%d\t%d\t%d\t%s\t%s\t%s", p->num, p->name, p->sex,
                    p->college, p->profession, p->native_place);
                fprintf(fp, "%c", '\n');
                p = p->next;