迷你MyBank
该迷你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的更多相关文章
- ASP.NET Core管道深度剖析(2):创建一个“迷你版”的管道来模拟真实管道请求处理流程
从<ASP.NET Core管道深度剖析(1):采用管道处理HTTP请求>我们知道ASP.NET Core请求处理管道由一个服务器和一组有序的中间件组成,所以从总体设计来讲是非常简单的,但 ...
- [LeetCode] Mini Parser 迷你解析器
Given a nested list of integers represented as a string, implement a parser to deserialize it. Each ...
- 循序渐进做项目系列(4)迷你QQ篇(2)——视频聊天!(附源码)
一·效果展示 源码派送:MiniQQ1.1 文字聊天的实现参见:循序渐进做项目系列(3):迷你QQ篇(1)——实现客户端互相聊天 二·服务端设计 对于实现视频聊天而言,服务端最核心的工作就是要构造多媒 ...
- 循序渐进做项目系列(3):迷你QQ篇(1)——实现客户端互相聊天
<循序渐进做项目系列迷你QQ篇>将陆续介绍客户端聊天,文件传输,加好友,群聊,包括语音聊天,视频聊天,远程桌面等等需求如何实现,感兴趣的朋友可以持续关注.考虑到某些需求较为复杂,本系列采用 ...
- 迷你MVVM框架 avalonjs 入门教程
新官网 请不要无视这里,这里都是链接,可以点的 OniUI组件库 学习教程 视频教程: 地址1 地址2 关于AvalonJs 开始的例子 扫描 视图模型 数据模型 绑定 作用域绑定(ms-contro ...
- 自用迷你版的Deferred
啥也不说贴代码,项目用 /** * 迷你版的deferred */ function Deferred(func) { if (this instanceof Deferred === false) ...
- 迷你版jQuery——zepto核心源码分析
前言 zepto号称迷你版jQuery,并且成为移动端dom操作库的首选 事实上zepto很多时候只是借用了jQuery的名气,保持了与其基本一致的API,其内部实现早已面目全非! 艾伦分析了jQue ...
- 利用epoll写一个"迷你"的网络事件库
epoll是linux下高性能的IO复用技术,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率.另一点原因就是获取 ...
- 不可错过的javascript迷你库
最近看着下自己的github star,把我吓坏了,手贱党,收藏癖的我都收藏了300+个仓库了,是时候整理一下了. Unix主张kiss,小而美被实践是最好用的,本文将介绍笔者收集的一些非常赞的开源库 ...
随机推荐
- CSS的两种格式化上下文:BFC和IFC
CSS的两种格式化上下文 文章包含很多个人理解,如果错误,欢迎指出~ 在看本文之前,你要对CSS的盒子模型,Block-Level元素,Inline-Level元素有所了解,具体可参考CSS的 ...
- iDempiere 视频教程下载
Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...
- 一个C#面试问题,要求是将字符串中重复字符从第二个开始都去掉,空格除外。然后显示的时候,从后往前显示。
因为C#的code,感觉实现这个还是比较容易,只是SB.所以,在面试时候,以为不会这么容易,所以,我先试着用了Dictionary去实现,发现有困难.然后改回来用StringBuilder实现,这个因 ...
- 二、安装桌面——Linux学习笔记
安装桌面并不是商业化用的,只是为了熟悉Linux文档结构而已. 这个比较简单 1.输入安装桌面命令 # yum -y groups install "GNOME Desktop" ...
- 调试一个Ext打开的window窗口内嵌Iframe的form提交问题
一个奇怪的问题是:潜逃在iframe里的页面单独提交都是正常,放到iframe里面通过js调用在parent页面.提交总是被莫名其妙的杀掉. 确定js简单无错之后,继续看parent的处理逻辑,有这么 ...
- js alert 封装 layui
方式一: var aaa = function(){ function _alert(aa){ layer.msg(aa, { time: 2000, //2s后自动关闭 alert("最高 ...
- Perl实用中文处理步骤(修改版)
发信人: FenRagwort (泽), 信区: Perl标 题: Perl实用中文处理步骤(修改版)发信站: 水木社区 (Mon Feb 14 12:52:14 2011), 转信 (修改版 感谢 ...
- Opportunity的chance of success的赋值逻辑
该字段的值和另外两个字段Sales Stage和Status都相关. 从下列function module CRM_OPPORT_H_PROB_SET_EC可看出,当status不为代码中的这些硬编码 ...
- 谣言粉碎机 - 极短时间内发送两个Odata request,前一个会自动被cancel掉?
背景 有时我们能在Chrome开发者工具的Network tab里观察到SAP UI5应用会发出某些状态为"取消"的OData请求.如下图第五个请求. 之前有一种似是而非的说法:极 ...
- DSL-领域特定语言(英语:domain-specific language、DSL)
领域特定语言(英语:domain-specific language.DSL)指的是专注于某个应用程序领域的计算机语言.