文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用Java编写一个学生成绩管理系统

2023-06-14 22:22

关注

这篇文章将为大家详细讲解有关使用Java编写一个学生成绩管理系统,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Java可以用来干什么

Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企业级应用开发;6. Java大数据开发;7.游戏开发等。

一、创建学生类

储存学生的基本信息

public class Student { private int no; private String name; Result result;  public Student() {  super(); } public Student(int no, String name,Result result) {  super();  this.result = result;  this.name = name;  this.no = no; } public Result getResult() {  return result; } public void setResult(Result result) {  this.result = result; } public String getName() {  return name; } public void setName(String name) {  this.name = name; } public int getNo() {  return no; } public void setNo(int no) {  this.no = no; }  public String toString(){  return "\t" + no + "\t" + name + "\t" + result; }}

二、创建成绩类

便于成绩的增加,易于管理

public class Result {//成绩类 private int java; private int python; private int c_shar; private int sql; private int sum; private int avg;  public Result() {   } public Result(int java, int python, int c_shar, int sql) {  super();  this.java = java;  this.python = python;  this.c_shar = c_shar;  this.sql = sql; } public int getJava() {  return java; } public void setJava(int java) {  this.java = java; } public int getPython() {  return python; } public void setPython(int python) {  this.python = python; } public int getC_shar() {  return c_shar; } public void setC_shar(int c_shar) {  this.c_shar = c_shar; } public int getSql() {  return sql; } public void setSql(int sql) {  this.sql = sql; }  public int getSum(){  return this.java + this.python + this.c_shar + this.sql; }  public int getAvg(){  return this.getSum() / 4; }  public String toString(){  return java + "\t" + python + "\t" + c_shar + "\t" + sql + "\t" + this.getSum() + "\t" + this.getAvg(); }}

三、创建学生管理类

主要功能在此类中,例如添加学生信息、查找学生等等

import java.util.Scanner;public class StudentAdmin {//管理学生类 Scanner in = new Scanner(System.in);   public void addStudent(String name,Student[] Arr) throws AddStudentException{//添加学生方法  AddStudentException ase = new AddStudentException("学生已达上限,添加失败!");  Student stu = new Student();  Result r = new Result();  stu.setNo(setIndex(Arr) + 1);  stu.setName(name);  stu.setResult(r);  if(setIndex(Arr) == -1){   throw ase;  }else{   Arr[this.setIndex(Arr)] = stu;  } }  public int setIndex(Student[] Arr){  for(int i = 0; i < Arr.length; i++){   if(null == Arr[i]){    return i;   }  }  return -1; } public void print(Student[] arr){//打印学生对象  for(int i = 0; i < arr.length; i++){   if(judge(i+1,arr[i])){    System.out.println(arr[i]);   }  } } public boolean judge(int no,Student stu){//判断数组元素编号和传的编号是否一致  if(stu != null){   if(stu.getNo() == no){    return true;   }else{    return false;   }  }  return false; } public void search(String name,Student[] arr){//查找学生方法  for(int i = 0; i < arr.length; i++){   if(judge(i + 1,arr[i])){    if(arr[i].getName().equals(name)){     System.out.println(arr[i]);     return;    }   }  }  System.out.println("没有找到此学生,请确认输入的姓名是否正确!"); } public void update(int no,String name,Student[] arr){//更新学生姓名  for(int i = 0; i < arr.length; i++){   if(judge(i + 1,arr[i])){    arr[i].setName(name);    System.out.println(arr[i]);    return;   }  }  System.out.println("没有此编号,请确认输入的编号是否正确!"); } public void del(int no,Student[] arr){//删除学生信息  for(int i = 0; i < arr.length; i++){   if(judge(no,arr[i])){    arr[i] = null;    return;   }  }  System.out.println("没有此编号,请确认输入的编号是否正确!"); } public void stuResult(int no,Student[] arr){//根据编号输入学生各科成绩  for(int i = 0; i < arr.length; i++){   if(judge(i + 1,arr[i])){    if(arr[i].getNo() == no){     System.out.println("请输入" + arr[i].getName() + "的java成绩:");     arr[i].result.setJava(in.nextInt());     System.out.println("请输入" + arr[i].getName() + "的python成绩:");     arr[i].result.setPython(in.nextInt());     System.out.println("请输入" + arr[i].getName() + "的c_char成绩:");     arr[i].result.setC_shar(in.nextInt());     System.out.println("请输入" + arr[i].getName() + "的sql成绩:");     arr[i].result.setSql(in.nextInt());     break;    }   }  } } public void paiXu(int no,Student[] arr){//根据某科成绩排序  switch(no){   case 1:    for(int i = 0; i < arr.length-1; i++){     for(int j = i + 1; j < arr.length; j++){      if(arr[j].result.getJava() > arr[i].result.getJava()){       Student max = arr[i];       arr[i] = arr[j];       arr[j] = max;      }     }    }    for(int i = 0; i < arr.length; i++){     System.out.println(arr[i]);    }    break;   case 2:    for(int i = 0; i < arr.length-1; i++){     for(int j = i + 1; j < arr.length; j++){      if(arr[j].result.getPython() > arr[i].result.getPython()){       Student max = arr[i];       arr[i] = arr[j];       arr[j] = max;      }     }    }    for(int i = 0; i < arr.length; i++){     System.out.println(arr[i]);    }    break;   case 3:    for(int i = 0; i < arr.length-1; i++){     for(int j = i + 1; j < arr.length; j++){      if(arr[j].result.getC_shar() > arr[i].result.getC_shar()){       Student max = arr[i];       arr[i] = arr[j];       arr[j] = max;      }     }    }    for(int i = 0; i < arr.length; i++){     System.out.println(arr[i]);    }    break;   case 4:    for(int i = 0; i < arr.length-1; i++){     for(int j = i + 1; j < arr.length; j++){      if(arr[j].result.getSql() > arr[i].result.getSql()){       Student max = arr[i];       arr[i] = arr[j];       arr[j] = max;      }     }    }    for(int i = 0; i < arr.length; i++){     System.out.println(arr[i]);    }    break;   default:    System.out.println("你输入的编号错误!");  } } public void sumPaiXu(Student[] arr){//根据总分进行排序  for(int i = 0; i < arr.length-1; i++){   for(int j = i + 1; j < arr.length; j++){    if(arr[j].result.getSum() > arr[i].result.getSum()){     Student max = arr[i];     arr[i] = arr[j];     arr[j] = max;    }   }  }  for(int i = 0; i < arr.length; i++){   System.out.println(arr[i]);  }  return; }}

四、异常类

练习自定义异常类的创建及使用

public class AddStudentException extends Exception{ public AddStudentException(){} public AddStudentException(String s){  super(s); }}

五、测试类(主程序)

import java.util.Scanner;public class Test { public static void main(String[] args){  Scanner in = new Scanner(System.in);    StudentAdmin admin = new StudentAdmin();    System.out.println("请定义学生的人数:");  Student[] stuArr = new Student[in.nextInt()];    while(true){   System.out.println("请选择你要执行的功能:");   System.out.println("1:添加一个学生");   System.out.println("2:查找一个学生");   System.out.println("3:根据学生编号更新 学生基本信息");   System.out.println("4:根据学生编号删除学生");   System.out.println("5:根据编号输入学生各科成绩");   System.out.println("6:根据某科成绩进行排序");   System.out.println("7:根据总分进行排序");   System.out.println("0:退出系统");   int num = in.nextInt();   switch(num){    case 0 :     System.exit(0);    case 1 :     System.out.println("请输入学生姓名:");     try {      admin.addStudent(in.next(), stuArr);     } catch (AddStudentException e) {      e.printStackTrace();     }     admin.print(stuArr);     break;    case 2 :     System.out.println("请输入要查找的学生姓名:");     String name = in.next();     admin.search(name, stuArr);     break;    case 3 :     System.out.println("请输入要修改的编号:");     int no = in.nextInt();     System.out.println("请重新输入学生姓名:");     String name1 = in.next();     admin.update(no, name1, stuArr);     break;    case 4 :     System.out.println("请输入学生编号:");     int no1 = in.nextInt();     admin.del(no1, stuArr);     System.out.println("删除学生信息成功!");     break;    case 5 :     System.out.println("请输入学生编号:");     int no2 = in.nextInt();     admin.stuResult(no2, stuArr);     admin.print(stuArr);     break;    case 6 :     System.out.println("请输入编号对应成绩进行排序【1:java 2:python 3:c_char 4:sql】");     int no3 = in.nextInt();     admin.paiXu(no3, stuArr);     break;    case 7 :     admin.sumPaiXu(stuArr);     break;    default :     System.out.println("您输入的编号有误,请重新输入!");     break;   }  } }}

关于使用Java编写一个学生成绩管理系统就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯