7-3-Day1

△必须要有面向对象的思想
最少做3个项目
必做1、捕鱼达人
必做2、网络编程、多线程。网络编程讲完后做网络聊天室
3、web

Myeclipse和eclipse的区别:
1、同一家公司的产品
2、大小前者是后者的3倍
3、功能几乎一样,但Myeclipse功能强大得多
4、Myeclipse是收费的、eclipse免费

三者的关系是:一层层的嵌套关系。JDK>JRE>JVM。
JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,具体的下文会详细说明。

JRE :英文名称(Java Runtime Environment),我们叫它:Java 运行时环境。它主要包含两个部分,jvm 的标准实现和 Java 的一些基本类库。它相对于 jvm 来说,多出来的是一部分的 Java 类库。

JDK :英文名称(Java Development Kit),Java 开发工具包。jdk 是整个 Java 开发的核心,它集成了 jre 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。

建包名字的规则:公司域名倒写.模块名.类名
例:百度公司的包名为com.baidu.www.day1 (day1是具体的项目名称)

快速复制一行:Ctrl+alt+ ↑/↓

虽然要学10门语言,但是只要精通一门语言就可以找工作

对象可以是万事万物,类是对象的模板
类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的具体个体
构造方法是对象的各种具体行为

构造方法是一种特殊的方法,它是一个①与类同名②没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。

创建对象:
类名 对象名 = new 类名();

快速生成代码:(右键源码)
无参构造方法:alt+shift+s 再按c 从超类中生成构造函数
有参构造方法:alt+shift+s 再按o 使用字段生成构造函数
一键返回类中所有(也可以选择)变量的值:alt+shift+s 再选择” 生成toString”

快速创建get和 set方法是什么?
快捷键:alt+shift+s+r tab移动到确定那里之后+enter
鼠标:右键→源码→生成Getter和Setter

数组在实际使用的缺点明显:因为长度是固定的,很有限,而且变化
所以改用集合

package Day1_双色球;

import java.util.Scanner;

/*
 主要学习的内容有:
1、直到用户选择退出选项后,程序才停止运行的框架
while (true){	
		Scanner sc = new Scanner(System.in);
		System.out.println{语句1};
		System.out.println{语句2};
			··· 
		int n = sc.nextInt();//输入的选项
		switch (n){
		case 1:
		case 2:
			···	
		}
}

2、对比两个数组中元素是否相等,并且记录相等元素的数量
借助中间变量temp和记录相等数量的变量redEqualCount
将第一个数组的每个元素赋给temp然后用两个循环对比,每次相等就让redEqualCount加1
for (int i = 0; i < num.length; i++) {
			int temp = num[i];
			for (int j = 0; j < num.length - 1; j++) {// j是系统生成的号码数组的下标
				if (temp == lucknum[j])
					redEqualCount++;
			}
		}
3、每行输出多个数据
		for(int i=0; i<num.length; i++) {
			for(int j=0; j<5; j++)
			System.out.print();//每行输出5个数据
		}
			System.out.println();
			

 */
class 双色球 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		int totalmoney = 0;// 下注费用
		int price = 2;// 单价
		int count = 0; // 彩票注数
		boolean isBuy = false; // 是否购买了彩票
		int num[] = null;

		while (true) {
			Scanner sc = new Scanner(System.in);
			System.out.println("**********双色球系统*********");
			System.out.println("\t1.购买彩票");
			System.out.println("\t2.开奖");
			System.out.println("\t3.退出");

			int n = sc.nextInt();
			switch (n) {
			case 1:
				System.out.println("\t购买彩票");
				System.out.println("请输入要购买的注数:");
				count = sc.nextInt();
				totalmoney = count * price;
				// 开始选号码
				// 定义num的大小
				num = new int[7];// 定义能存7个元素的数组
				for (int i = 0; i < num.length; i++) {
					int red = 0;
					int blue = 0;// 分为红球和蓝球
					if (i < num.length - 1) {// 存6个红球
						System.out.println("请输入6个红球的号码(1-33),第" + (i + 1) + "个号码为" + red);
						red = sc.nextInt();
						num[i] = red;// 将红球放入数组中
					} else {
						System.out.println("请输入1个蓝球号码(1-16):");
						blue = sc.nextInt();
						num[i] = blue;
					}
				}
				System.out.println("一共买了" + count + "注彩票,需要支付" + totalmoney + "元,所选号码为:");
				for (int i = 0; i < num.length; i++) {
					System.out.println(num[i]);
				}
				System.out.println();
				isBuy = true;// 标记为已经购买了彩票
				break;
			case 2:
				System.out.println("\t查看开奖");
				if (isBuy) {
					// 修改isbuy状态
					isBuy = false;

					// 得到系统生成的开奖号码
					int Lucknum[] = getLucknum();

					// 输出已经购买的号码
					for (int m : num) {
						System.out.println(m + "\t");
					}
					// System.out.println();
					// 输出中奖号码
					for (int m : Lucknum) {
						System.out.println(m);
					}
					// 输出中奖等级
					int result = getComparesult(num, Lucknum);

					if (result == 1) {
						System.out.println("恭喜中一等奖,共下注" + totalmoney + "元");
					} else if (result == 2) {
						System.out.println("恭喜中二等奖,共下注" + totalmoney + "元");
					} else if (result == 3) {
						System.out.println("恭喜中三等奖,共下注" + totalmoney + "元");
					} else if (result == 4) {
						System.out.println("恭喜中四等奖,共下注" + totalmoney + "元");
					} else if (result == 5) {
						System.out.println("恭喜中五等奖,共下注" + totalmoney + "元");
					} else if (result == 6) {
						System.out.println("恭喜中六等奖,共下注" + totalmoney + "元");
					} else {
						System.out.println("未中奖,感谢参与!");
					}
				} else {
					System.out.println("请先购买彩票!");
				}
				break;

			case 3:
				System.out.println("退出!");
				System.exit(0);
				break;
			// 参数n不满足任何 case,则执行 default 后的语句
			default:
				break;
			}
		}
	}

	public static int[] getLucknum() {// 系统生成7号随机号码并存入数组中
		// TODO 自动生成的方法存根
		int lucknum[] = new int[7];
		for (int i = 0; i < lucknum.length; i++) {
			if (i < lucknum.length - 1) {
				lucknum[i] = (int) (Math.random() * 33 + 1);
			} else {
				lucknum[i] = (int) (Math.random() * 16 + 1);
			}
		}
		return lucknum;
	}

	public static int getComparesult(int[] num, int[] lucknum) {// 对比系统生成与自己购买的结果是否匹配
		// TODO 自动生成的方法存根
		int redEqualCount = 0;
		int blueEqualCount = 0;
		int result = 0;

		for (int i = 0; i < num.length; i++) {
			// 我理解错了,应该是用两个相同的数组对比才能得出结果,而不是只用一个数组,所以要借助r
			int temp = num[i];
			for (int j = 0; j < num.length - 1; j++) {// j是系统生成的号码数组的下标
				if (temp == lucknum[j])
					redEqualCount++;
			}
			// 这里怎么对比蓝球?
			if (num[num.length - 1] == lucknum[num.length - 1])// length-1就是最后一个元素的下标
				blueEqualCount++;
		}
		// 得到结果
		if (redEqualCount == 6 && blueEqualCount == 1) {
			result = 1;
		} else if (redEqualCount == 6) {
			result = 2;
		} else if (redEqualCount == 5 || redEqualCount == 4 && blueEqualCount == 1) {
			result = 2;
		} else if (redEqualCount == 4 || redEqualCount == 3 && blueEqualCount == 1) {
			result = 3;
		} else if (redEqualCount == 3 || redEqualCount == 2 && blueEqualCount == 1) {
			result = 4;
		} else if (redEqualCount == 2 || redEqualCount == 1 && blueEqualCount == 1) {
			result = 5;
		} else if (blueEqualCount == 1) {
			result = 6;
		}
		return result;
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_43831615/article/details/94616843
今日推荐