来自Java老师上课实例

//定义的ATM类
public class ATM {
private String num;//编号
private String bankName;//所属银行
private String location;//地址
private int maxMoney;//最大钱数
private int currentMoney;//当前钱数
public void setNum(String num) {
this.num = num;
}
public String getNum() {
return num;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public String getBankName() {
return bankName;
}
public void setLocation(String location) {
this.location = location;
}
public String getLocation() {
return location;
}
public void setMaxMoney(int maxMoney) {
this.maxMoney = maxMoney;
}
public int getMaxMoney() {
return maxMoney;
}
public void setCurrentMoney(int currentMoney) {
this.currentMoney = currentMoney;
}
public int getCurrentMoney() {
return currentMoney;
}

public ATM(String num,String bankName,String location,int maxMoney,int currentMoney)
{
this.num=num;
this.bankName=bankName;
this.location=location;
this.maxMoney=maxMoney;
this.currentMoney=currentMoney;
}

//取款的方法,无返回值,需要提供两个参数,一个是卡对象,一个是取款金额
public void getMoney(BankCard card,String password,int money)
{
if(card.getPassword().equals(password))
{
if(money%100==0)//取款的金额是否是100的倍数
{
if(money<=card.getMoney())//取款金额是否小于等于卡中余额
{
if(money<=this.getCurrentMoney())
//取款金额是否小于等于取款机中当前的余额
{
float temp=card.getMoney();
card.setMoney(temp-money);
//将卡中余额去掉所取得金额
this.setCurrentMoney(this.getCurrentMoney()-money);
//将取款机中的当前余额去掉所取得金额
System.out.println(card.getCardNum()+"在取款机"+this.getNum()+"上取了"+money+"元");
}
}
else
{
System.out.println("卡中余额不足,取款取消");
}
}
else
{
System.out.println("取款金额不是100的倍数,取款取消");
}
}
else
{
System.out.println("卡号密码错误,取款取消");
}
}

}


//银行卡类
public class BankCard {
private String cardNum;//卡号
private String bankName;//所属银行
private String name;//持卡人姓名
private String ID;//持卡人的身份证号
private String password;//密码
private float money;//卡中余额

public void setCardNum(String cardNum) {
String check=checkCardNum(cardNum);
if(check.equals("卡号校验正常"))
{
this.cardNum = cardNum;
}
else
{
System.out.println(check);
this.cardNum="00000000000000000";
}
}
public String getCardNum() {
return cardNum;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public String getBankName() {
return bankName;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setID(String iD) {
if(isContainNoDigit(iD.substring(0,17)))
{
this.ID="000000000000000000";
}
else
{
char ch=iD.charAt(17);//取出最后一位字符
if(((ch>='0')&&(ch<='9'))||(ch=='x')||(ch=='X'))
{
this.ID=iD;
}
else
{
this.ID="000000000000000000";
}
}

}
public String getID() {
return ID;
}
public void setPassword(String password) {
if(isContainNoDigit(password))
{
this.password="000000";
}
else
{
this.password = password;
}
}
public String getPassword() {
return password;
}
public void setMoney(float money) {
if(money>=0)
{
this.money = money;
}
else
{
this.money=0.0f;
}
}
public float getMoney() {
return money;
}

//卡号校验的方法,方法的返回值为字符串,需要一个字符串参数
private String checkCardNum(String cardNum)
{
String result="卡号校验正常";
if(cardNum.length()!=17)
{
result="卡号长度不是17位";
}
else
{
if(isContainNoDigit(cardNum))
{
result="卡号存在有非数字字符";
}
}
return result;
}

//判断字符串中是否包含有非数字字符
private boolean isContainNoDigit(String str)
{
boolean result=false;
for(int i=0;i<str.length();i++)
{
char ch=str.charAt(i);
if((ch<'0')||(ch>'9'))
{
result=true;
break;//如果有一个字符是非数字字符,则停止判断
}
}
return result;
}

public BankCard(String cardNum,String bankName,String name,String iD,String password,float money)
{
String check=checkCardNum(cardNum);
if(check.equals("卡号校验正常"))
{
this.cardNum = cardNum;
}
else
{
System.out.println(check);
this.cardNum="00000000000000000";
}
this.bankName=bankName;
this.name=name;
if(isContainNoDigit(iD.substring(0,17)))
{
this.ID="000000000000000000";
}
else
{
char ch=iD.charAt(17);//取出最后一位字符
if(((ch>='0')&&(ch<='9'))||(ch=='x')||(ch=='X'))
{
this.ID=iD;
}
else
{
this.ID="000000000000000000";
}
}

if(isContainNoDigit(password))
{
this.password="000000";
}
else
{
this.password = password;
}
if(money>=0)
{
this.money = money;
}
else
{
this.money=0.0f;
}
}

}




public class Test {


public static void main(String[] args)
{
//创建一个银行卡类的对象
BankCard bankCard=new BankCard("62270041001100231","建设银行","张三","610101199701200011","123456",1500.5f);
//创建一个ATM对象
ATM atm=new ATM("GS6100001","工商银行","陕科大",100000,95000);
//atm.getMoney(bankCard, "111111", 150);
//atm.getMoney(bankCard, "123456", 150);
//atm.getMoney(bankCard, "123456", 1600);
atm.getMoney(bankCard, "123456", 1200);
}
}

编写一个Java项目,模拟一次包括老师备课,同学上课,布置作业和做作业的课堂教学过程。作业为判断字符串是否为2-重复串及其他字符串操作内容 1. 创建Java项目JavaTeaching2012 2. 创建包cn.qtech.util,在其新建类RepeatedStringEstimator,该类有两个方法:(1)public boolean estimate(String s),用于判断字符串s是不是2-重复串(字符串每个出现的字符出现2次且仅两次),如判断aaaa不是,abddab是,acbcab是。(2)public void stringOperate(),其调用适当的字符串操作完成(a)判断两个字符传”abc”和”acb”是否相同,(b)输出"c:\\java\\jsp\\A.java"第二次出现"\\j"的位置,并输出该位置起到串末的子串 3. 创建包cn.qtech.teaching,在其新建抽象类UniversityPeople,包含一个抽象方法void doDuty(TeachingMessage msg),表示某人完成自己的任务。 4. 在包cn.qtech.teaching创建枚举类型TeachingState,其包括常量BEIKE, TINGKE, BUZHIZUOYE, ZUOZUOYE,分别表示备课,听课,布置作业,做作业 5. 在包cn.qtech.teaching创建Student类继承自UniversityPeople,该类有成员变量name及name的getter/setter方法。实现的doDuty(TeachingMessage msg)方法如果判断msg的状态为BEIKE,则修改msg状态为TINGKE并输出:"老师"+msg老师对象名+"备完课后,去听课!";如果判断msg的状态为BUZHIZUOYE,则修改msg状态为ZUOZUOYE并输出:"老师"+msg老师对象名+"布置完课作业后,开始做作业!",然后调用RepeatedStringEstimator的两个方法输出作业结果 6. 在包cn.qtech.teaching创建Teacher类继承自UniversityPeople,该类有成员变量name及name的getter/setter方法。实现的doDuty(TeachingMessage msg)方法如果判断msg的状态为TINGKE,则修改msg状态为BUZHIZUOYE并从msg获得并输出听课学生名单,然后输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值