.java經(jīng)典的小程序詳盡代碼_第1頁
.java經(jīng)典的小程序詳盡代碼_第2頁
.java經(jīng)典的小程序詳盡代碼_第3頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1,編寫程序,判斷給定的某個年份是否是閏年。 閏年的判斷規(guī)則如下: (1)若某個年份能被4整除但不能被100整除,則是閏年。 (2)若某個年份能被400整除,則也是閏年。import java.util.Scanner;class Bissextile public static void main(String arge) System.out.print(請輸入年份); int year; /定義輸入的年份名字為“year” Scanner scanner = new Scanner(System.in); year = scanner.nextInt(); if (year3000) S

2、ystem.out.println(年份有誤,程序退出!); System.exit(0); if (year%4=0)&(year%100!=0)|(year%400=0) System.out.println(year+ is bissextile); else System.out.println(year+ is not bissextile ); 2,給定一個百分制的分數(shù),輸出相應(yīng)的等級。 90分以上 A級 8089 B級 7079 C級 6069 D級 60分以下 E級import java.util.Scanner;class Mark public static void ma

3、in(String args) System.out.println(請輸入一個分數(shù)); /定義輸入的分數(shù)為“mark”,且分數(shù)會有小數(shù) double mark; Scanner scanner = new Scanner(System.in); mark = scanner.nextDouble(); /判斷是否有輸入錯誤。 if(mark100) System.out.println(輸入有誤! ); System.exit(0); /*判斷分數(shù)的等級 90分以上者A級, 8089分者 B級,7079分者 C級, 6069者 D級,60分以下 E級 */ if (mark=90) Syst

4、em.out.println(this mark is grade A ); else if (mark=80) System.out.println(this mark is grade B ); else if (mark=70) System.out.println(this mark is grade C ); else if (mark=60) System.out.println(this mark is grade D ); else System.out.println(this mark is grade E ); 3,編寫程序求 1+3+5+7+99 的和值。class h

5、e public static void main(String args) int number = 1; /初始值1,以后再+2遞增上去 int sum = 0; for ( ; number 100; number+=2 ) sum += number; System.out.println(1+3+5+7+99= +sum); 4、利用for循環(huán)打印 9*9 表?1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*6=6 2*6=12 3*6=18 4*

6、6=24 5*6=30 6*6=361*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=491*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=641*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81/循環(huán)嵌套,打印九九乘法表public class NineNine public static void main(Stringargs) System.out.println(); for (int j=1;j10;j+) for(in

7、t k=1;k10;k+) /老師的做法,判斷語句里的 kj) break; /此處用 continue也可以,只是效率低一點 System.out.print( +k+X+j+=+j*k); System.out.println(); 6、輸出所有的水仙花數(shù),把謂水仙花數(shù)是指一個數(shù)3位數(shù),其各各位數(shù)字立方和等于其本身, 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5 class DafodilNumber public static void main(String args) System.out.println(以下是所有的水仙花數(shù)); int number = 100;

8、 / 由于水仙花數(shù)是三位數(shù),故由100開始算起 int i, j, k; / i j k 分別為number 的百位、十位、個位 for (int sum; number1000; number+) i=number/100; j=(number-i*100)/10; k=number-i*100-j*10; sum=i*i*i+j*j*j+k*k*k; if (sum=number) System.out.println(number+ is a dafodil number! ); 7、求 a+aa+aaa+.+aaaaaaaaa=? 其中a為1至9之中的一個數(shù),項數(shù)也要可以指定。impo

9、rt java.util.Scanner;class Multinomial public static void main(String args) int a; /定義輸入的 a int howMany; /定義最后的一項有多少個數(shù)字 Scanner scanner = new Scanner(System.in); System.out.println(請輸入一個 19 的 a 值); a = scanner.nextInt(); System.out.println(請問要相加多少項?); howMany = scanner.nextInt(); int sum=0; int a1=a

10、; / 用來保存 a 的初始值 for (int i=1; i=howMany; i+) sum+= a; a = 10*a +a1; / 這表示a 的下一項 / 每次 a 的下一項都等于前一項*10,再加上剛輸入時的 a ;注意,這時的 a 已經(jīng)變化了。 System.out.println(sum=+sum); 8、求 2/1+3/2+5/3+8/5+13/8.前20項之和?class Sum public static void main(Sting args) double sum=0; double fenZi=2.0, fenMu=1.0; /初始的分子 (fenZi)2,分母(f

11、enMu)1 for(int i=1; i=20; i+) sum += fenZi / fenMu ; fenMu = fenZi; /下一項的分母 上一項的分子 fenZi += fenMu; /下一項的分子 上一項的分子加分母 System.out.println(sum= sum); 9、利用程序輸出如下圖形: * * * * * * * * * * * * * * * * * * * * * * * * *class Asterisk public static void main(String args) for (int i=1; i=13; i+=2) for(int j=1;

12、 j=i & i+j= 14; j+)System.out.print(* ); System.out.println(); / 換行 11、計算圓周率 PI44/3+4/5-4/7. 打印出第一個大于 3.1415小于 3.1416的值class Pi public static void main(String args) double pi =0; /定義初始值 double fenZi = 4; /分子為4 double fenMu = 1; /第一個4,可看作分母為1 的分式,以后的分母每次遞增2 for (int i = 0; i 1000000000; i+) /運行老久,減少循

13、環(huán)次數(shù)會快很多,只是精確度小些 pi += (fenZi/fenMu) ; fenZi *= -1.0; /每項分子的變化是+4,4,+4,4 . fenMu += 2.0; /分母的變化是1,3,5,7, . 每項遞加2 System.out.println(pi); 輸出結(jié)果為pi = 3.1415926525880504,應(yīng)該不精確12、輸入一個數(shù)據(jù)n,計算斐波那契數(shù)列(Fibonacci)的第n個值 1 1 2 3 5 8 13 21 34 規(guī)律:一個數(shù)等于前兩個數(shù)之和/計算斐波那契數(shù)列(Fibonacci)的第n個值public class Fibonacci public stat

14、ic void main(String args) int n = Integer.parseInt(args0); int n1 = 1;/第一個數(shù) int n2 = 1;/第二個數(shù) int sum = 0;/和 if(n=0) System.out.println(參數(shù)錯誤!); return; if(n=2) sum = 1; else for(int i=3;i=n;i+) sum = n1+n2; n1 = n2; n2 = sum; System.out.println(sum); /計算斐波那契數(shù)列(Fibonacci)的第n個值/并把整個數(shù)列打印出來public class F

15、ibonacciPrint public static void main(String args) int n = Integer.parseInt(args0); FibonacciPrint t = new FibonacciPrint(); for(int i=1;i=n;i+) t.print(i); public void print(int n) int n1 = 1;/第一個數(shù) int n2 = 1;/第二個數(shù) int sum = 0;/和 if(n=0) System.out.println(參數(shù)錯誤!); return; if(n=2) sum = 1; else for(

16、int i=3;i=n;i+) sum = n1+n2; n1 = n2; n2 = sum; System.out.println(sum); 13、求1-1/3+1/5-1/7+1/9.的值。 a,求出前50項和值。 b,求出最后一項絕對值小于1e-5的和值。15、在屏幕上打印出n行的金字塔圖案,如,若n=5,則圖案如下: * * * * */打印金字塔圖案public class PrintStar public static void main(String args) int col = Integer.parseInt(args0); 字符數(shù)組args的第一位轉(zhuǎn)成 int類型給CO

17、L哦 for(int i=1;i=col;i+)/i表示行數(shù) /打印空格 for(int k=0;kcol-i;k+) System.out.print( ); /打印星星 for(int m=0;m2*i-1;m+) System.out.print(*); System.out.println(); 16、歌德巴赫猜想,任何一個大于六的偶數(shù)可以拆分成兩個質(zhì)數(shù)的和 打印出所有的可能/任何一個大于六的偶數(shù)可以拆分成兩個質(zhì)數(shù)的和/打印出所有的可能public class Gedebahe public static void main(String args) int num = Integer

18、.parseInt(args0); if(num=6) System.out.println(參數(shù)錯誤!); return; if(num%2!=0) System.out.println(參數(shù)錯誤!); return; Gedebahe g = new Gedebahe(); /1不是質(zhì)數(shù),2是偶數(shù),因此從3開始循環(huán) for(int i=3;i=num/2;i+) if(i%2=0)/如果為偶數(shù),退出本次循環(huán) continue; /當i與num-i都為質(zhì)數(shù)時,滿足條件,打印 if(g.isPrime(i) & g.isPrime(num-i) /*判斷素數(shù)的方法*/如果i是素數(shù) 并且參數(shù)nu

19、m-參數(shù)i也是素數(shù)的時候你的程序如此運行java xxx aa bbaa = args0 bb 就是args1這樣Integer.parseInt就是把這args這個數(shù)據(jù)的第一個元素轉(zhuǎn)換成為Integer類型。 System.out.println(i+ + +(num-i)+ = +num); 第4章 數(shù)組1. 定義一個int型的一維數(shù)組,包含10個元素,分別賦一些隨機整數(shù),然后求出所有元素的最大值,最小值,平均值,和值,并輸出出來。class ArrayNumber public static void main(String args) int arrayNumber; arrayNum

20、ber = new int10; System.out.println(以下是隨機的10個整數(shù):); / 填入隨機的 10個整數(shù) for (int i =0; iarrayNumber.length; i+) arrayNumberi = (int)(100*Math.random(); System.out.print(arrayNumberi+ ); System.out.println(); int max = arrayNumber0; int min = arrayNumber0; int sum = 0; for (int i =0; iarrayNumber.length; i+

21、) if(max arrayNumberi) min = arrayNumberi; /求最小值 sum += arrayNumberi; System.out.println(其中 Max=+max+,Min=+min+,Sum=+sum+,Avg=+sum/10.0); 2.定義一個int型的一維數(shù)組,包含10個元素,分別賦值為110, 然后將數(shù)組中的元素都向前移一個位置,即,a0=a1,a1=a2,最后一個元素的值是原來第一個元素的值,然后輸出這個數(shù)組。3. 定義一個int型的一維數(shù)組,包含40個元素,用來存儲每個學(xué)員的成績,循環(huán)產(chǎn)生40個0100之間的隨機整數(shù),將它們存儲到一維數(shù)組中,

22、然后統(tǒng)計成績低于平均分的學(xué)員的人數(shù),并輸出出來。4. (選做)承上題,將這40個成績按照從高到低的順序輸出出來。5,(選做)編寫程序,將一個數(shù)組中的元素倒排過來。例如原數(shù)組為1,2,3,4,5;則倒排后數(shù)組中的值為5,4,3,2,1。6,要求定義一個int型數(shù)組a,包含100個元素,保存100個隨機的4位數(shù)。再定義一個 int型數(shù)組b,包含10個元素。統(tǒng)計a數(shù)組中的元素對10求余等于0的個數(shù),保存 到b0中;對10求余等于1的個數(shù),保存到b1中,依此類推。class Remain public static void main( String args) int a = new int100;

23、 /保存100個隨機4位數(shù)到 a 中 for (int i = 0; i a.length; i+) ai = (int) (1000*Math.random(); /統(tǒng)計 a 數(shù)組中的元素對 10 求余的各個的數(shù)目 int b = new int10; int k,sum; for (int j = 0; j b.length; j+) for (k=0,sum=0; k a.length; k+) if (ak%10)=j) sum+; bj = sum; System.out.printf(b%d=%dn,j,bj); Scanner n = new Scanner(System.in)

24、 7,定義一個20*5的二維數(shù)組,用來存儲某班級20位學(xué)員的5門課的成績;這5門課 按存儲順序依次為:core C+,coreJava,Servlet,JSP和EJB。 (1)循環(huán)給二維數(shù)組的每一個元素賦0100之間的隨機整數(shù)。 (2)按照列表的方式輸出這些學(xué)員的每門課程的成績。 (3)要求編寫程序求每個學(xué)員的總分,將其保留在另外一個一維數(shù)組中。 (4)要求編寫程序求所有學(xué)員的某門課程的平均分。import java.lang.Math;import java.util.Random;public class C /* * param args */public static void mai

25、n(String args) / TODO Auto-generated method stubint i=new int20;int m=new int5;for(int j=0;ji.length;j+)ij=j+1;for(int l=0;l1.0E-4|N%2=0|N0) System.out.println(輸入出錯,格局只能是正奇數(shù)。請重新輸入); else break; /老師的九宮格填寫方法 int result = new intNN; /定義保存九宮格的數(shù)組 int row = 0; /行 初始位置 int col = N/2; /列 初始位置,因為列由0開始,故N/2是中

26、間位置 for (int i=1; i=N*N; i+) result rowcol = i; row-; col+; if (row=N)col-;row+=2; /行列都越界 else if (row=N)col = 0; /列越界 else if (resultrowcol != 0)col-;row+=2; /有沖突 /打印出九宮格 for (int i=0; iN; i+) for(int j=0; jN; j+)System.out.print(resultij+t); System.out.println(); /我個人的填格方式 int result2 = new intNN;

27、 /為免沖突,重新 new 一個數(shù)組 result2N/2N/2 = (N*N+1)/2; /先把中間值賦予中間位置 row = 0; /定義行及列的初始賦值位置。之前賦值的for對兩個值有影響,故需重新定位 col = N/2; for (int i=1; i=N*N/2; i+) result2rowcol = i; /下面這句是把跟 i 對應(yīng)的值放到格局對應(yīng)的位置上 result2N-row-1N-col-1 = N*N+1-i; row-; col+; if (row=N)col = 0; /列越界 else if (result2rowcol != 0)col-;row+=2; /有

28、沖突 /這方法不可能出現(xiàn)行列兩邊都越界的情況,詳情需要數(shù)學(xué)論證 System.out.println(); /再次打印出九宮格,以對比驗證 for (int i=0; iN; i+) for(int j=0; jN; j+)System.out.print(result2ij+t); System.out.println(); 9,求一個3*3矩陣對角線元素之和 10,打印楊輝三角11. 約梭芬殺人法 把犯人圍成一圈,每次從固定位置開始算起,殺掉第7個人,直到剩下最后一個。11_2、用數(shù)組實現(xiàn)約瑟夫出圈問題。 n個人排成一圈,從第一個人開始報數(shù),從1開始報,報到m的人出圈,剩下的人繼續(xù)開始從1

29、報數(shù),直到所有的人都出圈為止。對于給定的n,m,求出所有人的出圈順序。12. 判斷隨機整數(shù)是否是素數(shù)產(chǎn)生100個0-999之間的隨機整數(shù),然后判斷這100個隨機整數(shù)哪些是素數(shù),哪些不是?public class PrimeTest public static void main(String args) for(int i=0;i100;i+) int num = (int)(Math.random()*1000); PrimeTest t = new PrimeTest(); if(t.isPrime(num) System.out.println(num+ 是素數(shù)!); else Syst

30、em.out.println(num+ 不是素數(shù)!); System.out.println(); public boolean isPrime(int num) for(int i=2;i=num/2;i+) if(num%i=0) System.out.println(num+第一個被+i+整除!); return false; return true; 冒泡排序法:/按從大到小的排序int tmp = a0;for (int i=0; i a.length; i+) for (int j=0; j a.length - i -1; j+) if (aj aj+1) tmp = aj; a

31、j = aj+1; aj+1 = tmp; day06 練習某公司的雇員分為以下若干類:Employee:這是所有員工總的父類,屬性:員工的姓名和生日月份。方法:getSalary(int month) 根據(jù)參數(shù)月份來確定工資,如果該月員工過生日,則公司會額外獎勵100元。SalariedEmployee:Employee的子類,拿固定工資的員工。屬性:月薪HourlyEmployee:Employee的子類,按小時拿工資的員工,每月工作超出160小時的部分按照1.5倍工資發(fā)放屬性:每小時的工資、每月工作的小時數(shù)SalesEmployee:Employee的子類,銷售人員,工資由月銷售額和提成

32、率決定屬性:月銷售額、提成率BasePlusSalesEmployee:SalesEmployee的子類,有固定底薪的銷售人員,工資由底薪加上銷售提成部分 屬性:底薪。public class TestEmployee public static void main(Stringargs) Employee es = new Employee5; es0 = new Employee(趙君,2); es1 = new SalariedEmployee(宋婕, 1, 8000); es2 = new HourlyEmployee(王超, 5, 10, 300); es3 = new SalesE

33、mployee(秋娥, 2, 200000, 0.05); es4 = new BaseSalarySalesEmployee(郭鐙鴻, 1, 1000000, 0.1, 10000); int month = 2;/本月為2月 System.out.println(宇宙集團+month+月工資表:); for(int i=0; ies.length; i+) System.out.println(esi.getName()+:+esi.getSalary(month); class Employee private String name; private int birth; public

34、 String getName() return name; public Employee(String name, int birth) = name; this.birth = birth; public double getSalary(int month) if(month=birth) return 100; return 0; class SalariedEmployee extends Employee private double salary; public SalariedEmployee(String name, int birth, double

35、salary) super(name, birth); this.salary = salary; public double getSalary(int month) return salary + super.getSalary(month); class HourlyEmployee extends Employee private double hourSalary; private int hour; public HourlyEmployee(String name, int birth, double hourSalary, int hour) super(name, birth

36、); this.hourSalary = hourSalary; this.hour = hour; public double getSalary(int month) if(hour=160) return hourSalary*hour+super.getSalary(month); else return 160*hourSalary+(hour-160)*hourSalary*1.5+super.getSalary(month); class SalesEmployee extends Employee private double sales; private double pre

37、; public SalesEmployee(String name, int birth, double sales, double pre) super(name, birth); this.sales = sales; this.pre = pre; public double getSalary(int month) return sales*pre+super.getSalary(month); class BaseSalarySalesEmployee extends SalesEmployee private double baseSalary; public BaseSalar

38、ySalesEmployee(String name, int birth, double sales, double pre, double baseSalary) super(name, birth, sales, pre); this.baseSalary = baseSalary; public double getSalary(int month) return baseSalary+super.getSalary(month); /* * 在原有的雇員練習上修改代碼 * 公司會給SalaryEmployee每月另外發(fā)放2000元加班費,給 * BasePlusSalesEmployee發(fā)放1000元加班費 * 改寫原有代碼,加入以上的邏輯 * 并寫一個方法,打印出本月公司總共發(fā)放了多少加班費 * author Administrator * */public class EmployeeTest /* * param args */ public static void

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論