学生信息管理系统(录入学号, 姓名,成绩)——可以拓展延伸完善

#include <stdio.h>
#include <string.h>
int Menu(void);
void Add(void);
void Printf(void);
void pdd(void);
void dsm(void);
void lb(void);
void lbw(void);
struct STU{
    char name[20];
    int id;
    float score;
};

struct STU stu[100];//定义一个结构体数组
int count=0;

int main()
{
    while(1)
    {
        int res = Menu();
        switch(res)
        {
            case 1:Add();break;
            case 2:pdd();break;
            case 3:lb();break;
            case 4:dsm();break;
            case 5:lbw();break;
            case 6:Printf();break;
            case 0:return 0;
        
        }
    
    
    }
    return 0;
}
/******
函数功能:添加学生信息
用学号判断该学生是否已存在:
    不存在,添加
    存在,结束
******/
void Add(void)
{
    printf("请输入要添加的学号:\n");
    int num,i;
    scanf("%d",&num);
    for(i=0;i<count;i++)
    {
        if(num == stu[i].id)
        {
            printf("该学号已被添加,返回主菜单\n");
            return;
        }
    }
    stu[i].id = num;
    printf("请输入要添加的姓名:\n");
    scanf("%s",stu[i].name);
    printf("请输入要添加的成绩:\n");
    scanf("%f",&stu[i].score);
    count++;
    printf("添加学生信息成功\n");
}
/******
函数功能:打印学生信息
******/
void Printf(void)
{
    printf("当前系统有%d名学生\n",count);
    printf("学号\t姓名\t成绩\n");
    for(int i=0;i<count;i++)
    {
        printf("%d\t%s\t%.2f\n",stu[i].id,stu[i].name,stu[i].score);
    }
}

int Menu(void)//菜单函数
{
    printf("**********学生管理系统**********\n");
    printf("*********1.添加学生信息**********\n");
    printf("*********2.删除学生信息**********\n");
    printf("*********3.修改学生信息**********\n");
    printf("*********4.查找学生信息**********\n");
    printf("*********5.排序学生信息**********\n");
    printf("*********6.遍历学生信息**********\n");
    printf("**********0.退出系统***********\n");
    printf("请输入要完成的操作:\n");
    int num;
    scanf("%d",&num);
    return num;
}
/******
函数功能:删除学生信息
******/
void pdd(void)
{
    printf("请输入要删除的学号:\n");
    int num,i;
    scanf("%d",&num);
    for(i=0;i<count;i++)
    {
        if(num == stu[i].id)
        {
            printf("%d\t%s\t%.2f\n",stu[i].id,stu[i].name,stu[i].score);
            printf("是否确认!1 or 0\n");
            int j;
            scanf("%d",&j);
            if(j=1)
            {
            for(int m=num;m<count;m++)
            //stu[i].id=0;
            //strcpy(stu[i].name,"0");
            //stu[i].score=0.00;
            {
            stu[m-1]=stu[m];
            }
            count--;
            printf("删除成功\n");
            }
            return;
        }
    }

}
/******
函数功能:查找学生信息
******/
void dsm(void)
{
    printf("请输入要查找的学号:\n");
    int num,i;
    scanf("%d",&num);
    for(i=0;i<count;i++)
    {
        if(num == stu[i].id)
        {
            printf("%d\t%s\t%.2f\n",stu[i].id,stu[i].name,stu[i].score);
            return;
        }
    }
}
/******
函数功能:修改学生信息
******/
void lb(void)
{
    printf("请输入学号:\n");
    int num,i;
    scanf("%d",&num);
    for(i=0;i<count;i++)
    {
        if(num == stu[i].id)
        {
            printf("%d\t%s\t%.2f\n",stu[i].id,stu[i].name,stu[i].score);
            printf("是否修改!1 or 0\n");
            int j;
            scanf("%d",&j);
            if(j=1)
            {
            printf("请输入要修改的姓名:\n");
            scanf("%s",stu[i].name);
            printf("请输入要修改的成绩:\n");
            scanf("%f",&stu[i].score);
            printf("添加学生信息成功\n");
            }
            return;
        }
    }

}
/******
函数功能:排序学生信息
******/
void lbw(void)
{
    struct STU tmp;
    int num,i,j;
    for(i=1;i<count;i++)
    {
        for(j=0;j<count-1;j++)
        {
        if(stu[j].score<stu[j+1].score)
        {
         tmp = stu[j];
          stu[j]= stu[j+1];
           stu[j+1]= tmp;
        }
        }
    }
}

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值