java賬戶扣款策略代碼 java賬戶扣款策略代碼查詢

JAVA編寫銀行賬戶程序摸擬銀行賬戶的存\取款操作

public class ATM {

沽源網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)從2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。

public static void main(String[] args) {

// 開立帳號

Account account = new Account();

// 在 account 中存 10,000 元

account.setBalance(10000);

// 檢查 account 中的存款

System.out.println("帳戶原始金額 : " + account.getBalance() + " 元");

// 小明, 小華與小英一起對 account 進(jìn)行提款的動作

WithDraw s1 = new WithDraw("小明", account, 5000); // 小明 在 account 中提 5000 元

WithDraw s2 = new WithDraw("小華", account, 2000); // 小華 在 account 中提 2000 元

WithDraw s3 = new WithDraw("小英", account, 4000); // 小英 在 account 中提 4000 元

s1.start();

s2.start();

s3.start();

}

}

//帳戶

class Account {

private int balance; // 帳戶馀額

public int getBalance() { // 取得帳戶馀額

return balance;

}

public void setBalance(int money) { // 設(shè)定帳戶馀額

balance = money;

}

// 提款方法

public void withDraw(Account account, int withdrawMoney) {

String tName = Thread.currentThread().getName(); // tName=提款人

System.out.println(tName + " 開始提款 ... ");

boolean withDrawStatus; // 提款狀態(tài) 說明:false=提款失敗, true=提款成功

synchronized(ATM.class) {

int tmpBalabce = account.getBalance(); // 取得最新帳戶馀額

//用 for-loop 模擬提款時系統(tǒng)所花的時間

for(double delay=0;delay99999999;delay++) {

// ... 提款進(jìn)行中 ...

}

tmpBalabce = tmpBalabce - withdrawMoney; // 最新帳戶馀額 - 欲提款金額 (用來判斷是否馀額足夠的依據(jù))

if (tmpBalabce 0) { // 判斷是否馀額足夠

withDrawStatus = false;

System.out.println("....................");

System.out.println(" 帳戶馀額不足!");

System.out.println("....................");

} else {

withDrawStatus = true;

account.setBalance(tmpBalabce); // 回存account最後剩馀金額

}

}

System.out.println(tName + "的交易單:");

System.out.println("\t欲提款金額:" + withdrawMoney + "元");

System.out.println("\t帳戶馀額:" + account.getBalance());

if(withDrawStatus == true){

System.out.println(tName + " 完成提款 ... ");

} else {

System.out.println(tName + " 提款失敗 ... ");

}

System.out.println("-------------------------------");

}

}

// 提款類別

class WithDraw extends Thread {

private Account account; // 帳號

private int withdrawMoney; // 欲提款的金額

// tName:執(zhí)行緒名稱, account:Account物件名稱, withdrawMoney:欲提款金額

public WithDraw(String tName, Account account, int withdrawMoney) {

setName(tName);

this.account = account;

this.withdrawMoney= withdrawMoney;

}

public void run() {

// 執(zhí)行提款動作(account:帳號, withdrawMoney 欲提款金額)

account.withDraw(account, withdrawMoney); // 執(zhí)行提款動作

}

}

用JAVA編程設(shè)計一個銀行賬戶類,其中包括以下內(nèi)容,并用字符界面模擬存款和取款過程。

import java.util.Scanner;

public class ZH {

private String zh;//賬戶

private String password;//密碼

private String openTime;//開戶時間

private String sfz;//身份證號

private double je;//存款金額

public String getZh() {

return zh;

}

public void setZh(String zh) {

this.zh = zh;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getOpenTime() {

return openTime;

}

public void setOpenTime(String openTime) {

this.openTime = openTime;

}

public String getSfz() {

return sfz;

}

public void setSfz(String sfz) {

this.sfz = sfz;

}

public double getJe() {

return je;

}

public void setJe(double je) {

this.je = je;

}

//存款方法

public void ck(double je){

this.je=this.je+je;//存入的金額加上原有的金額

}

//取款方法

public void qk(double je){

if(jethis.je){//取款金額大于余額

System.out.println("存款余額不足");

}else{

this.je=this.je-je;//原有的金額減去取出的金額

}

}

public static void main(String[] args) {

ZH zh = new ZH();//初始化一個賬戶信息

zh.setJe(10000.0);//向zh賬戶添加余額

zh.setOpenTime("2013.12.3");//向zh賬戶添加開發(fā)時間

zh.setPassword("123456");//向zh賬戶添加密碼

zh.setSfz("123456789");//向zh賬戶添加身份證

zh.setZh("zhangsan");//向zh賬戶添加賬號

System.out.println("歡迎光臨模擬銀行");

Scanner scan = new Scanner(System.in);

int count=0;//記錄輸入錯誤的次數(shù)

while(1==1){//循環(huán)

System.out.println("請輸入賬號");

String zhm=scan.next();

System.out.println("請輸入密碼");

String mm=scan.next();

if(zhm.equals(zh.getZh()) mm.equals(zh.getPassword())){//輸入的信息與zh賬戶信息的密碼和賬號一致

while(1==1){

System.out.println("當(dāng)前余額為:"+zh.getJe()+"元。請選擇操作:1.存款;2.取款;3.退出(只能輸入數(shù)字)");

String cz=scan.next();

switch (Integer.parseInt(cz)) {

case 1:

System.out.println("請輸入存款金額(輸入小數(shù))");

double ckje=scan.nextDouble();

zh.ck(ckje);

System.out.println("實(shí)施存款:"+ckje+"元,當(dāng)前余額為"+zh.getJe()+"元");

break;

case 2:

System.out.println("請輸入取款金額(輸入小數(shù))");

double qkje=scan.nextDouble();

zh.qk(qkje);

System.out.println("實(shí)施取款:"+qkje+"元,當(dāng)前余額為"+zh.getJe()+"元");

break;

case 3:

break;

default:

System.out.println("暫無此功能");//輸入1或者2、3以外的操作

break;

}

if("3".equals(cz)){

break;

}

}

System.out.println("退出操作");

break;

}else{

if(count=3){

System.out.println("已輸入錯誤三次,賬號被鎖");

break;//結(jié)束循環(huán)

}else{

System.out.println("賬號或密碼錯誤,請重新輸入");

count++;//錯誤一次count+1

continue;//進(jìn)入下次循環(huán)

}

}

}

}

}

java編程 實(shí)現(xiàn)系統(tǒng)定期自動扣費(fèi)

首先得這個Java程序得常年在后臺運(yùn)行。每天都進(jìn)行如下操作:

檢測到當(dāng)天日期,如果不是1月1日,則將標(biāo)志變量置0.

如果是1月1日,檢測標(biāo)志變量,

如果是0:進(jìn)行一次扣費(fèi),然后標(biāo)志變量置1;

如果是1,不進(jìn)行任何操作。

用JAVA語言編寫程序,模擬銀行賬戶功能。要有: 屬性:賬號、儲戶姓名、地址、存款余額、最小余額。

package com.cshr.test;

public class bank {

private String card;//賬號

private String uname;//儲戶姓名

private String address;//地址

private double money;//存款余額

public static final double minMoney=0;//最小余額

public bank(){}

public String getCard() {

return card;

}

public void setCard(String card) {

this.card = card;

}

public String getUname() {

return uname;

}

public void setUname(String uname) {

this.uname = uname;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

public double getMoney() {

return money;

}

public void setMoney(double money) {

this.money = money;

}

public static double getMinmoney() {

return minMoney;

}

}

package com.cshr.test;

import java.util.List;

import org.hibernate.Session;

import com.utils.HibernateSessionFactory;

public class bankDao {

//存款

public void addMoney(double money,double Sqlmoney,String card){

Session session=HibernateSessionFactory.getSession();

try{

session.beginTransaction();

String hql="update bank b set b.money+="+money+Sqlmoney+" where b.card='"+card+"'";

session.createQuery(hql).executeUpdate();

session.beginTransaction().commit();

}catch(Exception e){

e.printStackTrace();

session.beginTransaction().rollback();

}finally{

HibernateSessionFactory.closeSession();

}

}

//取款

public void delMoney(double money,double Sqlmoney,String card){

Session session=HibernateSessionFactory.getSession();

try{

session.beginTransaction();

String hql="update bank b set b.money+="+(Sqlmoney-money)+" where b.card='"+card+"'";

session.createQuery(hql).executeUpdate();

session.beginTransaction().commit();

}catch(Exception e){

e.printStackTrace();

System.out.println("取款失敗");

session.beginTransaction().rollback();

}finally{

HibernateSessionFactory.closeSession();

}

}

//查詢所有

public Listbank selectfind(){

Session session=HibernateSessionFactory.getSession();

session.beginTransaction();

String hql="select b from bank b ";

Listbank list=session.createQuery(hql).list();

return list;

}

}

java銀行存取款代碼問題,做得好我就追加懸賞

您好,

創(chuàng)建狀態(tài)

使用new運(yùn)算符創(chuàng)建一個線程后,該線程僅僅是一個空對象,系統(tǒng)沒有分配資源,稱該線程處于創(chuàng)建狀態(tài)(new thread)

可運(yùn)行狀態(tài)

使用start()方法啟動一個線程后,系統(tǒng)為該線程分配了除CPU外的所需資源,使該線程處于可運(yùn)行狀態(tài)(Runnable)

運(yùn)行中狀態(tài)

Java運(yùn)行系統(tǒng)通過調(diào)度選中一個Runnable的線程,使其占有CPU并轉(zhuǎn)為運(yùn)行中狀態(tài)(Running)。此時,系統(tǒng)真正執(zhí)行線程的run()方法。

package pack.java.thread.atm;

/**

* 賬戶類;

* @author Administrator

*

*/

public class Account {

private String name; //用戶名;

private int value; //賬戶余額;

/**

* 存入金額;

* @param monery

*/

public void putMonery(int monery){

this.value = this.value + monery;

}

/**

* 取出金額;

* @param monery

* @return 金額;

*/

public int getMonery(int monery){

//判斷是否賬戶余額是否大于 要取出的錢;

if(this.value monery ){

this.value = this.value - monery;

}else{

monery = this.value; //賬戶余額不夠時,則取出,所有的賬戶余額的金額.

this.value = 0;

}

//返回取出的錢;

return monery;

}

/**

* 查詢余額;

* @return 返回賬戶余額;

*/

public int search(){

return this.value;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getValue() {

return value;

}

public void setValue(int value) {

this.value = value;

}

}

利用java編寫一個電話扣費(fèi)的程序

public?class?Test?extends?PhoneKouFei{

public?Test(String?startTime,?String?stopTime)?{

super(startTime,?stopTime);

}

public?static?void?main(String[]?args)?{

String?start?=?"00:12:23";

String?stop?=?"00:15:23";

new?Test(start,stop);

}

}

abstract?class?PhoneKouFei{

private?final?double?fei?=?1.5;//1分鐘扣1毛5

public?String?startTime;?//通話開始時間

public?String?stopTime;?//通話結(jié)束時間

public?PhoneKouFei(String?startTime,?String?stopTime){

this.startTime?=?startTime;

this.stopTime?=?stopTime;

System.out.println("通話時常:"?+getKouFei()+?"分鐘");

System.out.println("應(yīng)扣費(fèi):"?+?(double)getKouFei()?*?fei);

}

//扣費(fèi)方法

private?final?long?getKouFei(){

java.text.SimpleDateFormat?sim?=?new?java.text.SimpleDateFormat("HH:mm:ss");

try?{

java.util.Date?start?=?sim.parse(this.startTime);

java.util.Date?stop?=?sim.parse(this.stopTime);

return?(stop.getTime()?-?start.getTime())?/?60000;

}?catch?(java.text.ParseException?e)?{

throw?new?RuntimeException("時間格式錯誤..");

}

}

}

//輸出結(jié)果:

通話時常:3分鐘

應(yīng)扣費(fèi):4.5

網(wǎng)頁名稱:java賬戶扣款策略代碼 java賬戶扣款策略代碼查詢
文章地址:http://www.muchs.cn/article32/doocjpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、移動網(wǎng)站建設(shè)、ChatGPT、小程序開發(fā)、定制網(wǎng)站、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)