Cpp kertaustehtäviä ratkaisu6c

Mureakuha

Loikkaa: valikkoon, hakuun

Toteuta CD-levyjen tietokantaohjelma, jossa on seuraava valikko:

================================
 
a = lisää uusi CD
b = poista CD
c = selaa tietoja
x = lopeta
 
================================

Ohjelmassa on tilaa viidelle tietueelle. Jokaisesta levystä talletetaan 6 tietoa; koodi, esittäjä, levyn nimi, julkaisuvuosi, kokonaiskesto ja sanallinen arvostelu. Alusta käyttämättömät solut miinus merkillä tai numerolla nolla. Ohjelman täytyy itse tunnistaa onko jokin tietue käytössä vai onko se tyhjä eikä käytettyjen tietueiden päälle saa kirjoittaa.

#include <iostream>
#include <string.h>
 
int main()
{
 
    struct CD
    {
 
        int koodi;
        char nimi[20];
        char levy[20];
        int julkaisu;
        double kesto;
        char arvostelu[10];
 
    };
 
    CD arkisto[5];
    char valinta='a';
    int i;
 
    for (i=0; i<5; i++)
    {
 
        arkisto[i].koodi=i;
        strcpy(arkisto[i].nimi, "-");
        strcpy(arkisto[i].levy, "-");
        arkisto[i].julkaisu=0;
        arkisto[i].kesto=0;
        strcpy(arkisto[i].arvostelu, "-");
 
    }
 
    while (valinta!='x')
    {
 
        cout << "\n===================";
        cout << "\n a = lisää uusi CD";
        cout << "\n b = poista CD";
        cout << "\n c = selaa tietoja";
        cout << "\n x = lopeta";
        cout << "\n===================";
        cout << "\nValitse: ";
        cin >> valinta;
 
        switch (valinta)
        {
 
            case 'a':
            for (i=0; i<5 && arkisto[i].julkaisu!=0; i++)
            ;
 
            if (arkisto[i].julkaisu!=0)
            {
 
                cout << "\nKaikki paikat täynnä\n";
                break;
 
            }
 
            cout << "Anna esittäjä: ";
            cin >> arkisto[i].nimi;
            cout << "Anna levyn nimi: ";
            cin >> arkisto[i].levy;
            cout << "Anna julkaisuvuosi: ";
            cin >> arkisto[i].julkaisu;
            cout << "Anna kesto: ";
            cin >> arkisto[i].kesto;
            cout << "Anna arvostelu: ";
            cin >> arkisto[i].arvostelu;
            break;
 
            case 'b':
            cout << "\nAnna levyn koodi joka tuhotaan: ";
            cin >> i;
            if (i>4) break;
            arkisto[i].koodi=i;
            strcpy(arkisto[i].nimi,"-");
            strcpy(arkisto[i].levy,"-");
            arkisto[i].julkaisu=0;
            arkisto[i].kesto=0;
            strcpy(arkisto[i].arvostelu,"-");
            break;
 
            case 'c':
            for (i=0; i<5; i++)
            {
 
                cout << "\n\nKoodi: " << arkisto[i].koodi;
                cout << "\tEsittäjä: " << arkisto[i].nimi;
                cout << "\tLevy: " << arkisto[i].levy;
                cout << "\nJulkaisu: " << arkisto[i].julkaisu;
                cout << "\tKesto: " << arkisto[i].kesto;
                cout << "\tArvostelu: " << arkisto[i].arvostelu;
 
            }
 
            break;
 
        }
 
    }
 
    return 0;
}
Tämän dokumentin kopiointi, levittäminen sekä muokkaaminen on sallittua GNU Free Documentation Licensen version 1.2 tai uudemman Free Software Foundationin julkaiseman version mukaisesti, ilman muuttumattomuuslauseketta tai kansitekstejä. Tätä koskee vastuuvapaus.
Kopio lisenssistä (englanniksi) löytyy täältä.

Alkuperäinen (c) Petteri Hämäläinen

Henkilökohtaiset työkalut