軟件設計師案例分析當天每日一練試題地址:www.jazzmuze.com/exam/ExamDayAL.aspx?t1=4
往期軟件設計師每日一練試題匯總:www.jazzmuze.com/class/27/e4_1.html
軟件設計師案例分析每日一練試題(2024/2/24)在線測試:www.jazzmuze.com/exam/ExamDayAL.aspx?t1=4&day=2024/2/24
點擊查看:更多軟件設計師習題與指導
軟件設計師案例分析每日一練試題內容(2024/2/24)
閱讀下列說明和Java代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。
【說明】
某圖書管理系統(tǒng)中管理著兩種類型的文獻:圖書和論文?,F(xiàn)在要求統(tǒng)計所有館藏文獻的總頁碼(假設圖書館中有一本540頁的圖書和兩篇各25頁的論文,那么館藏文獻的總頁碼就是590頁)。采用Visitor(訪問者)模式實現(xiàn)該要求,得到如圖6-1所示的類圖。
圖6-1 Visitor模式類圖
【Java 代碼】
import java.util.*;
interface LibraryVisitor {
(1) ;
(2) ;
void printSum();
}
class LibrarySumPrintVisitor implements LibraryVisitor { //打印總頁數(shù)
private int sum = 0;
public void visit(Book p_book) {
sum = sum + p_book.getNumberOfPages();
}
public void visit(Article p_article) {
sum = sum + p_article.getNumberOfPages();
}
public void printSum(){
System.out.println("SUM = " + sum);
}
}
interface LibraryItemInterface {
(3) ;
}
class Article implements LibraryItemInterface{
private String m_title; //論文名
private String m_author; //論文作者
private int m_start_page;
private int m_end_page;
public Article(String p_author, String p_title,int p_start_page,int p_end_page){
m_title=p_title;
m_author= p_author;
m_end_page=p_end_page;
}
public int getNumberOfPages(){
return m_end_page - m_start_page;
}
public void accept(LibraryVisitor Visitor){
(4) ;
}
}
class Book implements LibraryItemInterface{
private String m_title; //書名
private String m_author; //書作者
private int m_pages; //頁教
public Book(String p_author, String p_title,int p_ pages){
m_title= p_title;
m_author= p_author;
m_pages= p_pages;
}
public int getNumberOfPages(){
return m_pages;
}
public void accept(LibraryVisitor visitor){
(5) ;
}
}
信管網(wǎng)試題答案與解析:www.jazzmuze.com/st/3815617324.html
信管網(wǎng)考友試題答案分享:
信管網(wǎng)試題答案與解析:
www.jazzmuze.com/st/3815617324.html