一、 练习目标
1. 掌握数据类型和运算符
2. 掌握流程控制
3. 掌握数组
4. 掌握方法的定义和调用
5. 提高代码调试能力
全部讲解和练习时间控制在4小时以内
二、 项目需求
双色球投注区分为红色球号码区和蓝色球号码区,
红色球号码区由1-33共33个号码组成,蓝色球号码区由1-16共16个号码组成。
投注时选择6个红球号码和1个蓝球号码组成一注进行单式投注,每注金额2元。
一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖;
二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖;
三等奖:投注号码与当期开奖号码中的任意5个红色球号码和1个蓝色球号码相同,即中奖;
四等奖:投注号码与当期开奖号码中的任意5个红色球号码相同,或与任意4个红色球号码和1个蓝色球号码相同,即中奖;
五等奖:投注号码与当期开奖号码中的任意4个红色球号码相同,或与任意3个红色球号码和1个蓝色球号码相同,即中奖;
六等奖:投注号码与当期开奖号码中的1个蓝色球号码相同,即中奖。
三、提供的素材
关键代码截图
四、代码如下:(望指正)
import java.util.Scanner;
class Home{
public void show1(){
System.out.println("*****欢迎进入双色球彩票系统*****");
System.out.println(" 1、购买彩票");
System.out.println(" 2、查看开奖");
System.out.println(" 3、退出");
System.out.println("*************************");
System.out.print("请选择菜单:");
}
}
class Buy{
public void show2(){
System.out.println("红色号码区:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18");
System.out.println(" 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33");
System.out.println("蓝色号码区:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16");
System.out.println("*************************");
System.out.println(" 1、自选一注 ");
System.out.println(" 2、机选一注");
System.out.println("*************************");
System.out.print(" 请选择(1或2):");
}
public void input(int[] arr){ //用户输入所买彩票
System.out.println("请选择一注彩票(六个红球,一个蓝球)每注两元:");
Scanner sc = new Scanner(System.in);
for(int i=0;i<7;i++){
arr[i]=sc.nextInt();
if(arr[i]<1||arr[i]>33){
System.out.println("对不起,此数字超出范围,请重新输入此位数字。");
i--;
}
for(int o=0;o<i;o++){
if(arr[i]==arr[o]){
System.out.println("对不起,此数字重复,请重新输入此位数字。");
i--;
}
}
}
}
public void randomInput(int[] arr){ //随机选择一注彩票
arr[0]=(int)(Math.random()*7)+1;
for(int n=0;n<6;n++){
arr[n]=(int)(Math.random()*33)+1;
for(int u=0;u<n;u++){
if(arr[n]==arr[u]){
n--;
}
}
}
arr[6]=(int)(Math.random()*16)+1;
}
public void printArr(int[] arr){ //数组遍历
System.out.print("您下注的彩票为:");
for(int x=0; x<arr.length; x++){
System.out.print(arr[x]+" ");
}
System.out.println();
System.out.println("投注成功");
}
}
class LotteryQuery{
int y=0;
public void randomPrint(int[] arr0){ //随机的开奖号码
arr0[0]=(int)(Math.random()*7)+1;
for(int n=0;n<6;n++){
arr0[n]=(int)(Math.random()*33)+1;
for(int u=0;u<n;u++){
if(arr0[n]==arr0[u]){
n--;
}
}
}
arr0[6]=(int)(Math.random()*16)+1;
}
public void lottery(int[] arr0,int[] arr){ //开奖号码和所选号码的红球对比
for(int i=0; i<arr0.length-1; i++){
for(int z=0; z<arr.length-1; z++){
if(arr[z] == arr0[i]){
y+=1;
}
}
}
}
public void query(int[] arr0,int[] arr){
System.out.print("开奖号码为:");
for(int x=0; x<arr0.length; x++){
System.out.print(arr0[x]+" ");
}
System.out.println();
System.out.print("您的号码为:");
for(int x=0; x<arr.length; x++){
System.out.print(arr[x]+" ");
}
System.out.println();
if(y==6 && arr0[6]==arr[6]){ //判断获得了几等奖
System.out.println("恭喜您获得一等奖!");
}else if(y==6){
System.out.println("恭喜您获得二等奖!");
}else if(y==5 && arr0[6]==arr[6]){
System.out.println("恭喜您获得三等奖!");
}else if(y==5 || y==4 && arr0[6]==arr[6]){
System.out.println("恭喜您获得四等奖!");
}else if(y==4 || y==3 && arr0[6]==arr[6]){
System.out.println("恭喜您获得五等奖!");
}else if(arr0[6]==arr[6]){
System.out.println("恭喜您获得六等奖!");
}else{
System.out.println("很遗憾您没有中奖");
}
}
}
public void show1(){
System.out.println("*****欢迎进入双色球彩票系统*****");
System.out.println(" 1、购买彩票");
System.out.println(" 2、查看开奖");
System.out.println(" 3、退出");
System.out.println("*************************");
System.out.print("请选择菜单:");
}
}
class Buy{
public void show2(){
System.out.println("红色号码区:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18");
System.out.println(" 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33");
System.out.println("蓝色号码区:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16");
System.out.println("*************************");
System.out.println(" 1、自选一注 ");
System.out.println(" 2、机选一注");
System.out.println("*************************");
System.out.print(" 请选择(1或2):");
}
public void input(int[] arr){ //用户输入所买彩票
System.out.println("请选择一注彩票(六个红球,一个蓝球)每注两元:");
Scanner sc = new Scanner(System.in);
for(int i=0;i<7;i++){
arr[i]=sc.nextInt();
if(arr[i]<1||arr[i]>33){
System.out.println("对不起,此数字超出范围,请重新输入此位数字。");
i--;
}
for(int o=0;o<i;o++){
if(arr[i]==arr[o]){
System.out.println("对不起,此数字重复,请重新输入此位数字。");
i--;
}
}
}
}
public void randomInput(int[] arr){ //随机选择一注彩票
arr[0]=(int)(Math.random()*7)+1;
for(int n=0;n<6;n++){
arr[n]=(int)(Math.random()*33)+1;
for(int u=0;u<n;u++){
if(arr[n]==arr[u]){
n--;
}
}
}
arr[6]=(int)(Math.random()*16)+1;
}
public void printArr(int[] arr){ //数组遍历
System.out.print("您下注的彩票为:");
for(int x=0; x<arr.length; x++){
System.out.print(arr[x]+" ");
}
System.out.println();
System.out.println("投注成功");
}
}
class LotteryQuery{
int y=0;
public void randomPrint(int[] arr0){ //随机的开奖号码
arr0[0]=(int)(Math.random()*7)+1;
for(int n=0;n<6;n++){
arr0[n]=(int)(Math.random()*33)+1;
for(int u=0;u<n;u++){
if(arr0[n]==arr0[u]){
n--;
}
}
}
arr0[6]=(int)(Math.random()*16)+1;
}
public void lottery(int[] arr0,int[] arr){ //开奖号码和所选号码的红球对比
for(int i=0; i<arr0.length-1; i++){
for(int z=0; z<arr.length-1; z++){
if(arr[z] == arr0[i]){
y+=1;
}
}
}
}
public void query(int[] arr0,int[] arr){
System.out.print("开奖号码为:");
for(int x=0; x<arr0.length; x++){
System.out.print(arr0[x]+" ");
}
System.out.println();
System.out.print("您的号码为:");
for(int x=0; x<arr.length; x++){
System.out.print(arr[x]+" ");
}
System.out.println();
if(y==6 && arr0[6]==arr[6]){ //判断获得了几等奖
System.out.println("恭喜您获得一等奖!");
}else if(y==6){
System.out.println("恭喜您获得二等奖!");
}else if(y==5 && arr0[6]==arr[6]){
System.out.println("恭喜您获得三等奖!");
}else if(y==5 || y==4 && arr0[6]==arr[6]){
System.out.println("恭喜您获得四等奖!");
}else if(y==4 || y==3 && arr0[6]==arr[6]){
System.out.println("恭喜您获得五等奖!");
}else if(arr0[6]==arr[6]){
System.out.println("恭喜您获得六等奖!");
}else{
System.out.println("很遗憾您没有中奖");
}
}
}
public class ShuangSeQiu {
public static void main(String[] args){
Scanner s =new Scanner(System.in);
//int[] arr0 = new int[7]; //定义开奖数组(随机)
int[] arr0 = {1,2,3,4,5,6,7};
int[] arr = new int[7]; //定义买奖数组
for(int k=0; k<100; k++){ //主菜单循环
Home a = new Home();
a.show1();
int option = s.nextInt(); //输入菜单选项(1、2、3)
if(option == 1){ //主菜单选1 购买彩票
Buy b = new Buy();
b.show2();
Scanner sc = new Scanner(System.in);
int d=sc.nextInt();
if(d==1){
b.input(arr);
b.printArr(arr);
}else if(d==2){
b.randomInput(arr);
b.printArr(arr);
}else{
System.out.println("没有此选项,请输入正确的选项");
}
}else if(option == 2){ //主菜单选2 开奖查询
LotteryQuery c = new LotteryQuery();
//c.randomPrint(arr0);
c.lottery(arr0,arr);
c.query(arr0,arr);
}else if(option == 3){ //主菜单选3 退出主菜单循环
System.out.println("已安全退出系统,谢谢使用。");
break;
}else{
System.out.println("没有此选项,请输入正确的选项");
}
}
}
}
public static void main(String[] args){
Scanner s =new Scanner(System.in);
//int[] arr0 = new int[7]; //定义开奖数组(随机)
int[] arr0 = {1,2,3,4,5,6,7};
int[] arr = new int[7]; //定义买奖数组
for(int k=0; k<100; k++){ //主菜单循环
Home a = new Home();
a.show1();
int option = s.nextInt(); //输入菜单选项(1、2、3)
if(option == 1){ //主菜单选1 购买彩票
Buy b = new Buy();
b.show2();
Scanner sc = new Scanner(System.in);
int d=sc.nextInt();
if(d==1){
b.input(arr);
b.printArr(arr);
}else if(d==2){
b.randomInput(arr);
b.printArr(arr);
}else{
System.out.println("没有此选项,请输入正确的选项");
}
}else if(option == 2){ //主菜单选2 开奖查询
LotteryQuery c = new LotteryQuery();
//c.randomPrint(arr0);
c.lottery(arr0,arr);
c.query(arr0,arr);
}else if(option == 3){ //主菜单选3 退出主菜单循环
System.out.println("已安全退出系统,谢谢使用。");
break;
}else{
System.out.println("没有此选项,请输入正确的选项");
}
}
}
}