import java.util.Scanner;
public class Demo_StuAdmin1 {
public static void main(String[]args){
Scanner scan=new Scanner(System.in);
Student[]arr=new Student[10];
Admin admin=new Admin(arr);
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("请选择功能序号:");
int in=scan.nextInt();
switch(in){
case 1:
admin.add();
break;
case 2:
admin.change();
break;
case 3:
admin.delet();
break;
case 4:
admin.search();
break;
case 5:
return;
default:
System.out.println("输入有误");
break;
}
}
}
}
class Admin{
Student[]arr; //创建一个学生数组
Student[]arrTemp=new Student[10]; //创建一个临时学生数组
Scanner scan=new Scanner(System.in);
Admin(Student[]arr){
this.arr=arr;
}
//在Student数组中添加学生对象
public void add(){
for(int i=0;i<arr.length;i++){
if(arr[i]==null){
System.out.println("请输入学号");
int stuCode=scan.nextInt();
if(stuCode<0||stuCode>10000){
System.out.println("您输入的学号错误,请进行其他操作");
return;
}else{
arr[i]=new Student();
arr[i].setStucode(stuCode);
}
System.out.println("请输入姓名");
String name=scan.next();
arr[i].setName(name);
System.out.println("请输入成绩");
int score=scan.nextInt();
if(score<0||score>100){
System.out.println("您输入的错误错误,请进行其他操作");
return;
}else{
arr[i].setScore(score);
return;
}
}
}
System.out.println("系统储存已满,请进行其他操作");
return;
}
//修改Student数组中指定对象的成绩
public void change(){
System.out.println("请输入要修改成绩的学生学号");
int stuCode=scan.nextInt();
for(int i=0;i<arr.length;i++){
if(stuCode==arr[i].getStucode()){
System.out.println("请输入成绩");
int score=scan.nextInt();
arr[i].setScore(score);
return;
}
}
System.out.println("您输入的学生学号有误");
}
//删除学生对象
public void delet(){
System.out.println("请输入要修改成绩的学生学号");
int stuCode=scan.nextInt();
for(int i=0;i<arr.length;i++){
if(stuCode==arr[i].getStucode()){
arr[i]=null;
return;
}
}
System.out.println("您输入的学生学号有误");
}
//查询学生信息
public void search(){
System.out.println("************学生信息查询***********");
System.out.println("1.查询全部学生信息");
System.out.println("2.根据姓名查询学生信息");
System.out.println("3.根据成绩显示学生信息(降序)");
int in=scan.nextInt();
switch(in){
case 1:
showAll();
break;
case 2:
check();
break;
case 3:
downSort();
break;
default :
System.out.println("输入有误");
break;
}
}
//1.查询全部学生信息
public void showAll(){
System.out.println("学号"+"\t\t"+"姓名"+"\t\t"+"成绩");
for(int i=0;i<arr.length;i++){ //遍历学生数组,输出所有指向不为空的学生元素
if(arr[i]!=null){
System.out.println(arr[i]);
}
}
}
//2.根据学生姓名查询学生信息
public void check(){
System.out.println("请输入要查询的学生姓名");
String name=scan.next();
int count=0; //创建一个计数器,用于记录同名学生人数
for(int i=0;i<arr.length;i++){ //遍历学生数组,当有与数组元素的成员变量name相同时,计数器count加1
if(arr[i]!=null){
if(arr[i].getName().equals(name)){
count++;
}
}
}
if(count!=0){ //计数器不等于零,键盘输入的姓名在数组中存在,遍历学生数组,当元素的成员变量name与键盘录入的姓名一致时,输出学生元素
System.out.println("学号"+"\t\t"+"姓名"+"\t\t"+"成绩");
for(int i=0;i<arr.length;i++){
if(arr[i]!=null){
if(arr[i].getName().equals(name)){
System.out.println(arr[i]);
}
}
}
return;
}else{ //计数器为零,说明输入的姓名在数组元素的成员变量name中不存在.
System.out.println("你输入的学生姓名有误");
}
}
//3.根据学生成绩显示学生信息(降序)
public void downSort(){
System.out.println("学号"+"\t\t"+"姓名"+"\t\t"+"成绩");
for(int i=0;i<arr.length;i++){ //遍历学生数组,如果元素不为空,则直接复制到临时数组,如果元素为空,则创建学生元素存入临时数组.避免出现空指针异常
if(arr[i]!=null){
arrTemp[i]=arr[i];
}else{
arrTemp[i]=new Student();
}
}
for(int i=0;i<arrTemp.length-1;i++){ //根据score大小对临时学生数组元素进行冒泡排序
for(int j=0;j<arrTemp.length-1-i;j++){
if(arrTemp[j].getScore()>arrTemp[j+1].getScore()){
Student temp=new Student();
temp=arrTemp[j];
arrTemp[j]=arrTemp[j+1];
arrTemp[j+1]=temp;
}
}
}
for(int i=0;i<arrTemp.length;i++){ //遍历临时学生数组,输出每一个Student元素
if(arrTemp[i].getName()!=null){
System.out.println(arrTemp[i]);
}
}
}
}
//创建学生类
class Student{
private String name;
private int stuCode;
private int score;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getStucode() {
return stuCode;
}
public void setStucode(int stucode) {
this.stuCode = stucode;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String toString() {
return stuCode + "\t\t" + name + "\t\t"+ score ;
}
}
|
|