[java]代码库
import java.io.*;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class buy_caipiao {
public static void main(String[] args) throws IOException
{
money mon=new money();
mon.pp();//显示欢迎界面
mon.save_money(1,0);//1表示用户选择存钱,0表示存钱的多少
mon.mainshow();//主菜单
}
}
class money//决定用户操作类
{
winning_number win_number=new winning_number();
opinion_win ow=new opinion_win();
public int yu_e=0, save=0,gett=0,b=1,c=0,ccc1=0,moneyshu=0;
public String zhuan="";
public void save_money(int ad,int add_money)throws IOException//存钱
{
if(ad==0)
{
yu_e+=add_money;
}
if(ad==1)
{
do{
System.out.println("\n\n\t\t##########当前是存钱界面##########\n");
win_number.ppshow();
System.out.println("存钱数目必须是10的倍数并且存钱数目不能超过10000元,不能小于1元。\n请输入金额:(输入后请按回车键)");
BufferedReader din =new BufferedReader(new InputStreamReader(System.in));
zhuan=din.readLine();
char[] zhuchar=null;
try {
zhuchar = (zhuan).toCharArray();
if(zhuchar.length==0){//这个方法是以"\n"结束分隔的,如果你直接输入回车的时候,要加判断
zhuchar=new char[1];
zhuchar[0]='1';
}
} catch (Exception e) {
}
if(zhuchar[0] == '1' && zhuchar.length == 1)
{ c=1;
show_cuowu();
continue;}
try{
save=Integer.parseInt(zhuan);
b=save%10;
if(save<=10000&&save>=10&&b==0)
{
c=0;
yu_e+=save;
System.out.println("\n存钱成功!");
show_moneyy();
}
else if(save>0&&b!=0)
{
c=1;
System.out.println("\n\n!!!!!!!!!!!!存钱数目必须是10的倍数,请检查正确后再重新输入!!!!!!!!!!!!!\n\n");
}
else
{
System.out.println("\n\n!!!!!!!!!!!!您输入的金额数目超过存钱数目范围,请检查正确后再重新输入!!!!!!!!!!!!!\n\n");
c=1;
}
}
catch (Exception e)
{
c=dddd(zhuan,0);
}
}while(c==1);
}
}
public int dddd(String zhuan,int moneyyy)throws IOException//判断用户是否输入正确
{
int q1=0;
char[] zhuann = zhuan.toCharArray();
if(zhuann[0]=='e'&&zhuann.length==1)
{
q1=2;//直接退出程序
byebye(moneyyy);
}
else if(zhuann[0]=='f'&&zhuann.length==1)
{q1=0;}//0返回用户主菜单
else if(zhuann.length==9)
{q1=3;}//0返回用户主菜单
else
{
show_cuowu();
q1=1;//1继续循环
}
return q1;
}
public void get_money()throws IOException//取钱
{
BufferedReader din =new BufferedReader(new InputStreamReader(System.in));
do{
c=0;
System.out.println("\n\n\t\t##########当前是取钱界面##########\n");
win_number.ppshow();
System.out.println("取钱数目必须是10的倍数并且取钱数目不能超过您当前的余额,取钱数目不能小于10元。\n您当前的余额是:"+yu_e+"元。\n\t请输入取款金额:(输入后请按回车键)");
String abcd=din.readLine();
char[] zhuchar=null;
try {
zhuchar = (abcd).toCharArray();
if(zhuchar.length==0){//这个方法是以"\n"结束分隔的,如果你直接输入回车的时候,要加判断
zhuchar=new char[1];
zhuchar[0]='1';
}
} catch (Exception e) {
}
if(zhuchar[0] == '1' && zhuchar.length == 1)
{ c=1;
show_cuowu();
continue;}
try{
gett=Integer.parseInt(abcd);
b=gett%10;
if(gett<=yu_e&&gett>=10&&b==0)
{
c=0;
yu_e-=gett;
System.out.println("取钱成功!\n\n");
show_moneyy();
}
else if(gett>yu_e)
{
System.out.println("\n\n!!!!!!!!!!!!您输入的金额数目超过您当前余额数目范围,请检查正确后再重新输入!!!!!!!!!!!!!\n\n");
c=1;
}
else if(gett<10)
{
System.out.println("\n\n!!!!!!!!!!!!您输入的金额数目不能小于10元。请检查正确后再重新输入!!!!!!!!!!!!!\n\n");
c=1;
}
else
{show_cuowu();
c=1;}
}
catch(Exception e)
{
c=dddd(abcd,0);
}
}while(c==1);
}
public void show_cuowu()//提示错误
{System.out.println("\n\n!!!!!!!!!!!!您输入的数据出现错误,请检查正确后再重新输入!!!!!!!!!!!!!\n\n");}
public void show_moneyy()//显示余额
{
System.out.println("\n您当前的余额是:"+yu_e+"元。\n");
}
public void byebye(int moneyyy_y)throws IOException//再见方法
{
if(this.yu_e>0||moneyyy_y>0)
{
yu_e+=moneyyy_y;
System.out.println("\t\t^_^您的余额是"+yu_e+"元,请取回!");
save_money(0,-(yu_e));
}
System.out.println("\t\t^_^谢谢您的惠顾!欢迎您的下次光临!祝您财源滚滚!^_^");
System.exit(0);
}
public void pp()throws IOException//首页欢迎界面
{
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
do
{
System.out.print(" ----------------------------欢迎来到福利彩票中心-------------------------\n\n");
System.out.print("参与彩票中奖一次花费10元,请存钱才能参与中奖活动:\n");
System.out.print("按 y 进入存钱界面,按 n 可退出中奖活动\n");
System.out.println("是否继续参与中奖活动,请输入:(输入后请按回车键)");
char[] zhuchar=null;
try {
zhuchar = (buffer.readLine()).toCharArray();
if(zhuchar.length==0){//这个方法是以"\n"结束分隔的,如果你直接输入回车的时候,要加判断
zhuchar=new char[1];
zhuchar[0]='1';
}
} catch (Exception e) {
}
if(zhuchar[0] == 'y' && zhuchar.length == 1)
ccc1 = 0;
else
if(zhuchar[0] == 'n' && zhuchar.length == 1)
ccc1 = dddd("e", 0);
else
ccc1 = dddd("o", 0);
} while(ccc1 == 1);
}
public void mainshow()throws IOException//用户主菜单
{
int q=1;
do{
System.out.println("\n\n\t\t########################################");
System.out.println("\t\t### 当前是用户主菜单界面 ###");
System.out.println("\t\t########################################");
System.out.println("\t选择您要的服务:\t1.存钱\t2.取钱\t3.买彩票\t4.查看余额\t5.退出");
System.out.println("请选择:(输入后请按回车键)");
BufferedReader buffer =new BufferedReader(new InputStreamReader(System.in));
Pattern p = null; //正则表达式
Matcher m = null; //操作的字符串
String str=buffer.readLine();
if(Pattern.compile(str).matcher("1").matches())//判断字符串变量str的值是否与"1"匹配
{
save_money(1,0);//1/0表示判断是否用户操作存钱
q=-1;
}
else if(Pattern.compile(str).matcher("2").matches()){
if(yu_e>=10)
{
get_money();
q=-1;
}
else {
System.out.println("\t\t您的余额不足!无法进行此操作!\n\n");
q=-1;
}
}
else if(Pattern.compile(str).matcher("3").matches()){
if(yu_e>=10)
{
save_money(0,-10);
save_money(0,ow.opi(yu_e));//ow.opi(yu_e)传值给y_hu_s_ru()
q=-1;
}
else {
System.out.println("\t\t您的余额不足!无法进行此操作!\n\n");
q=-1;
}
}
else if(Pattern.compile(str).matcher("4").matches()){
show_moneyy();
q=-1;
}
else if(Pattern.compile(str).matcher("5").matches()){
byebye(0);
}
else{
q=0;
show_cuowu();
}
}while(q==0||q==-1);
}
}
class winning_number//产生与显示中奖号码
{
String b="",e="";
int[] nums = new int[5];
int[] win_num()throws IOException
{
Random rnd = new Random();
for(int i=0;i<5;i++)
{
nums[i]=-1;
nums[i]=rnd.nextInt(10);//随机产生1~10之间的整数
//System.out.println("中奖号码是:"+nums[i]);//显示中奖号码
}
return nums;
}
void play_win_num()//显示中奖的号码
{
e="";
for(int i=0;i<5;i++)
{
b=Integer.toString(nums[i])+" ";
e=e+b;
}
System.out.println("本次的中奖的号码如下:\n"+e);
}
void ppshow()throws IOException
{System.out.println("\t(温馨提示: 按 e 并按回车键可退出参与这次中奖活动,按 f 并按回车键可返回用户主菜单.)\n");};
}
class y_hu_s_ru
{
int[] haoma(int yu_ee1)throws IOException
{
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
money mon = new money();
winning_number win_number=new winning_number();
int p = 0;
int d = -1,yu_e=0;;
int dd = 0,cc=0;
char q = ' ';
int c[] = new int[5];
do
{
if(p == 0)
{
System.out.println("\n\n\t\t##########当前是中奖彩票中心界面##########\n");
win_number.ppshow();
System.out.println("请输入 五 个您选中的数字从0~~9之间彩票号码(包括0和9),并且每个号码之间以空格隔开.");
}
System.out.println("请输入:(输入后请按回车键)");
String s = buffer.readLine();
char[] zhuchar=null;
try {
zhuchar = (s).toCharArray();
if(zhuchar.length==0){//这个方法是以"\n"结束分隔的,如果你直接输入回车的时候,要加判断
zhuchar=new char[1];
zhuchar[0]='1';
}
} catch (Exception e) {
}
if(zhuchar[0] == '1' && zhuchar.length == 1)
{ p=0;
mon.show_cuowu();
continue;}
String as[] = s.split(" ");
yu_e=yu_ee1;
cc=mon.dddd(s,(yu_e+10));
if(cc==1)
{p=0;
continue;}
if(cc==0)
{
p=1;
c[0]=-2;
break;
}
if(as.length == 5)//判断用户输入的是5个字符
{
for(int i = 0; i <= 4; i++)
{
try
{
d = Integer.parseInt(as[i]);//用户输入的字符串转换成Int 类型
if(d >= 0 && d < 10)
{
c[i] = d;
if(i == 4)
{p = 1;}
continue;
}
else//用户输入的数字超过0~~10之间的范围
{
mon.show_cuowu();
p = 0;
}
}
catch(Exception e)//确定用户输入的是字符串
{
p = 0;
mon.show_cuowu();
}
break;
}
}
else//用户输入的不是5个数字
{
p = 0;
mon.show_cuowu();
break;
}
} while(p == 0);
return c;
}
}
class opinion_win//计算中奖的号码
{
winning_number win_number=new winning_number();
y_hu_s_ru yhu=new y_hu_s_ru();
int j=0,return_money=0,yu_ee=0;;
int[] nums1=new int[5];
int[] d=new int[5];
int opi(int yu_e1) throws IOException{
yu_ee=yu_e1;
d=win_number.win_num();
nums1=yhu.haoma(yu_ee);
if(nums1[0]==-2)
{return_money=10;}
else
{
for(int i=1,j=0,q;i<=5;i++)
{
q=d[i-1];
for(int k=1;k<=5;k++)
{
if(q==nums1[k-1])
{
j++;//计算出买对有多少个中奖号码
nums1[k-1]=-1;q=-2;//防止再计算的已中奖号码
}
}
if(i==5)
{
win_number.play_win_num();
if(j==5)
{
System.out.println("您买中了全部号码。\n\t\t^_^恭喜你获得一等奖,中奖金额为230000000元");
return_money=230000000;
}
else if(j==4)
{
System.out.println("您买中了四个号码。\n\t\t^_^恭喜你获得二等奖,中奖金额为50000000元");
return_money=50000000;}
else if(j==3)
{
System.out.println("您买中了三个号码。\n\t\t^_^恭喜你获得三等奖,中奖金额为100000元");
return_money=100000;}
else if(j==2)
{
System.out.println("您买中了二个号码。\n\t\t^_^恭喜你获得鼓励奖,中奖金额为10000元");
return_money=10000;}
else
{System.out.println("\t\t^_^您好像没有中奖噢!谢谢您的参与,祝您下次好运!^_^");
return_money=0;}
}
}
}
return return_money;}
}