gpt4 book ai didi

Java编程学习的几个典型实例详解

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java编程学习的几个典型实例详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1、模拟酒店房间管理系统,需要如下几个功能:

                     1、1 in 房间号 客人名字 入住功能 。

                     1、2 out 房间号 退房功能 。

                     1、3 search 房间号 查询房间状态 如果房间号为-1 则输出所有房间状态 。

                     1、4 quit 或 exit 退出 。

              提示:酒店所有的房间用二维数组来实现 。

代码实现如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import java.util.Scanner;
 
public class HotelDemo {
  //写在类里面,则每个方法都可以访问到,避免了参数传递的繁琐;
  static int h= 5 ,w= 10 ;
  static String[][] rooms= new String[ 5 ][ 10 ];
  public static void main(String[] args) {
   @SuppressWarnings ( "resource" )
   Scanner s= new Scanner(System.in);
   while ( true ){
    System.out.println( "请输入 in,out,search,quit:" );
    String temp=s.next();
    int room= 0 ;
    if ( "in" .equals(temp)){ //防止出现空指针异常;
     System.out.println( "输入房间号:" );
     room=s.nextInt();
     System.out.println( "输入名字:" );
     String name=s.next();
     if (in(room,name)) System.out.println( "入住完成!" );
     System.out.println( "room" +room+ "name" +name);
    } else if ( "out" .equals(temp)){
     System.out.println( "输入房间号:" );
     room=s.nextInt();
     if (out(room)) System.out.println( "退房完成!" );
     System.out.println( "out" +room);
    } else if ( "search" .equals(temp)){
     System.out.println( "输入房间号(-1代表全部):" );
     room=s.nextInt();
     search(room);
    } else if ( "quit" .equals(temp)|| "exit" .equals(temp)){
     break ;
    } else {
     System.out.println( "命令错误!" );
    }
   }
  }
 
  private static boolean search( int room) {
   if (room==- 1 ){
    //打印所有的信息;
    for ( int i= 0 ;i<h;i++){
     for ( int j= 0 ;j<w;j++){
      int room2=(i+ 1 )* 100 +j+ 1 ;
      System.out.print(room2+ "\t" );
     }
     System.out.println();
     for ( int k= 0 ;k<w;k++){
      System.out.print(rooms[i][k]== null ? "empty" :rooms[i][k]);
      System.out.print( "\t" );
     }
     System.out.println();
     System.out.println();
    }
    return true ;
   
   } else {
    int r=room/ 100 - 1 ;
    int c=room% 100 - 1 ;
    if (r< 0 ||r>=h||c< 0 ||c>=w){
     System.out.println( "房间号错误!" );
     return false ;
    }
    System.out.println(rooms[r][c]== null ? "empty" :rooms[r][c]);
    return true ;
   }
  }
 
  private static boolean out( int room) {
   int r=room/ 100 - 1 ;
   int c=room% 100 - 1 ;
   if (r< 0 ||r>=h||c< 0 ||c>=w){
    System.out.println( "房间号错误!" );
    return false ;
   }
   if (rooms[r][c]== null || "" .equals(rooms[r][c])){ //
    System.out.println( "此房间没有人!" );
    return false ;
   }
   rooms[r][c]= null ;
   return true ;
  }
 
  private static boolean in( int room, String name) {
   int r=room/ 100 - 1 ;
   int c=room% 100 - 1 ;
   if (r< 0 ||r>=h||c< 0 ||c>=w){
    System.out.println( "房间号错误!" );
    return false ;
   }
   if (rooms[r][c]!= null ){ //
    System.out.println( "此房间已经有人!" );
    return false ;
   }
 
   rooms[r][c]=name;
   return true ;
 
  }
 
}

2、螺旋矩阵  例 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.util.Scanner;
 
public class SpiralSquare01{
 
  public static void main(String[]
  args) {
   @SuppressWarnings ( "resource" )
   Scanner
  s= new Scanner(System.in);
   System.out.println( "请输入螺旋方阵的长" );
   int indexY=s.nextInt();
   System.out.println( "请输入螺旋方阵的宽" );
   int indexX=s.nextInt();
   if (indexX<= 0 ||indexY<= 0 ){
    System.out.println( "输入的数字不合法!" );
    return ;
   }
   int [][]
  square= new int [indexX][indexY];
   int x= 0 ;
   int y= 0 ;
   for ( int i= 1 ;i<=indexX*indexY;){
    while (y<square[x].length- 1 &&square[x][y+ 1 ]== 0 ){
     square[x][y++]=i++;
    }
    while (x<square.length&&square[x][y]== 0 ){
     square[x++][y]=i++;
    }
    while (y> 0 &&square[x- 1 ][y- 1 ]== 0 ){
     square[x- 1 ][--y]=i++;
    }
    --x;
    while (x> 1 &&square[x- 1 ][y]== 0 ){
     square[--x][y]=i++;
    }
    y++;
   }
   for ( int i= 0 ;i<square.length;i++){
    for ( int j= 0 ;j<square[i].length;j++){
     System.out.print(square[i][j]+ "\t" );
    }
    System.out.println();
   }
  }
}

运行结果:

Java编程学习的几个典型实例详解

3、经典数学问题:百鸡问题的变形 。

题目描述:有36个人,36块砖,每人搬了一次,正好搬完。其中男每人每次搬4块,女每人每次搬3块,小孩两人每次搬一块。问 男、女、小孩各多少人?

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class TestBrick
  {
  public static void main(String[]
  args) {
   int manNum= 0 ;
   int womanNum= 0 ;
   for ( int i= 0 ;i<= 9 ;i++){
    for ( int j= 0 ;j< 12 ;j++){ 
     if (((i* 4 +j* 3 +( 36 -i-j)/ 2 )== 36 )&&(( 36 -i-j)% 2 == 0 )){
      //注意:孩子的人数必须是偶数,否则会出现一个孩子一次也没有搬的情况,不符合题意
      manNum=i;
      womanNum=j;
      System.out.println( "男的的人数是" +manNum);
      System.out.println( "女的的人数是" +womanNum);
      System.out.println( "孩子的人数是" +( 36 -manNum-womanNum));
     }
    }
   }
  }
 
}

4、倒计时的算法:输入一个秒数,要求转换为XX小时XX分XX秒的格式输出出来 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.Scanner;
 
public class TestTime {
 
  /**
   * @param args
   */
  public static void main(String[] args) {
   // TODO Auto-generated method stub
   @SuppressWarnings ( "resource" )
   Scanner s= new Scanner(System.in);
   System.out.println( "请输入秒数:" );
   int second =s.nextInt();
   int hour=second/ 3600 ;
   int minite=second% 3600 / 60 ;
   int sec=second% 60 ;
 
   System.out.println( "转换后为:" +hour+ "小时" +minite+ "分" +sec+ "秒" );
   
  }
 
}

5、密码的自动生成器:密码由大写字母/小写字母/数字组成,生成六位随机密码,

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//密码的自动生成器:密码由大写字母/小写字母/数字组成,生成六位随机密码;
import java.util.Random;
 
public class TestPassword
  {
 
  /**
   *
  @param args
   */
  public static void main(String[]
  args) {
   //
  TODO Auto-generated method stub
     char []
  pardStore= new char [ 62 ];
      //把所有的大写字母放进去
      for ( int i= 0 ;i< 20 ;i++){
       pardStore[i]=( char )( 'A' +i);
      }
      //把所有的小写字母放进去
      for ( int i= 26 ;i< 52 ;i++){
       pardStore[i]=( char )( 'a' +i);
      }
     
      //吧0到9放进去
      for ( int i= 52 ;i< 62 ;i++){
       pardStore[i]=( char )( '0' +(i- 52 ));
      }
     
      //生成6位随机密码
      Random
  r= new Random();
      for ( int i= 0 ;i< 6 ;i++){
       int n=r.nextInt( 62 );
       System.out.print(pardStore[n]);
      }
     }
  }

6、写一个彩票的生成代码: 1-33随机选7个不重复的数字; 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.util.Random;
 
//写一个彩票的生成代码: 1-33随机选7个不重复的数字;
public class TestLuckyTicket {
 
  /**
   * @param args
   */
  public static void main(String[] args) {
   // TODO Auto-generated method stub
    int [] luckTickets= new int [ 7 ];
   
    Random r= new Random();
    for ( int i= 0 ;i<luckTickets.length;i++){
     luckTickets[i]=r.nextInt( 8 )+ 1 ;
     for ( int j= 0 ;j<i;j++){
      if (luckTickets[i]==luckTickets[j]){
       i--;
       break ;
      }
     }
    }
    for ( int i= 0 ;i<luckTickets.length;i++){
     System.out.print(luckTickets[i]+ "," );
    }
  }
 
}

7、定义一个字符串变量String str="床前明月光,疑是地上霜。举头望明月,低头思故乡。".

打印成如下格式的:

低  举  疑  床 。

头  头  是  前 。

思  望  地  明 。

故  明  上  月 。

乡  月  霜  光 。

。  ,  。  , 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class TestPoet
  {
 
  /**
   *
  @param args
   */
  public static void main(String[]
  args) {
   //
  TODO Auto-generated method stub
    String
  str= "床前明月光,疑是地上霜。举头望明月,低头思故乡。" ;
    char []
  poet=str.toCharArray();
    int l= 18 ;
    boolean flag= true ;
    int i= 0 ;
    while (flag){
     for ( int j=l;j>=( 0 +i);){
      System.out.print(poet[j]);
      j=j- 6 ;
     }
     System.out.println();
     l++;
     i++;
     if (l== 24 ){flag= false ;}
    }
  }
 
}

8、九宫格的输出:九宫格就是每一行,每一列,斜着的一列和反斜着的一列的所在的数字之和均相等;最基本的是三行三列=9格就是很出名的九宫格;还可以推广到5*5=25个格;只要行和列的个数均相等并且是奇数就可以; 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import java.util.Scanner;
 
public class JiuGongGe {
 
  /**
   * @param args
   */
  public static void main(String[] args) {
   // TODO Auto-generated method stub
   @SuppressWarnings( "resource" )
   Scanner s= new Scanner(System. in );
   System.out.println( "请输入一个大于等于3的奇数" );
   int length=s.nextInt();
   if (length<3||length%2==0){
    System.out.println( "输入的数字不合法!" );
    return ;
   }
   int[][] nineTable= new int[length][length];
   int indexX=0;
   int indexY=0;
   indexY=(nineTable.length-1)/2;
   nineTable[indexX][indexY]=1;
   for (int i=1;i<nineTable.length*nineTable.length;i++){
    indexX--;
    indexY++;
    if (indexY>=nineTable.length&&indexX>=0){
     indexY=0;
    } else if (indexX<0&&indexY<nineTable.length){
     indexX=nineTable.length-1;
    } else if (indexY>=nineTable.length&&indexX<0){
     indexY--;
     indexX=indexX+2;
    } else if (nineTable[indexX][indexY]!=0){
     indexY--;
     indexX=indexX+2;
    }
    nineTable[indexX][indexY]=i+1;
   
   }
   for (int i=0;i<nineTable.length;i++){
    for (int j=0;j<nineTable[i].length;j++){
     System.out.print(nineTable[i][j]+ " " );
    }
    System.out.println();
    System.out.println();
   }
  
  }
 
  }

总结 。

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我的支持.

最后此篇关于Java编程学习的几个典型实例详解的文章就讲到这里了,如果你想了解更多关于Java编程学习的几个典型实例详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com