- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
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();
}
}
}
|
运行结果:
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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在尝试打印 timeval 类型的值。实际上我可以打印它,但我收到以下警告: 该行有多个标记 格式“%ld”需要“long int”类型,但参数 2 的类型为“struct timeval” 程序
我正在编写自己的 unix 终端,但在执行命令时遇到问题: 首先,我获取用户输入并将其存储到缓冲区中,然后我将单词分开并将它们存储到我的 argv[] 数组中。IE命令是“firefox”以启动存储在
我是 CUDA 的新手。我有一个关于一个简单程序的问题,希望有人能注意到我的错误。 __global__ void ADD(float* A, float* B, float* C) { con
我有一个关于 C 语言 CGI 编程的一般性问题。 我使用嵌入式 Web 服务器来处理 Web 界面。为此,我在服务器中存储了一个 HTML 文件。在此 HTML 文件中包含 JavaScript 和
**摘要:**在代码的世界中,是存在很多艺术般的写法,这可能也是部分程序员追求编程这项事业的内在动力。 本文分享自华为云社区《【云驻共创】用4种代码中的艺术试图唤回你对编程的兴趣》,作者: break
我有一个函数,它的任务是在父对象中创建一个变量。我想要的是让函数在调用它的级别创建变量。 createVariable testFunc() [1] "test" > testFunc2() [1]
以下代码用于将多个连续的空格替换为1个空格。虽然我设法做到了,但我对花括号的使用感到困惑。 这个实际上运行良好: #include #include int main() { int ch, la
我正在尝试将文件写入磁盘,然后自动重新编译。不幸的是,某事似乎不起作用,我收到一条我还不明白的错误消息(我是 C 初学者 :-)。如果我手动编译生成的 hello.c,一切正常吗?! #include
如何将指针值传递给结构数组; 例如,在 txt 上我有这个: John Doe;xxxx@hotmail.com;214425532; 我的代码: typedef struct Person{
我尝试编写一些代码来检索 objectID,结果是 2B-06-01-04-01-82-31-01-03-01-01 . 这个值不正确吗? // Send a SysObjectId SNMP req
您好,提前感谢您的帮助, (请注意评论部分以获得更多见解:即,以下示例中的成本列已添加到此问题中;西蒙提供了一个很好的答案,但成本列本身并未出现在他的数据响应中,尽管他提供的功能与成本列一起使用) 我
我想知道是否有人能够提出一些解决非线性优化问题的软件包的方法,而非线性优化问题可以为优化解决方案提供整数变量?问题是使具有相等约束的函数最小化,该函数受某些上下边界约束的约束。 我已经在R中使用了'n
我是 R 编程的初学者,正在尝试向具有 50 列的矩阵添加一个额外的列。这个新列将是该行中前 10 个值的平均值。 randomMatrix <- generateMatrix(1,5000,100,
我在《K&R II C 编程 ANSI C》一书中读到,“>>”和“0; nwords--) sum += *buf++; sum = (sum >>
当下拉列表的选择发生变化时,我想: 1) 通过 div 在整个网站上显示一些 GUI 阻止覆盖 2)然后处理一些代码 3) 然后隐藏叠加层。 问题是,当我在事件监听器函数中编写此逻辑时,将执行 onC
我正在使用 Clojure 和 RESTEasy 设计 JAX-RS REST 服务器. 据我了解,用 Lisp 系列语言编写的应用程序比用“传统”命令式语言编写的应用程序更多地构建为“特定于领域的语
我目前正在研究一种替代出勤监控系统作为一项举措。目前,我设计的用户表单如下所示: Time Stamp Userform 它的工作原理如下: 员工将选择他/她将使用的时间戳类型:开始时间、超时、第一次
我是一名学生,试图自学编程,从在线资源和像您这样的人那里获得帮助。我在网上找到了一个练习来创建一个小程序来执行此操作: 编写一个程序,读取数字 a 和 b(长整型)并列出 a 和 b 之间有多少个数字
我正在尝试编写一个 shell 程序,给定一个参数,打印程序的名称和参数中的每个奇数词(即,不是偶数词)。但是,我没有得到预期的结果。在跟踪我的程序时,我注意到,尽管奇数词(例如,第 5 个词,5 %
只是想知道是否有任何 Java API 可以让您控制台式机/笔记本电脑外壳上的 LED? 或者,如果不可能,是否有可能? 最佳答案 如果你说的是前面的 LED 指示电源状态和 HDD 繁忙状态,恐怕没
我是一名优秀的程序员,十分优秀!