###### tags: `school` # 🌈專三JAVA ## 專三JAVA ### Ch3 變數與運算式(實作題) :::warning **W2 印出學號** https://replit.com/@LIANGcode/W2-Yin-Chu-Xue-Hao#Main.java **W5 001(運算式執行)** https://replit.com/@LIANGcode/W5-001Yun-Suan-Shi-Zhi-Xing#Main.java **W5 002(運算式執行)** https://replit.com/@LIANGcode/W5-002Yun-Suan-Shi-Zhi-Xing#Main.java **W5 003(運算式執行)** https://replit.com/@LIANGcode/W5-003Yun-Suan-Shi-Zhi-Xing **W5 004(公式執行)** https://replit.com/@LIANGcode/W5-004Gong-Shi-Zhi-Xing#Main.java **W5 005(改變其中一個運算子,達到題目要求)** https://replit.com/@LIANGcode/W5-005Gai-Bian-Qi-Zhong-Yi-Ge-Yun-Suan-Zi-Da-Dao-Ti-Mu-Yao-Qiu#Main.java **W5 006(公式鍵盤輸入)** https://replit.com/@LIANGcode/W5-006Gong-Shi-Jian-Pan-Shu-Ru#Main.java **W5 007(改變程式,達到題目要求)** https://replit.com/@LIANGcode/W5-007Gai-Bian-Cheng-Shi-Da-Dao-Ti-Mu-Yao-Qiu#Main.java **W5 008(改變程式,達到題目要求)** https://replit.com/@LIANGcode/W5-008Gai-Bian-Cheng-Shi-Da-Dao-Ti-Mu-Yao-Qiu#Main.java **W5 009(改變程式,達到題目要求)** https://replit.com/@LIANGcode/W5-009Gai-Bian-Cheng-Shi-Da-Dao-Ti-Mu-Yao-Qiu#Main.java **W5 010(改變程式,達到題目要求)** https://replit.com/@LIANGcode/W5-010Gai-Bian-Cheng-Shi-Da-Dao-Ti-Mu-Yao-Qiu#Main.java ::: ### Ch4 流程控制(實作題) :::warning **Ch4 - 001(三數最大值)** https://replit.com/@LIANGcode/Ch4-001San-Shu-Zui-Da-Zhi#Main.java **Ch4 - 002(2~100中所有質數,每5個換行顯示)** https://replit.com/@LIANGcode/Ch4-0022100Zhong-Suo-You-Zhi-Shu-Mei-5Ge-Huan-Xing-Xian-Shi#Main.java **Ch4 - 003(偶數乘法表)** https://replit.com/@LIANGcode/Ch4-003Ou-Shu-Cheng-Fa-Biao#Main.java **Ch4 - 004(數1~n 1~n乘方)** https://replit.com/@LIANGcode/Ch4-004Shu-1n-1nCheng-Fang#Main.java **Ch4 - 005(單一迴圈,乘法表)** https://replit.com/@LIANGcode/Ch4-005Dan-Yi-Hui-Quan-Cheng-Fa-Biao#Main.java **Ch4 - 006(計程車費)** https://replit.com/@LIANGcode/Ch4-006Ji-Cheng-Che-Fei#Main.java **Ch4 - 007(閏年檢查)** https://replit.com/@LIANGcode/Ch4-007Run-Nian-Jian-Cha#Main.java **Ch4 - 008(m=n!)** https://replit.com/@LIANGcode/Ch4-008mn#Main.java **Ch4 - 009(大小寫字母轉換)** https://replit.com/@LIANGcode/Ch4-009Da-Xiao-Xie-Zi-Mu-Zhuan-Huan#Main.java **Ch4 - 010(是否為一個三角形)** https://replit.com/@LIANGcode/Ch4-010Shi-Fou-Wei-Yi-Ge-San-Jiao-Xing#Main.java **Ch4 - 011(是否為直角三角形)** https://replit.com/@LIANGcode/Ch4-011Shi-Fou-Wei-Zhi-Jiao-San-Jiao-Xing#Main.java **Ch4 - 012(x的y次方)** https://replit.com/@LIANGcode/Ch4-012xDe-yCi-Fang#Main.java **Ch4 - 013(1!+2!+...+m!)(0<m<10)** https://replit.com/@LIANGcode/Ch4-01312m0lessmless10#Main.java **Ch4 - 014(吐出最少硬幣)** https://replit.com/@LIANGcode/Ch4-014Tu-Chu-Zui-Shao-Ying-Bi#Main.java **10/21(1~n 的m倍數總和)** https://replit.com/@LIANGcode/10211n-De-mBei-Shu-Zong-He#Main.java ::: ### Ch5 陣列(實作題) :::warning **Ch5-001輸入查詢對象,輸出電話號** https://replit.com/@LIANGcode/Ch5-001Shu-Ru-Cha-Xun-Dui-Xiang-Shu-Chu-Dian-Hua-Hao#Main.java **Ch5-002矩陣轉置** https://replit.com/@LIANGcode/Ch5-002Ju-Zhen-Zhuan-Zhi#Main.java **Ch5-003矩陣相乘** https://replit.com/@LIANGcode/Ch5-003Ju-Zhen-Xiang-Cheng#Main.java **Ch5-004存放學生成績,畫出分布圖** https://replit.com/@LIANGcode/Ch5-004Cun-Fang-Xue-Sheng-Cheng-Ji-Hua-Chu-Fen-Bu-Tu#Main.java **w7 印出直角三角形** https://replit.com/@LIANGcode/w7-Yin-Chu-Zhi-Jiao-San-Jiao-Xing#Main.java **Ch5-005楊輝三角形** https://replit.com/@LIANGcode/Ch5-005Yang-Hui-San-Jiao-Xing#Main.java ::: ### Ch6函式(上課習題) :::warning **3.跟電腦猜拳** https://replit.com/@LIANGcode/3Gen-Dian-Nao-Cai-Quan#Main.java **4. 擲骰子50次,請列出 1~6 點總共出現的次數** https://replit.com/@LIANGcode/4-Zhi-Tou-Zi-50Ci-Qing-Lie-Chu-16-Dian-Zong-Gong-Chu-Xian-De-Ci-Shu#Main.java **Ch6-001(函式 : 字串複製n次)** https://replit.com/@LIANGcode/Ch6-001Han-Shi-Zi-Chuan-Fu-Zhi-nCi#Main.java **Ch6-002(函式 : 商數餘數)** https://replit.com/@LIANGcode/Ch6-002Han-Shi-Shang-Shu-Yu-Shu#Main.java **Ch6-003(函式 : 100個亂數平均)** https://replit.com/@LIANGcode/Ch6-003Han-Shi-100Ge-Luan-Shu-Ping-Jun#Main.java **Ch6-004(ab乘法表)** https://replit.com/@LIANGcode/Ch6-004abCheng-Fa-Biao#Main.java **Ch6(11/25二維陣列之最大值並回傳)** https://replit.com/@LIANGcode/Ch61125Er-Wei-Zhen-Lie-Zhi-Zui-Da-Zhi-Bing-Hui-Chuan#Main.java **Ch6(11/25問答7)** https://replit.com/@LIANGcode/Ch61125Wen-Da-7#Main.java **Ch6(11/25問答8)** https://replit.com/@LIANGcode/Ch61125Wen-Da-8#Main.java **Ch6(11/25遞迴函式計算出x的y次方)** https://replit.com/@LIANGcode/Ch61125Di-Hui-Han-Shi-Ji-Suan-Chu-xDe-yCi-Fang#Main.java **Ch6-011(函數 : 是否為質數)** https://replit.com/@LIANGcode/Ch6-011Han-Shu-Shi-Fou-Wei-Zhi-Shu#Main.java **Ch6-012(4j3)** https://replit.com/@LIANGcode/Ch6-0124j3#Main.java **Ch6-013(檢查到2~n開根號即可)** https://replit.com/@LIANGcode/Ch6-013Jian-Cha-Dao-2nKai-Gen-Hao-Ji-Ke#Main.java ::: ### Ch7(物件導向程式設計) :::warning **Ch7 - 001(三角形類別)** https://replit.com/@LIANGcode/Ch7-001San-Jiao-Xing-Lei-Bie#Main.java **u7上課作業(12/2(4))** https://replit.com/@LIANGcode/u7Shang-Ke-Zuo-Ye-1224#Main.java **u7上課作業(12/2(5))** https://replit.com/@LIANGcode/u7Shang-Ke-Zuo-Ye-1225#Main.java **Ch7 -002** https://replit.com/@LIANGcode/Ch7-002#Main.java **Ch7 - 003(人事資料類別)** https://replit.com/@LIANGcode/Ch7-003Ren-Shi-Zi-Liao-Lei-Bie#Main.java **Ch7 - 004(飛行器類別)** https://replit.com/@LIANGcode/Ch7-004Fei-Xing-Qi-Lei-Bie#Main.java ::: ### Ch8(繼承) :::warning **Ch8-001(印出小於x的質數,定義CA的子類別CB)** https://replit.com/@LIANGcode/Ch8-001Yin-Chu-Xiao-Yu-xDe-Zhi-Shu-Ding-Yi-CADe-Zi-Lei-Bie-CB#Main.java **Ch8-002(印出x的三次方、階層,定義CA的子類別CB)** https://replit.com/@LIANGcode/Ch8-002Yin-Chu-xDe-San-Ci-Fang-Jie-Ceng-Ding-Yi-CADe-Zi-Lei-Bie-CB#Main.java **Ch8-003(抽象類別,印出多邊形內角和)** https://replit.com/@LIANGcode/Ch8-003Chou-Xiang-Lei-Bie-Yin-Chu-Duo-Bian-Xing-Nei-Jiao-He#Main.java **ch8-004(接第七章 : 加上海龍公式計算三角形面積)** https://replit.com/@LIANGcode/ch8-004Jie-Di-Qi-Zhang-Jia-Shang-Hai-Long-Gong-Shi-Ji-Suan-San-Jiao-Xing-Mian-Ji#Main.java ::: ### Ch9(介面) :::warning **Ch9-001** https://replit.com/@LIANGcode/Ch9-001#Main.java **Ch9-002** https://replit.com/@LIANGcode/Ch9-002#Main.java **Ch9-003** https://replit.com/@LIANGcode/Ch9-003#Main.java **ch9-004** https://replit.com/@LIANGcode/ch9-004#Main.java **ch9-005** https://replit.com/@LIANGcode/ch9-005#Main.java ::: ### 期中考 :::info **s1110834007Ans1 (數學公式)** ```JAVA= import java.util.Scanner; class Main { public static void main(String[] args) { double n; System.out.print("輸入數字 : "); Scanner input=new Scanner(System.in); n=input.nextInt(); double ans=0; double total=0; for(int j=1;j<=n*n;j++) { for(int i=1;i<=n*n;i++) { ans=(n-2)/n; total=total+ans; n=n-2; } } float end=(float)total; System.out.print("total="+end); } } ``` **s1110834007Ans2(工作時數)** ```JAVA= import java.util.Scanner; class Main { public static void main(String[] args) { int x=0; int money=0; int add=0; int all=0; int notime=0; while(true) { System.out.print("請輸入該月工作時數=>"); Scanner input=new Scanner(System.in); x=input.nextInt(); if(x>205) { money=160*105; double temp= 105*1.5*(205-160); int tt=(int)temp; add=tt; all=tt+money; notime=x-205; } if(x>=161&&x<=205) { money=160*105; double temp= 105*1.5*(x-160); int tt=(int)temp; add=tt; all=tt+money; notime=0; } if(x<=160) { money=x*105; add=0; all=money; notime=0; } System.out.println("本月基本薪資如下 : "); System.out.println("基本薪資= "+money); System.out.println("加班費= "+add); System.out.println("總共薪資= "+all); System.out.println("不計費時間= "+notime+"小時"); } } } ``` **s1110834007Ans3(等邊三角形)** ```JAVA= import java.util.Scanner; class Main { public static void main(String[] args) { System.out.print("請輸入等邊三角形的高度=>"); Scanner input=new Scanner(System.in); int n=input.nextInt(); for(int i=1;i<n+2;i++) { for(int j=0;j<=n+2-i;j++) { System.out.print(" "); } for(int k=1;k<=i-1;k++) { System.out.print(" "); System.out.print("*"); } System.out.print("\n"); } } } ``` **s1110834007Ans4(心算小測驗)** ```JAVA= import java.util.Scanner; class Main { public static void main(String[] args) { System.out.println("**** 心算小測驗-加法 ******"); Scanner input=new Scanner(System.in); int temp=0,temp2=0; int ans=0; int T=0,F=0; int again=1; while(again==1) { for(int i=1;i<=5;i++) { temp=(int)((Math.random()*10)+0); temp2=(int)((Math.random()*10)+0); System.out.print("第"+i+"題 : "+temp+"+"+temp2+"="); int n=input.nextInt(); if(n==temp+temp2) { System.out.println("好棒! 答對了!"); T++; } else { System.out.println("加油! 答錯了!"); F++; } } System.out.println("答對題數="+T+","+"答錯題數="+F); T=0;F=0; System.out.print("是否重新練習一次?(1:重新開始 2:遊戲結束)"); again=input.nextInt(); if(again==2) { System.out.println("Game Over"); } } } } ``` **s1110834007Ans5(隨機陣列數值相加)** ```JAVA= class Main { public static void main(String[] args) { int m1[][]=new int[3][3]; int m2[][]=new int[3][3]; int m3[][]=new int[3][3]; System.out.print("我是陣列Y\n"); for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { m1[i][j]=(int)((Math.random()*31)+0); System.out.print(m1[i][j]+"\t"); } System.out.print("\n"); } System.out.print("我是陣列X\n"); for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { m2[i][j]=(int)((Math.random()*31)+0); System.out.print(m2[i][j]+"\t"); } System.out.print("\n"); } System.out.print("我是陣列Z=X+Y\n"); int total=0; for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { m3[i][j]=m2[i][j]+m1[i][j]; System.out.print(m3[i][j]+"\t"); total=total+m3[i][j]; } System.out.print("\n"); } System.out.print("我是總和 : "+total); } } ``` **s1110834007Ans6(輸入一個三位整數,檢視它是否為迴文)** ```JAVA= import java.util.Scanner; class Main { public static void main(String[] args) { while(true) { System.out.print("輸入一個三位整數,檢視它是否為迴文 : "); Scanner input=new Scanner(System.in); String n=input.next(); if(n.length()!=3) { System.out.println("請輸入三位數整數!"); continue; } if(n.charAt(0)==n.charAt(2)) { System.out.println(n+ " is a palindrome number."); } else { System.out.println(n+" is not a palindrome number."); } } } } ``` ::: ### 期末考 :::info **s1110834007Ans1(類別啦~)** ```JAVA= public class Main { public static void main(String[] ager) { int[] temp; CFlyMachine objArr[]=new CFlyMachine[10]; for (int i = 0; i < objArr.length; i++) { temp = makeThreeNum(); objArr[i] = new CFlyMachine(temp[0], temp[1], temp[2]); } CFlyMachine a=new CFlyMachine(); a.printc(); System.out.println("速度\t載重量\t類型\t"); for (int i = 0; i < objArr.length; i++) { objArr[i].printData(); } } static int[]makeThreeNum() //產生亂數的函式 { int arr[]=new int [3]; arr[0]=(int)((Math.random()*45001)+5000); arr[1]=(int)((Math.random()*30001)+10000); arr[2]=(int)((Math.random()*4)); return arr; } } class CFlyMachine //飛行器類別 { public int speed; //速度 public int carryCapacity; //載重量 public int machineType; //類型 public static int counter=0; //類型為2的分行器數量 public CFlyMachine(){ speed=0; carryCapacity=0; machineType=0; // counter=0; } public CFlyMachine(int speed,int carryCapacity,int machineType){ this.speed=speed; this.carryCapacity=carryCapacity; this.machineType=machineType; this.counter=counter; if(machineType==2) { counter+=1; } } public void printData(){ System.out.println(speed+"\t"+carryCapacity+"\t"+machineType); if(machineType==2) { print(); } } private void print() { System.out.println("**多一架***"); } public void printc() { System.out.println("類型為2的飛行器有"+counter+"架"); } } ``` **s1110834007Ans2(關於圓的類別)** ```JAVA= public class Main { public static void main(String[] args) { // TODO Auto-generated method stub CSphere call=new CSphere(); call.setLocation(); call.setRadius(); call.showCenter(); System.out.println("surface area="+call.surfaceArea()); System.out.println("volume="+call.volume()); } } class CSphere { private int x; //x座標 private int y; //y座標 private int z; //z座標 private int radius; //圓心半徑 public void setLocation() //圓心位置 { x=3; y=4; z=5; } public void setRadius() //設定半徑 { radius=1; } public double surfaceArea() //傳回表面積 { double PI=3.14; return 4*PI*radius*radius; } public double volume() //傳回體積 { double PI=3.14; double temp=(double)4/3; return temp*PI*radius*radius*radius; } public void showCenter() //顯示圓心座標 { System.out.println("x="+x+", y="+y+" ,z="+z); } } ``` **s1110834007Ans3(解二元一次方程式)** ```JAVA= import java.lang.*; import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub int arr[]=new int[3]; int temp[]=new int[2]; int t=0; while(true) { arr=netxInt(); int c=0; for(int i=100;i>=-100;i--) { if(arr[0]*Math.pow(i, 2)+arr[1]*i+arr[2]==0) { temp[t]=i; t++; c++; } } if(c==2) { if(arr[0]==1&&arr[1]==1) System.out.println("x^2+"+"x+"+arr[2]+"=0 的兩根,分別為"+temp[0]+","+temp[1]); if(arr[0]==1&&arr[1]!=1) System.out.println("x^2+"+arr[1]+"x+"+arr[2]+"=0 的兩根,分別為"+temp[0]+","+temp[1]); if(arr[0]!=1&&arr[1]!=1) System.out.println(arr[0]+"x^2+"+"x+"+arr[2]+"=0 的兩根,分別為"+temp[0]+","+temp[1]); } else if(c==0) { if(arr[0]==1&&arr[1]==1) System.out.println("x^2+"+"x+"+arr[2]+"=0 沒有實根"); if(arr[0]==1&&arr[1]!=1) System.out.println("x^2+"+arr[1]+"x+"+arr[2]+"=0 沒有實根"); if(arr[0]!=1&&arr[1]!=1) System.out.println(arr[0]+"x^2+"+"x+"+arr[2]+"=0 沒有實根"); } } } public static int[] netxInt() //讀入以空白間隔的數字 { int a=0,b=0,c=0; System.out.print("請輸入ax^2+bx+c=0 的係數a、b及c(以空白隔開) : "); Scanner input =new Scanner(System.in); a=input.nextInt(); b=input.nextInt(); c=input.nextInt(); int temp[]=new int[3]; temp[0]=a; temp[1]=b; temp[2]=c; return temp; } } ``` **s1110834007Ans4(遞迴)** ```JAVA= public class Main{ public static void main(String[] args) { // TODO Auto-generated method stub System.out.print("1*2+2*3+3*4+...+(5-1)*5="+rsum(5)); } public static int rsum(int n) { int all=0; int ans=1; int temp; if(n>1) { all=0; ans=n; n--; temp=n*ans; rsum(n); return temp+temp; } return all; } } ``` **s1110834007Ans5(看圖)** ```JAVA= class Main { public static void main(String[] args) { } } interface IAddress { public abstract String getAddress(); } class Person { private int id; private String name; public int getID() { return id; } public String getName() { return name; } } class Member extends Person implements IAddress { public int memberNo; private String address; public int age; Member call=new Member(); public void memberinfo() { System.out.print("memberNo : "+ memberNo+" age : "+age+"Address"+call.getAddress()); } public String getAddress() { return address; } } ``` :::