|
本文实例为大家分享了Java实现学生成绩管理系统的具体代码,供大家参考,具体内容如下
新手练手小项目,主要练习面向对象、循环、数组、排序等等。
本人也是自学练手,代码有不正确的或不完善的也请多多包涵,留言指导。
感谢!
一、创建学生类
储存学生的基本信息
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);
/**
*
* @param name 传一个name添加学生姓名
* @param Arr传一个学生数组,将学生对象保存
* @throws AddStudentException
*/
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;
}
}
/**
*
* @param Arr传一个数组
* @return返回空数组元素的下标
*/
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.nexrokkR2 |