zoukankan      html  css  js  c++  java
  • 2018.4.2 学生信息管理系统(集合版) 完整篇

    学生信息管理系统(集合版)

    Student.java

    package com.lanqiao.demo;
    
    /**
     * 学生类
     * 
     * @author qichunlin
     *
     */
    public class Student {
    	private String name;// 姓名
    	private double[] score = new double[3];// 三门课程成绩
    
    	// get set
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public double[] getScore() {
    		return score;
    	}
    
    	public void setScore(double[] score) {
    		this.score = score;
    	}
    
    	// 有参构造方法
    	public Student(String name2, double[] score2) {
    		super();
    
    		// 传入的参数跟类里定义的属性区分开
    		this.name = name2;
    		this.score = score2;
    	}
    
    	// 无参构造方法
    	public Student() {
    		super();
    	}
    
    	// 有参构造函数
    	public String toString() {
    		return "	" + this.name + "	" + this.score[0] + "	" + this.score[1] + "	" + this.score[2];
    	}
    
    }
    

    Manager.java

    package com.lanqiao.demo;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    public class Manager {
    	List stuList = new ArrayList();
    
    	Scanner input = new Scanner(System.in);
    
    	public void menu() {
    		System.out.println("======学生信息管理系统======");
    		System.out.println("1.添加学生");
    		System.out.println("2.查询学生");
    		System.out.println("3.修改学生");
    		System.out.println("4.删除学生");
    		System.out.println("5.退出系统");
    		
    		
    		System.out.println("请选择:");
    		int num = input.nextInt();
    
    		switch (num) {
    		case 1:
    			System.out.println("添加学生");
    			
    			//创建学生对象
    			Student stu = new Student();
    			
    			//录入学生姓名
    			System.out.print("请输入学生姓名:");
    			String name = input.next();
    			
    			double[] scores = stu.getScore();
    			for (int i = 0; i < scores.length; i++) {
    				System.out.print("请输入学生"+(i+1)+"门成绩:");
    				scores[i] = input.nextDouble();
    			}
    			
    			//将信息保存在学生对象里面
    			stu.setName(name);
    			stu.setScore(scores);
    			
    			
    			//再把学生对象放进去集合里面
    			input(stu);
    			break;
    			
    				
    		case 2:
    			display();
    			break;
    			
    		case 3:
    			System.out.println("修改学生");
    			display();
    			System.out.println("请输入需要修改学生的编号:");
    			int n = input.nextInt();
    			update(n);
    			break;
    			
    			
    		case 4:
    			System.out.println("删除学生");
    			System.out.println("请选择删除的方式(1.根据编号  2.根据姓名)");
    			int key = input.nextInt();
    			
    			//删除操作之前显示一下学生信息
    			display();
    			
    			//选择删除方式
    			switch (key) {
    			case 1:
    				
    				System.out.println("请输入删除的编号 ");
    				int index = input.nextInt();
    				
    				//在方法中定义了异常  数组下标越界的问题
    				try {
    					delete(index);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    				break;
    				
    			case 2:
    				System.out.println("请输入需要删除的学生姓名");
    				String delName = input.next();
    				delete(delName);
    				break;
    
    			default:
    				break;
    			}
    			
    			break;
    		case 5:
    			System.exit(0);
    			System.out.println("Welcome to use this system Next");
    			break;
    
    		default:
    			break;
    		}
    		
    		System.out.println("是否继续(Y/N):");
    		String flag = input.next();
    		if(flag.equalsIgnoreCase("y")) {
    			menu();
    		}else {
    			System.out.println("Welcome to use this system Next");
    		}
    	}
    
    	// 学生成绩录入方法,参数stus为待录入信息学生集合
    	public void input(Student stus) {
    		System.out.println();
    		stuList.add(stus);
    	}
    
    	// 学生成绩修改方法,参数index为修改的学生信息索引,另外本方法会在修改前显示该学生信息
    	public void update(int index) {
    		Student s = (Student)stuList.get(index);
    		System.out.println("请输入修改后的名字");
    		String name = input.next();
    		s.setName(name);
    		stuList.set(index, s);
    		System.out.println("==========修改后显示成绩信息==========");
    		System.out.println(s.getName()+"	"+s.getScore()[0]+"	"+s.getScore()[1]+"	"+s.getScore()[2]);
    	}
    
    	// 显示所有学生成绩信息方法
    	public void display() {
    		System.out.println("编号	"+"姓名	"+"成绩1	" +"成绩2	" +"成绩3	");
    		for (int i = 0; i < stuList.size(); i++) {
    			Student s = (Student) stuList.get(i);
    			System.out.println(i+"	"+s.getName()+"	"+s.getScore()[0]+"	"+s.getScore()[1]+"	"+s.getScore()[2]);
    		}
    	}
    
    	// 根据索引删除在集合中删除学生的方法
    	public void delete(int index) throws Exception {
    		if(index>=0 && index<stuList.size()) {
    			stuList.remove(index);
    		}else {
    			throw new Exception("你输入的编号有误,请重新输入!!!");
    		}
    	}
    
    	// 根据姓名删除在集合中删除学生的方法
    	public void delete(String name) {
    		for (int i = 0; i < stuList.size(); i++) {
    			Student st = (Student) stuList.get(i);
    			if(st.getName().equals(name)) {
    				stuList.remove(st);
    			}
    		}
    	}
    
    }
    

    Test.java

    package com.lanqiao.demo;
    
    /**
     * @author qichunlin
     *
     */
    public class Test {
    	public static void main(String[] args) {
    		
    		//创建管理类对象
    		Manager m = new Manager();
    		m.menu();
    	}
    }
    
  • 相关阅读:
    unicode 编码表(转)
    浅谈中日韩越统一表意文字
    计算机语言发展史
    赋值内存potential leak of an object stored into
    控件方法MFC对话框编程(二):控件的访问
    软件道老子的软件之道 道篇 37 无为而治
    分析脚本文件AndroidInitProcess分析心得(1)
    nullnullWord2010中,空格显示为省略号(点)的解决办法!
    程序环境基于 IO密集 & CPU密集考量 SAN & NAS 选择的一点建议
    总结原因认识自己做事习惯的方法
  • 原文地址:https://www.cnblogs.com/qichunlin/p/8708420.html
Copyright © 2011-2022 走看看