軟件設(shè)計(jì)師案例分析當(dāng)天每日一練試題地址:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4
往期軟件設(shè)計(jì)師每日一練試題匯總:m.xiexiliangjiufa.com/class/27/e4_1.html
軟件設(shè)計(jì)師案例分析每日一練試題(2023/5/26)在線(xiàn)測(cè)試:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2023/5/26
點(diǎn)擊查看:更多軟件設(shè)計(jì)師習(xí)題與指導(dǎo)
軟件設(shè)計(jì)師案例分析每日一練試題內(nèi)容(2023/5/26)
試題六
閱讀下列說(shuō)明、圖和c++代碼。
[說(shuō)明]
某訂單管理系統(tǒng)的部分UML類(lèi)圖如下圖所示。
上圖中,Product表示產(chǎn)品,ProductList表示產(chǎn)品目錄,Order表示產(chǎn)品訂單,OrderItem表示產(chǎn)品訂單中的一個(gè)條目,OrderList表示訂單列表,SalesSystem提供訂單管理系統(tǒng)的操作接口。
請(qǐng)完善類(lèi)Order的成員函數(shù)getOrderedAmount()和類(lèi)SalesSystem的stafistic()方法,各個(gè)類(lèi)的屬性及部分方法定義參見(jiàn)下面的C++代碼。
[C++代碼]
class Product { //產(chǎn)品
private:
string pid; //產(chǎn)品識(shí)別碼
string description; //產(chǎn)品描述
double price; ///產(chǎn)品單價(jià)
public:
void setProductPrice(double price); //設(shè)置產(chǎn)品單價(jià)
string getProduetld(); //獲取產(chǎn)品識(shí)別碼
string getProduetDescriprion 0; //獲取產(chǎn)品描述
double getProductPrice0; //獲得產(chǎn)品單價(jià)
//其他成員省略
};
class ProductList { //產(chǎn)品列表類(lèi)
private:
vector <Product> products;
public:
ProductList();
Product getProductBylndex(int i); //獲得產(chǎn)品列表中的第i件產(chǎn)品
void addProduct(Product t); //在產(chǎn)品列表中加入一件產(chǎn)品
Product * getProductByID(string pid); //獲得識(shí)別碼為pid的產(chǎn)品指針
unsigned iht getProductAmount(); //獲得產(chǎn)品列表中的產(chǎn)品婁量
};
class OrderItem { //訂單條目類(lèi)
private:
Product *productPtr; //指向被訂購(gòu)產(chǎn)品的指針
int quantity; //訂購(gòu)數(shù)量
public:
OrderItem (Product *,iht);
Product * getProductptr O; //獲得指向被訂購(gòu)產(chǎn)品的指針
int getQuantity (); //獲取被訂剛強(qiáng)產(chǎn)品數(shù)量
};
class Order { //訂單類(lèi)
private:
unsigned int orderid; //訂單識(shí)別號(hào)
vector<Orderltem> items; //訂單內(nèi)容(訂單項(xiàng))
public:
Order(unsigned int orderid); //獲得識(shí)別碼為fid的產(chǎn)品在當(dāng)前訂單中被訂購(gòu)的數(shù)量
int getOrderedAmount(string fid);
void additem(Product *productPtr,unsigned int n); //在訂單中增加一個(gè)訂單項(xiàng)
};
class OrderList { //訂單列表類(lèi)
private:
vector<Order> orders;
public:
OrderList();
//Begin()返回指向訂單列表第一個(gè)元素的迭代器(指針)
virtual vector<Order>::iterator OrderList::Begin();
//End()返回指向訂單列表最后一個(gè)元素之后的迭代器(指向一個(gè)不存在的元素)
virtual vector<Order>::iterator orderList::End();
void addOrder(Order t); //在訂單列表中加入一份訂單
//其他成員省略
};
class SalesSystem{
private:
ProductList catalog; //產(chǎn)品目錄
OrderList sales; //訂單列表
public:
SalesSystem();
void statistic(); //統(tǒng)計(jì)所有產(chǎn)品的訂購(gòu)情況
//其他成員省略
};
//在訂單中查找識(shí)別碼為tid的產(chǎn)品的訂購(gòu)數(shù)量,若該產(chǎn)品沒(méi)有被訂購(gòu),則返回0
int Order::getOrderedAmount(string tid)
{ for (int k=0; k < items.size(); k++) {
if( (1) ==tid)
return (2) ;
}
return 0;
}
//方法statistic()依次統(tǒng)計(jì)產(chǎn)品目錄中每個(gè)產(chǎn)品的訂購(gòu)總量,并打印輸出
//每個(gè)產(chǎn)品的識(shí)別碼、描述、訂購(gòu)總量和訂購(gòu)金額
void SalesSystem::statistic()
{ unsigned int k, t, ordered_qty = 0;
vector<Order>::iterator it; Product p;
cout<<''產(chǎn)品識(shí)別碼\t描述\t\t訂購(gòu)數(shù)量\t金額''<<endl;
for (k = 0; k < catalog.gctProductAmount(); k++){//遍歷產(chǎn)品列表
p = (3) ; //從產(chǎn)品列表取得一件產(chǎn)品信息存入變量p
ordered_qty = 0;
//通過(guò)迭代器變量it遍歷訂單列表中的每一份訂單
for (it = sales. Begin(); (4) : it++) {
//根據(jù)產(chǎn)品識(shí)別碼獲得產(chǎn)品p在當(dāng)前訂單中被訂購(gòu)的數(shù)量
t = (5) (p.getProductld());
ordered_qty +=t;
}
cout << p.getProducfld() << "\t\t"<< p.gntProductDescription() << "\t\t";
cout <<o(jì)rdered_qty << "\t\t" << p.getProductPrice() * ordered_qty << endl;
}
}
信管網(wǎng)考友試題答案分享:
信管網(wǎng)cnitpm630501712623:
<br /><img src="http://pic.cnitpm.com/upload/2023/05/tbimg/05-26/1685056292.jpg" />
信管網(wǎng)訂閱號(hào)
信管網(wǎng)視頻號(hào)
信管網(wǎng)抖音號(hào)
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)以權(quán)威部門(mén)公布的內(nèi)容為準(zhǔn)!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛(ài)好者、大學(xué)生提供專(zhuān)業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書(shū)、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專(zhuān)業(yè)軟考教研傾力打造,教材和資料參編作者和資深講師坐鎮(zhèn),通過(guò)深研歷年考試出題規(guī)律與考試大綱,深挖核心知識(shí)與高頻考點(diǎn),為學(xué)員考試保駕護(hù)航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿(mǎn)足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。
發(fā)表評(píng)論 查看完整評(píng)論 | |