Тема: Структура

Допоможіть скласти програму з використанням структур

Створити масив структур, що містить відомості про здачу студентами 1 курсу сесії. Структура  - індекс групи, прізвище студента, оцінки по п'яти іспитах, ознака участі в суспільній роботі: 1 - активна участь, 0 - неучасть.

2

Re: Структура

З радістю допоможемо!
Для початку опишіть структуру (мовою С/С++ звичайно)

Maybe a = Just a | Nothing

3 Востаннє редагувалося Chemist-i (15.06.2015 14:25:24)

Re: Структура

0x9111A написав:

З радістю допоможемо!
Для початку опишіть структуру (мовою С/С++ звичайно)

не розумію як то має бути
маю саму структуру:

struct Session{
 int index;
 std::string sourname;
 char[5] score;
 bool participtationInPublicWork
}

Chemist-i: для коду використовуйте, будь ласка, теґ [ code ]

4

Re: Структура

Якщо оцінки будете представляти літерами то може бути.
Тепер оголосіть масив

Maybe a = Just a | Nothing

5

Re: Структура

Прихований текст

std::string sourname;

яплакав... sourname наше все

6

Re: Структура

struct Student{
     int index; // номер по порядку
     std::string surname; // прізвище студента
     std::string score; // оцінка
     bool participtationInPublicWork; // участь в заходах
}

7

Re: Структура

0x9111A написав:

Якщо оцінки будете представляти літерами то може бути.

C++ не має типу byte, а char - це не "літера", а цілий знаковий тип довжиною один байт. Оцінки бувають від 0 (не здавав іспит, наприклад) п'яти. Так що поверніть масив char на місце.
Доречі, що ви хотіли робити з std::string score; // оцінка? Що означало б у одного студента "abc", у іншого - "ху"?
Якщо хочете "зовсім красиво" - задекларуйте

enum Score {
 none,
 nezadovilno,
 zadovilno,
 dobre,
 vidminno,
};

, а в структуру - масив. А ще краще - по елементу за назвою дісципліни:

...
Score score_physics;
Score score_chemistry;
...

Сьогодны практично кожне IDE підтримує intellisense. І коли Ви побачите підказку у алфавітному порядку, то буде незручно. Щоб запобігти цьому, можна побудувати структуру на зразок:



    struct Student{
         _00_int index; // номер по порядку
         _01_std::string surname; // прізвище студента
...
         _##_bool participtationInPublicWork; // участь в заходах
    }

Недолік: якщо у Вас багато елементів, і Ви хочете вставити десь на початку ще один чи два, то треба або попрацювати ручками, або дописувати у кінець, хоча логічно новий елемент може дійсно належати до початку чи середини структури. Майте це на увазі.

8

Re: Структура

    enum Score {
     none,
     nezadovilno,
     zadovilno,
     dobre,
     vidminno,
    };

Щоб вам завжди сапортити потім код, де все йменовано не-англійською... а ліпше - посапортити код з таким самісіньким транслітом, але з мови якої ви не знаєте. Задоволення те ще.

Подякували: koala1

9

Re: Структура

Lordie, мені здається, у цій темі ви взяли на себе роль "голосу з унітазу". Це не щоб допомогти, а "посапортити" (це, здогадуюся, Ваша англійська мова).

10

Re: Структура

mich_retten, просто писати код транслітом є дуже поганою ідеєю, бо в результаті виходить щось на зразок цього

/* Szóképző szabályok */

/*
  * Nemterminálisból terminális szimbólum
  * 1..99
  */
szam(X) --> d1(X).
szam(X) --> d2(X).
szam(X) --> d(X).
szam(X) --> t1(X).
szam(X) --> t(X).
szam(X) --> t2(Y),d1(Z), { X is Y + Z }.
szam(X) --> t2(Y),d2(Z), { X is Y + Z }.
szam(X) --> t2(Y),d(Z), { X is Y + Z }.
szam(X) --> t(Y),d1(Z), { X is Y + Z }.
szam(X) --> t(Y),d2(Z), { X is Y + Z }.
szam(X) --> t(Y),d(Z), { X is Y + Z }.


/* Nemterminálisból nemterminális szimbólum */
egytol_szaz(X) --> szam(X).
szaztol_ezer(X) --> egytol_szaz(X).
szaztol_ezer(X) --> szaz(X).

/*
 * Nemterminálisból terminális
 * 100...1000
 */
szaz(X) --> sz(X).
szaz(X) --> sz(Y),egytol_szaz(Z), { X is Y + Z }. 
szaz(X) --> d3(Y),sz(Z), { X is Y * Z }.
szaz(X) --> d3(Y),sz(Z),egytol_szaz(Q), { X is Y * Z + Q }.
szaz(X) --> d(Y),sz(Z), { X is Y * Z }.
szaz(X) --> d(Y), sz(Z), egytol_szaz(Q), { X is Y * Z + Q }.
szaz(X) --> e(X).

/* Kiinduló állapota */
szamok(X) --> szaztol_ezer(X).

/* Aritmetikai szabályok */

osszeadas(X) --> szamok(Y), [meg], szamok(Z), {X is Y + Z}.
kivonas(X) --> szamok(Y), [ből], szamok(Z), { X is Y - Z }.
szorzas(X) --> szamok(Y), [szer], szamok(Z), { X is Y * Z}.

/* Szótár */

d1(1) --> [egy].
d2(2) --> [kettő].
d3(2) --> [két].
d(3) --> [három].
d(4) --> [négy].
d(5) --> [öt].
d(6) --> [hat].
d(7) --> [hét].
d(8) --> [nyolc].
d(9) --> [kilenc].
t1(10) --> [tíz].
t1(20) --> [húsz].
t(30) --> [harminc].
t(40) --> [negyven].
t(50) --> [ötven].
t(60) --> [hatvan].
t(70) --> [hetven].
t(80) --> [nyolcvan].
t(90) --> [kilencven].
t2(10) --> [tizen].
t2(20) --> [huszon].
sz(100) --> [száz].
e(1000) --> [ezer].
Подякували: makhauser2