Guest User

[6/23/2014] Challenge #168 [Easy] Final Grades - Test Data

a guest
Jun 26th, 2014
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.01 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _Easy__Final_Grades___Test_Data
  8. {
  9.     class Program
  10.     {
  11.         // http://www.reddit.com/r/dailyprogrammer/comments/28vgej/6232014_challenge_168_easy_final_grades_test_data/
  12.  
  13.         static void Main(string[] args)
  14.         {
  15.             while (true)
  16.             {
  17.                 Console.WriteLine("How many students do you want to generate?");
  18.                 string m_line = Console.ReadLine();
  19.                 int m_number = 0;
  20.                 if (int.TryParse(m_line, out m_number))
  21.                 {
  22.                     MainClass m = new MainClass(int.Parse(m_line));
  23.                 }
  24.             }
  25.         }
  26.     }
  27.  
  28.     class Student
  29.     {
  30.         public string FirstName { get; set; }
  31.         public string LastName { get; set; }
  32.         public int[] Scores = new int[5];
  33.  
  34.         public Student(string p_firstname, string p_lastname, int[] p_scores)
  35.         {
  36.             FirstName = p_firstname;
  37.             LastName = p_lastname;
  38.             Scores = p_scores;
  39.         }
  40.         public Student(string p_firstname, string p_lastname)
  41.         {
  42.             FirstName = p_firstname;
  43.             LastName = p_lastname;
  44.         }
  45.         public override string ToString()
  46.         {
  47.             string m_scores = "";
  48.             foreach (int i in Scores)
  49.                 m_scores += i + " ";
  50.             return " " + FirstName + ", " + LastName + " " + m_scores;
  51.         }
  52.     }
  53.     class MainClass
  54.     {
  55.         List<Student> listStudents;
  56.         Random r;
  57.  
  58.         public MainClass(int p_number)
  59.         {
  60.             listStudents = new List<Student>();
  61.             r = new Random();
  62.             GenerateStudents(p_number);
  63.             Console.WriteLine("\nStudents:");
  64.             foreach (Student s in listStudents)
  65.                 Console.WriteLine(s.ToString());
  66.             Console.WriteLine("\n\nPress ENTER to go again.");
  67.             Console.ReadLine();
  68.         }
  69.         private void GenerateStudents(int p_number)
  70.         {
  71.             try
  72.             {
  73.                 Console.WriteLine("Generating " + p_number + " students...");
  74.                 for (int i = 0; i < p_number; i++)
  75.                 {
  76.                     string m_firstname;
  77.                     string m_lastname;
  78.                     int m_retries = 0;
  79.                     while (true)
  80.                     {
  81.                         GenerateNames(out m_firstname, out m_lastname);
  82.                         if (!StudentExists(m_firstname, m_lastname) || m_retries > 2)
  83.                         {
  84.                             listStudents.Add(new Student(m_firstname, m_lastname));
  85.                             Student ls = listStudents[listStudents.Count - 1];
  86.                             for (int i2 = 0; i2 < ls.Scores.Length; i2++)
  87.                             {
  88.                                 ls.Scores[i2] = r.Next(0, 101);
  89.                             }
  90.                             break;
  91.                         }
  92.                         else
  93.                             m_retries++;
  94.                     }
  95.                 }
  96.             }
  97.             catch (Exception Ex)
  98.             {
  99.                 Console.WriteLine("-- ERROR: " + Ex.Message);
  100.             }
  101.         }
  102.         private void GenerateNames(out string p_firstname, out string p_lastname)
  103.         {
  104.             p_firstname = FIRSTNAMES[r.Next(0, FIRSTNAMES.Length)];
  105.             p_lastname = LASTNAMES[r.Next(0, LASTNAMES.Length)];
  106.         }
  107.         private bool StudentExists(string p_firstname, string p_lastname)
  108.         {
  109.             foreach (Student s in listStudents)
  110.                 if (s.FirstName == p_firstname && s.LastName == p_lastname)
  111.                 {
  112.                     Console.WriteLine("-- Warning: " + p_firstname + " " + p_lastname + " already exists.");
  113.                     return true;
  114.                 }
  115.             return false;
  116.         }
  117.  
  118.  
  119.  
  120.  
  121.         #region First and lastnames
  122.         private string[] FIRSTNAMES = new string[] {
  123.             "John",
  124.               "Maurice",
  125.               "Jim",
  126.               "James",
  127.               "Jan",
  128.               "Lorenzo",
  129.               "Henk",
  130.               "Robert",
  131.               "Alex",
  132.               "Hans",
  133.               "Jimmy",
  134.               "Danny",
  135.               "Ruben",
  136.               "Kevin",
  137.               "Frank",
  138.               "Jesse",
  139.               "Patrick",
  140.               "Martin",
  141.               "Martijn"
  142.         };
  143.         private string[] LASTNAMES = new string[] {
  144.              "Loly",
  145.               "Baarten",
  146.               "Gekken",
  147.               "van der Heijden",
  148.               "Bond",
  149.               "van Veldhoven",
  150.               "van der Meer",
  151.               "Huizen",
  152.               "Goedenmakers",
  153.               "den Haag",
  154.               "Silvers",
  155.               "Heerens",
  156.               "van der Berg",
  157.               "Messi",
  158.               "van der Vaart"
  159.         };
  160.         #endregion
  161.     }
  162. }
Add Comment
Please, Sign In to add comment