C语言实现考试报名管理系统

 更新时间:2022年06月02日 12:10:10   作者:南栀城边  
这篇文章主要为大家详细介绍了C语言实现考试报名管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C语言实现考试报名管理系统的具体代码,供大家参考,具体内容如下

源代码:

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

typedef struct node {
    char name[40];
    char id[20];
    char gender[10];
    char age[10];
    char tele[20];
    struct node *pNext;
} NODE , *PNODE;

void InputElement(PNODE);
PNODE CreatList(void);
void FindList(PNODE);
void AmendList(PNODE);
void DeleteList(PNODE);
void InsertList(PNODE);

int main() {
    PNODE pHead = NULL;
    int opt;
    while(1) {
        system("cls");
        printf("-------考试报名管理系统-------\n");
        printf("1.录入考生信息\n");
        printf("2.查找考生信息\n");
        printf("3.修改考生信息\n");
        printf("4.删除考生信息\n");
        printf("5.插入考生信息\n");
        printf("0.退出系统\n");
        printf("请输入您的操作命令:");
        scanf("%d" , &opt);
        switch(opt) {
            case 1:
                pHead = CreatList();
                getchar();
                getchar();
                break;
            case 2:
                FindList(pHead);
                getchar();
                getchar();
                break;
            case 3:
                AmendList(pHead);
                getchar();
                getchar();
                break;
            case 4:
                DeleteList(pHead);
                getchar();
                getchar();
                break;
            case 5:
                InsertList(pHead);
                getchar();
                getchar();
                break;
            case 0:
                printf("\n已退出系统!\n");
                exit(0);
                getchar();
                getchar();
                break;
        } 
    }
    return 0;
}

void InputElement(PNODE p) {
    printf("姓名:");
    scanf("%s" , p->name);
    printf("身份证号:"); 
    scanf("%s" , p->id); 
    printf("性别:"); 
    scanf("%s" , p->gender);
    printf("年龄:"); 
    scanf("%s" , p->age);
    printf("电话号码:"); 
    scanf("%s" , p->tele); 
}

PNODE CreatList(void) {
    int i , len;
    PNODE pHead = (PNODE)malloc(sizeof(NODE)); 
    PNODE pTail = pHead;
    pTail->pNext = NULL;
    printf("\n请输入报考学生的总人数:");
    scanf("%d" , &len); 
    for(i = 0; i < len ; i++) {    
        printf("请输入第 %d 位考生的相关信息\n" , i + 1);
        PNODE p = (PNODE)malloc(sizeof(NODE));
        InputElement(p);
        pTail->pNext = p;
        p->pNext = NULL;
        pTail = p;
    } 
    return pHead;
}

void FindList(PNODE pHead) {
    char id[20];
    PNODE p = pHead;
    printf("\n请输入你要查找的身份证号码:");
    scanf("%s" , id);
    while(p != NULL) {
        if(strcmp(id , p->id) == 0) {
            printf("%s 的信息如下:\n" , p->name);
            printf("身份证号:%s\n" , p->id);
            printf("性别:%s\n" , p->gender);
            printf("年龄:%s\n" , p->age);
            printf("电话号码:%s\n" , p->tele);
            return;
        }else if(p->pNext == NULL) {
            printf("未找到考生的相关信息!\n");
            return;
        } 
        p = p->pNext;
    }
    return;    
}

void AmendList(PNODE pHead) {
    char name[40];
    PNODE p = pHead;
    printf("\n请输入你要修改的考生姓名:");
    scanf("%s" , name);
    while(p != NULL) {
        if(strcmp(name , p->name) == 0) {
            printf("%s 的信息如下:\n" , p->name);
            printf("身份证号:%s\n" , p->id);
            printf("性别:%s\n" , p->gender);
            printf("年龄:%s\n" , p->age);
            printf("电话号码:%s\n" , p->tele);
            printf("请输入修改后的考生信息:\n");
            InputElement(p);
            printf("修改成功!\n"); 
            return;
        }else if(p->pNext == NULL) {
            printf("未找到考生的相关信息!\n");
            return;
        } 
        p = p->pNext;
    }
    return;    
}

void DeleteList(PNODE pHead) {
    char name[40];
    PNODE p = pHead;
    PNODE q = p->pNext;
    printf("\n请输入要删除的考生姓名:");
    scanf("%s" , name);
    while(strcmp(q->name , name) != 0) {
        p = q;
        q = p->pNext;
        if(q == NULL) {
            printf("未找到考生的相关信息!\n");
            return;
        }
    }
    p->pNext = q->pNext;
    free(q);
    q = NULL;
    printf("删除成功!");
    return;
}

void InsertList(PNODE pHead) {
    PNODE p = (PNODE)malloc(sizeof(NODE));
    printf("\n请输入要插入的考生信息\n");
    InputElement(p);
    p->pNext = pHead->pNext;
    pHead->pNext = p;
    printf("插入成功!\n");
    return; 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 解决Microsoft Visual C++ 2010 Express 运行及调试问题

    解决Microsoft Visual C++ 2010 Express 运行及调试问题

    这篇文章主要介绍了解决Microsoft Visual C++ 2010 Express 运行及调试问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • C++11中的智能指针shared_ptr、weak_ptr源码解析

    C++11中的智能指针shared_ptr、weak_ptr源码解析

    本文是基于gcc-4.9.0的源代码进行分析,shared_ptr和weak_ptr是C++11才加入标准的,仅对C++智能指针shared_ptr、weak_ptr源码进行解析,需要读者有一定的C++基础并且对智能指针有所了解
    2021-09-09
  • 关于C++静态数据成员的实现讲解

    关于C++静态数据成员的实现讲解

    今天小编就为大家分享一篇关于关于C++静态数据成员的实现讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • C++中设计一个类时的注意事项分享

    C++中设计一个类时的注意事项分享

    这篇文章主要来和大家分享一下C++中,设计一个类要注意哪些东西,这往往也是C++面试时会考到的问题,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-06-06
  • opencv C++模板匹配的简单实现

    opencv C++模板匹配的简单实现

    这篇文章主要介绍了opencv C++模板匹配的简单实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • C++使用一个栈实现另一个栈的排序算法示例

    C++使用一个栈实现另一个栈的排序算法示例

    这篇文章主要介绍了C++使用一个栈实现另一个栈的排序算法,结合实例形式分析了C++借助辅助栈实现栈排序算法的相关操作技巧,需要的朋友可以参考下
    2017-05-05
  • 详解C++ functional库中的仿函数使用方法

    详解C++ functional库中的仿函数使用方法

    仿函数(functor)又称之为函数对象(function object),实际上就是 重载了()操作符 的 struct或class。本文将详细讲解C++中仿函数的使用方法,需要的可以参考一下
    2022-04-04
  • Qt(C++)调用工业相机Basler的SDK使用示例

    Qt(C++)调用工业相机Basler的SDK使用示例

    这篇文章主要介绍了Qt(C++)调用工业相机Basler的SDK使用示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • C++中给二维指针分配内存(实现代码)

    C++中给二维指针分配内存(实现代码)

    我们都知道在 C++ 中分配动态数组用的是 new , 撤销动态数组用的是 delete[ ] ,现在让我们来看看怎么利用这两个关键字给二维指针分配内存
    2013-10-10
  • C++ opencv图像处理实现图片边缘检测示例

    C++ opencv图像处理实现图片边缘检测示例

    这篇文章主要为大家介绍了C++ opencv实现图片边缘检测示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05

最新评论