試題一:閱讀下列說(shuō)明和c++代碼,將應(yīng)填入 (n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi).
【說(shuō)明】
某實(shí)驗(yàn)室欲建立一個(gè)實(shí)驗(yàn)室環(huán)境監(jiān)測(cè)系統(tǒng),能夠顯示實(shí)驗(yàn)室的溫度、濕度以及潔凈度等環(huán)境數(shù)據(jù)。當(dāng)獲取到最新的環(huán)境測(cè)量數(shù)據(jù)時(shí),顯示的環(huán)境數(shù)據(jù)能夠更新。
現(xiàn)在采用觀察者(observer)模式來(lái)開發(fā)該系統(tǒng)。觀察者模式的類圖如圖5-1所示。
【c++代碼】
#include
#include
using namespace std;
class observer {
public:
virtual void update(float temp, float humidity, float cleanness)=0;
};
class subject {
public:
virtual void registerobserver(observer* o) = 0; //注冊(cè)對(duì)主題感興趣的觀察者
virtual void removeobserver(observer* o) = 0; //刪除觀察者
virtual void notifyobservers() = 0;//當(dāng)主題發(fā)生變化時(shí)通知觀察者
};
class environmentdata : public (1) {
private:
vector
float temperature, humidity, cleanness;
public:
void registerobserver(observer* o) { observers.push_back(o); }
void removeobserver(observer* o) { /* 代碼省略 */ }
void notifyobservers() {
for(vector
{ (2) ; }
}
void measurementschanged() { (3) ; }
void setmeasurements(float temperature, float humidity, float cleanness) {
this->temperature = temperature;
this->humidity = humidity;
this->cleanness = cleanness;
(4) ;
}
};
class currentconditionsdisplay : public (5) {
private:
float temperature, humidity, cleanness;
subject* envdata;
public:
currentconditionsdisplay(subject* envdata) {
this->envdata = envdata;
(6) ;
}
void update(float temperature, float humidity, float cleanness) {this->temperature = temperature;
this->humidity = humidity;
this->cleanness = cleanness;
display();
}
void display() { /* 代碼省略 */ }
};
int main() {
environmentdata* envdata = new environmentdata();
currentconditionsdisplay* currentdisplay = new currentconditionsdisplay(envdata);
envdata->setmeasurements(80, 65, 30.4f);
return 0;
}
查看答案
參考答案:
參考解析:m.xiexiliangjiufa.com/st/3814319684.html
信管網(wǎng)考友試題答案分享:
信管網(wǎng)wangly:
1) subject
2) observers.get(it).update(temperature, humidity, cleanness)
3) this.notifyobservers()
4) this.measurementschanged()
5) observer
6) this.envdata.registerobserver(this)
7)
試題二:閱讀下列說(shuō)明和java代碼,將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
現(xiàn)欲開發(fā)一個(gè)軟件系統(tǒng),要求能夠同時(shí)支持多種不同的數(shù)據(jù)庫(kù),為此采用抽象工廠模式設(shè)計(jì)該系統(tǒng)。以sql server和access兩種數(shù)據(jù)庫(kù)以及系統(tǒng)中的數(shù)據(jù)庫(kù)表department為例,其類圖如圖6-1所示。
圖6-1 類圖
【java代碼】
import java.util.*;
class department{/*代碼省略*/}
interface idepartment{
(1) ;
(2) ;
}
class sqlserverdepartment (3) {
public voidinsert(department department){
system.out.println(”insert a record into department in sql server!");
∥其余代碼省略
}
public department getdepartment(int id){
/*代碼省略*/
}
}
classaccessdepartment(4) {
public void insert(department department){
system.out.println("insert a record into department in access!”);
∥其余代碼省略
}
public department getdepartment(int id){
/*代碼省略*/
}
}
(5) {
(6) ;
}
class sqlserverfactory implements ifactory{
public idepartment createdepartment(){
retum new sqlserverdepartment();
}
∥其余代碼省略
}
class accessfactory implements ifactory{
public idepartment createdepartment(){
return new accessdepartment();
}
∥其余代碼省略
}
查看答案
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)以權(quán)威部門公布的內(nèi)容為準(zhǔn)!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛(ài)好者、大學(xué)生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過(guò)深研歷年考試出題規(guī)律與考試大綱,深挖核心知識(shí)與高頻考點(diǎn),為學(xué)員考試保駕護(hù)航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。
發(fā)表評(píng)論 查看完整評(píng)論 | |