Advertisement
marto9119

Untitled

May 18th, 2023
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.27 KB | Source Code | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Reflection;
  4. using System.Text;
  5.  
  6. namespace _10._SoftUni_Course_Planning
  7. {
  8.     internal class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             List<string> listPrograming = Console.ReadLine().Split(", ", StringSplitOptions.RemoveEmptyEntries).ToList();
  13.  
  14.             string stringComand;
  15.  
  16.             while ((stringComand = Console.ReadLine()) != "course start")
  17.             {
  18.                 List<string> ComandList = stringComand.Split(':', StringSplitOptions.RemoveEmptyEntries).ToList();
  19.  
  20.                 if (ComandList[0] == "Add")
  21.                 {
  22.                     //• Add: { lessonTitle} – add the lesson to the end of the schedule, if it does not exist.
  23.                     if (!listPrograming.Contains(ComandList[1]))
  24.                     {
  25.                         listPrograming.Add(ComandList[1]);
  26.                     }
  27.                 }
  28.                 else if (ComandList[0] == "Insert")
  29.                 {
  30.                     //• Insert: { lessonTitle}:{ index} – insert the lesson to the given index, if it does not exist.
  31.                     if (!listPrograming.Contains(ComandList[1]))
  32.                     {
  33.                         listPrograming.Insert(int.Parse(ComandList[2]), ComandList[1]);
  34.                     }
  35.                 }
  36.                 else if (ComandList[0] == "Remove")
  37.                 {
  38.                     //• Remove: { lessonTitle}  – remove the lesson, if it exists.
  39.                     if (listPrograming.Contains(ComandList[1]))
  40.                     {
  41.                         listPrograming.Remove(ComandList[1]);
  42.                     }
  43.  
  44.                 }
  45.                 else if (ComandList[0] == "Swap")
  46.                 {
  47.                     //• Swap: { lessonTitle}:{ lessonTitle} – swap the position of the two lessons, if they exist.
  48.                     if (listPrograming.Contains(ComandList[1]) && listPrograming.Contains(ComandList[2]))
  49.                     {
  50.                         (listPrograming[listPrograming.IndexOf(ComandList[1])], listPrograming[listPrograming.IndexOf(ComandList[2])]) = (listPrograming[listPrograming.IndexOf(ComandList[2])], listPrograming[listPrograming.IndexOf(ComandList[1])]);
  51.                     }
  52.                     //listPrograming = Swap(listPrograming , ComandList[1] , ComandList[2]);
  53.                 }
  54.                 else if (ComandList[0] == "Exercise")
  55.                 {
  56.                     //                Exercise: { lessonTitle} – add Exercise in the schedule right after the lesson index, if the lesson exists and there is no exercise already, in the following format "{lessonTitle}-Exercise".If the lesson doesn`t exist, add the lesson at the end of the course schedule, followed by the Exercise.
  57.                     //Note: Each time you Swap or Remove a lesson, you should do the same with the Exercises, if there are any following the lessons.
  58.                     if (!listPrograming.Contains(ComandList[1]))
  59.                     {
  60.                         listPrograming.Add(ComandList[1]);
  61.                     }
  62.                     if (!listPrograming.Contains(ComandList[1] + "-Exercise"))
  63.                     {
  64.                         int elementIndex = listPrograming.IndexOf(ComandList[1]);
  65.                         listPrograming.Insert(elementIndex+ 1, ComandList[1] + "-Exercise");
  66.                     }
  67.  
  68.                     //if (listPrograming.Contains(ComandList[1]))
  69.                     //{
  70.                     //    
  71.                     //    listPrograming.Insert(listPrograming.IndexOf(ComandList[1]) + 1, ComandList[1] + "-Exercise");
  72.                     //}
  73.                     //else
  74.                     //{
  75.                     //    listPrograming.Add(ComandList[1]);
  76.                     //    listPrograming.Add(ComandList[1] + "-Exercise");
  77.  
  78.                     //}
  79.                     // listPrograming = Exercise(listPrograming, ComandList[1]);
  80.                 }
  81.                 listPrograming = RearrangeExercises(listPrograming);
  82.  
  83.             }
  84.  
  85.             for (int i = 0; i < listPrograming.Count; i++)
  86.             {
  87.                 Console.WriteLine("{0}.{1}", i + 1, listPrograming[i]);
  88.             }
  89.         }
  90.  
  91.         static List<string> RearrangeExercises(List<string> list)
  92.         {
  93.             for (int i = 0; i < list.Count - 1; i++)
  94.                 if (list[i + 1].Contains("-Exercise") && list[i + 1] != list[i] + "-Exercise")
  95.                     for (int j = 0; j < list.Count; j++)
  96.                         if (list[i + 1] == list[j] + "-Exercise")
  97.                         {
  98.                             string temp = list[i + 1];
  99.                             list.RemoveAt(i + 1);
  100.                             list.Insert(j + 1, temp);
  101.                         }
  102.             return list;
  103.         }
  104.         static List<string> Exercise(List<string> list, string title)
  105.         {
  106.             if (!list.Contains(title)) list.Add(title);
  107.             if (list.Contains(title + "-Exercise")) return list;
  108.             int titleIndex = -1;
  109.             for (int i = 0; i < list.Count; i++)
  110.                 if (list[i] == title) titleIndex = i;
  111.  
  112.             list.Insert(titleIndex + 1, title + "-Exercise");
  113.             return list;
  114.         }
  115.     }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement