、设计一个学生成绩排名系统,成绩记录以下信息:班级,学号,姓名,四门成绩(百分 制)。

 

定义一个学生结构和结构数组,scanf或者从文件读入学生信息

增删改学生成绩,遍历学生数组统计成绩数据


#include "stdio.h"

#define N 2
struct student{
	int id;
	char name[20];
	int kaoqun;
	int biaoxian;
	int zuoye;
	int biji;
	int sum;
}stud[N],t;

int main()
{
	int i,j;
	for(i=0;i<N;i++){
		printf("请输入第%d个学生信息\n",i+1);
		scanf("%d %s",&stud[i].id,&stud[i].name);
		fflush(stdin);
		scanf("%d %d %d %d",&stud[i].kaoqun,&stud[i].biaoxian,&stud[i].zuoye,&stud[i].biji);
		stud[i].sum = stud[i].kaoqun*0.3+stud[i].biaoxian*0.3+stud[i].zuoye*0.3+stud[i].biji*0.1;
	}
	
	//排序
	
	for (i = 0; i < N - 1; i++){
	    for (j = 0; j < N - 1 - i; j++){ //按成绩对学生信息进行排序
	        if (stud[j].sum > stud[j + 1].sum){ //整型数字的比较
	            t = stud[j];
	            stud[j] = stud[j + 1];
	            stud[j + 1] = t;
	        }
	    }
	}
	//打印
	printf("学号\t姓名\t考勤\t表现\t作业\t笔记\t总分\t\n");
    for (i = 0; i < N; i++){
        printf("%d\t", stud[i].id);
        printf("%s\t", stud[i].name);
        printf("%d\t", stud[i].kaoqun);
        printf("%d\t", stud[i].biaoxian);
        printf("%d\t", stud[i].zuoye);
        printf("%d\t", stud[i].biji);
        printf("%d \n", stud[i].sum);
    }
	
    return 1;
}

 

附上源码:https://blog.csdn.net/weixin_45254641/article/details/103501413

如有帮助,望采纳。

#include"student.h"
#define _CRT_SECURE_NO_WARNINGS
int main()
{
    char answer;
    int choice;
    struct student *head ;
    head = create(); 
    sort(head);
    printf("\t\t\t学生成绩管理系统\n");
    printf("\n\t************STUDENT-SCORE-SYSTEM  5.0***************\n");
    printf("\n\t************powered by 信卓11801聂健***************\n");
    printf("\n\t\t\t按任意键登录系统\n");
    getchar();
    system("cls");
    do
    {
	    printf("欢迎你,管理员!\n");
	    printf("|---------------------------------------|\n");
	    printf("|\t请输入选项编号(0-6):\t\t|");
	    printf("\n|---------------------------------------|\n");
	    printf("|\t1--浏览学生信息:\t\t|\n");
	    printf("|\t2--查询学生信息:\t\t|\n");
	    printf("|\t3--修改学生信息:\t\t|\n");
	    printf("|\t4--删除学生信息:\t\t|\n");
	    printf("|\t5--各科成绩:\t\t\t|\n");
	    printf("|\t6--最高分:\t\t\t|\n");
	    printf("|\t0--退出系统:\t\t\t|\n");
	    printf("|---------------------------------------|\n");
	    printf("请输入选项");
	    scanf("%d",&choice);
	    fflush(stdin);
	    switch(choice)
	    {
		    case 0:
			    {
				        printf("********退出系统*********\n");
				        filein(head);//将修改后的成绩保存在data11.txt中
					printf("修改的数据已经保存在data11.txt中\n");
					printf("欢迎下次使用\n");
					exit(0);
					break;
				}
			case 1:
				{
					system("cls");
					printf("*************学生成绩一览表********************\n");
					printf("学号\t姓名\t课程1\t课程2\t课程3\t总分\t排名\n");
					print(head); //打印所有人的信息
					printf("\n按任意键继续回到菜单\n");
					getch();
					system("cls");
					break;
				}
			case 2:
				{
					
					while(1)
					{
						printf("请选择查询方式\n");
						printf("1.姓名\n2.学号\n");
						scanf("%s",&answer);
						if( answer == '1' )
						{
						    locatename(head);//查询信息
						}
						if(answer == '2' )
						{
						    locatenum(head);
						}
						if(answer != '1' && answer!= '2')
						{
							printf("输入错误\n");
						}
						printf("1.按任意键回车后继续查询\n0.退出\n");
						scanf("%s",&answer);
						fflush(stdin);
						if(answer == '0' )
						{
							break;
						}
						
					}
					printf("\n按任意键回到菜单");
					getch();
					system("cls");
					break;
				}
			case 3:
				{
					while(1)
					{
						printf("请选择修改成绩的方式\n");
						printf("1.姓名\n2.学号\n");
						scanf("%s",&answer);
						if(answer == '1')
						{
						    changename(head);
						    sort(head); //修改成绩后重新排序
						}
						if(answer == '2')
						{
						    changenum(head);
						    sort(head); //修改成绩后重新排序
						}
						if(answer != '1' && answer!= '2')
						{
						    printf("输入错误\n");
						}
						printf("是否继续\n");
						printf("1.按任意键回车后继续修改\n0.退出\n");
						scanf("%s",&answer);
						if(answer=='0')
						{
							break;
						}
					}
					printf("\n按任意键回到菜单\n");
					getch();
					system("cls");
					break;
				}
			case 4:
				{
					while(1)
					{
						printf("请选择删除学生的方式\n");
						printf("1.姓名\n2.学号\n");
						scanf("%s",&answer);
						if(answer=='1')
						{
							head= delname(head); //删除头时头要换
							sort(head); //删除学生后重新排序
						}
						if(answer=='2')
						{
							head= delnum(head); //删除头时头要换
							sort(head); //删除学生后重新排序
						}
						if(answer != '1' && answer!= '2')
						{
							printf("输入错误\n");
						}
						printf("是否继续\n");
						printf("1.继续删除\n0.退出\n");
						scanf("%s",&answer);
						if(answer=='0')
						{
							break;
						}
					}
					
					printf("\n按任意键继续执行你想要的操作");
					getch();
					system("cls");
					break;
				}
			case 5:
				{
					ABCD(head);//计算人数
					printf("\n按任意键继续执行你想要的操作");
					getch();
					system("cls");
					break;
				}
			case 6:
				{
					
					max(head);
					printf("\n按任意键继续执行你想要的操作");
					getch();
					system("cls");
					break;

				}
			default:
				{
					printf("********没有这个选项*********\n按任意键重新输入\n");
					getch();
					break;
				}
		} 
	}while(1);                           
    return 0;
 }

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632