这篇文章将为大家详细讲解有关使用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编写一个学生成绩管理系统就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。