2017-03-07 16 views
1

ちょうどC#のを学び始め、私の質問はどのように私は、ユーザー入力の記録を保持します。このような順に:どのようにすることができます私は、入力数がなく、セットアップするために見える傾けることができ、私のコードではscore 1:どのように各ユーザの入力に番号を付けることができますか? C#の

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

私はこの目標に 私の入力を達成:

98 
76 
65 
78 
56 

コード:データ構造体の多くは

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

です。特にこの学校の課題について少し研究し、努力してください。 – EpicKip

+0

あなたは入力の序数で何かしたいですか?それは単なるインデックスですか、それとも何かのために使用されますか? – Dave

+0

@dave私はちょうど私が得点1を得る方法を知りたい:各入力のための数値 – jmike

答えて

1

ありますデータを順番に保存することができます。私は個人的にこれにList<int>をお勧めしたいと思います。

あなたは、単にとしてそれに物事を追加することができます。

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

そして、あなたはイテレータ(foreach(var score in list){...})でそれを読んだり、個々の数字アウト(var firstScore = list[0])を取得することができます。ドキュメントには、List<T>でできることの詳細が記載されています。

0

C#(MSDN Collections)で利用できるコレクションを探すことができます。

あなたの場合、実際に注文を気にする必要はありません。List<int>を使用できます。それ以外の場合は、ご注文をご希望の場合はStack<int>またはQueue<int>をご利用ください。あなたが学生の名前+のコレクションを維持したい場合は、あなたがDictionary<string,int>

+0

'List 'は物事を順番に保ちます。それらとスタック/キューの違いは、リスト内のどのアイテムにもアクセスできますが、スタックとキューは非常に特定の順序で内容を返すだけです。それらはすべて、定義した順序で内容を保存します。 – Chris

2

InputGrade方法でprivate static int counter = 0;
などの入力をカウントする一つの変数を宣言し使用することができますスコア、以下

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)を内側に置きますそう

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

以下のように入れ、出力は のようになります3210

は、ここであなたが望むものを明確じゃない完全なコード

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(); 
     } 
    } 
関連する問題