java实现简单的学生管理系统

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

import java.util.Collections;

import java.util.List;
import java.util.Scanner;

public class Kaige {
	

	
	/**
	 * @param args
	 * @throws IOException 
	 * @throws InterruptedException 
	 */
	public static void main(String[] args) throws IOException, InterruptedException {
		// TODO Auto-generated method stub
		System.out.printf("欢迎来到学生成绩管理系统\n");
		System.out.printf("----------------\n");
		jiazzai();
		List<Student> list=new ArrayList<Student>();
		dupan(list);
		bianli(list);
		Scanner ss=new Scanner(System.in);
	    while(true)
	    {
	    	meun();
	    	int input;
	    	input=ss.nextInt();
	    	
	    	switch (input) {
			case 1:
				Kaige.Insert(list);
				break;
			case 2:Kaige.delect(list);
				break;
			case 3:Kaige.bianli(list);
				break;
			case 4:Kaige.select(list);
			    break;
			case 5:Kaige.xiugai(list);
				break;
			case 6:Kaige.save(list);
				break;
			case 7:Kaige.paixu(list);
			    break;
			case 8:list.clear();
		        break;
			case 0:
				System.exit(0);
				
			}
	    }
	    
	    
	}
	public static void Insert(List<Student> list)
	{
		Scanner s=new Scanner(System.in);
		//Kaige.bianli(list);
		System.out.printf("请输入你要插入的学号:\n");
		String string=s.nextLine();
		//System.out.println(string);
		boolean f=panduan(list, string);
		
		if(f)
		{
			System.out.printf("你想要插入的学号已经存在\n");
			
		}
		else 
		{
			Scanner scanner=new Scanner(System.in);
			System.out.printf("请输入你要插入的学生的姓名:\n");
			String name=scanner.nextLine();
			System.out.printf("请输入你要插入的学生的成绩:\n");
			double score=scanner.nextDouble();
			Student student=new Student();
			student.getNo(string);
			student.getName(name);
			student.getSorce(score);
			list.add(student);
			
			System.out.printf("学生信息插入成功\n");
			//scanner.close();
		}
		//s.close();
	
	}
	public static void bianli(List<Student> list)
	{
		System.out.println("共有"+list.size()+"名学生");
		System.out.println("学号\t姓名\t成绩\t");
		for(int i=0;i<list.size();i++)
		{
			Student s=list.get(i);
			System.out.println(s.dno()+"\t"+s.dname()+"\t"+s.dss());
		}
		
	}
	public static boolean panduan(List<Student> list,String str)
	{
		int f=1;
		for (Student student : list)
		{
			String string=student.dno();
			if(string.equals(str))
				f=0;
			    
		}
		if(f==1)
		{
			return false;
		}
		else 
		{
			return true;
		}
	}
	public static void delect(List<Student> list)
	{
		Scanner s=new Scanner(System.in);
		System.out.println("请输入你要删除的学号:");
		String string=s.nextLine();
		boolean f=panduan(list, string);
		System.out.println(f);
		if(f)
		{
			for (Student student : list) 
			{
				if(string.equals(student.dno()))
				{
					list.remove(student);
					System.out.println("删除成功");
					break;
				}
			}
		}
		else
		{
			System.out.println("你要删除的学号对应的学生不存在");
		}
		
	}
	public static void select(List<Student> list)
	{
		System.out.println("你要查找的学号是:");
		Scanner cc=new Scanner(System.in);
		String str=cc.nextLine();
		if (panduan(list, str)) {
			
			System.out.println("此学生存在");
		}
		else {
			System.out.println("此学生不存在");
		}
	}
	public static void xiugai(List<Student> list)
	{
		System.out.println("你要修改的学号是:");
		Scanner cc=new Scanner(System.in);
		String str=cc.nextLine();
		int index = 0;
		if (panduan(list, str)) 
		{
					
			for(int i=0;i<list.size();i++)
			{
				if (list.get(i).dno().contains(str)) {
					
					index=i;
					break;
				}
			}
		    System.out.println("请输入你要改的姓名:");
		    String str1=cc.nextLine();
		    System.out.println("请输入你要修改的成绩");
		    double str2=cc.nextDouble();
		    Student s1=new Student();
		    s1.getNo(str);//学号不可变
		    s1.getName(str1);
		    s1.getSorce(str2);
		    list.set(index, s1);
		    System.out.println("修改成功");
		}
		else {
			System.out.println("你想要修改的学生信息不存在");
		}
		
	}
	//把数据存到文件中
	public static void save(List<Student> list) throws IOException
	{
		FileWriter fw = new FileWriter("C:\\test.txt"); // 可以自动创
		fw.write("学号\t姓名\t成绩\n");
		for(int i=0;i<list.size();i++)
		{
			fw.write(list.get(i).dno()+"\t"+list.get(i).dname()+"\t"+list.get(i).dss());
			fw.write("\n");
		}
		fw.close();
		System.out.println("数据已保存C:\\test.txt文件中");
	}
	//把数据从文件中读取到类中在放进集合
	public static void dupan(List<Student> list) throws IOException
	{
		FileReader fr=new FileReader("C:\\test.txt");
	    BufferedReader buff=new BufferedReader(fr);
	    String line;
	    buff.readLine();
	    while((line= buff.readLine()) != null)
	    {
	    	String []string = line.split("\t");
	    	Student student=new Student();
	    	double kk=Double.parseDouble(string[2]);
	    	student.getNo(string[0]);
	    	student.getName(string[1]);
	    	student.getSorce(kk);
	    	list.add(student);
	    }
	    buff.close();
	    
	}
	public static void jiazzai() throws InterruptedException
	{
		System.out.println("数据加载中...");
		StringBuilder ss=new StringBuilder();
		System.out.print("[");
		for(int i=1;i<=50;i++)
		{
		     
			System.out.print("■");
			if(i>=6&&i<=15)
			    Thread.sleep(50);
			else if(i==21&&i==25&&i==26&&i==27)
		    	Thread.sleep(200);
		    else
		    	Thread.sleep(100);
				
			
		}
		System.out.println("]");
		System.out.println("加载完成");
		
	}
	public static void paixu(List<Student> list)  //排序
	{
		Collections.sort(list);
		bianli(list);
	}
	
	public static void meun()
	{
		System.out.println("-------1.新增一个学生数据--------");
		System.out.println("-------2.删除一个学生数据--------");
		System.out.println("-------3.输出所有学生数据--------");
		System.out.println("-------4.查询一个学生数据--------");
		System.out.println("-------5.修改一个学生数据--------");
		System.out.println("-------6.存储所有学生数据--------");
		System.out.println("-------7.根据学生成绩排序--------");
		System.out.println("-------8.清空所有学生数据--------");
	}

}
class Student implements Comparable<Student>{
	private String no;
	private String name;
	private double sorce;
	public String dno()
	{
		return this.no;
	}
	public String dname()
	{
		return this.name;
	}
	public double dss()
	{
		return this.sorce;
	}
	public void getNo(String no)
	{
		this.no=no;
	}
	public void getName(String name)
	{
		this.name=name;
	}
	public void getSorce(double sorce)
	{
		this.sorce=sorce;
	}
	public int compareTo(Student student)
	{
		return (int) (this.sorce-student.sorce);
	}
	
}
 

1、把6个java文件保存到同一文件夹,例如C:\Student.然后将6个java文件分别编译生成相应的字节码(.class)文件,然后,用java 解释器运行主类:C:\Student\java StudentManager 2、使用jar.exe把一些文件压缩成JAR文件,来发布我们的应用程序。我们可以把本java应用程序中涉及到的类文件(*.class)压缩成一个JAR文件,例如StudentManager.jar。 首先,用记事本编写一个清单文件(Manifestfiles): Manifest-Version: 1.0 Main-class: StudentManager Created-By: 1.2.2(Sun Microsystems Inc.) 例如,清单文件命名为moon.mf,保存到C:\Student。 注意:在编写清单文件时,在“Manifest-Version:”和“1.0”之间,“Main-class:”和“StudentManager”之间,以及在“Created-By:”和“1.2.2(Sun Microsystems Inc.)”之间必须有且只有一个空格。 然后,如下生成JAR文件: C:\Student\jar cvfm StudentManager.jar moon.mf *.class 其中,参数C表示要生成一个新的JAR文件;f表示要生成的JAR文件的名字,m表示文件清单文件的名字,v表示生成详细输出到标准输出上。具体运行jar命令请查看 现在就可以将StudentManager.jar拷贝到任何一个安装了java运行环境(jdk版本号须高于1.2.2)的计算机上,只要鼠标双击StudentManager.jar文件就可以运行该java应用程序了。 注意在装了WinRAR解压缩软件的机子上可能不能运行,因此,在发布本系统时,还应该建立一个有如下内容的.bat文件(StudentManager.bat),用记事本编写: javaw -jar StudentManager.jar 保存即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值