2018-物聯(lián)網(wǎng)Java期末考試

238 - 數(shù)字統(tǒng)計(jì)

Description
輸入一個(gè)長(zhǎng)整型的數(shù)焊傅,統(tǒng)計(jì)其中0、1狈涮、2、3鸭栖、4歌馍、5、6晕鹊、7松却、8、9各個(gè)數(shù)字的個(gè)數(shù)溅话,并將結(jié)果合成一個(gè)整數(shù)晓锻。(前面的0不輸出)

Input
長(zhǎng)整型數(shù)

Output
合成后的整數(shù)

Sample Input
234353632

Sample Output
24111000

MyAnswer

import java.util.*;
//H7EaGRl7
public class Main {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        long num = scan.nextLong();
        System.out.println(num);
        int a[] = {0,0,0,0,0,0,0,0,0,0};
        String s = String.valueOf(num);
        System.out.println(s.charAt(0));
        for(int i=0; i<10; i++)
            if (s.charAt(i) == '0') {
                a[0]++;
            } else if (s.charAt(i) == '1') {
                a[1]++;
            } else if (s.charAt(i) == '2') {
                a[2]++;
            } else if (s.charAt(i) == '3') {
                a[3]++;
            } else if (s.charAt(i) == '4') {
                a[4]++;
            } else if (s.charAt(i) == '5') {
                a[5]++;
            } else if (s.charAt(i) == '6') {
                a[6]++;
            } else if (s.charAt(i) == '7') {
                a[7]++;
            } else if (s.charAt(i) == '8') {
                a[8]++;
            } else if (s.charAt(i) == '9') {
                a[9]++;
            }
        long res=0;
        for(int i=0; i<10; i++){
            res = res*10 + i;
        }

        System.out.println(res);
    }

}

239 - 家具類

Description
構(gòu)建家具類Furniture,包括長(zhǎng)飞几、寬砚哆、高,均為整數(shù)(cm)屑墨。提供相應(yīng)的構(gòu)造函數(shù)和get躁锁、set函數(shù)。
Main函數(shù)里構(gòu)造家具對(duì)象卵史,并調(diào)用相應(yīng)的函數(shù)战转。

Input
家具對(duì)象的長(zhǎng)寬高

Output
家具對(duì)象的相關(guān)屬性

Sample Input
50 60 100

Sample Output
100
50
60

Pre Append Code

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Furniture f = new Furniture(sc.nextInt(),sc.nextInt(),sc.nextInt());
        System.out.println(f.getHeight());
        System.out.println(f.getLength());
        System.out.println(f.getWidth());
    }
}

MyAnswer


class Furniture{
    int length;
    int width;
    int height;
    Furniture(int length, int width, int height){
        this.length = length;
        this.width = width;
        this.height = height;
    }
    int getHeight(){
        return this.height;
    }
    int getWidth(){
        return this.width;
    }
    int getLength(){
        return this.length;
    }

}

241 - 手機(jī)類

Description
構(gòu)造手機(jī)類,包含其配置信息:型號(hào)(字符串)以躯、內(nèi)存大谢毖怼(整數(shù))、存儲(chǔ)空間(整數(shù),GB為單位)刁标、價(jià)格(整數(shù))颠通。提供帶參數(shù)的構(gòu)造函數(shù),重寫其equals方法命雀,使得兩個(gè)相同配置(型號(hào)蒜哀、內(nèi)存、存儲(chǔ)相同即可吏砂,價(jià)格可不同)的手機(jī)為相等的手機(jī)撵儿。重寫其toString函數(shù),打印手機(jī)的配置信息狐血,形式為CellPhone [model:xxx, memory:xxx, storage:xxx, price:xxx]
main函數(shù)中從鍵盤讀入兩個(gè)手機(jī)對(duì)象淀歇,比較他們是否相等,輸出他們的配置信息匈织。

Input
兩個(gè)計(jì)算機(jī)對(duì)象浪默,包含型號(hào)、內(nèi)存缀匕、存儲(chǔ)空間纳决、價(jià)格

Output
兩個(gè)對(duì)象是否相等,兩個(gè)對(duì)象的配置信息

Sample Input
P20 8 64 4999
P20 8 64 4999

Sample Output
true
CellPhone [model:P20, memory:8, storage:64, price:4999]
CellPhone [model:P20, memory:8, storage:64, price:4999]

Pre Append Code

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        CellPhone c1 = new CellPhone(sc.next(),sc.nextInt(),sc.nextInt(),sc.nextInt());
        CellPhone c2 = new CellPhone(sc.next(),sc.nextInt(),sc.nextInt(),sc.nextInt());

        System.out.println(c1.equals(c2));
        System.out.println(c1);
        System.out.println(c2);
    }
}

MyAnswer

class CellPhone{
    String model;
    int memory;
    int storage;
    int price;
    CellPhone(String model, int memory, int s, int p){
        this.model = model;
        this.memory = memory;
        this.storage = s;
        this.price = p;
    }

    public String toString(){
        String s = "CellPhone [model:"+ model+", memory:"+memory+", storage:"+storage+", price:"+price+"]";
        return s;
    }

    public boolean equals(CellPhone o) {
        if (this.model.equals(o.model) && this.memory == o.memory && this.storage==o.storage) {
            return true;
        }
        return false;
    }


}


242 - 租車服務(wù)

Description
某租車公司提供租車服務(wù)乡小,針對(duì)不同的車輛類型阔加,日租金的計(jì)算方式不同,具體地满钟,對(duì)于貨車而言胜榔,根據(jù)載重量load(單位是噸)計(jì)算,公式為load1000湃番;對(duì)于大型客車而言夭织,根據(jù)車內(nèi)座位數(shù)seats計(jì)算,公式為seats50吠撮;對(duì)于小型汽車而言尊惰,根據(jù)車輛等級(jí)和折舊年數(shù)計(jì)算,公式為200*level/sqrt(year)泥兰,其中sqrt表示平方根择浊。設(shè)計(jì)合適的類繼承結(jié)構(gòu)實(shí)現(xiàn)上述功能,構(gòu)造租車公司類CarRentCompany逾条,提供靜態(tài)函數(shù)rentVehicles琢岩,能夠給定一組待租車輛,計(jì)算日租金總額师脂。
在main函數(shù)中担孔,讀入多個(gè)車輛數(shù)據(jù)江锨,并計(jì)算總的日租金。

Input
汽車數(shù)量
汽車種類 該類汽車相關(guān)屬性
其中1表示貨車糕篇,2表示大型客車啄育,3表示小型汽車

Output
總的日租金,保留兩位小數(shù)

Sample Input
3
1 3
2 50
3 5 5

Sample Output
5947.21

Pre Append Code

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int c = sc.nextInt();
        Vehicle[] vs = new Vehicle[c];
        for (int i=0;i<c;i++) {
            int type = sc.nextInt();
            Vehicle v = null;
            if (type == 1) {//貨車
                vs[i] = new Truck (sc.nextDouble());
            } else if (type == 2) {
                vs[i] = new Keche(sc.nextInt());
            } else if (type == 3) {
                vs[i] = new Car(sc.nextInt(), sc.nextInt());
            }
        }
        
        System.out.printf("%.2f",CarRentCompany.rentVehicles(vs));
        
    }
    

}

MyAnswer

abstract class Vehicle{
    public abstract double getrent();
}

class Truck extends Vehicle{
    double load;
    Truck(double load){
        this.load = load;
    }
    public double getrent(){
        return load*1000;
    }
}

class Keche extends Vehicle{
    int seats;
    Keche(int seats){
        this.seats = seats;
    }
    public double getrent(){
        return seats*50;
    }
}

class Car extends Vehicle{
    int level;
    int year;
    Car(int level, int year){
        this.level = level;
        this.year = year;
    }

    public double getrent(){
        return 200*level/Math.sqrt(year);
    }
}

class CarRentCompany {
    public static double rentVehicles(Vehicle[] vs) {
        double rent = 0;
        for (Vehicle av : vs)
            rent += av.getrent();
        return rent;
    }
}

243 - 字符串加密

Description
嘗試構(gòu)造一種自定義的字符串加密方式拌消,首先該字符串的長(zhǎng)度對(duì)5求余加1作為種子數(shù)字挑豌,以該種子數(shù)字為間隔,獲取原字符串的子字符序列墩崩,該序列求逆得到最終的序列氓英。

Input
原字符串

Output
加密后的字符串

Sample Input
abcdefghijklmn

Sample Output
kfa

MyAnswer

import java.util.Scanner;
import java.lang.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        int len = s.length();
        int seed = len % 5 + 1;
        char[] ch = s.toCharArray();
        String newstr = "";
        for(int i=0; i<len; i += seed){
            newstr += ch[i];
        }
        System.out.println(new StringBuffer(newstr).reverse());
    }



}

244 - 成績(jī)管理系統(tǒng)

Description
構(gòu)造一個(gè)成績(jī)管理系統(tǒng)CourseManagementSystem,該系統(tǒng)包括如下幾個(gè)方法:void add(int no, int grade)添加該學(xué)號(hào)的成績(jī)鹦筹,如果系統(tǒng)已有該學(xué)生成績(jī)铝阐,則輸出"the student already exists";void delete(int no)刪除某學(xué)號(hào)成績(jī)铐拐,如果不存在此學(xué)生則輸出"no such student"徘键;int query(int no)查詢并返回該學(xué)號(hào)的成績(jī);統(tǒng)計(jì)成績(jī)void statistics( )統(tǒng)計(jì)[0-59]遍蟋、[60-69]吹害、[70-79]、[80-89]虚青、[90-100]各成績(jī)段的學(xué)生個(gè)數(shù)并打印它呀。請(qǐng)選擇合適的容器實(shí)現(xiàn)上述功能。(題目假設(shè)不會(huì)重復(fù)添加相同學(xué)號(hào)的學(xué)生成績(jī))
main函數(shù)中讀入操作類型及相關(guān)參數(shù)挟憔,并調(diào)用statictic函數(shù)輸出學(xué)生成績(jī)統(tǒng)計(jì)信息。

Input
操作個(gè)數(shù)
操作名 操作參數(shù)

Output
查詢學(xué)生的成績(jī)
各成績(jī)段的學(xué)生個(gè)數(shù)

Sample Input
8
add 1 63
add 2 78
add 3 74
delete 3
add 2 20
delete 5
query 1
add 4 90

Sample Output
the student already exists
no such student
the score for 1 is : 63
[0-59] : 0
[60-69] : 1
[70-79] : 1
[80-89] : 0
[90-100] : 1

Pre Append Code

import java.util.*;

public class Main {
    
    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);
        CourseManagementSystem cms = new CourseManagementSystem();
        int ops = sc.nextInt();
        for (int i=0;i<ops;i++) {
            String op = sc.next();
            if (op.equals("add")) 
                cms.add(sc.nextInt(), sc.nextInt());
            else if  (op.equals("delete"))
                cms.delete(sc.nextInt());
            else if  (op.equals("query")) {
                int no = sc.nextInt();
                int s = cms.query(no);
                System.out.println("the score for "+no+" is : "+s);
            }
        }
        cms.statistic();
    }
}

MyAnswer

/**
* 本題更好的做法是使用STL : Map
*/

class CourseManagementSystem{
    ArrayList<Student> ALs = new ArrayList<>();

    void add(int no, int grade){
        for(Student st: ALs){
            if(st.no == no){
                System.out.println("the student already exists");
                return ;
            }
        }
        Student stu = new Student(no,grade);
        ALs.add(stu);
    }

    void delete(int no){
        int flag = 0;
        for(int j=0;j<ALs.size(); j++)
            if (ALs.get(j).getNo() == no) {
                ALs.remove(j);
                flag = 1;
            }
        if(flag == 0){
            System.out.println("no such student");

        }
    }

    int query(int no){
        for(Student stu: ALs)
            if(stu.no == no) {
                return stu.getGrade();
            }
        return 0;
    }

    void statistic(){
        int a[] = {0,0,0,0,0};
        for(Student stu: ALs){
            if(stu.grade >=0&&stu.grade <=59)
                a[0]++;
            else if(stu.grade >=60&&stu.grade <=69)
                a[1]++;
            else if(stu.grade >=70&&stu.grade <=79)
                a[2]++;
            else if(stu.grade >=80&&stu.grade <=89)
                a[3]++;
            else if(stu.grade >=90&&stu.grade <=100)
                a[4]++;
        }
        System.out.println("[0-59] : "+a[0]);
        System.out.println("[60-69] : "+a[1]);
        System.out.println("[70-79] : "+a[2]);
        System.out.println("[80-89] : "+a[3]);
        System.out.println("[90-100] : "+a[4]);

    }
}



class Student{
    int no;
    int grade;   //根據(jù)題目描述烟号,應(yīng)該是int绊谭,實(shí)際情況下double更合適
    Student(int no,int score){
        this.no = no;
        this.grade = score;
    }
    int getNo(){return this.no;}
    int getGrade(){return this.grade;}
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市汪拥,隨后出現(xiàn)的幾起案子达传,更是在濱河造成了極大的恐慌,老刑警劉巖迫筑,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宪赶,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡脯燃,警方通過(guò)查閱死者的電腦和手機(jī)搂妻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)辕棚,“玉大人欲主,你說(shuō)我怎么就攤上這事邓厕。” “怎么了扁瓢?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵详恼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我引几,道長(zhǎng)昧互,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任伟桅,我火速辦了婚禮敞掘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘贿讹。我一直安慰自己渐逃,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布民褂。 她就那樣靜靜地躺著茄菊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赊堪。 梳的紋絲不亂的頭發(fā)上面殖,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音哭廉,去河邊找鬼脊僚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛遵绰,可吹牛的內(nèi)容都是我干的辽幌。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼椿访,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼乌企!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起成玫,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤加酵,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后哭当,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猪腕,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年钦勘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了陋葡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡彻采,死狀恐怖脖岛,靈堂內(nèi)的尸體忽然破棺而出朵栖,到底是詐尸還是另有隱情,我是刑警寧澤柴梆,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布陨溅,位于F島的核電站,受9級(jí)特大地震影響绍在,放射性物質(zhì)發(fā)生泄漏门扇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一偿渡、第九天 我趴在偏房一處隱蔽的房頂上張望臼寄。 院中可真熱鬧,春花似錦溜宽、人聲如沸吉拳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)留攒。三九已至,卻和暖如春嫉嘀,著一層夾襖步出監(jiān)牢的瞬間炼邀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工剪侮, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拭宁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓瓣俯,卻偏偏與公主長(zhǎng)得像杰标,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子彩匕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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