Guest User

SumOfNumbers.cs

a guest
Nov 2nd, 2013
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.20 KB | None | 0 0
  1. // SumOfNumbers.cs
  2. // Sum Of (5) integers, entered from standard input
  3. //
  4. // Build with "csc SumOfNumbers.cs" or "mono-csc SumOfNumbers.cs"
  5. // execute with "SumOfNumbers.exe"
  6.  
  7. using System;
  8. class SumOfNumbers
  9. {
  10.     public static void Main( )
  11.     {
  12.         const int numbersRequested = 5; // total requested numbers
  13.         int numbersRead = 0; // current count of correctly read numbers.
  14.                              // Should be the same type as numbersRequested
  15.                              // For 5 elements, "byte" type is also good.
  16.         string userInput;    // string to hold Console.ReadLine() result.
  17.         long result = 0;     // Result. Must be big enough to store
  18.                              // numbersRequested * (max 32bit integers)
  19.  
  20.         Console.Title = "Sum of numbers";
  21.         Console.WriteLine("Sum of {0} integers.", numbersRequested);
  22.         do
  23.         {
  24.             Console.WriteLine("Please enter number: ");
  25.             // Handling exceptions on WriteLine() is pointless,
  26.             // Since we can't inform the user anyways
  27.             // On the ReadLine(), however, the story is different
  28.             // E.g. the input filestream might get closed
  29.             try
  30.             {
  31.                 userInput = Console.ReadLine();
  32.             }
  33.             catch (Exception e)
  34.             {
  35.                 Console.WriteLine("Could not read user input, caught {0}. ", e.ToString());
  36.                 //since this is Main(), we just return.
  37.                 return;
  38.             }
  39.            
  40.             // We might as well read "EOF" (End of File) condition.
  41.             // Generated with Ctrl+D from Console
  42.             if ( null == userInput )
  43.             {
  44.                 Console.WriteLine("Reached end of input. ");
  45.                 //since this is Main(), we just return.
  46.                 return;
  47.             }
  48.            
  49.             // OK, we've got input. Try to parse it as an integer
  50.             int currentNumber = 0;
  51.             bool tryParse = int.TryParse(userInput, out currentNumber);
  52.             if (!tryParse)
  53.             {
  54.                 Console.WriteLine("Invalid number. ");
  55.                 continue;
  56.             }
  57.             result += currentNumber;
  58.             numbersRead++;
  59.         } while (numbersRead < numbersRequested);
  60.  
  61.         Console.WriteLine("Sum of the numbers is {0}. ", result);
  62.         return;
  63.     }
  64. }
  65. // Tests:
  66.  
  67. // Test case 1: correct input
  68. // Input:
  69. //1
  70. //2
  71. //3
  72. //4
  73. //5
  74. // Output:
  75. //Sum of 5 numbers.
  76. //Please enter number:
  77. //Please enter number:
  78. //Please enter number:
  79. //Please enter number:
  80. //Please enter number:
  81. //Sum of the numbers is 15.
  82.  
  83. // Test case 2: invalid number
  84. // Input:
  85. //1
  86. //2
  87. //3
  88. //foo
  89. //4
  90. //5
  91. // Output:
  92. //Sum of 5 numbers.
  93. //Please enter number:
  94. //Please enter number:
  95. //Please enter number:
  96. //Please enter number:
  97. //Invalid number.
  98. //Please enter number:
  99. //Please enter number:
  100. //Sum of the numbers is 15.
  101.  
  102. // Test case 3: premature EOF
  103. // Input:
  104. //1
  105. //2
  106. //3
  107. //5 (_EOF)
  108. // Output:
  109. //Sum of 5 numbers.
  110. //Please enter number:
  111. //Please enter number:
  112. //Please enter number:
  113. //Please enter number:
  114. //Please enter number:
  115. //Reached end of input.
Advertisement
Add Comment
Please, Sign In to add comment