
程序代码:
package Service;
/**
* @ClassName: Player
* @Description: TODO(这是一个抽象类,由于参与的双方都是具有同样的方法--获得号码)
* @author Liu Denghong
* @date 2015-12-31 下午4:59:21
*
*/
public abstract class Player {
public String username;
public int num[];
public abstract void getNum();
}

程序代码:
package Service;
import java.util.Random;
/**
* @ClassName: Machine
* @Description: TODO(获取中奖号码)
* @author Liu Denghong
* @date 2015-12-31 下午5:01:56
*
*/
public class Machine extends Player {
public int[] num=new int[7];
Random rand=new Random();
public void getNum(){
System.out.println("中奖号码:");
for(int i=0;i<7;i++){
num[i]=rand.nextInt(10);
System.out.print(" "+num[i]);
}
}
}

程序代码:
/**
* @Title: Guest.java
* @Package Service
* @Description: TODO(获取客户输入号码)
* @author A18ccms A18ccms_gmail_com
* @date 2015-12-31 下午4:59:57
* @version V1.0
*/
package Service;
import java.util.Scanner;
/**
* @ClassName: Guest
* @Description: TODO(这里用一句话描述这个类的作用)
* @author Liu Denghong
* @date 2015-12-31 下午4:59:57
*
*/
public class Guest extends Player{
public int num[]=new int[7];
public void getNum(){
Scanner scan=new Scanner(System.in);
for(int i=0;i<7;i++){
num[i]=scan.nextInt();
}
for(int i=0;i<7;i++){
System.out.print(" "+num[i]);
}
// return num;
}
}

程序代码:
/**
* @Title: Compete.java
* @Package judge
* @Description: TODO(判断是否中奖)
* @author A18ccms A18ccms_gmail_com
* @date 2015-12-31 下午5:03:53
* @version V1.0
*/
package judge;
import Service.Guest;
import Service.Machine;
import Service.Player;
/**
* @ClassName: Compete
* @Description: TODO(比较时如果匹配,则note加1;否则将flag加1;但是注意flag令一个含义是新出现的连续数。最后比较。如果flag大则复制给note。
* 需要注意的是flag的清零情况)
* @author Liu Denghong
* @date 2015-12-31 下午5:03:53
*
*/
public class Compete {
public int iLuck(Guest a,Machine b){
Record rec=new Record();
for(int i=0;i<7;i++){
if(a.num[i]==b.num[i]){
if(rec.flag==0)
recNotePlus(rec);
if(rec.flag>=rec.note+1){
rec.note=rec.flag;
rec.flag=0;
}
if(rec.flag>=1)
recFlagPlus(rec);
}
else{
if(rec.flag==0)
recFlagPlus(rec);
if(rec.flag>0)
rec.flag=1;
}
}
return rec.note;
}
public void recNotePlus(Record rec){
rec.note++;
}
public void recFlagPlus(Record rec){
rec.flag++;
}
}

程序代码:
/**
* @Title: Show.java
* @Package show
* @Description: TODO(输出中奖信息)
* @author A18ccms A18ccms_gmail_com
* @date 2016-1-1 上午9:25:15
* @version V1.0
*/
package show;
/**
* @ClassName: Show
* @Description: TODO(这里用一句话描述这个类的作用)
* @author Liu Denghong
* @date 2016-1-1 上午9:25:15
*
*/
public class Show {
public void luck(int flag){
switch(flag){
case 7: System.out.println("恭喜您获得特等奖!");break;
case 6: System.out.println("恭喜您获得一等奖!");break;
case 5: System.out.println("恭喜您获得二等奖!");break;
case 4: System.out.println("恭喜您获得三等奖!");break;
case 3: System.out.println("恭喜您获得四等奖!");break;
case 2: System.out.println("恭喜您获得安慰奖!");break;
default: System.out.println("没有中奖!");break;
}
}
}

程序代码:
/**
* @Title: Record.java
* @Package judge
* @Description: TODO(这是一个数据结构)
* @author A18ccms A18ccms_gmail_com
* @date 2015-12-31 下午5:03:17
* @version V1.0
*/
package judge;
/**
* @ClassName: Record
* @Description: TODO(这里用一句话描述这个类的作用)
* @author Liu Denghong
* @date 2015-12-31 下午5:03:17
*
*/
public class Record {
int note=0;//note 记录历史连续号码
int flag=0;//flag记录连续是否隔断和新出现的号码连续数
}

程序代码:
/**
* @Title: Test.java
* @Package test
* @Description: TODO(用一句话描述该文件做什么)
* @author A18ccms A18ccms_gmail_com
* @date 2015-12-31 下午5:06:07
* @version V1.0
*/
package test;
import show.Show;
import Service.Guest;
import Service.Machine;
import /**
* @ClassName: Test
* @Description: TODO(测试类)
* @author Liu Denghong
* @date 2015-12-31 下午5:06:07
*
*/
public class Test {
public static void main(String[] args){
Compete com=new Compete();
Guest g=new Guest();
Machine m=new Machine();
m.getNum();
g.getNum();
int i=com.iLuck(g, m);
Show sh=new Show();
sh.luck(i);
// System.out.print(" "+i);
}
}
这是整个小程序的调度过程。
这个小程序仅设定了一个用户,可以在Test中加个循环接受用户输入的注数,生成n个Guest实例,并将注数和单价联系起来试试看。水平有限,仅供参考。