学员信息管理系统C语言实验设计报告

《程序设计》综合性实验设计报告
姓名: 学号:
一、实验名称
学员信息管理系统。
二、实验任务
学员信息包括学号、学员队、姓名、性别、年龄、籍贯、职务、电话等(学号不重复)。试设计“学员信息管理系统”,使之能提供(不限于)以下功能:
1.学员信息录入功能(学员信息用文件保存)
2.学员信息浏览功能
3.查询或排序功能:(至少一种查询方式)
(1)按学号查询
(2)按姓名查询等
4.学员信息删除、修改功能
三、实验要求

  1. 回顾与复习课程相关知识点,确定该软件的功能与实现目标,分析软件需求,确定组成程序的函数模块;绘制程序流程图,完成软件代码设计;提交本实验设计报告。
  2. 只能使用C语言,源程序要有适当的注释,使程序容易阅读;
  3. 程序编写要独立完成,雷同视为作废。
    四、实验整体思路
    (以函数模块的形式体现系统功能划分)
    五、流程图设计
    (画图不方便时,可纸上画图后拍照放置下方,拍照要清晰)
    六、程序设计代码
    (也可纸上撰写后拍照放置下方,拍照要清晰,添加必要的注释)
    七、、体会、质疑、建议

可成功读写文件,看下是否符合:

img

https://blog.csdn.net/qq_43431171/article/details/107517899 不是有现成的

又来个让做作业的?

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
以下是为您提供该学员信息管理系统的整体思路和流程,以及一些提示和建议,供您参考。

一、实验名称
学员信息管理系统。

二、实验任务
学员信息包括学号、学员队、姓名、性别、年龄、籍贯、职务、电话等(学号不重复)。试设计“学员信息管理系统”,使之能提供(不限于)以下功能:
1.学员信息录入功能(学员信息用文件保存)
2.学员信息浏览功能
3.查询或排序功能:(至少一种查询方式)
(1)按学号查询
(2)按姓名查询等
4.学员信息删除、修改功能

三、实验要求

  1. 回顾与复习课程相关知识点,确定该软件的功能与实现目标,分析软件需求,确定组成程序的函数模块;
  2. 绘制程序流程图,完成软件代码设计;
  3. 只能使用C语言,源程序要有适当的注释,使程序容易阅读;
  4. 程序编写要独立完成,雷同视为作废。

四、实验整体思路
通过需求分析,可以将该学员信息管理系统划分为以下几个模块:

  1. 学员信息录入模块:用于录入学员的基本信息,将学员信息保存到文件中;
  2. 学员信息浏览模块:用于浏览所有学员的基本信息;
  3. 学员信息查询模块:用于根据学号或姓名查询学员的基本信息;
  4. 学员信息删除模块:用于根据学号删除学员的基本信息;
  5. 学员信息修改模块:用于根据学号修改学员的基本信息;
  6. 主函数模块:用于调用以上模块实现程序的功能。

五、流程图设计
以下是该学员信息管理系统的流程图设计:

+------------------------+
|                        |
|   学员信息管理系统    |
|                        |
+------------------------+
             |
             |
+------------------------+
|                        |
|   学员信息录入模块   |
|                        |
+------------------------+
             |
             |
+------------------------+
|                        |
|   学员信息浏览模块   |
|                        |
+------------------------+
             |
             |
+------------------------+
|                        |
|   学员信息查询模块   |
|                        |
+------------------------+
             |
             |
+------------------------+
|                        |
|   学员信息删除模块   |
|                        |
+------------------------+
             |
             |
+------------------------+
|                        |
|   学员信息修改模块   |
|                        |
+------------------------+
             |
             |
+------------------------+
|                        |
|      主函数模块        |
|                        |
+------------------------+

六、程序设计代码
以下是该学员信息管理系统的示例代码,仅供参考:

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

// 定义学员信息结构体
typedef struct {
    char number[20];    // 学号
    char team[20];      // 学员队
    char name[20];      // 姓名
    char gender[10];    // 性别
    int age;            // 年龄
    char hometown[50];  // 籍贯
    char position[20];  // 职务
    char phone[20];     // 电话
} Student;

// 定义全局变量
const char* FILENAME = "students.txt";  // 存储学员信息的文件名

// 函数声明
void showMenu();                // 显示菜单
void addStudent();              // 添加学员信息
void showAllStudents();         // 显示所有学员信息
void searchStudentByNumber();   // 根据学号查询学员信息
void searchStudentByName();     // 根据姓名查询学员信息
void deleteStudent();           // 根据学号删除学员信息
void modifyStudent();           // 根据学号修改学员信息

int main() {
    // 显示菜单,根据用户选择执行相应的操作
    int choice;
    do {
        showMenu();
        printf("请输入您的选择:");
        scanf("%d", &choice);
        switch (choice) {
            case 1:
                addStudent();
                break;
            case 2:
                showAllStudents();
                break;
            case 3:
                searchStudentByNumber();
                break;
            case 4:
                searchStudentByName();
                break;
            case 5:
                deleteStudent();
                break;
            case 6:
                modifyStudent();
                break;
            case 0:
                printf("谢谢使用,再见!\n");
                break;
            default:
                printf("无效的选择,请重新输入。\n");
                break;
        }
    } while (choice != 0);

    return 0;
}

// 显示菜单
void showMenu() {
    printf("********** 学员信息管理系统 **********\n");
    printf("1. 添加学员信息\n");
    printf("2. 显示所有学员信息\n");
    printf("3. 根据学号查询学员信息\n");
    printf("4. 根据姓名查询学员信息\n");
    printf("5. 根据学号删除学员信息\n");
    printf("6. 根据学号修改学员信息\n");
    printf("0. 退出程序\n");
}

// 添加学员信息
void addStudent() {
    // 打开文件,准备写入学员信息
    FILE* fp = fopen(FILENAME, "a");
    if (fp == NULL) {
        printf("打开文件失败!\n");
        return;
    }

    // 读取学员信息
    Student student;
    printf("请输入学号:");
    scanf("%s", student.number);
    printf("请输入学员队:");
    scanf("%s", student.team);
    printf("请输入姓名:");
    scanf("%s", student.name);
    printf("请输入性别:");
    scanf("%s", student.gender);
    printf("请输入年龄:");
    scanf("%d", &student.age);
    printf("请输入籍贯:");
    scanf("%s", student.hometown);
    printf("请输入职务:");
    scanf("%s", student.position);
    printf("请输入电话:");
    scanf("%s", student.phone);

    // 将学员信息写入文件
    fprintf(fp, "%s %s %s %s %d %s %s %s\n", student.number, student.team, student.name, student.gender, student.age, student.hometown, student.position, student.phone);
    printf("学员信息添加成功!\n");

    // 关闭文件
    fclose(fp);
}

// 显示所有学员信息
void showAllStudents() {
    // 打开文件,读取学员信息
    FILE* fp = fopen(FILENAME, "r");
    if (fp == NULL) {
        printf("打开文件失败!\n");
        return;
    }

    // 读取并显示所有学员信息
    printf("学号\t学员队\t姓名\t性别\t年龄\t籍贯\t职务\t\t电话\n");
    Student student;
    while (fscanf(fp, "%s %s %s %s %d %s %s %s\n", student.number, student.team, student.name, student.gender, &student.age, student.hometown, student.position, student.phone) != EOF) {
        printf("%s\t%s\t%s\t%s\t%d\t%s\t%s\t%s\n", student.number, student.team, student.name, student.gender, student.age, student.hometown, student.position, student.phone);
    }

    // 关闭文件
    fclose(fp);
}

// 根据学号查询学员信息
void searchStudentByNumber() {
    // 打开文件,读取学员信息
    FILE* fp = fopen(FILENAME, "r");
    if (fp == NULL) {
        printf("打开文件失败!\n");
        return;
    }

    // 读取并查找指定学号的学员信息
    char number[20];
    printf("请输入要查询的学号:");
    scanf("%s", number);
    Student student;
    int found = 0;
    while (fscanf(fp, "%s %s %s %s %d %s %s %s\n", student.number, student.team, student.name, student.gender,&student.age, student.hometown, student.position, student.phone) != EOF) {
        if (strcmp(student.number, number) == 0) {
            printf("学号\t学员队\t姓名\t性别\t年龄\t籍贯\t职务\t\t电话\n");
            printf("%s\t%s\t%s\t%s\t%d\t%s\t%s\t%s\n", student.number, student.team, student.name, student.gender, student.age, student.hometown, student.position, student.phone);
            found = 1;
            break;
        }
    }

    // 关闭文件
    fclose(fp);

    // 输出查找结果
    if (!found) {
        printf("未找到指定学号的学员信息!\n");
    }
}

// 根据姓名查询学员信息
void searchStudentByName() {
    // 打开文件,读取学员信息
    FILE* fp = fopen(FILENAME, "r");
    if (fp == NULL) {
        printf("打开文件失败!\n");
        return;
    }

    // 读取并查找指定姓名的学员信息
    char name[20];
    printf("请输入要查询的姓名:");
    scanf("%s", name);
    Student student;
    int found = 0;
    while (fscanf(fp, "%s %s %s %s %d %s %s %s\n", student.number, student.team, student.name, student.gender, &student.age, student.hometown, student.position, student.phone) != EOF) {
        if (strcmp(student.name, name) == 0) {
            printf("学号\t学员队\t姓名\t性别\t年龄\t籍贯\t职务\t\t电话\n");
            printf("%s\t%s\t%s\t%s\t%d\t%s\t%s\t%s\n", student.number, student.team, student.name, student.gender, student.age, student.hometown, student.position, student.phone);
            found = 1;
        }
    }

    // 关闭文件
    fclose(fp);

    // 输出查找结果
    if (!found) {
        printf("未找到指定姓名的学员信息!\n");
    }
}

// 根据学号删除学员信息
void deleteStudent() {
    // 打开文件,读取学员信息
    FILE* fp = fopen(FILENAME, "r");
    if (fp == NULL) {
        printf("打开文件失败!\n");
        return;
    }

    // 打开一个临时文件,用于存储未被删除的学员信息
    FILE* tempfp = fopen("temp.txt", "w");
    if (tempfp == NULL) {
        printf("打开文件失败!\n");
        fclose(fp);
        return;
    }

    // 读取并删除指定学号的学员信息
    char number[20];
    printf("请输入要删除的学号:");
    scanf("%s", number);
    Student student;
    int found = 0;
    while (fscanf(fp, "%s %s %s %s %d %s %s %s\n", student.number, student.team, student.name, student.gender, &student.age, student.hometown, student.position, student.phone) != EOF) {
        if (strcmp(student.number, number) == 0) {
            found = 1;
            printf("以下学员信息将被删除:\n");
            printf("学号\t学员队\t姓名\t性别\t年龄\t籍贯\t职务\t\t电话\n");
            printf("%s\t%s\t%s\t%s\t%d\t%s\t%s\t%s\n", student.number, student.team, student.name, student.gender, student.age, student.hometown, student.position, student.phone);
        } else {
            fprintf(tempfp, "%s %s %s %s %d %s %s %s\n", student.number, student.team, student.name, student.gender, student.age, student.hometown, student.position, student.phone);
        }
    }

    // 关闭文件
    fclose(fp);
    fclose(tempfp);

    // 删除原文件,将临时文件重命名为原文件名
    if (remove(FILENAME) == 0) {
        if (rename("temp.txt", FILENAME) == 0) {
            if (found) {
                printf("学员信息删除成功!\n");
            } else {
                printf("未找到指定学号的学员信息!\n");
            }
        } else {
            printf("重命名文件失败!\n");
            rename("temp.txt", FILENAME);
        }
    } else {
        printf("删除文件失败!\n");
    }
}

// 显示所有学员信息
void showAllStudents() {
    // 打开文件,读取学员信息
    FILE* fp = fopen(FILENAME, "r");
    if (fp == NULL) {
        printf("打开文件失败!\n");
        return;
    }

    // 输出所有学员信息
    Student student;
    printf("学号\t学员队\t姓名\t性别\t年龄\t籍贯\t职务\t\t电话\n");
    while (fscanf(fp, "%s %s %s %s %d %s %s %s\n", student.number, student.team, student.name, student.gender, &student.age, student.hometown, student.position, student.phone) != EOF) {
        printf("%s\t%s\t%s\t%s\t%d\t%s\t%s\t%s\n", student.number, student.team, student.name, student.gender, student.age, student.hometown, student.position, student.phone);
    }

    // 关闭文件
    fclose(fp);
}

// 主函数
int main() {
    printf("欢迎使用学员管理系统!\n");
    while (1) {
        printf("请选择要执行的操作:\n");
        printf("1. 添加学员信息\n");
        printf("2. 根据学号查询学员信息\n");
        printf("3. 根据姓名查询学员信息\n");
        printf("4. 根据学号删除学员信息\n");
        printf("5. 显示所有学员信息\n");
        printf("6. 退出系统\n");
        int choice;
        scanf("%d", &choice);
        switch (choice) {
            case 1:
                addStudent();
                break;
            case 2:
                searchStudentByNumber();
                break;
            case 3:
                searchStudentByName();
                break;
            case 4:
                deleteStudent();
                break;
            case 5:
                showAllStudents();
                break;
            case 6:
                printf("谢谢使用学员管理系统!\n");
                return 0;
            default:
                printf("无效的选项,请重新输入!\n");
                break;
        }
    }
}

这是一个简单的命令行学员管理系统,它可以实现添加、查询、删除和显示学员信息的功能。它使用了一个文件来保存学员信息,每一行表示一个学员,以空格分隔各个字段。每个学员有以下字段:

  • 学号(字符串,长度不超过 20)
  • 学员队(字符串,长度不超过 20)
  • 姓名(字符串,长度不超过 20)
  • 性别(字符串,长度不超过 10)
  • 年龄(整数)
  • 籍贯(字符串,长度不超过 20)
  • 职务(字符串,长度不超过 20)
  • 电话(字符串,长度不超过 20)

可以通过菜单选择要执行的操作,输入相应的参数即可实现相应的功能。

以下是该程序的一些说明和使用方法:

  1. 文件名和路径:程序中定义了一个常量 FILENAME,表示存储学员信息的文件名,可以根据需要修改为其他名称。如果需要修改文件的路径,可以在文件名前加上路径名,例如:"/home/user/Documents/students.txt"。

  2. 添加学员信息:选择菜单中的第 1 项,按照提示输入学员信息即可添加一个学员。

  3. 根据学号查询学员信息:选择菜单中的第 2 项,输入要查询的学号,程序会在文件中查找该学号对应的学员信息,并输出到屏幕上。

  4. 根据姓名查询学员信息:选择菜单中的第 3 项,输入要查询的姓名,程序会在文件中查找该姓名对应的所有学员信息,并输出到屏幕上。

  5. 根据学号删除学员信息:选择菜单中的第 4 项,输入要删除的学号,程序会在文件中查找该学号对应的学员信息,并将其从文件中删除。

  6. 显示所有学员信息:选择菜单中的第 5 项,程序会将文件中所有学员信息输出到屏幕上。

  7. 退出程序:选择菜单中的第 6 项,程序会退出。

注意:在输入学员信息时,要保证各个字段之间用空格分隔,且不要输入多余的空格。如果输入不符合要求的信息,程序可能会出现错误。另外,如果文件不存在或无法打开,程序会提示打开文件失败。如果操作成功,程序会提供相应的提示信息。

该程序虽然简单,但可以作为学习文件操作和结构体的一个练习。在实际应用中,可以根据需要进行扩展和改进,例如增加修改学员信息的功能、使用更复杂的数据结构来存储学员信息、增加用户身份验证等。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

你好,可以看看这篇博客参考:https://blog.csdn.net/m0_57263863/article/details/122491480?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-5-122491480-blog-107517899.235^v35^pc_relevant_yljh&spm=1001.2101.3001.4242.4&utm_relevant_index=8

参考


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define HEADER1 "|-----------------------------------------------------------------------------------学生信息管理系统--------------------------------------------------------------------------------------|\n"
#define HEADER2 "|     学号     |   姓名   | 年龄 | 性别 |   出生年月   |                           地址                           |      电话       |      email      | 高数成绩 | 大学英语成 | c语言成绩 |\n"
#define HEADER3 "|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n"
#define FORMAT  "|%-13s |%-8s  |%-4s  |%-4s  |%-10s    |%-38s                    |%-13s    |%-16s |%-8s  |%-6s      |%-6s     |\n"
#define DATA     p->number,p->name,p->age,p->sex,p->birth,p->address,p->phone,p->email,p->math,p->english,p->c
#define END     "|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n"
#define MAX_NUM 50
#define SUCCESS 0
int saveflag=0;
void Refresh()
{
    system("cls");
}
typedef struct student
{
    char number[20];
    char name[20];
    char age[10];
    char sex[10];
    char birth[15];
    char address[50];
    char phone[20];
    char email[20];
    char math[10];
    char english[10];
    char c[10];
} stu;
int Filehandle(struct student * s[],int * pn)
{
    FILE * fp;
    int num=0;
    struct student * p;
    fp=fopen("D:\\t.txt","ab+");
    if(fp==NULL)
    {
        printf("\n=====>Can not open file!\n");
        exit(0);
    }
    while(!feof(fp)&&num<MAX_NUM)
    {
        p=(struct student *)malloc(sizeof(struct student));
        if(!p)
        {
            printf(" Memory malloc faileure! \n");
            exit(0);
        }
        if(fread(p,sizeof(struct student),1,fp)==1)
        {
            s[num]=p;
            num++;
        }
    }
    *pn=num;
    fclose(fp);
    printf("\n=====>Open file success,the total number of records is:%d.\n",num);
    return SUCCESS;
}
void printheader()
{
    printf(HEADER1);
    printf(HEADER2);
    printf(HEADER3);
}
void printdata(struct student * p)
{
    printf(FORMAT,DATA);
}
void Nofind()
{
    printf("\n=====>没有找到该学生!\n");
}
void Disp(struct student * s[],int num)
{
    int i;
    struct student * p;
    if(num==0)
    {
        printf("\n=====>没有学生信息!\n");
        system("pause");
        return;
    }
    printf("\n\n");
    printheader();
    for(i=0; i<num; i++)
    {
        p=s[i];
        printdata(p);
        printf(HEADER3);
    }
}
int Locate(struct student * s[],int num,char findmess[],char nm[])
{
    struct student * r;
    int i=0;
    if(strcmp(nm,"name")==0)
    {
        while(i<num)
        {
            r=s[i];
            if(strcmp(r->name,findmess)==0)
                return i;
            i++;
        }
    }
    else if(strcmp(nm,"number")==0)
    {
        while(i<num)
        {
            r=s[i];
            if(strcmp(r->number,findmess)==0)
                return i;
            i++;
        }
    }
    exit(0);
}
void stringinput(char * t,int lens,char * notice)
{
    char n[255];
    do
    {
        printf(notice);
        scanf("%s",n);
        if(strlen(n)>(unsigned)lens)printf("\n exceed the requirednlength! \n");
    }
    while(strlen(n)>(unsigned)lens);
    strcpy(t,n);
}
void Add(struct student * s[],int * pn)
{
    struct student * p;
    char ch,number[20];
    int num=* pn;
    system("cls");
    Disp(s, * pn);
    while(1)
    {
        stringinput(number,20,"输入学号(输入0来返回菜单):");
        if(strcmp(number,"0")==0)
            return;
        if(num>=MAX_NUM)
        {
            printf("学生数量已达最大%d!!!",MAX_NUM);
            return;
        }
        p=(struct student *)malloc(sizeof(struct student));
        if(!p)
        {
            printf("\n 申请内存空间失败!\n");
            return;
        }
        strcpy(p->number,number);
        stringinput(p->name,20,"姓名:");
        stringinput(p->age,10,"年龄:");
        stringinput(p->sex,10,"性别:");
        stringinput(p->birth,15,"出生年月:");
        stringinput(p->address,50,"地址:");
        stringinput(p->phone,20,"电话:");
        stringinput(p->email,20,"Email:");
        stringinput(p->math,10,"高数成绩:");
        stringinput(p->english,10,"大学英语成绩:");
        stringinput(p->c,10,"C语言成绩:");
        getchar();
        printf("=====>是否保存本条记录?(y/n):");
        scanf("%c",&ch);
        if(ch=='y'||ch=='Y')
            saveflag=1;
        else
            saveflag=0;
        if(saveflag==1)
        {
            s[num]=p;
            num++;
            (*pn)++;
        }
        else
        {
            free(p);
        }
    }
    return;
}
void Find(struct student * s[],int num)
{
    int select;
    int i;
    char searchinput[20];
    struct student * p;
    if(num==0)
    {
        system("cls");
        printf("\n=====>没有数据!\n");
        system("pause");
        getchar();
        return;
    }
    while(1)
    {
        system("cls");
        printf("                                                                                    |----------------------|\n");
        printf("                                                                                    |-----1.按学号查询-----|\n");
        printf("                                                                                    |-----2.按姓名查询-----|\n");
        printf("                                                                                    |-----3.退出本菜单-----|\n");
        printf("                                                                                    |----------------------|\n");
        printf("                                                                                         请输入操作编号:");
        scanf("%d",&select);
        if(select==1)
        {
            stringinput(searchinput,20,"请输入学号:");
            i=Locate(s,num,searchinput,"number");
            if(i>=0)
            {
                printheader();
                for(i=0; i<num; i++)
                {
                    p=s[i];
                    if(strcmp(p->number,searchinput)==0)
                    {
                        printdata(p);
                    }
                }
                printf(END);
                printf("返回");
            }
            else
                Nofind();
            getchar();
        }
        else if(select==2)
        {
            stringinput(searchinput,20,"请输入姓名:");
            i=Locate(s,num,searchinput,"name");
            if(i>=0)
            {
                printheader();
                for(i=0; i<num; i++)
                {
                    p=s[i];
                    if(strcmp(p->name,searchinput)==0);
                    {
                        printdata(p);
                    }
                }
                printf(END);
                printf("返回");
            }
            else
                Nofind();
            getchar();
        }
        else if(select==3)
        {
            return;
        }
        else
            printf("输入有误,请输入正确的操作编号(1~3)\n");
        system("pause");
    }
}
void Delt(struct student * s[],int * pn)
{
    int i,j;
    struct student * p;
    char findmess[20];
    if(*pn==0)
    {
        system("cls");
        printf("\n=====>没有数据!\n");
        getchar();
        return;
    }
    while(1)
    {
        system("cls");
        Disp(s, *pn);
        printf("                                                                           |----------------------------|\n");
        printf("                                                                           |-----1.删除所有学生信息-----|\n");
        printf("                                                                           |-----2.查找学号删除信息-----|\n");
        printf("                                                                           |-----3.退出本菜单-----------|\n");
        printf("                                                                           |----------------------------|\n");
        printf("                                                                                  请输入操作编号:");
        scanf("%d",&j);
        if(j==1)
        {
            for(i=0; i<*pn; i++)
            {
                p=s[i];
                if(p)
                    free(p);
            }
            *pn=0;
            printf("\n=====>删除所有学生信息成功!\n");
            getchar();
            saveflag=1;
        }
        else if(j==2)
        {
            stringinput(findmess,20,"请输入要删除的学生信息学号:");
            i=Locate(s,*pn,findmess,"number");
            if(i>=0)
            {
                p=s[i];
                free(p);
                for(; i<*pn-1; i++)
                {
                    s[i]=s[i+1];
                }
                (*pn)--;
                printf("\n=====>删除成功!\n");
                getchar();
                saveflag=1;
            }
        }
        else if(j==3)
        {
            return;
        }
        else
            printf("输入有误,请输入正确的操作编号(1~3)\n");
        system("pause");
    }
}
void Modify(struct student * s[],int num)
{
    struct student * p;
    int i;
    char findmess[20];
    if(num<0)
    {
        system("cls");
        printf("=====>没有数据!\n");
        getchar();
        return;
    }
    system("cls");
    printf("修改学生信息");
    Disp(s,num);
    stringinput(findmess,20,"输入要修改的学生学号:");
    i=Locate(s,num,findmess,"number");
    if(i>=0)
    {
        p=s[i];
        printf("姓名:%s,",p->name);
        stringinput(p->name,20,"请输入新的姓名:");
        printf("年龄:%s,",p->age);
        stringinput(p->age,10,"请输入新的年龄:");
        printf("性别:%s,",p->sex);
        stringinput(p->sex,10,"请输入新的性别:");
        printf("出生年月:%s,",p->birth);
        stringinput(p->birth,15,"请输入新的出生年月:");
        printf("地址:%s,",p->address);
        stringinput(p->address,50,"请输入新的地址:");
        printf("电话:%s,",p->phone);
        stringinput(p->phone,20,"请输入新的电话:");
        printf("email:%s,",p->email);
        stringinput(p->email,20,"请输入新的email:");
        printf("高数成绩:%s,",p->math);
        stringinput(p->math,10,"请输入新的高数成绩:");
        printf("大学英语成绩:%s,",p->english);
        stringinput(p->english,10,"请输入新的大学英语成绩:");
        printf("c语言成绩:%s,",p->c);
        stringinput(p->c,10,"请输入新的c语言成绩:");
        printf("\n=====>修改成功");
        Disp(s,num);
        saveflag=1;
    }
    else
        Nofind();
    return;
}
void Count(int num)
{
    system("cls");
    printf("目前学生信息数量为:%d.\n",num);
    getchar();
    getchar();
}
void Sort(struct student * s[],int num)
{
    struct student * temp;
    int i,j;
    system("cls");
    Disp(s,num);
    if(num==0)
        return;
    for(i=0; i<num-1; i++)
        for(j=i+1; j<num; j++)
        {
            if(strcmp(s[i]->number,s[j]->number)>0);
            {
                temp=s[j];
                s[j]=s[i];
                s[i]=temp;
            }
        }
    Disp(s,num);
    saveflag=1;
    printf("\n=====>排序完成!");
    system("pause");
}
void Save(struct student * s[],int num)
{
    FILE *fp;
    struct student * p;
    int count=0;
    fp=fopen("D:\\t.txt","wb");
    if(fp==NULL)
    {
        printf("\n=====>打开文件失败!\n");
        getchar();
        return;
    }
    for(count=0; count<num; count++)
    {
        p=s[count];
        if(fwrite(p,sizeof(struct student),1,fp)!=1)
        {
            printf("写入失败!\n");
            break;
        }
    }
    if(count>0)
    {
        getchar();
        printf("\n\n\n\n\n====>保存学生信息成功,保存的学生信息数为:%d\n",count);
    }
    else
    {
        system("cls");
        printf("数据为空,保存文档成功!\n");
    }
    saveflag=0;
    getchar();
    fclose(fp);
}
void Myexit(struct student * s[],int num)
{
    char ch;
    if(saveflag==1)
    {
        getchar();
        printf("\n=====>是否保存信息进入数据库?(y/n):");
        scanf("%c",&ch);
        if(ch=='y'||ch=='Y')
            Save(s,num);
    }
    printf("\n=====>即将退出系统,感谢您的使用!\n");
}
void Menu()
{
    system("color f2");
    system("cls");
    printf("                                                                                          欢迎使用学生信息管理系统!                     \n");
    printf("                                                                             |-------------------------------------------------|        \n");
    printf("                                                                             |                 系统功能菜单                    |        \n");
    printf("                                                                             |-------------------------------------------------|        \n");
    printf("                                                                             |   0.系统帮助及说明   |   1.刷新系统页面         |        \n");
    printf("                                                                             |-------------------------------------------------|        \n");
    printf("                                                                             |   2.查询学生信息     |   3.统计学生信息         |        \n");
    printf("                                                                             |-------------------------------------------------|        \n");
    printf("                                                                             |   4.添加学生信息     |   5.删除学生信息         |        \n");
    printf("                                                                             |-------------------------------------------------|        \n");
    printf("                                                                             |   6.修改学生信息     |   7.保存学生信息         |        \n");
    printf("                                                                             |-------------------------------------------------|        \n");
    printf("                                                                             |   8.显示所有信息     |   9.排序学生信息         |        \n");
    printf("                                                                             |-------------------------------------------------|        \n");
    printf("                                                                             |   10.退出系统        |                          |        \n");
    printf("                                                                             |-------------------------------------------------|        \n");
}
void Help()
{
    printf("\n");
    printf("一、系统介绍:本系统是从学生信息管理的现状出发,根据学生管理的新要求进行设计研究的,它主要帮助管理人员有效管理学生信息。\n");
    printf("二、本系统主要实现以下功能:1.学生信息录入;2.学生信息查询;3.学生信息的增删;4.学生信息的修改。\n");
    printf("三、操作注意事项:操作时选择你要执行的操作编号即可,退出系统时请及时保存数据!!!");
    printf("感谢您的使用!\n");
    printf("\n");
    system("pause");
}
int main()
{
    int select;
    int num=0;
    struct student * s[MAX_NUM];
    if(Filehandle(s,&num)!=SUCCESS)
        exit(0);
    while(1)
    {
        Menu();
        printf("请输入你要执行的操作编号:");
        scanf("%d",&select);
        switch(select)
        {
            case 0:
                Help();
                break;
            case 1:
                Refresh();
                break;
            case 2:
                Find(s,num);
                break;
            case 3:
                Count(num);
                break;
            case 4:
                Add(s,&num);
                break;
            case 5:
                Delt(s,&num);
                break;
            case 6:
                Modify(s,num);
                break;
            case 7:
                Save(s,num);
                break;
            case 8:
                system("cls");
                Disp(s,num);
                system("pause");
                break;
            case 9:
                Sort(s,num);
                break;
            case 10:
                Myexit(s,num);
                return;
            default:
                printf("输入有误,请输入正确操作编号!(0`7)\n");
                system("pause");
        }
    }
    return 0;
}

C语言学生信息管理系统

非常详细,可以借鉴下
https://blog.csdn.net/weixin_61961720/article/details/121720866

你这个大概率得找某宝、一楼提供的也挺好的、你也可以参考一下下面的

以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:

首先,学员信息管理系统可以分为以下几个模块:录入模块、浏览模块、查询模块、删除模块和修改模块。每个模块可以对应一个函数,整个程序的主函数负责调用这些函数来实现完整的功能。

针对第一个功能,可以先定义一个结构体类型来存储学员信息,包括学号、学员队、姓名、性别、年龄、籍贯、职务、电话等字段。然后,利用文件操作函数来实现学员信息的录入,将学员信息存储到文件中即可。

针对第二个功能,可以利用文件操作函数来读取已经录入的学员信息,并输出到屏幕上进行浏览。

针对第三个功能,可以通过输入学号或姓名来实现对学员信息的查询。可以使用字符串比较函数来判断输入的学号或姓名是否与已有的学员信息匹配,然后输出符合条件的学员信息。

针对第四个功能,可以通过输入学号或姓名来实现对学员信息的删除和修改。可以先查询出要操作的学员信息,然后再进行删除或修改操作。删除操作可以使用文件操作函数来删除文件中的学员信息,修改操作可以通过重新录入学员信息来实现。

下面是一个简单的示例代码,用于实现上述功能:

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

#define MAX_STUDENTS 100 // 最多存储100个学员信息

// 学员信息结构体
struct student_info {
    char id[20]; // 学号
    char group[20]; // 学员队
    char name[20]; // 姓名
    char gender[10]; // 性别
    int age; // 年龄
    char hometown[50]; // 籍贯
    char position[20]; // 职务
    char phone[20]; // 电话
};

// 学员信息数组
struct student_info students[MAX_STUDENTS];
int num_students = 0; // 已录入的学员信息数量

// 录入学员信息
void input_student() {
    struct student_info student;
    printf("请输入学员信息:\n");
    printf("学号:");
    scanf("%s", student.id);
    // 判断学号是否已经存在
    for (int i = 0; i < num_students; i++) {
        if (strcmp(students[i].id, student.id) == 0) {
            printf("学号已经存在!\n");
            return;
        }
    }
    printf("学员队:");
    scanf("%s", student.group);
    printf("姓名:");
    scanf("%s", student.name);
    printf("性别:");
    scanf("%s", student.gender);
    printf("年龄:");
    scanf("%d", &student.age);
    printf("籍贯:");
    scanf("%s", student.hometown);
    printf("职务:");
    scanf("%s", student.position);
    printf("电话:");
    scanf("%s", student.phone);
    // 存储学员信息到文件中
    FILE *fp = fopen("students.txt", "a");
    fprintf(fp, "%s %s %s %s %d %s %s %s\n", student.id, student.group, student.name,
            student.gender, student.age, student.hometown, student.position, student.phone);
    fclose(fp);
    // 存储学员信息到数组中
    students[num_students++] = student;
    printf("录入成功!\n");
}

// 浏览学员信息
void browse_student() {
    printf("已录入的学员信息:\n");
    printf("--------------------------------------------------------\n");
    printf("学号\t学员队\t姓名\t性别\t年龄\t籍贯\t职务\t电话\n");
    FILE *fp = fopen("students.txt", "r");
    char line[200];
    while (fgets(line, sizeof(line), fp)) {
        printf("%s", line);
    }
    fclose(fp);
}

// 按学号查询学员信息
void query_student_by_id() {
    char id[20];
    printf("请输入学号:");
    scanf("%s", id);
    for (int i = 0; i < num_students; i++) {
        if (strcmp(students[i].id, id) == 0) {
            printf("学号\t学员队\t姓名\t性别\t年龄\t籍贯\t职务\t电话\n");
            printf("%s\t%s\t%s\t%s\t%d\t%s\t%s\t%s\n", students[i].id, students[i].group,
                   students[i].name, students[i].gender, students[i].age, students[i].hometown,
                   students[i].position, students[i].phone);
            return;
        }
    }
    printf("没有找到学号为%s的学员信息!\n", id);
}

// 按姓名查询学员信息
void query_student_by_name() {
    char name[20];
    printf("请输入姓名:");
    scanf("%s", name);
    for (int i = 0; i < num_students; i++) {
        if (strcmp(students[i].name, name) == 0) {
            printf("学号\t学员队\t姓名\t性别\t年龄\t籍贯\t职务\t电话\n");
            printf("%s\t%s\t%s\t%s\t%d\t%s\t%s\t%s\n", students[i].id, students[i].group,
                   students[i].name, students[i].gender, students[i].age, students[i].hometown,
                   students[i].position, students[i].phone);
            return;
        }
    }
    printf("没有找到姓名为%s的学员信息!\n", name);
}

// 删除学员信息
void delete_student() {
    char id[20];
    printf("请输入学号:");
    scanf("%s", id);
    int index = -1;
    for (int i = 0; i < num_students; i++) {
        if (strcmp(students[i].id, id) == 0) {
            index = i;
            break;
        }
    }
    if (index == -1) {
        printf("没有找到学号为%s的学员信息!\n", id);
        return;
    }
    FILE *fp = fopen("students.txt", "w");
    for (int i = 0; i < num_students; i++) {
        if (i != index) {
            fprintf(fp, "%s %s %s %s %d %s %s %s\n", students[i].id, students[i].group, students[i].name,
                    students[i].gender, students[i].age, students[i].hometown, students[i].position, students[i].phone);
        }
    }
    fclose(fp);
    printf("删除成功!\n");
}

// 修改学员信息
void modify_student() {
    char id[20];
    printf("请输入学号:");
    scanf("%s", id);
    int index = -1;
    for (int i = 0; i < num_students; i++) {
        if (strcmp(students[i].id, id) == 0) {
            index = i;
            break;
        }
    }
    if (index == -1) {
        printf("没有找到学号为%s的学员信息!\n", id);
        return;
    }
    printf("请输入修改后的学员信息:\n");
    printf("学员队:");
    scanf("%s", students[index].group);
    printf("姓名:");
    scanf("%s", students[index].name);
    printf("性别:");
    scanf("%s", students[index].gender);
    printf("年龄:");
    scanf("%d", &students[index].age);
    printf("籍贯:");
    scanf("%s", students[index].hometown);
    printf("职务:");
    scanf("%s", students[index].position);
    printf("电话:");
    scanf("%s", students[index].phone);
    // 更新学员信息到文件中
    FILE *fp = fopen("students.txt", "w");
    for (int i = 0; i < num_students; i++) {
        fprintf(fp, "%s %s %s %s %d %s %s %s\n", students[i].id, students[i].group, students[i].name,
                    students[i].gender, students[i].age, students[i].hometown, students[i].position, students[i].phone);
    }
    fclose(fp);
    printf("修改成功!\n");
}

int main() {
    int choice;
    while (1) {
        printf("请选择操作:\n");
        printf("1. 录入学员信息\n");
        printf("2. 浏览学员信息\n");
        printf("3. 按学号查询学员信息\n");
        printf("4. 按姓名查询学员信息\n");
        printf("5. 删除学员信息\n");
        printf("6. 修改学员信息\n");
        printf("0. 退出\n");
        printf("请选择:");
        scanf("%d", &choice);
        switch (choice) {
            case 1:
                input_student();
                break;
            case 2:
                browse_student();
                break;
            case 3:
                query_student_by_id();
                break;
            case 4:
                query_student_by_name();
                break;
            case 5:
                delete_student();
                break;
            case 6:
                modify_student();
                break;
            case 0:
                printf("退出程序!\n");
                return 0;
            default:
                printf("输入错误,请重新选择!\n");
        }
    }
    return 0;
}

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct person                               //定义结构体
{
    char num[10];   //学号
    char name[15]; //姓名
    int  sex;      //性别 0为女  1为男
    char birth[10];//出生年月
    char ji[20];  //专业
}person;
person per[100];  //定义100
char filename[20];                                      //定义全局变量
void menu_filename()
{
      system("cls");
      printf("请输入你要操作的文件名:");
      scanf("\t%s",filename);
}
int menu_select()                              //菜单选择系统函数
{
     char c;
      do{
        system("cls");
        printf("\t\t    ******************************\n");
        printf("\t\t    *     学生管理系统           *\n");
        printf("\t\t    ******************************\n");
        printf("\t\t   ┌─────────────—┐\n");
        printf("\t\t   │ 1. 添加记录    2. 显示记录 │\n");
        printf("\t\t   │                            │\n");
        printf("\t\t   │ 3. 信息查询    4. 数据计算 │\n");
        printf("\t\t   │                            │\n");
        printf("\t\t   │ 5. 修改记录    6. 删除记录 │\n");
        printf("\t\t   │                            │\n");
        printf("\t\t   │ 0. 退出程序                │\n");
        printf("\t\t   └─────────────—┘\n");
        printf("\t\t请您选择(0-6):");
        c=getchar();
     }while(c<'0'||c>'6');
        return (c-'0');                                      //字符减去’0‘得到的是数字整型//
}
 
    //*********************************************************************//
    //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//
 
void add()                                      //添加函数
  {
    FILE *fp;
    int i=0,n=0;
    char ch='y';                           //首先定义ch='y'
    system("cls");                                //清屏函数  系统中调用
    while(ch =='y'|| ch =='Y')                    //其实只有当输入N或n时才跳出循环
    {
        printf("             ----学生纪录添加----\n");
        printf("学号:\n");
        scanf("\t%s",per[i].num);
        printf("姓名:\n");
        scanf("\t%s",per[i].name);
        printf("性别:\n");
        scanf("\t%d",&per[i].sex);
        printf("出生年月(例如2000年2月==》200002):\n");
        scanf("\t%s",&per[i].birth);
        printf("专业:\n");
        scanf("\t%s",&per[i].ji);
        printf("是否继续添加?(y/n)");
        ch = getchar();
        i++;
        n=n+1;
        system( "cls ");
   }system("pause");                                     //等待命令
 
   if((fp=fopen(filename,"a"))==NULL)                    //以2进制形式进行文件尾追加//
      {
         printf("cannot open the files\n");
         system("pause");
         return;                                         //如果文件出现错误 就返回
       }
        for(i=0;i<n;i++)
        if(fwrite(&per[i],sizeof(person),1,fp)!=1)      //以2进制形式写入文件中//一次写入一个数组//
        printf("file write error\n");
        fclose(fp);                                       //关闭文件
        system("pasue");
  }
     //*********************************************************************//
    //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//
  void scan()                        //显示记录  进行全面信息浏览
   {
    void amend();                         //声明修改函数//
    char sign='y';
    FILE *fp;
    int i=0,n;
    system("cls");
      if((fp=fopen(filename,"r"))==NULL)             //以2进制方式读取文件信息//
      {
         printf("cannot open the files\n");
         system("pause");
         return;
       }
    while(!feof(fp))                              //一直读取知道文件尾结束
    {
        fread(&per[i],sizeof(person),1,fp);  //以2进制方式将文件信息读到数组内存中//一次读取一个//
         i++;
     }
    fclose(fp);
     printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
     printf("        学号            姓名           性别    出生    专业\n");
     printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
    for(n=0;n<i-1;n++)                             //循环全部输出
     printf("\t%s \t%s \t\t%d \t%s \t%s\n",per[n].num,per[n].name,per[n].sex,per[n].birth,per[n].ji);
     printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
     system("pause");
     system("cls");
     printf("是否需要修改?(y/n)");
     scanf("\t%c",&sign);
    if(sign!='n'&&sign!='N')                    //选择是否在浏览后进行修改//
     amend();
     system("pause");
 
  }
 
     //*********************************************************************//
     //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//
                                    //数据查询//
  void query()                     //学生信息的不同方式查询
   {
    FILE *fp;
    int i=0,n=0;
    int m;
    system("cls");
    printf("\t\n请选择查询方式:\n");
    printf("\t┌──────┐\n");
    printf("\t│1------姓名 │\n");
    printf("\t│2------学号 │\n");
    printf("\t│3------返回 │\n");
    printf("\t└──────┘\n");
    printf("请输入你要查询的方式\n");
    scanf("%d",&m);
    while(m!=1&&m!=2&&m!=3)
        {
            printf("输入错误请重新查询\n");
            scanf("%d",&m);
        }
      if((fp=fopen(filename,"r"))==NULL)                 //以2进制方式读取文件信息//
      {
         printf("cannot open the files\n");
         system("pause");
         return;
       }
 
    while(!feof(fp))
    {
        fread(&per[i],sizeof(person),1,fp);                      //以2进制方式将文件信息读到数组内存中//一次读取一个//
        i++;n=n+1;
     }
 
    if(m==1)                                            //姓名查询
       {
        char s[20];
        int i=0;
        printf("\t请输入想查询的姓名:");
        scanf("\t%s",s);
        while(strcmp(per[i].name,s)!=0&&i<n) i++;            //比较per[i].name与所输入姓名是否相同//
        if(i==n)
        {
            printf("\t通讯录中没有此人!\n");
            system("pause");
            return;
        }
          printf("\t学号: %s\n",per[i].num);
          printf("\t姓名: %s\n",per[i].name);
          printf("\t性别: %d\n",per[i].sex);
          printf("\t出生: %s\n",per[i].birth);
          printf("\t计算机: %s\n",per[i].ji);
         }
    if(m==2)                                                            //学号查询
        {
          char s[15];
          int i=0;
          printf("请输入想查询的学号:");
          scanf("\t%s",s);
         while(strcmp(per[i].num,s)!=0&&i<n)i++;                       //比较per[i].name与所输入学号是否相同//
            if(i==n)
            {
                printf("\t通讯录中没有此人!\n");
                system("pause");
                return;
            }
            printf("\t学号: %s\n",per[i].num);
            printf("\t姓名: %s\n",per[i].name);
            printf("\t性别: %d\n",per[i].sex);
            printf("\t出生: %s\n",per[i].birth);
            printf("\t计算机: %s\n",per[i].ji);
          }
          fclose(fp);
          system("pause");
  }


  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7423862
  • 除此之外, 这篇博客: C语言实现八大排序算法详解及其性能之间的中的 名字已经暴露了他的算法,就是往里面插入数据,就拿我们生活中的例子来说,打扑克牌。我们往手里码牌的时候,是一张一张的码,先码一张,抓手心,不需要修改位置,因为只有一张牌,一定是有序的。再接一张,和手里的牌对比大小,调整位置,选择放在它的左边或者右边。然后接着码,又接到一张牌,拿到先和右边的牌比,比右边还大就放到最右边,如果比右边这张小呢,在和左边这张比。同样,我们这里也是这样的,首先我们默认第一个元素,一定是有序,OK吧。然后第二个,元素比较,大,放到左边,小放到右边。然后第三个元素,直到第N个,比它前一个大,继续往前找位置,直到找到对应位置了,就是有序数列了。(当然每次找位置都是在一个有序的序列中找,所以完全可以用二分查找找位置,数据大的话,二分明显快于我们一张一张比) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 算法思想

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
由于回答的问题中无法上传代码和图片,我将为您提供学员信息管理系统的代码实现思路。

一、函数模块的形式体现系统功能划分:

  1. 学员信息录入功能create()
  2. 学员信息浏览功能display()
  3. 查询或排序功能search()
  4. 学员信息删除功能delete()
  5. 学员信息修改功能modify()

以上这些功能模块,可以使用C语言中的函数来实现。

二、流程图设计

由于图片不能上传,建议您借助关键字在搜索引擎中搜索“学员信息管理系统流程图”来寻找参考图。

三、程序设计代码

以下代码仅作参考。

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

struct student_info {
    char id[10];         //学号
    char team[20];       //学员队
    char name[20];       //姓名
    char gender[10];     //性别
    int age;             //年龄
    char hometown[30];   //籍贯
    char position[20];   //职务
    char phone[20];      //电话
};

struct student_info student[1000];
int cnt = 0;

void create(void) {
    printf("输入学员信息:(学号 学员队 姓名 性别 年龄 籍贯 职务 电话)\n");
    scanf("%s %s %s %s %d %s %s %s", student[cnt].id, student[cnt].team, student[cnt].name, student[cnt].gender, &student[cnt].age, student[cnt].hometown, student[cnt].position, student[cnt].phone);
    cnt++;
    printf("学员信息录入成功!\n");
}

void display(void) {
    if (cnt == 0) {
        printf("当前没有学员信息。\n");
        return;
    }
    printf("学号\t学员队\t姓名\t性别\t年龄\t籍贯\t职务\t电话\n");
    for (int i = 0; i < cnt; i++) {
        printf("%s\t%s\t%s\t%s\t%d\t%s\t%s\t%s\n", student[i].id, student[i].team, student[i].name, student[i].gender, student[i].age, student[i].hometown, student[i].position, student[i].phone);
    }
}

void search(void) {
    char id_search[10];
    printf("请输入要查询的学员学号:");
    scanf("%s", id_search);
    int flag = 0;
    for (int i = 0; i < cnt; i++) {
        if (strcmp(id_search, student[i].id) == 0) {
            flag = 1;
            printf("学号\t学员队\t姓名\t性别\t年龄\t籍贯\t职务\t电话\n");
            printf("%s\t%s\t%s\t%s\t%d\t%s\t%s\t%s\n", student[i].id, student[i].team, student[i].name, student[i].gender, student[i].age, student[i].hometown, student[i].position, student[i].phone);
            break;
        }
    }
    if (flag == 0) {
        printf("未找到该学员信息。\n");
    }
}

void delete(void) {
    char id_delete[10];
    printf("请输入要删除的学员学号:");
    scanf("%s", id_delete);
    int flag = 0;
    for (int i = 0; i < cnt; i++) {
        if (strcmp(id_delete, student[i].id) == 0) {
            flag = 1;
            for (int j = i; j < cnt - 1; j++) {
                student[j] = student[j + 1];
            }
            cnt--;
            printf("删除成功!\n");
            break;
        }
    }
    if (flag == 0) {
        printf("未找到该学员信息。\n");
    }
}

void modify(void) {
    char id_modify[10];
    printf("请输入要修改的学员学号:");
    scanf("%s", id_modify);
    int flag = 0;
    for (int i = 0; i < cnt; i++) {
        if (strcmp(id_modify, student[i].id) == 0) {
            flag = 1;
            printf("输入修改后的学员信息:(学员队 姓名 性别 年龄 籍贯 职务 电话)\n");
            scanf("%s %s %s %d %s %s %s", student[i].team, student[i].name, student[i].gender, &student[i].age, student[i].hometown, student[i].position, student[i].phone);
            printf("修改成功!\n");
            break;
        }
    }
    if (flag == 0) {
        printf("未找到该学员信息。\n");
    }
}

int main(void) {
    while (1) {
        printf("********** 学员信息管理系统 **********\n");
        printf("[1] 学员信息录入\n[2] 学员信息浏览\n[3] 学员信息查询\n[4] 学员信息删除\n[5] 学员信息修改\n[0] 退出\n");
        printf("***************************************\n");
        int option;
        scanf("%d", &option);
        switch (option) {
            case 0: {
                printf("谢谢使用,再见!\n");
                return 0;
            }
            case 1: {
                create();
                break;
            }
            case 2: {
                display();
                break;
            }
            case 3: {
                search();
                break;
            }
            case 4: {
                delete();
                break;
            }
            case 5: {
                modify();
                break;
            }
            default: {
                printf("请重新输入选项!\n");
                break;
            }
        }
        printf("\n");
    }
    return 0;
}

以上代码实现了学员信息管理系统的各个功能模块,包括学员信息录入、学员信息浏览、查询或排序、学员信息删除、学员信息修改等。用户可以根据自己的需要选择对应功能,在进行操作时,程序会提示用户输入相应的信息,一旦操作完成,程序会相应地返回结果。

四、体会、质疑、建议

学员信息管理系统是一种十分常见的管理系统,可以帮助学校或机构更加高效地管理学员的信息,提升管理水平和效率。通过本次实验,我们学习了C语言中的结构体、指针、字符串等知识,掌握了如何使用这些知识来实现一个简单的管理系统。在实现过程中,我们还深刻认识了程序设计的重要性,包括对程序运行流程的分析和对模块化设计的重视。

如果您在代码实现中有任何疑问或建议,欢迎在评论区留言,我会尽快回复您的问题。
如果我的回答解决了您的问题,请采纳!