• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

java实现存钱取钱代码小案例

java实例 海叔叔 4年前 (2021-09-27) 49次浏览 已收录 0个评论

本文由搞代码网为大家展示了java实现存钱取钱代码小案例》的代码案例,请各位coder不吝赐教,也欢迎coder点赞收藏转发,感谢

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;
	}
}

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:java实现存钱取钱代码小案例
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址