我这个人吧,就没长性,一会喜欢喜欢这个,一会儿喜欢喜欢那个,最近学了Java,主要精力又放到Java上了,等考完了试就不主要看Java了,还是喜欢C++,毕竟Java的老祖宗也是C语言嘛。
老师留得作业,写一个银行账户,因为那会儿没学什么图形编程呢,所以就胡诌了这么一个黑框框的程序也算有启发!
银行账户估计不会这么弱智,模拟罢了,下面是源码:
import java.io.*;
class AcountInformationU
{
String WeakPassword[]=
{
"password","123","1234","12345","123456","1234567","12345678",
"Qwerty","qwerty","abc123","Monkey","Letmein","trustno1","Dragon","Baseball",
"111111","Iloveyou","Master","Sunshine","Ashley","Bailey","passw0rd","Shadow",
"123123","654321","Superman","Qazwsx","qazwsx","Michael","football"
};
String acountname;
String password;
String pword;
String cmd;
boolean state;
boolean astate;
double money;
double smoney;
double tmoney;
void AcountInformationU()
{
double money=0;
state=false;
astate=false;
acountname="";
password="";
}
int check(String acname)
{
if(acname.compareTo(acountname)==0)
return 1;
else if(acname.compareTo("000000")==0)
return 2;
else return 3;
}
void cmd()
{
while(true)
{
if(!astate)break;
try
{
BufferedReader in=new BufferedReader(
new InputStreamReader(System.in));
System.out.println("");
System.out.println("*********************");
System.out.println("您的位置->银行根目录->"+acountname+"账户");
if(state)System.out.println("您的状态->已经登录");
if(!state)System.out.println("您的状态->还未登录");
System.out.println("*********************");
System.out.print("Bank Root:\\"+acountname+">");
cmd=in.readLine();
}catch(IOException e){}
if(cmd.compareTo("help")==0)
{
System.out.println("");
System.out.println("help..................帮 助");
System.out.println("");
System.out.println("未登录:");
System.out.println("exit..................退 出");
System.out.println("login.................登 录");
System.out.println("");
System.out.println("已登录:");
System.out.println("setpassword...........修改密码");
System.out.println("save..................存 款");
System.out.println("take..................取 款");
System.out.println("display...............显示余额");
System.out.println("delete................删除账户");
System.out.println("logout................登 出");
System.out.println("");
}
else if((cmd.compareTo("exit")==0)&&(state))System.out.println("还没有登出!");
else if((cmd.compareTo("exit")==0)&&(!state))break;
else if((cmd.compareTo("login")==0)&&(!state))login();
else if(!state&&astate)System.out.println("您还没有登录!");
else if((cmd.compareTo("logout")==0)&&(state))
{
state=false;
System.out.println("您已经安全退出账户!");
}
else if((cmd.compareTo("setpassword")==0)&&state)createacount("");
else if((cmd.compareTo("save")==0)&&state&&(acountname.compareTo("administrator")!=0))save();
else if((cmd.compareTo("take")==0)&&state&&(acountname.compareTo("administrator")!=0))take();
else if((cmd.compareTo("display")==0)&&state)display();
else if((cmd.compareTo("delete")==0)&&state&&(acountname.compareTo("administrator")!=0))delete();
else System.out.println("没有此条命令,请重新输入!");
}
}
void createacount(String ana)
{
int i_0;
if(!(ana.compareTo("")==0))
System.out.println("您正在创建一个账户");
pwo:
while(true)
{
try
{
BufferedReader in=new BufferedReader(
new InputStreamReader(System.in));
if(!(ana.compareTo("")==0))
acountname=ana;
pwoo:
while(true)
{
String temps;
System.out.println("");
System.out.println("您的账户名是:"+acountname);
System.out.print("请您设置密码:");
password=in.readLine();
if(password.compareTo("exit")==0)
{
System.out.println("密码不能设置成\"exit\",请重新设置!");
continue;
}
if(password.compareTo("")==0)
{
System.out.print("您确定不设置密码<Y,N>?");
temps=in.readLine();
if((temps.compareTo("Y")==0)||(temps.compareTo("y")==0))break pwo;
else if((temps.compareTo("N")==0)||(temps.compareTo("n")==0))continue pwoo;
}
for(i_0=0;i_0<WeakPassword.length;i_0++)
if((password.compareTo(WeakPassword[i_0])==0)||(password.compareTo(acountname)==0))
{
System.out.print("您设置的密码是一个弱密码,是否要设置成这样的密码<Y,N>?");
temps=in.readLine();
if((temps.compareTo("Y")==0)||(temps.compareTo("y")==0))break pwo;
else if((temps.compareTo("N")==0)||(temps.compareTo("n")==0))continue pwoo;
else
{
System.out.println("输入错误,请重新设置密码!");
continue pwoo;
}
}
break pwo;
}
}catch(IOException e){}
}
astate=true;
if(!(ana.compareTo("")==0))
System.out.println("账户已经成功创立!");
if(ana.compareTo("")==0)
{
System.out.println("密码重置成功!");
state=false;
System.out.println("您已经安全退出账户!");
}
login();
}
void login()
{
boolean blockpassword;
blockpassword=true;
if(password.compareTo("")==0)
{
System.out.println("您没有设置密码,所以已经自动登录!");
System.out.println("如果您要重置密码,请输入\"setpassword\"命令!");
state=true;
blockpassword=false;
}
while(blockpassword)
{
try
{
BufferedReader in=new BufferedReader(
new InputStreamReader(System.in));
System.out.println("");
System.out.println("*********************");
System.out.println("您的位置->银行根目录->"+acountname+"账户");
if(state)System.out.println("您的状态->已经登录");
if(!state)System.out.println("您的状态->还未登录");
System.out.println("*********************");
System.out.println("您的账户名是:"+acountname);
System.out.print("请您输入密码:");
pword=in.readLine();
if(pword.compareTo("exit")==0)break;
}catch(IOException e){}
if(pword.compareTo(password)==0)
{
System.out.println("您已经安全登陆!");
state=true;
break;
}
else
{
System.out.println("帐号或密码不正确,请重新输入!");
}
}
if(state)cmd();
}
void save()
{
String s;
try
{
BufferedReader in=new BufferedReader(
new InputStreamReader(System.in));
System.out.print("请输入要存入的金额:");
s=in.readLine();
smoney=Double.parseDouble(s);
}catch(IOException e){}
money=money+smoney;
display();
}
void take()
{
String s;
try
{
BufferedReader in=new BufferedReader(
new InputStreamReader(System.in));
System.out.print("请输入要存入的金额:");
s=in.readLine();
tmoney=Double.parseDouble(s);
}catch(IOException e){}
if(money-tmoney>=0)money=money-tmoney;
else System.out.println("账户余额不足,无法取出!");
display();
}
void display()
{
System.out.println("");
System.out.println("*********************");
System.out.println("您的位置->银行根目录->"+acountname+"账户");
if(state)System.out.println("您的状态->已经登录");
if(!state)System.out.println("您的状态->还未登录");
System.out.println("*********************");
System.out.println("账户名是:"+acountname);
System.out.println("余额为:"+money);
System.out.println();
}
void delete()
{
String s;
try
{
BufferedReader in=new BufferedReader(
new InputStreamReader(System.in));
System.out.println("您的位置->银行根目录->"+acountname+"账户");
if(state)System.out.println("您的状态->已经登录");
if(!state)System.out.println("您的状态->还未登录");
System.out.println("删除后您的钱将捐献给红十字会!");
System.out.print("这样的话您还是确定要删除吗<Y,N>?");
s=in.readLine();
if((s.compareTo("y")==0)||(s.compareTo("Y")==0))
{
state=false;
astate=false;
acountname="";
password="";
System.out.println("删除成功!您已经成功向红十字会捐献了"+money+"元");
double money=0;
System.out.println("");
}
else if((s.compareTo("n")==0)||(s.compareTo("N")==0))
{
System.out.println("红十字会的名声不好了啊......");
System.out.println("");
}
else
{
System.out.println("输入错误,将不会删除帐号!");
System.out.println("");
}
}catch(IOException e){}
}
}
public class AcountU
{
public static void main(String[] args)
{
int i;
int N;
int n;
N=10000;
n=N/200;
boolean tidyup;
tidyup=false;
AcountInformationU[] cao=new AcountInformationU[N];
for(i=0;i<N;i++)
{
cao[i]=new AcountInformationU();
cao[i].AcountInformationU();
}
String acname;
acname="";
cao[0].acountname="administrator";
cao[0].password="caochenxi";
cao[0].pword="";
cao[0].cmd="";
cao[0].state=false;
cao[0].astate=true;
cao[0].money=0;
cao[0].smoney=0;
cao[0].tmoney=0;
label:
while(true)
{
int i_1;
int i_2;
if(tidyup)
{
System.out.println("正在进行自动整理,请稍候...");
for(i_1=1;i_1<N;i_1++)
{
if(i_1%n==0)System.out.print(".");
for(i_2=1;i_2<N;i_2++)
{
if(cao[i_1].acountname.compareTo(cao[i_2].acountname)<0)
{
String temp_acountname;
String temp_password;
String temp_pword;
String temp_cmd;
boolean temp_state;
boolean temp_astate;
double temp_money;
double temp_smoney;
double temp_tmoney;
temp_acountname=cao[i_1].acountname;
temp_password=cao[i_1].password;
temp_pword=cao[i_1].pword;
temp_cmd=cao[i_1].cmd;
temp_state=cao[i_1].state;
temp_astate=cao[i_1].astate;
temp_money=cao[i_1].money;
temp_smoney=cao[i_1].smoney;
temp_tmoney=cao[i_1].tmoney;
cao[i_1].acountname=cao[i_2].acountname;
cao[i_1].password=cao[i_2].password;
cao[i_1].pword=cao[i_2].pword;
cao[i_1].cmd=cao[i_2].cmd;
cao[i_1].state=cao[i_2].state;
cao[i_1].astate=cao[i_2].astate;
cao[i_1].money=cao[i_2].money;
cao[i_1].smoney=cao[i_2].smoney;
cao[i_1].tmoney=cao[i_2].tmoney;
cao[i_2].acountname=temp_acountname;
cao[i_2].password=temp_password;
cao[i_2].pword=temp_pword;
cao[i_2].cmd=temp_cmd;
cao[i_2].state=temp_state;
cao[i_2].astate=temp_astate;
cao[i_2].money=temp_money;
cao[i_2].smoney=temp_smoney;
cao[i_2].tmoney=temp_tmoney;
}
}
}
System.out.println("");
System.out.println("自动整理已经完成!");
System.out.println("");
}
try
{
BufferedReader in=new BufferedReader(
new InputStreamReader(System.in));
System.out.println("欢迎使用银行系统...");
cao[0].money=0;
System.out.println("正在汇总到银行总台...");
for(i=1;i<N;i++)
{
cao[0].money+=cao[i].money;
if(i%n==0)System.out.print(".");
}
System.out.println("");
System.out.println("汇总完毕!");
System.out.println("您的位置->银行根目录");
System.out.print("Bank Root:\\>");
acname=in.readLine();
}catch(IOException e){}
if(acname.compareTo("help")==0)
{
System.out.println("");
System.out.println("直接输入账户名称即可进入账户,如果该账户名不存在,则会自动创建以您输入的账户名称为账户名的账户。");
System.out.println("帐户名不能为空/\"administrator\"/\"help\"/\"display\"/\"autotidyup\"/\"shutdown\",因为\"administrator\"是银行内部账户,其余几项是系统命令,不提供注册和使用");
System.out.println("help..................帮 助");
System.out.println("display...............显示注册账户");
System.out.println("tidyup............自动整理开关");
System.out.println("shutdown..............退 出 系 统");
System.out.println("others................创建账户(如果没有有)");
System.out.println("others................进入账户(如果有)");
System.out.println("");
continue;
}
if(acname.compareTo("")==0)
{
System.out.println("帐户名不能为空,请重新输入!");
System.out.println("");
continue;
}
if(acname.compareTo("tidyup")==0)
{
tidyup=(!tidyup);
if(tidyup)
System.out.println("自动整理已经成功开启!");
else
{
System.out.println("自动整理已经成功关闭!");
System.out.println("");
}
continue;
}
if(acname.compareTo("shutdown")==0)break;
if(acname.compareTo("display")==0)
{
int j;
j=1;
for(i=1;i<N;i++)
{
if(cao[i].astate)
{
System.out.println("本机帐户"+j+":"+cao[i].acountname);
j++;
}
}
if(j==1)System.out.println("数据库中还没有帐户信息!");
System.out.println("");
continue;
}
for(i=0;i<N;i++)
if(cao[i].astate)
if(cao[i].check(acname)==1)
{
cao[i].login();
continue label;
}
if(acname.compareTo("administrator")==0)
{
System.out.println("银行内部账户,不允许注册,请重新输入!");
System.out.println("");
continue;
}
System.out.println("没有此账户,正在连接数据库准备创建...");
for(i=0;i<N;i++)
if(!cao[i].astate)
{
cao[i].createacount(acname);
continue label;
}
System.out.println("没有足够空间,正在退出创建...");
System.out.println("");
System.out.println("对不起,数据库已满,不支持创建新用户,欢迎您的使用...");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
continue label;
}
System.out.println("感谢您的使用,欢迎再次使用!");
}
}