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);
}
}
}