首页 > 学院 > 开发设计 > 正文

java集合学生管理系统

2019-11-14 21:18:44
字体:
来源:转载
供稿:网友
java集合学生管理系统
//student.javapackage com.sran.www;import java.util.Arrays;import java.util.Scanner;public class Student implements Comparable<Student>{int num;String name;int age;double[]s;double sum; //存储学生的总分public Student(){s=new double[3];}public static boolean insert(){Scanner sc=new Scanner(System.in);String str=null;boolean be=true;do{Student stud=new Student();System.out.PRintln("开始录入学生的相关信息.....");System.out.print("学号:");stud.num=sc.nextInt();System.out.print("姓名:");stud.name=sc.next();System.out.print("年龄:");stud.age=sc.nextInt();System.out.println("依次输入三门课的成绩:");System.out.print("语文:");stud.s[0]=sc.nextDouble();System.out.print("数学:");stud.s[1]=sc.nextDouble();System.out.print("英语:");stud.s[2]=sc.nextDouble();stud.sum=stud.calculate_sum();StudentTest.set.add(stud);System.out.println("如果继续录入,则输入%,否则输入 #");System.out.print("请输入:");str=sc.next();if(!(str.equals("%")||str.equals("#"))){be=false;System.out.println("你输入有误,已强制结束录入操作");}}while(str.equals("%") && be);return be;}public static boolean delete(){String str=null;boolean be=true;System.out.println("开始删除学生的相关信息.....");do{System.out.print("请输入要删除的学生的学号:");Scanner sc=new Scanner(System.in);int s=sc.nextInt();boolean flag=false;  //设一标志位for(Student stud:StudentTest.set){if(s==stud.num){StudentTest.set.remove(stud);flag=true;System.out.println("已删除该学生的信息");break;}}if(flag==false){System.out.println("你要删除的学生的学号不存在");}System.out.println("如果继续删除,则输入 %,否则输入#");System.out.print("请输入:");str=sc.next();if(!(str.equals("%")||str.equals("#"))){be=false;System.out.println("你输入有误,已强制结束删除操作");}}while(str.equals("%") && be);return be;}public static boolean seek(){String str=null;boolean be=true;System.out.println("开始查找学生的相关信息.....");do {System.out.print("请输入要查找的学生的学号:");Scanner sc=new Scanner(System.in);int s=sc.nextInt();boolean flag=false;for(Student stud:StudentTest.set){if(s==stud.num){flag=true;  //修改标志位System.out.println("你要查找的学生的信息:");System.out.println("学号:"+stud.num);System.out.println("姓名:"+stud.name);System.out.println("年龄:"+stud.age);System.out.println("语文成绩:"+stud.s[0]);System.out.println("数学成绩:"+stud.s[1]);System.out.println("英语成绩:"+stud.s[2]);break;}}if(flag==false){System.out.println("你要查找的学生的学号不存在");}System.out.println("如果继续查找,则输入 %,否则输入#");System.out.print("请输入:");str=sc.next();if(!(str.equals("%")||str.equals("#"))){be=false;System.out.println("你输入的有误,已强制结束查询操作");}}while(str.equals("%") && be);return be;}public double calculate_sum(){sum=s[0]+s[1]+s[2];return sum;}@Overridepublic int compareTo(Student stud) {this.sum=this.calculate_sum();stud.sum=stud.calculate_sum();if(this.sum>stud.sum) return -1;else if(this.sum<stud.sum) return 1;else{if(this.name.compareTo(stud.name)>0)  return -1;else if(this.name.compareTo(stud.name)<0)  return 1;elsereturn 0;}}public String toString(){System.out.println("学号"+"/t/t"+"姓名"+"/t/t"+"年龄"+"/t/t"+"语文"+"/t/t"+"数学"+"/t/t"+"英语"+"/t/t"+"总分");return(num+"/t/t"+name+"/t/t"+age+"/t/t"+s[0]+"/t/t"+s[1]+"/t/t"+s[2]+"/t/t"+sum);}public static boolean update(){String str=null;boolean bot=true;System.out.println("开始更新学生信息.....");do{System.out.print("请输入要更新的学生的学号:");Scanner sc=new Scanner(System.in);int s=sc.nextInt();boolean be=false;boolean br=false;for(Student stud:StudentTest.set){if(stud.num==s){be=true;//修改标志位System.out.println("请输入要更新的哪一项: 其中1代表学号,2代表姓名,3代表年龄,4代表语文成绩,5代表数学成绩,6代表英语成绩");System.out.print("请输入:");int n=sc.nextInt();switch(n){case 1:{System.out.print("请输入修改后的学号:");stud.num=sc.nextInt();System.out.println("修改成功");break;}case 2:{System.out.print("请输入修改后的姓名:");stud.name=sc.next();System.out.println("修改成功");break;}case 3:{System.out.print("请输入修改后的年龄:");stud.age=sc.nextInt();System.out.println("修改成功");break;}case 4:{System.out.print("请输入修改后的语文成绩:");stud.s[0]=sc.nextDouble();System.out.println("修改成功");stud.sum=stud.calculate_sum();  //重新更新总分br=true;break;}case 5:{System.out.print("请输入修改后的数学成绩:");stud.s[1]=sc.nextDouble();System.out.println("修改成功");stud.sum=stud.calculate_sum();  //重新更新总分br=true;break;}case 6:{System.out.print("请输入修改后的英语成绩:");stud.s[2]=sc.nextDouble();System.out.println("修改成功");stud.sum=stud.calculate_sum();  //重新更新总分br=true;break;}}}}if(br==true){Object[]obj=StudentTest.set.toArray();Arrays.sort(obj);StudentTest.set.clear();for(int i=0;i<obj.length;i++){Student st=(Student)obj[i];StudentTest.set.add(st);}}if(be==false){System.out.println("你要修改的学生的学号不存在");}System.out.println("如果继续修改,则输入 %,否则输入#");System.out.print("请输入:");str=sc.next();if(!(str.equals("%")||str.equals("#"))){bot=false;System.out.println("你输入有误,已强制结束更新操作");}}while(str.equals("%") && bot);return bot;}}
//StudentTestpackage com.sran.www;import java.util.Scanner;import java.util.Set;import java.util.TreeSet;public class StudentTest {static Set<Student>set=null;  //定义集合,存储学生信息public void fun(){int i;boolean b,bt;set=new TreeSet<Student>();  do{int flag=0;System.out.println("请输入1,2,3,4,5   1代表录入,2代表删除,3代表查找,4代表显示学生总成绩排名,5代表更新某个学生数据");System.out.print("请输入:");Scanner sc=new Scanner(System.in);int n=sc.nextInt();switch(n){case 1:{b=Student.insert(); if(b==true){System.out.println("正常结束录入操作.....");}flag=1;break;}case 2:{b=Student.delete(); if(b==true){System.out.println("正常结束删除操作.....");}flag=1;break;}case 3:{b=Student.seek();if(b==true){System.out.println("正常结束查询操作.....");}flag=1;break;}case 4:{System.out.println("开始排名学生信息.....");System.out.println("学生按总成绩排名:");for(Student stud:set){System.out.println(stud);System.out.println();}System.out.println("正常结束排名操作.....");flag=1;break;}case 5:{b=Student.update();if(b==true){System.out.println("正常结束更新操作.....");}flag=1;break;}}if(flag==0){System.out.println("你输入有误,请重新输入");}System.out.println();do {bt=false;System.out.println("继续所有学生信息操作,请输入1    退出学生信息系统 ,请输入0");System.out.print("请输入:");i=sc.nextInt();if(i!=1 && i!=0){bt=true;System.out.println("输入有误,请重新输入");}}while(bt==true);}while(i==1);System.out.println("你已退出学生信息系统.....");}public static void main(String[] args) {new StudentTest().fun();}}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表