迷你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,小而美被实践是最好用的,本文将介绍笔者收集的一些非常赞的开源库 ...
随机推荐
- PHP性能检测与优化—XHProf 安装
PHP性能检测与优化—XHProf 安装 XHProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开关来控制是否进 ...
- vue授权页面登陆之后返回之前的页面
import Vue from 'vue'import Router from 'vue-router'Vue.use(Router)import home from "@/pages/ho ...
- sql产生流水号
一个产生流水号(年月日+5位流水号)的存储过程 现在客户有一个需求,要产生一个流水号,如090611+000001(年月日+五位流水号),此流水号在数据库表中是主键,且为varchar类 型.如果在当 ...
- 多线程(二)~Thread类相关的API介绍
一.线程安全问题: 当我们使用多个线程操作统一方法内的局部变量的时候,每个局部变量在当前线程里都有自己的副本,这种情况是不会出现线程安全问题的.当我们两个线程同时操作全局变量的时候,有可能 ...
- 一、选择与安装——Linux学习笔记
A)为什么要用Linux做服务器? 网络理由: 1.linux本身是网络操作系统,支持所有TCP/IP协议,网络功能是内核中六大模块之一 2.linux和unix兼容,unix是早期的服务器霸主,现在 ...
- php 获取毫秒时间戳
function getMsec(){//返回毫秒时间戳 $arr = explode(' ',microtime()); $hm = 0; foreach($arr as $v){ $hm += f ...
- Oracle10g使用$ORACLE_HOME/rdbms/admin/awrrpt.sql报错
Enter value for report_name: Using the report name awrrpt_1_591_593.htmlselect output from table(dbm ...
- Android 位置服务
原文来自:http://developer.android.com/guide/topics/location/strategies.html 位置策略 注意: 本指南仅限android.locati ...
- C/C++ memmove与memcpy的区别及实现
1.与字符串函数strcpy区别: memcpy与memmove都是对内存进行拷贝可以拷贝任何内容,而strcpy仅是对字符串进行操作. memcpy与memmove拷贝多少是通过其第三个参数进行控制 ...
- Android(java)学习笔记54:Android 调用Vibrator震动功能
1. 之前我编写的代码是如下: package com.himi.vibrate; import android.app.Activity; import android.app.Service; i ...