2017-03-07 5 views
1

gestartet Nur C# lernen, meine Frage ist, wie halten i Aufzeichnung der Benutzereingabe, um wie folgt aus: score 1:Wie kann ich jede Benutzereingabe nummerieren? C#

score 1: 98 
score 2: 76 
score 3: 65 
score 4: 78 
score 5: 56 

In meinem Code i eingeben kann die Zahl aber kann nicht auf Setup scheint die Reihenfolge wie kann i erreichen dieses Ziel meine Eingabe:

98 
76 
65 
78 
56 

Code:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace MyGrade03 
{ 
    public class Program 
    { 
     private int total; // sum of grades 
     private int gradeCounter; //number of grades entered 
     private int aCount; // Count of A grades 
     private int bCount; // Count of B grades 
     private int cCount; // Count of C grades 
     private int dCount; // Count of D grades 
     private int fCount; // Count of F grades 
     private string v; 



     public string CourseName { get; set; } 

     public Program(string name) 
     { 
      CourseName = name; 
     } 

     public void DisplayMessage() 
     { 
      Console.WriteLine("Welcome to the grade book for \n{0}!\n", 
       CourseName); 
     } 

     public void InputGrade() 
     { 
      int grade; 
      string input; 

      Console.WriteLine("{0}\n{1}", 
       "Enter the integer grades in the range 0-100", 
       "Type <Ctrl> z and press Enter to terminate input:"); 

      input = Console.ReadLine(); //read user input 

      while (input != null) 
      { 
       grade = Convert.ToInt32(input); //read grade off user input 
       total += grade;// add grade to total 
       gradeCounter++; // increment number of grades 

       IncrementLetterGradeCounter(grade); 

       input = Console.ReadLine(); 
      } 
     } 
     private void IncrementLetterGradeCounter(int grade) 

     { 
      switch (grade/10) 
      { 
       case 9: //grade was in the 90s 
       case 10: 
        ++aCount; 
        break; 
       case 8: 
        ++bCount; 
        break; 
       case7: 
        ++cCount; 
       case6: 
        ++dCount; 
        break; 
       default: 
        ++fCount; 
        break; 

      } 
     } 
     public void DisplayGradeReport() 
     { 
      Console.WriteLine("\nGrade Report"); 

      if (gradeCounter != 0) 
      { 
       double average = (double)total/gradeCounter; 

       Console.WriteLine("Total of the {0} grades entered is {1}", 
        gradeCounter, total); 
       Console.WriteLine("class average is {0:F}", average); 
       Console.WriteLine("{0}A: {1}\nB: {2}\nC: {3}\nD: {4}\nF: {5} ", 
        "Number of students who received each grade: \n", 
        aCount, 
        bCount, 
        cCount, 
        dCount, 
        fCount); 
      } 
      else 
       Console.WriteLine("No grades were entered"); 
     } 
     static void Main(string[] args) 
     { 
      Program mygradebook = new Program(
       "CS101 introduction to C3 programming"); 
      mygradebook.DisplayMessage(); 
      mygradebook.InputGrade(); 
      mygradebook.DisplayGradeReport(); 
     } 
    } 
} 
+0

Du bist nicht klar, was Sie wollen. Machen Sie ein wenig Nachforschungen und Anstrengungen, besonders in diesem Schulauftrag. – EpicKip

+0

Gibt es irgendetwas, was Sie mit der Ordnungszahl der Eingabe machen wollen? ist es nur ein Index oder wird es für irgendetwas verwendet? – Dave

+0

@dave ich will nur wissen, wie bekomme ich die Punktzahl 1: numerisch für jeden Eingang – jmike

Antwort

1

Es gibt eine Menge von Daten struct Sie können Daten in der richtigen Reihenfolge speichern. Ich würde persönlich eine List<int> dafür empfehlen.

Sie können Dinge, um es hinzuzufügen so einfach wie:

var list = new List<int>(); 
list.Add(37); 
list.Add(95); 

Und Sie es entweder mit einem Iterator (foreach(var score in list){...}) oder einzelne Nummern raus lesen können (var firstScore = list[0]). In der Dokumentation erfahren Sie mehr darüber, was Sie mit einer List<T> machen können.

0

Sie können nach in C# verfügbaren Sammlungen suchen (MSDN Collections).

In Ihrem Fall kümmert sich nicht wirklich um Reihenfolge, können Sie List<int> verwenden. Andernfalls, wenn Sie eine Bestellung behalten möchten, können Sie Stack<int> oder Queue<int> verwenden. Und wenn Sie eine Sammlung von Schülername behalten möchten + Score Sie ein Dictionary<string,int> können

+0

'List ' wird die Dinge auch in Ordnung zu halten. Der Unterschied zwischen ihnen und Stapeln/Warteschlangen besteht darin, dass Sie auf alle Elemente in einer Liste zugreifen können, aber Stapel und Warteschlangen geben den Inhalt nur in einer bestimmten Reihenfolge zurück. Sie alle speichern den Inhalt in der Reihenfolge, in der Sie ihn definiert haben. – Chris

2

eine Variable deklarieren Eingänge zu zählen wie private static int counter = 0;
in InputGrade Verfahren, setzen wie unten

Console.WriteLine("{0}\n{1}", 
       "Enter the integer grades in the range 0-100", 
       "Type <Ctrl> z and press Enter to terminate input:"); 
counter++; 
System.Console.Write("score " + counter + ":"); 
input = Console.ReadLine(); //read user input 

und innen while (input != null) setzen wie unten

IncrementLetterGradeCounter(grade); 
counter++; 
System.Console.Write("score " + counter + ":"); 
input = Console.ReadLine(); 

so, Ausgabe wie wirdHier

ist der vollständige Code

public class Program 
    { 
     private int total; // sum of grades 
     private int gradeCounter; //number of grades entered 
     private int aCount; // Count of A grades 
     private int bCount; // Count of B grades 
     private int cCount; // Count of C grades 
     private int dCount; // Count of D grades 
     private int fCount; // Count of F grades 
     private string v; 
     private static int counter = 0; 


     public string CourseName { get; set; } 

     public Program(string name) 
     { 
      CourseName = name; 
     } 

     public void DisplayMessage() 
     { 
      Console.WriteLine("Welcome to the grade book for \n{0}!\n", 
       CourseName); 
     } 

     public void InputGrade() 
     { 
      int grade; 
      string input; 

      Console.WriteLine("{0}\n{1}", 
       "Enter the integer grades in the range 0-100", 
       "Type <Ctrl> z and press Enter to terminate input:"); 
      counter++; 
      System.Console.Write("score " + counter + ":"); 
      input = Console.ReadLine(); //read user input 

      while (input != null) 
      { 
       grade = Convert.ToInt32(input); //read grade off user input 
       total += grade;// add grade to total 
       gradeCounter++; // increment number of grades 

       IncrementLetterGradeCounter(grade); 
       counter++; 
       System.Console.Write("score " + counter + ":"); 
       input = Console.ReadLine(); 
      } 
     } 
     private void IncrementLetterGradeCounter(int grade) 
     { 
      switch (grade/10) 
      { 
       case 9: //grade was in the 90s 
       case 10: 
        ++aCount; 
        break; 
       case 8: 
        ++bCount; 
        break; 
       case7: 
        ++cCount; 
       case6: 
        ++dCount; 
        break; 
       default: 
        ++fCount; 
        break; 

      } 
     } 
     public void DisplayGradeReport() 
     { 
      Console.WriteLine("\nGrade Report"); 

      if (gradeCounter != 0) 
      { 
       double average = (double)total/gradeCounter; 

       Console.WriteLine("Total of the {0} grades entered is {1}", 
        gradeCounter, total); 
       Console.WriteLine("class average is {0:F}", average); 
       Console.WriteLine("{0}A: {1}\nB: {2}\nC: {3}\nD: {4}\nF: {5} ", 
        "Number of students who received each grade: \n", 
        aCount, 
        bCount, 
        cCount, 
        dCount, 
        fCount); 
      } 
      else 
       Console.WriteLine("No grades were entered"); 
     } 
     static void Main(string[] args) 
     { 
      Program mygradebook = new Program(
       "CS101 introduction to C3 programming"); 
      mygradebook.DisplayMessage(); 
      mygradebook.InputGrade(); 
      mygradebook.DisplayGradeReport(); 
      Console.ReadKey(); 
     } 
    } 
Verwandte Themen