java集合学生管理系统

//student.java

package 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;
	}

}
//StudentTest

package 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();
	}
}
时间: 2024-08-03 15:19:29

java集合学生管理系统的相关文章

Java+Mysql+学生管理系统

最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具:eclipse 开发此案例,首先得在电脑上有java开发环境和Mysql, java开发环境与Mysql的搭建,就不再叙述了,如果需要,请联系我最下面的联系方式:[email protected] 此次系统比较简易:数据库中只有一个表:stu;功能:能够对学生增加.删除.修改. 开发步骤: 1.在

Java写学生管理系统

package Homework08;/*调试了一上午,收获:学会了昨天的debug的使用吸取教训:Student stus[]=new Student[2]; for (int i=0;i<stus.length;i++){ stus[i]=new Student();应该写在循环外面,否则每次都被初始化.}*/ import java.util.Scanner; public class Main { public static void main(String[]args){    /**

Java版本 学生管理系统

package BookDemo_1; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[] args) { StudentSys stuSys=new StudentSys("学生管理系统"); stuSys.initWin(); } } class StudentSys extends JFrame{

学生管理系统——ArrayList集合

此学生管理系统利用了集合ArrayList实现了对学生的增删改查:利用数组中的方法实现分数排序:运用String类的equals实现登录功能的字符串比较. 管理员类: package data; public class Manger { private String Manname; private String Manpassword; public Manger(String Manname, String Manpassword) { this.Manname = Manname; th

Java 图形界面开发--图文并茂建立学生管理系统

图形用户界面(Graphics User Interface,GUI)是用户与程序交互的窗口,比命令行的界面更加直观并且更好操作. 这是本人在学习java图形界面开发阶段一步一步实现的超级简易的学生管理系统.虽然说不入大神法眼,但这确实是费了自己不少心血.对于我这样的菜鸟来说,考虑不周到,一不小心就Exception,然后就是自己调呀调.在此分享出来希望对和我一样的菜鸟有帮助. 程序完整代码下载地址见: https://github.com/chaohuangtianjie994/The-Sys

Java写一个简单学生管理系统

其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组.List等等来写出一个简易的学生管理系统,二.牛逼一点的大神则用数据库+swing来做一个有界面的学生管理系统.其实都并不会太难. 今天我就先写一个简单的用List来实现学生管理系统: 首先,管理系统是针对学生对象的,所以我们先把学生对象就写出来: package bean; public class Student { String name; String studentId;

java版本的学生管理系统

1 import java.awt.BorderLayout; 2 import java.awt.Color; 3 import java.awt.Frame; 4 import java.awt.event.ActionEvent; 5 import java.awt.event.ActionListener; 6 import java.io.UnsupportedEncodingException; 7 import java.sql.Connection; 8 import java.

java写的一个简单学生管理系统[改进]

用Java写的一个简单学生管理系统 import java.util.*; public class student_cj {  public static void main(String[] args){      Scanner in=new Scanner(System.in);   System.out.print("请输入学生人数:");   int num=in.nextInt();//学生人数   String[] str=new String[num];//结合一行数

JAVA入门到精通-第72讲-学生管理系统4-model 2模式(1)

删除.查询.添加.修改: -修改: 每个字段都可能修改: //给?赋值 //在prepareStatement语句后面赋值才好用 //修改完了,更新数据 目前为止,已经完成了增删改查-Model1模式 最大特点: 界面和业务逻辑操作是放在一起的: 优点:简单,开发方便: 缺点:代码复用性不高: 中大型项目可读性差,可维护性不高: 前台后端混杂在一起的: 比如:"数据库密码换了, 所有涉及到数据库的地方都需要发生变化" =================================