首页 > 其他分享 >COMP 2012食品订购系统实现办法

COMP 2012食品订购系统实现办法

时间:2024-04-01 10:57:47浏览次数:24  
标签:菜单 const int COMP Food 订购 构造函数 食品 2012

P 2012课业1:食品订购系统,2024年3月29日,23:23COMP 2012面向对象编程与数据结构课业1食品订购系统来源:DALL-E介绍在本课业中,我们将结合面向对象编程(OOP)的概念并利用C++构建了一个订餐系统。我们将利用权力OOP概念,如类和对象,买家和菜单。这些类将封装相关数据和功能,确保正确执行。此外,我们将使用基本的C++结构,如函数,循环和条件语句,以实现添加项等功能菜单、下订单和管理用户交互。

此外,在这项任务中,您将处理这些主要功能。卖方行为COMP 2012课业1:食品订购系统,2024年3月29日,23:23第2页,共19页“视图”菜单“更新”菜单添加食物项目更新食品价格移除食物查看订单处理订单买方任务“视图”菜单下订单查看我的订单复制订单引言结束代码概述以下部分描述了给定的类及其用途。您已获得以下文件:买方.h食物.h菜单.h订单.h订单列表.hmain.cpp现在,让我们快速浏览一下每个文件,其中包括要创建的类和函数食品订购系统。买方类别(Buyer.h)文件Buyer.h是一个C++头文件,定义了一个名为Buyer的类。买方类提供了一种创建和管理具有唯一ID和名称的买家对象的方法。它提供了安全访问这些信息并在必要时对其进行修改的方法。COMP 2012课业1:食品订购系统,2024年3月29日,23:23第3页,共19页类别购买者{私有的int购买者ID;string买方名称;

平民的//默认构造函数买方(int id=0,const string&name=“”);//买方ID的Setter和getter方法int getBuyerId()常量;void setBuyerId(int newId);//买方名称的Setter和getter方法string getBuyerName()常量;void setBuyerName(const string&newName);};买方类别说明所提供的代码定义了一个名为“Buyer”的类,该类表示系统中的购买者。成员变量buyerID:一个整数变量,用于存储买方的唯一标识符。buyerName:一个字符串变量,用于存储买方的名称。建造师买方(int id=0,const string&name=“”)这是“Buyer”类的构造函数。需要两个可选参数来初始化新的`Buyer`对象:id(integer):表示买家id的整数(默认为0)。name(const string&):对买方名称的常量字符串引用(默认值转换为空字符串)。成员函数(Getter和Setter)“Buyer”类提供了在中访问和修改其成员变量的方法受控方式:getBuyerId()const:此函数检索`buyerID的当前值`成员变量,并将其作为整数返回。这是一个**const**函数,意思是保证不修改对象的状态。setBuyerId(int newId):此函数允许您为`buyerID`成员变量。它采用一个整数参数(“newId”)来表示新买家ID。getBuyerName()const:此函数检索`buyerName'成员变量,并将其作为字符串返回。与“getBuyerId”类似,它是**const**函数。setBuyerName(const string&newName):此函数允许您设置新的“buyerName”成员变量的值。它采用常量字符串引用(`newName`)表示买方的新名称。COMP 2012课业1:食品订购系统,2024年3月29日,23:23第4页,共19页通过使用getter和setter,“Buyer”类促进了数据封装。它限制直接访问成员变量,并提供检索和更新的受控方式他们的价值观。食品类别(Food.h)文件Food.h是一个定义Food类的C++头文件。食物类提供以结构化方式表示和管理具有唯一ID、名称和价格。它提供了控制对这些属性的访问的方法,并允许创建现有食品的副本。class食物{私有的int foodID;字符串foodName;浮动价格;平民的//默认构造函数食品(int id=0,const string&name=“”,浮动价格=0.0);

//复制Food的构造函数食品(const食品及其他);//食品ID的沉淀和吸气剂法void setFoodId(int newId);int getFoodId()const;

//食品名称的Setter和getter方法void setFoodName(const string&newName);string getFoodName()常量;

//食品价格的Setter和getter方法void setPrice(float newPrice);float getPrice()const;

};

食物类别说明提供的代码定义了一个名为“Food”的类,该类表示系统成员变量foodID:一个整数变量,用于存储食品的唯一标识符。foodName:一个字符串变量,用于存储食物的名称。price:用于存储食品价格的浮动变量。施工人员“Food”类包括两个用于创建新“Food’对象的构造函数:默认构造函数:食品(int id=0,const string&name=“”,浮动价格=0.0);COMP 2012课业1:食品订购系统,2024年3月29日,23:23第5页,共19页此构造函数采用三个可选参数来初始化新的“Food”对象:id(integer):表示食品id的整数(默认为0)。name(conststring&):对食物名称的常量字符串引用(默认为空字符串)。price(float):表示食品价格的浮点数(默认值为0.0)。复制构造函数:食品(const食品及其他);此构造函数创建现有“Food”对象的深度副本,确保为复制的数据分配独立的内存。完成复制时构造函数任务确保您将其作为委托构造函数来实现。成员函数(Getter和Setter)“Food”类提供了访问和修改其成员变量的方法:getFoodId():返回“foodID”成员变量的当前值。setFoodId(int newId):为“foodID”成员变量设置一个新值。getFoodName():返回“foodName”成员变量的当前值。setFoodName(const string&newName):为`foodName设置一个新值`成员变量。getPrice():返回“price”成员变量的当前值。setPrice(float newPrice):为“price”成员变量设置一个新值。菜单类(Menu.h)文件Menu.h是一个定义Menu类的C++头文件。Menu类提供了管理菜单系统内的食物项目集合的结构化方式。它提供在菜单中添加、删除、显示和管理食物项目的功能。菜单类说明类菜单{私有的食品*foodItems;//食物的动态阵列int currentSize;//当前食品数量int容量;//阵列的最大容量int nextFoodId;//跟踪下一个可用的食品ID

平民的菜单构造函数初始化currentSize并为foodItems分配内存菜单析构函数以释放已分配的内存void addFood(const Food&Food);bool-removeFood(int id);void displayMenu()常量;void manageFoodItems();const Food*getFoodById(int id)const;private://Helper函数bool isFull()const{return currentSize==capacity;}void resizeArray();//根据需要调整阵列的大小int findFoodIndex(int id)const;};COMP 2012课业1:食品订购系统,2024年3月29日,23:23第6页,共19页提供的代码定义了一个名为“Menu”的类,该类表示的菜单系统管理食品。成员变量foodItems:指向“Food”对象的动态数组的指针。此数组存储菜单中包含的实际食物。currentSize:一个跟踪当前食物数量的整数变量存储在“foodItems”数组中的项目。capacity:一个整数变量,用于指定食物项目的最大数量`foodItems的数组可以容纳。nextFoodId:一个整数变量,用作跟踪下一个可用的计数器应该是唯一值的食品ID。然后,此变量用于分配新的添加到菜单时的食物项目ID(一个新的唯一值)。公共成员功能Menu()(构造函数):此构造函数初始化“Menu”对象。它设置`currentSize`为0,'nextFoodId'为1,并为'foodItems'数组分配内存具有选定的初始容量。注:开始时将容量值指定为10。~Menu()(析构函数):这个析构函数负责释放分配的内存对于“foodItems”数组,当“Menu”对象超出范围时,会阻止内存泄漏。addFood(const Food&Food):此函数向菜单中添加一个新的食物项目。它引用“Food”对象(“Food”)并将其添加到“foodItems”数组中。removeFood(int id):此函数根据菜单中的ID(`ID`)。它搜索具有匹配ID的食物,并将其从`foodItems数组。displayMenu()const:这个函数显示所有食物的信息当前在菜单中。它遍历“foodItems”数组,并显示的详细信息每种食物。manageFoodItems():此函数提供了一个界面,用于管理菜单。它提供了添加、删除、编辑或对食物执行其他操作的选项项目。getFoodById(int id)const:此函数检索指向“Food”对象的指针根据其ID(“ID”)从菜单中选择。它搜索具有匹配ID的食物并返回指向它的指针,如果未找到,则返回“nullptr”。

更改为2024年3月18日上午10:57:骨架代码zip文件现在使用新的Menu.cpp文件更新。01:57 AM 17/03/2024:在OrderList类描述中findOrder(int orderId)const函数详细信息已更新。此外,In Menu类描述nextFoodIdvariable和getFoodById(int id)const函数的详细信息将被更新。01:26 AM 17/03/2024:在Order类描述中,有关Order()和的更多详细信息添加了cloneOrder(const Order&other)以进行进一步澄清。

情况1:{cout<<“当前菜单项:”<<endl;displayMenu();if(isFull()){cout<<“菜单已满。无法添加更多食物。”回来}//获取食物详细信息的用户输入字符串名称;浮动价格;//确保它是浮动的以匹配构造函数cout<<“输入食品名称:”;cin>>名称;cout<<“输入食品价格:”;cin>>价格;食品新食品(nextFoodId,名称,价格);//在此处使用nextFoodIdaddFood(newFood);cout<<“已成功添加食品。”<endl;打破}

情况1:{cout<<“当前菜单项:”<<endl;displayMenu();//获取食物详细信息的用户输入字符串名称;浮动价格;//确保它是浮动的以匹配构造函数cout<<“输入食品名称:”;cin>>名称;cout<<“输入食品价格:”;cin>>价格;食品新食品(nextFoodId,名称,价格);//在此处使用nextFoodIdaddFood(newFood);cout<<“已成功添加食品。”<endl;打破}COMP 2012课业1:食品订购系统,2024年3月29日,23:23第19页,共19页由COMP 2012教学团队维护?2024香港科技大学计算机科学与工程06:1
4 PM 16/03/2024:测试用例部分更新。也可提交ZINC现在05:58 AM 14/03/2024:删除了OrderList类辅助函数cleleList()来自OrderList.h文件。此功能需要在OrderLi中实现的位置析构函数。请下载最新的骨架文件。06:2
2 AM 14/03/2024:更新了Menu类和中Menu()构造函数的定义Order类中的Order()构造函数。变更日志结束

标签:菜单,const,int,COMP,Food,订购,构造函数,食品,2012
From: https://www.cnblogs.com/meryo/p/18107932

相关文章

  • CompletableFuture 异步编排的简单使用
    目录1、创建异步对象2、计算完成时回调方法3、handle方法4、线程串行化方法5、两任务组合-都要完成6、两任务组合-一个完成7、多任务组合如果在我们的业务中某些功能需要其他一些功能执行完成之后才能开始执行(比如获取其他功能的返回结果),这样就需要用到异步编排......
  • COMP 636 助管理其露营系统
    COMP636:Python评估到期时间:2024年3月29日星期五下午5点相当于COMP636等级的40%通过Akoraka提交|学习重要提示这是个人评估。不得与他人合作或商议(例如,确切地告诉他人该做什么或如何做,或者共享或调试人的代码,或使用幽灵作家等),但对一般概念的讨论(例如,循环通常是如何工作的,而不是本......
  • Composite设计模式
    Composite设计模式虚函数继承与父类.又可以携带指针(Delegation)示例代码:component.h->统一父类#pragmaonce#ifndef__COMPONENT__#define__COMPONENT__​classComponent{intvalue;public:Component(intval):value(val){}//定义一个虚函数->......
  • 【componentsearchengine.com网站不容易注册的解决办法,附MPU6050 Proteus原理图仿真模
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、先注册一个国外邮箱注册时注意事项:二、注册componentsearchengine.com网站帐号1.该网站注册注意事项2.一旦帐号注册成功,该网站就可以正常下载了,无需科学上网3.其他问题总结前言最......
  • "peerDependenciesMeta": { "@vue/composition-api": { "optional": true }
    在package.json文件的"peerDependenciesMeta"字段中,你可以为peerDependencies中列出的依赖项提供额外的元数据信息。这里给出的例子:"peerDependenciesMeta":{"@vue/composition-api":{"optional":true}}表示对@vue/composition-api这个peerDepend......
  • 【Docker】常用命令 docker compose
    文章目录什么是DockerCompose基本用法实际示例启动Compose应用停止Compose应用常用选项`-f,--file`:指定Compose文件`-p,--project-name`:指定项目名称高级用法执行单个服务构建服务总结在Docker中,docker-compose命令是用于管理多容器应用的主要命令之一。本文......
  • 24Compact模式启动
    Compact模式启动compact,是压缩的意思.顾名思义,这是一种压缩启动技术.Compact启动模式比wimboot出现得还要晚,是微软在Windows10中才引入的一种启动模式.相比于普通启动和wimboot,compact启动有以下几个优点:1.减少占用C盘空间:compact把系统文件在C盘内直接进行压缩......
  • COMP2017 9017 多类型链表数据结构
    COMP20179017课业2到期时间:2024年3月28日23:59这项任务相当于你最终评估的10%任务描述您的任务是创建一个多类型链表数据结构和与之交互的程序任务分为三个任务,必须按顺序完成。第一部分是链表的基本命令语法、创建、删除、查看等。第二部分是通过插入和删除元素来修改现有的列......
  • COMP3331/9331计算机网络与应用
    COMP3331/9331计算机网络与应用2024年第1学期的转让版本1.0到期时间:2024年4月18日星期四上午11:59(中午)(第10周)1.变更日志版本1.0于2024年3月7日发布。2.目标和学习目标对于此任务,您要在UDP协议上实现一个可靠的传输协议。我们将引用您将在本任务中实现的可靠传输协议简单传......
  • PHP操作CSV/EXCEL的composer包phpoffice/phpspreadsheet
        之前用过PHP读取excel、csv文件的一些库,比如PHPExcel,今天找了一个PHPOffice/PhpSpreadsheet,网上有说现在PHPExcel已经不再维护了,最新的一次提交还是在2017年12月25号,看了一下,phpexcel也还在维护中,不过更新频率不如PhpSpreadsheet。    PhpSpreadsheet需要php环境......