Java学生成绩管理系统(相信光吗)

1、内容要求

编写一个学生成绩管理系统。学生的属性包括学号、姓名、年龄等。每个学生要学习若干课程,每门课程有平时成绩、期中考试成绩、期末考试成绩以及总评成绩,其中总评成绩=平时成绩*30%+期中成绩*30%+期末成绩*40%。请先设计合理的类存放这些信息,然后设计程序完成以下功能:

列出某个学生的所有成绩;

列出某门课程每个学生的总评成绩,及所有学生总评成绩的平均值;

分区段统计某门课程的学生总评成绩,例如60分以下的学生人数、60至70分的学生人数等。watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA77-9UHVtcGtpbu-_vQ==,size_20,color_FFFFFF,t_70,g_se,x_16

功能1:录入学生信息(部分数据录入)
功能2: 查询学生信息
功能3:查询某门课程每个学生总评成绩及平均分
功能4:查询某门课程学生成绩区段
功能5:退出系统

 package hello;

import java.util.Scanner;

class Student{

String name;

String sno;

String age;

String crouse[]=new String[5];

public Student(String name,String sno,String age/*,String crouse[]*/)

{

 this.name=name;

 this.age=age;

 this.sno=sno;

 //for(int i=0;i<=5;i++)

 //this.crouse[i]=crouse[i];

}

//写一个Tostring函数,得到每位同学的信息

public String getno() {

 return "学号:"+sno;

}

public String getname() {

 return "姓名:"+name;

}

public String getage() {

 return "年龄:"+age;

}

public String getno2()

{

 return sno;

}

}

 

class Crouse {

 double dailygrade;

 double midgrade;

 double dograde;

 double endgrade;

 double sumgrade;

 Crouse(double dailygrade,double midgrade,double dograde,double endgrade)//构造方法导入数据

 {

  this.dailygrade=dailygrade;

  this.midgrade=midgrade;

  this.dograde=dograde;

  this.endgrade=endgrade;

  this.sumgrade=this.dailygrade*0.3+this.midgrade*0.3+this.endgrade*0.4;

 }

 public String getdailygrade() {

  return "dailyGrade="+this.dailygrade;

 }

 public String getmidgrade() {

  return "midGrade="+this.midgrade;

 }

 public String getdograde() {

  return "doGrade="+this.dograde;

 }

 public String getendgrade(){

  return "endGrade="+this.endgrade;

 }

 public String getsumgrade() {

  return "sumGrade="+this.sumgrade; 

 }

 double getdailygrade2() {

  return this.dailygrade;

 }

 double getmidgrade2() {

  return this.midgrade;

 }

 double getdograde2() {

  return this.dograde;

 }

 double getendgrade2(){

  return this.endgrade;

 }

 double getsumgrade2() {

  return this.sumgrade; 

 }

}

class Powertrue{

 

}

public class sd {

 static Scanner sc=new Scanner(System.in);

 static Scanner sc2=new Scanner(System.in);

 public static void main(String[] args) {

  int flag=0;

  Student []arr1=new Student[5];//定义学生数组

  String []arr2=new String[5];//记录课程名称

  String []arr3=new String[5];//记录每门课的考核名称

  Crouse [][]arr4=new Crouse[5][5];//定义二维课程数组,记录五个人中每个人的五门课程中的四项成绩

  arr3[0]="dailygrade";

  arr3[1]="midgrade";

  arr3[2]="dograde";

  arr3[3]="endgrade";

  arr2[0]="高数";

  arr2[1]="java";

  arr2[2]="语文";

  arr2[3]="英语";

  arr2[4]="计算机";

  System.out.print("----学生成绩管理系统----"+"\n");

  System.out.print("1.录入学生信息"+"\n"+"2.查询学生信息"+"\n"+"3.查询某门课程每个学生总评成绩及平均分"+"\n"+"4.查询某门课程学生成绩区段"+"\n"+"5.退出系统"+"\n"+"请输入您要选择的功能:");

  

  

  int n=sc.nextInt();

  while(true)

{

  

 switch (n)

{

  

 case 1:

   {

    for(int i=0;i<=4;i++)

   {

    

    System.out.print("正在录入第"+(i+1)+"个学生的信息");

    String [] c=new String[3];

    System.out.print("姓名:"+"\n");

    c[0]=sc.next();

    System.out.print("学号:"+"\n");

    c[1]=sc.next();

    System.out.print("年龄:"+"\n");

    c[2]=sc.next();

    arr1[i]=new Student(c[0],c[1],c[2]);//将姓名,年龄学号传给Student类中

    for(int j=0;j<=4;j++)

    {

     double grade[]=new double [4];

     System.out.print("正在录入第"+(i+1)+"个学生的"+arr2[j]+"成绩"+"\n");

     for(int k=0;k<=3;k++)

     {

      System.out.print("正在录入第"+(i+1)+"个学生的"+arr2[j]+"成绩中的"+arr3[k]+"\n");

      grade[k]=sc.nextInt();

      

     }

     arr4[i][j]=new Crouse(grade[0],grade[1],grade[2],grade[3]);

    }

    

   }

   System.out.print("1.录入学生信息"+"\n"+"2.查询学生信息"+"\n"+"3.查询某门课程每个学生总评成绩及平均分"+"\n"+"4.查询某门课程学生成绩区段"+"\n"+"5.退出系统"+"\n"+"请输入您要选择的功能:"+"\n");

   n=sc.nextInt();

   break;

 }

 case 2:

  

   System.out.print("请输入你要查询学生的学号"+"\n");

   String d=sc2.nextLine();

   for(int e=0;e<=4;e++)//5次遍历,去找出与其相等的学号

   {

   if(d.equals(arr1[e].getno2()))

    {

    System.out.print(arr1[e].getname()+"\n");

    System.out.print(arr1[e].getage()+"\n");

    System.out.print(arr1[e].getno()+"\n");

    System.out.print("该学生的成绩是:"+"\n");

    for(int f=0;f<=4;f++)//这层循环是看这个学生的五门课的成绩

     {

     System.out.print("Grade ["+"crouse="+arr2[f]+","+arr4[e][f].getdailygrade()+","+arr4[e][f].getmidgrade()+","+arr4[e][f].getdograde()+","+arr4[e][f].getendgrade()+","+arr4[e][f].getsumgrade()+"]"+"\n"); 

     }

    

    }

   }

   System.out.print("1.录入学生信息"+"\n"+"2.查询学生信息"+"\n"+"3.查询某门课程每个学生总评成绩及平均分"+"\n"+"4.查询某门课程学生成绩区段"+"\n"+"5.退出系统"+"\n"+"请输入您要选择的功能:"+"\n");

   n=sc.nextInt();

  break;

 case 3:

   System.out.print("请输入你要查询的课程:"+"\n"+"1.高数"+"\n"+"2.java"+"\n"+"3.语文"+"\n"+"4.英语"+"\n"+"5.计算机");

   int crou=sc.nextInt();

   double []sum= {0,0,0,0,0};

   if(crou==1)

   {

    System.out.print("高数的学生总评成绩"+"\n");

    for(int i=0;i<=4;i++)

    {

     System.out.print(arr1[i].getname()+"="+arr4[i][0].getsumgrade()+"\n");

     sum[0]+=arr4[i][0].getsumgrade2();

     

    }

    System.out.print("高数总评平均分:"+sum[0]/5);

   }

   else if(crou==2)

   {

    System.out.print("java的学生总评成绩"+"\n");

    for(int i=0;i<=4;i++)

    {

     System.out.print(arr1[i].getname()+"="+arr4[i][1].getsumgrade()+"\n");

     sum[1]+=arr4[i][1].getsumgrade2();

    }

    

    System.out.print("java总评平均分:"+sum[1]/5);

   }

   else if(crou==3)

   {

    System.out.print("语文的学生总评成绩"+"\n");

    for(int i=0;i<=4;i++)

    {

     System.out.print(arr1[i].getname()+"="+arr4[i][2].getsumgrade()+"\n");

     sum[2]+=arr4[i][2].getsumgrade2();

    }

    System.out.print("语文总评平均分:"+sum[2]/5);

   }

   else if(crou==4)

   {

    System.out.print("英语的学生总评成绩"+"\n");

 

   for(int i=0;i<=4;i++)

    {

     System.out.print(arr1[i].getname()+"="+arr4[i][3].getsumgrade()+"\n");

     sum[3]+=arr4[i][3].getsumgrade2();

    }

    System.out.print("英语总评平均分:"+sum[3]/5);

   }

   else if(crou==5)

   {

    System.out.print("计算机的学生总评成绩"+"\n");

    for(int i=0;i<=4;i++)

    {

     System.out.print(arr1[i].getname()+"="+arr4[i][4].getsumgrade()+"\n");

     sum[4]+=arr4[i][4].getsumgrade2();

    }

    System.out.print("计算机总评平均分:"+sum[4]/5+"\n");

   }

   System.out.print("1.录入学生信息"+"\n"+"2.查询学生信息"+"\n"+"3.查询某门课程每个学生总评成绩及平均分"+"\n"+"4.查询某门课程学生成绩区段"+"\n"+"5.退出系统"+"\n"+"请输入您要选择的功能:"+"\n");

   n=sc.nextInt();

   break;

   

   

   

   

 case 4:

   //此功能只列出高数分区段人数;其余同理

   int sum1=0,sum2=0,sum3=0;

   

   for(int i=0;i<=4;i++)

   {

    

     if(arr4[i][0].getsumgrade2()<=60)

     {

      sum1+=1;

     }

     else if(arr4[i][0].getsumgrade2()>60&&arr4[i][0].getsumgrade2()<=70)

     {

      sum2+=1;

     }

     else if(arr4[i][0].getsumgrade2()>70&&arr4[i][0].getsumgrade2()<=100)

     {

      sum3+=1;

     }

   }

   System.out.print("高数成绩低于60分的人数:"+sum1+"\n");

   System.out.print("高数成绩高于于60分低于70的人数:"+sum2+"\n");

   System.out.print("高数成绩高于70分低于100分的人数:"+sum3+"\n");

   System.out.print("1.录入学生信息"+"\n"+"2.查询学生信息"+"\n"+"3.查询某门课程每个学生总评成绩及平均分"+"\n"+"4.查询某门课程学生成绩区段"+"\n"+"5.退出系统"+"\n"+"请输入您要选择的功能:"+"\n");

   n=sc.nextInt();

   break;

   

   

   

   

 default:

   System.out.print("您已安全退出!"+"\n");

   flag=1;

   break;

}

if(flag==1)

 break;

 }

 

}

 

}



首先要在输入数据之后的效果图,最好输入五个学生,学号按12345来归置

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA77-9UHVtcGtpbu-_vQ==,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

 

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

森之林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值