Untitled

mail@pastecode.io avatar
unknown
csharp
2 years ago
25 kB
2
Indexable

Vladkaznachevski
/
laba-2.9
Private
Code
Issues
Pull requests
Actions
Projects
Security
Insights
Settings
Beta Try the new code view
laba-2.9/lab1.1/Program.cs
@Vladkaznachevski
Vladkaznachevski laba 2.0
 1 contributor
635 lines (530 sloc)  23.9 KB
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Sqlite;
using Excel = Microsoft.Office.Interop.Excel;
namespace laba_bebra
{
    class discipline
    {
        private string name = "";
        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        private List<Student> peoples = new List<Student>();
        public Student Peoples
        {
            get
            {
                Student aaa = new Student();
                return aaa;
            }

            set { peoples.Add(value); }
        }

        private List<Teacher> teachers = new List<Teacher>();

        public Teacher Teacher
        {
            get
            {
                Teacher aaa = new Teacher();
                return aaa;
            }

            set { teachers.Add(value); }
        }


        public void DeleteByName(string Name)
        {
            for (int i = 0; i < peoples.Count; i++)
            {
                if (peoples[i].Name == Name)
                {
                    peoples.RemoveAt(i);
                }
            }
            for (int i = 0; i < peoples.Count; i++)
            {
                if (teachers[i].Name == Name)
                {
                    teachers.RemoveAt(i);
                }
            }
        }

        public int CountStudent()
        {

            return peoples.Count;
        }
        public int CountTeachers()
        {

            return teachers.Count;
        }
        public void Print()
        {

            Console.WriteLine(name);
            Console.WriteLine(" ");
            Console.WriteLine("Количество учащихся дисциплины " + peoples.Count);
            Console.WriteLine(" ");
            for (int i = 0; i < peoples.Count; i++)
            {
                Console.WriteLine("студенты " + (peoples[i].Name));

            }
            Console.WriteLine(" ");
            Console.WriteLine("Количество учителей дисциплины " + teachers.Count);
            Console.WriteLine(" ");
            for (int i = 0; i < teachers.Count; i++)
            {
                Console.WriteLine("учителя " + (teachers[i].Name));

            }
        }

        public Student GetStudentByName(string Name)
        {
            Student aaa = new Student { Name = "Такого студента не существует" };
            for (int i = 0; i < peoples.Count; i++)
            {
                if (peoples[i].Name == Name)
                {
                    return peoples[i];
                }

            }
            return aaa;
        }

        public Student GetStudentByInt(int Name)
        {

            return peoples[Name];
        }

        public Teacher GetTeacherByInt(int Name)
        {

            return teachers[Name];
        }

        public Teacher GetTeacherByName(string Name)
        {
            Teacher aaa = new Teacher { Name = "Такого студента не существует" };
            for (int i = 0; i < teachers.Count; i++)
            {
                if (teachers[i].Name == Name)
                {
                    return teachers[i];
                }

            }
            return aaa;
        }

    }

    class Course : discipline
    {
        private List<discipline> disciplines = new List<discipline>();
        public discipline Disciplines
        {
            get
            {
                discipline aaa = new discipline();
                return aaa;
            }

            set { disciplines.Add(value); }
        }

        public void Print2()
        {
            for (int i = 0; i < disciplines.Count; i++)
            {
                Console.WriteLine(" - " + (disciplines[i].Name));
            }
        }

        public int DisciplineCount()
        {
            return disciplines.Count;
        }


        public void DeleteDiscipline(string Name)
        {
            for (int i = 0; i < disciplines.Count; i++)
            {
                if (disciplines[i].Name == Name)
                {
                    disciplines.RemoveAt(i);
                }
            }
        }


        public discipline GetDiscipline(string Name)
        {
            discipline aaa = new discipline();
            for (int i = 0; i < disciplines.Count; i++)
            {
                if (disciplines[i].Name == Name)
                {
                    return disciplines[i];
                }

            }
            return aaa;
        }


        public discipline GetDisciplineByNumber(int I)
        {

            return disciplines[I];
        }

    }



    public class User
    {
        public int Id { get; set; }

        public string name = "";

        public int age;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        public int Age
        {
            get { return age; }
            set { age = value; }
        }

        public virtual void GetInfo()
        {
            Console.WriteLine("Имя человека - " + name);
            Console.WriteLine("Возраст человека - " + age);
        }

        public string GetInfoString()
        {
            return name; 
        }
    }

    class Student : User
    {
        public override void GetInfo()
        {
            Console.WriteLine("я студент");
            Console.WriteLine("Имя человека - " + name);
            Console.WriteLine("Возраст человека - " + age);
        }
    }

    class Teacher : User
    {
        public override void GetInfo()
        {
            Console.WriteLine("я учитель");
            Console.WriteLine("Имя человека - " + name);
            Console.WriteLine("Возраст человека - " + age);
        }
    }

    public class ApplicationContext : DbContext
    {
        //public DbSet<User> Users => Set<User>();

        public DbSet<User> Users { get; set; } = null!;
        public ApplicationContext() => Database.EnsureCreated();

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlite("Data Source=helloapp.db");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            ApplicationContext db = new ApplicationContext();


            // Заполняем первую строку числами от 1 до 10

            List<string> Names = new List<string>()
            { "Леха", "Андрей", "Стас", "Илья" , "Вася" , "Никита" , "Влад" , "Вова"  , "Артем ","Федя" , "Саша", " Женя" , "Юра",
            };

            List<string> Surnames = new List<string>()
            { "Демидов", "Пятов", "Прокофьев", "Борисенко" , "Артемьев" , "Андреев" , "Кузнецов" , "Бебрин"  , "Бобров","Овчинников" , "Юрьев", "Антонов" , "Лехин",
            };

            List<string> DisciplinesNames = new List<string>()
            { "Алгебра",  "Геометрия",  "Физика",  "Русский",  "Литература" , "Иностранный язык",  "История",  "Краеведение",  "Обществознание",  "Обж",  "Физкультура",  "МХК",  "Изо",
            };

            List<Course> Courses = new List<Course>()
            {
            new Course{Name = "0. IVT" },
            new Course{Name = "1. ATP" },
            new Course{Name = "2. DLA" },
            new Course{Name = "3. MEN" },
            new Course{Name = "4. MTM" }

             };

            Console.WriteLine("Что нужно сделать?");
            int a, b, c, d, e, g;
            string d1, f1;
            do
            {
                Console.WriteLine("1. Редактируем Курсы");
                Console.WriteLine("2. Редактируем Дисциплины");
                Console.WriteLine("3. Быстрый Просмотр");
                Console.WriteLine("4. Заполнение случайными данными");
                Console.WriteLine("5. Поиск человека");
                Console.WriteLine("6. Поиск дисциплин");
                Console.WriteLine("7. Поиск человека по куску");

                a = Convert.ToInt32(Console.ReadLine());

                if (a == 1)
                {
                    Console.Clear();
                    do
                    {
                        Console.WriteLine("1. Просмотр Курсов");
                        b = Convert.ToInt32(Console.ReadLine());
                        if (b == 1)
                        {
                            for (int i = 0; i < Courses.Count; i++)
                            {
                                Console.WriteLine(Courses[i].Name);
                            }

                            Console.WriteLine(" Введите номер курса для редактирования");
                            c = Convert.ToInt32(Console.ReadLine());
                            Console.WriteLine("Список имеющихся дисциплин курса");
                            Courses[c].Print2();
                            Console.WriteLine(" Что вы хотите сделать с курсом");
                            Console.WriteLine(" 1. Добавить дисциплину");
                            Console.WriteLine(" 2. Удалить дисциплину");
                            d = Convert.ToInt32(Console.ReadLine());

                            if (d == 1)
                            {
                                Console.WriteLine(" Введите название дисциплины");
                                d1 = Console.ReadLine();
                                discipline aaa = new discipline { Name = d1 };
                                Courses[c].Disciplines = aaa;
                            }
                            if (d == 2)
                            {
                                Console.WriteLine(" Введите название дисциплины для удаления");
                                d1 = Console.ReadLine();
                                Courses[c].DeleteDiscipline(d1);
                            }
                        }
                    } while (b != 1);

                }

                if (a == 2)
                {
                    Console.Clear();
                    do
                    {
                        Console.WriteLine("1. Просмотр Курсов");
                        b = Convert.ToInt32(Console.ReadLine());
                        if (b == 1)
                        {
                            for (int i = 0; i < Courses.Count; i++)
                            {
                                Console.WriteLine(Courses[i].Name);
                            }

                            Console.WriteLine(" Введите номер курса для редактирования");
                            c = Convert.ToInt32(Console.ReadLine());
                            Console.WriteLine("Список имеющихся дисциплин курса");
                            Courses[c].Print2();
                            Console.WriteLine("Введите название дисциплины для редактирования");
                            d1 = Console.ReadLine();
                            discipline disc = new discipline();
                            disc = Courses[c].GetDiscipline(d1);
                            Console.WriteLine("Ученики и учителя этой дисциплины");
                            disc.Print();
                            Console.WriteLine(" Что вы хотите сделать с дисциплиной");
                            Console.WriteLine(" 1. Добавить Человека");
                            Console.WriteLine(" 2. Удалить Человека");
                            d = Convert.ToInt32(Console.ReadLine());

                            if (d == 1)
                            {
                                Console.WriteLine("1. Добавить Студента");
                                Console.WriteLine("2. Добавить Учителя");
                                e = Convert.ToInt32(Console.ReadLine());
                                if (e == 1)
                                {
                                    Console.WriteLine("Введите имя Студента");
                                    f1 = Console.ReadLine();
                                    Console.WriteLine("Введите возраст Студента");
                                    g = Convert.ToInt32(Console.ReadLine());
                                    Student aaa = new Student { Name = f1, Age = g };
                                    disc.Peoples = aaa;
                                }
                                if (e == 2)
                                {
                                    Console.WriteLine("Введите имя Учителя");
                                    f1 = Console.ReadLine();
                                    Console.WriteLine("Введите возраст Учителя");
                                    g = Convert.ToInt32(Console.ReadLine());
                                    Teacher aaa = new Teacher { Name = f1, Age = g };
                                    disc.Teacher = aaa;
                                }

                            }
                            if (d == 2)
                            {
                                Console.WriteLine("1. Удалить Студента");
                                Console.WriteLine("2. Удалить Учителя");
                                e = Convert.ToInt32(Console.ReadLine());
                                if (e == 1)
                                {
                                    Console.WriteLine("Введите имя Студента");
                                    f1 = Console.ReadLine();
                                    disc.DeleteByName(f1);
                                }
                                if (e == 2)
                                {
                                    Console.WriteLine("Введите имя Учителя");
                                    f1 = Console.ReadLine();
                                    disc.DeleteByName(f1);
                                }
                            }
                        }
                    } while (b != 1);
                }

                if (a == 3)
                {
                    Console.Clear();
                    for (int i = 0; i < Courses.Count; i++)
                    {
                        Console.WriteLine("---------------");
                        Console.WriteLine("Курс - " + Courses[i].Name);
                        Console.WriteLine(" ");

                        for (int i1 = 0; i1 < Courses[i].DisciplineCount(); i1++)
                        {
                            Courses[i].GetDisciplineByNumber(i1).Print();
                            Console.WriteLine(" - - -");
                        }

                    }

                }

                if (a == 4)
                {
                    Console.Clear();
                    Console.WriteLine("ВВедите количество дисциплин в курсе");
                    b = Convert.ToInt32(Console.ReadLine());

                    for (int i = 0; i < b; i++)
                    {
                        for (int i1 = 0; i1 < Courses.Count; i1++)
                        {
                            Random rnd = new Random();
                            string randName = DisciplinesNames[rnd.Next(DisciplinesNames.Count)];
                            discipline aaa = new discipline { Name = randName };
                            Courses[i1].Disciplines = aaa;
                        }
                    }
                    Console.WriteLine("Введите количество студентов в дисциплине");
                    int b2 = Convert.ToInt32(Console.ReadLine());
                    for (int i3 = 0; i3 < b2; i3++)
                    {
                        for (int i = 0; i < Courses.Count; i++)
                        {
                            for (int i1 = 0; i1 < Courses[i].DisciplineCount(); i1++)
                            {
                                discipline disc = Courses[i].GetDisciplineByNumber(i1);
                                Random rnd = new Random();
                                Random rnd2 = new Random();
                                string FullName;
                                FullName = Names[rnd.Next(Names.Count)] + " " + Surnames[rnd2.Next(Surnames.Count)];
                                Student aaa = new Student { Name = FullName, Age = rnd.Next(0, 30) };
                                disc.Peoples = aaa;
                                db.Add(aaa);
                                
                            }
                        }
                    }

                    Console.WriteLine("Введите количество учителей в дисциплине");
                    int b3 = Convert.ToInt32(Console.ReadLine());
                    for (int i3 = 0; i3 < b3; i3++)
                    {
                        for (int i = 0; i < Courses.Count; i++)
                        {
                            for (int i1 = 0; i1 < Courses[i].DisciplineCount(); i1++)
                            {
                                discipline disc = Courses[i].GetDisciplineByNumber(i1);
                                Random rnd = new Random();
                                Random rnd2 = new Random();
                                string FullName;
                                FullName = Names[rnd.Next(Names.Count)] + " " + Surnames[rnd2.Next(Surnames.Count)];
                                Teacher aaa = new Teacher { Name = FullName, Age = rnd.Next(0, 30) };
                                disc.Teacher = aaa;
                                db.Add(aaa);
                                
                            }
                        }
                    }

                    db.SaveChanges();
                }

                if (a == 5)
                {
                    Console.WriteLine("Введите полное имя человека для поиска");
                    d1 = Console.ReadLine();
                    for (int i = 0; i < Courses.Count; i++)
                    {
                        for (int i1 = 0; i1 < Courses[i].DisciplineCount(); i1++)
                        {
                            if (!(Courses[i].GetDisciplineByNumber(i1).GetStudentByName(d1).Name == "Такого студента не существует"))
                            {
                                Courses[i].GetDisciplineByNumber(i1).GetStudentByName(d1).GetInfo();
                            }
                            if (!(Courses[i].GetDisciplineByNumber(i1).GetTeacherByName(d1).Name == "Такого студента не существует"))
                            {
                                Courses[i].GetDisciplineByNumber(i1).GetTeacherByName(d1).GetInfo();
                            }

                        }
                    }

                }

                if (a == 6)
                {
                    Console.WriteLine("Введите полное название дисциплины для поиска");
                    d1 = Console.ReadLine();
                    for (int i = 0; i < Courses.Count; i++)
                    {
                        for (int i1 = 0; i1 < Courses[i].DisciplineCount(); i1++)
                        {
                            if (Courses[i].GetDisciplineByNumber(i1).Name == d1)
                            {
                                Courses[i].GetDisciplineByNumber(i1).Print();
                            }

                        }
                    }

                }


                if (a == 7)
                {
                    Console.WriteLine("Введите часть имя человека для поиска");
                    d1 = Console.ReadLine();
                    int aaa = 0;
                    for (int i = 0; i < Courses.Count; i++)
                    {
                        for (int i1 = 0; i1 < Courses[i].DisciplineCount(); i1++)
                        {
                            for (int i2 = 0; i2 < Courses[i].GetDisciplineByNumber(i1).CountStudent(); i2++)
                            {

                                if (Courses[i].GetDisciplineByNumber(i1).GetStudentByInt(i2).Name.ToLower().Contains(d1.ToLower()))
                                {
                                    Console.WriteLine("- - -");
                                    Courses[i].GetDisciplineByNumber(i1).GetStudentByInt(i2).GetInfo();
                                    Console.WriteLine("- - -");
                                    aaa = 1;
                                }


                                if (Courses[i].GetDisciplineByNumber(i1).GetTeacherByInt(i2).Name.ToLower().Contains(d1.ToLower()))
                                {
                                    Console.WriteLine("- - -");
                                    Courses[i].GetDisciplineByNumber(i1).GetTeacherByInt(i2).GetInfo();
                                    Console.WriteLine("- - -");
                                    aaa = 1;
                                }
                            }

                        }
                    }
                    if (aaa == 0) { Console.WriteLine("Такого человека нет"); }

                }

                if (a == 8)
                {
                    Excel.Application excelApp = new Excel.Application();
                    // Создаём экземпляр рабочий книги Excel
                    Excel.Workbook workBook;
                    // Создаём экземпляр листа Excel
                    Excel.Worksheet workSheet;

                    workBook = excelApp.Workbooks.Add();
                    workSheet = (Excel.Worksheet)workBook.Worksheets.get_Item(1);
                    workSheet.Cells[1, 1] = "студенты";
                    workSheet.Cells[1, 9] = "учителя";
                    for (int i = 0; i < Courses.Count; i++)
                    {
                        for (int i1 = 0; i1 < Courses[i].DisciplineCount(); i1++)
                        {
                          
                            for (int i11 = 0; i11 < Courses[i].GetDisciplineByNumber(i1).CountStudent(); i11++)
                            {
                                workSheet.Cells[i1 + 2, i11 + 1] = Courses[i].GetDisciplineByNumber(i1).GetStudentByInt(i11).GetInfoString();
                            
                               // workSheet.Cells[i1 + 4, i11 + 1] = Courses[i].GetDisciplineByNumber(i1).GetTeacherByInt(i11).GetInfoString();
                                
                            }

                            for (int i11 = 0; i11 < Courses[i].GetDisciplineByNumber(i1).CountTeachers(); i11++)
                            {
                               // workSheet.Cells[i1 + 2, i11 + 1] = Courses[i].GetDisciplineByNumber(i1).GetStudentByInt(i11).GetInfoString();

                                workSheet.Cells[i1 + 2, i11 + 9] = Courses[i].GetDisciplineByNumber(i1).GetTeacherByInt(i11).GetInfoString();

                            }
                        }
                    }


                    excelApp.Visible = true;

                }

                if (a == 9)
                {

               
                }


            } while (true);
        }
    }
}