m0_59095706 2021-06-24 15:29 采纳率: 100%
浏览 180
已结题

求用C语言解决学生成绩管理系统的代码

课程设计的内容与基本要求
设计题目:学生成绩管理系统
〔问题描述〕学生成绩管理是学校教务部门日常工作的重要组成部分,其处理信息量很大。本项目是对学生成绩管理的简单模拟,用菜单选择方式完成下列功能:输入学生数据;输出学生数据;学生数据查询;添加学生数据;修改学生数据;删除学生数据。
〔基本要求〕本项目的实质是完成对学生成绩信息的建立、查找、插入、修改、删除、排序等功能,可以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。学生的考试成绩必须通过键盘输入,且需对输出进行格式控制。

  • 写回答

1条回答 默认 最新

  • CSDN专家-Fay 2021-06-24 15:39
    关注

    成绩管理拿去参考下:

    /* Note:Your choice is C IDE */
    #include "stdio.h"
    struct Student{
    	int stuno;//学号
    	char stuname[20];//姓名
    	char sex[5];//性别
    	char classname[10];//班级名称
    	int yy;//英语课成绩
    	int sx;//数学课成绩
    	int yw;//语文课成绩
    }stu[50];
    int i=0;//记录当前用户数
    //1、信息录入
    void xxlr(){
    	printf("********学生信息录入*******\n");
    	printf("请输入学号:");
    	scanf("%d",&stu[i].stuno);
    	
    	printf("请输入学生姓名:");
    	scanf("%s",&stu[i].stuname);
    	
    	printf("请输入性别(男/女):");
    	scanf("%s",&stu[i].sex);
    	
    	printf("请输入班级:");
    	scanf("%s",&stu[i].classname);
    	
    	printf("请输入该学生英语,数学,语文三门成绩,用空格隔开,回车结束:");
    	scanf("%d %d %d",&stu[i].yy,&stu[i].sx,&stu[i].yw);
    	i++;//用户数加1
    	printf("\n录入成功,按回车回到主界面:");
    	getch();//暂停
    	system("CLS");//清屏
    }
    //2、信息显示
    void xs(){
    	int n;
    	printf("********显示学生信息*******\n\n");
    	printf("\t学号\t姓名\t性别\t班级\t英语\t数学\t语文\n\n");
    	for(n=0;n<i;n++){
    		printf("\t%d\t%s\t%s\t%s\t%d\t%d\t%d\n\n",stu[n].stuno,stu[n].stuname,stu[n].sex,stu[n].classname,stu[n].yy,stu[n].sx,stu[n].yw);
    	}
    	printf("\n按回车回到主界面:");
    	getch();//暂停
    	system("CLS");//清屏
    }
    //3、按姓名查找
    void cz(){
    	char sname[20];
    	int n;
    	int flag=0;//没找到
    	printf("********查找学生信息*******\n\n");
    	printf("请输入要查找的学生姓名:");
    	scanf("%s",&sname);
    	for(n=0;n<i;n++){
    		if( strcmp(stu[n].stuname,sname)==0){
    			printf("\t学号\t姓名\t性别\t班级\t英语\t数学\t语文\n\n");
    			printf("\t%d\t%s\t%s\t%s\t%d\t%d\t%d\n\n",stu[n].stuno,stu[n].stuname,stu[n].sex,stu[n].classname,stu[n].yy,stu[n].sx,stu[n].yw);
    			flag=1;
    			break;
    		}
    	}
    	if(flag==0){
    		printf("没有找到相关学生\n");	
    	}
    	printf("按回车退出:");
    	getch();//暂停
    	system("CLS");//清屏
    }
    //4、按性别显示每门课程的平均分
    void pjf(){
    	int n,na=0,nv=0;//na男生个数 nv女生个数
    	float yy1=0,sx1=0,yw1=0;//男生三门课总分数
    	float yy2=0,sx2=0,yw2=0;//女生三门课总分数
    	printf("********查询每门课程平均分(按性别)*******\n\n");
    	for(n=0;n<i;n++){
    		if(strcmp(stu[n].sex,"男")==0){
    			yy1+=stu[n].yy;
    			sx1+=stu[n].sx;
    			yw1+=stu[n].yw;
    			na++;
    		}else if(strcmp(stu[n].sex,"女")==0){
    			yy2+=stu[n].yy;
    			sx2+=stu[n].sx;
    			yw2+=stu[n].yw;
    			nv++;
    		}
    	}
    	printf("\t性别\t英语\t数学\t语文\n\n");
    	if(na>0){
    		printf("\t男\t%.2f\t%.2f\t%.2f\n\n",yy1/na,sx1/na,yw1/na);
    	}
    	if(nv>0){
    		printf("\t女\t%.2f\t%.2f\t%.2f\n\n",yy2/nv,sx2/nv,yw2/nv);
    	}
    	printf("按回车退出:");
    	getch();//暂停
    	system("CLS");//清屏
    }
    //5、每门课程最高和最低
    void zgd(){
    	int n;
    	int zg1=0,zg2=0,zg3=0;
    	int zd1=10000,zd2=10000,zd3=1000;
    	printf("********查询每门课程最高和最低分*******\n\n");
    	
    	for(n=0;n<i;n++){
    		//英语最高和最低
    		if(stu[n].yy>zg1){
    			zg1=stu[n].yy;
    		}
    		if(stu[n].yy<zd1){
    			zd1=stu[n].yy;
    		}
    		
    		//数学最高和最低
    		if(stu[n].sx>zg2){
    			zg2=stu[n].sx;
    		}
    		if(stu[n].sx<zd2){
    			zd2=stu[n].sx;
    		}
    		
    		//语文最高和最低
    		if(stu[n].yw>zg3){
    			zg3=stu[n].yw;
    		}
    		if(stu[n].yw<zd3){
    			zd3=stu[n].yw;
    		}
    		
    	}
    	printf("\t类别\t英语\t数学\t语文\n\n");
    	printf("\t最高\t%d\t%d\t%d\n\n",zg1,zg2,zg3);
    	printf("\t最低\t%d\t%d\t%d\n\n",zd1,zd2,zd3);
    	
    	printf("按回车退出:");
    	getch();//暂停
    	system("CLS");//清屏
    }
    //6、删除学生信息
    void sc(){
    	int n;
    	int xh;
    	int flag=0;//没找到
    	char ss;
    	
    	int k;
    	printf("********删除学生信息*******\n\n");
    	printf("请输入要删除的学生学号:");
    	scanf("%d",&xh);
    	for(n=0;n<i;n++){
    		if(stu[n].stuno==xh){
    			flag=1;
    			break;
    		}
    	}
    	if(flag==0){
    		printf("没有找到该学生!\n");
    	}else{
    		printf("\t学号\t姓名\t性别\t班级\t英语\t数学\t语文\n\n");
    		printf("\t%d\t%s\t%s\t%s\t%d\t%d\t%d\n\n",stu[n].stuno,stu[n].stuname,stu[n].sex,stu[n].classname,stu[n].yy,stu[n].sx,stu[n].yw);
    		printf("确定要删除(y/n):");
    		fflush(stdin);
    		scanf("%c",&ss);
    		
    		if(ss=='y'){
    			for(k=n;k<i;k++){
    				stu[k]=stu[k+1];
    			}
    			i--;//人数减一
    			printf("删除成功!!\n");
    		}
    	}
    	
    	printf("按回车退出:");
    	getch();//暂停
    	system("CLS");//清屏
    	
    }
    void main()
    {
    	
    	int gn;//接收用户功能输入
    	
    	printf("\t\t****************************************\n");
    	printf("\t\t*                                      *\n");
        printf("\t\t*                                      *\n");
        printf("\t\t*         班级成绩管理系统             *\n");
        printf("\t\t*                                      *\n");
        printf("\t\t*                                      *\n");
        printf("\t\t****************************************\n");
        do{
        	printf("\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*        6、删除学生信息               *\n");
    	    printf("\t\t*        7、退出系统                   *\n");
    	    printf("\n\t\t请选择你要操作的功能:");
    	    scanf("%d",&gn);
    	    printf("\n");
    	    if(gn==1){
    	    	xxlr();//调用信息录入函数
    	    }else if(gn==2){
    	    	xs();
    	    }else if(gn==3){
    	    	cz();
    	    }else if(gn==4){
    	    	pjf();
    	    }else if(gn==5){
    	    	zgd();
    	    }else if(gn==6){
    	    	sc();
    	    }  
    	   
        }while(gn!=7);
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

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

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?