Java语言发展史

课程大纲:

  1. Java语言发展史;

    1、sun公司1995年推出,2009年Oracle公司收购sun;

  2. 下载;

    1、到Oracle官网下载

Java体系与特点

课程大纲:

  1. Java体系结构

1、JavaSE:
标准版:桌面开发和低端商务应用解决方式

2、JavaEE:企业版:以企业环境开发应用程序解决方式

3、JavaME:微型版:致力于消费产品和嵌入式开发

SE是EE和ME学习的基础。

  1. Java能够做什么

  1. 开发桌面应用程序,银行软件和结账软件,面向web的应用程序

  2. 门户站点(中国移动),阿里巴巴,电子商务站点

  3. 金融。电信,电力等各行各业的解决方式

  1. Java语言特点

  1. 纯面向对象的编程语言

  2. 跨平台

  3. 具有较高的安全性:自己主动回收(GC)。强制类型检查,取消指针。

Java跨平台原理

课程大纲:

  1. Java快平台原理

Java源码(.java)→(编译)字节码文件(.class)→(运行)java虚拟机(Windows平台、Mac平台和Linux平台).

  1. Java虚拟机

  1. JVM可理解为能够运行字节码文件的虚拟计算机系统

  2. 它有一个解释器组件能够实现字节码文件和操作系统之间的通讯

  3. 对于不同的执行平台有着不同的JVM

  4. JVM屏蔽了底层执行平台的区别,实现了一次编译所赐执行

  1. 垃圾回收器(GC)

  1. 不再使用的内存空间应当进行垃圾回收已释放内存空间,C++须要程序猿自己手动回收没用的内存空间,Java消除了该弊端,

  2. JVM(提供了一种线程跟踪存储空间的分配情况)在空暇时检查和释放那些能够释放的内存空间

  3. GC在Java程序执行过程中自己主动启动,程序猿无法控制和干预

JDK的安装

课程大纲:

  1. JDK安装

  1. jdk:Java开发工具集,

  2. jre:Java执行环境

  1. JDK文件夹结构

  1. bin文件夹:存放Java的编辑器、解释器等工具(可运行文件)

  2. demo文件夹:存放演示程序

  3. include文件夹:存放用于本地方法的文件

  4. jre文件夹:存放Java执行环境文件

  5. lib文件夹:存放Java的类库文件

  6. sample文件夹:存放一些范例程序

  7. src.zip文件夹:jdk提供类的源码

  8. db文件夹:存放轻量级的数据库。Derby。

环境变量的配置

课程大纲:

  1. 配置环境变量

  1. path:用于指定操作系统可运行指令的路径

  2. calsspath:Java虚拟机运行某个类时会依照classpath指定的文件夹顺序去查找这个类

  3. 我的电脑→属性→高级→环境变量

程序开发步骤

课程大纲:

  1. 对程序的理解

  1. 程序是为实现特定目标或解决特定问题而用计算机语言编写的一系列命令序列的集合

  2. 程序可看做是一些列动作的运行过程的描写叙述

  1. Java程序开发的三个步骤

  1. 编敲代码(hello.java)

  2. 编译程序(hello.class)

  3. 执行程序(JVM)

HelloWorld入门

课程大纲:

  1. 编写HelloWorld程序

  1. public calss HelloWorld

{

Public static void main(String[] args)

{

System.out.print(“Helloworld!”);

}

}

  1. 用javac命令编译程序

    1、因为配置好了path环境变量,所以直接打开命令程序(cmd),把文件夹切换到HelloWorld.java文件夹下。使用编译程序D:\...javac
    HelloWorld.java

  2. 用Java命令执行程序

    1、上一步编译形成了HelloWorld.class文件,用Java命令执行程序:D:\...java
    HelloWorld

HelloWorld程序分析

课程大纲:

  1. HelloWorld程序分析

    1、见html文档

  2. 三种凝视

    1、// :单行凝视

    2、/*…..*/:多行凝视

    3、/**…..*/ :文档凝视(使用Javadoc生成文档)

  3. 代码格式

  1. Java严格区分大写和小写

  2. Java是一种自由格式的语言

  3. 代码分为结构定义语言和功能运行语句

  4. 功能运行语句最后必须用分号结束

/**

文档凝视:仅仅是一个Java入门程序,

public:公共的,共同拥有的

class:类别,声明一个类的keyword

*/

class HelloWorld

{

//这是一个单行凝视;

/*

这是一个多行凝视;

*/

public static void main(String[] args)

{

System.out.println("HelloWorld!");

}

}

Java经常使用开发工具

课程大纲

  1. Java经常使用开发工具

  1. 编辑器:记事本、Editplus、UE、其它文本编辑器

  2. 集成开发工具(IDE):Eclipse、NetBeans、JBuilder

Java程序反编译介绍

课程大纲:

  1. 反编译工具介绍

  1. 把.class反编译成.java

  2. CavajJava Decomplier 是独立的Windows应用程序,即使没有安装Java,也能够使用。

变量

课程大纲:

  1. 什么是变量

  1. 变量是没有固定的值,是能够改变的,是系统为程序分配的一块内存单元。用来存储各种类型的数据,依据所存储的数据类型的不同。有各种不同类型的变量,变量名代表这块内存中的数据。

  1. 变量的分类

  1. 按所属类型分:基本数据类型和引用型数据类型

  2. 按被声明的位置分:

    局部变量:方法或语句块内部定义的变量

    全局变量:方法外部、类内部定义的变量

八种基本数据类型

课程大纲

  1. 计算机存储数据的基本单位

  1. 字节(Byte):计算机文件大小的基本计算单位

  2. 比特/位(bit)1B
    = 8b

  3. 在内存计算过程中,字节少的数据运算速度更快

    在磁盘存储中,字节少的数据类型也可充分存入很多其它的数据

  1. 八种基本数据类型

    1、

数据类型

keyword

占用字节

取值范围

默认值

布尔型

Boolean

1

True,false

False

字节型

byte

1

-128~127

0

短整型

Short

2

0

整型

int

4

0

长整型

long

8

0

字符型

char

2

‘\u0000’

单精度浮点型

float

4

0.0F

双精度浮

double

8

0.0D

基本数据类型的声明

课程大纲

  1. 怎样声明一个基本数据类型

    声明变量的格式:

  1. 声明变量:类名
    变量名;int i;

  2. 声明的同一时候给变量赋值:类名
    变量名=值;int a=1。

  3. 给已经声明过的变量赋值:变量名=值。i=2。

class 
BaseDataTypes

{

public static void main(String[] args)

{

boolean flag;

flag = true;

byte b = 100;

short s = 10;

long g = 1000L;

char c 
= '白';

float f = 3.14f;

double d = 3.1415926d;

//变量名的首字母小写,多个单词之间首字母大写

}

}

进制与转换

课程大纲

  1. 十进制

  1. 採用十进制可能与人有十个手指头有关

  1. 二进制

  1. 二进制逢二进一,仅仅有0和1

  2. Bit指的是0或1,是计算机存储处理信息的基本单位。

  3. Byte 字节:他表示作为一个完整的处理单位的8个二进制代码

  1. 八进制

  1. Java章八进制要以0开头。0123,

  2. 三个二进制表示一个八进制数字

  1. 十六进制

  1. 二进制表示法太冗长,所以计算机程序中非常多有用十六进制,

  2. 用abcdef表示从0~9之上的数字,

  3. Java中十六进制要以0x开头:0x23d

  4. 四个二进制位表示一个十六进制数字

  1. 补码

    1、补码看计算机组成原理课本

  2. 进制转换

    1、看看计算机组成原理课本

标示符

课程大纲

  1. Java标示符

  1. Java对包、类、方法、參数和变量等要素命名使用的字符序列成为标示符

  1. 标示符的命名规则

  1. 由字母、数字、下划线(-)和($)组成

  2. 不能以数字开头

  3. 区分大写和小写

  4. 长度无限制

  5. 不能使Java中的keyword和保留字

  6. 见名知意

  1. 演示样例

    1合法标示符:

    Vince 、xiaobai、user_name、_userName、$abc_123

    2非法标示符

    2 userName、user#Name、Hello
    xiaobai、class

基本数据类型转换

课程大纲

  1. 自己主动类型转换

  1. 容量小的类型自己主动转换为容量大的类型

  2. Byte、short、int
    →float→long→double

  3. Byte、short、int三者不会相互转换。他们在计算时转换成int类型,

  1. 强制类型转换

  1. 容量大的类型转换成容量小的数据类型时要进行强制转换,加上强制转换符,

  2. Long n= 100L;

    Int a = (int)n;

  3. 有可能造成精度减少或者数据溢出,使用时小心。

  4. Boolean类型不能转换成不论什么数据类型,

keyword

课程大纲

  1. keyword

    1、看课本总结

    2、保留字:goto、const,

  2. 演示样例

转义字符

课程大纲

  1. Java经常使用转义字符

    1、\n:换行

    2、\r:回车

    3、\t:水平制表

    4、\’:产生一个单引號

算术运算符

课程大纲

  1. 算术运算符

    1、+,—,*。/,%。

    2、++,——,

    3、++:假设是前缀先对次变量加一,在运行其它操作

    假设是后缀先运行其它操作。后对变量加一。

  2. 演示样例

  3. 作业

  1. 通过键盘输入,交换两个数据,然后输出这两个数

  2. 定义一个五位数。求各位上的数字之和

  3. 依据天数(46)计算周数和剩余天数,天数通过键盘输入

importjava.util.Scanner;

class 
CylinderBluk

{

public static void main(String[] args)

{

Scanner input = newScanner(System.in);

System.out.println("请输入圆柱体的高:");

int h = input.nextInt();

System.out.println("请输入圆柱体的底面半径:");

int r = input.nextInt();

float pi = 3.14f;

float result = pi*r*r*h;

System.out.println("圆柱体的体积是:"+result);

}

}

importjava.util.Scanner;

class 
HomeWork1

{

public static void main(String[] args)

{

Scanner input = newScanner(System.in);

System.out.println("请输入第一个数字a:");

int a = input.nextInt();

System.out.println("请输入第二个数字b:");

int b = input.nextInt();

System.out.println("您输入的第一个数字a为:"+a+"第二个数字b为:"+b);

int c = a;

a=b;

b=c;

System.out.println("交换后的第一个数字a为:"+a+"第二个数字b为:"+b);

}

}

class HomeWork2

{

public static void main(String[] args)

{

int num = 12345;

int gewei = num % 10;

int shiwei = num % 100 / 10;

int baiwei = num %1000 / 100;

int qianwei = num % 10000 / 1000;

int wanwei = num / 10000;

int result = gewei + shiwei + baiwei+ qianwei + wanwei;

System.out.println("结果是:"+result);

}

}

importjava.util.Scanner;

class Homework3

{

public static void main(String[] args)

{

Scanner input = newScanner(System.in);

System.out.println("请输入天数:");

int days =  
input.nextInt();

int weeks = days / 7;

int day = days %7;

System.out.println("您所输入天数为:"+days+",周数为:"+weeks+",剩余天数为:"+day);

}

}

赋值运算符和关系运算符

课程大纲

  1. 赋值运算符

  1. 运算顺序为从右往左赋值

  2. =,  += , 
    -=  , *= 
    ,  /=  , %=

  1. 关系运算符

  1. 关系运算符结果总是boolean类型

  2. ==。!=,<,>,<=,>=

逻辑运算符

课程大纲

  1. 逻辑运算符

  1. 逻辑运算符主要用于对boolean型结果的表达式进行运算,记过总司boolean型

运算符

描写叙述

演示样例

结果

&

|

^

异或

&&

短路与

||

短路或

  1. 注意短路与和与的差别

    &&:前面为非的话。后面不运算,

    &:前面为非的话,后面也要进行运算。

位运算符与移位运算符

课程大纲:

  1. 位运算符

  1. 位运算符对两个操作数中的每一个二进制位都要进行运算

  2. 按位取反:~

    按位与: &

    按位或:|

    按位异或:^

  1. 移位运算符

  1. 左移:“a<<b”:将二进制形式的a逐位左移b位,最定位空出的b位补0,。

  2. 带符号右移:”a>>b”:做高位空出来的b位补原来的符号位

  3. 不带符号右移:”a>>b”:最高位空出来的b位补0.

三目运算符与优先级

课程大纲:

  1. 三木目运算符

  1. X?Y:Z :X位boolean类型的表达式。先计算X的值,若为true,整个表达式的值为Y的值,否则为Z的值。

  1. 运算符的优先级

    1、跟平时非常相像,加括号的优先级最高。

If else条件语句

课程大纲:

  1. Ifelse条件语句

  1. ifelse 条件是依据条件推断之后在做处理

    if(条件语句){。。。

    。。

    }

    if(条件语句){。。。。。} 
    else{。。。。。}

    if(条件语句){。。。。。


    else if(条件语句){。。

    。。

    }

    if(条件语句){…} else if(条件语句){…}
    else {…}

Swith条件条件语句

课程大纲

  1. Swith条件语句的语法

    1语法:

    Switch(表达式)

    Case 取值1:语句块1。break;

    Case 取值2:语句块2。break。

    Case 取值3:语句块3。break。

    Case 取值n:语句块n;break;

    Default :语句块n+1;break;

  2. Swith条件语句的规则

  1. 表达式的返回类型必须是下面类型之中的一个:

    Int 、byte、boolean、short、String

  2. case子句中的取值必须是常量。且全部的case子句中的值必须是不同的

  3. default语句时可选择的

  4. break语句用来运行完一个case子句时跳出整个语句块,假设没有写语句块。则往下运行下去,

  5. case后面的运行体可写{}。也可不写。

  1. 条件语句作业

  1. 要求用户输入两个数a和b。假设a能被b整除或者a+b大于1000。则输出a,否则输出b。

  2. 使用if 
    else设计自己一天的生活。

  3. 输入一个月。推断这个月是奇数还是偶数

  4. 输入一个天数,使用swtich推断该月天数并输出

    import java.util.Scanner;

    /**

    要求用户输入两个数a和b。假设a能被b整除或者a+b大于1000,则输出a,否则输出b。

    */

    class HomeWork1

    {

    publicstatic void main(String[] args)

    {

    Scannerinput = new Scanner(System.in);

    System.out.println("请输入第一个数a:");

    inta = input.nextInt();

    System.out.println("请输入第二个数b:");

    intb = input.nextInt();

    intsum = a + b;

    intdiv = a % b;

    if(div==0||sum>1000)

    {

    System.out.println(a);

    }

    else

    {

    System.out.println(b);

    }

    }

    }

    import java.util.Scanner;

    /**

    输入一个天数,使用swtich推断该月天数并输出

    */

    class HomeWork4

    {

    publicstatic void main(String[] args)

    {

    Scannerinput = new Scanner(System.in);

    System.out.println("请输入月份:");

    intresult 
    = input.nextInt();

    switch(result)

    {

    case1:

    System.out.println("该月份有31天");

    break;

    case2:

    System.out.println("该月份有28天");

    break;

    case3:

    System.out.println("该月份有31天");

    break;

    case4:

    System.out.println("该月份有30天");

    break;

    case5:

    System.out.println("该月份有31天");

    break;

    case6:

    System.out.println("该月份有30天");

    break;

    case7:

    System.out.println("该月份有31天");

    break;

    case8:

    System.out.println("该月份有31天");

    break;

    case9:

    System.out.println("该月份有30天");

    break;

    default:

    System.out.println("输入有误。");

    break;

    }

    }

}

While循环语句

课程大纲:

  1. while循环语句语法

  1. while(循环条件)

{

//语句块

}

  1. 符合条件。循环继续运行。否则跳出循环。

  2. 特点:先推断后运行。

  1. while循环语句演示样例

/**

while 循环语句

*/

class Test

{

public static void main(String[] args)

{

int count = 100;

int i = 0;

while(i<count)

{

System.out.println("我爱你!

");

i++;

}

}

}

Do while
循环语句、

课程大纲:

  1. do while 循环语句语法

  1. do

{

循环操作

}while(循环条件)

2、特点:先运行一边循环操作。符合条件,循环继续运行,否则跳出循环。

先运行。后推断。

  1. 演示样例

importjava.util.Scanner;

/**

do while 循环測试

*/

class 
Test

{

public static void main(String[] args)

{

Scanner input = new Scanner(System.in);

int value = 1;

do

{

System.out.println("唱的怎么样?好:1/不好:0");

value = input.nextInt();

}

while (value !=1);

System.out.println("很好。再接再厉!");

}

}

For循环语句

课程大纲:

  1. for循环语法

    for(初始化參数;推断条件。更新循环变量)

    {

    循环体;

    }

  2. for循环演示样例

    见code目录

  3. continue语句的使用

    跳出continue以下的语句,进入下一次循环,

  4. break语句的使用

    跳出当前近期的循环。

/**

for循环

*/

class Test

{

public static void main(String[] args)

{

int score  = 0;

for(int i=0;i<100;i++)

{

if(i%10==0)

{

System.out.println("第"+i+"天,哪个啥!");

continue;

}

System.out.println("第"+i+"天,吃饭,睡觉,学Java");

score+=2;

if(score>=100)

{

break;

}

}

System.out.println("score="+score);

}

}

多重循环语句

课程大纲:

  1. 多重循环

  1. 程序设计大赛,三个班级是个学生參赛。计算出每一个班级參赛学生的成绩;

  2. 用*打印直角三角形的图案;

  1. 循环语句作业

  1. 打印输出0~200之间能被7整除,但不能被4整除的全部整数,

  2. Java阶乘求和:1。+2!

    +3!+++10!

  3. 打印九九乘法表

  4. 用“*”打印等腰三角形

importjava.util.Scanner;

/**

程序设计大赛。三个班级是个学生參赛,计算出每一个班级參赛学生的成绩;

*/

class 
Demo1

{

public static void main(String[] args)

{

Scanner input = new Scanner(System.in);

//外层循环控制班级;

for(int i = 1;i<=3;i++)

{

//  内层班级控制学生人数;

int sum = 0;

for(int j = 1;j<=4;j++)

{

System.out.println("请输入第"+i+"个班级第"+j+"个学生的成绩");

int score = input.nextInt();

sum+=score;

}

int avg = sum/4;

System.out.println("第"+i+"个班级的平均分是"+sum);

}

}

}

/**

用*打印直角三角形的图案

*/

class Demo2

{

public static void main(String[] args)

{

//外层控制行数

for(int i = 0;i<5; i++)

{ //控制输出空格

for(int j =i;j< 4;j++)

{

System.out.print(" ");

}

//控制输出*

for(int j =0;j <=i;j++)

{

System.out.print("*");

}

System.out.println();

}

}

}

/**

打印输出0~200之间能被7整除,但不能被4整除的全部整数。

*/

class Homework1

{

public static void main(String[] args)

{

for(int i = 0;i<200;i++)

{

if(i%7==0&&i%4!=0)

{

System.out.println(i);

}

}

}

}

/**

Java阶乘求和:1!

+2!

+3!

+...+10!

*/

class Homework2

{

public static void main(String[] args)

{ int sum = 0;

for(int i= 1;i<=10;i++)

{

int s = 1;

for(int j = 1;j<=i;j++)

{

s*=j;

}

System.out.println(i+"的阶乘是:"+s);

sum +=s;

}

System.out.println(sum);

}

}

/**

用“*”打印等腰三角形

*/

class HomeWork4

{

public static void main(String[] args)

{

for(int i=0;i<5;i++)

{

for(int j=i;j<4;j++)

{

System.out.print(" ");

}

for(int j=0;j<=2*i;j++)

{

System.out.print("*");

}

System.out.println();

}

}

}

数组语法

课程大纲:

  1. 数组的作用

  1. 一组可以存储同样类型值的变量的集合

  2. 当我们有一组同样数据类型的变量要存储,假设此时使用单个变量名来存储会比較繁琐和复杂。不利于维护。

  1. 数组的语法

1、数组的声明:

声明一:int[] x;

声明二:int [] x = new int [3];

声明三:int [] x = new int[]{3,4,5};

Int [] x = {3,4,5};

2、求数组的长度:x.length;

class ArrayDemo

{

public static void main(String[] args)

{

int[] x;

x = new int[3];//第一种方式

x[0] = 1;

x[1] = 2;

x[2] = 3;

int []y = new int[]{1,2,3};//另外一种方式

int []z = {1,2,3};//第三种方式

String[] names = new String []{"萌萌","梦梦","欢欢"};

//String[]names = {"萌萌","梦梦","欢欢"};

System.out.println(names.length);

for(int i=0;i<names.length;i++)

{

System.out.println(names[i]);

}

}

}

数组深入

课程大纲:

  1. 使用数组要注意的问题

  1. 空指针异常

  2. 数组越界异常

  1. 数组内存结构分析

  2. 多维数组

    三个班级四个学生參加程序设计大赛。计算每一个班级的平局分;见code目录;

  3. 作业

/**

数组使用的两个问题

*/

classArrayExcptionDemo

{

public static void main(String[] args)

{

String [] names = null;

System.out.println(names[0]);//空指针异常:数组没有分配内存空间

int [] a = {1,2,3,4,5};

System.out.println(a[5]);//下标越界异常

}

}

importjava.util.Scanner;

/**

猜数游戏:从键盘中随意输入数字。推断数组中是否包括次数字

*/

class HomeWork1

{

public static void main(String[] args)

{

Scanner input = new Scanner(System.in);

System.out.println("開始————————");

System.out.println("请输入数字:");

int [] a = {10,35,67,35,56};

int value = input.nextInt();

boolean flag = false;

for(int i=0;i<a.length;i++)

{

if(a[i]==value)

{

flag=true;

}

}

if(flag)

{

System.out.println("有该数字");

}

else

{

System.out.println("没有该数字");

}

}

}

/**

使用字母打印正三角形

*/

class HomeWork2

{

public static void main(String[] args)

{

char[] c ={'A','B','C','D','E','F','G'};

//控制行数

for(int i = 0 ;i<c.length;i++)

{

//控制空格

for(int j =i;j<c.length -1;j++)

{

System.out.print("");

}

//控制字母

for(int j =0;j<=2*i;j++)

{

System.out.print(c[i]);

}

System.out.println();

}

}

}

importjava.util.Scanner;

/**

用多维数组实现输出三个班级四个学生參加程序设计大赛,

计算每一个班级的平局分;

*/

class 
ManyArrayDemo

{

public static void main(String[] args)

{

Scanner input = new Scanner(System.in);

int [][] scores = new int [3][4];

//通过键盘输入每一个学生的成绩;

for(int i = 0;i<3;i++)

{

for(int j = 0;j<4;j++)

{

System.out.println("请输入第"+(i+1)+"个班级"+(j+1)+"个学生的成绩:");

scores[i][j] = input.nextInt();

}

}

//输出每一个班级学生的平均成绩

for(int i= 0;i<3;i++)

{ int sum = 0;

//System.out.println("第"+(i+1)+"个班级的平均成绩为:");

for(int j=0;j<4;j++)

{

sum += scores[i][j];

}

System.out.println("第"+(i+1)+"个班级的平均分为:"+(sum/4));

}

}

}

求最大值和最小值算法

课程大纲:

一、求最大值和最小值算法

  1. 在一个数列中找出最大值和最小值

    遍历数组

/**

求一组数种的最大值和最小值

*/

class MaxMinDemo

{

public static void main(String[] args)

{

int [] num ={4,6,9,46,28,2,90};

int max = num[0];

int min = num[0];

for(int i=0;i<num.length;i++)

{

if(num[i]>num[0])

{

max = num[i];

}

if(num[i]<num[0])

{

min = num[i];

}

}

System.out.println("最大值为:"+max);

System.out.println("最小值为:"+min);

}

}

冒泡排序算法

课程大纲:

  1. 冒泡排序算法实现原理

    1、相邻的元素两两比較,前者比后者大的交换位置,否则不交换,

  2. 冒泡排序算法实现

    见code目录

  1. 定义一个数组:

    Int []  hot = {705,356,378,596,264};

  2. 循环实现排序:

    for(int i= 0;i<hot.length-1;i++)

    {

    For(int j=0;j<hot.length-1-i;j++)

    {

    //推断是否要交换位置;

    }

    }

/**

冒泡排序的实现

*/

class BubbleSort

{

public static void main(String[] args)

{

int[] num = {159,345,654,234,890,687};

int temp;

//控制比較的轮数

for(int i = 0;i<num.length-1;i++)

{

//控制每轮比較的次数

for(int j=0;j<num.length-1-i;j++)

{

//推断条件,交换位置

if(num[j]>num[j+1])

{

temp=num[j];

num[j]=num[j+1];

num[j+1]=temp;

}

}

}

for(int i=0;i<num.length;i++)

{

System.out.println(num[i]+" ");

}

}

}

应用案例之模拟双色球彩票

课程大纲:

  1. 双色球彩票玩法

    1、

  2. 双色球彩票需求分析

  1. 怎样产生篮球和红球

  2. 怎样接受用户选号

  3. 怎样验证是否中奖

  4. 发布本期中奖号码

  1. 代码实现

importjava.util.Random;

importjava.util.Scanner;

/**

模拟双色球彩票程序

实现步骤:

1、系统生成一个篮球和6个红球并储存

2、接受用户选号

3、验证是否中奖

4、发布中奖号码

*/

class DoubleBall

{

public static void main(String[] args)

{

int sysBlueBallNum;//系统生成的篮球号

int [] sysRedBallNum = new int [6];//系统生成的红球号

int userBlueBallNum;//用户选择的篮球号

int [] userRedBallNum = new int [6];//用户选择的红球号

int blueBall = 0;//推断蓝色球是否正确

int redBallCount = 0;//推断红色球正确的个数

Random r = new Random();//创建生成随机数的工具

Scanner input = newScanner(System.in);//接受用户从键盘输入

int[] redNum ={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};

sysBlueBallNum = r.nextInt(16) + 1;//生成系统的篮球号

//随机生成系统红色球

for(int i =0;i<sysRedBallNum.length;i++)

{

while(true)

{

int index = r.nextInt(33);

if(redNum[index]!=0)

{

sysRedBallNum[i] = redNum[index];

redNum[index] = 0;

break;

}

}

}

System.out.println("双色球选号開始:——————李会芳:——————————祝你好运!

GOOD LUCK TO YOU");

System.out.println("请选择蓝色球的号码(16选1):");

userBlueBallNum = input.nextInt();//用户选择蓝色球

System.out.println("请选择红色球的号码(33选6):");

//用户选择红色球

for(int i = 0;i<userRedBallNum.length;i++)

{

userRedBallNum[i] = input.nextInt(33) + 1;

}

//验证蓝色球正确的个数

if(sysBlueBallNum==userBlueBallNum)

{

blueBall = 1;

}

//验证红色球正确的个数

for(int i =0;i<userRedBallNum.length;i++)

{

for(int j = 0;j<sysRedBallNum.length;j++)

{

if(userRedBallNum[i]==sysRedBallNum[j])

{

redBallCount++;

break;

}

}

}

//验证是否中奖

if(blueBall==1 &&redBallCount==6)

{

System.out.println("恭喜您,中了一等奖:500万。");

}

else if(redBallCount==6)

{

System.out.println("恭喜您,中了二等奖!100万。");

}

else if(blueBall==1 &&redBallCount==5)

{

System.out.println("恭喜您。中了三等奖!3000元RMB。");

}

else if((blueBall==1 &&redBallCount==4  )||redBallCount==5)

{

System.out.println("恭喜您,中了四等奖!

200元RMB。");

}

else if((blueBall==1 &&redBallCount==3  )||redBallCount==4)

{

System.out.println("恭喜您。中了五等奖!

10元RMB!

");

}

else if(blueBall==1)

{

System.out.println("恭喜您。中了六等奖!5元RMB!

");

}

else

{

System.out.println("革命尚未成功,同志们仍需努力!");

}

//发布本期的中奖号码:(使用冒泡排序)

int temp;

for(int i =0;i<sysRedBallNum.length-1;i++)

{

for(int j = 0;j<sysRedBallNum.length-1-i;j++)

{

if(sysRedBallNum[j]>sysRedBallNum[j+1])

{

temp = sysRedBallNum[j];

sysRedBallNum[j] = sysRedBallNum[j+1];

sysRedBallNum[j+1] = temp ;

}

}

}

//输出中奖的号码

System.out.println("本期的中奖号码为:—————————————————");

System.out.println("蓝色球:");

System.out.println(sysBlueBallNum);

//System.out.println();

System.out.println("红球:");

for(inti=0;i<sysRedBallNum.length;i++)

{

System.out.print(sysRedBallNum[i]+"");

}

}

}

java基本的语法的更多相关文章

  1. Java语言基本语法

    Java语言基本语法 一.标识符和关键字 标识符 在java语言中,用来标志类名.对象名.变量名.方法名.类型名.数组名.包名的有效字符序列,称为“标识符”: 标识符由字母.数字.下划线.美元符号组成 ...

  2. Pascal、VB、C#、Java四种语法对照表

    因为工作原因,自学会了vb后陆续接触了其它语言,在工作中经常需要与各家使用不同语言公司的开发人员做程序对接,初期特别需要一个各种语法的对照比,翻看了网络上已有高人做了整理,自己在他基础上也整理了一下, ...

  3. Java正则表达式的语法与示例

    Java正则表达式的语法与示例 java 正则表达式 正则表达式语法 java正则表达式语法 java正则表达式 概要: Java正则表达式的语法与示例 | |目录 1匹配验证-验证Email是否正确 ...

  4. Java, C#, Swift语法对比速查表

    原文:Java, C#, Swift语法对比速查表   Java 8 C# 6 Swift 变量 类型 变量名; 类型 变量名; var 变量名 : 类型; 变量(类型推断) N/A var 变量名= ...

  5. Java初认识--Java中的语法结构

    Java中的语法结构(程序流程控制) Java的语法结构有四种: 1.顺序结构. 顺序结构很简单,就是按顺序执行,输出就可以了. 2.判断结构. 判断结构的一个代表性的语句是if:if语句有三种格式体 ...

  6. Java 中的语法糖

    百度百科对语法糖的定义 语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这 ...

  7. (转)Java正则表达式的语法与示例

    转自:http://www.cnblogs.com/lzq198754/p/5780340.html 概要: Java正则表达式的语法与示例 | |目录 1匹配验证-验证Email是否正确 2在字符串 ...

  8. Java高阶语法---transient

    背景:听说transient Java高阶语法是挺进BAT必经之路. transient: Java中transient 关键字的作用,简单的说就是让某些被修饰的成员属性变量不被序列化. 这又扯到了序 ...

  9. Java高阶语法---static

    背景:听说static Java高阶语法是挺进BAT必经之路. static: 静态static,很多时候会令我望文生义,但是get到了static最重要的一点,其他的理解都还ok. static最重 ...

  10. 二、JAVA基础、语法

    第二节:JAVA基础.语法 1.修饰符.变量:    Java中主要有如下几种类型的变量    局部变量                                                 ...

随机推荐

  1. Android子线程创建Handler方法

    如果我们想在子线程上创建Handler,通过直接new的出来是会报异常的比如: new Thread(new Runnable() { public void run() { Handler hand ...

  2. Vim 删除不包含指定字符串的行及统计匹配个数

    Vim 删除不包含指定字符串的行及统计匹配个数 转载▼     Help :g/pattern/d 是找到pattern, 删之 :v/pattern/d 是找到非pattern, 删之 :%s/xx ...

  3. POJ 3273 二分答案

    思路:二分答案经典题吧....注意边界就OK了 //By SiriusRen #include <cstdio> #include <algorithm> using name ...

  4. java9新特性-21-java的动态编译器

    1. 官方Feature 243: Java-Level JVM Compiler Interface 295: Ahead-of-Time Compilation 2. 产生背景 Oracle 一直 ...

  5. 使用goroutine+channel和java多线程+queue队列的方式开发各有什么优缺点?

    我感觉很多项目使用java或者c的多线程库+线程安全的queue数据结构基本上可以实现goroutine+channel开发能达到的需求,所以请问一下为什么说golang更适合并发服务端的开发呢?使用 ...

  6. codeforces 400 C Inna and Huge Candy Matrix【模拟】

    题意:给出一个矩形的三种操作,顺时针旋转,逆时针旋转,对称,给出原始坐标,再给出操作数,问最后得到的坐标 画一下模拟一下操作就可以找到规律了 #include<iostream> #inc ...

  7. caffe(1) 网络结构层参数详解

    prototxt文件是caffe的配置文件,用于保存CNN的网络结构和配置信息.prototxt文件有三种,分别是deploy.prototxt,train_val.prototxt和solver.p ...

  8. 守护、互斥锁、IPC和生产者消费者模型

    守护进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are ...

  9. 洛谷 P2015 二叉苹果树 && caioj1107 树形动态规划(TreeDP)2:二叉苹果树

    这道题一开始是按照caioj上面的方法写的 (1)存储二叉树用结构体,记录左儿子和右儿子 (2)把边上的权值转化到点上,离根远的点上 (3)用记忆化搜索,枚举左右节点分别有多少个点,去递归 这种写法有 ...

  10. TCP 三次握手,四次挥手

    TCP 三次握手,四次挥手 1. TCP 三次握手 建立连接前,客户端和服务端需要通过握手来确认对方: 客户端发送 syn(同步序列编号) 请求,进入 syn_send 状态,等待确认 服务端接收并确 ...