区块链应用设计与开发_任务七课后题答案.docxVIP

  • 0
  • 0
  • 约8.3千字
  • 约 6页
  • 2026-03-13 发布于广东
  • 举报

区块链应用设计与开发_任务七课后题答案.docx

任务七课后题答案

操作题

1.跟随本任务完成货运追踪智能合约的开发并成功调用运行。

//SPDX-License-Identifier:MIT

pragmasolidity^0.8.0;

contractBuySell{

structItem{

uintItemId;

stringname;

uintamount;

}

structBuyer{

uintBuyerId;

addressBuyerAddress;

boolisBuyer;

uintOrderCount;//totalnumbeoforderplaced

}

structOrder{

uintOrderId;

uintBuyerId;

uintItemId;

uintamount;

boolShipped;//canonlybechangedbyseller

boolFinished;//canonlybechangedbybuyer

}

//moretodo:

//seperatefinishedandunfinishedorders

//buyerscanplaceorderwithitemname

//theaddressdeploysthecontractwillbetheseller

constructor(){

Seller=msg.sender;

}

addresspublicSeller;

//createlistofitems,buyers,abdorders

Item[]privateitems;

Buyer[]privatebuyers;

Order[]privateorders;

//sellercreateitemwithid,name,amount

functioncreateItem(stringmemory_name,uint_quantity)public{//

require(msg.sender==Seller,OnlySellercanadditem.);

items.push(Item(items.length,_name,_quantity));

}

//sellerregisteraaddressasbuyer

functionregBuyer(address_address)public{

require(msg.sender==Seller,OnlySellercanaddbuyer.);

buyers.push(Buyer(buyers.length,_address,true,0));

}

//showthelistofitems/buyers/orders

functiongetAllItems()publicviewreturns(Item[]memory){

returnitems;

}

functiongetAllBuyers()publicviewreturns(Buyer[]memory){

returnbuyers;

}

functiongetAllOrders()publicviewreturns(Order[]memory){

returnorders;

}

functiongetOrderStatus(uint_id)publicviewreturns(Ordermemory){

returnorders[_id];

}

//manageitemamount

functionupdateItemQuantity(uint_id,uint_newQuantity)public{

require(_iditems.length,It

文档评论(0)

1亿VIP精品文档

相关文档