1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Java实现一个学生成绩管理系统 要求存储学生信息并进行增删改查操作。

Java实现一个学生成绩管理系统 要求存储学生信息并进行增删改查操作。

时间:2018-08-09 19:13:22

相关推荐

Java实现一个学生成绩管理系统 要求存储学生信息并进行增删改查操作。

这是我刚学完Java封装继承的时候写的一个小案例,还不会使用集合,就用数组硬写了出来,但数组的缺点是不能改变数组的长度,虽然可以写个方法新建长度加一的数组然后把旧的数组装进去,但是真的好麻烦还没必要。如果想看用集合实现的代码可以到我的空间来看。

题目:设计一个名为Student 的类,包括属性有“学号”、“姓名”、以及 3 门课程“数学”、“英语”和“计算机”的成绩,包括的方法有计算 3 门课程的“总分”、“平均分”、“最高分”及“最低分”。

使用数组来实现对多个学生的管理。写一个控制台应用程序。

菜单如下:

1.添加学生

2.删除学生

3.查询学生

4.修改学生

5.打印学生

打印格式如下

学号 姓名 数学 英语 计算机

01 张三 56 65 77

02 李四 89 55 44

6.统计学生:

所有学生的“数学”、“英语”和“计算机”每门课程总的平均成绩、最高分、最低分。

打印格式:

学科 平均成绩 最高分 最低分

数学

英语

计算机

package com.qf.weektest;import java.util.Scanner;class Student{private String stuno;private String name;private float math;private float english;private float computer;public float sum(float math,float english,float computer){return math+english+computer;}public float avg(Student stu[],String subject){//求学生数组的平均成绩if (subject.equals("数学")){float sum=0;for (int i = 0; i < stu.length; i++) {if (!stu[i].getName().equals("null")){sum=sum+stu[i].getMath();}}return sum;} else if (subject.equals("英语")) {float sum=0;for (int i = 0; i < stu.length; i++) {if (!stu[i].getName().equals("null")){sum=sum+stu[i].getEnglish();}}return sum;}else if(subject.equals("计算机")){float sum=0;for (int i = 0; i < stu.length; i++) {if (!stu[i].getName().equals("null")){sum=sum+stu[i].getComputer();}}return sum;}return 0.0f;}public float max(Student stu[],String subject){//求单科最大值if (subject.equals("数学")){float temp=stu[0].getMath();for (int i = 1; i < stu.length; i++) {if (!stu[i].getName().equals("null")&&temp<stu[i].getMath()){temp=stu[i].getMath();}}return temp;}else if (subject.equals("英语")){float temp=stu[0].getEnglish();for (int i = 1; i < stu.length; i++) {if (!stu[i].getName().equals("null")&&temp<stu[i].getEnglish()){temp=stu[i].getEnglish();}}return temp;}else if(subject.equals("计算机")){float temp=stu[0].getComputer();for (int i = 1; i < stu.length; i++) {if (!stu[i].getName().equals("null")&&temp<stu[i].getComputer()){temp=stu[i].getComputer();}}return temp;}return 0.0f;}public float min(Student stu[],String subject){//求单科最小值if (subject.equals("数学")){float temp=stu[0].getMath();for (int i = 1; i < stu.length; i++) {if (!stu[i].getName().equals("null")&&temp>stu[i].getMath()){temp=stu[i].getMath();}}return temp;}else if (subject.equals("英语")){float temp=stu[0].getEnglish();for (int i = 1; i < stu.length; i++) {if (!stu[i].getName().equals("null")&&temp>stu[i].getEnglish()){temp=stu[i].getEnglish();}}return temp;}else if(subject.equals("计算机")){float temp=stu[0].getComputer();for (int i = 1; i < stu.length; i++) {if (!stu[i].getName().equals("null")&&temp>stu[i].getComputer()){temp=stu[i].getComputer();}}return temp;}return 0.0f;}public String getStuno() {return stuno;}public void setStuno(String stuno) {this.stuno = stuno;}public String getName() {return name;}public void setName(String name) {this.name = name;}public float getMath() {return math;}public void setMath(float math) {this.math = math;}public float getEnglish() {return english;}public void setEnglish(float english) {this.english = english;}public float getComputer() {return computer;}public void setComputer(float computer) {puter = computer;}}class StudentManager extends Student{public void storageStudent(Student stu[]){//初始化学生信息for (int i = 0; i < stu.length; i++) {stu[i]=new Student();Scanner sc=new Scanner(System.in);System.out.println("请输入第"+(i+1)+"个学生的信息:");System.out.print("姓名:");stu[i].setName(sc.next());if (stu[i].getName().equals("null")){stu[i].setStuno("null");stu[i].setComputer(0);stu[i].setEnglish(0);stu[i].setMath(0);}else {System.out.print(" 学号:");stu[i].setStuno(sc.next());System.out.print(" 数学:");stu[i].setMath(sc.nextFloat());System.out.print(" 英语:");stu[i].setEnglish(sc.nextFloat());System.out.print(" 计算机:");stu[i].setComputer(sc.nextFloat());}}}public int checkStudent(Student stu[]){//从左往右检查学生数组是否有空余的位置,如果有就返回空余位置的下标,如果没有就返回-1for (int i = 0; i < stu.length; i++) {if (stu[i].getName().equals("null")){return i;}}return -1;}public int findStudent(Student stu[],String name){//根据姓名查找学生的姓名,如果有就返回相应的坐标,如果没有就返回-1,这个方法和后面的查询学生方法有些重复,但是我在修改学生,删除学生方法中需要用到查询,所以就直接重写了一个方法for (int i = 0; i < stu.length; i++) {if (stu[i].getName().equals(name)){return i;}}return -1;}public void addStudent(Student stu[]){//添加学生信息int index=checkStudent(stu);if (index>=0){Scanner sc=new Scanner(System.in);System.out.println("请添加学生信息");System.out.print("姓名: ");stu[index].setName(sc.next());System.out.print("学号: ");stu[index].setStuno(sc.next());System.out.print("数学成绩:");stu[index].setMath(sc.nextFloat());System.out.print("英语成绩:");stu[index].setEnglish(sc.nextFloat());System.out.print("计算机成绩:");stu[index].setComputer(sc.nextFloat());System.out.println("添加成功");}else {System.out.println("没有多余的位置了,添加失败");}}public void deleteStudent(Student stu[]){//删除学生Scanner sc=new Scanner(System.in);System.out.println("请输入要删除的学生姓名:");String name=sc.next();int index=findStudent(stu,name);if (index>=0){stu[index].setName("null");stu[index].setStuno("null");stu[index].setComputer(0);stu[index].setEnglish(0);stu[index].setMath(0);System.out.println("删除完毕");}else {System.out.println("没有这个学生,删除失败");}}public void searchStudent(Student stu[],String name){//查询学生int index=findStudent(stu,name);if (index>=0){System.out.println("存在这个学生");}else {System.out.println("不存在这个学生");}}public void reviseStudent(Student stu[],String name){//修改学生的学号,成绩int index=findStudent(stu,name);if (index>=0){Scanner sc=new Scanner(System.in);System.out.println("原来的学生姓名为:"+stu[index].getName());System.out.print("请输入要修改的学生姓名:");stu[index].setName(sc.next());System.out.println("原来的学生学号为:"+stu[index].getStuno());System.out.print("请输入要修改的学生学号:");stu[index].setStuno(sc.next());System.out.println("原来的学生数学成绩为:"+stu[index].getMath());System.out.print("请输入要修改的数学成绩:");stu[index].setMath(sc.nextFloat());System.out.println("原来的学生英语成绩为:"+stu[index].getEnglish());System.out.print("请输入要修改的英语成绩:");stu[index].setEnglish(sc.nextFloat());System.out.println("原来的学生计算机成绩为:"+stu[index].getComputer());System.out.print("请输入要修改的计算机成绩:");stu[index].setComputer(sc.nextFloat());System.out.println("修改成功");}else {System.out.println("不存在这个人");}}public void printStudent(Student stu[]){//打印学生信息System.out.println("学生所有信息如下:");for (int i = 0; i < stu.length; i++) {if (!stu[i].getName().equals("null")){System.out.print("学号:"+stu[i].getStuno()+" 姓名:"+stu[i].getName()+" 数学:"+stu[i].getMath()+" 英语:"+stu[i].getEnglish()+" 计算机:"+stu[i].getComputer());System.out.println();}}}public void statisticsStudent(Student stu[],String subject){//统计学生信息System.out.println(subject+" "+avg(stu,subject)+" "+max(stu,subject)+" "+min(stu,subject));}}public class Demo12 {public static void main(String[] args) {Student stu[]=new Student[4];StudentManager stum=new StudentManager();stum.storageStudent(stu);loop:while (true){Scanner sc=new Scanner(System.in);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.退出操作");int chose=sc.nextInt();switch (chose){case 1:stum.addStudent(stu);break;case 2:stum.deleteStudent(stu);break;case 3:System.out.println("请输入要查询的学生姓名:");String name1=sc.next();stum.searchStudent(stu,name1);break;case 4:System.out.println("请输入要修改的学生姓名:");String name2=sc.next();stum.reviseStudent(stu,name2);break;case 5:stum.printStudent(stu);break;case 6:System.out.println("学科 平均成绩 最高分 最低分");stum.statisticsStudent(stu,"数学");stum.statisticsStudent(stu,"英语");stum.statisticsStudent(stu,"计算机");break;case 7:System.out.println("退出成功");break loop;default:break;}}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。