Podsumowanie: struktura danych studenta
Część sekcji Logika i sterowanie przepływem ścieżki C w Coddy. Lekcja 43 z 63.
Wyzwanie
ŁatwyUtwórz program w C, który demonstruje pełny przebieg pracy ze strukturami w systemie zarządzania danymi uczniów. Twój program powinien:
- Zdefiniować
structo nazwieStudentz następującymi składowymi:- Liczbę całkowitą
iddo przechowywania numeru identyfikacyjnego ucznia - Liczbę zmiennoprzecinkową
gradedo przechowywania oceny ucznia
- Liczbę całkowitą
- W funkcji main utworzyć zmienną typu
Studento nazwiestudent1 - Odczytać z wejścia numer identyfikacyjny i ocenę ucznia za pomocą
scanf:- Odczytać liczbę całkowitą jako numer identyfikacyjny i zapisać ją w
student1.id - Odczytać liczbę zmiennoprzecinkową jako ocenę i zapisać ją w
student1.grade
- Odczytać liczbę całkowitą jako numer identyfikacyjny i zapisać ją w
- Po odczytaniu danych wejściowych przeprowadzić następującą walidację i obliczenia:
- Jeśli ocena jest większa niż 100.0, ustawić ją na 100.0
- Jeśli ocena jest mniejsza niż 0.0, ustawić ją na 0.0
- Obliczyć ocenę bonusową, dodając 5.0 do bieżącej oceny (po walidacji)
- Jeśli ocena bonusowa przekracza 100.0, ustawić ją na 100.0
- Wyświetlić informacje o uczniu w dokładnie takim formacie:
Student Information:ID: [id]Original Grade: [grade]Bonus Grade: [bonus_grade]Grade Status: [status]
- Określić status oceny w następujący sposób:
- Jeśli pierwotna ocena wynosi 90.0 lub więcej:
Excellent - Jeśli pierwotna ocena wynosi od 80.0 do 89.9:
Good - Jeśli pierwotna ocena wynosi od 70.0 do 79.9:
Average - Jeśli pierwotna ocena jest niższa niż 70.0:
Needs Improvement
- Jeśli pierwotna ocena wynosi 90.0 lub więcej:
To wyzwanie sprawdza Twoje rozumienie definicji struktur, tworzenia zmiennych, dostępu do składowych za pomocą operatora kropki, obsługi danych wejściowych za pomocą scanf oraz logiki warunkowej służącej do walidacji i przetwarzania danych. Przećwiczysz pełny przebieg pracy ze strukturami w praktycznym scenariuszu.
Spróbuj swoich sił
#include <stdio.h>
// TODO: Zdefiniuj tutaj strukturę Student
int main() {
// TODO: Utwórz zmienną typu Student o nazwie student1
// Wczytaj dane wejściowe
int id;
float grade;
scanf("%d", &id);
scanf("%f", &grade);
// TODO: Zapisz wartości wejściowe w polach struktury
// TODO: Zaimplementuj sprawdzanie poprawności oceny i obliczanie premii
// TODO: Określ status oceny
// Wyświetl wyniki
printf("Student Information:\n");
printf("ID: %d\n", /* TODO: wypisz identyfikator studenta */);
printf("Original Grade: %.1f\n", /* TODO: wypisz pierwotną ocenę */);
printf("Bonus Grade: %.1f\n", /* TODO: wypisz ocenę po dodaniu premii */);
printf("Grade Status: %s\n", /* TODO: wypisz status oceny */);
return 0;
}Wszystkie lekcje w sekcji Logika i sterowanie przepływem
1Podstawy wskaźników
Czym jest wskaźnik?Deklarowanie wskaźnikówOperator pobrania adresu (&)Operator dereferencji (*)Wskaźniki NULLPodsumowanie: podstawy wskaźników4Projekt: Proste narzędzie tekstowe
Przegląd projektuLiczenie znaków7Struktury (struct)
Czym jest struktura?Deklarowanie strukturyTworzenie zmiennych strukturyDostęp do składowych strukturyInicjalizacja strukturPodsumowanie: struktura danych studenta2Wskaźniki i tablice
Nazwy tablic jako wskaźnikiElementy tablic — wskaźnikiArytmetyka wskaźnikówPorównywanie wskaźnikówPodsumowanie: przechodzenie po tablicy za pomocą wskaźników5Wskaźniki i funkcje
Przekazywanie przez wartośćPrzekazywanie wskaźników do funkcjiModyfikowanie zmiennych za pomocą wskaźnikówKlasyczny przykład: zamianaPrzekazywanie tablic do funkcjiPowtórka: argumenty wskaźnikowe funkcji8Struktury i wskaźniki
Wskaźniki do strukturOperator strzałki (->)Przekazywanie struktur przez wartośćPrzekazywanie wskaźników do strukturDynamiczna alokacja strukturPodsumowanie: modyfikowanie struktury — wskaźnik11Końcowe zadania powtórkowe
Powtórka: dynamiczne łączenie ciągów znakówPowtórka: tablica strukturPowtórka: licznik częstotliwości słów3Tablice znaków i ciągi znaków
Ciągi znaków jako tablice charZnak końca ciąguWczytywanie ciągu za pomocą scanfUżywanie strlen()Używanie strcpy()Używanie strcat()Używanie strcmp()Podsumowanie: podstawowe funkcje do obsługi ciągów znakówPoćwicz samodzielnie: Kompilator C online