7.10 作业——函数(学生管理系统)

完成学生管理系统

1> 使用菜单完成

2> 有学生的信息录入功能:输入学生个数,并将学生的姓名、分数录入

3> 查看学生信息:输出所有学生姓名以及对应的分数

4> 求出学习最好的学生信息:求最大值

5> 按姓名将所有学生进行升序排序

6> 按成绩将所有学生进行升序排序

要求每个功能使用函数完成

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

void caidan()
{
    printf("——————学生信息管理系统————\n");
    printf("——————系统功能菜单——————\n");
    printf("1、信息录入\n");
    printf("2、查看学生信息\n");
    printf("3、查看学习成绩最好的学生信息\n");
    printf("4、按姓名进行升序排序\n");
    printf("5、按成绩进行升序排序\n");
    printf("——————按0退出——————\n");
}

//信息录入
void xinxi(int n,char name[100][20],int fen[])
{
   
    for(int i=0;i<n;i++)
    {
        printf("请输入第%d个学生的姓名:",i+1);
        scanf("%s",name[i]);
        printf("请输入第%d个学生的成绩:",i+1);
        scanf("%d",&fen[i]);
        getchar();
    }
    printf("录入成功\n");
}

//查看信息
void chakan(int n,char name[100][20],int fen[])
{
    for(int i=0;i<n;i++)
    {
        printf("第%d个学生的姓名为:%s\t成绩为:%d\n",i+1,name[i],fen[i]);
    }
    printf("\n");
}

//求最大值
void max(int n,char name[100][20],int fen[])
{
    int max=fen[0];
    int k=0;
    for(int i=1;i<n;i++)
    {
        if(max<fen[i])
        {
            max=fen[i];
            k=i;
        }
    }
    printf("成绩最好的学生是%s,他的分数为:%d\n",name[k],fen[k]);
    printf("\n");
}

//按姓名升序排序
void up(int n,char name[100][20],int fen[])
{
    char temp[20]="";
    int tcmp=0;
    for(int i=1;i<n;i++)
    {
        for(int j=0;j<n-i;j++)
        {
            if(strcmp(name[j],name[j+1])>0)
            {
                strcpy(temp,name[j]);
                strcpy(name[j],name[j+1]);
                strcpy(name[j+1],temp);
                tcmp=fen[j];
                fen[j]=fen[j+1];
                fen[j+1]=tcmp;
            }
        }
    }
    printf("按姓名升序排序为:\n");
    for(int i=0;i<n;i++)
    {
        printf("%s\t%d\t\n",name[i],fen[i]);
    }
    printf("\n");
}


//按成绩升序排序
void down(int n,char name[100][20],int fen[])
{
    char temp[20]="";
    int tcmp=0;
    for(int i=1;i<n;i++)
    {
        for(int j=0;j<n-i;j++)
        {
            if(fen[j]>fen[j+1])
            {
                strcpy(temp,name[j]);
                strcpy(name[j],name[j+1]);
                strcpy(name[j+1],temp);
                tcmp=fen[j];
                fen[j]=fen[j+1];
                fen[j+1]=tcmp;
            }
        }
    }
    printf("按成绩升序排序为:\n");
    for(int i=0;i<n;i++)
    {
        printf("%s\t%d\t\n",name[i],fen[i]);
    }
    printf("\n");
}

//主函数
int main(int argc, char const *argv[])
{
int x=0; //功能
int n=0; //学生数量
char name[100][20]={0}; //姓名
int fen[100]={0}; //分数
    caidan();
    while(1)
    {
        printf("请输入你要使用的功能:");
        scanf("%d",&x);
        switch(x)
        {
            case 1:
            {
                printf("输入学生个数:");
                scanf("%d",&n);
                xinxi(n,name,fen);
                break;
            }
            case 2:
            {
                chakan(n,name,fen);
                break;
            }
            case 3:
            {
                max(n,name,fen);
                break;
            }
            case 4:
            {
                up(n,name,fen);
                break;
            }
             case 5:
            {
                down(n,name,fen);
                break;
            }
             case 0:
            {
                goto END;
            }
            default: printf("您输入的格式有问题\n");
        }
    }
    END:
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值