java实现简单的银行存款取款系统
本次代码适合初学者小白,连数据库都没有运用。一次性程序哈哈。
你得先了解java中以下基本内容。
1、 数组
2、 方法
3、 类
4、 Scanner扫描器
:
在写这段代码的过程中,我学到了以下几个知识点:
1、 类和方法的灵活应用。
2、类既然可以数组来使用!!!
3、 数据的相互传递:
当我学完java中的基本知识点之后想实现一个银行存取款系统,就简单实现:
登录,注册,退出,存款,取款转账,查询个人信息等功能。
首先写一个main方法
import java.util.Scanner; //扫描器
public class bank{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
}
}
main方法创建好之后再 创建一个geren1类,就是保存用户各类信息。
class geren1{
private String zhanghao;
private String mima;
private int zijin=0;
private String name;
private int xuhao;
private String phone;
//构造方法
public geren1(String zhanghao,String mima,String name,String phone,int xuhao){
this.zhanghao = zhanghao;
this.mima = mima;
this.name = name;
this.phone = phone;
this.xuhao = xuhao;
}
//遍历个人信息
public void print(){
System.out.println("姓名:"+this.getName()+
"\t\t\t账号:"+this.getZhanghao()+
" \n密码:"+this.getMima()+
"\t\t\t账户资金:"+this.getZijin()+
"\n练习电话:"+this.getPhone());
}
public String getPhone(){
return phone;
}
public void setPhone(String phone){
this.phone = phone;
}
public int getXuhao(){
return xuhao;
}
public void setXuhao(int xuhao){
this.xuhao = xuhao;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getZhanghao(){
return zhanghao;
}
public void setZhanghao(String zhanghao){
this.zhanghao = zhanghao;
}
public String getMima(){
return mima;
}
public void setMima(String mima){
this.mima = mima;
}
public int getZijin(){
return zijin;
}
public void setZijin(int zijin){
this.zijin = zijin;
}
}
类创建好了之后在main方法里创建一个geren1类型数组。
意思就是在geren1数组中就放geren1类。最多也就能放10个,
如果想多方几个就把10改成100或者更多就OK了。
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
geren1[] user = new geren1[10];
}
然后就输出一个登录页面,不用认真,简单输出就好!我在main方法外面创建一个xtjiemian()方法,顾名思义就是专门用来显示登录界面的。
public static void xtjiemian(Scanner sc,geren1[] user){
while (true)
{
System.out.println("===银行存取款系统===");
System.out.println();
System.out.println("1,登录\t\t2,注册\t\t3,退出");
int xuanze = sc.nextInt();
if (xuanze == 1)
{
//print(user);
denglu1(sc,user);
}else if(xuanze == 2){
zhuce(sc,user);
//print(user);
}else if(xuanze == 3){
break;
}
else{System.out.println("输入有误!");}
}
}
然后分别再写两个登录和注册判断的两个方法
public static void denglu1(Scanner sc,geren1[] user){
System.out.println("==== 登 录 =====");
System.out.println("请输入账号:");
String zh = sc.next();
System.out.println("请输入密码:");
String mm = sc.next();
for (int i = 0;i<user.length;i++){
System.out.println(user[i]);
if (user[i] != null){
geren1 gr = user[i];
System.out.println(gr.getZijin());
if (zh.equals(gr.getZhanghao()) && mm.equals(gr.getMima()))
{
System.out.println("登录成功!");
grjiemian(sc,user,gr);
return;
}
}
}
System.out.println("无此账号或密码错误!");
}
public static void zhuce(Scanner sc, geren1[] user){
System.out.println("==== 注 册 ====");
for (int i=0;i<user.length;i++)
{
if (user[i] == null)
{
System.out.println("请输入注册账号:");
//user[i][0] = sc.next();
String zhanghao = sc.next();
System.out.println("请输入注册密码:");
//user[i][1] = sc.next();
String mima = sc.next();
System.out.println("请输入您的真实姓名:");
String name = sc.next();
System.out.println("请输入银行卡号:(手机号即可)");
//zijin[i][2] = sc.nextInt();
String phone = sc.next();
geren1 gr = new geren1(zhanghao,mima,name,phone,i);
user[i] = gr;
System.out.println("注册成功");
return;
}
}
}
最后就是登录后的个人界面
public static void grjiemian(Scanner sc,geren1[] user,geren1 gr){
while(true){
System.out.println("==== 个人页面 =====");
System.out.println("请选择您要办理的业务:");
System.out.println("1,存款\t\t\t2,取款");
System.out.println("3,查询余额\t\t4,转账");
System.out.println("5,查询个人信息\t6,退出登录");
int xuanze = sc.nextInt();
if (xuanze == 1){
System.out.println("请输入存款金额:");
gr.setZijin(gr.getZijin()+sc.nextInt());
System.out.println("存款成功,当前余额:"+gr.getZijin()+"元");
}else if (xuanze == 2){
System.out.println("请输入取款金额:");
int qk = sc.nextInt();
if(qk>gr.getZijin()){
System.out.println("余额不足。。。");
}else{
gr.setZijin(gr.getZijin()-qk);
System.out.println("取款成功,当前余额:"+gr.getZijin()+"元");
}
}else if(xuanze == 3){
System.out.println("当前余额:"+gr.getZijin()+"元");
}
else if(xuanze == 4){
System.out.println("请输入转账账号:");
String zh = sc.next();
System.out.println("请输入转账金额:");
int jine = sc.nextInt();
for (int zhao = 0;zhao<user.length;zhao++){
if (user[zhao] !=null){
geren1 gr1 = user[zhao];
if (zh.equals(gr1.getZhanghao())){
gr1.setZijin(gr1.getZijin()+jine);
gr.setZijin(gr.getZijin() - jine);
}
}
}
}
else if(xuanze == 5){
gr.print();
}
else if(xuanze == 6){
return;
}
}
}
把xtjiemian()方法写在main()方法中,大功告成,以下是最后的成品代码。
import java.util.Scanner;
public class denglu2 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
geren1[] user = new geren1[10];
//System.out.println(user[1]);
xtjiemian(sc,user);
}
public static void xtjiemian(Scanner sc,geren1[] user){
while (true)
{
System.out.println("===优就业银行系统===");
System.out.println();
System.out.println("1,登录\t\t2,注册\t\t3,退出");
int xuanze = sc.nextInt();
if (xuanze == 1)
{
//print(user);
denglu1(sc,user);
}else if(xuanze == 2){
zhuce(sc,user);
//print(user);
}else if(xuanze == 3){
break;
}
else{System.out.println("输入有误!");}
}
}
public static void zhuce(Scanner sc, geren1[] user){
System.out.println("==== 注 册 ====");
for (int i=0;i<user.length;i++)
{
if (user[i] == null)
{
System.out.println("请输入注册账号:");
//user[i][0] = sc.next();
String zhanghao = sc.next();
System.out.println("请输入注册密码:");
//user[i][1] = sc.next();
String mima = sc.next();
System.out.println("请输入您的真实姓名:");
String name = sc.next();
System.out.println("请输入手机号:");
//zijin[i][2] = sc.nextInt();
String phone = sc.next();
geren1 gr = new geren1(zhanghao,mima,name,phone,i);
user[i] = gr;
System.out.println("注册成功");
return;
}
}
}
public static void denglu1(Scanner sc,geren1[] user){
System.out.println("==== 登 录 =====");
System.out.println("请输入账号:");
String zh = sc.next();
System.out.println("请输入密码:");
String mm = sc.next();
for (int i = 0;i<user.length;i++){
//System.out.println(user[i]);
if (user[i] != null){
geren1 gr = user[i];
//System.out.println(gr.getZijin());
if (zh.equals(gr.getZhanghao()) && mm.equals(gr.getMima()))
{
System.out.println("登录成功!");
grjiemian(sc,user,gr);
return;
}
}
}
System.out.println("无此账号或密码错误!");
}
public static void grjiemian(Scanner sc,geren1[] user,geren1 gr){
while(true){
System.out.println("==== 个人页面 =====");
System.out.println("请选择您要办理的业务:");
System.out.println("1,存款\t\t\t2,取款");
System.out.println("3,查询余额\t\t4,转账");
System.out.println("5,查询个人信息\t6,退出登录");
int xuanze = sc.nextInt();
if (xuanze == 1){
System.out.println("请输入存款金额:");
gr.setZijin(gr.getZijin()+sc.nextInt());
System.out.println("存款成功,当前余额:"+gr.getZijin()+"元");
}else if (xuanze == 2){
System.out.println("请输入取款金额:");
int qk = sc.nextInt();
if(qk>gr.getZijin()){
System.out.println("余额不足。。。");
}else{
gr.setZijin(gr.getZijin()-qk);
System.out.println("取款成功,当前余额:"+gr.getZijin()+"元");
}
}else if(xuanze == 3){
System.out.println("当前余额:"+gr.getZijin()+"元");
}
else if(xuanze == 4){
System.out.println("请输入转账账号:");
String zh = sc.next();
System.out.println("请输入转账金额:");
int jine = sc.nextInt();
for (int zhao = 0;zhao<user.length;zhao++){
if (user[zhao] !=null){
geren1 gr1 = user[zhao];
if (zh.equals(gr1.getZhanghao())){
gr1.setZijin(gr1.getZijin()+jine);
gr.setZijin(gr.getZijin() - jine);
}
}
}
}
else if(xuanze == 5){
gr.print();
}
else if(xuanze == 6){
return;
}
}
}
}
代码其实可以再优化以下,有一些代码可以合并。



我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden
有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www
我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht
我的工作要求我为某些测试自动生成电子邮件。我一直在四处寻找,但未能找到可以快速实现的合理解决方案。它需要在outlook而不是其他邮件服务器中,因为我们有一些奇怪的身份验证规则,我们需要保存草稿而不是仅仅发送邮件的选项。显然win32ole可以做到这一点,但我找不到任何相当简单的例子。 最佳答案 假设存储了Outlook凭据并且您设置为自动登录到Outlook,WIN32OLE可以很好地完成此操作:require'win32ole'outlook=WIN32OLE.new('Outlook.Application')message=
电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。 准备工作: 1、U盘一个(尽量使用8G以上的U盘)。 2、一台正常联网可使用的电脑。 3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。 4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。 U盘启动盘制作步骤: 注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注