Zusammenfassung: Studentendaten-Struct
Teil des Abschnitts Logic & Flow der C-Journey von Coddy — Lektion 43 von 63.
Aufgabe
EinfachErstellen Sie ein C-Programm, das den vollständigen Arbeitsablauf der Verwendung von Structs mit einem Studentenverwaltungssystem demonstriert. Ihr Programm sollte:
- Definieren Sie ein
structnamensStudentmit den folgenden Mitgliedern:- Ein Integer
id, um die ID-Nummer des Studenten zu speichern - Ein Float
grade, um die Note des Studenten zu speichern
- Ein Integer
- Erstellen Sie in der main-Funktion eine
Student-Variable namensstudent1 - Lesen Sie die ID und die Note des Studenten mit
scanfvon der Eingabe ein:- Lesen Sie einen Integer für die ID ein und speichern Sie ihn in
student1.id - Lesen Sie einen Float für die Note ein und speichern Sie ihn in
student1.grade
- Lesen Sie einen Integer für die ID ein und speichern Sie ihn in
- Führen Sie nach dem Einlesen der Eingabe die folgende Validierung und Berechnungen durch:
- Wenn die Note größer als 100.0 ist, setzen Sie sie auf 100.0
- Wenn die Note kleiner als 0.0 ist, setzen Sie sie auf 0.0
- Berechnen Sie eine Bonusnote, indem Sie 5.0 zur aktuellen Note (nach der Validierung) addieren
- Wenn die Bonusnote 100.0 überschreitet, setzen Sie die Bonusnote auf 100.0
- Geben Sie die Studenteninformationen in genau diesem Format aus:
Student Information:ID: [id]Original Grade: [grade]Bonus Grade: [bonus_grade]Grade Status: [status]
- Der Notenstatus sollte wie folgt bestimmt werden:
- Wenn die ursprüngliche Note 90.0 oder höher ist:
Excellent - Wenn die ursprüngliche Note 80.0 bis 89.9 ist:
Good - Wenn die ursprüngliche Note 70.0 bis 79.9 ist:
Average - Wenn die ursprüngliche Note unter 70.0 liegt:
Needs Improvement
- Wenn die ursprüngliche Note 90.0 oder höher ist:
Diese Herausforderung testet Ihr Verständnis der Struct-Definition, Variablenerstellung, des Member-Zugriffs mit dem Punkt-Operator, der Eingabebehandlung mit scanf und der bedingten Logik für die Datenvalidierung und -verarbeitung. Sie üben den vollständigen Arbeitsablauf der Arbeit mit Structs in einem praktischen Szenario.
Probier es selbst
#include <stdio.h>
// TODO: Definieren Sie hier das Student-Struct
int main() {
// TODO: Erstellen Sie eine Student-Variable namens student1
// Eingabe lesen
int id;
float grade;
scanf("%d", &id);
scanf("%f", &grade);
// TODO: Speichern Sie die Eingabewerte in den Struct-Membern
// TODO: Implementieren Sie die Notenvalidierung und Bonusberechnung
// TODO: Bestimmen Sie den Notenstatus
// Ergebnisse ausgeben
printf("Student Information:\n");
printf("ID: %d\n", /* TODO: Studenten-ID ausgeben */);
printf("Original Grade: %.1f\n", /* TODO: ursprüngliche Note ausgeben */);
printf("Bonus Grade: %.1f\n", /* TODO: Bonusnote ausgeben */);
printf("Grade Status: %s\n", /* TODO: Notenstatus ausgeben */);
return 0;
}Alle Lektionen in Logic & Flow
1Zeiger-Grundlagen
Was ist ein Zeiger?Zeiger deklarierenDer Adressoperator (&)Der Dereferenzierungsoperator (*)NULL-ZeigerZusammenfassung: Zeiger-Grundlagen4Projekt: Einfaches Text-Tool
ProjektübersichtZeichen zählen7Strukturen (structs)
Was ist ein Struct?Deklarieren eines StructsErstellen von Struct-VariablenZugriff auf Struct-MemberInitialisieren von StructsZusammenfassung: Studentendaten-Struct2Pointer und Arrays
Array-Namen als PointerArray-Elemente - PointerPointer-ArithmetikPointer vergleichenWiederholung: Array-Durchlauf mit Pointern5Zeiger und Funktionen
Wertübergabe (Pass-by-Value)Zeiger an Funktionen übergebenVariablen über Zeiger ändernEin klassisches Beispiel: SwapArrays an Funktionen übergebenZusammenfassung: Zeiger als Funktionsargumente8Structs und Zeiger
Zeiger auf StructsDer Pfeiloperator (->)Structs per Wert übergebenÜbergabe von Struct-ZeigernDynamische Allokation von StructsZusammenfassung: Struct ändern - Ptr11Finale Wiederholungsaufgaben
Wiederholung: Dynamische String-KonkatenationWiederholung: Array von StructsWiederholung: Wortfrequenz-Zähler3Character-Arrays und Strings
Strings als char-ArraysDer Null-TerminatorString-Eingabe mit scanfVerwendung von strlen()Verwendung von strcpy()Verwendung von strcat()Verwendung von strcmp()Zusammenfassung: Grundlegende String-Funktionen