模塊化學(xué)生成績管理系統(tǒng)

學(xué)了兩天面向?qū)ο蟮乃枷耄趯懘a的過程中逐步理解舅柜,已經(jīng)對(duì)重要信息的封裝梭纹。
首先學(xué)生的一個(gè)類,對(duì)需要的基本對(duì)象進(jìn)行聲明

public class Student {//學(xué)生類
    private int number;
    private String name;
    private int age;
    private int java;
    private int c_char;
    private int html;
    private int sql;
    private int sum;
    private int avg;
    
    public int getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public int getJava() {
        return java;
    }
    public void setJava(int java) {
        this.java = java;
    }
    public int getC_char() {
        return c_char;
    }
    public void setC_char(int c_char) {
        this.c_char = c_char;
    }
    public int getHtml() {
        return html;
    }
    public void setHtml(int html) {
        this.html = html;
    }
    public int getSql() {
        return sql;
    }
    public void setSql(int sql) {
        this.sql = sql;
    }
    public int getSum() {
        return sum;
    }
    public void setSum() {
        this.sum = this.java+this.c_char+this.html+this.sql;
    }
    public int getAvg() {
        return avg;
    }
    public void setAvg() {
        this.avg = this.sum/4;
    }
    public String toString(){
        String all="\t"+this.number+"\t"+this.name+"\t"+this.age+"\t"+this.java+"\t"+this.c_char+"\t"+this.html+"\t"+this.sql+"\t"+this.sum+"\t"+this.avg;
        return all;
    }
}

主程序

import java.util.*;
public class Text {//主程序
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        System.out.println("---請(qǐng)定義人數(shù)---");
        Student[] stuArr=new Student[in.nextInt()];
        Admin adminStu=new Admin();
        while(true){
            System.out.println("請(qǐng)選擇你要執(zhí)行的功能:");
            System.out.println("10:添加一個(gè)學(xué)生");
            System.out.println("11:查找一個(gè)學(xué)生");
            System.out.println("12:根據(jù)學(xué)生編號(hào)更新學(xué)生信息");
            System.out.println("13:根據(jù)學(xué)生編號(hào)刪除學(xué)生");
            System.out.println("14:根據(jù)編號(hào)輸入學(xué)生各門成績");
            System.out.println("15:根據(jù)某門成績進(jìn)行排序");
            System.out.println("16:根據(jù)總分進(jìn)行排序");
            System.out.println("99:退出系統(tǒng)");
            String abc=in.next();
            if(abc.equals("10")){
                System.out.println("請(qǐng)輸入學(xué)生的姓名:");
                String name=in.next();
                System.out.println("請(qǐng)輸入學(xué)生的年齡:");
                int age=in.nextInt();
                adminStu.create(name, age, stuArr);
            }else if(abc.equals("11")){
                System.out.println("執(zhí)行查找學(xué)生的基本信息操作");
                System.out.println("請(qǐng)輸入學(xué)生的編號(hào)進(jìn)行查找:");
                int number=in.nextInt();
                adminStu.select(number,stuArr);
            }else if(abc.equals("12")){
                System.out.println("執(zhí)行查找學(xué)生的基本信息操作");
                System.out.println("請(qǐng)輸入學(xué)生的編號(hào):");
                int number=in.nextInt();
                System.out.println("請(qǐng)輸入學(xué)生的姓名:");
                String name=in.next();
                System.out.println("請(qǐng)輸入學(xué)生的年齡:");
                int age=in.nextInt();
                adminStu.update(number, name, age, stuArr);
            }else if(abc.equals("13")){
                System.out.println("刪除學(xué)生的基本信息操作");
                System.out.println("請(qǐng)輸入學(xué)生的編號(hào):");
                int number=in.nextInt();
                adminStu.delete(number, stuArr);
            }else if(abc.equals("14")){
                System.out.println("----輸入成績----");
                System.out.println("請(qǐng)輸入學(xué)生的編號(hào):");
                int number=in.nextInt();
                adminStu.input(number, stuArr);
            }else if(abc.equals("15")){
                System.out.println("----根據(jù)科目排序----");
                System.out.println("請(qǐng)選擇需要排序的科目");
                System.out.println("1:java");
                System.out.println("2:c#");
                System.out.println("3:html");
                System.out.println("4:sql");
                int num=in.nextInt();
                adminStu.courseSort(num, stuArr);
            }else if(abc.equals("16")){
                System.out.println("----根據(jù)總分排序----");
                adminStu.sumSort(stuArr);
            }else if(abc.equals("99")){
                System.out.println("程序退出致份!");
                break;//跳出循環(huán)变抽;;System.exit(0)..程序結(jié)束
            }
        }
    }
}

每一個(gè)功能都需要一個(gè)方法來調(diào)用氮块,所以把所有的方法弄成一個(gè)類绍载,也就是管理學(xué)生,對(duì)學(xué)生操作的一個(gè)類

import java.util.*;
public class Admin {//管理學(xué)生類
    String pri="\t編號(hào)\t姓名\t年級(jí)\tjava\tc#\thtml\tsql\t總分\t平均分";
    public void print(Student[] arr){//結(jié)果輸出顯示
        System.out.println(pri);
        for(int i=0;i<arr.length;i++){
            if(arr[i]!=null){
                arr[i].setSum();//調(diào)用才會(huì)執(zhí)行
                arr[i].setAvg();
                System.out.println(arr[i]);
            }
        }
    }
    public boolean exist(int number,Student stu){//很多子功能都與判斷比較的過程
        if(stu!=null){
            if(stu.getNumber()==number){;
            return true;
            }else{
                return false;
            }
        }
        return false;
    }
    public void create(String name,int age,Student[] arr){//添加學(xué)生的方法
        Student stu=new Student();
        stu.setName(name);
        stu.setAge(age);
        int i=this.setIndex(arr);
        stu.setNumber(i);//編號(hào)
        if(i==99999){
            System.out.println("人已滿");
        }else{
            arr[i]=stu;
        }
        this.print(arr);
    }
    public int setIndex(Student[] arr){//有返回,輸入的值返回顯示
        for(int i=0;i<arr.length;i++){
            if(arr[i]==null){
                return i;
            }
        }
        return 99999;
    }
    public void select(int number,Student[] arr){//查詢   
        for(int i=0;i<arr.length;i++){
            if(this.exist(number, arr[i])){
                System.out.println(pri);
                System.out.println(arr[i]);
                return;//執(zhí)行直接結(jié)束
            }
        }
        System.out.println("沒有這個(gè)學(xué)生存在");
    }
    public void update(int number,String name,int age,Student[] arr){//更新學(xué)生信息   
        for(int i=0;i<arr.length;i++){
            if(this.exist(number, arr[i])){
                arr[i].setName(name);
                arr[i].setAge(age);
                System.out.println("---更新學(xué)生信息成功滔蝉!---");
                this.print(arr);
                return;//執(zhí)行直接結(jié)束
            }
        }
        System.out.println("---更新信息沒有成功.---");
    }
    public void delete(int number,Student[] arr){//刪除學(xué)生信息
        for(int i=0;i<arr.length;i++){
            if(this.exist(number, arr[i])){
                arr[i]=null;
                this.print(arr);//輸出封裝性好
                return;
            }
        }
        System.out.println("無此學(xué)生");
    }
    public void input(int number,Student[] arr){
        for(int i=0;i<arr.length;i++){
            if(this.exist(number, arr[i])){
                Scanner in=new Scanner(System.in);
                System.out.println("請(qǐng)輸入:"+arr[i].getName()+"的java成績");
                arr[i].setJava(in.nextInt());
                System.out.println("請(qǐng)輸入:"+arr[i].getName()+"的c#成績");
                arr[i].setC_char(in.nextInt());
                System.out.println("請(qǐng)輸入:"+arr[i].getName()+"的html成績");
                arr[i].setHtml(in.nextInt());
                System.out.println("請(qǐng)輸入:"+arr[i].getName()+"的sql成績");
                arr[i].setSql(in.nextInt());
                this.print(arr);
                break;
            }
        }
    }
    public void courseSort(int num,Student[] arr){//科目排序
        if(num==1){
            for(int i=0;i<arr.length-1;i++){
                for(int j=i+1;j<arr.length;j++){
                    if(arr[i]!=null&&arr[j]!=null){
                        if(arr[i].getJava()<arr[j].getJava()){
                            Student t=arr[i];
                            arr[i]=arr[j];
                            arr[j]=t;
                        }
                    }
                }
            }
        }else if(num==2){
            for(int i=0;i<arr.length-1;i++){
                for(int j=i+1;j<arr.length;j++){
                    if(arr[i]!=null&&arr[j]!=null){
                        if(arr[i].getC_char()<arr[j].getC_char()){
                            Student t=arr[i];
                            arr[i]=arr[j];
                            arr[j]=t;
                        }
                    }
                }
            }
        }
        else if(num==3){
            for(int i=0;i<arr.length-1;i++){
                for(int j=i+1;j<arr.length;j++){
                    if(arr[i]!=null&&arr[j]!=null){
                        if(arr[i].getHtml()<arr[j].getHtml()){
                            Student t=arr[i];
                            arr[i]=arr[j];
                            arr[j]=t;
                        }
                    }
                }
            }
        }
        else if(num==4){
            for(int i=0;i<arr.length-1;i++){
                for(int j=i+1;j<arr.length;j++){
                    if(arr[i]!=null&&arr[j]!=null){
                        if(arr[i].getSql()<arr[j].getSql()){
                            Student t=arr[i];
                            arr[i]=arr[j];
                            arr[j]=t;
                        }
                    }
                }
            }
        }
        this.print(arr);
    }
    public void sumSort(Student[] arr){
        for(int i=0;i<arr.length-1;i++){
            for(int j=i+1;j<arr.length;j++){
                if(arr[i]!=null&&arr[j]!=null){
                    if(arr[i].getSum()<arr[j].getSum()){
                        Student t=arr[i];
                        arr[i]=arr[j];
                        arr[j]=t;
                    }
                }
            }
        }
        this.print(arr);
    }
}

在寫的過程中击儡,會(huì)發(fā)現(xiàn)有些操作會(huì)被重復(fù)寫(造成代碼的冗余),因此可以將重復(fù)需要的操作也寫為一個(gè)方法蝠引,只需要調(diào)用即可曙痘。寫的時(shí)候并不是一個(gè)一個(gè)類寫,需要相通的寫立肘,一邊寫一邊完善边坤。
但這個(gè)系統(tǒng)相當(dāng)?shù)暮喡热鐚W(xué)生課程名是固定的谅年,并沒有對(duì)課程做一些操作茧痒,基本的控制都是輸入數(shù)字,如果不小心輸入字符串融蹂,代碼就需要重新運(yùn)行旺订,很不方便。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末超燃,一起剝皮案震驚了整個(gè)濱河市区拳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌意乓,老刑警劉巖樱调,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異届良,居然都是意外死亡笆凌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門士葫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乞而,“玉大人,你說我怎么就攤上這事慢显∽δ#” “怎么了欠啤?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長屋灌。 經(jīng)常有香客問我洁段,道長,這世上最難降的妖魔是什么声滥? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任眉撵,我火速辦了婚禮,結(jié)果婚禮上落塑,老公的妹妹穿的比我還像新娘纽疟。我一直安慰自己,他們只是感情好憾赁,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布污朽。 她就那樣靜靜地躺著,像睡著了一般龙考。 火紅的嫁衣襯著肌膚如雪蟆肆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天晦款,我揣著相機(jī)與錄音炎功,去河邊找鬼。 笑死缓溅,一個(gè)胖子當(dāng)著我的面吹牛蛇损,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播坛怪,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼淤齐,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了袜匿?” 一聲冷哼從身側(cè)響起更啄,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎居灯,沒想到半個(gè)月后祭务,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡穆壕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年待牵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喇勋。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖偎行,靈堂內(nèi)的尸體忽然破棺而出川背,到底是詐尸還是另有隱情贰拿,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布熄云,位于F島的核電站膨更,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏缴允。R本人自食惡果不足惜荚守,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望练般。 院中可真熱鬧矗漾,春花似錦、人聲如沸薄料。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽摄职。三九已至誊役,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谷市,已是汗流浹背蛔垢。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留迫悠,地道東北人鹏漆。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像及皂,于是被迫代替她去往敵國和親甫男。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,111評(píng)論 1 32
  • 一验烧、基礎(chǔ)知識(shí):1板驳、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī)...
    殺小賊閱讀 2,388評(píng)論 0 4
  • 社區(qū)被評(píng)為文明社區(qū)碍拆,上級(jí)領(lǐng)導(dǎo)過來檢查若治,書記安排我寫解說詞,并且負(fù)責(zé)給領(lǐng)導(dǎo)解說感混。 領(lǐng)導(dǎo)于3月14日到社區(qū)端幼,同行有7,...
    雨魚兒_1122閱讀 199評(píng)論 0 0
  • 有愛人的時(shí)候,背井離鄉(xiāng)當(dāng)作旅行庭呜。若是愛人離去滑进,走兩步都是漂泊
    吾乃哲貓閱讀 111評(píng)論 0 0
  • cocoapods 安裝使用的對(duì)我們這些小白來說坑多,所以歡迎大神來補(bǔ)充,我也會(huì)持續(xù)更新遇到的問題: 1. [!]...
    天下尬唱閱讀 6,182評(píng)論 1 3