Untitled
unknown
csharp
a year ago
25 kB
2
Indexable
Never
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); } } }