1

Тема: Не виводиться вся база, виводиться лише перші значення з цієї бази

#include "pch.h"
#include <string>
#include <iostream>
#include <cstdlib>
#include <conio.h>

using namespace std;

struct Weather //cтруктура "Погода"
{
    string local; //район місцевості
    int data; //дата
    int count; //кількість опадів
    double intensity; //інтенсивність опадів
    double speed; //швидкість вітру
    int temp; //середня температура 
    string direction; //напрямок вітру
    string afternoon; //температура вдень
    string night;//температура вночі
} s[100];
int add(int n) //додавання інформації в базу
{
    char ch;
    do {
        cout << "Місцевість: " << endl;
        cin >> s[n].local;
        cout << "Дата: " << endl;
        cin >> s[n].data;
        cout << "\tОпади: \n" << endl;
        cout << "Кількість: ";
        cin >> s[n].count;
        cout << "Інтенсивність: " << endl;
        cin >> s[n].intensity;
        cout << "\Вітер \n";
        cout << "Швидкість: " << endl;
        cin >> s[n].speed;
        cout << "Напрямок: " << endl;
        cin >> s[n].direction;
        cout << "Середня температура протягом дня: " << endl;
        cin >> s[n].temp;
        cout << "День: " << endl;
        cin >> s[n].afternoon;
        cout << "Вночі: " << endl;
        cin >> s[n].night;
        system("cls");
        cout << "Бажаєте продовжити?(y/n)"; //поки ви не натисните на n після введення бази програма буде виконуваться, якщо ви натискатимете y
        cin >> ch;
        system("cls");
    } while (toupper(ch) != 'N'); //перетворює рядкові літери в заглавні для роботи з вихідом  
    return ++n;
}
void Out(int n) //виведення бази
{
    cout << "\t\t ________________________________" << endl;
    cout << "\t\t|\tINFORM PRO BAZU:\t |";
    cout << "\n";
    cout << "\t\t|--------------------------------|" << endl;

        do
        {
        
                cout << "\t\t|Місцевість: " << s[i].local << "\t\t" << "|";
                cout << "\n\t\t|Дата: " << s[i].data << "\t\t \t |";
                cout << "\n\t\t|\tОпади: " << "\t         |";
                cout << "\n\t\t|Кількість: " << s[i].count << "\t\t" << " |";
                cout << "\n\t\t|Інтенсивність: " << s[i].intensity << "\t\t" << " |";
                cout << "\n\t\t| \tВітер: " << "\t\t\t |" << "\t\t ";
                cout << "\n";
                cout << "\t\t|Швидкість: " << s[i].speed << "\t\t\t" << " |";
                cout << "\n\t\t|Напрямок: " << s[i].direction << "\t\t" << " |";
                cout << "\n\t\t|Середня температура: " << s[i].temp << "\t |";
                cout << "\n\t\t|День: " << s[i].afternoon << "\t\t\t |";
                cout << "\n\t\t|Вночі: " << s[i].night << "\t\t\t |" << endl;
                cout << "\t\t|________________________________|" << endl;
            
        } while (false)
        {

        }
        
    system("pause");
    system("cls");
}
void t(int n) // температура в місцевості +10 
{
    int dat = 0;

    cout << "Уведіть дату: ";
    cin >> dat;
    for (int i = 0; i < n; i++)
    {
        cout << "Виведення інформації \n" << endl;
        if (s[i].data == dat && s[i].temp == +10)
        {
            cout << "Місцевість:  " << s[i].local << endl;
        }
        else
            cout << "Тут не було температури +10 " << endl;
    }
    
    system("pause");
    system("cls");
}
void average(int n) //середня кількість опадів 
{
    string loc;
    int day;
    cout << "Ввести місцевість: ";
    cin >> loc;
    cout << "Вводимо діапазон днів: ";
    cin >> day;
    for (int i = 0; i < n; i++)
    {
        if (s[i].local == loc)
        {

            if (day != 0) // якщо виконується умова
            {
                double precipitation = (double)s[i].count / day;
                cout << "Середня кількість опадів: " << precipitation << endl;
            }
            else
                cout << "Середня кількість опадів невідома" << endl; // якщо не виконується умова
        }

    }
    system("pause");
    system("cls");
}
void wind(int n) //Визначення напрямку вітру у вказаний день та вказану дату 
{
    string locaal;
    int date;
    cout << "Місцевість: " << endl;
    cin >> locaal;
    cout << "Дата: " << endl;
    cin >> date;
    for (int i = 0; i < n; i++)
    {
        if (s[i].local == locaal)
        {
            if (s[i].data == date)
            {
                cout << "Напрямок був: " << s[i].direction << endl;
                cout << "Дата: " << s[i].data << endl;
            }
            else
                cout << "Тут такого не було! " << endl;
        }
        else
            cout << "Помилка! " << endl;
    }
    system("pause");
}

int main()
{

    int n = 0;
    while (1)
    {
        cout << "\t\t\t\tМеню" << endl;
        cout << "\t\t---------------------------------" << endl;
        cout << "\t\t|\t1 - Додати\t\t|" << endl <<
            "\t\t|\t2 - Вся база\t\t|" << endl <<
            "\t\t|\t3 - Місцевість де +10\t|" << endl <<
            "\t\t|\t4 - Середня кількість опадів\t|" << endl <<
            "\t\t|\t5 - Напрямок вітру\t|" << endl <<
            "\t\t|\t6 - Вихід\t\t|" << endl;
        cout << "\t\t---------------------------------" << endl;
        int a; cin >> a;
        switch (a)
        {
        case 1:
            system("cls");
            n = add(n);
            system("cls");
            break;
        case 2:
            system("cls");
            Out(n);
            break;
        case 3:
            system("cls");
            t(n);
            break;
        case 4:
            system("cls");
            average(n);
            break;
        case 5:
            system("cls");
            wind(n);
            system("cls");
            break;
        case 6:
        {exit(0);
        default:
            exit(0);
        }
        }
    }
    return 0;
}

2 Востаннє редагувалося koala (10.11.2018 10:41:46)

Re: Не виводиться вся база, виводиться лише перші значення з цієї бази

"Перші значення"(множина) чи "перший запис"(однина)?
Ну і в мене цей код узагалі не компілюється, каже, що в функції Out немає змінної i.