首页 > 代码库 > java集合学生管理系统

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;	}	@Override	public 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;			else				return 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();	}}

 

 

java集合学生管理系统