Разбить стек студентов на два стека по полу - C#

Узнай цену своей работы

Формулировка задачи:

Список студентов группы (25 человек) организовать в виде стека. В записях элементов стека предусмотреть пол студента (М или Ж) – формировать случайным образом. Напечатать стек. Преобразовать этот стек в два по полу студентов. Напечатать новые стеки. C# Console. Заранее спасибо.

Решение задачи: «Разбить стек студентов на два стека по полу»

textual
Листинг программы
using System;
using System.Text;
using System.IO;
 using System.Collections.Generic;
//using Word = Microsoft.Office.Interop.Word;
 
namespace ConsoleApplication1
{
    
    class Program
    {
     public   class Student
        {
            public string FIO;
            public string Sex;
 
            public override string ToString()
            {
                return "ФИО:" + " "+FIO +" , "+ "Пол:"+" "+ Sex;
            }
 
       
        }
       
             public static Student CreateStudent()
            {
                Random rand = new Random();
                string str1 = "муж";
                string str2 = "жен";
              Student stud=new Student();
              Console.WriteLine("Введите ФИО:");
              stud.FIO = Console.ReadLine();
              int x = rand.Next(0, 2);
              if (x == 1)
              {
                  stud.Sex = "М";
              }
              else
              {
                  stud.Sex = "Ж";
              }
                return stud;
            }
 
             public static Stack<Student> CreateStack()
             {
                 Stack<Student> stack = new Stack<Student>();
                 for (int i = 0; i < 25; i++)
                 {
                     stack.Push(CreateStudent());
                 }
 
                     return stack;
             }
 
             public static Stack<Student> ReturnMale(Stack<Student> stack)
             {
                 Stack<Student> maleStack = new Stack<Student>();
                 foreach (var i in stack)
                 {
                     if (i.Sex == "М")
                     {
                         maleStack.Push(i);
                     }
 
                 }
                 return maleStack;
             }
 
             public static Stack<Student> ReturnFeMale(Stack<Student> stack)
             {
                 Stack<Student> feMaleStack = new Stack<Student>();
                 foreach (var i in stack)
                 {
                     if (i.Sex == "Ж")
                     {
                         feMaleStack.Push(i);
                     }
 
                 }
                 return feMaleStack;
             }
 
        static void Main(string[] args)
        {
 
            Stack<Student> students = new Stack<Student>();
            students = CreateStack();
            Stack<Student> maleStudents = new Stack<Student>();
            maleStudents = ReturnMale(students);
            Stack<Student> feMaleStudents = new Stack<Student>();
            feMaleStudents = ReturnFeMale(students);
            Console.WriteLine("Исходный стек:");
            foreach (var i in students)
            {
                Console.WriteLine(i.ToString());
            }
            Console.WriteLine();
            Console.WriteLine("Мужики:");
            foreach (var i in maleStudents)
            {
                Console.WriteLine(i.ToString());
            }
            Console.WriteLine();
            Console.WriteLine("Женщины: ");
            foreach (var i in feMaleStudents)
            {
                Console.WriteLine(i.ToString());
            }
            Console.ReadKey();
        }
    }
 
    
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы