- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我要做的是使用类 vector 而不是并行 vector ,将所有数据存储在代码的“收据”部分。
我首先做的是使用并行 vector 来执行此操作(这就是代码中所写的内容),但现在我需要使用类 vector ,但我不确定该怎么做。执行此操作的正确方法是什么?
#include <iostream>
#include <string>
#include <cmath>
#include <cctype>
#include <iomanip>
#include <vector>
#include <fstream>
#include <cstdlib>
using namespace std;
vector <string> flavor;
vector <string> sizes;
vector <double> price;
void printWelcomeMessage() {
cout << "Welcome to My Frozen Yogurt!" << endl;
cout << endl;
cout<< endl;
}
char toLowerCase (char c) {
char c_lower = c;
if ( (c >= 'A') && (c <= 'Z')) c_lower = c + 32;
return c_lower;
}
void toLowerCase (string& str) {
for (int k=0; k< str.size(); k++) {
str[k] = toLowerCase (str[k]);
}
return;
}
double getYogurtSize(string& yogurtSize) {
double subtotal=0.;
const double TAX= 0.0875, SMALLSIZE= 2.19, MEDIUMSIZE = 3.49, LARGESIZE = 4.49;
cout << "What size would you like? Please enter small, medium, or large: ";
getline(cin,yogurtSize);
toLowerCase(yogurtSize);
//push_back to enter content into vector
sizes.push_back(yogurtSize);
//pop_back to delete any times the user mispells the size
if (yogurtSize != "small" && yogurtSize != "medium" && yogurtSize != "large")
sizes.pop_back();
while (yogurtSize != "small" && yogurtSize != "medium" && yogurtSize != "large") {
cout << "What size would you like? Please enter small, medium, or large: ";
getline (cin, yogurtSize);
sizes.push_back(yogurtSize);
}
if (yogurtSize== "small") {
subtotal += SMALLSIZE;
price.push_back(SMALLSIZE); }
else if (yogurtSize == "medium") {
subtotal += MEDIUMSIZE;
price.push_back(MEDIUMSIZE); }
else if (yogurtSize=="large") {
subtotal+= LARGESIZE;
price.push_back(LARGESIZE); }
return subtotal;
}
void getYogurtFlavors(string& flavor1, string& flavor2, string& flavor3) {
cout << "Enter flavor 1: ";
getline (cin, flavor1);
toLowerCase (flavor1);
//use push_back to into content into vector
flavor.push_back(flavor1);
flavor.push_back("-");
cout << "Enter flavor 2: ";
getline (cin, flavor2);
toLowerCase(flavor2);
flavor.push_back(flavor2);
flavor.push_back("-");
cout << "Enter flavor 3: ";
getline (cin, flavor3);
toLowerCase(flavor3);
flavor.push_back(flavor3);
flavor.push_back("-");
}
// function printOrder prints out the flavors of each input
void printOrder (string yogurtSize, string flavor1, string flavor2, string flavor3, int){
int orderNumber= 0;
orderNumber++;
cout<< endl;
cout << "************************" << endl;
cout << "Order: " << orderNumber << flavor1.substr(0,4) << "-" << flavor2.substr(0,4) << "-"<< flavor3.substr(0,4) << " " << yogurtSize << endl;
cout << "************************" << endl;
cout << endl;
return;
}
bool addAnotherOrderQ(){
string order;
string yes = "yes";
string no = "no";
bool moreorders= true;
cout << "Would you like another order? ";
getline (cin, order );
while (order != yes && order != no) {
cout << "Would you like another order? Please enter yes or no: ";
getline (cin, order);
cout << endl;
}
if (order == no){
moreorders= false;
cout << endl;
}
return moreorders;
}
void printTotalCosts (double& subtotal, int& orderNumber) {
const double TAX= 0.0875;
int setpre= 2;
int totalwidth=15;
int taxwidth= 9;
int subwidth =12;
int itemwidth= 6;
cout << "===================== Receipt ===========================" << endl;
cout << endl;
// for for loops to print the size, flavors, and price in the receipt screen, and in the file
for (int i=0; i< flavor.size(); i++) {
cout << flavor[i].substr(0,4)<< " ";
}
for (int i=0; i< sizes.size(); i++) {
cout << sizes[i]<< " " ;
}
for (int i=0; i < price.size(); i++) {
cout << price[i] << endl;
}
cout << "Number of items: " << setw(itemwidth) << orderNumber << endl;
cout << "Subtotal: " << "$" << fixed << setprecision (setpre) << setw (subwidth) << subtotal << endl;
cout << "Tax (8.75%): " << "$"<< setw(taxwidth) << TAX * subtotal << endl;
cout << "Total: " << "$" << setw(totalwidth) << (TAX *subtotal) + subtotal << endl;
cout << endl;
cout << "=========================================================" <<endl;
cout << endl;
}
class YogurtOrder {
public:
YogurtOrder (); //default constructor
YogurtOrder (string, string, string, string, double); //constructor with parameters: size, flavor1, flavor2, flavor3, and price
string getSize ();
string getMixedFlavor ();
double getPrice ();
private:
string size;
string flavor1, flavor2, flavor3;
double price;
};
YogurtOrder:: YogurtOrder() {}
YogurtOrder:: YogurtOrder (string s, string first, string second, string third, double p){
s= size;
first= flavor1;
second= flavor2;
third= flavor3;
p= price;
}
string YogurtOrder:: getSize () {
return size;
}
string YogurtOrder:: getMixedFlavor() {
return flavor1, flavor2, flavor3;
}
double YogurtOrder:: getPrice() {
return price;
}
int main () {
const double TAX= 0.0875;
int setpre= 2;
int totalwidth=15;
int taxwidth= 9;
int subwidth =12;
int itemwidth= 6;
//Print the welcome message
printWelcomeMessage();
// initialize the loop variables
bool more_order = true;
int orderNumber= 0;
// varible for cost
double subtotal= 0.;
//variable for suze and flavors default intitialized to ""
string yogurtSize, flavor1, flavor2, flavor3, order;
//continye to get order until the user is done
while (more_order) {
//increment order number
orderNumber++;
//update the size and subtotal
subtotal= subtotal +getYogurtSize(yogurtSize);
//update the flavors
getYogurtFlavors(flavor1, flavor2, flavor3);
// print the current order
printOrder (yogurtSize, flavor1, flavor2, flavor3, orderNumber);
//determine whther or not to order more
more_order= addAnotherOrderQ();
}
// Print out the subtotal, tax, and total
vector <YogurtOrder> flavors;
printTotalCosts(subtotal, orderNumber);
return 0;
}
最佳答案
你需要做的是创建一个必要的数据成员类,如下所示:
'
class FrozenYogurt
{
private:
string flavor;
string size;
double price;
public:
//constructor
public FrozenYogurt(string f,string s,double p)
{
this.flavor=f;
this.size=s;
this.price=p;
}
//Getters
public string getFlavor(){return this.flavor;}
public string getSize(){return this.size;}
public double getPrice{return this.price;}
....//All other necessary functions
}
然后像这样制作这个类的 vector :
vector<FrozenYogurt> listOfItems;
你可以制作 FrozenYogurt 的对象并像这样插入到这个 vector 列表中
string flavor="somthing";
string size="somthing";
double price=123;
FrozenYogurt item(flavor,size,price);
listOfItems.push_back(item);
现在您可以像这样访问项目:
listOfItems[index].getSize();
listOfItems[index].getFlavor();
listOfItems[index].getPrice();
关于c++ - 我正在尝试使用类 vector 编写代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30657171/
说真的,你怎么能在不发疯的情况下处理所有这些异常呢?我是不是读了太多关于异常处理的文章或什么?我尝试重构了几次,但每次似乎都以更糟糕的结果告终。也许我应该承认确实会发生异常(exception)情况,
背景 两者 try/rescue和 try/catch是 Elixir 中的错误处理技术。根据 corresponding chapter在介绍指南中。 Errors can be rescued u
每当我尝试在 Raspberry PI 上运行此 python 脚本时,我都会遇到问题: import socket import sys # Create a TCP/IP socket sock
我想知道一些关于 PHP 的 try , catch声明。 让我们考虑以下示例。 abstract class ExceptionA extends Exception {} class Except
我的 laravel v5.4 项目中有两个模型,user 和 admin。 在 config/auth.php 中,我向守卫和提供者添加了管理员,如下所示: 'guards' => [ 'w
try: r = requests.get(url, params={'s': thing}) except requests.ConnectionError, e: print e
我有以下代码。 但是,它并不能捕获所有错误,而我仍然会收到“throw er;//未处理的'错误'事件”。 为什么是这样? app.post('/api/properties/zip/:zip/bed
问题与细节 我正在使用自定义错误处理,遇到的错误之一是“路径中的非法字符”。我有一个自定义函数,旨在通过路径字符串查找此类非法字符,并在找到它们时引发自定义错误。但是我发现,取决于非法字符,Test-
This question already has answers here: How do I catch a numpy warning like it's an exception (not j
我正在使用其他人的代码,但我不熟悉try/catch,因此我举了一个类似的小例子。在第11行上,如果我写了error(''),似乎没有发现错误并增加了索引j。但是,编写error(' ')或error
我在我的一个程序中遇到了这个问题,在这种情况下,尝试/异常(exception)的错误使程序变得更好,以防用户意外输入了他们不应该输入的内容。它仍然给我错误,我为为什么感到困惑。如果对我的问题确实很重
我在尝试TRY ... CATCH块时遇到问题。有人可以解释为什么以下代码无法执行我的sp吗? DECLARE @Result int SET @Result = 0 BEGIN TRY SE
我有一个相当大的 powershell 脚本,其中包含许多(20 多个)执行各种操作的函数。 现在所有代码实际上都没有任何错误处理或重试功能。如果某个特定的任务/功能失败,它就会失败并继续。 我想改进
为什么我尝试时需要导入 inputmismatchException catch(InputMismatchException e){ System.out.println("
我对此感到困惑 - 我为辅助方法编写了一个 try/catch 。它的目的是捕获任何无效输入(任何不是“男性”或“女性”的内容(没有特定情况)。如果输入无效,它将通知用户,然后让他们重试。如果有效,则
我有时会发现自己处于如下场景。尽可能简单地陈述问题 “有时我会创建一段代码,Java 让我将其包含在 try/catch 语句中。我没有使用 catch,所以我将其留空。为什么这是错误的?” boo
我有点困惑为什么当我不使用 Try block 时会出现 Try block 错误。 我在代码块底部附近收到错误通知。如果我不使用 try/catch,有人可以向我解释为什么会发生这种情况吗? 它是否
我已经盯着我的电脑两个小时了,我不知道我做错了什么。谁能帮助我看到光明? package blackjack; import java.util.Random; import java.util.Sc
我想将方法保存在 Enum 中,但 Class.getDeclaredMethod 抛出 NoSuchMethodException,那么我该如何处理呢?我的代码: public enum Car
这个问题已经有答案了: Executing multi-line statements in the one-line command-line (18 个回答) 已关闭 3 年前。 如何使用try.
我是一名优秀的程序员,十分优秀!