java第二次作業
eclipse使用
新建專案
填名字後直接完成,其他不要動
src存放java程式碼
新建包
java包是專門用來存放類的
相同的類放在相同包中
或者
新建類
或者
直接寫名字 完成
這樣新建的類 首行會多出一句 包宣告
包宣告只能位於java原始檔首行
匯入包
import 包名.類名
匯入包所有類
import 包名.*
eg:
import java.util.Scanner
執行
P336_7
題目:
編寫Temperature類,表示攝氏度、華氏度溫度。浮點數表示溫度,字元表示單位,C表示攝氏度,F表示華氏度。
該類包含
-
4個構造器:針對度數、針對單位、同時針對度數和單位、預設構造器
對於每個構造器,沒有指定值,預設為0度,沒有單位,預設為攝氏度 -
2個訪問器方法:返回攝氏度溫度、返回華氏度溫度。度數四捨五入到0.1度
-
3個設定方法:設定度數、設定單位、同時設定
-
3個比較方法:測試兩個溫度是否相等、是否比另一個高、是否比另一個低
編寫驅動程式,測試所有方法。呼叫每個構造器、針對每個比較方法,測試一個為真,一個為假,測試0.0 C 與 32 F、-40 C與-40 F、100C與212 F相等性
攝氏溫度c ,將其轉化為華氏溫度f ,轉換公式為:f=c*9/5+32.
構造器
構造器:構造方法是一個在建立物件時被自動呼叫的特殊方法
double精度設定
兩種方法
1.
Double result = Double.valueOf(String.format("%.1f", 5 * (tem - 32) / 9 ));
String result = String.format("%.1f", tem);
return Double.parseDouble(result.toString());
總
public double getTemC() {
if (unit != "C"){
//String result = String.format("%.1f", 5 * (tem - 32) / 9);
Double result = Double.valueOf(String.format("%.1f", 5 * (tem - 32) / 9 ));
//return Double.parseDouble(result.toString());
return result;
}else {
String result = String.format("%.1f", tem);
return Double.parseDouble(result.toString());
}
}
Double.parseDouble :轉換成Double格式
程式碼:
Temperature
package java第二次作業;
public class Temperature {
public double tem;//溫度
public String unit;//單位
//4個構造器
public Temperature(double a){
tem = a;
}
public Temperature(String a){
unit = a;
}
public Temperature(double a,String b){
tem = a;
unit = b;
}
public Temperature(){
tem = 0;
unit = "C";
}
//2個訪問器方法
public double getTemC() {
if (unit != "C"){
Double result = Double.valueOf(String.format("%.1f", 5 * (tem - 32) / 9));
return result;
}else {
Double result = Double.valueOf(String.format("%.1f", tem));
return result;
}
}
public double getTemF() {
if (unit != "F") {
Double result = Double.valueOf(String.format("%.1f", (9 * tem / 5) + 32));
return result;
}else{
Double result = Double.valueOf(String.format("%.1f", tem));
return result;
}
}
//3個設定方法
public void setTem(double tem) {
this.tem = tem;
}
public void setUnit(String unit) {
this.unit = unit;
}
public void setBoth(double tem,String unit){
this.tem = tem;
this.unit = unit;
}
//3個比較方法
public boolean equal(Temperature a) {
tem = getTemC();
double t = a.getTemC();
return tem == t;
}
public boolean higher(Temperature a) {
tem = getTemC();
double t = a.getTemC();
return tem > t;
}
public boolean lower(Temperature a) {
tem = getTemC();
double t = a.getTemC();
return tem < t;
}
}
錯誤的Temperature
public boolean lower(Temperature a) {
tem = getTemC();
a.tem = a.getTemC();
return tem < a.tem;
}
a.tem = a.getTemC();
這樣寫會改變a的tem值,所以不能這樣寫
要設成一個區域性值
p336_7
package java第二次作業;
public class p336_7 {
public static void main(String[] args) {
//構造器
Temperature t1 = new Temperature(32);
Temperature t2 = new Temperature("C");
Temperature t3 = new Temperature(100,"C");
Temperature t4 = new Temperature();
//設定方法
t2.setTem(-40);
t1.setUnit("F");
t4.setBoth(120,"F");
//訪問器
System.out.println("------訪問器------");
System.out.println("32 °F = " + t1.getTemC() + " °C");
System.out.println("-40 °C = " + t2.getTemF() + " °F");
//比較方法
System.out.println("------比較方法------");
Temperature t5 = new Temperature(-40,"F");
Temperature t6 = new Temperature(212,"F");
Temperature t7 = new Temperature();//0 °C
System.out.println("equal:");
System.out.println("0.0°C = 32.0°F :" + t7.equal(t1));
System.out.println("-40.0°C = -40.0°F :" + t2.equal(t5));
System.out.println("100.0°C = 212.0°F :" + t3.equal(t6));
System.out.println("0.0°C = -40.0°F:" + t7.equal(t5));
System.out.println("\nhigher:");
System.out.println("0.0°C > 212.0°F :" + t7.higher(t6));
System.out.println("0.0°C > -40.0°F:" + t7.higher(t5));
System.out.println("\nlower:");
System.out.println("0.0°C < 212.0°F :" + t7.lower(t6));
System.out.println("0.0°C < -40.0°F:" + t7.lower(t5));
}
}
結果:
p689_5
題目:
編寫一個程式,使用一個HashMap來計算使用者輸人的正數的直方圖。這個HashMap的鍵應該是輸入的數字,而值應該是到目前為止對應的鍵已經輸入的次數。將-1用作哨兵值,表示使用者輸入結東。例如,如果使用者輸人:
5 12 3 5 5 3 21 -1
這個程式應該輸出下面的內容(不一定按照下面的順序):
The number 3 occurs 2 times.
The number 5 occurs 3 times.
The number 12 occurs 1 times.
The number 21 occurs 1 times.
程式碼
參考程式碼:
使用java的hashmap統計輸入的單詞個數
用hashmap:
package java第二次作業;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Scanner;
public class p689_5 {
public static void main(String[] args) {
HashMap<String, Integer> words = new HashMap<>();
System.out.println("請輸入要統計的正數(輸入-1結束輸入,一個正數一行):");
Scanner in = new Scanner(System.in);
String word;
while (!((word = in.nextLine()).equals("-1"))) {//如果輸入為-1的時候終止輸入
int count = 1;//預設一個數字就是出現一次
if (words.containsKey(word)) {//判斷剛輸入的數字是否已經存在
count = words.get(word) + 1;//如果已經存在,新的個數就在已有的個數上加1
}
words.put(word, count);//更新資料
}
in.close();
//遍歷hashmap
Iterator<Entry<String, Integer>> iterator = words.entrySet().iterator();
while (iterator.hasNext()) {
Entry<String, Integer> entry = (Entry<String, Integer>) iterator.next();
System.out.println("The number " + entry.getKey() + " occurs " + entry.getValue() + " times");
}
}
}
用列表做:
import java.util.Scanner;
import java.util.ArrayList;
public class p689_5_2 {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
ArrayList<Integer> List = new ArrayList<Integer>();
while (true) {
int digit = sc.nextInt();
if(digit == -1)
break;
else
List.add(digit);
};
ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList<Integer> count = new ArrayList<Integer>();
while (true) {
if(List.size()==0)
break;
int x = (int) List.get(0);
int num = 0;
for(int i = List.size()-1;i>=0;i--){
if((int)List.get(i) == x){
num++;
List.remove(i);
}
}
list.add(x);
count.add(num);
System.out.println("The number "+x+" occurs "+num+" times.");
};
}
}
相關文章
- JAVA第二次BLOG作業Java
- 第二次作業。
- 第二次作業
- 徐業欽第二次作業
- 第二次Blog作業
- 第二次部落格作業
- 第二次結對作業
- 10.29第二次作業
- 王悅帆第二次作業
- 第二次作業總結
- 軟工第二次作業軟工
- 第二次作業:Github的使用Github
- oop第二次部落格作業OOP
- OO第二次部落格作業
- 軟體工程第二次作業軟體工程
- C語言作業|第二次C語言
- 軟工第二次個人作業軟工
- 陳志俠第二次作業
- 第二次作業———個人專案
- 第二次軟體工程作業軟體工程
- OOP第二次Blog作業OOP
- 13計本AI第二次作業AI
- 結對專案第二次作業
- 軟工第二次結對作業軟工
- 資料採集第二次作業
- 白家強的第二次作業
- 陳柯烽的第二次作業
- 第二次作業--論文查重
- 第二次作業——論文查重
- 團隊專案第二次作業
- 軟體工程第二次個人作業軟體工程
- 結組作業,第二次衝刺(3)
- 結組作業,第二次衝刺(4)
- 結組作業,第二次衝刺(5)
- 結組作業,第二次衝刺(6)
- 軟體工程第二次結對作業軟體工程
- 軟體工程結對第二次作業軟體工程
- 軟體工程第二次結隊作業軟體工程