zoukankan      html  css  js  c++  java
  • java写的小的学生管理程序

    import java.io.Serializable;
    
    public class Student implements Serializable{
    		private String name ; 
    		private int age ;
    		private int grade ;
    		
    		public Student(String name, int age, int grade) {
    			this.name = name ;
    			this.age = age ; 
    			this.grade = grade ;
    		}
    		
    		public void setName(String name) {
    			this.name = name;
    		}
    		
    		public void setAge(int age) {
    			this.age = age ;
    		}
    		
    		public void setGrade(int grade) {
    			this.grade = grade;
    		}
    		
    		public String getName() {
    			return this.name;
    		}
    		
    		public int getAge() {
    			return this.age;
    		}
    		
    		public int getGrade() {
    			return this.grade;
    		}
    		
    		public Student() {
    			
    		}
    		public String toString() {
    			return name+" "+age+" "+grade;
    		}
    		
    }
    

      

    以上是关于Student类的定义,大家也可以做自己的修改,这都是源码哦

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.util.ArrayList;
    import java.util.Scanner;
    
    public class Main {
    	
    	static ArrayList<Student> s = new ArrayList<Student>();   //设置为整个类都可以访问的 
    	
    	public static void main(String[] args) {
    		try {
    			System.out.println("数据载入中...");
    			ObjectInputStream in = new ObjectInputStream(
    					new FileInputStream("obj.bat"));
    			try {
    				s = ((ArrayList<Student>)in.readObject());
    				System.out.println("数据载入完成!");
    			} catch (ClassNotFoundException e) {
    				// TODO 自动生成的 catch 块
    				e.printStackTrace();
    			}
    			in.close();
    		} catch (FileNotFoundException e1) {
    			// TODO 自动生成的 catch 块
    			e1.printStackTrace();
    		} catch (IOException e1) {
    			// TODO 自动生成的 catch 块
    			e1.printStackTrace();
    		}
    		while(true) {
    			choose() ;
    			try {
    				ObjectOutputStream out = new ObjectOutputStream(
    							new FileOutputStream("obj.bat"));
    				out.writeObject(s);
    				out.close();
    			} catch (FileNotFoundException e) {
    				// TODO 自动生成的 catch 块
    				e.printStackTrace();
    			} catch (IOException e) {
    				// TODO 自动生成的 catch 块
    				e.printStackTrace();
    			}
    		}
    	}
    	public static void choose() {
    		Scanner in = new Scanner(System.in);
    		System.out.println("1 add " + "2 rm " + "
    " + "3 show " + "4 quit" );
    		int flag = Integer.parseInt(in.nextLine());
    		//in.close();
    		switch(flag) {
    		case 1 : add(); break ;
    		case 2 : rm(); break ;
    		case 3 : show(); break ;
    		case 4 : quit(); break ;
    		}
    	}
    	
    	public static void add() {
    		Scanner in = new Scanner(System.in);
    		Student s1 = new Student();
    		System.out.println("please input the name of the student: ");
    		s1.setName( in.nextLine() );
    		System.out.println("please input the age of the student: ");
    		s1.setAge(Integer.parseInt(in.nextLine()));
    		System.out.println("please input the grade of the student: ");
    		s1.setGrade(Integer.parseInt(in.nextLine())) ;
    		s.add(s1);
    		//in.close();
    		System.out.println("over");
    	}
    	
    	public static void show() {
    		Student [] s_all = new Student[s.size()] ;
    		s.toArray(s_all);
    		for(Student s1 : s_all) {
    			System.out.println(s1.toString());
    		}
    	}
    	
    	public static void quit() {
    		System.out.println("exit");
    		System.exit(0);
    	}
    	
    	public static void rm() {
    		byte [] temp = new byte[20];
    		String name = "";
    		try {
    			System.in.read(temp);
    			name = new String(temp);
    		}catch(IOException e) {
    		}
    		Student [] s_all = new Student[s.size()];
    		s.toArray(s_all);
    		for(Student s1 : s_all) {
    			
    			if(s1.getName().trim().equals(name.trim())) {
    				System.out.println(s.indexOf(s1));
    				s.remove(s.indexOf(s1));
    				System.out.println(s1.getName()+"have been removed");
    			}
    		}
    	}
    }
    

      

    这上面的是一个主要的操作类,定义了一些可以进行的操作,大家也可以根据自己的需要进行修改,这里我只写了一个按照name删除的方法,其实也可以根据age和grade的操作,其实都是大同小异的。

    在这里感觉在这个程序上收获最多的是关于ArrayList的使用,真的是方便,大大节省了关于存储文件和读取文件的过程,ObjectOutputStream和ObjectInputStream的使用大大减少了关于文件的操作。

    当然了,这只是我作为一个初学者的认识,如果又不对的地方,还请大家指出来,我会更正的。

    最后,等自己学完Swing之后,我争取可以做出一个带UI的程序,到时候也会分享的。

    原文:https://blog.csdn.net/qq_42330141/article/details/89159173

  • 相关阅读:
    一、第一个小程序
    Golang学习笔记
    第四章 自上而下分析
    个人vim配置
    第三章 词法分析
    3.7 TCP拥塞控制
    3.6 拥塞控制原理
    3.5 面向连接的运输:TCP
    3.4可靠数据传输的原理
    3.3 无连接运输:UDP
  • 原文地址:https://www.cnblogs.com/qbdj/p/10863299.html
Copyright © 2011-2022 走看看