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; 
}

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

相关文章

  • C语言制作表白神器的示例代码

    C语言制作表白神器的示例代码

    这篇文章主要为大家详细介绍了如何利用C语言制作一个简单的表白神器,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解一下
    2023-03-03
  • 完全掌握C++编程中构造函数使用的超级学习教程

    完全掌握C++编程中构造函数使用的超级学习教程

    这篇文章主要介绍了C++中的构造函数,包括C++11标准中的新特性的介绍,十分推荐!需要的朋友可以参考下
    2016-01-01
  • c++编译使用log4cplus的详细步骤

    c++编译使用log4cplus的详细步骤

    C++很强大,但是仍然有很多不尽如人意的地方,比如打印日志方面就没有java的log4j那种信手拈来,自然而然地东西,今天我们说一说一个很强大地日志库log4cplus在c++项目中地使用,感兴趣的朋友一起看看吧
    2023-10-10
  • C++中constexpr与函数参数转发的操作方法

    C++中constexpr与函数参数转发的操作方法

    constexpr是c++11引入的关键字,c++11的constexpr的函数中只是支持单句代码,c++14限制放宽,可以在里边写循环及逻辑判断等语句,本文探讨关于constexpr的函数中参数的现象,以及如果参数是constexpr如何做转发,感兴趣的朋友一起看看吧
    2024-02-02
  • QT QML的元素布局的实现

    QT QML的元素布局的实现

    这篇文章主要介绍了QT QML的元素布局的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • wince程序防止创建多个实例实现互斥作用

    wince程序防止创建多个实例实现互斥作用

    什么时候用的互斥?当你的程序只允许同时打开一个的时候,就可以通过互斥来实现,下面说的互斥,主要是针对防止程序创建多个实例这种情况来实现的
    2014-02-02
  • C++的拷贝构造函数你了解吗

    C++的拷贝构造函数你了解吗

    这篇文章主要为大家详细介绍了C++的拷贝构造函数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • C++函数重载、隐藏与覆盖重写的精通指南

    C++函数重载、隐藏与覆盖重写的精通指南

    这篇文章主要给大家介绍了关于C++函数重载、隐藏与覆盖重写的相关资料,这几个名词看着好像很像,不过其实一样都不一样,本文通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • C++ COM编程之QueryInterface函数(一)

    C++ COM编程之QueryInterface函数(一)

    这篇文章主要介绍了C++ COM编程之QueryInterface函数(一),QueryInterface是组件本身提供对自己查询的一个接口,需要的朋友可以参考下
    2014-10-10
  • C++删除链表中间节点的方法

    C++删除链表中间节点的方法

    这篇文章主要介绍了C++删除链表中间节点的方法,结合实例形式分析了链表删除中间节点的具体思路与实现技巧,需要的朋友可以参考下
    2017-05-05

最新评论