该迷你MyBank,存贮是用对象数组来存贮的,所以比较简单,容易理解,适合新手。。

一.创建chengyuan类,在其中声明所需的成员变量:

 public class chengyuan {

     //该类为定义成员变量
public String account;
public String name ;
public String password;
public String idCard;
public int money; }

二.创建fulei类,就是调用

 public class zhulei {
public static void main(String[] args) {
fulei fu=new fulei();
fu.ShowMenu(); }
}

三.创建zhulei类,在其中创建函数来实现具体的功能

 import java.awt.image.SampleModel;
import java.util.Scanner; public class fulei {
Scanner input=new Scanner(System.in);
// public void Init(){
// chen.account[0]="001";
// chen.name[0]="孙悟空";
// chen.password[0]= chengyuan users []=new chengyuan[10];//此处是声明对象数组 public void Init(){    //此类是先对数组中插入一些值
chengyuan u1=new chengyuan();
u1.account = "001";
u1.name = "sunwukong";
u1.password = "wukong";
u1.idCard = "123412341234123412";
u1.money = 10000;
users[0] = u1;
chengyuan u2 = new chengyuan();
u2.account = "002";
u2.name = "zhubajie";
u2.password = "bajie";
u2.idCard = "123412341234123413";
u2.money = 20000;
users[1] = u2;
chengyuan u3 = new chengyuan();
u3.account = "003";
u3.name = "shawujing";
u3.password = "wujing";
u3.idCard = "123412341234123414";
u3.money = 30000;
users[2] = u3;
} public void ShowMenu() {
// TODO Auto-generated method stub
Init(); //初始化该对象数组
while(true){
System.out.println("======================================");
System.out.println("===============MyBank=================");
System.out.println("=功能菜单如下:========================");
System.out.println("==1:开户 2:存款 3:取款 4:转账 5:查询余额==");
System.out.println("====6:修改密码 7:显示所有信息 0:退出=====");
System.out.println("================请选择================"); if(input.hasNextInt()==true){ //判断系统输入是否为int类型
int select=input.nextInt();
switch (select) {
case 1:
CreatUsers();
break;
case 2:
SaveMoney();
break;
case 3:
OutMoney();
break;
case 4:
MoveMoney();
break;
case 5:
FindMoney();
break;
case 6:
UpdatePwd();
break;
case 7:
ShowInfo();
break;
case 0:
System.out.println("系统退出,谢谢使用");
return;
default:
System.out.println("只能输入0-7的数字!!!");
break;
}
}else {
System.out.println("输入内容中含非法字符,请重新尝试!");
input.next(); //释放资源
} System.out.println(); //换行
System.out.println();
}
//-----------------
} /**
* 修改密码
*/
private void UpdatePwd() {
// TODO Auto-generated method stub
System.out.println("请输入账号:");
String zhang=input.next();
System.out.println("请输入密码:");
String pwd=input.next();
chengyuan u=GetUser(zhang);
if (u==null) {
System.out.println("库中无该账户");
return;
}
if (!u.password.equals(pwd)) {
System.out.println("密码错误,请重新尝试");
return;
}
System.out.println("登录成功,可以修改密码!");
System.out.println();
for (int i = 1; i <= 3; i++) { //三次循环
System.out.println("请输入新密码:");
String pwd_1=input.next();
System.out.println("请再次输入密码:");
String pwd_2=input.next();
if(PwdSame(pwd_1, pwd_2)){
u.password=pwd_1;
System.out.println("账号:"+zhang+";密码修改成功,新密码为"+u.password);
return;
}else {
if(i==2)
System.out.println("两次密码输入不正确,请重新输入!!你还要两次输入机会");
if(i==1)
System.out.println("两次密码输入不正确,请重新输入!!你还要一次输入机会");
}
}
} /**
* 查询余额
* 验证是否登录
*/
private void FindMoney() {
// TODO Auto-generated method stub
System.out.println("请输入账号:");
String zhang=input.next();
System.out.println("请输入密码:");
String pwd=input.next();
chengyuan u=GetUser(zhang);
if (u==null) {
System.out.println("库中无该账户");
return;
}
if (!u.password.equals(pwd)) {
System.out.println("密码错误,请重新尝试");
return;
}
System.out.println("具体信息如下");
System.out.println("账号:"+u.account+"\t用户名:"+u.name+"\t密码:"+u.password+"\t身份证号是:"+u.idCard+"\t账户余额:"+u.money);
} /**
* 转账;;;
* 判断两次账号是否存在!!!
*/ private void MoveMoney() {
// TODO Auto-generated method stub
System.out.println("请输入账号:");
String zhang=input.next();
System.out.println("请输入密码:");
String pwd=input.next();
chengyuan u=GetUser(zhang);
if (u==null) {
System.out.println("库中无该账户");
return;
}
if (!u.password.equals(pwd)) {
System.out.println("密码错误,请重新尝试");
return;
}
System.out.println("账户登录成功!");
System.out.println(); //换行
System.out.println("请输入要转入的账号");
String zhang_move=input.next();
chengyuan u_move=GetUser(zhang_move);
if (u_move==null) {
System.out.println("该账户不存在!!请确认后重新尝试!!!");
}
System.out.print("请输入转账的金额:");
int money=input.nextInt();
if (u.money<money) {
System.out.println("该账户余额不足!无法进行转账!!");
return;
}
u.money-=money;
u_move.money+=money;
System.out.println(zhang+"转账成功!!当前余额为"+u.money);
} /**
* 取款
* 接收输入值
* 注意点:字符串的比较
*/
private void OutMoney() {
// TODO Auto-generated method stub
System.out.println("请输入账号:");
String zhang=input.next();
System.out.println("请输入密码:");
String pwd=input.next();
chengyuan u=GetUser(zhang);
if (u==null) {
System.out.println("库中无该账户");
return;
}
if (!u.password.equals(pwd)) {
System.out.println("密码错误,请重新尝试");
return;
}
System.out.print("请输入取款金额:");
int money=input.nextInt();
if (u.money<money) {
System.out.println("账户的余额不足!!!");
return;
}
u.money-=money;
System.out.println(zhang+"账号取款成功,当前余额为:"+u.money); } /**
* 存款
* 验证
* 对值进行修改
*/
private void SaveMoney() {
//chengyuan u=new chengyuan();
// TODO Auto-generated method stub
System.out.println("请输入账号:");
String zhang=input.next();
System.out.println("请输入密码:");
String pwd=input.next();
chengyuan u=GetUser(zhang);
if (u==null) {
System.out.println("库中无该账户");
return;
}
if (!u.password.equals(pwd)) {
System.out.println("密码错误,请重新尝试");
return;
}
System.out.print("请输入存款金额:");
int money=input.nextInt();
u.money+=money;
System.out.println(zhang+"账号存款成功,当前余额为:"+u.money); } //写一个返回用户对象的函数
private chengyuan GetUser(String zhang) {
// TODO Auto-generated method stub
chengyuan u=new chengyuan();
// for (int i = 0; i < users.length; i++) {
// if (users[i].account.equals(zhang)) {
// u=users[i];
//
// }else if(i==users.length-1){
//
// break;
// }
//
// }
u=null;
for (chengyuan sui : users) {
if (sui !=null) {
if (sui.account.equals(zhang)) {
u=sui;
break;
}
}
}
return u;
} /**
* 显示所有信息
* 循环
*/
private void ShowInfo() {
// TODO Auto-generated method stub
for (int i = 0; i < this.users.length; i++) {
if(users[i]!=null){
System.out.println("账号:"+users[i].account+"\t用户名:"+users[i].name+"\t密码:"+users[i].password+"\t身份证号是:"+users[i].idCard+"\t账户余额:"+users[i].money);
}else {
break;
}
}
}
//---------------- /**
* 增加用户
* 接收输入语句
* 先在对象数组中找到空
* 在空中赋值
*/
private void CreatUsers() {
// TODO Auto-generated method stub
chengyuan u=new chengyuan();
System.out.print("请输入姓名:");
String name1=input.next();
System.out.print("请输入密码:");
String pwd_1=input.next();
System.out.print("请再次输入密码:");
String pwd_2=input.next();
System.out.print("请输入身份证号:");
String cardno=input.next();
System.out.print("请输入开户金额:");
int qian=input.nextInt();
String acc="1010"+(int)(Math.random()*10000);
if(PwdSame(pwd_1,pwd_2)){
System.out.println("\n开户成功,开户信息如下:");
System.out.println("账号:"+acc+"\t用户名:"+name1+"\t密码:"+pwd_1+"\t身份证号是:"+cardno+"\t账户余额:"+qian);
for (int i = 0; i < users.length; i++) { //找到空位,赋值
if(users[i]==null){
u.account=acc;
u.name=name1;
u.idCard=cardno;
u.money=qian;
u.password=pwd_1;
users[i]=u;
return;
}
}
}else {
System.out.println("两次密码输入不一致,请重新尝试!");
return;
}
} /**
* 判断两次密码是否一致的类,返回布尔型
*/
public boolean PwdSame(String pwd_1,String pwd_2 ){
return pwd_1.equals(pwd_2);
}
}

仅供参考,无需同意,随意转载。

迷你MyBank的更多相关文章

  1. ASP.NET Core管道深度剖析(2):创建一个“迷你版”的管道来模拟真实管道请求处理流程

    从<ASP.NET Core管道深度剖析(1):采用管道处理HTTP请求>我们知道ASP.NET Core请求处理管道由一个服务器和一组有序的中间件组成,所以从总体设计来讲是非常简单的,但 ...

  2. [LeetCode] Mini Parser 迷你解析器

    Given a nested list of integers represented as a string, implement a parser to deserialize it. Each ...

  3. 循序渐进做项目系列(4)迷你QQ篇(2)——视频聊天!(附源码)

    一·效果展示 源码派送:MiniQQ1.1 文字聊天的实现参见:循序渐进做项目系列(3):迷你QQ篇(1)——实现客户端互相聊天 二·服务端设计 对于实现视频聊天而言,服务端最核心的工作就是要构造多媒 ...

  4. 循序渐进做项目系列(3):迷你QQ篇(1)——实现客户端互相聊天

    <循序渐进做项目系列迷你QQ篇>将陆续介绍客户端聊天,文件传输,加好友,群聊,包括语音聊天,视频聊天,远程桌面等等需求如何实现,感兴趣的朋友可以持续关注.考虑到某些需求较为复杂,本系列采用 ...

  5. 迷你MVVM框架 avalonjs 入门教程

    新官网 请不要无视这里,这里都是链接,可以点的 OniUI组件库 学习教程 视频教程: 地址1 地址2 关于AvalonJs 开始的例子 扫描 视图模型 数据模型 绑定 作用域绑定(ms-contro ...

  6. 自用迷你版的Deferred

    啥也不说贴代码,项目用 /** * 迷你版的deferred */ function Deferred(func) { if (this instanceof Deferred === false) ...

  7. 迷你版jQuery——zepto核心源码分析

    前言 zepto号称迷你版jQuery,并且成为移动端dom操作库的首选 事实上zepto很多时候只是借用了jQuery的名气,保持了与其基本一致的API,其内部实现早已面目全非! 艾伦分析了jQue ...

  8. 利用epoll写一个"迷你"的网络事件库

    epoll是linux下高性能的IO复用技术,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率.另一点原因就是获取 ...

  9. 不可错过的javascript迷你库

    最近看着下自己的github star,把我吓坏了,手贱党,收藏癖的我都收藏了300+个仓库了,是时候整理一下了. Unix主张kiss,小而美被实践是最好用的,本文将介绍笔者收集的一些非常赞的开源库 ...

随机推荐

  1. CSS基础语法与选择器

    CSS基础 语法 : <head> <style type="text/css"> 选择器(即修饰对象){ 修饰属性:属性值; 修饰属性:属性值; } &l ...

  2. 【代码笔记】JTable 、TableModel的使用3

    在java中插入Table,并通过TableModel插入表格初始化状态后,如果需要第一行标题栏进行重命名,直接利用TableModel接口去实现列名修改,在图形显示中是无法实现的. 这里需要用到 J ...

  3. 使用canvas及js简单生成验证码方法

    在很多时候都需要用到验证码,前端验证码需要知道Html5中的canvas知识点.验证码生成步骤是:1.生成一张画布canvas 2.生成随机数验证码  3.在画布中生成干扰线  4.把验证码文本填充到 ...

  4. Java性能调优实践

    1 导论 JVM主要有两类调优标志:布尔标志和附带参数标志 布尔标志:-XX:+FlagName表示开启,­-XX:-FlagName表示关闭. 附带参数标志:-XX:FlagName=somethi ...

  5. Matlab函数——awgn(高斯噪声)

    Matlab函数--awgn awgn 将白色高斯噪声添加到信号中 语法  y = awgn(x,snr)  y = awgn(x,snr,sigpower)  y = awgn(x,snr,'mea ...

  6. 应用——dubbo的基本使用

    一.背景 dubbo是个什么? 首先要说的是,网上有很多高大上的回答,可自行百度,这里只说一些非常狭隘的东西: dubbo是一个分布式服务框架,我们一般用它进行远程方法调用.(分布式.远程方法调用下面 ...

  7. GridView的分页代码

    1.前台代码 <PagerTemplate><div style="text-align:center; color:Blue"> <asp:Link ...

  8. Android(java)学习笔记17:网络编程的概述

    1. 计算机网络 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 ...

  9. 贪心算法,今年暑假不AC

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2037 活动安排问题,可用贪心. 1.把活动按结束时间递增排序. 2.直观上,选择相对活动为未安排活动留 ...

  10. JZ2440学习笔记之通过J-Link单步裸机程序(Keil+J-Link)

    我们还是使用JZ2440学习笔记之第一个裸机程序(Keil-MDK)里面的程序,但是把延时拿掉,要不然单步的时候一直在delay里面: int main(void) { // Set GPF4/5/6 ...