weixin_59554142 2021-06-22 10:36 采纳率: 66.7%
浏览 59
已结题

C语言编译,学生成绩管理

 用C语言编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。

要求建立一个4个学生的信息登记表,每个学生的信息包括:学号、姓名和3门课程的成绩(math、c、english)

程序运行时显示一个简单的菜单。例如:a) 信息输入(input)b) 总分统计(count)c) 总分排序(sort)d) 查询(query)

其中:对四个学生的信息进行输入对每个学生的3门课程统计总分对四个学生的总分按降序排列并显示出来查询输入一个学号后,显示出该学生的有关信息。 

  • 写回答

4条回答 默认 最新

  • qfl_sdu 2021-06-22 12:45
    关注

    代码如下,如有帮助,请采纳一下,谢谢。

    
    #include <stdio.h>
    struct Student
    {
    	int nmb;
    	char name[20];
    	int score[3];
    };
    //录入数据
    void input(struct Student a[])
    {
    	int i;
    	printf("输入4个学生的学号,姓名,math、C、english三门课的成绩:\n");
    	for (i = 0;i< 4;i++)
    	{
    		scanf("%d %s %d %d %d",&a[i].nmb,a[i].name,&a[i].score[0],&a[i].score[1],&a[i].score[2]);
    	}
    }
    //统计总成绩
    void Count(struct Student a[])
    {
    	int i,j;
    	int sum = 0;
    	printf("总成绩分别为:\n");
    	for (i = 0;i< 4;i++)
    	{
    		sum = 0;
    		for(j =0;j<3;j++)
    			sum += a[i].score[j];
    		printf("%d\t%s\t%d\n",a[i].nmb,a[i].name,sum);
    	}
    }
    
    //按总分从高到低排序
    void Sort(struct Student a[])
    {
    	int i,j;
    	int avg1,avg2;
    	struct Student tmp;
    	for (i = 0;i< 9;i++)
    	{
    		for (j = 0;j< 9-i;j++)
    		{
    			avg1 = a[j].score[0] + a[j].score[1]+a[j].score[2];
    			avg2 = a[j+1].score[0] + a[j+1].score[1]+a[j+1].score[2];
    			if(avg1 < avg2)
    			{
    				tmp = a[j];
    				a[j] = a[j+1];
    				a[j+1] = tmp;
    			}
    		}
    	}
    	printf("number	name	math	C	English	average\n");
    	for (i = 0;i<10;i++)
    	{
    		avg1 = a[i].score[0] + a[i].score[1]+a[i].score[2];
    		printf("%d\t%s\t%d\t%d\t%d\t%.2f\n",a[i].nmb,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],avg1);
    	}
    }
    
    
    //query
    void Query(struct Student a[])
    {
    	int id;
    	int i,j;
    	printf("请输入学号进行查询:");
    	scanf("%d",&id);
    	for (i=0;i<4;i++)
    	{
    		if(a[i].nmb == id)
    		{
    			printf("%d\t%s\t");
    			for(j =0;j<3;j++)
    				printf("%d\t",a[i].score[j]);
    			printf("\n");
    			break;
    		}
    	}
    }
    
    int main()
    {
    	struct Student a[4];
    	input(a); //(1)
    	Count(a); //(2)
    	Sort(a);  //(3)
    	Query(a); //(4)
    	return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月28日

悬赏问题

  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler