DAY10(7.10)

作业:

完成学生管理系统

#include<stdio.h>
#include<string.h>
#define MAX 40

int x=0;
char xm[MAX][20]={0};
int cj[MAX]={0};


void print_menu(void)
{    
 	printf("\t\t======学习管理系统======\n");
    printf("\t\t======1.学生信息录入======\n");
    printf("\t\t======2.查询学生信息======\n");    
   	printf("\t\t======3.查看成绩最好的学生信息======\n"); 
    printf("\t\t======4.将学生按姓名升序排序======\n"); 
    printf("\t\t======5.将学生按成绩升序排序======\n");
    printf("\t\t======0.退出======\n");
}

char lr_1(char xm[][20],int x)  //录入姓名
{

	for(int i=0;i<x;i++)
	{
		printf("请输入第%d位学生的姓名:",i+1);
		scanf("%s",xm[i]);
	}
	return xm[x][20];
}
int lr_2(int cj[],int x)    //录入成绩
{

	for(int i=0;i<x;i++)
	{
		printf("请输入第%d位学生的成绩:",i+1);
		scanf("%d",&cj[i]);
	}
	return cj[x];
}

void cx_1(void)     //查看所有信息
{
    for(int i=0;i<x;i++)
    {
        printf("%s学生的成绩为%d\n",xm[i],cj[i]);
    }
}

void ck_1(void) //查看最大值
{
    int max=cj[0];
    int maxi=0;
    int i=0;
    for(i=0;i<x;i++)
    {
        if(cj[i]>max) //寻找最大值
        {
            maxi=i;
        }
    }
    printf("成绩最好的学生是%s在第%d位\n",xm[maxi],maxi+1);
}

void px_1(void) //按姓名排序
{
    int i=0;
    
    for(i=1;i<x;i++) //冒泡排序
    {
        for(int j=0;j<x-i;j++)
        {
            if(strcmp(xm[j],xm[j+1])>0) //判断大小并交换
            {
                char temp[20]="";
                strcpy(temp,xm[j]);
                strcpy(xm[j],xm[j+1]);
                strcpy(xm[j+1],temp);
            }
        }
    }
    for(int i=0;i<x;i++)
    {
        printf("%s\t",xm[i]);
    }
    puts("");
}

void px_2(void) //按照成绩排序
{
    for(int i=1;i<x;i++)
    {
        for(int j=0;j<x-i;j++)
        {

            if(cj[j]>cj[j+1]) //将成绩大的交换,同时进行姓名的交换
            {
                cj[j]=cj[j]+cj[j+1];
                cj[j+1]=cj[j]-cj[j+1];
                cj[j]=cj[j]-cj[j+1];

                char temp[20]="";
                strcpy(temp,xm[j]);
                strcpy(xm[j],xm[j+1]);
                strcpy(xm[j+1],temp);
            }
        }
    }
    for(int i=0;i<x;i++)
    {
        printf("%s\t",xm[i]);
    }
    puts("");
}

int main(int argc, const char *argv[])
{
	while(1) //死循环
	{
		print_menu(); //弹出菜单
		int menu=0;

		printf("请选择:");
		scanf("%d",&menu);
		getchar();
	
		
		switch(menu)
		{
			case 1:
			{
				printf("请输入学生个数:");
				scanf("%d",&x);
				lr_1(xm,x);
				lr_2(cj,x);
				break;
			}
			case 2:
			{
				cx_1();
                break;
			}
            case 3:
            {
                ck_1();
                break;
            }
            case 4:
            {
                px_1();
                break;
            }
            case 5:
            {
                px_2();
                break;
            }
            case 0:
            {
                return 0;
            }
            default:
            {
                printf("输入错误\n");
            }
		}
	}
	return 0;
}

1> 使用菜单完成

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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值