下面这个程序是设计一个银行帐户类(account),包含以下信息,帐号,储户姓名,开户时间,身份证号码,帐户余额,并要求该类能够完成开户,存款,取款,注销帐户的功能.
并要求在主程序中为储户张三(基本信息:张三,身份证:123456)开一个帐号,要求帐号为系统当前日期加储户身份证号的最后两位组成,开完帐号后,要实现以下功能:
1.为张三的帐号中存如100元
2.张三的帐号中取出80元
3.注销张三的帐号.以下是我写的程序。编译是通过了,但执行是出错了,请问错在哪里?谢谢!
import java.io.*;
import java.lang.*;
import java.util.*;
import java.text.*;
class account
{
String zh; //用户账号
String name; //用户姓名
String time; //开户时间
String ID; //身份证号码
double ye; //账户余额
public account(String b,String d) //构造函数,开设新帐户
{
Calendar cal = Calendar.getInstance();
java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String cdate = sdf.format(cal.getTime());
time =cdate;
zh=time+ID.substring(17,18);
name=b;
ID=d;
ye=0;
System.out.println("开启成攻!");
}
void add(double m) //存款
{
ye=ye+m;
}
void minu(double n) //取款
{
if(ye>=n)
ye=ye-n;
else
{
System.out.println("余额不足!");
}
}
void print() //打印
{
System.out.println("账号:"+zh);
System.out.println("姓名:"+name);
System.out.println("身份证号:"+ID);
System.out.println("余额:"+ye);
System.out.println("开户日期:"+time);
}}
public class Acc
{
public static void main(String args[])
{
account aa=new account("张三","35032219891002621x");
aa.print();
aa.add(100.0);
aa.print();
aa.minu(80.0);
aa.print();
}
}
并要求在主程序中为储户张三(基本信息:张三,身份证:123456)开一个帐号,要求帐号为系统当前日期加储户身份证号的最后两位组成,开完帐号后,要实现以下功能:
1.为张三的帐号中存如100元
2.张三的帐号中取出80元
3.注销张三的帐号.以下是我写的程序。编译是通过了,但执行是出错了,请问错在哪里?谢谢!
import java.io.*;
import java.lang.*;
import java.util.*;
import java.text.*;
class account
{
String zh; //用户账号
String name; //用户姓名
String time; //开户时间
String ID; //身份证号码
double ye; //账户余额
public account(String b,String d) //构造函数,开设新帐户
{
Calendar cal = Calendar.getInstance();
java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String cdate = sdf.format(cal.getTime());
time =cdate;
zh=time+ID.substring(17,18);
name=b;
ID=d;
ye=0;
System.out.println("开启成攻!");
}
void add(double m) //存款
{
ye=ye+m;
}
void minu(double n) //取款
{
if(ye>=n)
ye=ye-n;
else
{
System.out.println("余额不足!");
}
}
void print() //打印
{
System.out.println("账号:"+zh);
System.out.println("姓名:"+name);
System.out.println("身份证号:"+ID);
System.out.println("余额:"+ye);
System.out.println("开户日期:"+time);
}}
public class Acc
{
public static void main(String args[])
{
account aa=new account("张三","35032219891002621x");
aa.print();
aa.add(100.0);
aa.print();
aa.minu(80.0);
aa.print();
}
}
解决方案 »
- spring异常
- 请教一个关于spring事务的入门问题
- eclipse如何安装spring和hibernate插件
- DatabaseMetaData.getTables 的问题
- 求救:createEntityManagerFactory-- NoClassDefFoundError: org/hibernate/proxy/EntityNotFoundDelegate
- 谢谢刚才答复java数据同步的兄台,这里加分了
- 现在技术人的薪水越来越低,还不如做业务的呢
- 请教:怎样用JDBC连Sybase?
- 各路大神
- @mapper换成@repository后无法注入
- 问个很蠢的问题...
- java.lang.IllegalArgumentException: No bean specified
zh=time+ID.substring(17,18); //此时ID为"",怎么会有17,18这样的长度呢
name=b;
ID=d; //这时才有ID
ID=d;
zh=time+ID.substring(17,18);
name=b;
应该是ID.substring(17,19)才对啊!
去身份证号最后两位最好用
zh=time+ID.substring(ID.length()-2,ID.length()-1);//此时ID为"",怎么会有17,18这样的长度呢name=b;
而且就算写死,也应该是zh=time+ID.substring(16,17)他是从0开始的。