学生成绩的数据结构

时间:2025-03-14 13:13:37

如果要写程序表达一个班级的很多个学生的很多门课的成绩,应该如何表达这些数据?

如果我们希望通过学生的姓名,可以找到他的所有的成绩,而每一门课的成绩,是由课程名称和分数构成的。

而如果我们还希望这个程序能找出某一门课的全部学生的成绩应该怎样做呢?

注意,并非所有的学生都参加了所有的课程。

package hello;

import ;

 public class Main {
    
    private HashMap<String, HashMap<String, Integer>> stuname = new  HashMap<String, HashMap<String, Integer>>();
        
    public Main() {
    }
    
    public void setCourselist(String studentname,String coursename, Integer score) {
                
        HashMap<String, Integer> map = (HashMap<String, Integer>) (studentname);
        
        if(map == null) {
            map = new HashMap<String, Integer>();
            (studentname, map);
        }
        (coursename, score);
        
    }
    
    void listofstu(String name) {
        (name+"'s course and score are:");
        
        HashMap<String, Integer> map = (name);
        if (map == null) {
            ("wrong name, please input again:/n");
        }
        
        for (String course : ()) {
            (course + " : "+(course));
        }
    }
    
    
    void listofcourse(String course) {
        (course+"\n student and score are:");
        for (String studentname : ()) {
            HashMap<String, Integer> map = (studentname);
            if (map == null) break;
            else    
            for (String coursename : ()) {
            if (course == coursename){
            (studentname + " : "+(coursename));
            }
        }
        }
    }
    
     public static void main(String[] args) {
    Main stu1 = new Main();
                
        ("A","Math",90);
        ("A","Chinese",91);
        ("A","English",93);
        ("B","Math",94);
        ("B","Chinese",95);
        ("B","English",96);
        ("C","Chinese",97);
        ("C","English",98);
        ("A");
        ("-----------------");
        ("B");
        ("-----------------");
        ("Math");
   }
 }