class Student
{
private int code;
private String name;
private double score;
public Student(int code, String name, double score){
setCode(code);
setName(name);
setScore(score);
}
public void setCode(int code){
this.code = code;
}
public void setName(String name){
this.name = name;
}
public void setScore(double score){
this.score = score;
}
public int getCode(){
return code;
}
public String getName(){
return name;
}
public double getScore(){
return score;
}
}
class StudentManager
{
static Student [] stus = new Student[5];//存储学生对象的容器
static int index = 0;//记录存储学生对象容器的角标
public static void main(String[] args)
{
while(true){
systemMain();
}
}
public static void systemMain(){
System.out.println("************学生信息管理小系统**********");
core();
System.out.println("****************************************");
}
public static void core(){
System.out.println("1,添加学生信息");
System.out.println("2,修改学生信息");
System.out.println("3,删除学生信息");
System.out.println("4,查询学生信息");
System.out.println("5,退出系统");
System.out.println("请选择功能序号:");
//接收用户输入的功能序号(键盘录入)
int code = returnInt();
choose(code);
}
public static void choose(int code){
switch(code){
case 1:
addStudent();//调用添加学生信息的方法
break;
case 2:
revise();//调用修改学生信息的方法
break;
case 3:
deleteStudent();//调用删除学生信息的方法
break;
case 4:
queryInfo();//调用查询学生信息的方法
break;
default:
System.exit(1);
break;
}
}
//添加学生信息
public static void addStudent(){
System.out.println("********************录入学生信息********************");
System.out.print("请输入学生学号:");
int code = returnInt();//接受录入的学生学号
System.out.print("请输入学生姓名:");
String name = returnString();//接受录入的学生姓名
System.out.print("请输入学生成绩:");
double score = returnDouble();//接受录入的学生成绩
Student stu = new Student(code,name,score);
stus[index] = stu; //把创建的学生对象存储在容器中
index++; //修改记录容器中角标的值
//判断学生信息是否添加成功
if(stus[index-1]!=null)
System.out.println("学生信息添加完成!");
}
//修改学生信息功能
public static void revise(){
System.out.print("\n请输入要修改的学生学号:");
int code = returnInt(); //接受学生学号
for (int i = 0; i < index; i++ )
{
Student stu = stus[i];
if (stu.getCode() == code )
{
System.out.print("\n请输入新的学生成绩:");
double score = returnDouble(); //接受学生成绩
stu.setScore(score);
}
}
}
//删除学生信息功能
public static void deleteStudent(){
System.out.print("\n请输入要删除的学生学号:");
int code = returnInt(); //接受学生学号
//将接受的学号和存在的学号进行匹配
for (int i = 0; i < index; i++ )
{
Student stu = stus[i];
//匹配成功就删除
if (stu.getCode() == code )
{
stus[i] = null;
index--;
System.out.println("删除学生信息成功");
break;
}
}
}
//查询学生信息功能
public static void queryInfo(){
System.out.println("*******************学生信息查询*********************");
System.out.println("1,查询全部学生信息");
System.out.println("2,根据姓名查询学生信息");
System.out.println("3,根据成绩显示学生信息(降序)");
System.out.print("请选择查询的功能:");
int code = returnInt();
switch(code){
case 1:
seachAllStudent();//调用查询全部学生信息的方法
break;
case 2:
seachStudentByName();//调用根据姓名查询学生信息
break;
case 3:
seachStudentByScore();//调用根据成绩显示学生信息
}
}
//查询所有学生信息
public static void seachAllStudent(){
System.out.println("学号\t\t姓名\t\t成绩");
for (int i = 0; i < index; i++ )
{
Student stu = stus[i];//获取存储的每一个学生对象
System.out.print(stu.getCode()+"\t\t");
System.out.print(stu.getName()+"\t\t");
System.out.println(stu.getScore());
}
}
//根据姓名查询学生信息
public static void seachStudentByName(){
System.out.print("\n请输入要查询的学生姓名:");
String name = returnString(); //接受录入的学生姓名
//定义一个临时的学生对象数组,用来存储相同学生姓名的学生对象
Student [] tempStu = new Student[index];
int tempIndex = 0; //记录临时的学生对象数组的角标
for (int i = 0; i < index; i++ )
{
Student stu = stus[i];
if (stu.getName().equals(name)) //使用equals方法来比较String类型的姓名
{
tempStu[tempIndex] = stu;
tempIndex++;
}
}
//判断是否有查找到对应的学生
if (tempIndex == 0)
{
System.out.println("没有找到相应的学生信息");
}else
{
//以上的循环结束后,表示相同姓名的学生已查找到
System.out.println("学号\t\t姓名\t\t成绩");
for (int j = 0; j < tempIndex; j++)
{
Student stu = tempStu[j];//获取存储的每一个学生对象
System.out.print(stu.getCode()+"\t\t");
System.out.print(stu.getName()+"\t\t");
System.out.println(stu.getScore());
}
}
}
//成绩降序查询学生信息
public static void seachStudentByScore(){
System.out.println("学号\t\t姓名\t\t成绩");
for (int i = 0; i<index; i++ )
{
for (int j = i+1; j < index; j++ )
{
if (stus[i].getScore() < stus[j].getScore())
{
Student temp = stus[i];
stus[i] = stus[j];
stus[j] = temp;
}
}
}
for (int i = 0; i < index; i++ )
{
Student stu = stus[i];//获取存储的每一个学生对象
System.out.print(stu.getCode()+"\t\t");
System.out.print(stu.getName()+"\t\t");
System.out.println(stu.getScore());
}
}
//接收字符串类型的数据
public static String returnString(){
java.util.Scanner input=new java.util.Scanner(System.in);
return input.next();
}
//接收int类型的数据
public static int returnInt(){
java.util.Scanner input=new java.util.Scanner(System.in);
return input.nextInt();
}
//接收double类型的数据
public static double returnDouble(){
java.util.Scanner input=new java.util.Scanner(System.in);
return input.nextDouble();
}
}
|
|