Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dodatkowe materiały Kurs XVII i XVIII

Ostatnio zmodyfikowano 2015-05-14 19:43
Autor Wiadomość
BrysiekVTC
Temat założony przez niniejszego użytkownika
Dodatkowe materiały Kurs XVII i XVIII
» 2015-05-14 18:49:22
Witam.

Mam problem z rozgryzieniem zadania 2 z rozdziału "Funkcje kolejne aspekty"

Zadanie brzmi:
Napisz program jak wyżej, jednak stwórz strukturę, która będzie przechowywać oceny dla poszczególnych podawanych przedmiotów np.
C/C++
struct oceny {
    przedmiot1;
    przedmiot2;
    .
    .
}
Oczywiście podczas podawania ocen ma być wyświetlana informacja, dla jakiego przedmiotu jest wprowadzana dana. Możesz jako ostatnią pozycję w strukturze utworzyć zmienną średnia, która będzie przechowywać obliczoną średnią dla ocen z przedmiotów.

Mój zaczęty kod to:
C/C++
#include <iostream>
#include <cmath>
#include <conio.h>
#include <string>
using namespace std;

struct Przedmiot
{
    char przedmiot;
};


int main()
{
    string oceny;
    int ile;
    cout << "Podaj ilosc przedmiotow: ";
    cin >> ile;
   
    struct Przedmiot lekcje[ ile ];
   
    for( short i = 0; i < ile; i++ )
    {
        cout << "Podaj przedmiot: ";
        cin >> lekcje[ i ].przedmiot;
        cin.clear();
        cin.sync();
    }
   
    for( short i = 0; i < ile; i++ )
    {
        cout << "Przedmiot: " << lekcje[ i ].przedmiot;
       
    }
   
}
Gdy chcę wypisać Przedmiot pojawia się tylko 1 litera zapisanego przedmiotu.

Poprosił bym o jakieś wskazówki co do dalszego rozwiązania.
P-132254
uzytkownik17
string zamiast char
» 2015-05-14 19:02:10
Typ char przechowuje tylko jeden znak - program nie wyświetla "tylko pierwszej" litery, ale jedyną literę. Aby zapamiętać całe słowo, najlepiej użyć zmiennej typu string.
P-132258
BrysiekVTC
Temat założony przez niniejszego użytkownika
oceny
» 2015-05-14 19:35:36
A jak wpisać oceny ? też poprzez string bo ten kod nie działa :

C/C++
string oceny;

for( short i = 0; i < ile; i++ )
{
    cout << endl;
    cout << "\nPrzedmiot: " << lekcje[ i ].przedmiot << endl;
    cin.clear();
    cin.sync();
   
    cout << "Podaj  oceny: " << oceny;
}
P-132263
uzytkownik17
cin zamiast cout
» 2015-05-14 19:40:25
Aby pobrać dane, używa się cin zamiast cout. Tak więc wcześniej musi się pojawić

C/C++
cin >> oceny;

żeby można było je wyświetlić. Jeśli oceny mają być np. dodawane, zapamiętywanie ich jako stringi (czyli zwyczajne napisy tekstowe) znacznie utrudni operacje arytmetyczne. Jeżeli oceny miałyby być nieułamkowe (czyli jedynie 1,2,3,4,5,6), najlepiej zapamiętać je jako zmienna typu int. Cały kod będzie nadal poprawny, jeśli jedynie w deklaracji zamieni się "string oceny" na "int oceny".
P-132264
BrysiekVTC
Temat założony przez niniejszego użytkownika
:D
» 2015-05-14 19:43:08
Kurde faktycznie. Nie zauważyłem ze nie wypisuję tych liczb.
Dzięki. :)
P-132265
« 1 »
  Strona 1 z 1