zoukankan      html  css  js  c++  java
  • 案例-学生成绩管理

    一共需要创建三个类:
    1:Student类------存放程序所需的属性和方法
    2:Control类------具体的实现方法
    3:Test类------测试类

    Student类

    import java.util.ArrayList;
    
    public class Student {
    
    	String name;
    	int id;
    	ArrayList<Subject> list;
    	
    	public Student() {
    		
    	}
    	
    	public Student(String name,int id,ArrayList<Subject> list) {
    		this.name = name;
    		this.id = id;
    		this.list = list;
    	}
    
    	@Override
    	public String toString() {
    		return "Student [name=" + name + ", id=" + id + ", list=" + list + "]";
    	}
    }
    
    class Subject {
    	String name;
    	int score;
    	
    	public Subject() {
    		
    	}
    	public Subject(String name,int score) {
    		this.name = name;
    		this.score = score;
    	}
    
    	@Override
    	public String toString() {
    		return "Subject [name=" + name + ", score=" + score + "]";
    	}
    	
    }
    

    Control类

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Set;
    
    import javax.swing.text.html.HTMLDocument.Iterator;
    
    public class Control {
    	// 创建全局的list
    	LinkedList<Student> list = new LinkedList<Student>();
    	void initStudent() {
    		Subject subject1 = new Subject("语文",90);
    		Subject subject2 = new Subject("数学",80);
    		Subject subject3 = new Subject("英语",88);
    		ArrayList<Subject> list1 = new ArrayList<Subject>();
    		list1.add(subject1);
    		list1.add(subject2);
    		list1.add(subject3);
    		Student student1 = new Student("张三",1,list1);
    
    		Subject subject11 = new Subject("语文",66);
    		Subject subject21 = new Subject("数学",65);
    		Subject subject31 = new Subject("英语",99);
    		ArrayList<Subject> list2 = new ArrayList<Subject>();
    		list2.add(subject11);
    		list2.add(subject21);
    		list2.add(subject31);
    		Student student2 = new Student("李四",2,list2);
    
    		Subject subject12 = new Subject("语文",78);
    		Subject subject22 = new Subject("数学",88);
    		Subject subject32 = new Subject("英语",89);
    		ArrayList<Subject> list3 = new ArrayList<Subject>();
    		list3.add(subject12);
    		list3.add(subject22);
    		list3.add(subject32);
    		Student student3 = new Student("王五",3,list3);
    
    		Subject subject13 = new Subject("语文",66);
    		Subject subject23 = new Subject("数学",88);
    		Subject subject33 = new Subject("英语",56);
    		ArrayList<Subject> list4 = new ArrayList<Subject>();
    		list4.add(subject13);
    		list4.add(subject23);
    		list4.add(subject33);
    		Student student4 = new Student("赵六",4,list4);
    
    		Subject subject14 = new Subject("语文",66);
    		Subject subject24 = new Subject("数学",66);
    		Subject subject34 = new Subject("英语",83);
    		ArrayList<Subject> list5 = new ArrayList<Subject>();
    		list5.add(subject14);
    		list5.add(subject24);
    		list5.add(subject34);
    		Student student5 = new Student("温九",5,list5);
    
    		this.list.add(student1);
    		this.list.add(student2);
    		this.list.add(student3);
    		this.list.add(student4);
    		this.list.add(student5);
    
    	}
    
    
    	//1,获取指定学生的成绩
    	public void score(String name) {
    		//遍历list中的学生
    		for (Student student : this.list) {
    			if (name.equals(student.name)) {
    				List<Subject> subList = student.list;
    				System.out.println(subList);
    			}
    		}
    	}
    
    	//2,获取指定学号的成绩
    	public void idScore(int id) {
    		for (Student student : this.list) {
    			if (student.id == id) {
    				System.out.println(student.list);
    			}
    		}
    	}
    
    	//3,根据学生的id修改姓名
    	public void idChangeName(int id,String name) {
    		for (Student student : this.list) {
    			if (student.id == id) {
    				System.out.println("修改前的学生的姓名是:" + student.name);
    				student.name = name;
    				System.out.println("修改后的学生的姓名是:" + student.name);
    			}
    		}
    	}
    	//4,根据姓名修改指定学科的成绩
    	public void changeScore(String name,String sub,int score) {
    		for (Student student : this.list) {
    			if (student.name.equals(name)) {
    				System.out.println("修改前学生的成绩是:" + student.list);
    				for (Subject subject : student.list) {
    					if (subject.name.equals(sub)) {
    						subject.score = score;
    						System.out.println("修改后的学生的成绩是:" + student.list);
    					}
    				}
    			}
    		}
    	}
    	//5,删除指定学生的成绩
    	public void delete(String name) {
    		for (Student student : this.list) {
    			if (student.name.equals(name)) {
    				this.list.remove();
    				System.out.println("删除成功");
    				for (Student student1 : this.list) {
    					System.out.println(student1);
    				}
    				return;
    			}
    		}
    	}
    	//6,获取到所有学生的成绩,映射到新的数组中,并进行排序
    	public void getScore() {
    		ArrayList<Integer> list1 = new ArrayList<Integer>();
    		for (int i = 0; i < list.size(); i++) {
    			Student stu = list.get(i);
    			list1.add(stu.list.get(0).score);
    		}
    		System.out.println(list1);
    
    
    		for (int i = 0; i < list1.size() - 1; i++) {
    			for (int j = 0; j < list1.size()- i - 1; j++) {
    				if (list1.get(j) > list1.get(j+1)) {
    					int temp = list1.get(j);
    					list1.set(j, list1.get(j+1));
    					list1.set(j+1, temp);
    				}
    			}
    		}
    
    		System.out.println(list1);
    	}
    	//7*统计一下相同成绩的人的人数
    	public void number() {
    
    		//创建一个HashMap来存放数组的信息,HashMap的键为元素,值为该元素出现的次数
    		HashMap<Integer, Integer> map = new HashMap<Integer,Integer>();
    		//从装学生的list中取出学生信息
    		for (Student student : list) {
    			//从装学科的list中取出各科成绩
    			for (Subject subject : student.list) {
    				//System.out.println(subject);
    				if (subject.name == "语文") {
    					Integer num = map.get(subject.score);    
    					map.put(subject.score, num == null ? 1 : num + 1); 
    				}	 
    			}
    		}
    
    		Set keySet = map.keySet();   //用集合接收获取所有的键
    		for (Object object : keySet) {
    			System.out.print("成绩:" + object);
    			System.out.print(",");
    			System.out.println("出现的次数: " + map.get(object));
    		}
    
    	}
    }
    
    

    Test类

    import java.util.Scanner;
    public class Test {
    
    	public static void main(String[] args) {
    		
    		//先创建一个对象
    		Control control = new Control();
    		control.initStudent();
    		//1,
    		System.out.println("请输入学生的姓名:");
    		Scanner sc = new Scanner(System.in);
    		String name = sc.next();
    		control.score(name);
    		//2,
    		System.out.println("请输入学生的id:");
    		int id = sc.nextInt();
    		control.idScore(id);
    		
    		//3,
    		System.out.println("请输入学生的id:");
    		int id1 = sc.nextInt();
    		System.out.println("请输入要修改的姓名:");
    		String name1 = sc.next();
    		control.idChangeName(id1, name1);
    		
    		//4,
    		control.changeScore("张三", "语文", 100);
    		
    		//5
    		control.delete("张三");
    		
    		//6,
    		control.getScore();
    		
    		//7,
    		control.number();
    		
    	}
    
    }
    
    小二寄语:感谢每一个看完这篇文章的人。希望我们可以在奋斗的路上砥砺前行!
  • 相关阅读:
    支付宝支付私钥和公钥创建
    (五)Maven中的聚合和继承
    Windows 下Nexus搭建Maven私服
    (四)Maven中的仓库
    zookeeper安装和使用 windows环境
    (一)Redis之简介和windows下安装radis
    (错误) Eclipse使用Maven创建Web时错误
    (三)引用中央仓库中不存在的jar包
    (二)依赖传递
    (一)Maven基础及第一个Maven工程
  • 原文地址:https://www.cnblogs.com/S-YAnLEi/p/7513432.html
Copyright © 2011-2022 走看看