Ich arbeite an einem einfachen Code, der nach dem Namen, Alter und Geschlecht von höchstens 5 Patienten fragt. Nach jedem Patienten sollte er aufgefordert werden, einen anderen Patienten einzugeben oder zum Hauptmenü zurückzukehren. Sobald 5 in ein Array eingegeben wurden, sollte eine Aufforderung an den Benutzer ausgegeben werden, dass das Array voll ist.So zeigen Sie an, dass ein Array voll ist
Mein Problem ist der Code fragt nach Name, Alter und Geschlecht 5 mal im Voraus, und gibt keine Angabe, dass das Array voll ist. Wie würde ich den Code ändern, um dies zu berücksichtigen und trotzdem die Eingaben zu speichern? (Code unten).
class MainClass
{
enum Gender { female, male }
struct Record
{
public string _Name;
public int _Age;
public Gender _Gender;
}
public static void Main(string[] args)
{
//title
Console.Write("\t\t\t\t\tPatient Records\n");
string selection = "";
Record[] patients = new Record[5];
GetRecords(patients);
Console.Write("a. Add\n d.Display\ns. Stats\nq. Quit");
Console.Write("Your selection: ");
selection = Console.ReadLine();
switch (selection)
{
case "a":
GetRecords(patients);
break;
case "d":
break;
case "s":
Stats(patients);
break;
case "q":
//CUtility.Pause();
break;
}
}
static void GetRecords(Record[] patient_rec)
{
for (int i = 0; i < patient_rec.Length; i++)
{
Console.Write("Enter your age: ");
int.TryParse(Console.ReadLine(), out patient_rec[i]._Age);
Console.Write("Enter your name: ");
patient_rec[i]._Name = Console.ReadLine();
Console.Write("Enter your gender (female or male): ");
Gender.TryParse(Console.ReadLine(), out patient_rec[i]._Gender);
}
}
static void Stats(Record[]patient_rec)
{
}
}
ich diese zu schließen bin stimmen, weil du dich nicht an, Sie wissen, warum es Sie fragt 5 mal zu aber du rufst die Methode 'GetRecords (Record [] patient_rec an dann hast du eine for-Schleife die Länge des Record [] was erwartest du ..? Ich empfehle dir dringend, den Debugger zu benutzen, Breakpoints zu setzen und Schritt durch den Code .. – MethodMan
Sie rufen auch die 'GetRecords() erneut in der swit ch Statement .. das benötigt einige ernsthafte Umdenken/Debugging .. – MethodMan
@MethodMan Wir müssen ein Array mit 5 Standorten erstellen, so dass Teil nicht geändert werden kann. Ist es möglich, die for-Schleife an einen anderen Ort zu verschieben, damit sie jedes Mal aktualisiert werden kann? –