学生学籍管理C语言

学生学籍管理是针对C语言设计,本设计实现的主要功能是对学生的信息进行增、删、改、查,这4个基本功能。学生的信息分别为学号、姓名、年龄、性别这四个属性。

所以本设计将分为4个模块,分别为增加学习信息模块、删除学生信息模块、更改学生信息模块、查询学习信息模块。


1、先定义一个结构体类型,分别存储学生的学号、姓名、年龄、性别4个属性

struct student
{
        char stu_num[5];//学生学号
        char stu_name[20];//学生姓名
        int stu_age;//学生年龄
        char stu_sex[10];//学生性别、
};

2、定义一个枚举,用来保存实现4个功能的值,如:增:1,删:2,改:3,查:4,退出:5

enum ADCS
{
        add = 1,
        del,
        change,
        search,
        quit
}adcs;

3、用结构体类型定义一个数组,用来储存100个信息的信息

struct student buff[100];

开始相关的模块代码编写:

1、首先我们设计一个显示界面

void Printf(void)
{
        printf("------------------------------------\n");
        printf("1:add 2:del 3:change 4:search 5:quit\n");
        printf("------------------------------------\n");
}

界面显示效果:

2、增加学生信息模块

void add1(void)
{
        char num[5];//定义一个字符数组,用来存储学号
        char name[20];//存储姓名
        int age;//存储年龄
        char sex[10];//存储性别
        scanf("%s%s%d%s",num,name,&age,sex);//分别输入学生信息

        strcpy(buff[i].stu_num,num);//将输入的数据复制到学生结构体中的成员
        strcpy(buff[i].stu_name,name);
        buff[i].stu_age = age;
        strcpy(buff[i].stu_sex,sex);
        printf("序号%d:%s,%s,%d,%s\n",i,buff[i].stu_num,buff[i].stu_name,buff[i].stu_age,buff[i].stu_sex);//打印第一个学生的信息
        printf("添加成功\n");
}

3、删除学生信息模块

int del1(void)
{
        printf("请输入要删除学生信息的学号:\n");
        char a[5];
        int b = 0;
        scanf("%s",a);//输入一个字符串,代表学号,根据输入的学号查找到相应同学的信息
        for(int c = 0;c < 100;c++)
        {
                if(strcmp(a,buff[c].stu_num) == 0)//判断输入的学号是否存在
                {
                        printf("请选择你要删除信息的选项\n");
                        printf("1:del stu_num 2:del stu_name 3:del stu_age 4:del stu_sex 5:del all\n");
                        scanf("%d",&b);//输入要选择删除哪项
                        if(b == 1)
                        {
                                strcpy(buff[c].stu_num,"\0");//将学号成员复制一个空格,相当于删掉了学号
                                printf("删除学号成功\n");
                                printf("序号%d:%s %s %d %s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
                        }
                        else if(b == 2)
                        {
                                strcpy(buff[c].stu_name,"\0");//将姓名成员复制一个空格,相当于删掉了姓名
                                printf("删除姓名成功\n");
                                printf("序号%d:%s %s %d %s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
                        }
                        else if(b == 3)
                        {
                                buff[c].stu_age = 0;//将学号成员赋值一个0,相当于删掉了年龄
                                printf("删除年龄成功\n");
                                printf("序号%d:%s %s %d %s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
                        }
                        else if(b == 4)
                        {
                                strcpy(buff[c].stu_sex,"\0");//将性别成员复制一个空格,相当于删掉了性别
                                printf("删除性别成功\n");
                                printf("序号%d:%s %s %d %s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
                        }
else
                        {
                                strcpy(buff[c].stu_num,"\0");
                                strcpy(buff[c].stu_name,"\0");
                                buff[c].stu_age = 0;
                                strcpy(buff[c].stu_sex,"\0");
                                printf("全部信息删除成功\n");
                                printf("序号%d:%s %s %d %s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
                        }
                        return 0;
                }
        }
        printf("未查询到相关学号的学生信息\n");
}

4、更改学生信息模块

int change1(void)
{
        char a[5];
        int b = 0;
        char num[5];
        char name[10];
        int age;
        char sex[10];

        printf("请输入更改学生信息的学号:\n");
        scanf("%s",a);


        for(int c = 0;c < 100;c++)
        {
                if(strcmp(a,buff[c].stu_num) == 0)
                {
                        printf("请输入更改的选项:\n");
                        printf("1:change stu_num 2:change stu_name 3:change stu_age 4:change stu_sex 5:change all\n");
                        scanf("%d",&b);

                        if(b == 1)
                        {
                                printf("请输入要更改的stu_num:\n");
                                scanf("%s",num);
                                strcpy(buff[c].stu_num,num);
                                printf("序号%d:%s,%s,%d,%s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
                        }
                        else if(b == 2)
                        {
                                printf("请输入要更改的stu_name:\n");
                                scanf("%s",name);
                                strcpy(buff[c].stu_name,name);
                                printf("序号%d:%s,%s,%d,%s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);

                        }
else if(b == 3)
                        {
                                printf("请输入要更改的stu_age:\n");
                                scanf("%d",&age);
                                buff[c].stu_age = age;
                                printf("序号%d:%s,%s,%d,%s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
                        }
                        else if(b == 4)
                        {
                                printf("请输入要更改的stu_sex:\n");
                                scanf("%s",sex);
                                strcpy(buff[c].stu_sex,sex);
                                printf("序号%d:%s,%s,%d,%s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
                        }
                        else
                        {
                                printf("请输入要更改的全部信息:\n");
                                scanf("%s%s%d%s",num,name,&age,sex);
                                strcpy(buff[c].stu_num,num);
                                strcpy(buff[c].stu_name,name);
                                buff[c].stu_age = age;
                                strcpy(buff[c].stu_sex,sex);
                                printf("序号%d:%s,%s,%d,%s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
                        }
                        return 0;
                }
        }
        printf("未查询到相关学号\n");
}

5、查找学生信息

int search1(void)
{
        printf("请输入查询的学号:\n");
        char a[5];
        char num[5];
        char name[10];
        int age;
        char sex[10];
        scanf("%s",a);//输入要查找学生的学号

        for(int b = 0;b < 100;b++)
        {
                if(strcmp(a,buff[b].stu_num) == 0)//如果查找到相应的学号,则进行下面的操作
                {
                        strcpy(num,buff[b].stu_num);
                        strcpy(name,buff[b].stu_name);
                        age = buff[b].stu_age;
                        strcpy(sex,buff[b].stu_sex);

                        printf("查询到的信息:%s,%s,%d,%s\n",num,name,age,sex);
                        return 0;
                }

        }
        printf("未查询到相关学号\n");
}

6、主函数main

int i = 0;
int main()
{
        int a = 0;
        while(1)
        {
                Printf();
                scanf("%d",&a);
                adcs = a;
                switch(adcs)
                {
                        case add:
                                add1();//添加学生信息,如:学号,姓名,年龄,性别
                                i++;
                                break;
                        case del:
                                del1();//删除学生信息
                                break;
                        case change:
                                change1();//更改学生信息,可以整条信息更改,可以对单独的信息进行更改,如:只改学生学号
                                break;
                        case search:
                                search1();//查询学生信息,通过学号查询
                                break;
                        case quit:
                                return 0;
                        default:
                                printf("输入的是无效数字,请重新输入有效数字:\n");
                                break;
                }

        }

        return 0;
}

7、用到的头文件

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

 8、总结

        这是本人第一次使用CSDN这交流平台发布博客,对这个软件玩得不太熟。这只是我第一次用C语言做的一个小小设计,但是我想把这设计分享给大家给我参考一下,如果有的知识点没有理解到位,请各位多指教指教,我一定向大佬们虚心学习。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值