
正文
java开户代码 java银行开户
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
怎么在java中的atm进行开户和销户
#include stdio.h
#include string.h
#include stdlib.h
#define LEN sizeof(struct Account)
#define RECORDCOUNT 5
#define MESSAGELENGTH 100
#define NAMELENGTH 100
#define VIEWCOUNT 5
#define DEFAULTBALANCE 0.00
#define SAVE 1
struct Account *head,*tail,*p; /*账户头部和尾部指针*/
struct Account
{
char name[NAMELENGTH]; /* 账户名称 */
float balance; /* 账户余额*/
char message[RECORDCOUNT][MESSAGELENGTH]; /* 交易记录 */
int maxMessageIndex;
struct Account *next; /* 指向下一账户 */
};
void freeMemory(); /*释放内存*/
void removeFirst(struct Account * account); /*移除第一个元素*/
void showMenu(); /*输出选择菜单*/
struct Account * findAccountByName(char name[]); /*通过账户名称找到对应的账户 */
void writeMessage(struct Account * account,char message[]); /* 写入交易记录 */
void init(); /* 创建链表,并返回表头指针 */
void openAccount(); /* 开户 */
void closeAccount(); /* 销户 */
void deposit(); /* 存款*/
void withdraw(); /* 取款 */
void transfer(); /* 转账 */
void print(); /*输出账户列表*/
void printMessage(); /*输出账户交易记录*/
int main()
{
init();
printf("欢迎使用ATM管理系统\n");
showMenu();
char choice;
fflush(stdin);
choice = getchar();
while(choice != '8')
{
switch(choice)
{
case '1':
openAccount();
showMenu();
fflush(stdin);
choice = getchar();
break;
case '2':
closeAccount();
showMenu();
fflush(stdin);
choice = getchar();
break;
case '3':
deposit();
showMenu();
fflush(stdin);
choice = getchar();
break;
case '4':
withdraw();
showMenu();
fflush(stdin);
choice = getchar();
break;
case '5':
transfer();
showMenu();
fflush(stdin);
choice = getchar();
break;
case '6':
print();
showMenu();
fflush(stdin);
choice = getchar();
break;
case '7':
printMessage();
showMenu();
fflush(stdin);
choice = getchar();
break;
default:
printf("无效菜单!\n");
showMenu();
fflush(stdin);
choice = getchar();
break;
}
}
freeMemory(); /*释放内存*/
return 0;
}
void showMenu()
{
printf("请选择 1.开户 2.销户 3.存款 4.取款 5.转账 6.查看所有账户 7. 最近五笔交易 8.退出\n");
}
//通过账户名称找到对应的账户
struct Account * findAccountByName(char name[])
{
if(strlen(name)0)
{
p = head;
while(p != NULL)
{
if(strcmp(p-name,name)==0)
{
return p;
}
p = p-next;
}
}
return NULL;
}
//写入交易记录
void writeMessage(struct Account * account,char message[])
{
if(account-maxMessageIndex = RECORDCOUNT)
{
removeFirst(account);
strcpy((account-message)[RECORDCOUNT-1],message);
account-maxMessageIndex = account-maxMessageIndex+1;
}
else
{
strcpy((account-message)[account-maxMessageIndex],message);
account-maxMessageIndex = account-maxMessageIndex+1;
}
}
void removeFirst(struct Account * account)
{
int i=0;
for(i=1; iRECORDCOUNT; i++)
strcpy((account-message)[i-1],(account-message)[i]);
}
/* 初始化三个默认账户 */
void init()
{
p = (struct Account *)malloc(LEN); /* 创建第一个账户 */
p-balance=DEFAULTBALANCE;
p-next=NULL;
p-maxMessageIndex=0;
strcpy(p-name,"001");
head=p;
tail = p;
p = (struct Account *)malloc(LEN); /* 创建第二个账户 */
p-balance=DEFAULTBALANCE;
p-next=NULL;
p-maxMessageIndex=0;
strcpy(p-name,"002");
head-next = p;
tail = p;
p = (struct Account *)malloc(LEN); /* 创建第三个账户 */
p-balance=DEFAULTBALANCE;
p-next=NULL;
p-maxMessageIndex=0;
strcpy(p-name,"003");
tail-next = p;
tail = p;
}
//输出账户列表信息
void print()
{
int i;
p = head;
i = 1;
while(p != NULL)
{
printf("第%d个账户的数据 账户名称:%s 余额:%.2f\n",i++,p-name,p-balance);
p = p-next;
}
}
//释放内存
void freeMemory()
{
p = head;
while(p != NULL)
{
head = p;
free(head);
p = p-next;
}
}
//开户
void openAccount()
{
char name[NAMELENGTH];
printf("请输入新开立的账户名称 : ");
fflush(stdin);
gets(name);
if(strlen(name)0)
{
p = (struct Account *)malloc(LEN); /* 创建一个新账户 */
p-balance=DEFAULTBALANCE;
p-next=NULL;
strcpy(p-name,name);
tail-next=p;
tail = p;
}
}
//销户
void closeAccount()
{
char name[NAMELENGTH];
printf("请输入要销户的账户名称 : ");
fflush(stdin);
gets(name);
if(strlen(name)0)
{
struct Account *pre;
p = head;
pre=head;
int find=0;
while(p != NULL)
{
if(strcmp(p-name,name)==0)
{
if(head == p)
head=p-next;
else if(tail==p)
{
pre-next=NULL;
tail = pre;
}
else
{
pre-next = p-next;
}
find=1;
break;
}
pre = p;
p = p-next;
}
if(find==0)
printf("没有此账户,无法完成销户!\n");
}
}
//存款
void deposit()
{
char name[NAMELENGTH];
printf("请输入要存款的账户名称 :");
fflush(stdin);
gets(name);
p = findAccountByName(name);
if(p!=NULL)
{
float savemoney;
printf("请输入要存款的金额 : ");
scanf("%f",savemoney);
while(savemoney=0)
{
printf("存款额不能小于等于零,请重新输入! ");
scanf("%f",savemoney);
}
p-balance = p-balance+savemoney; /*存入账户金额*/
char message[MESSAGELENGTH];
sprintf(message,"账户%s成功存入%.2f元!\n",name,savemoney);
writeMessage(p,message); /*写入交易记录*/
}
else
printf("没有此账户!\n");
}
//取款
void withdraw()
{
char name[NAMELENGTH];
printf("请输入要取款的账户名称 :");
fflush(stdin);
gets(name);
p = findAccountByName(name);
if(p!=NULL)
{
float savemoney;
printf("请输入要取款的金额 : ");
fflush(stdin);
scanf("%f",savemoney);
while(savemoney=0 || savemoney p-balance)
{
printf("存款额不能小于等于零或者大于余额,请重新输入! ");
scanf("%f",savemoney);
}
p-balance = p-balance-savemoney; /*存入账户金额*/
char message[MESSAGELENGTH];
sprintf(message,"账户%s成功取出%.2f元!\n",name,savemoney);
writeMessage(p,message); /*写入交易记录*/
}
else
printf("没有此账户!\n");
}
//转账
void transfer()
{
char outname[NAMELENGTH];
char inname[NAMELENGTH];
struct Account *outAccount;
struct Account *inAccount;
printf("请输入要转出的账户名称 :");
fflush(stdin);
gets(outname);
outAccount = findAccountByName(outname);
if(outAccount!=NULL)
{
printf("请输入要转入的账户名称 :");
fflush(stdin);
gets(inname);
inAccount = findAccountByName(inname);
if(inAccount != NULL)
{
float money;
printf("请输入要转账的金额 : ");
fflush(stdin);
scanf("%f",money);
while(money=0 || money outAccount-balance)
{
printf("转账金额不能小于等于零或者大于转出账户余额,请重新输入! ");
scanf("%f",money);
}
outAccount-balance = outAccount-balance-money; /*减少转出账户金额*/
inAccount-balance = inAccount-balance+money; /*增加转入账户金额*/
char outmessage[MESSAGELENGTH];
sprintf(outmessage,"账户%s成功转出%.2f元!\n",outname,money);
writeMessage(outAccount,outmessage); /*写入转出交易记录*/
char inmessage[MESSAGELENGTH];
sprintf(inmessage,"账户%s成功转入%.2f元!\n",inname,money);
writeMessage(inAccount,inmessage); /*写入转出交易记录*/
}
}
else
printf("没有此转出账户!\n");
}
//查看账户最近五笔交易历史
void printMessage()
{
char name[NAMELENGTH];
printf("请输入要查看最近五笔交易历史的账户名称 :");
fflush(stdin);
gets(name);
p = findAccountByName(name);
if(p!=NULL)
{
int i=0;
int end = (p-maxMessageIndex)=VIEWCOUNT?VIEWCOUNT:(p-maxMessageIndex);
for(i=0; iend; i++)
printf("%s",(p-message)[i]);
}
else
printf("没有此账户!\n");
}
相关问答
Q1: JAVA 编程创建Account 类模拟银行账户。
java开户代码我帮你一共写java开户代码了四个类,一个账户Account类,两个账户类的子类(信用卡账户CreditCardAccount类和借记卡DebitCardAccount类),另外再加上一个演示透支效果测试Test类。 代码贴在下面:
/**
* 账户类。
*
* @author CodingMouse
* @version 1.0
*/
public abstract class Account { protected String accountNumber; // 账号
protected double overage; // 余额
protected double annualInterestRate; // 年利率
/**
* 参数化构造器方法。
*
* 用于开户。
* @param accountNumber 预设账号
* @param overage 初始余额
* @param annualInterestRate 预设年利率
*/
public Account(String accountNumber, double overage, double annualInterestRate) {
super();
// 设定账号。
this.accountNumber = accountNumber;
// 设定初始余额,至少为零。
this.overage = overage = 0 ? overage : 0;
// 设定年利率,至少为零。
this.annualInterestRate = annualInterestRate = 0 ? annualInterestRate : 0;
}
/**
* 查询账号。
* @return 返回账号。
*/
public String getAccountNumber() {
return this.accountNumber;
}
/**
* 设置账号。
* @param accountNumber 新账号。
*/
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
} /**
* 查询余额方法。
* @return 返回账户余额。
*/
public double getOverage() {
return this.overage;
} /**
* 存款方法。
* @param money 要存入的金额。
* @return 返回true时存款成功,否则存款失败。
*/
public boolean depositMoney(double money) {
// 如果金额小于零,则不能存款
if (money = 0)
return false;
// 否则将相应的金额累加到账户余额中
this.overage += money;
return true;
}
/**
* 取款方法。
*
* 默认不能透支。
* @param money 要取出的金额。
* @return 返回true时取款成功,否则取款失败。
*/
public boolean drawMoney(double money) {
// 如果账户余额不足,则不能取款
if (this.overage money)
return false;
// 否则从账户余额中扣除相应的金额
this.overage -= money;
return true;
} /**
* 查询年利率。
* @return 返回年利率。
*/
public double getAnnualInterestRate() {
return this.annualInterestRate;
} /**
* 设置年利率。
* @param annualInterestRate 新的年利率。
*/
public void setAnnualInterestRate(double annualInterestRate) {
this.annualInterestRate = annualInterestRate;
}
}
--------------------------------------------------
/**
* 借记卡账户。
*
* 不能透支。
* @author CodingMouse
* @version 1.0
*/
public class DebitCardAccount extends Account { /**
* 重写父类构造器。
* @param accountNumber 预设账号
* @param overage 初始余额
* @param annualInterestRate 预设年利率
*/
public DebitCardAccount(String accountNumber, double overage,
double annualInterestRate) {
super(accountNumber, overage, annualInterestRate);
}}
-------------------------------------------------
/**
* 信用卡账户。
*
* 可以透支。
* @author CodingMouse
* @version 1.0
*/
public class CreditCardAccount extends Account { private double overdraftLimit; // 透支限度
/**
* 重载构造器。
*
* 便于构建可透支的信用卡账户实例。
* @param accountNumber 预设账号
* @param overage 初始余额
* @param annualInterestRate 预设年利率
* @param overdraftLimit 透支限度
*/
public CreditCardAccount(String accountNumber, double overage,
double annualInterestRate, double overdraftLimit) {
super(accountNumber, overage, annualInterestRate);
this.overdraftLimit = overdraftLimit;
} /**
* 查询透支限度的方法。
* @return 透支限度金额。
*/
public double getOverdraftLimit() {
return this.overdraftLimit;
} /**
* 设置透支限度的方法。
* @param overdraftLimit 新的透支限度金额。
*/
public void setOverdraftLimit(double overdraftLimit) {
// 透支限度必须为零和正数,否则为零。
this.overdraftLimit = overdraftLimit = 0 ? overdraftLimit : 0;
} /**
* 重写父类构造器。
* @param accountNumber 预设账号
* @param overage 初始余额
* @param annualInterestRate 预设年利率
*/
public CreditCardAccount(String accountNumber, double overage,
double annualInterestRate) {
super(accountNumber, overage, annualInterestRate);
} /**
* 重写父类取款方法。
*
* 将默认不能透支的取款改为可以透支的取款。
* @param money 要取出的金额。
* @return 返回true时取款成功,否则取款失败。
*/
@Override
public boolean drawMoney(double money) {
// 如果账户余额 + 透支限度的总金额仍不足,则不能取款
if (this.overage + this.overdraftLimit money)
return false;
// 否则从账户余额中扣除相应的金额
this.overage -= money;
return true;
}}
------------------------------------------
/**
* 测试账户使用。
*
* @author CodingMouse
* @version 1.0
*/
public class Test { /**
* 主程序方法。
* @param args 入口参数。
*/
public static void main(String[] args) {
// 创建一个不能透支的借记卡账户。
System.out.println("------------ 借记卡账户 ------------");
DebitCardAccount debitCardAccount = new DebitCardAccount("CHK20100117001", 100, 0.02);
// 初始余额有100元,调用并打印取90元和取120元的结果。
System.out.println("取90元的结果:" + debitCardAccount.drawMoney(90));
// 重新存入90元
debitCardAccount.depositMoney(90);
System.out.println("取120元的结果:" + debitCardAccount.drawMoney(120));
// 创建一个可以透支的信用卡账户。
System.out.println("------------ 信用卡账户 ------------");
CreditCardAccount crebitCardAccount = new CreditCardAccount("CHK20100117002", 100, 0.03, 50);
// 初始余额有100元,并且透支限度为50元,调用并打印取90元、取120元和取160元的结果。
System.out.println("取90元的结果:" + crebitCardAccount.drawMoney(90));
// 重新存入90元
crebitCardAccount.depositMoney(90);
System.out.println("取120元的结果:" + crebitCardAccount.drawMoney(120));
// 重新存入120元
crebitCardAccount.depositMoney(120);
System.out.println("取160元的结果:" + crebitCardAccount.drawMoney(160));
}
}
-------------------------------------- 在我机器上的测试打印结果为: ------------ 借记卡账户 ------------
取90元的结果:true
取120元的结果:false
------------ 信用卡账户 ------------
取90元的结果:true
取120元的结果:true
取160元的结果:false ----------------------------------------- 这个题目只是简单考查了下封装、继承、多态三大面向对象特性,我提供的代码仅作参考。 如果你懒得复制,想要程序源代码文件或有不明白的地方,可以发邮件到我QQ邮箱,我再回给你。
Q2: 求JAVA实现用户登录界面代码?
java开户代码你要先学会截图哦,你发的看不清楚,重新写java开户代码了一个你参考参考!
import java.awt.GridLayout;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
public class Day30A extends JFrame {
private static final long serialVersionUID = 1L;
private JLabel labelName,labelId,labelPass,labelMoney,labelSelect,labelCar;
private JComboBoxString jcb;
private JPanel jp1,jp2,jp3,jp4,jp5,jp6,jp7;
private ButtonGroup btg;
private JRadioButton jr1,jr2;
Day30A(){
this.setTitle("注册账户");
this.setLayout(new GridLayout(7,1));
this.setSize(300,280);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
init();
this.setVisible(true);
}
private void init() {
String str="卡片类型1,卡片类型2,卡片类型3,卡片类型4,卡片类型5";
jcb=new JComboBox(str.split(","));
labelId=new JLabel("账号: ");
labelName=new JLabel("姓名: ");
labelPass=new JLabel("密码: ");
labelMoney=new JLabel("开户金额:");
labelSelect=new JLabel("存款类型:");
labelCar=new JLabel("卡片类型:");
addFun1();
addFun2();
}
private void addFun2() {
this.add(jp1);
this.add(jp2);
this.add(jp3);
this.add(jp4);
this.add(jp5);
this.add(jp6);
this.add(jp7);
}
private void addFun1() {
jp1=new JPanel();
jp1.add(labelId);
jp1.add(new JTextField(15));
jp2=new JPanel();
jp2.add(labelName);
jp2.add(new JTextField(15));
jp3=new JPanel();
jp3.add(labelPass);
jp3.add(new JTextField(15));
jp4=new JPanel();
jp4.add(labelMoney);
jp4.add(new JTextField(13));
jp5=new JPanel();
jp5.add(labelSelect);
btg=new ButtonGroup();
jr1=new JRadioButton("定期");
jr2=new JRadioButton("活期",true);
btg.add(jr1);
btg.add(jr2);
jp5.add(jr1);
jp5.add(jr2);
jp6=new JPanel();
jp6.add(labelCar);
jp6.add(jcb);
jp7=new JPanel();
jp7.add(new JButton("确定"));
jp7.add(new JButton("取消"));
}
public static void main(String[] args) {
new Day30A();
}
}
关于java开户代码和java银行开户的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








