Obecny czas: 20 Maj 2012 19:04



Napisz nowy temat Odpowiedz  [ 3 posty(贸w) ] 
Autor Wiadomo艣膰
 Temat postu: 2 kolokwium z wyk艂adu MP i C-2 - przyk艂adowe zadania
PostWys艂any: 22 Cze 2008 16:58 
Offline
Moderator
Moderator
Awatar u偶ytkownika

Rejestracja: 15 Mar 2008 21:54
Posty: 165
SEMESTR: :-)
gadu: 0
Napisz definicj臋 klasy TDataKalendarzowa modeluj膮cej informacje o numerze dnia, miesi膮cu i roku.
Definicja powinna zawiera膰 przynajmniej:
- dwa konstruktory (jeden bezparametrowy a drugi trzyparametrowy),
- metod臋 Ustaw pozwalaj膮c膮 ustawi膰 warto艣膰 daty (z kontrolowaniem czy numer dnia mie艣ci si臋 w przedziale warto艣ci od 1 do 31, a numer miesi膮ca w przedziale od 1 do 12),
- metod臋 Wyswietl, kt贸ra wypisze na ekranie dat臋 w postaci cyfrowej np. 26.06.2004,
- metod臋 WyswietlSlownie, kt贸ra wypisze na ekranie dat臋 z miesi膮cem podanym s艂ownie np. 26 czerwiec 2004,
- metod臋 PodajRok, kt贸ra zwr贸ci (przez return) warto艣膰 roku aktualnie pami臋tanej daty.
Nast臋pnie napisz kr贸tki program, kt贸ry utworzy obiekt tej klasy, nada mu warto艣膰 daty 30.06.2004 i wy艣wietli j膮 za pomoc膮 metody Wyswietl

Kod:
#include <iostream>
#include <iomanip>
#include <cstring>

using namespace std;
//---------------------------------------------------------------------------
class TDataKalendarzowa
{
private:
        int d, m, r;

public:
        TDataKalendarzowa(void);

        TDataKalendarzowa(int dzien, int miesiac, int rok);

        void Ustaw(int dzien, int miesiac, int rok);

        void Wyswietl(void);

        void WyswietlSlownie(void);

        int PodajRok(void);
};
//---------------------------------------------------------------------------
TDataKalendarzowa::TDataKalendarzowa(void)
        {
                d = 0;
                m = 0;
                r = 0;
        }
//---------------------------------------------------------------------------
TDataKalendarzowa::TDataKalendarzowa(int dzien, int miesiac, int rok)
{
        Ustaw(dzien, miesiac, rok);
}
//---------------------------------------------------------------------------
void TDataKalendarzowa::Ustaw(int dzien, int miesiac, int rok)
{
        if (dzien < 1 || dzien > 31)
                d = 0;
        else
                d = dzien;

        if (miesiac < 1 || miesiac > 12)
                m = 0;
        else
                m = miesiac;

        r = rok;
}
//---------------------------------------------------------------------------
void TDataKalendarzowa::Wyswietl(void)
{
        if (d == 0 || m == 0)
                cout << "Data nieznana" << endl;
        else
                cout << setfill ('0') << setw(2) << d << "." << setfill ('0')
                     << setw(2) << m << "." << r << endl;
}
//---------------------------------------------------------------------------
void TDataKalendarzowa::WyswietlSlownie(void)
{
        char miesiac[12];

        if (d == 0 || m == 0)
                cout << "Data nieznana" << endl;
        else
        {
                switch (m)
                {
                        case  1 : strcpy(miesiac, "styczen"); break;
                        case  2 : strcpy(miesiac, "luty"); break;
                        case  3 : strcpy(miesiac, "marzec"); break;
                        case  4 : strcpy(miesiac, "kwiecien"); break;
                        case  5 : strcpy(miesiac, "maj"); break;
                        case  6 : strcpy(miesiac, "czerwiec"); break;
                        case  7 : strcpy(miesiac, "lipiec"); break;
                        case  8 : strcpy(miesiac, "sierpien"); break;
                        case  9 : strcpy(miesiac, "wrzesien"); break;
                        case 10 : strcpy(miesiac, "pazdziernik"); break;
                        case 11 : strcpy(miesiac, "listopad"); break;
                        case 12 : strcpy(miesiac, "grudzien"); break;
                }

                cout << d << " " << miesiac << " " << r << endl;
        }
}
//---------------------------------------------------------------------------
int TDataKalendarzowa::PodajRok(void)
{
        return r;
}
//---------------------------------------------------------------------------
void main()
{
        TDataKalendarzowa data;

        data.Ustaw(30, 6, 2004);

        data.Wyswietl();

        cin.ignore(cin.rdbuf()->in_avail());
        cin.get();
}


G贸ra
 Profil  
 
 Temat postu: Re: 2 kolokwium z wyk艂adu MP i C-2 - przyk艂adowe zadania
PostWys艂any: 22 Cze 2008 22:06 
Offline
Moderator
Moderator
Awatar u偶ytkownika

Rejestracja: 15 Mar 2008 21:54
Posty: 165
SEMESTR: :-)
gadu: 0
Napisz definicj臋 klasy TKsi膮偶ka modeluj膮cej informacje o tytule, liczbie stron i cenie ksi膮偶ki w Ksi臋garni.
Definicja powinna zawiera膰 przynajmniej:
- dwa konstruktory (jeden bezparametrowy a drugi trzyparametrowy),
- metod臋 UstawTytu艂 pozwalaj膮c膮 ustawi膰 zawarto艣膰 tytu艂u ksi膮偶ki,
- metod臋 UstawLiczb臋Stron pozwalaj膮c膮 zadawa膰 liczb臋 ksi膮偶ki (z kontrolowaniem czy nie jest ujemna),
- metod臋 Powi臋kszCene, kt贸ra powi臋kszy aktualn膮 cen臋 o warto艣膰 zadawan膮 jako parametr tej metody,
- metod臋 Wyswietl, wy艣wietlaj膮c膮 na ekranie zawarto艣膰 wszystkich p贸l.
Nast臋pnie napisz kr贸tki program, kt贸ry utworzy obiekt tej klasy, nadaj膮c mu pocz膮tkowe dane: "Krzy偶acy", 250 str., 36.70 z艂 i wy艣wietli wszystkie dane za pomoc膮 metody Wyswietl.

Kod:
#include <iostream>
#include <iomanip>
#include <cstring>

using namespace std;
//---------------------------------------------------------------------------
class TKsiazka
{
        char tytul[50];
        int str;
        double cena;
public:
        TKsiazka(void)
        {
                tytul[0] = '\0';
                str = 0;
                cena = 0;
        }

        TKsiazka(char *t, int s, double c)
        {
                UstawTytul(t);
                UstawLiczbeStron(s);
                cena = 0;
                PowiekszCene(c);
        }

        void UstawTytul(char *t)
        {
                strcpy(tytul, (t ? t : '\0'));
        }

        int UstawLiczbeStron(int s)
        {
                if (s <= 0)
                {
                        str = 0;
                        return 0;
                }
                else
                {
                        str = s;
                        return 1;
                }
        }

        void PowiekszCene(double c)
        {
                cena += c;
        }

        void Wyswietl(void)
        {
                if (tytul[0] == '\0')
                        cout << "Tytul: ---" << endl;
                else
                        cout << "Tytul: " << tytul << endl;
                cout << "Ilosc stron: " << str << endl;
                cout << fixed;
                cout << "Cena: " << setprecision(2) << cena << " zl" << endl;
        }
};

//---------------------------------------------------------------------------
void main()
{
        TKsiazka ksiazka = TKsiazka("Krzyzacy", 250, 36.70);

        ksiazka.Wyswietl();

        cin.ignore(cin.rdbuf()->in_avail());
        cin.get();
}


G贸ra
 Profil  
 
 Temat postu: Re: 2 kolokwium z wyk艂adu MP i C-2 - przyk艂adowe zadania
PostWys艂any: 23 Cze 2008 13:19 
Offline
Moderator
Moderator
Awatar u偶ytkownika

Rejestracja: 15 Mar 2008 21:54
Posty: 165
SEMESTR: :-)
gadu: 0
Napisz program, kt贸ry wczyta z klawiatury 70 dowolnych liczb long a nast臋pnie utworzy dynamiczn膮 tablic臋 DuzeLiczby zawieraj膮c膮 tylko te liczby, kt贸re by艂y wi臋ksze od 100. Obszar pami臋ci zajmowany przez tablic臋 DuzeLiczby powinien by膰 proporcjonalny do ilo艣ci wprowadzonych liczb spe艂niaj膮cych w/w warunek (tzn. wi臋kszych od 100).

Kod:
#include <stdio.h>

void main()
{
        long Liczby[70];
        int licznik = 0;

        for (int i = 0; i < 70; i++)
        {
                printf("tab[%2d] = ", i+1);
                scanf("%ld", Liczby+i);
                if (*(Liczby+i) > 100)
                        licznik++;
        }

        if (licznik == 0)
                printf("\nNie podano liczb wiekszych od 100\n");
        else
        {
                long *DuzeLiczby = new long[licznik];
                if (DuzeLiczby == NULL)
                        printf("\nBlad tworzenia nowej tablicy!\n");
                else
                {
                        for (int i = 0, j = 0; i < 70; i++)
                        {
                                if (*(Liczby+i) > 100)
                                {
                                        *(DuzeLiczby+j) = *(Liczby+i);
                                        j++;
                                }
                        }

                        printf("\n");

                        for (int i = 0; i < licznik; i++)
                                printf("new_tab[%2d] = %ld\n", i+1, *(DuzeLiczby+i));

                        delete [] DuzeLiczby;
                }
        }

        fflush(stdin);
        getchar();
}


G贸ra
 Profil  
 
Wy艣wietl posty z poprzednich:  Sortuj wed艂ug  
Napisz nowy temat Odpowiedz  [ 3 posty(贸w) ] 

Kto jest na forum

U偶ytkownicy przegl膮daj膮cy to forum: Brak zarejestrowanych u偶ytkownik贸w


Nie mo偶esz zak艂ada膰 nowych temat贸w na tym forum
Nie mo偶esz odpowiada膰 w tematach na tym forum
Nie mo偶esz edytowa膰 swoich post贸w na tym forum
Nie mo偶esz usuwa膰 swoich post贸w na tym forum
Nie mo偶esz dodawa膰 za艂膮cznik贸w na tym forum

Szukaj:
Skocz do:  
cron
Theme designed by stylerbb.net & © 2008
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
© GATHO.PL
[ Time : 0.771s | 13 Queries | GZIP : Off ]
Wszystkie czasy w strefie UTC + 1 godzina