登录   |   注册
    准考证打印   论文投票   报考指南   论文辅导   软考培训   郑重申明  
您现在的位置:  首页 > 软考学苑 > 软考历年真题 > 程序员-真题 >> 正文
正文
2019上半年软考程序员下午真题(五)
来源: 作者: 时间;2019-07-16 14:12:57 点击数: 尚大软考交流群:376154208
5、阅读以下说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】现如今线下支付系统可以使用现金(Cash)、移动支付、银行卡(Card)(信用卡 (CreditCard)和储蓄卡(DebitCard))等多种支付方式(PaymentMethod)对物品(Item)账单(Bill)进行支付。图5-1是某支付系统的简略类图。问题内容:【Java代码】Import java.util. ArrayList;import java.util.List;inte
尚大教育,教育至尚,人才为大。

5、阅读以下说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

现如今线下支付系统可以使用现金(Cash)、移动支付、银行卡(Card)(信用卡 (CreditCard)和储蓄卡(DebitCard))等多种支付方式(PaymentMethod)对物品(Item)账单(Bill)进行支付。图5-1是某支付系统的简略类图。

1.jpg

问题内容:

【Java代码】

Import java.util. ArrayList;

import java.util.List;

interface PaymentMethod {

public      (1)       ;

}

// Cash、DebitCard和Item实现略,Item中getPrice( )获取当前物品对象的价格

abstract class Card       (2)      {

private final String name, num;

public Card(String name, String num) {this.name = name; this.num = num; }

@Oveiride

public String toString ( ) {

return String.format(“%s card[name = %s, num = %s]”,this.getType (), name, num);

}

@Override

public void pay(int cents) {

System.out.println(“Payed " + cents + “ cents using “ + toString( ));

this.executeTransaction(cents);

}

protected abstract String getType( );

protected abstract void executeTransaction(int cents);

}

class CreditCard       (3)      {

public CreditCard(String name, String num) {     (4)       ; }

@Override

protected String getType( ) { return "CREDIT"; }

@Override

protected void executeTransaction(int cents) {

System.out.println(cents + " paid using Credit Card. "’);

}

}

class Bill {//包含所有购买商品的账单

private List<Item> items = new ArrayList<>();

public void add(Item item) { items.add(item); }

public intgetTotalPrice( ){/*计算所有 item 的总价格,代码略*/ }

public void pay(PaymentMethod paymentMethod){//用指定的支付方式完成支付

(5)       (getTotalPrice( ));

}

}

public class PaymentSystem {

public void pay( ) {

Bill bill = new Bill( );

Item item1 = new Item("1234",10); Item item2 = new Item( "5678",40);

bill.add(item1); bill.add(item2); //将物品添加到账单中

bill.pay(new CreditCard("LI SI", "98765432101")); //信用卡支付

}

public static void main(String[ ] args) {

(6)     = new PaymentSystem( );

payment.pay( );

}

}

尚大教育,教育至尚,人才为大。
 
   各省软考办 
 
来顶一下
返回首页
返回首页
上一篇:2019上半年软考程序员下午真题(四)
下一篇:2019上半年软考程序员下午真题(六)
 相关文章
 
 
跟贴共
笔 名 :   验证码:
网友评论仅供其表达个人看法,并不表明尚大教育同意其观点或证实其描述
距离2022年05月28-29日软考考试还有
尚大软考交流群:376154208
软考各地考务机构
历年真题汇总




各省市软考报名简章