
import javautilScanner;
public class ZH {
private String zh;//账户
private String password;//密码
private String openTime;//开户时间
private String sfz;//身份z号
public String getZh() {
return zh;
}
public void setZh(String zh) {
thiszh = zh;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
thispassword = password;
}
public String getOpenTime() {
return openTime;
}
public void setOpenTime(String openTime) {
thisopenTime = openTime;
}
public String getSfz() {
return sfz;
}
public void setSfz(String sfz) {
thissfz = sfz;
}
public double getJe() {
return je;
}
public void setJe(double je) {
thisje = je;
}
//存款方法
public void ck(double je){
thisje=thisje+je;//存入的金额加上原有的金额
}
//取款方法
public void qk(double je){
if(je>thisje){//取款金额大于余额
Systemoutprintln("存款余额不足");
}else{
thisje=thisje-je;//原有的金额减去取出的金额
}
}
public static void main(String[] args) {
ZH zh = new ZH();//初始化一个账户信息
zhsetJe(100000);//向zh账户添加余额
zhsetOpenTime("2013123");//向zh账户添加开发时间
zhsetPassword("123456");//向zh账户添加密码
zhsetSfz("123456789");//向zh账户添加身份z
zhsetZh("zhangsan");//向zh账户添加账号
Systemoutprintln("欢迎光临模拟银行");
Scanner scan = new Scanner(Systemin);
int count=0;//记录输入错误的次数
while(1==1){//循环
Systemoutprintln("请输入账号");
String zhm=scannext();
Systemoutprintln("请输入密码");
String mm=scannext();
if(zhmequals(zhgetZh()) && mmequals(zhgetPassword())){//输入的信息与zh账户信息的密码和账号一致
while(1==1){
Systemoutprintln("当前余额为:"+zhgetJe()+"元。请选择 *** 作:1存款;2取款;3退出(只能输入数字)");
String cz=scannext();
switch (IntegerparseInt(cz)) {
case 1:
Systemoutprintln("请输入存款金额(输入小数)");
double ckje=scannextDouble();
zhck(ckje);
Systemoutprintln("实施存款:"+ckje+"元,当前余额为"+zhgetJe()+"元");
break;
case 2:
Systemoutprintln("请输入取款金额(输入小数)");
double qkje=scannextDouble();
zhqk(qkje);
Systemoutprintln("实施取款:"+qkje+"元,当前余额为"+zhgetJe()+"元");
break;
case 3:
break;
default:
Systemoutprintln("暂无此功能");//输入1或者2、3以外的 *** 作
break;
}
if("3"equals(cz)){
break;
}
}
Systemoutprintln("退出 *** 作");
break;
}else{
if(count>=3){
Systemoutprintln("已输入错误三次,账号被锁");
break;//结束循环
}else{
Systemoutprintln("账号或密码错误,请重新输入");
count++;//错误一次count+1
continue;//进入下次循环
}
}
}
}
}
3个类,开始
1,
/
自定义异常类
/
public class MyException extends Exception {
//验证交易类型正确性
public void TransactionsInfo(){
Systemoutprintln("交易失败,只能输入0或者1");
}
//验证金额正确性
public void amountInfo(){
Systemoutprintln("交易失败,输入金额不能为负数或者字符");
}
}
2,
public class User {
/
用户信息类
/
private String name; //用户名
private float amount; //用户金额
public User(String name,float amount){
thisname = name;
thisamount = amount;
}
public float getAmount() {
return amount;
}
public void setAmount(float amount) {
thisamount = amount;
}
public String getName() {
return name;
}
public void setName(String name) {
thisname = name;
}
// 交易的方法,需要接受两个参数,一个是代表交易方式(取款,或者存款,),一个代表交易金额
public User Transactions() throws MyException{
Systemoutprintln("请输入您的交易方式0代表存款,1代表取款");//提示用户交易方式
BufferedReader br1=new BufferedReader(new InputStreamReader(Systemin));
BufferedReader br2=new BufferedReader(new InputStreamReader(Systemin));
String flag = null;
try {
flag = br1readLine();
} catch (IOException e) {
eprintStackTrace();
}
if("0"equals(flag)){
}else if("1"equals(flag)){
amount=-amount;//因为1代表取款,所以变成负数
}else{
new MyException()TransactionsInfo(); //打印类型错误
return this;
}
String amountString = null;
try {
amountString = br2readLine();
} catch (IOException e) {
eprintStackTrace();
}
float amount = 00f;
try{
amount = FloatparseFloat(amountString);
}catch(Exception ex){
throw new MyException();
}
thisamount = thisamount+amount;//交易
return this; //返回用户信息
}
}
3,
public class MoneyTest {
/
测试类
@param args
/
public static void main(String[] args){
User user = new User("张三",1234f); //测试用户
Systemoutprintln("用户"+usergetName()+"交易前的金额为:"+usergetAmount());
try {
userTransactions();
} catch (MyException e) {
// TODO Auto-generated catch block
eamountInfo();
}//调用方法
Systemoutprintln("交易后的金额为"+usergetAmount());
}
}
先不说你这程序的问题,,我说说我分析你的题目(个人意见)
JAVA我要创建一个帐号类,有3个方法,分别是存钱取钱还有查询金额
帐号就是一个对象
该对象有三个属性 (卡号:id,余额:money);
有三个行为: 存钱,取钱,查询
那么初始架构就是
public class IDmoney {
private String id; //卡号
private String money; //余额
//些处为属性的get,set方法
public boolean inMoney(saveMoney){ //存钱
//方法体
}
public boolean outMoney(saveMoney){ //取钱
//方法体
}
public double selectMoney(saveMoney){ //查询
//方法体
}
}
大致就是这样,至于方法里面的处理,得看你自己业务了然后如果想自定义异常的话,你得去看看怎么自定义,和使用
现在语言都是面向对象,所以在实际开发当中,尽量向对象看
public double withdrawl(double amt) throws InsufficientFundsException {
if(amt > total) {
throw new InsufficientFundsException();
}
return total - amt;
}
public void process(boolean save, double amt) {
if(save) {
// save money
} else {
try{
double left = withdrawl(amt);
} catch(InsufficientFundsException e) {
// Handle Exception
}
}
}
//没有支持小数。
public static void main(String[] args) {
int num = 0;
Scanner scanner = new Scanner(Systemin);
do {
Systemoutprintln("请输入取款金额:");
num = scannernextInt();
switch (num) {
case 100:
Systemoutprintln("取钱成功!取款" + num + "元!");
return;
default:
Systemoutprintln("请输入100");
break;
}
} while (true);
}
public class MyException extends RuntimeException {
private static final long serialVersionUID = 1L;
public MyException() {
}
public MyException(String msg) {
super(msg);
}
public MyException(String msg, Exception ex) {
super(msg, ex);
}
}
----------------------------------------------
假如 yhk余额 为 float balance ; 取的钱为 float expenditure;
if(balance < 10 || expenditure > 5000) { //当然你可以分成2个异常来抛
throw new DBException("余额不能低于10元 或者 单次取钱金额不能大于5000");
}
以上就是关于用JAVA编程设计一个银行账户类,其中包括以下内容,并用字符界面模拟存款和取款过程。全部的内容,包括:用JAVA编程设计一个银行账户类,其中包括以下内容,并用字符界面模拟存款和取款过程。、JAVA高手来,题目是:自定义异常类,实现银行的存钱和取钱业务、JAVA我要创建一个帐号类,有3个方法,分别是存钱取钱还有查询金额.分别抛出两个异(取钱<金额,存钱<0)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)