实验内容
(1)猜数字
编写一个Java应用程序,实现如下功能:
A.随机分配给客户一个1~100之间的整数。
B.用户从键盘输入自己的猜想。
C.程序返回提示:”大了”,”小了”,”猜对了”。
D.用户根据提示,再次输入猜想的数,直到猜对为止,显示”猜对了”,同时输出猜想的次数。
(2)金额的中文大写形式
给定一个浮点数,将其转换为金额的中文大写形式的字符串。例如,123.45表示为“壹佰贰拾叁元肆角伍分”。注意以下几种情况:
A.当金额为整数时,只表示整数部分,省略小数部分,并添加“整”字,例如123表示成“壹佰贰拾叁元整”。
B.当金额中含有连续的0时,只需写一个“零”即可。例如10005表示为“壹万零伍元整”。
C.10的省略表示。例如110表示为“壹佰壹拾元整”,而10表示为“拾元整”。
D.100表示为“壹佰元整”,1000表示为“壹仟元整”等等。
(3)三子棋
编写程序,实现简单的三子棋游戏。在三子棋中,双方在3*3的棋盘中轮流下棋,一方用*表示,另一方用O表示。如果一方的3个棋子占据了同一行,同一列或者对角线,则该方获胜。如果棋盘已被棋子占满,但没有一方获胜则出现平局。在程序中,一方为用户,用户在界面上输入每次下棋的位置;另一方下棋的位置为计算机随机自动生成。
实验结果
猜数字
金额的中文大写形式
三子棋
源代码
猜数字
Guess.java
package lab1;
import java.util.Random;
import java.util.Scanner;
public class Guess {
public static void main(String[] args) {
Random r = new Random();
int ran1 = r.nextInt(100);
Scanner reader = new Scanner(System.in);
int ant = 0;
while(true) {
System.out.println("------请输入一个整数数字--------");
int ans = reader.nextInt();
if(ans > ran1) {
ant++;
System.out.println("大了");
System.out.println("游戏继续");
}
else if(ans < ran1) {
ant++;
System.out.println("小了");
System.out.println("游戏继续");
}
else {
ant++;
System.out.println("猜对了");
System.out.println("游戏结束");
System.out.println("共猜了"+ ant + "次");
break;
}
}
reader.close();
}
}
金额的中文大写形式
Money.java
package lab1;
import java.util.Scanner;
public class Money {
public static void main(String[] args) {
char [] st = {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖','拾'};
char [] ans = {'元','万'};
char [] ant = {'千','元','拾','佰'};
Scanner ran1 = new Scanner(System.in);
String s = ran1.nextLine();
char [] moe = new char[100];
int wt = 0;
char [] all = s.toCharArray();
char [] wh = new char[100];
int x1 = 0;
for(int i = 0; i<all.length; i ++ ) {
if(all[i]=='.')
break;
wh[x1++]=all[i];
}
int t = x1;
for(int i = 0; i < t ; i ++ ) {
if(wh[i]=='0'&&(t-i)%4!=1) {
if(wh[i+1]!='0') moe[wt++] = '零';
continue;
}
if((t-i)%4==1) {
if(wh[i]!='0')
moe[wt++]=st[wh[i]-'0'];
if(wh[i]!='0'||(i-1>=0&&wh[i-1]!='0')||(i-2>=0&&wh[i-2]!='0')||(i-3>=0&&wh[i-3]!='0')) {
int k = (t-i)/4;
moe[wt++]=ans[k];
}
continue;
}
moe[wt++]=st[wh[i]-'0'];
int u = (t-i)%4;
moe[wt++]=ant[u];
}
if(t-4>=0&&wh[t-1]=='0'&&wh[t-2]=='0'&&wh[t-3]=='0'&&wh[t-4]=='0')
moe[wt++]='元';
else if(t==1&&wh[t-1]=='0') {
moe[wt++]='零';
moe[wt++]='元';
}
if(!s.contains("."))
moe[wt++]='整';
else {
for(int i = x1+1;i < all.length ; i ++ ) {
if(i==x1+1) {
moe[wt++] = st[all[i]-'0'];
moe[wt++] = '角';
continue;
}
else {
moe[wt++] = st[all[i]-'0'];
moe[wt++] = '分';
break;
}
}
if(x1+1==all.length-1) {
moe[wt++]='零';
moe[wt++]='分';
}
}
ran1.close();
System.out.println(moe);
}
}
三子棋
Battle.java
package lab1;
import java.util.Random;
import java.util.Scanner;
class CheckerBoard {
private int x,y;
public static char [][] st = {{'$','$','$'},{'$','$','$'},{'$','$','$'}};
public boolean dos(int a,int b,char t) {
x = a;
y = b;
if(check()){
change(t);
return false;
}
return true;
}
public boolean check() {
if(st[x][y]=='$')
return true;
return false;
}
public void change(char it) {
st[x][y] = it;
}
public int judge() {
for(int i = 0 ; i < 3 ; i ++ )
if(st[i][0]==st[i][1] && st[i][1]== st[i][2]) {
if(st[i][0]=='X' )
return 1;
else if(st[i][0]=='O')
return 2;
}
for(int i = 0 ; i < 3 ; i ++ )
if(st[0][i]==st[1][i] && st[1][i]== st[2][i])
{
if(st[0][i]=='X' )
return 1;
else if(st[0][i]=='O')
return 2;
}
if(st[0][0]==st[1][1] && st[1][1] == st[2][2])
{
if(st[0][0]=='X' )
return 1;
else if(st[0][0]=='O')
return 2;
}
if(st[2][0]==st[1][1] && st[1][1] == st[0][2])
{
if(st[2][0]=='X' )
return 1;
else if(st[2][0]=='O')
return 2;
}
boolean ends = true;
for(int i = 0 ; i < 3 ; i ++ )
for(int j = 0; j < 3; j ++ )
if(st[i][j]=='$') {
ends = false;
break;
}
if(ends)
return 4;
return 3;
}
public static void shows() {
for(int i = 0; i < 3; i ++ )
for(int j = 0; j < 3 ; j ++ ) {
System.out.print(st[i][j]);
if(j==2)
System.out.println();
}
}
}
public class Battle {
public static void main(String [] args) {
Random computer = new Random();
Scanner ran1= new Scanner(System.in);
CheckerBoard player = new CheckerBoard();
CheckerBoard machine = new CheckerBoard();
System.out.println("$表示尚未放棋子的位置");
System.out.println("X是玩家的棋子");
System.out.println("O是电脑的棋子");
while(true) {
CheckerBoard.shows();
System.out.println("请输入x 坐标");
int x = ran1.nextInt()-1;
System.out.println("请输入y 坐标");
int y = ran1.nextInt()-1;
int x1 = computer.nextInt(3);
int y1 = computer.nextInt(3);
while(player.dos(x,y,'X')) {
System.out.println("输入的位置错误");
CheckerBoard.shows();
System.out.println("请输入x 坐标");
x = ran1.nextInt()-1;
System.out.println("请输入y 坐标");
y = ran1.nextInt()-1;
}
while(machine.dos(x1,y1,'O')) {
x1 = computer.nextInt(3);
y1 = computer.nextInt(3);
}
int t = player.judge();
if(t==1){
System.out.println("你赢了");
CheckerBoard.shows();
break;
}
else if(t==2){
System.out.println("你输了");
CheckerBoard.shows();
break;
}
else if(t==3){
System.out.println("游戏继续");
}
else {
System.out.println("平局");
CheckerBoard.shows();
break;
}
}
ran1.close();
}
}