代码如下:
public class Account {
static double min = 10;
String account, name, address;
float balance = 0.0f;
public Account(String account, String name, String address, float balance) {
this.account = account;
this.name = name;
this.address = address;
this.balance = balance;
System.out.println("您账户中原有余额:" + balance);
}
public void deposit(float f) {
this.balance += f;
System.out.println("现存入:" + f);
System.out.println("当前余额:" + balance);
}
public void withdraw(float f) {
if (balance - f < min) {
System.out.println("余额不够,至少保留余额:" + min);
} else {
balance = balance - f;
System.out.println("当前余额:" + balance);
}
}
public void query() {
System.out.println("您的当前余额:" + balance);
}
public static void main(String[] args) {
Account jame = new Account("111111", "张杰", "浙江大学", 200);
jame.deposit(350);
jame.withdraw(300);
jame.withdraw(300);
jame.query();
}
}
编写一个C语言程序模拟银行ATM机的账户管理功能,系统主要实现以下功能
按照你的愿意把空都填好了,VC++ 6.0下编译能通过,有警告信息,运行基本上能用,不过个人认为这个系统有很大的不足,比如输入账号的时候没有输出反馈信息,以及没有对误操作的处理等等。需要的话可以帮你改改!
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define AN 9 //表示账号8位
#define PN 7 //表示密码6位
#define ASN 3 //表示系统中共有3个账户信息
struct Account
{
char accountnumber[AN]; //表示账号信息
char password[PN]; //表示账户的密码信息
double balance; //表示账户的余额
};
struct Account ats[ASN]={{"00000001","123456",100},{"00000002","123456",200},{"00000003","123456",300}};
//ats数组用于存储系统中三个账户的信息
int isCorrect(char *an,char *psd)
{
int i;
for(i=0;i<ASN;i++)
if(strcmp(ats[i].accountnumber,an)==0 && strcmp(psd,ats[i].password)==0)
return 1;
return 0;
}
double getBalance(char *an)
{
int i;
for(i=0;i<ASN;i++)
if(strcmp(an,ats[i].accountnumber)==0)
return ats[i].balance;
}
void deposit(char *an,int amount)
{
int i;
for(i=0;i<ASN;i++)
if(strcmp(an,ats[i].accountnumber)==0)
ats[i].balance+=amount;
}
int withdraw(char *an,int amount)
{
int i;
for(i=0;i<ASN;i++)
if(strcmp(an,ats[i].accountnumber)==0)
return ats[i].balance-=amount;
}
void main()
{
char AccountNumber[AN]={'\0'};
char psd[PN]={'\0'};
int i,errorcount=0;
while(1)
{
printf("\n请输入8位账号:");
for(i=0;i<8;i++)
AccountNumber[i]=getch();
printf("\n请输入6为密码:");
for(i=0;i<6;i++)
{
psd[i]=getch();
putchar('*');
}
if(isCorrect(AccountNumber,psd)==1)
{
int tag,amount;
while(1)
{
printf("\n欢迎登录银行账户管理系统,请选择您要的服务:1、查询余额;2、存款操作;3、取款操作;4、退出系统\n");
scanf("%d",&tag);
switch(tag)
{
case 1:
printf("您现在的余额为%f元\n",getBalance(AccountNumber));
break;
case 2:
printf("请输入您的存款金额:");
scanf("%d",&amount);
deposit(AccountNumber,amount);
printf("存款成功!您的当前余额为:%f元\n",getBalance(AccountNumber));
break;
case 3:
printf("请输入您的取款金额:");
scanf("%d",&amount);
if(amount<=getBalance(AccountNumber))
printf("取款成功!您的当前余额为:%f元\n",withdraw(AccountNumber,amount));
else
printf("取款失败!\n");
break;
case 4:
break;
}
if(tag==4)
break;
}
}
else
{
errorcount++;
if(errorcount==3)
{
printf("您已经连续三次输入错误,系统将自动关闭\n");
break;
}
}
}
}
用java实现银行排队程序,要求模拟银行的业务排队系统,要有界面,实现完成的排队和叫号
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class BankWaiting extends JFrame implements ActionListener {
int total = 0, now = 0;
boolean is1Ready = false, is2Ready = false, is3Ready = false;
int call1, call2, call3;
JFrame jf;
JLabel jr, jl, jl1, j2, jl2, j3, jl3;
JTextField jr4;
JButton jb, jb1, jb2, j1;
JButton workBut1, workBut2, workBut3;
JPanel jp, jp1, jp2;
public BankWaiting() {
setLayout(null);
jf = new JFrame("银行叫号程序");// 窗体
jr = new JLabel("请**号到*号窗口办理业务");
jr.setBounds(300, 10, 800, 50);
jr.setForeground(Color.red);
j1 = new JButton("取号");
j1.addActionListener(this);
jr4 = new JTextField("欢迎");
jr4.setEditable(false);
ButtonGroup bg = new ButtonGroup();
bg.add(j1);
jp = new JPanel();
jl = new JLabel("一号窗口");
jl1 = new JLabel("一号窗口,欢迎你!");
jb = new JButton("下一位");
workBut1 = new JButton("开始办理");
workBut1.addActionListener(this);
jb.addActionListener(this);
jp.setBackground(Color.pink);
jp.setSize(200, 80);// 大小
jp.setLocation(20, 120); // 位置
jf.setLayout(null);
jp1 = new JPanel();
j2 = new JLabel("二号窗口");
jl2 = new JLabel("二号窗口,欢迎你!");
jb1 = new JButton("下一位");
workBut2 = new JButton("开始办理");
jb1.addActionListener(this);
workBut2.addActionListener(this);
jp1.setBackground(Color.pink);
jp1.setSize(200, 80);// 大小
jp1.setLocation(250, 120); // 位置
jf.setLayout(null);
jp2 = new JPanel();
j3 = new JLabel("三号窗口");
jl3 = new JLabel("三号窗口,欢迎你!");
jb2 = new JButton("下一位");
workBut3 = new JButton("开始办理");
workBut3.addActionListener(this);
jb2.addActionListener(this);
jp2.setBackground(Color.pink);
jp2.setSize(200, 80);// 大小
jp2.setLocation(500, 120); // 位置
jf.setLayout(null);
jf.add(jp);
jf.add(jp1);
jf.add(jp2);
jf.add(jr);
jp.add(jl);
jp.add(jl1);
jp.add(jb);
jp.add(workBut1);
jp1.add(j2);
jp1.add(jl2);
jp1.add(jb1);
jp1.add(workBut2);
jp2.add(j3);
jp2.add(jl3);
jp2.add(jb2);
jp2.add(workBut3);
jf.add(j1);
jf.add(jr4);
j1.setBounds(550, 300, 60, 30);
jr4.setBounds(300, 300, 200, 40);
jf.setSize(800, 600);
jf.setVisible(true);
jf.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e) {
String s = "";
if (e.getSource() == j1) {
s = "第" + (++total) + "号,前面还有" + (total - now - 1) + "位顾客!";
jr4.setText(s);
}
if (e.getSource() == jb) {
if (this.hasCustomers()) {
s = "请" + (++now) + "号顾客到一号窗口办理";
call1 = now;
jl1.setText(s);
jr.setText(s);
is1Ready = true;
} else {
s = "当前已经没有顾客了";
jl1.setText(s);
is1Ready = false;
}
} else if (e.getSource() == jb1) {
if (this.hasCustomers()) {
s = "请" + (++now) + "号顾客到二号窗口办理";
call2 = now;
jl2.setText(s);
jr.setText(s);
is2Ready = true;
} else {
s = "当前已经没有顾客了";
jl2.setText(s);
is2Ready = false;
}
} else if (e.getSource() == jb2) {
if (this.hasCustomers()) {
s = "请" + (++now) + "号顾客到三号窗口办理";
call3 = now;
jl3.setText(s);
jr.setText(s);
is3Ready = true;
} else {
s = "当前已经没有顾客了";
jl3.setText(s);
is3Ready = false;
}
}
if (e.getSource() == workBut1) {
if (is1Ready) {
s = call1 + "号顾客正在办理业务。。。";
jl1.setText(s);
is1Ready = false;
}
} else if (e.getSource() == workBut2) {
if (is2Ready) {
s = call2 + "号顾客正在办理业务。。。";
jl2.setText(s);
is2Ready = false;
}
} else if (e.getSource() == workBut3) {
if (is3Ready) {
s = call3 + "号顾客正在办理业务。。。";
jl3.setText(s);
is3Ready = false;
}
}
}
public boolean hasCustomers() {
if (now < total) {
return true;
} else {
return false;
}
}
public static void main(String[] args) {
new BankWaiting();
}
}
有没有银行柜员模拟操作哦
没有。银行的系统是业务系统,没人开发离线模拟,除非是内部联机测试环境。
电子商务模拟软件中,网上银行能实现的功能包括哪些?
网上银行是借助于互联网技术提供信息服务和金融交易服务的网络自助服务系统,网上银行功能可以为客户提供无时间、无地域限制的服务,是企业界开展电子商务、进行网上结算的金融技术平台。网上银行支持实时网上结算,网上银行功能支持网上购物、网上订房、网上订票等电子商务行为,为家庭投资理财提供了极大的方便。
网上银行已向客户推出了网上银行系统的开户银行申请后,可在任一地方利用自有电脑,通过因特网(Intemd)这一信息高速公路与银行的业务网络联网,实现对各项金融业务的查询和交易。如可以对联网银行的营业网点、ATM机、特约商户分布、业务介绍、金融知识等各种银行信息进行查询,也可以进行资金转账、付费、个人质押贷款、外汇买卖、票据挂失等银行业务的实时交易,客户足不出户,就可安全、迅速地实现各项银行业务。
数据结构课设:银行排队系统模拟
用优先级队列来模拟整个过程,每个客户都需要有到达、离开两次入队操作。
建立一个大小为n的数组,来记录每个窗口(接下来的)的空闲时间,初始化全部赋值为0。
这里我们假设有1、2两个窗口,T(1)=T(2)=0
建立一个(按时间的)优先级队列,初始化为空。
假设银行0时开业,下面举例来说明:
第一个客人于1分钟到达,假设这个客人办理业务需要的时间为10分钟(一般模拟过程中,这个时间是在某个范围内随机生成的)。为该用户分配一个空闲窗口1,同时T(1)=11。此时需要入队:
------------------------
------------------------
第二个客人于3分钟时到达,假设这个客人办理业务需要的时间为5分钟。由于T(2)==0<3,说明在这位客人到达时第2号窗口是闲的,那么让他去2号窗口,同时T(2)=3+5=8。然后入队:
-------------------------------------------------
->
-------------------------------------------------
第三个客人于4分钟时到达,假设这个客人办理业务需要的时间为6分钟。此时T(1)=11>4,T(2)=8>4,两个窗口都是忙碌的。但由于T(2)<T(3),我们认为2号窗口相对来说轻松一些,让他去2号窗口排队,同时T(2)=T(2)+6=14。然后入队:
--------------------------------------------------------------------------
->->
---------------------------------------------------------------------------
……
整个过程持续下去,一直到关门时间为止。
上面的示例在队列中只记录了离开时间,实际上还可以记录到达时间、在哪个窗口办理等等信息,这样只需要将这个优先级队列依次执行出队操作,就能统计出平均业务受理时间、平均等待时间、哪个窗口工作量多少.
转载请注明出处51数据库 » 银行模拟系统软件 编写程序模拟银行帐户功能
雘籭檷墢欛