这是我学习完容器 相关知识后,自己编写的一个简单的学生成绩管理系统,实现基本的增、删、改、查四个功能,后面有时间会增加一个按照平均分排名的功能;
1: main函数: 程序入口
package studentScoreSystem;
import java.util.Scanner;
public class main {
public static void main(String[] args) {
studentList list = new studentList(3);
list.menu(); // 入口调用菜单
}
}
2:学生类函数: 为学生设置姓名,成绩等属性
package studentScoreSystem;
//学生类 此种 类称为javabean 或者 实体类
public class student {
private int id=0;
private String name=null;
private double class1=0;
private double class2=0;
private double class3=0;
public student() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getClass1() {
return class1;
}
public void setClass1(double class1) {
this.class1 = class1;
}
public double getClass2() {
return class2;
}
public void setClass2(double class2) {
this.class2 = class2;
}
public double getClass3() {
return class3;
}
public void setClass3(double class3) {
this.class3 = class3;
}
}
3: 学生类list
package studentScoreSystem;
/*
* 用到容器方面知识,同时也强化了引用类型数组的理解
*
* */
import java.util.Scanner;
//学生成绩管理系统主界面
public class studentList {
// ArrayList <student> list=new ArrayList<student> ();泛型:表示这个数组中只能存student类的对象
private student[] stu;
private int size=0;
Scanner scan = new Scanner(System.in);
public int size() {
return size;
}
public studentList() {
this(5);// 初始化容量为5
}
// 初始化容量 initialCapacity
public studentList(int initialCapacity) {
if (initialCapacity < 0) {
try {
throw new Exception();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
stu = new student[initialCapacity];
// 引用类型的数组初始化需要new出引用类型对象,不然会出现空指针异常
// for (int i = 0; i < initialCapacity; i++) {
// stu[i] = new student();
// }
}
// 可以返回按学号查找的学生对象的索引
// int check(int stuId) {
// int index;
// for (index = 0; index < size; index++) {
// if (stuId == stu[index].getId()) {
// System.out.println( "学生学号:" + stu[size].getId() + "\t姓名:" +
// stu[size].getName() + "\t数学成绩:"
// + stu[size].getClass1() + "\t英语成绩:" + stu[size].getClass2() + "\t物理成绩:" +
// stu[size].getClass3());
// return index;
// } else {
// System.out.println("此人不存在,请输入正确学号!");
// }
// }
// return index;
// }
// 增加学生信息方法
public void add() {
student s=new student();
if (size < 5) {
System.out.println("增加信息模块");
System.out.print("请输入学生学号:");
s.setId(scan.nextInt());
System.out.print("请输入学生姓名:");
s.setName(scan.next());
System.out.print("请输入学生数学成绩:");
s.setClass1(scan.nextDouble());
System.out.print("请输入学生英语成绩:");
s.setClass2(scan.nextDouble());
System.out.print("请输入学生物理成绩:");
s.setClass3(scan.nextDouble());
System.out.println("请核实您输入的信息\t" + "学生学号:" + s.getId() + "\t姓名:" + s.getName() + "\t数学成绩:"
+ s.getClass1() + "\t英语成绩:" + s.getClass2() + "\t物理成绩:" + s.getClass3());
stu[size++]=s;
System.out.println(size());
} else {
System.out.println("人数达到上限,添加失败。");
}
System.out.println("继续操作请输入1,退回至主菜单输入0");
switch (scan.nextInt()) {
case 1:
add();
break;
case 0:
menu();
break;
}
}
// 根据学号删除学生信息
public void delete() {
System.out.print("请输入要删除学生学号:");
for (int index = 0; index < size; index++) {
if ( scan.nextInt()== stu[index].getId()) {
System.arraycopy(stu, index + 1, stu, index, size - index-1);
size--;
System.out.println("操作成功!");
System.out.println("当前人数"+size());
} else {
System.out.println("此人不存在,请输入正确学号!");
}
System.out.println("继续操作请输入1,退回至主菜单输入0");
switch (scan.nextInt()) {
case 1:
delete();
break;
case 0:
menu();
break;
}
}
}
// 修改学生信息方法
public void modified() {
System.out.println("修改信息");
System.out.println("请输入学生学号");
for (int index = 0; index < size; index++) {
if ( scan.nextInt()== stu[index].getId()) {
System.out.println(
"学生学号:" + stu[index].getId()
+ "\t姓名:" + stu[index].getName()
+ "\t数学成绩:" + stu[index].getClass1()
+ "\t英语成绩:" + stu[index].getClass2()
+ "\t物理成绩:" + stu[index].getClass3());
System.out.println("请重新输入学生信息");
System.out.print("请输入学生学号:");
stu[index].setId(scan.nextInt());
System.out.print("请输入学生姓名:");
stu[index].setName(scan.next());
System.out.print("请输入学生数学成绩:");
stu[index].setClass1(scan.nextDouble());
System.out.print("请输入学生英语成绩:");
stu[index].setClass2(scan.nextDouble());
System.out.print("请输入学生物理成绩:");
stu[index].setClass3(scan.nextDouble());
System.out.println("请核实您输入的信息\t" + "学生学号:" + stu[index].getId() + "\t姓名:" + stu[index].getName() + "\t数学成绩:"
+ stu[index].getClass1() + "\t英语成绩:" + stu[index].getClass2() + "\t物理成绩:" + stu[index].getClass3());
}else{
System.out.println("查无此人");
}
System.out.println("继续操作请输入1,退回至主菜单输入0");
switch (scan.nextInt()) {
case 1:
modified();
break;
case 0:
menu();
break;
}
}
}
// 查询学生信息方法
public void check() {
System.out.println("查询信息");
System.out.print("请输入要查询的学生学号:");
for (int index = 0; index < size; index++) {
if (scan.nextInt() == stu[index].getId()) {
System.out.println(
"学生学号:" + stu[index].getId() + "\t姓名:" + stu[index].getName() + "\t数学成绩:" + stu[index].getClass1()
+ "\t英语成绩:" + stu[index].getClass2() + "\t物理成绩:" + stu[index].getClass3());
} else {
System.out.println("此人不存在,请输入正确学号!");
}
System.out.println("继续操作请输入1,退回至主菜单输入0");
switch (scan.nextInt()) {
case 1:
check();
break;
case 0:
menu();
break;
}
}
}
// 主菜单meun
public void menu() {
System.out.println("学生成绩管理系统欢迎您,请选择想要操作的选项的代号");
System.out.println("0: 增加学生信息");
System.out.println("1: 删除学生信息");
System.out.println("2: 修改学生信息");
System.out.println("3: 查找学生信息");
int i = scan.nextInt();
switch (i) {
case 0:
add();
break;
case 1:
delete();
break;
case 2:
modified();
break;
case 3:
check();
break;
}
}
}