给我一个问题域。编写一个程序,询问用户他要购买哪些水果以及购买多少水果。根据用户的输入,它将产生一个账单。
交互示例:
你想买水果吗?是

哪个水果橙子

多少磅? 2

您是否要购买另一种水果?是

哪个水果苹果

多少磅? 1.5

您要购买水果吗?没有

谢谢您的生意。

这是你的账单:

水果数量单价价格

橙色2磅1.5 3

苹果1.5磅2 3

总金额6

#include <iostream>
#include <string>
using namespace std;

struct fruitData
{
    string fruitName;
    float price;
};

struct invoiceData
{
    char fruit_ordered;
    float price1;
    float quantity_ordered;
    float totalFruitprice;
} ;


int main()

    char choice;
    string fruit_choice;
    float pounds_choice;
    int count=0;

    fruitData fruits[5];
    invoiceData customers[5];

    strcpy(fruits[0].fruitName, "Banana");
    strcpy(fruits[1].fruitName, "Apple");
    strcpy(fruits[2].fruitName, "Pears");
    strcpy(fruits[3].fruitName, "Oranges");
    strcpy(fruits[4].fruitName, "Papaya");

    fruits[0].price=1;
    fruits[1].price=2;
    fruits[2].price=2.5;
    fruits[3].price=1.5;
    fruits[5].price=1.40;

    strcpy(customers[0].fruitName, "Banana");
    strcpy(customers[1].fruitName, "Apple");
    strcpy(customers[2].fruitName, "Pears");
    strcpy(customers[3].fruitName, "Oranges");
    strcpy(customers[4].fruitName, "Papaya");

    customers[0].price=1;
    customers[1].price=2;
    customers[2].price=2.5;
    customers[3].price=1.5;
    customers[4].price=1.40;


    cout << "Welcome to the fruit market" << endl;
    cout << "Would you like to purchase fruit?" << endl;
    cin >> choice >> endl;

    while (choice == 'Y')
    {
    cout << "Which fruit?" << endl;
    cin >> fruit_choice >> endl;

    cout << "How many pounds?" << endl;
    cin >> pounds_choice >> endl;

    if (fruit_choice == "Banana")
    {
    customers[0].quantity_ordered = pounds_choice;
    customers[0].total_price = customers[0].quantity_ordered * customers[0].price;
    }
    else if (fruit_choice == "Apple")
    {
    customers[1].quantity_ordered = pounds_choice;
    customers[1].total_price = customers[1].quantity_ordered * customers[1].price;
    }
    else if (fruit_choice == "Pears")
    {
    customers[2].quantity_ordered = pounds_choice;
    customers[2].total_price = customers[2].quantity_ordered * customers[2].price;
    }
    else if (fruit_choice == "Oranges")
    {
    customers[3].quantity_ordered = pounds_choice;
    customers[3].total_price = customers[3].quantity_ordered * customers[3].price;
    }
    else (fruit_choice == "Papaya")
    {
    customers[4].quantity_ordered = pounds_choice;
    customers[4].total_price = customers[4].quantity_ordered * customers[4].price;
    }
    }

    for (count = 1 ; count <=5 ; count++)
    {
    if (customers[0].total_price != 0)
    {
        cout << customers[0].fruit_name <<
        cout << customers[0].quantity_ordered <<
        cout << customers[0].price <<
        cout << customers[0].total_price <<

    }
    }



}


我遇到很多错误。其中之一是“ string fruit_chioce”中的字符串,并没有像应该的那样变蓝。并且编译器说char选择应该在“;”之后。 。我也很难为这些结构关联数组。任何帮助将不胜感激,谢谢。

最佳答案

最好的方法是使用std :: vector。例如

#include <iostream>
#include <vector>
#include <string>
using namespace std;

struct Fruit {
    string name;
    float price;
};

int main() {
    vector<Fruit> fruits;

    while(true) {
        Fruit fruit;
        string answer;
        cout << "Which fruit? ";
        cin >> fruit.name;
        cout << "How many pounds? ";
        cin >> fruit.price;
        fruits.push_back(fruit);
        cout << "Do you want to purchase another fruit? ";
        cin >> answer;
        cout << endl;
        if (answer=="No") break;
    }

    for(int i=0; i<(int)fruits.size(); ++i) {
        cout << "Fruit " << i+1 << " -> Name: " << fruits[i].name << ", price: " << fruits[i].price << endl;
    }

    return 0;
}

关于c++ - 创建2个包含2个结构的数组。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21816137/

10-09 08:27
查看更多