返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言中怎么使用链表实现学生籍贯管理系统
  • 494
分享到

C语言中怎么使用链表实现学生籍贯管理系统

2023-06-29 07:06:13 494人浏览 泡泡鱼
摘要

这篇文章主要讲解了“C语言中怎么使用链表实现学生籍贯管理系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中怎么使用链表实现学生籍贯管理系统”吧!源码#include<stdio

这篇文章主要讲解了“C语言中怎么使用链表实现学生籍贯管理系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中怎么使用链表实现学生籍贯管理系统”吧!

源码

#include<stdio.h>#include<stdlib.h>#include<string.h>//定义一个学生结构体typedef struct student{    char no[12];            //学号    char name[40];          //姓名    char tele[20];          //电话号码    int D[18];              //电话号码码    char jg[60];            //籍贯    char addr[80];          //通讯地址    struct student* next;   //指向下一节点的指针}STU;//函数声明放在这里STU* LIstInit(STU* L);STU* ListCreate(STU* L, int n);void ListInsert(STU* L);void ListDelete(STU* L, char n[40]);void LIstSearch(STU* L, char n[]);void input(STU* p, int i);void output(STU* L);void menu();//创建表头,初始化链表STU* LIstInit(STU* L){    STU* head = NULL;    head = (STU*)malloc(sizeof(STU));    head->next = NULL;    L = head;    return L;}//创建链表,将新生成的节点插入到链表的表头STU* ListCreate(STU* L, int n){    int i;    for (i = 0; i < n; i++)    {        STU* p;        //将新生成的节点插入到链表中        p = NULL;        p = (STU*)malloc(sizeof(STU));        input(p, i);        p->next = L->next;        L->next = p;    }    return L;}//对链表进行节点的插入操作void ListInsert(STU* L){    STU* s = NULL;    //生成一个新节点s    s = (STU*)malloc(sizeof(STU));    printf("请输入您要插入的学生的学号:");    scanf("%s", &s->no);    printf("请输入您要插入的学生的姓名:");    scanf("%s", &s->name);    printf("请输入您要插入的学生的电话号码:");    scanf("%s", &s->tele);    printf("请输入您要插入的学生的身份证号码:");    scanf("%s", &s->D);    printf("请输入您要插入的学生的籍贯:");    scanf("%s", &s->jg);    printf("请输入您要插入的学生的通讯地址:");    scanf("%s", &s->addr);    s->next = L->next;    L->next = s;}//对链表的进行节点的删除操作void ListDelete(STU* L, char n[]){    STU* p = L->next, * pre = L;  //定义p指针指向头节点的指向,定义pre指向头节点,pre始终指向p的前驱节点    if (p == NULL)        printf("数据为空,无法删除!");    else    {        while (strcmp(p->name, n) != 0)        {            pre = p;            p = pre->next;            if (p == NULL)            {                printf("没有找到相关信息,无法删除\n");                return;            }        }        pre->next = p->next;        free(p);        printf("删除成功");    }}void LIstSearch(STU* L, char n[]){    STU* p = L->next;    if (p == NULL)        printf("数据为空,无法查找!");    else    {        while (strcmp(p->name, n) != 0)        {            p = p->next;            if (p == NULL)            {                printf("没有找到相关信息\n");                return;            }        }        printf("该学生的籍贯为:\n");        printf("\t%s\n", p->jg);    }}void ListModify(STU* L, char na[]){    char JG[60];    STU* p = L->next;    while (p != NULL)    {        if (strcmp(p->name, na) == 0)        {            printf("请选择您修改后的学生籍贯:\n");            scanf("%s", &JG);            strcpy(p->jg, JG);            break;        }        p = p->next;    }}void input(STU* p, int i){    printf("请输入第%d名学生的学号:", i + 1);    scanf("%s", &p->no);    printf("请输入第%d名学生的姓名:", i + 1);    scanf("%s", &p->name);    printf("请输入第%d名学生的电话号码:", i + 1);    scanf("%s", &p->tele);    printf("请输入第%d名学生的身份证号码:", i + 1);    scanf("%s", &p->D);    printf("请输入第%d名学生的籍贯:", i + 1);    scanf("%s", &p->jg);    printf("请输入第%d名学生的通讯地址:", i + 1);    scanf("%s", &p->addr);}void output(STU* L){    STU* p = L->next;    while (p != NULL)    {        printf("%s\t", p->no);        printf("%s\t", p->name);        printf("\t%s", p->tele);        printf("\t\t%s", p->D);        printf("\t%s", p->jg);        printf("\t%s", p->addr);        printf("\n");        p = p->next;    }}void PrintFile(STU* L){    STU* p = L->next;    FILE* fp;    fp = fopen("student.txt", "w");    fprintf(fp, "学号\t\t姓名\t\t电话号码\t\t身份证号码\t\t籍贯\t\t通讯地址\n");    while (p != NULL)    {        fprintf(fp, "%s\t", p->no);        fprintf(fp, "%s\t", p->name);        fprintf(fp, "\t%s", p->tele);        fprintf(fp, "\t%s", p->D);        fprintf(fp, "\t%s", p->jg);        fprintf(fp, "\t\t%s", p->addr);        fprintf(fp, "\n");        p = p->next;    }    printf("保存成功,请到当前目录下的student.txt文件中查看");    fclose(fp);}void menu(){    printf("\n\n");    printf("\t\t\t===================学试报名管理系统===================\n");    printf("\t\t\t* 作者:XXX  班级:XXXXXXXX  学号:XXXXXXXXXXXXXXX      *\n");    printf("\t\t\t*                                                  *\n");    printf("\t\t\t*          1>. 录入学生的相关信息                    *\n");    printf("\t\t\t*          2>. 全部学生的相关信息                    *\n");    printf("\t\t\t*          3>. 查找某个就学生的籍贯                  *\n");    printf("\t\t\t*          4>. 修改某个学生的籍贯                    *\n");    printf("\t\t\t*          5>. 删除某个学生的相关信息                *\n");    printf("\t\t\t*          6>. 插入某个学生的相关信息                *\n");    printf("\t\t\t*          7>. 保存学生信息                         *\n");    printf("\t\t\t*          0>. 退出管理系统                         *\n");    printf("\t\t\t*                                    欢迎使用本系统!*\n");    printf("\t\t\t=====================================================\n");    printf("\t\t\t输入选项,按回车进入选项:                             \n");}int main(){    int item, n;         //item用于接收输入的命令,n用于接收输入的学生人数    char nam[30];    STU* L = NULL;    L = LIstInit(L);    do    {        menu();        printf("请输入相应的数字,进行相应的操作:\n");        scanf("%d", &item);        switch (item)        {        case 1:            printf("请输入您要录入的学生人数:");            scanf("%d", &n);            L = ListCreate(L, n);            break;        case 2:            printf("全部学生信息如下:\n");            printf("学号\t\t姓名\t\t电话号码\t\t身份证号码\t\t籍贯\t\t通讯地址\n");            output(L);            break;        case 3:            printf("请输入您要查找的学生姓名:");            scanf("%s", nam);            LIstSearch(L, nam);            break;        case 4:            printf("请输入您要修改的学生姓名:");            scanf("%s", nam);            ListModify(L, nam);            break;        case 5:            printf("请输入您要删除的学生的姓名:");            scanf("%s", nam);            ListDelete(L, nam);            break;        case 6:            ListInsert(L);            break;        case 7:            PrintFile(L);            break;        case 0:            printf("即将退出学生籍贯管理系统.....");            exit(0);        default:            break;        }        printf("\n\n\n\n");    } while (item);    return 0;}

部分运行结果截图

C语言中怎么使用链表实现学生籍贯管理系统

感谢各位的阅读,以上就是“C语言中怎么使用链表实现学生籍贯管理系统”的内容了,经过本文的学习后,相信大家对C语言中怎么使用链表实现学生籍贯管理系统这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: C语言中怎么使用链表实现学生籍贯管理系统

本文链接: https://lsjlt.com/news/323582.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C语言使用链表实现学生籍贯管理系统
    本文实例为大家分享了C语言用链表实现学生籍贯管理系统的具体代码,供大家参考,具体内容如下 源码 #include<stdio.h> #include<stdlib....
    99+
    2024-04-02
  • C语言中怎么使用链表实现学生籍贯管理系统
    这篇文章主要讲解了“C语言中怎么使用链表实现学生籍贯管理系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中怎么使用链表实现学生籍贯管理系统”吧!源码#include<stdio...
    99+
    2023-06-29
  • C语言动态链表实现学生学籍管理系统
    本文实例为大家分享了C语言利用动态链表实现学生学籍管理系统的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include <s...
    99+
    2024-04-02
  • C语言模拟实现学生学籍管理系统
    学生学籍管理系统的C语言模拟实现是对链表、指针、结构体、文件操作等知识点的综合运用,需要实现的功能主要包含:输入学生信息、显示学生信息、查询学生信息、新增学生信息、删除学生信息、修改...
    99+
    2024-04-02
  • C语言链表实现学生成绩管理系统
    目录一、课程设计题目及内容二、主要设计思路三、程序源码及具体注释(1)预处理指令(2)类型定义(3)函数原型(4)main函数定义(5)其他函数定义 四、运行示例五、注意事...
    99+
    2024-04-02
  • C语言实现学生信息管理系统(链表)
    目录1.头文件和预处理2.定义学生结构体的数据结构3.定义每条记录或节点的数据结构4.函数接口代码.1).定义提示菜单2).增加学生记录3).输入学号接口·4).遍历表...
    99+
    2024-04-02
  • C语言使用单链表实现学生信息管理系统
    本文实例为大家分享了C语言使用单链表实现学生信息管理系统,供大家参考,具体内容如下 初学数据结构,记录一下学习过程。 运行结果如图: 1.运行界面 2.录入学生信息 3.按照总分...
    99+
    2024-04-02
  • C语言实现学籍管理系统
    本文实例为大家分享了C语言实现学籍管理系统的具体代码,供大家参考,具体内容如下 设计一个学籍管理系统,基本功能包括: 1.输入学生基本信息2.查询学生信息(1.按学号2.按姓名)3....
    99+
    2024-04-02
  • C语言实现简单的学生学籍管理系统
    本文实例为大家分享了C语言实现学生学籍管理系统的具体代码,供大家参考,具体内容如下 一 .课题设计内容与主要功能 1.1问题描述: 通过该系统实现对学生学籍信息进行录入、显示、修改、...
    99+
    2024-04-02
  • C语言利用链表实现学生成绩管理系统
    链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用。 链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随...
    99+
    2022-11-21
    C语言 链表 学生成绩管理系统 C语言 学生成绩管理系统 C语言 成绩管理系统
  • C语言实现学生学籍管理系统程序设计
    本文实例为大家分享了C语言实现学生学籍管理系统的具体代码,供大家参考,具体内容如下 一、题目设计及其要求 1、题目:学生学籍管理系统 用数据文件存放学生的学籍,可对学生学籍进行注册、...
    99+
    2024-04-02
  • C语言实现学生学籍管理系统课程设计
    目录设计要求完整代码运行结果本文实例为大家分享了C语言实现学生学籍管理系统的具体代码,供大家参考,具体内容如下 设计要求 设计学籍管理系统 1、添加学生信息2、浏览学生信息3、查询学...
    99+
    2024-04-02
  • C语言如何使用单链表实现学生信息管理系统
    这篇文章主要介绍了C语言如何使用单链表实现学生信息管理系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。运行结果如图:1.运行界面2.录入学生信息3.按照总分进行排序代码如下...
    99+
    2023-06-25
  • C语言嵌套链表实现学生成绩管理系统
    C语言嵌套链表实现学生成绩管理系统,供大家参考,具体内容如下 链表A,每个节点存放一个新的链表B1,B2,B3,B4,B5的头结点。 场景: 一个年级,相当链表A 该年级5个班,每个...
    99+
    2024-04-02
  • C语言如何实现学籍管理系统
    这篇文章给大家分享的是有关C语言如何实现学籍管理系统的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下设计一个学籍管理系统,基本功能包括:输入学生基本信息2.查询学生信息(1.按学号2.按姓名)3.删除学...
    99+
    2023-06-29
  • C语言实现学籍信息管理系统
    本文实例为大家分享了C语言实现学籍信息管理系统的具体代码,供大家参考,具体内容如下 系统功能:录入、修改、添加、删除、查找、读取、删除数据系统主要技术:基本就是函数的调用,只用到结构...
    99+
    2024-04-02
  • 怎么用C语言结构体链表和指针实现学生管理系统
    今天小编给大家分享一下怎么用C语言结构体链表和指针实现学生管理系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、需求分析...
    99+
    2023-06-30
  • C语言结构体链表和指针实现学生管理系统
    目录一、需求分析二、整体设计三、详细设计学生档案管理子系统学生成绩管理子系统四、代码实现本文实例为大家分享了C语言结构体链表和指针实现学生管理系统的具体代码,供大家参考,具体内容如下...
    99+
    2024-04-02
  • C语言链表实现学生信息管理系统程序设计
    本文实例为大家分享了C语言链表实现学生信息管理系统的具体代码,供大家参考,具体内容如下 事先存入的数据: 菜单 创建链表并倒序输出 输出链表中的全部信息 写入信息并保存至文件...
    99+
    2024-04-02
  • 使用C语言实现学生成绩管理系统
    最近正在学习C语言,搞了一个学生成绩管理系统的小程序,代码粗陋,大佬勿喷。 先上图: 整个程序采用链表来管理学生成绩,保存学生成绩用的是 文件处理函数,使用 fopen(FileP...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作