學(xué)生成績(jī)管理

一共需要?jiǎng)?chuàng)建三個(gè)類:
1:Student類------存放程序所需的屬性和方法
2:Control類------具體的實(shí)現(xiàn)方法
3:Test類------測(cè)試類

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 {
    // 創(chuàng)建全局的list
    LinkedList<Student> list = new LinkedList<Student>();
    void initStudent() {
        Subject subject1 = new Subject("語(yǔ)文",90);
        Subject subject2 = new Subject("數(shù)學(xué)",80);
        Subject subject3 = new Subject("英語(yǔ)",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("語(yǔ)文",66);
        Subject subject21 = new Subject("數(shù)學(xué)",65);
        Subject subject31 = new Subject("英語(yǔ)",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("語(yǔ)文",78);
        Subject subject22 = new Subject("數(shù)學(xué)",88);
        Subject subject32 = new Subject("英語(yǔ)",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("語(yǔ)文",66);
        Subject subject23 = new Subject("數(shù)學(xué)",88);
        Subject subject33 = new Subject("英語(yǔ)",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("語(yǔ)文",66);
        Subject subject24 = new Subject("數(shù)學(xué)",66);
        Subject subject34 = new Subject("英語(yǔ)",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,獲取指定學(xué)生的成績(jī)
    public void score(String name) {
        //遍歷list中的學(xué)生
        for (Student student : this.list) {
            if (name.equals(student.name)) {
                List<Subject> subList = student.list;
                System.out.println(subList);
            }
        }
    }

    //2,獲取指定學(xué)號(hào)的成績(jī)
    public void idScore(int id) {
        for (Student student : this.list) {
            if (student.id == id) {
                System.out.println(student.list);
            }
        }
    }

    //3,根據(jù)學(xué)生的id修改姓名
    public void idChangeName(int id,String name) {
        for (Student student : this.list) {
            if (student.id == id) {
                System.out.println("修改前的學(xué)生的姓名是:" + student.name);
                student.name = name;
                System.out.println("修改后的學(xué)生的姓名是:" + student.name);
            }
        }
    }
    //4,根據(jù)姓名修改指定學(xué)科的成績(jī)
    public void changeScore(String name,String sub,int score) {
        for (Student student : this.list) {
            if (student.name.equals(name)) {
                System.out.println("修改前學(xué)生的成績(jī)是:" + student.list);
                for (Subject subject : student.list) {
                    if (subject.name.equals(sub)) {
                        subject.score = score;
                        System.out.println("修改后的學(xué)生的成績(jī)是:" + student.list);
                    }
                }
            }
        }
    }
    //5,刪除指定學(xué)生的成績(jī)
    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,獲取到所有學(xué)生的成績(jī),映射到新的數(shù)組中,并進(jìn)行排序
    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*統(tǒng)計(jì)一下相同成績(jī)的人的人數(shù)
    public void number() {

        //創(chuàng)建一個(gè)HashMap來存放數(shù)組的信息,HashMap的鍵為元素,值為該元素出現(xiàn)的次數(shù)
        HashMap<Integer, Integer> map = new HashMap<Integer,Integer>();
        //從裝學(xué)生的list中取出學(xué)生信息
        for (Student student : list) {
            //從裝學(xué)科的list中取出各科成績(jī)
            for (Subject subject : student.list) {
                //System.out.println(subject);
                if (subject.name == "語(yǔ)文") {
                    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("成績(jī):" + object);
            System.out.print(",");
            System.out.println("出現(xiàn)的次數(shù): " + map.get(object));
        }

    }
}

Test類

import java.util.Scanner;
public class Test {

    public static void main(String[] args) {
        
        //先創(chuàng)建一個(gè)對(duì)象
        Control control = new Control();
        control.initStudent();
        //1,
        System.out.println("請(qǐng)輸入學(xué)生的姓名:");
        Scanner sc = new Scanner(System.in);
        String name = sc.next();
        control.score(name);
        //2,
        System.out.println("請(qǐng)輸入學(xué)生的id:");
        int id = sc.nextInt();
        control.idScore(id);
        
        //3,
        System.out.println("請(qǐng)輸入學(xué)生的id:");
        int id1 = sc.nextInt();
        System.out.println("請(qǐng)輸入要修改的姓名:");
        String name1 = sc.next();
        control.idChangeName(id1, name1);
        
        //4,
        control.changeScore("張三", "語(yǔ)文", 100);
        
        //5
        control.delete("張三");
        
        //6,
        control.getScore();
        
        //7,
        control.number();
        
    }

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末渔肩,一起剝皮案震驚了整個(gè)濱河市因俐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌周偎,老刑警劉巖抹剩,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蓉坎,居然都是意外死亡澳眷,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門蛉艾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钳踊,“玉大人,你說我怎么就攤上這事勿侯⊥氐桑” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵助琐,是天一觀的道長(zhǎng)祭埂。 經(jīng)常有香客問我,道長(zhǎng)兵钮,這世上最難降的妖魔是什么蛆橡? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮掘譬,結(jié)果婚禮上泰演,老公的妹妹穿的比我還像新娘。我一直安慰自己葱轩,他們只是感情好睦焕,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著靴拱,像睡著了一般复亏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缭嫡,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音抬闷,去河邊找鬼妇蛀。 笑死耕突,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的评架。 我是一名探鬼主播眷茁,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼纵诞!你這毒婦竟也來了上祈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤浙芙,失蹤者是張志新(化名)和其女友劉穎登刺,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嗡呼,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纸俭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了南窗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揍很。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖万伤,靈堂內(nèi)的尸體忽然破棺而出窒悔,到底是詐尸還是另有隱情,我是刑警寧澤敌买,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布简珠,位于F島的核電站,受9級(jí)特大地震影響放妈,放射性物質(zhì)發(fā)生泄漏北救。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一芜抒、第九天 我趴在偏房一處隱蔽的房頂上張望珍策。 院中可真熱鬧,春花似錦宅倒、人聲如沸攘宙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蹭劈。三九已至,卻和暖如春线召,著一層夾襖步出監(jiān)牢的瞬間铺韧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工缓淹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留哈打,地道東北人塔逃。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像料仗,于是被迫代替她去往敵國(guó)和親湾盗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理立轧,服務(wù)發(fā)現(xiàn)格粪,斷路器,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • 要求設(shè)計(jì)的管理系統(tǒng)能夠?qū)崿F(xiàn)以下功能: 1.每一條記錄包括一個(gè)學(xué)生的學(xué)號(hào)氛改、姓名帐萎、3個(gè)成績(jī)(平時(shí)成績(jī)、作業(yè)成績(jī)平窘、考試成...
    ancientear閱讀 6,366評(píng)論 1 15
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法吓肋,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法瑰艘,繼承相關(guān)的語(yǔ)法是鬼,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 31,581評(píng)論 18 399
  • 自我記事起紫新,那頭母牛就在我們家耕地均蜜。 我的家鄉(xiāng),在西南地區(qū)的農(nóng)村芒率。那里的老一輩的人們囤耳,都是靠耕田種地來養(yǎng)活一大家子...
    洲洲的閱讀 557評(píng)論 4 8
  • 三毛曾問過荷西:如果有來生匪蟀,你愿意娶我嗎椎麦? 荷西:不,我不要材彪。如果有來生观挎,我要活一個(gè)不一樣的人生 。 三毛打荷西段化。...
    vanessakissme閱讀 401評(píng)論 0 0