要求:使用字符用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:
1、查询余额:初始余额为10000元
2、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
3、ATM存款:不能出现负存款。
4、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
(卡号密码余额放到文件中)
*/
public class Test {
private static int account
private static int password
private static int money
private static boolean isLogin
static{
account = 123456
password = 123456
money = 10000
isLogin = false
}
//存款
public void cun(int cunKuan){
if(cunKuan>=0){
this.money += cunKuan
}else{
System.out.println("存款不能为负!")
}
}
//取款
public void qu(int quKuan){
if(this.money - quKuan < 0){
System.out.println("余额不足!")
return
}
if(isValid(quKuan)){
this.money -= quKuan
}else{
System.out.println("取款不能为负,且应为100的倍数!")
}
}
//判断是否为有效的金额
private boolean isValid(int money){
if(money >= 0 && money % 100 == 0){
return true
}
return false
}
//登陆
public void login(){
System.out.println("请输入账号和密码【格式为:账号/密码】")
String login = new Scanner(System.in).next()
if(login.equalsIgnoreCase("123456/123456")){
this.isLogin = true
}else{
System.out.println("账号或者密码错误,请重新输入!")
login()
}
}
//主菜单
public void show(){
System.out.println("[1]存款")
System.out.println("[2]取款")
System.out.println("[3]退出")
System.out.println("请输入:")
int key = new Scanner(System.in).nextInt()
switch (key) {
case 1:
cun(new Scanner(System.in).nextInt())
break
case 2:
qu(new Scanner(System.in).nextInt())
break
case 3:
System.exit(0)
default:
break
}
}
public static void main(String[] args) {
Test t = new Test()
t.login()
if(t.isLogin){
for(){
t.show()
System.out.println("您当前的余额为:" + t.money)
}
}
}
}
import java.util.*public class ATM {
static int people=123456
static int mima=123456
static int yue=10000
static Scanner in=null
public ATM(int people,int mima){
this.mima=mima
}
public static void main(String[] args) {
chongxindenglu()
int count=1
while(count!=0){
System.out.println("1、查询余额")
System.out.println("2、取款")
System.out.println("3、存款")
System.out.println("4、修改密码")
System.out.println("5、重新登录")
count=in.nextInt()
switch(count){
case 1: System.out.println(10000)System.out.println()break
case 2: quKuan()break
case 3: cunKuan()break
case 4: xiugai()break
case 5: chongxindenglu()
}
}
}
public static void quKuan(){
System.out.println("请输入取款金额:")
int qukuanjine=in.nextInt()
if(qukuanjine>5000){
System.out.println("取款金额不能大于5000"+"\n")
}else{
if(qukuanjine%100!=0){
System.out.println("取款金额必须为100的整数倍"+"\n")
}else{
yue=yue-qukuanjine
System.out.println("您取出了"+qukuanjine+"元,您现在的余额为:"+yue+"元"+"\n")
}
}
}
public static void cunKuan(){
System.out.println("请输入存款金额")
int cunkuanjine=in.nextInt()
if(cunkuanjine<0){
System.out.println("存款金额不能小于0")
}else{
yue=yue+cunkuanjine
System.out.println("您已成功存入:"+cunkuanjine+"元,您现在总余额为:"+yue+"元"+"\n")
}
}
public static void xiugai(){
System.out.println("请输入您的密码:")
int mima1=in.nextInt()
if(mima1==mima){
System.out.println("请输入新密码:")
mima=in.nextInt()
System.out.println("您的密码已修改为:"+mima+"\n")
}else{
System.out.println("密码输入错误:"+"\n")
}
}
public static void chongxindenglu(){
in=new Scanner(System.in)
System.out.println("请输入登录帐号:")
int denglupeople=in.nextInt()
System.out.println("请输入登录密码:")
int denglumima=in.nextInt()
if(denglupeople==people &&denglumima==mima)
System.out.println("帐号登录成功"+"\n")
else
System.out.println("密码输入错误,登录失败"+"\n")
}
}
先构建一个客户端,再构建一个服务器端,其实做一个简单的界面,建立一个数据库,调用SQl 语句,,实现单机,模拟多线程的就可以了,服务器部分不做也可以模拟出来。。PS:这不会是程序专题训练一吧。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)