JAVA题目 写一个收费站类_Java综合题目
分支, 循環(huán), 數(shù)據(jù)類型
1, 題目:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?
2, 題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數(shù)列的前20項之和。
3, 題目:求1!+2!+3!+...+20!的和(5!表示5的階乘, 即5*4*3*2*1)
4, 題目:一個5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個位與萬位相同,十位與千位相同。
5, 題目:先寫一個程序, 隨機(jī)生成一個3*3的矩陣數(shù)字(1-9數(shù)字全部用到不能重復(fù)), 然后求這個3*3矩陣對角線元素之和
6, 回憶包裝類對應(yīng)的基礎(chǔ)數(shù)據(jù)類型和基本方法的使用
將字符串轉(zhuǎn)成數(shù)字(Long, Integer, Short, Byte, Double, Float)
字符串轉(zhuǎn)換成字符數(shù)組, 并分別輸出
7, 查API文檔, 找出將2進(jìn)制, 8進(jìn)制, 16進(jìn)制形式的字符串轉(zhuǎn)換成的Integer數(shù)字的方法, 在控制臺上打印出來
8, 取一個隨便的字符串中字母出現(xiàn)的次數(shù), 打印出來
9, 有一個字符串形式的任意日期是"yyyy-MM-dd"的格式, 計算這個日期到1949年10月1日差了多少天
面向?qū)ο?#43;容器+流
1, 從data.txt文件中讀取數(shù)據(jù)到程序中, 實現(xiàn)一個聯(lián)動功能, 即輸入主食會顯示"1---饅頭2---煎餅3---米飯", 再次輸入會顯示下一級菜單
data.txt文件中每一行都有被 "," 分割的三個值, 第一個值代表這項食物的編號(對于整個數(shù)據(jù)來說是唯一的), 第三個值表示所屬的上一級食物分類
2, 寫一個程序統(tǒng)計一個項目中src下的所有 .java 文件的代碼行數(shù)(用流的知識)
讀到流
去空格
查看開始結(jié)尾
3, 寫一個帶線程同步的程序模擬5個人在火車站買票, 總共有4張票
1 //1, 題目:有1、2、3、4個數(shù)字,能組成多少個互7;不相同且無重復(fù)數(shù)字的三位數(shù)?2 //都是多少?
3 public static voidt1(){4 int num=0;5
6 for(int i=1;i<=4;i++){7 for(int j=1;j<=4;j++){8 for(int k=1;k<=4;k++){9 if(i!=j&&i!=k&&j!=k){10 num+=1;11 System.out.println(i*100+j*10+k);12 }13 }14 }15 }16 System.out.println("共有"+num+"種方案");17 }
1 public static voidt2(){2 //2, 題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數(shù)列的前20項之和。
3 double s=2;4 double x=1;5 doubletemp;6 double sum=0;7 for(int i=0;i<20;i++){8 sum=s/x+sum;9 temp=x;10 x=s;11 s=temp+s;12 }13 System.out.println(sum);14 }
1 public static long jiecheng(longl){2 //求階乘
3 long k=1;4 for(int i=1;i<=l;i++){5 k=k*i;6 }7 returnk;8 }9 public static voidt3(){10 //求1!+2!+3!+...+20!的和(5!表示5的階乘, 即5*4*3*2*1)
11 long sum=0;12 for(int i=1;i<=20;i++){13 sum=sum+jiecheng(i);14 }15 System.out.println(sum);16 }
1 public static voidt4(){2 //一個5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個位與萬位相同,十位與千位相同
3 Scanner sc=newScanner(System.in);4 String s=sc.nextLine();5 String[] ss=s.split("");6 if(ss[0].equals(ss[4])&&ss[1].equals(ss[3])){7 System.out.println("是回文數(shù)");8 }else{9 System.out.println("不是回文數(shù)");10 }11 sc.close();12 }
1 public static voidt5(){2 //5, 題目:先寫一個程序, 隨機(jī)生成一個3*3的矩陣數(shù)字(1-9數(shù)字全部用到不能重復(fù)), 然后求這個3*3矩陣對角線元素之和
3 List l1=newArrayList();4 List l2=newArrayList();5 List l3=newArrayList();6 Random r=newRandom();7 List list=newArrayList();8 for(int i=1;i<=9;i++){9 list.add(i);10 }11 for(int j=0;j<3;j++){12 l1.add(list.remove(r.nextInt(9-j)));13 }14 for(int j=0;j<3;j++){15 l2.add(list.remove(r.nextInt(6-j)));16 }17 for(int j=0;j<3;j++){18 l3.add(list.remove(r.nextInt(3-j)));19 }20 System.out.println(l1);21 System.out.println(l2);22 System.out.println(l3);23 System.out.println((int)l1.get(0)+(int)l2.get(1)+(int)l3.get(2)+(int)l1.get(2)+(int)l3.get(0));24 }
1 public static voidt6(){2 //將字符串轉(zhuǎn)成數(shù)字(Long, Integer, Short, Byte, Double, Float)3 //字符串轉(zhuǎn)換成字符數(shù)組, 并分別輸出
4 Scanner sc=newScanner(System.in);5 System.out.println("請輸入字符串?dāng)?shù)字");6 String s=sc.nextLine();7 System.out.println("Integer "+Integer.parseInt(s));8 System.out.println("Long "+Long.parseLong(s));9 System.out.println("Short "+Short.parseShort(s));10 System.out.println("Byte "+Byte.parseByte(s));11 System.out.println("Double "+Double.parseDouble(s));12 System.out.println("Float "+Float.parseFloat(s));13 System.out.println(Arrays.toString(s.toCharArray()));14 }
1 public static voidt7(){2 //查API文檔, 找出將2進(jìn)制, 8進(jìn)制, 16進(jìn)制形式的字符串轉(zhuǎn)換成的Integer數(shù)字的方法, 在控制臺上打印出來3 //十六進(jìn)制轉(zhuǎn)成十進(jìn)制
4 System.out.println(Integer.parseInt("FFFF",16));5 //八進(jìn)制轉(zhuǎn)成十進(jìn)制
6 System.out.println(Integer.parseInt("777",8));7 //二進(jìn)制轉(zhuǎn)成十進(jìn)制
8 System.out.println(Integer.parseInt("110",2));9 }
1 public static voidt8(){2 //取一個隨便的字符串中字母出現(xiàn)的次數(shù), 打印出來
3 Scanner sc=newScanner(System.in);4 System.out.println("請輸入字符串");5 String s=sc.nextLine();6 Map map = new HashMap();7 String[] ss = s.split("");8
9 for(String _s : ss) {10 map.put(_s, map.get(_s) == null ? 1 : map.get(_s) + 1);11 }12 System.out.println(map);13 }
1 public static voidt9(){2 //有一個字符串形式的任意日期是"yyyy-MM-dd"的格式, 計算這個日期到1949年10月1日差了多少天
3 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");4 Date smdate = null;5 Date bdate = null;6 try{7 smdate = sdf.parse("1949-10-1");8 bdate = sdf.parse("1949-09-1");9 smdate=sdf.parse(sdf.format(smdate));10 bdate=sdf.parse(sdf.format(bdate));11 } catch(ParseException e) {12 //TODO Auto-generated catch block
13 e.printStackTrace();14 }15 Calendar cal =Calendar.getInstance();16 cal.setTime(smdate);17 long time1 =cal.getTimeInMillis();18 cal.setTime(bdate);19 long time2 =cal.getTimeInMillis();20 long between_days=(time2-time1)/(1000*3600*24);21
22 System.out.println(String.valueOf(between_days));23 }
從data.txt文件中讀取數(shù)據(jù)到程序中, 實現(xiàn)一個聯(lián)動功能, 即輸入主食會顯示"1---饅頭 2---煎餅 3---米飯", 再次輸入會顯示下一級菜單
data.txt文件中每一行都有被 "," 分割的三個值, 第一個值代表這項食物的編號(對于整個數(shù)據(jù)來說是唯一的), 第三個值表示所屬的上一級食物分類
1 packagecom.hanqi.maya.test;2
3 public classFood {4 privateString id;5 privateString name;6 privateString parentid;7
8 publicFood(String id, String name, String parentid) {9 super();10 this.id =id;11 this.name =name;12 this.parentid =parentid;13 }14
15 publicString getId() {16 returnid;17 }18
19 public voidsetId(String id) {20 this.id =id;21 }22
23 publicString getName() {24 returnname;25 }26
27 public voidsetName(String name) {28 this.name =name;29 }30
31 publicString getParentid() {32 returnparentid;33 }34
35 public voidsetParentid(String parentid) {36 this.parentid =parentid;37 }38
39 @Override40 publicString toString() {41 return "Food [id=" + id + ", name=" + name + ", parentid=" + parentid + "]";42 }43
44 }
1 packagecom.hanqi.maya.test;2
3 importjava.io.BufferedReader;4 importjava.io.File;5 importjava.io.FileNotFoundException;6 importjava.io.FileReader;7 importjava.io.IOException;8 importjava.io.Reader;9 importjava.util.ArrayList;10 importjava.util.List;11 importjava.util.Scanner;12
13 importjava.io.File;14 importjava.io.FileNotFoundException;15 importjava.io.FileReader;16 importjava.io.IOException;17 importjava.io.Reader;18 importjava.util.ArrayList;19 importjava.util.List;20 importjava.util.Scanner;21
22 public classTest10 {23 public static voidmain(String[] args) {24 File file = new File("E:\\Java\\0803test\\data.txt");25 List list = new ArrayList();26 Reader reader = null;27 try{28 reader = newFileReader(file);29 BufferedReader br = newBufferedReader(reader);30 String s = null;31 while((s = br.readLine())!=null) {32 String[] ss = s.split(",");33 if(ss.length==3) {34 Food food = new Food(ss[0],ss[1],ss[2]);35 list.add(food);36 }37 }38 br.close();39
40 } catch(FileNotFoundException e) {41 e.printStackTrace();42 } catch(IOException e) {43 e.printStackTrace();44 }45 for(Food ff : list) {46 if("0".equals(ff.getParentid())) {47 System.out.println(ff.getId()+"---"+ff.getName());48 }49 }50
51 Scanner scanner = newScanner(System.in);52 boolean flag = true;53 String in_str =scanner.nextLine();54 while(flag) {55 if("exit".equals(in_str)) {56 flag = false;57 } else{58 printFood(list, in_str);59 in_str =scanner.nextLine();60 }61 }62 scanner.close();63
64 }65
66 public static void printFood(Listlist, String pid) {67 for(Food ff : list) {68 if(pid.equals(ff.getParentid())) {69 System.out.println(ff.getId()+"---"+ff.getName());70 }71 }72 }73
74 }
寫一個程序統(tǒng)計一個項目中src下的所有 .java 文件的代碼行數(shù)(用流的知識)
1 packagepractise;2
3 importjava.io.BufferedReader;4 importjava.io.File;5 importjava.io.FileNotFoundException;6 importjava.io.FileReader;7 importjava.io.IOException;8 importjava.io.Reader;9
10 public classTest11 {11
12 private static intdaima;13 private static intkongbai;14 private static intzhushi;15
16 public static voidmain(String[] args) {17 //F:\0603\0715\test\src
18
19 /*
20 * 統(tǒng)計代碼行數(shù) 代碼行數(shù) 注釋行數(shù) 空白行數(shù)21 */
22
23 File file = new File("F:\\0603\\0715\\test\\src");24
25 if(file.exists()) {26 countor(file);27 System.out.println("代碼行數(shù): " +daima);28 System.out.println("空白行數(shù): " +kongbai);29 System.out.println("注釋行數(shù): " +zhushi);30 } else{31 System.out.println("找不到路徑 !");32 }33
34 }35
36 public static voidcountor(File file) {37
38 File[] f_list = file.listFiles();//獲取文件夾下文件和子文件夾
39
40 for(File f : f_list) {41 if(f.isDirectory()) {42 countor(f);43 } else{44 try{45 boolean flag = false;46 Reader reader = new FileReader(f);//讀取文件
47 BufferedReader br = newBufferedReader(reader);48 String s = null;49 while ((s = br.readLine()) != null) {50 System.out.println(s);51 if (s.trim().startsWith("/*")) {52 flag = true;53 } else if (s.trim().endsWith("*/")) {54 flag = false;55 } else if(flag) {56 zhushi++;57 } else if (s.trim().startsWith("//")) {58 zhushi++;59 } else if (s.trim().length() != 0
60 && !(s.trim().startsWith("/*")61 && s.trim().startsWith("//"))) {62 daima++;63 } else if (!flag&&s.trim().length() == 0) {64 kongbai++;65 }66 }67 br.close();68 } catch(FileNotFoundException e) {69 e.printStackTrace();70 } catch(IOException e) {71 e.printStackTrace();72 }73
74 }75 }76 }77
78 }
寫一個帶線程同步的程序模擬5個人在火車站買票, 總共有4張票
1 packagepractise;2
3 importmodel.Station;4
5 public classTest12 {6
7 public static voidmain(String[] args) {8
9 MyThread mt = newMyThread();10
11 Thread t1 = newThread(mt);12 t1.setName("甲");13 Thread t2 = newThread(mt);14 t2.setName("乙");15 Thread t3 = newThread(mt);16 t3.setName("丙");17 Thread t4 = newThread(mt);18 t4.setName("丁");19 Thread t5 = newThread(mt);20 t5.setName("二");21
22 t1.start();23 t2.start();24 t3.start();25 t4.start();26 t5.start();27 }28
29 }30
31
32 class MyThread implementsRunnable {33 public Station station = newStation();34
35 @Override36 public voidrun() {37 station.sale(Thread.currentThread().getName());38 }39 }
1 packagemodel;2
3 public classStation {4 public int tickets = 4;5
6 public synchronized voidsale(String name) {7 if (tickets > 0) {8 try{9 Thread.sleep(1);10 } catch(InterruptedException e) {11 //TODO Auto-generated catch block
12 e.printStackTrace();13 }14 System.out.println(name + "買走了第" + tickets-- + "張票");15 } else{16 System.out.println("票沒了");17 }18 }19 }
總結(jié)
以上是生活随笔為你收集整理的JAVA题目 写一个收费站类_Java综合题目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [云炬创业基础笔记]第二章创业者测试24
- 下一篇: 【免费分享】KotaLog Diary2