Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

Препоръчан отговор


За книгите в една библиотека се пази следната информация : заглавие, автор (име и фамилия), издателство, година на издаване.

1.Напишете програма, която създава масив от структури, съдържащ информация за N (около 12-16) книги.

2. Извежда списък на всички книги, издадени през дадена година.

3. Извежда списък на книгите на даден автор.

4. Намира броя книги на за дадено издателство.

5. Подрежда книгите по азбучен ред.

6. Разпечатва подходящо началния масив.

Програмата да се оформи с меню за избор, като всяка подточка бъде отделна функция.

 

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

на български, само че с английски букви 

Примерно:  тетрадка = tetradka

 

преди 23 часа, Реджеп Иведик написа:

На какъв език

на български, само че с английски букви 

Примерно:  тетрадка = tetradka

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 3 минути, Реджеп Иведик написа:

Аз питам на какъв език за програмиране. C, C#, C++, Javascript, PHP, Java

хаххаха

C++

 


Сподели този отговор


Линк към този отговор
Сподели в други сайтове
публикувано (редактирано)
преди 42 минути, mr mcwolf написа:

 

Първо момиче съм и моля за помощ, ако искаш може да ти дам линк към фейса ми и там да ми пишеш, за да ти докажа, че профилът си е лично мой. 

Второ преди да съм писала тук, съм се опитала да направя нещо .

Трето, като не разбирам материала, няма да напусна, а ще попитам някой да ми помогне, както съм направила :)

Редактирано от barbuncela
Нарушен правилник 2.13 (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
публикувано (редактирано)
Цитат

2.19 Всякакви теми коментиращи публично действията на модераторите относно затваряне, триене, местене, редакция на теми или друго, без преди това да е потърсена връзка с администрацията ще бъдат третирани като нарушение - затваряни/трити и санкционирани.

Цитат

2.13 Забранява се употребата на заплахи, вулгарни думи, цинизми и обиди, както в коментари по темите, така и в лични съобщения. Ако подобни неща станат чрез лични съобщения, трябва само да се уведоми член на администрацията и ще бъдат взети съответните мерки за предотвратяването им.

 

Редактирано от barbuncela (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
#include <string>
#include <cstdlib>

#define BOOKCOUNT 16
typedef void (*menuitem)(void);

using namespace std;

struct book
{
    char zaglavie[50];
    char avtor[50];
    char izdatelstvo[50];
    char godina[20];
};

book books[16];
book* books_sorted[16];

int cmp(const void* first, const void* second)
{
    book** f = (book**)first;
    book** s = (book**)second;
    int x = _strcmpi((*f)->zaglavie, (*s)->zaglavie);
    return x;
}

void sort()
{
    for (int i = 0; i < BOOKCOUNT; i++)
    {
        books_sorted[i] = &books[i];
    }
    qsort(books_sorted, BOOKCOUNT, sizeof(void*), cmp);
}

void init()
{
    strcpy(books[0].zaglavie, "Naseki kilometyr");
    strcpy(books[0].avtor, "Komunist Cherveniakov");
    strcpy(books[0].izdatelstvo, "Bodra");
    strcpy(books[0].godina, "1944");
    strcpy(books[1].zaglavie, "Chichkovite chervenotikvenichkovcheta");
    strcpy(books[1].avtor, "Komunist Cherveniakov");
    strcpy(books[1].izdatelstvo, "Cherveni kanarcheta");
    strcpy(books[1].godina, "1944");
    strcpy(books[2].zaglavie, "Trimata tankisti");
    strcpy(books[2].avtor, "Drugaria Yanko");
    strcpy(books[2].izdatelstvo, "Chisti Race");
    strcpy(books[2].godina, "1942");
    strcpy(books[3].zaglavie, "Chetirimata tankisti i kucheto");
    strcpy(books[3].avtor, "Stoio Tagledov");
    strcpy(books[3].izdatelstvo, "Bodra");
    strcpy(books[3].godina, "1942");
    strcpy(books[4].zaglavie, "Niama takiva knigi");
    strcpy(books[4].avtor, "Komunist Cherveniakov");
    strcpy(books[4].izdatelstvo, "Bodra");
    strcpy(books[4].godina, "1946");
    strcpy(books[5].zaglavie, "Trista komunista");
    strcpy(books[5].avtor, "Komunist Cherveniakov");
    strcpy(books[5].izdatelstvo, "Niama takova izdatelstvo");
    strcpy(books[5].godina, "1964");
    strcpy(books[6].zaglavie, "Aprilskata linia");
    strcpy(books[6].avtor, "Komunist Cherveniakov");
    strcpy(books[6].izdatelstvo, "Bodra");
    strcpy(books[6].godina, "1966");
    strcpy(books[7].zaglavie, "Komunizyma");
    strcpy(books[7].avtor, "Drugaria Yanko");
    strcpy(books[7].izdatelstvo, "Bodra");
    strcpy(books[7].godina, "1977");
    strcpy(books[8].zaglavie, "Komsomolska rapsodia");
    strcpy(books[8].avtor, "Komunist Cherveniakov");
    strcpy(books[8].izdatelstvo, "Bodra");
    strcpy(books[8].godina, "1977");
    strcpy(books[9].zaglavie, "Trista");
    strcpy(books[9].avtor, "Spartak Spartanski");
    strcpy(books[9].izdatelstvo, "Shepa Spartanci");
    strcpy(books[9].godina, "1988");
    strcpy(books[10].zaglavie, "Kartete buci");
    strcpy(books[10].avtor, "Aleksandar Stamboliiski");
    strcpy(books[10].izdatelstvo, "Osten");
    strcpy(books[10].godina, "1922");
    strcpy(books[11].zaglavie, "Chisto zlato");
    strcpy(books[11].avtor, "Dzhek London");
    strcpy(books[11].izdatelstvo, "Klondaik");
    strcpy(books[11].godina, "1912");
    strcpy(books[12].zaglavie, "Trista umreli kita");
    strcpy(books[12].avtor, "Ekolozhka Zelenova");
    strcpy(books[12].izdatelstvo, "Bodra");
    strcpy(books[12].godina, "2025");
    strcpy(books[13].zaglavie, "Kovid 19");
    strcpy(books[13].avtor, "Neizvesten Potainikov");
    strcpy(books[13].izdatelstvo, "Bodra");
    strcpy(books[13].godina, "1920");
    strcpy(books[14].zaglavie, "Krushi");
    strcpy(books[14].avtor, "Katiusha Skorostrelna");
    strcpy(books[14].izdatelstvo, "Bodra");
    strcpy(books[14].godina, "1944");
    strcpy(books[15].zaglavie, "Naseki 2 kilometra");
    strcpy(books[15].avtor, "Komunist Mladshi");
    strcpy(books[15].izdatelstvo, "Bodra");
    strcpy(books[15].godina, "1988");
    sort();

}

bool is_valid_year(string s)
{
    for (unsigned i = 0; i < s.length(); i++)
    {
        if (isdigit(s[i] == false)) return false;
    }
    return true;
}

bool is_valid_author(string s)
{
    if (s.length() <= 0) return false;
    return true;
}

bool is_valid_publisher(string s)
{
    if (s.length() <= 0) return false;
    return true;
}

void by_year()
{
    string s;
    do
    {
        cout << "Vavedete godina na izdavane ";
        getline(cin, s);
    } while (is_valid_year(s) == false);
    for (int i = 0; i < BOOKCOUNT; i++)
    {
        if (strcmp(s.c_str(), books[i].godina) == 0)
        {
            cout << books[i].zaglavie << '\t' << books[i].avtor << '\t' << books[i].izdatelstvo << '\t'
                << books[i].godina << endl;
        }
    }
}


void by_author()
{
    string s;
    do
    {
        cout << "Vavedete avtor ";
        getline(cin, s);
    } while (is_valid_author(s) == false);
    for (int i = 0; i < BOOKCOUNT; i++)
    {
        if (strcmp(s.c_str(), books[i].avtor) == 0)
        {
            cout << books[i].zaglavie << '\t' << books[i].avtor << '\t' << books[i].izdatelstvo << '\t'
                << books[i].godina << endl;
        }
    }
}

void publisher_count()
{
    int count = 0;
    string s;
    do
    {
        cout << "Vavedete izdatelstvo ";
        getline(cin, s);
    } while (is_valid_publisher(s) == false);
    for (int i = 0; i < BOOKCOUNT; i++)
    {
        if (strcmp(s.c_str(), books[i].izdatelstvo) == 0)
        {
            count++;
        }
    }
    cout << count << endl;
}

void alphabet_order()
{
    for (int i = 0; i < BOOKCOUNT; i++)
    {
        
            cout << books_sorted[i]->zaglavie << '\t' << books_sorted[i]->avtor << '\t' 
                << books_sorted[i]->izdatelstvo << '\t'
                << books_sorted[i]->godina << endl;
        
    }
}

void initial_order()
{
    for (int i = 0; i < BOOKCOUNT; i++)
    {

        cout << books[i].zaglavie << '\t' << books[i].avtor << '\t'
            << books[i].izdatelstvo << '\t'
            << books[i].godina << endl;

    }
}


int main()
{
    init();
    menuitem menuitems[]{
        nullptr, nullptr, by_year, by_author, publisher_count, alphabet_order, initial_order
    };
    string s;
    for (;;)
    {
        cout << "Menu:" << endl;
        cout << "2 Izvedi spisak na vsichki knigi prez dadena godina" << endl;
        cout << "3 Izvedi spisak na knigite na daden avtor" << endl;
        cout << "4 Izvedi broia na knigite za dadeno izdatelstvo" << endl;
        cout << "5 Izvedi knigite po azbuchen red" << endl;
        cout << "6 Izvedi parvonachalnia masiv" << endl;
        do {
            getline(cin, s);
            if (s == "q") exit(0);
        } while (s != "2" && s != "3" && s != "4" && s != "5" && s != "6");
        menuitems[s[0] - '0']();
        putchar('\n');
    }
}

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

2.9 . . . . Използвайте тази функция САМО, за да докладвате за съдържанието на дадено съобщение, което според Вас трябва да бъде модерирано, а не като средство за комуникация с модератор с други цели. 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Добави ново...