//группировка пар, если пара встречается только четыре раза за две недели public static StudentsClass[,] GetGroupFourSameClasses(StudentsClass[] classes) { List<StudentClassQuad> quadsClasses = new List<StudentClassQuad>(); List<StudentsClass> classesList = classes.ToList(); foreach (StudentsClass sClass in classesList) { if (quadsClasses.FindAll((pc) => pc.c1 == sClass || pc.c2 == sClass || pc.c3 == sClass || pc.c4 == sClass).Count == 0) { if (classesList.FindAll(c => StudentsClass.StudentClassEquals(c, sClass) && c != sClass).Count > 3) { //пара встречается больше четырех раз за две недели continue; } StudentsClass secondClass = classesList.Find(c => StudentsClass.StudentClassEquals(c, sClass) && c != sClass); StudentsClass thirdClass = classesList.Find(c => StudentsClass.StudentClassEquals(c, sClass) && c != sClass && c != secondClass); StudentsClass fourthClass = classesList.Find(c => StudentsClass.StudentClassEquals(c, sClass) && c != sClass && c != secondClass && c != thirdClass); if (secondClass != null && thirdClass != null && fourthClass != null) { quadsClasses.Add(new StudentClassQuad(sClass, secondClass, thirdClass, fourthClass)); } } } StudentsClass[,] quadsClassesArray = new StudentsClass[quadsClasses.Count, 4]; for (int pairClassesIndex = 0; pairClassesIndex < quadsClasses.Count; pairClassesIndex++) { quadsClassesArray[pairClassesIndex, 0] = quadsClasses[pairClassesIndex].c1; quadsClassesArray[pairClassesIndex, 1] = quadsClasses[pairClassesIndex].c2; quadsClassesArray[pairClassesIndex, 2] = quadsClasses[pairClassesIndex].c3; quadsClassesArray[pairClassesIndex, 3] = quadsClasses[pairClassesIndex].c4; } return quadsClassesArray; }
public static bool LotOfClassesInWeek(int maxCountClassesInWeek, StudentsClass[,] sClasses, ISchedule schedule, StudentsClass specialClass) { int rowClass = -1; //если пара есть в списке "особых пар" - получаю номер строки, в которой располагаются другие "особые" пары if ((rowClass = GetRow(sClasses, specialClass)) != -1) { int weekCount1 = 0; //количество "особых" пар из полученной строки, поставленных на первую неделю int weekCount2 = 0; //количество "особых" пар из полученной строки, поставленных на вторую неделю for (int classIndex = 0; classIndex < sClasses.GetLength(1); classIndex++) { if (sClasses[rowClass, classIndex] == null) continue; StudentsClassPosition? position = schedule.GetClassPosition(sClasses[rowClass, classIndex]); if (position.HasValue)//если пара установлена { if (Constants.GetWeekOfClass(position.Value.Time) == 0)//если пара располагается на первой неделе weekCount1++; else//на второй weekCount2++; } } if (weekCount1 > maxCountClassesInWeek || weekCount2 > maxCountClassesInWeek) { return true; } } return false; }
static void Main(string[] args) { List <StudentsClass> StudentsList = new List <StudentsClass>(); string command = string.Empty; while (command != "end") { command = Console.ReadLine(); if (command == "end") { break; } string[] splitedinput = command.Split(' ').ToArray(); string firsname = splitedinput[0]; string lastname = splitedinput[1]; string age = splitedinput[2]; string tawn = splitedinput[3]; StudentsClass students = new StudentsClass(); students.firstname = firsname; students.lastname = lastname; students.age = age; students.town = tawn; StudentsList.Add(students); } string lasttawn = Console.ReadLine(); List <StudentsClass> filteredstudents = StudentsList.Where(x => x.town == lasttawn).ToList(); foreach (var students in filteredstudents) { Console.WriteLine($"{students.firstname} {students.lastname} is {students.age} years old."); } }
private void OnMouseDown() { ++Students.total_student_count; try { if ((Students.total_student_count <= 40) == false) { throw new Exception("Out of Range error...."); } else { custom_students = new StudentsClass((GameObject)Resources.Load("Prefabs/Body")); custom_students.student_box.transform.parent = gameObject.transform; students_list.Add(custom_students); } } catch (Exception e) { Debug.LogError(e); } //Debug.Log(StudentsClass.students_name); }
/// <summary> /// Removes all students from class attached to classid. /// </summary> /// <param name="classid">ID of class to remove students from.</param> public async Task RemoveStudentsFromClass(int classid) { var studentsClassesQuery = (from studentsclasses in _context.StudentsClasses select new { studentsclasses.ClassId, studentsclasses.StudentId }).Where(sc => sc.ClassId == classid); List <StudentsClass> connectionsToDelete = new List <StudentsClass>(); foreach (var sc in studentsClassesQuery) { StudentsClass connection = new StudentsClass() { ClassId = sc.ClassId, StudentId = sc.StudentId }; connectionsToDelete.Add(connection); } _context.StudentsClasses.RemoveRange(connectionsToDelete); await _context.SaveChangesAsync(); }
/// <summary> /// Removes students from classes attached to teacherid. /// </summary> /// <param name="teacherid">ID of teacher to get classes of</param> /// <returns></returns> public async Task RemoveStudentsFromClasses(int teacherid) { var classesQuery = (from studentclasses in _context.StudentsClasses join classes in _context.Classes on studentclasses.ClassId equals classes.ClassId select new { studentclasses.StudentId, studentclasses.ClassId, classes.TeacherId }).Where(c => c.TeacherId == teacherid); List <StudentsClass> connectionsToDelete = new List <StudentsClass>(); foreach (var c in classesQuery) { StudentsClass sc = new StudentsClass() { StudentId = c.StudentId, ClassId = c.ClassId }; connectionsToDelete.Add(sc); } _context.StudentsClasses.AttachRange(connectionsToDelete); _context.StudentsClasses.RemoveRange(connectionsToDelete); await _context.SaveChangesAsync(); }
//группировка пар, если пара встречается только два раза за две недели public static StudentsClass[,] GetGroupTwoSameClasses(StudentsClass[] classes) { List<StudentClassPair> pairsClasses = new List<StudentClassPair>(); List<StudentsClass> classesList = classes.ToList(); foreach (StudentsClass sClass in classesList) { if (pairsClasses.FindAll((pc) => pc.c1 == sClass || pc.c2 == sClass).Count == 0) { if (classesList.FindAll(c => StudentsClass.StudentClassEquals(c, sClass) && c != sClass).Count > 1) { //пара встречается больше двух раз за две недели continue; } StudentsClass secondClass = classesList.Find(c => StudentsClass.StudentClassEquals(c, sClass) && c != sClass); if (secondClass != null) { pairsClasses.Add(new StudentClassPair(sClass, secondClass)); } } } StudentsClass[,] pairsClassesArray = new StudentsClass[pairsClasses.Count, 2]; for (int pairClassesIndex = 0; pairClassesIndex < pairsClasses.Count; pairClassesIndex++) { pairsClassesArray[pairClassesIndex, 0] = pairsClasses[pairClassesIndex].c1; pairsClassesArray[pairClassesIndex, 1] = pairsClasses[pairClassesIndex].c2; } return pairsClassesArray; }
public ChooseClassRoom(int TimeRows, ScheduleForEdit schedule, StudentsClass sClass) { InitializeComponent(); this.TimeRows = TimeRows; this.schedule = schedule; this.sClass = sClass; }
public static bool ClassAtTheSameTimeOnOtherWeek(ISchedule schedule, StudentsClass[] sClasses, int dayOfWeek, int classOfDay) { StudentsClass tempClass = schedule.GetTempClass(); if (dayOfWeek < Constants.DAYS_IN_WEEK) { foreach (StudentSubGroup subGroup in tempClass.SubGroups) { StudentsClass secondClass = schedule.GetPartialSchedule(subGroup).GetClassesOfDay(dayOfWeek + Constants.DAYS_IN_WEEK)[classOfDay]; if (!IsSameClassesAtTheSameTimeOnOtherWeek(sClasses, tempClass, secondClass)) { return false; } } } else { foreach (StudentSubGroup subGroup in tempClass.SubGroups) { StudentsClass secondClass = schedule.GetPartialSchedule(subGroup).GetClassesOfDay(dayOfWeek - Constants.DAYS_IN_WEEK)[classOfDay]; if (!IsSameClassesAtTheSameTimeOnOtherWeek(sClasses, tempClass, secondClass)) { return false; } } } return true; }
public static int CountUpFourWindowsOfAddedClass(StudentsClass[] sClasses, int classOfDay) { int windowsCount = 0; int last = LastClassOfDay(sClasses); if ((classOfDay == 0 && last == 0) || (classOfDay == 1 && last == 1) || (classOfDay == 2 && last == 2) || (classOfDay == 3 && last == 3)) { return windowsCount; } else if (classOfDay < 1) { if (CheckFourWindowsOfNextClass(sClasses, classOfDay)) { windowsCount++; } } else if (classOfDay > 4) { if (CheckFourWindowsOfPreviousClass(sClasses, classOfDay)) { windowsCount++; } } return windowsCount; }
public StudentFormSearch() { InitializeComponent(); StudentsClass show = new StudentsClass(UserAccessForm.getdbserver(), UserAccessForm.getdbname(), UserAccessForm.getdbuser(), UserAccessForm.getdbpassword(), UserAccessForm.getdbport()); datecontrol.Hide(); inscritobox.Text = "SI"; string userDataName = UserAccessForm.getusername() + "_student_table"; string allorden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where estudiando = '" + inscritobox.Text + "'; "; show.ShowDataGrid(findinggrid, allorden); encontradoslabel.Text = show.getcuenta().ToString(); string curso = "select distinct CURSO from " + userDataName + ""; show.Fillcombo(gradebox, curso); string nombre = "select distinct `NOMBRE COMPLETO` from " + userDataName + ""; show.Fillcombo(namebox, nombre); string edad = "select distinct EDAD from " + userDataName + ""; show.Fillcombo(edadbox, edad); }
public static bool ClassesAtSameTime(ISchedule schedule, int classRow, StudentsClass[,] sClasses) { StudentsClassPosition? firstClassPosition = schedule.GetClassPosition(sClasses[classRow, 0]); StudentsClassPosition? secondClassPosition = schedule.GetClassPosition(sClasses[classRow, 1]); if (firstClassPosition.HasValue && secondClassPosition.HasValue) { if (firstClassPosition.Value.Time > secondClassPosition.Value.Time) { if (secondClassPosition.Value.Time + Constants.CLASSES_IN_DAY * Constants.DAYS_IN_WEEK != firstClassPosition.Value.Time) { return false; } } else if (secondClassPosition.Value.Time > firstClassPosition.Value.Time) { if (firstClassPosition.Value.Time + Constants.CLASSES_IN_DAY * Constants.DAYS_IN_WEEK != secondClassPosition.Value.Time) { return false; } } } return true; }
public static bool ClassesAtSameTime(StudentsClass c1, StudentsClass c2, ISchedule schedule) { StudentsClassPosition? firstClassPosition = schedule.GetClassPosition(c1); StudentsClassPosition? secondClassPosition = schedule.GetClassPosition(c2); if (firstClassPosition.HasValue && secondClassPosition.HasValue) { if (firstClassPosition.Value.Time > secondClassPosition.Value.Time) { if (secondClassPosition.Value.Time + Constants.CLASSES_IN_DAY * Constants.DAYS_IN_WEEK != firstClassPosition.Value.Time) { return false; } } else if (secondClassPosition.Value.Time > firstClassPosition.Value.Time) { if (firstClassPosition.Value.Time + Constants.CLASSES_IN_DAY * Constants.DAYS_IN_WEEK != secondClassPosition.Value.Time) { return false; } } } return true; }
public static bool LotOfClassesInDay(int maxCountClassesInDay, StudentsClass[,] sClasses, ISchedule schedule, StudentsClass specialClass) { int rowClass = -1; int dayOfSpecialClass = Constants.GetDayOfClass(schedule.GetClassPosition(specialClass).Value.Time); //если пара есть в списке "особых пар" - получаю номер строки, в которой располагаются другие "особые" пары if ((rowClass = GetRow(sClasses, specialClass)) != -1) { int dayCount = 0; //количество "особых" пар из полученной строки, поставленных в данный день for (int classIndex = 0; classIndex < sClasses.GetLength(1); classIndex++) { if (sClasses[rowClass, classIndex] == null) continue; StudentsClassPosition? position = schedule.GetClassPosition(sClasses[rowClass, classIndex]); if (position.HasValue)//если пара установлена { if (dayOfSpecialClass == Constants.GetDayOfClass(position.Value.Time)) dayCount++; if (dayCount > maxCountClassesInDay) { return true; } } } } return false; }
private void outbutton_Click(object sender, EventArgs e) { StudentsClass clas = new StudentsClass(UserAccessForm.getdbserver(), UserAccessForm.getdbname(), UserAccessForm.getdbuser(), UserAccessForm.getdbpassword(), UserAccessForm.getdbport()); MovementsClass cas = new MovementsClass(UserAccessForm.getdbserver(), UserAccessForm.getdbname(), UserAccessForm.getdbuser(), UserAccessForm.getdbpassword(), UserAccessForm.getdbport()); string user = UserAccessForm.getusername() + "_student_table"; string orden; string control = datecontrol.Value.Day.ToString() + "/" + datecontrol.Value.Month.ToString() + "/" + datecontrol.Value.Year.ToString(); if (actionbox.Text == "INSCRIBIR") { salida = "00/00/0000"; } else { salida = birthDateBox.Value.Day.ToString() + "/" + birthDateBox.Value.Month.ToString() + "/" + birthDateBox.Value.Year.ToString(); } string deuda; clas.ModifyData(user, namelabel.Text, salida, inscrito); StudentFormSearch menu = new StudentFormSearch(); menu.WindowState = FormWindowState.Maximized; menu.Show(); this.Close(); }
/// <summary> /// Removes student from all classes attached to student /// </summary> /// <param name="studentid">ID of student to remove from classes</param> public async Task RemoveStudentFromAllClasses(int studentid) { var studentsClasses = (from studentsclasses in _context.StudentsClasses select new { studentsclasses.StudentId, studentsclasses.ClassId }).Where(sc => sc.StudentId == studentid); List <StudentsClass> studentsClassesList = new List <StudentsClass>(); foreach (var sc in studentsClasses) { StudentsClass newStudentClass = new StudentsClass() { StudentId = sc.StudentId, ClassId = sc.ClassId }; studentsClassesList.Add(newStudentClass); } _context.StudentsClasses.RemoveRange(studentsClassesList); await _context.SaveChangesAsync(); }
private void edadbox_SelectedIndexChanged(object sender, EventArgs e) { string userDataName = UserAccessForm.getusername() + "_student_table"; StudentsClass show = new StudentsClass(UserAccessForm.getdbserver(), UserAccessForm.getdbname(), UserAccessForm.getdbuser(), UserAccessForm.getdbpassword(), UserAccessForm.getdbport()); string orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where estudiando = '" + inscritobox.Text + "' and EDAD='" + edadbox.Text + "'; "; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); edadbox.BackColor = Color.White; if (namebox.Text == "" || edadbox.Text == "" || gradebox.Text == "" || inscritobox.Text == "NO") { eliminarbutton.Enabled = false; } else { eliminarbutton.Enabled = true; } if (namebox.Text == "" || edadbox.Text == "" || gradebox.Text == "") { editbutton.Enabled = false; } else { editbutton.Enabled = true; } }
public Form1() { InitializeComponent(); var ListTextBox = new List <TextBox>();//lista con los datos de textBox ListTextBox.Add(textBoxFirstName); ListTextBox.Add(textBoxLastName); ListTextBox.Add(textBoxIdentification); ListTextBox.Add(textBoxEmail); var ListLabel = new List <Label>();//lista con las label ListLabel.Add(labelFName); ListLabel.Add(labelLName); ListLabel.Add(labelID); ListLabel.Add(labelEmail); ListLabel.Add(labelPage); Object[] objects = { pictureBoxStudents, Properties.Resources._130manwomanstudent2_100617, studentGridView, numericUpDown1 }; students = new StudentsClass(ListTextBox, ListLabel, objects); }
public ChooseClassRoom(int TimeRows, EntityStorage store, StudentsClass sClass) { InitializeComponent(); this.TimeRows = TimeRows; this.store = store; this.sClass = sClass; }
//группировка пар, если пара встречается больше двух раз за две недели public static StudentsClass[,] GetGroupSameClassesMoreTwoInTwoWeeks(StudentsClass[] classes) { List<StudentClassPair> pairsClasses = new List<StudentClassPair>(); List<StudentsClass> classesList = classes.ToList(); foreach (StudentsClass sClass in classesList) { if (pairsClasses.FindAll((pc) => pc.c1 == sClass || pc.c2 == sClass || StudentsClass.StudentClassEquals(pc.c1, sClass)).Count == 0) { List<StudentsClass> sameClasses = classesList.FindAll(c => StudentsClass.StudentClassEquals(c, sClass)); int countClasses = sameClasses.Count; if (countClasses % 2 == 1) countClasses--; for (int pairIndex = 0; pairIndex < countClasses; pairIndex += 2) { pairsClasses.Add(new StudentClassPair(sameClasses[pairIndex], sameClasses[pairIndex + 1])); } } } StudentsClass[,] pairsClassesArray = new StudentsClass[pairsClasses.Count, 2]; for (int pairClassesIndex = 0; pairClassesIndex < pairsClasses.Count; pairClassesIndex++) { pairsClassesArray[pairClassesIndex, 0] = pairsClasses[pairClassesIndex].c1; pairsClassesArray[pairClassesIndex, 1] = pairsClasses[pairClassesIndex].c2; } return pairsClassesArray; }
public StudentOutForm() { InitializeComponent(); rutafoto.Hide(); actionbox.Text = "DESINSCRIBIR"; namelabel.Text = StudentsClass.getstaticname().ToString(); StudentsClass student = new StudentsClass(UserAccessForm.getdbserver(), UserAccessForm.getdbname(), UserAccessForm.getdbuser(), UserAccessForm.getdbpassword(), UserAccessForm.getdbport()); string orden = "SELECT * FROM " + UserAccessForm.getusername() + "_student_table WHERE `NOMBRE COMPLETO` = '" + namelabel.Text + "';"; student.filleverylabel(agelabel, gradelabel, horariolabel, birthdatelabel, nacionalitylabel, telephonelabel, adresslabel, sexolabel, inscritolabel, fechaentradalabel, fechasalidalabel, numeroactalabel, foliolabel, librolabel, yearlabel, oficialialabel, municipiolabel, alergialabel, medicinalabel, razonmedicinalabel, sindromelabel, tutorlabel, cedulalabel, mensualidadlabel, tipomoneda, rutafoto, parentescolabel, emaillabel, orden); if (inscritolabel.Text == "SI") { actionbox.Text = "DESINSCRIBIR"; fechasalidalabel.Show(); titulofechasalida.Show(); //birthDateBox.Text = fechasalidalabel.Text; birthDateBox.Show(); titulosalidaopen.Show(); } if (inscritolabel.Text == "NO") { fechasalidalabel.Hide(); titulofechasalida.Hide(); birthDateBox.Hide(); titulosalidaopen.Hide(); actionbox.Text = "INSCRIBIR"; } if (inscritolabel.Text == "NO") { actionbox.Text = "INSCRIBIR"; } if (inscritolabel.Text == "SI") { actionbox.Text = "DESINSCRIBIR"; fechasalidalabel.Hide(); titulofechasalida.Hide(); } if (rutafoto.Text != "") { string path = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); string combinacion = System.IO.Path.Combine(path, UserAccessForm.getusername()); string fotopath = System.IO.Path.Combine(combinacion, rutafoto.Text); pictureBox.ImageLocation = fotopath; } datecontrol.Hide(); datecontrol.Enabled = false; }
/// <summary> /// Adds student to a class in "studentsclasses" table /// </summary> /// <param name="studentid">ID of student to add to class</param> /// <param name="classid">ID of class to add student to</param> public async Task AddStudentToClass(int studentid, int classid) { StudentsClass newClass = new StudentsClass() { StudentId = studentid, ClassId = classid }; _context.StudentsClasses.Add(newClass); await _context.SaveChangesAsync(); }
public StudentsClassPosition? GetClassPosition(StudentsClass sClass) { for (int timeIndex = 0; timeIndex < classesTable.GetLength(0); timeIndex++) { for (int roomIndex = 0; roomIndex < classesTable.GetLength(1); roomIndex++) { if (classesTable[timeIndex, roomIndex] == sClass) return new StudentsClassPosition(timeIndex, roomIndex); } } return null; }
public ClassRoom GetClassRoom(StudentsClass sClass) { for (int timeIndex = 0; timeIndex < classesTable.GetLength(0); timeIndex++) { for (int classRoomIndex = 0; classRoomIndex < classesTable.GetLength(1); classRoomIndex++) { if (classesTable[timeIndex, classRoomIndex] == sClass) return eStorage.ClassRooms[classRoomIndex]; } } return null; }
public static int GetRow(StudentsClass[,] sClasses, StudentsClass sClass) { if (sClass == null) return -1; for (int rowIndex = 0; rowIndex < sClasses.GetLength(0); rowIndex++) { for (int colIndex = 0; colIndex < sClasses.GetLength(1); colIndex++) { if (sClasses[rowIndex, colIndex] == sClass) return rowIndex; } } return -1; }
public StudentsClass[] GetClassesOfDay(int day) { if (day < 0 || day > Constants.WEEKS_IN_SCHEDULE * Constants.DAYS_IN_WEEK-1) throw new Exception("Некорректный номер дня"); StudentsClass[] classesOfDay = new StudentsClass[Constants.CLASSES_IN_DAY]; int classIndex = 0; for (int dayIndex = day*Constants.CLASSES_IN_DAY; dayIndex < day * Constants.CLASSES_IN_DAY + Constants.CLASSES_IN_DAY; dayIndex++) { classesOfDay[classIndex] = schedule[dayIndex]; classIndex++; } return classesOfDay; }
public async Task InsertOrReplaceAsync(StudentsClass studentsClass) { var table = await _azureStorageHelper.EnsureTableExistenceAndGetReferenceAsync("StudentsClass"); var insertOrReplaceOperation = TableOperation.InsertOrReplace(studentsClass); try { var tableResult = await table.ExecuteAsync(insertOrReplaceOperation); } catch (Exception exception) { throw new TableException("Dodawanie nowego obiektu do bazy danych nie powiodło się.", exception); } }
public Rollback(StudentsClass[] classes, int maxCountRollabaks, FullSchedule schedule, StudentsClass[] fixedClasses) { MaxCountRollbacks = maxCountRollabaks; rollbackLenghtArray = new int[classes.Length]; rollbackCountArray = new int[classes.Length]; classesForCountRollbackLength = (StudentsClass[])classes.Clone(); if(fixedClasses != null) { this.fixedClasses = fixedClasses; } else { this.fixedClasses = new StudentsClass[0]; } this.schedule = schedule; }
private void eliminarbutton_Click(object sender, EventArgs e) { if (inscritobox.Text == "NO") { MessageBox.Show("Solo se pueden desincribir estudiantes."); inscritobox.BackColor = Color.Red; } else { if (gradebox.Text == "" || edadbox.Text == "" || namebox.Text == "") { MessageBox.Show("Hay datos importantes faltantes."); if (gradebox.Text == "") { gradebox.BackColor = Color.Red; } if (edadbox.Text == "") { edadbox.BackColor = Color.Red; } if (namebox.Text == "") { namebox.BackColor = Color.Red; } } else { string salida = datecontrol.Value.Day.ToString() + "/" + datecontrol.Value.Month.ToString() + "/" + datecontrol.Value.Year.ToString(); StudentsClass show = new StudentsClass(UserAccessForm.getdbserver(), UserAccessForm.getdbname(), UserAccessForm.getdbuser(), UserAccessForm.getdbpassword(), UserAccessForm.getdbport()); string userDataName = UserAccessForm.getusername() + "_student_table"; string mandosql = "update " + userDataName + " set ESTUDIANDO ='NO', `FECHA DE SALIDA`='" + salida + "' where `NOMBRE COMPLETO` ='" + namebox.Text + "' and EDAD = '" + edadbox.Text + "' and CURSO = '" + gradebox.Text + "';"; if (show.ordensql(mandosql) == true) { MessageBox.Show("Estudiante ha sido desinscrito"); } else { MessageBox.Show("Estudiante desinscrito"); } string allorden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where estudiando = '" + inscritobox.Text + "'; "; show.ShowDataGrid(findinggrid, allorden); encontradoslabel.Text = show.getcuenta().ToString(); } } }
private void cleanbuttonstrip_Click(object sender, EventArgs e) { namebox.Text = ""; edadbox.Text = ""; gradebox.Text = ""; inscritobox.Text = "SI"; inscritopanel.Hide(); string userDataName = UserAccessForm.getusername() + "_student_table"; string allorden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where estudiando = '" + inscritobox.Text + "'; "; StudentsClass show = new StudentsClass(); show.ShowDataGrid(findinggrid, allorden); encontradoslabel.Text = show.getcuenta().ToString(); getoutdateTimePicker.Text = DateTime.Today.ToString(); getindateTimePicker.Text = DateTime.Today.ToString(); birthdate.Text = DateTime.Today.ToString(); }
private void editbutton_Click(object sender, EventArgs e) { DireccionGestor.setsombrestatic(namelabel.Text); DireccionGestor.setotrostatic(gradelabel.Text); string userDataName = UserAccessForm.getusername() + "_student_table"; StudentsClass student = new StudentsClass(); string orden = "select * from " + userDataName + " where `NOMBRE COMPLETO` = '" + namelabel.Text + "' and CURSO= '" + gradelabel.Text + "';"; DireccionGestor.setorigen("editor"); DireccionGestor.setordensql(orden); StudentForm studentaddobject = new StudentForm(); studentaddobject.WindowState = FormWindowState.Maximized; studentaddobject.Show(); this.Close(); }
private void findinggrid_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) { try { StudentsClass show = new StudentsClass(UserAccessForm.getdbserver(), UserAccessForm.getdbname(), UserAccessForm.getdbuser(), UserAccessForm.getdbpassword(), UserAccessForm.getdbport()); string userDataName = UserAccessForm.getusername() + "_student_table"; string dato = this.findinggrid.CurrentCell.Value.ToString(); namebox.Text = dato; string orden = "select * from " + userDataName + " where `NOMBRE COMPLETO` = '" + namebox.Text + "' ;"; if (show.fillboxes(namebox, birthdate, edadbox, gradebox, inscritobox, getindateTimePicker, getoutdateTimePicker, inscritobox, inscritopanel, orden) == true) { StudentOutForm menu = new StudentOutForm(); menu.WindowState = FormWindowState.Maximized; menu.Show(); this.Close(); } } catch (NullReferenceException pafh) { pafh.ToString(); } }
public PartialSchedule GetPartialSchedule(Teacher teacher) { StudentsClass[] partSchedule = new StudentsClass[Constants.WEEKS_IN_SCHEDULE * Constants.DAYS_IN_WEEK * Constants.CLASSES_IN_DAY]; for (int timeIndex = 0; timeIndex < classesTable.GetLength(0); timeIndex++) { for (int classRoomIndex = 0; classRoomIndex < classesTable.GetLength(1); classRoomIndex++) { if (classesTable[timeIndex, classRoomIndex] != null) { if (classesTable[timeIndex, classRoomIndex].Teacher.Contains(teacher)) { partSchedule[timeIndex] = classesTable[timeIndex, classRoomIndex]; break; } } } } return new PartialSchedule(partSchedule); }
private async Task ExecuteSaveChangesAsync(object parameter) { // TODO: sprawdzenie czy pola są podane await _longRunningOperationHelper.ProceedLongRunningOperationAsync(async() => { var studentsClass = new StudentsClass(ClassNumber, ClassLetter) { EducatorId = Educator?.Id, Educator = Educator, Students = Students }; Educator.ClassId = studentsClass.FullName; try { await _usersRepository.InsertOrReplaceAsync(Educator); foreach (var student in Students) { student.ClassId = studentsClass.FullName; student.Class = studentsClass; await _usersRepository.InsertOrReplaceAsync(student); await _mailingService.SendEmailWithLoginAndPasswordAsync(student, Administrator); if (student.Parent != null) { student.Parent.ChildClassId = studentsClass.FullName; await _usersRepository.InsertOrReplaceAsync(student.Parent); await _mailingService.SendEmailWithLoginAndPasswordAsync(student.Parent, Administrator); } } await _classesRepository.InsertOrReplaceAsync(studentsClass); } catch (TableException) { // TODO: wycofanie wszystkich zmian } }); MessageBoxHelper.ShowMessageBox($"Utworzono klasę {ClassNumber}{ClassLetter} wraz z kontami użytkowników."); }
public void TestForGetStudentTopPositionByName() { double[] grades1 = { 9, 9, 9, 9 }; const string className1 = "Math"; double[] grades2 = { 9, 9, 9, 9 }; const string className2 = "English"; SchoolClass class1 = new SchoolClass(className1, grades1); SchoolClass class2 = new SchoolClass(className2, grades2); SchoolClass[] finalClasses1 = { class1, class2 }; double[] grades3 = { 10, 10, 10, 10 }; const string className3 = "Sport"; double[] grades4 = { 10, 10, 10, 10 }; const string className4 = "Biology"; SchoolClass class3 = new SchoolClass(className3, grades3); SchoolClass class4 = new SchoolClass(className4, grades4); SchoolClass[] finalClasses2 = { class3, class4 }; double[] grades5 = { 6, 6, 6, 6 }; const string className5 = "Logic"; double[] grades6 = { 6, 6, 6, 6 }; const string className6 = "Electro"; SchoolClass class5 = new SchoolClass(className5, grades5); SchoolClass class6 = new SchoolClass(className6, grades6); SchoolClass[] finalClasses3 = { class5, class6 }; var st1 = new Student("Adrian", finalClasses1); var st2 = new Student("Sabin", finalClasses2); var st3 = new Student("Larisa", finalClasses3); Student[] sts = { st1, st2, st3 }; StudentsClass clasaDinScoala = new StudentsClass(sts); clasaDinScoala.SortStudentsByGradesDescending(); Assert.Equal(1, clasaDinScoala.GetStudentTopPositionByName("Sabin")); }
private void findinggrid_CellContentClick(object sender, DataGridViewCellEventArgs e) { try { StudentsClass show = new StudentsClass(UserAccessForm.getdbserver(), UserAccessForm.getdbname(), UserAccessForm.getdbuser(), UserAccessForm.getdbpassword(), UserAccessForm.getdbport()); string userDataName = UserAccessForm.getusername() + "_student_table"; string dato = this.findinggrid.CurrentCell.Value.ToString(); namebox.Text = dato; string orden = "select * from " + userDataName + " where `NOMBRE COMPLETO` = '" + namebox.Text + "';"; if (show.fillboxes(namebox, birthdate, edadbox, gradebox, inscritobox, getindateTimePicker, getoutdateTimePicker, inscritobox, inscritopanel, orden)) { editbutton.Enabled = true; eliminarbutton.Enabled = true; } else { editbutton.Enabled = false; eliminarbutton.Enabled = false; } } catch (NullReferenceException pafh) { pafh.ToString(); } }
public bool DoRollback(ref StudentsClass[] sortedStudentsClasses, ref int classIndex) { logger.Debug("позиция: " + (classIndex+1).ToString()); currentCountRollbacks++; //слишком много откатов if (currentCountRollbacks > MaxCountRollbacks) { logger.Debug("Слишком много откатов"); return false; } //дошли до начала списка пар - не с чем менять if (classIndex == 1) { logger.Debug("начало списка - не с чем менять"); return false; } int[] indexForRollback = GetIndexOfSuitablesClasses(sortedStudentsClasses, classIndex); if (indexForRollback == null) { //не с чем менять logger.Debug("Пару не с чем менять"); return false; } //удаление откаченных пар из расписания logger.Debug("Пары будут откачены: "); for (int index = 0; index < indexForRollback.Length; index++) { logger.Debug("- " + sortedStudentsClasses[indexForRollback[index]].Name); schedule.RemoveClass(sortedStudentsClasses[indexForRollback[index]]); } //пары, стоящие после откаченных и до той, которой требуется откат, сдвигаются влево //откаченные пары ставятся после той, для которой происходит откат RealignClassesArray(ref sortedStudentsClasses, indexForRollback, classIndex); classIndex -= (indexForRollback.Length+1); logger.Trace("Откат завершен"); return true; }
private void editbutton_Click(object sender, EventArgs e) { if (gradebox.Text == "" || edadbox.Text == "" || namebox.Text == "") { MessageBox.Show("Hay datos importantes faltantes."); if (gradebox.Text == "") { gradebox.BackColor = Color.Red; } if (edadbox.Text == "") { edadbox.BackColor = Color.Red; } if (namebox.Text == "") { namebox.BackColor = Color.Red; } } else { DireccionGestor.setsombrestatic(namebox.Text); DireccionGestor.setedadstatic(int.Parse(edadbox.Text)); DireccionGestor.setotrostatic(gradebox.Text); string userDataName = UserAccessForm.getusername() + "_student_table"; StudentsClass student = new StudentsClass(UserAccessForm.getdbserver(), UserAccessForm.getdbname(), UserAccessForm.getdbuser(), UserAccessForm.getdbpassword(), UserAccessForm.getdbport()); string orden = "select * from " + userDataName + " where `NOMBRE COMPLETO` = '" + namebox.Text + "' and EDAD = '" + edadbox.Text + "' and CURSO= '" + gradebox.Text + "';"; if (student.fillcombos(namebox, edadbox, gradebox, orden) == true) { DireccionGestor.setorigen("editor"); DireccionGestor.setordensql(orden); StudentForm studentaddobject = new StudentForm(); studentaddobject.WindowState = FormWindowState.Maximized; studentaddobject.Show(); this.Close(); } } }
//группировка пар, если пара встречается больше двух раз за две недели static List<StudentClassPair> GetGroupSameClassesMoreTwoInTwoWeeks(StudentsClass[] classes) { List<StudentClassPair> pairsClasses = new List<StudentClassPair>(); List<StudentsClass> classesList = classes.ToList(); foreach (StudentsClass sClass in classesList) { if (pairsClasses.FindAll((pc) => pc.c1 == sClass || pc.c2 == sClass || StudentsClass.StudentClassEquals(pc.c1, sClass)).Count == 0) { List<StudentsClass> sameClasses = classesList.FindAll(c => StudentsClass.StudentClassEquals(c, sClass)); int countClasses = sameClasses.Count; if (countClasses % 2 == 1) { countClasses--; } for (int pairIndex = 0; pairIndex < countClasses; pairIndex += 2) { pairsClasses.Add(new StudentClassPair(sameClasses[pairIndex], sameClasses[pairIndex + 1], sameClasses[pairIndex].SubGroups.Length)); } } } return pairsClasses; }
public static StudentsClass[] Sort(EntityStorage eStorage, StudentsClass[] fixedClasses, int sortType = 0, bool returnNewArray = false) { StudentsClass[] classArray; if (returnNewArray) { classArray = (StudentsClass[])eStorage.Classes.Clone(); } else { classArray = eStorage.Classes; } if (fixedClasses != null) { List<StudentsClass> temp = classArray.ToList<StudentsClass>(); temp.RemoveAll(c => fixedClasses.Contains(c)); classArray = temp.ToArray(); } switch (sortType) { case 0: SortByFreedomPositionScore(classArray, eStorage); break; case 1: SortBySubGroupCount(classArray); break; default: SortRandom(classArray); break; } if (fixedClasses != null) { List<StudentsClass> temp = classArray.ToList<StudentsClass>(); temp.InsertRange(0, fixedClasses); classArray = temp.ToArray(); } return classArray; }
public static int CountUpOneWindowOfAddedClass(StudentsClass[] sClasses, int classOfDay) { int windowsCount = 0; int last = LastClassOfDay(sClasses); if (classOfDay == 0 && last == 0) { return windowsCount; } if (classOfDay < 4) { if (CheckOneWindowOfNextClass(sClasses, classOfDay)) { windowsCount++; } } if (classOfDay > 1) { if (CheckOneWindowOfPreviousClass(sClasses, classOfDay)) { windowsCount++; } } return windowsCount; }
public Setting(EntityStorage storage, StudentsClass[] Clases) { LVIP = new List<FixedClasses>(); LVIPB = new List<VIPClasesBin>(); this.storage = storage; this.Clases = Clases; BinaryFormatter formatter = new BinaryFormatter(); if (File.Exists("Setting.dat")) { using (FileStream fs = new FileStream("Setting.dat", FileMode.OpenOrCreate)) { LVIPB = (List<VIPClasesBin>)formatter.Deserialize(fs); } foreach (var item in LVIPB) { FixedClasses n = new FixedClasses(Clases[item.Cla], item.Time, storage.ClassRooms[item.Aud]); LVIP.Add(n); } } }
public async Task Create(StudentsClassRequestDTO request) { var studentsClass = new StudentsClass(request.Name, null); await _studentsClassRepository.Create(studentsClass); }
public static void Main() { School school = new School(); StudentsClass myClass = new StudentsClass(10, 'a'); }
string TeatherNameToString(StudentsClass sClass) { if(sClass.Teacher.Length > 0) { return sClass.Teacher[0].Name; } else { return ""; } }
private void searchbutton_Click(object sender, EventArgs e) { string userDataName = UserAccessForm.getusername() + "_student_table"; StudentsClass show = new StudentsClass(UserAccessForm.getdbserver(), UserAccessForm.getdbname(), UserAccessForm.getdbuser(), UserAccessForm.getdbpassword(), UserAccessForm.getdbport()); string orden; string fecha = datecontrol.Value.Day.ToString() + "/" + datecontrol.Value.Month.ToString() + "/" + datecontrol.Value.Year.ToString(); birthdates = birthdate.Value.Day.ToString() + "/" + birthdate.Value.Month.ToString() + "/" + birthdate.Value.Year.ToString(); timegetin = getindateTimePicker.Value.Day.ToString() + "/" + getindateTimePicker.Value.Month.ToString() + "/" + getindateTimePicker.Value.Year.ToString(); timegetout = getoutdateTimePicker.Value.Day.ToString() + "/" + getoutdateTimePicker.Value.Month.ToString() + "/" + getoutdateTimePicker.Value.Year.ToString(); if (inscritobox.Text == "si" || inscritobox.Text == "SI") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND EDAD = '" + edadbox.Text + "' AND `FECHA DE NACIMIENTO`= '" + birthdates + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND `FECHA DE SALIDA` = '" + timegetout + "' AND CURSO ='" + gradebox.Text + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); if (birthdates == fecha) { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND EDAD = '" + edadbox.Text + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND `FECHA DE SALIDA` = '" + timegetout + "' AND CURSO ='" + gradebox.Text + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (namebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where EDAD = '" + edadbox.Text + "' AND `FECHA DE NACIMIENTO`= '" + birthdates + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND `FECHA DE SALIDA` = '" + timegetout + "' AND CURSO ='" + gradebox.Text + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (edadbox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND `FECHA DE NACIMIENTO`= '" + birthdates + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND `FECHA DE SALIDA` = '" + timegetout + "' AND CURSO ='" + gradebox.Text + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (gradebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND EDAD = '" + edadbox.Text + "' AND `FECHA DE NACIMIENTO`= '" + birthdates + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND `FECHA DE SALIDA` = '" + timegetout + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (birthdates == fecha && namebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where EDAD = '" + edadbox.Text + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND `FECHA DE SALIDA` = '" + timegetout + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (birthdates == fecha && edadbox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND `FECHA DE SALIDA` = '" + timegetout + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (birthdates == fecha && gradebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND EDAD = '" + edadbox.Text + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND `FECHA DE SALIDA` = '" + timegetout + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (namebox.Text == "" && edadbox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `FECHA DE NACIMIENTO`= '" + birthdates + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND `FECHA DE SALIDA` = '" + timegetout + "' AND CURSO ='" + gradebox.Text + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (namebox.Text == "" && gradebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where EDAD = '" + edadbox.Text + "' AND `FECHA DE NACIMIENTO`= '" + birthdates + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND `FECHA DE SALIDA` = '" + timegetout + "' ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (birthdates == fecha && namebox.Text == "" && edadbox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `FECHA DE ENTRADA` = '" + timegetin + "' AND `FECHA DE SALIDA` = '" + timegetout + "' AND CURSO ='" + gradebox.Text + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (birthdates == fecha && edadbox.Text == "" && gradebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND `FECHA DE SALIDA` = '" + timegetout + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (birthdates == fecha && edadbox.Text == "" && gradebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND `FECHA DE SALIDA` = '" + timegetout + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (birthdates == fecha && namebox.Text == "" && gradebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where EDAD = '" + edadbox.Text + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND `FECHA DE SALIDA` = '" + timegetout + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (namebox.Text == "" && edadbox.Text == "" && gradebox.Text == "" && birthdates == fecha) { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `FECHA DE ENTRADA` = '" + timegetin + "' AND `FECHA DE SALIDA` = '" + timegetout + "' AND CURSO ='" + gradebox.Text + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } } else { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND EDAD = '" + edadbox.Text + "' AND `FECHA DE NACIMIENTO`= '" + birthdates + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND CURSO ='" + gradebox.Text + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); if (birthdates == fecha) { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND EDAD = '" + edadbox.Text + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND CURSO ='" + gradebox.Text + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (namebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where EDAD = '" + edadbox.Text + "' AND `FECHA DE NACIMIENTO`= '" + birthdates + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND CURSO ='" + gradebox.Text + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (edadbox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND `FECHA DE NACIMIENTO`= '" + birthdates + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND CURSO ='" + gradebox.Text + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (gradebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND EDAD = '" + edadbox.Text + "' AND `FECHA DE NACIMIENTO`= '" + birthdates + "' AND `FECHA DE SALIDA` = '" + timegetout + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (birthdates == fecha && namebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where EDAD = '" + edadbox.Text + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (birthdates == fecha && edadbox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (birthdates == fecha && gradebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND EDAD = '" + edadbox.Text + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (namebox.Text == "" && edadbox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `FECHA DE NACIMIENTO`= '" + birthdates + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND CURSO ='" + gradebox.Text + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (namebox.Text == "" && gradebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where EDAD = '" + edadbox.Text + "' AND `FECHA DE NACIMIENTO`= '" + birthdates + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (birthdates == fecha && namebox.Text == "" && edadbox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `FECHA DE ENTRADA` = '" + timegetin + "' AND CURSO ='" + gradebox.Text + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (birthdates == fecha && edadbox.Text == "" && gradebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (birthdates == fecha && edadbox.Text == "" && gradebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `NOMBRE COMPLETO` like '%" + namebox.Text + "%' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (birthdates == fecha && namebox.Text == "" && gradebox.Text == "") { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where EDAD = '" + edadbox.Text + "' AND `FECHA DE ENTRADA` = '" + timegetin + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } else if (namebox.Text == "" && edadbox.Text == "" && gradebox.Text == "" && birthdates == fecha) { orden = "select `NOMBRE COMPLETO`,EDAD, `FECHA DE NACIMIENTO`, CURSO, HORARIO, NACIONALIDAD, SEXO, TELEFONO, DIRECCION, `NOMBRE DEL TUTOR` from " + userDataName + " where `FECHA DE ENTRADA` = '" + timegetin + "' AND CURSO ='" + gradebox.Text + "' AND ESTUDIANDO = '" + inscritobox.Text + "');"; show.ShowDataGridFound(findinggrid, orden); encontradoslabel.Text = show.getcuenta().ToString(); } } ////////////////////////////////////////////////////////////////// string mandosql = "select `NOMBRE COMPLETO` from " + userDataName + " where `NOMBRE COMPLETO` ='" + namebox.Text + "' and EDAD = '" + edadbox.Text + "' and CURSO = '" + gradebox.Text + "';"; if (show.ordensql(mandosql) == true) { eliminarbutton.Enabled = true; editbutton.Enabled = true; } else { eliminarbutton.Enabled = false; editbutton.Enabled = false; } if (namebox.Text == "" || edadbox.Text == "" || gradebox.Text == "") { editbutton.Enabled = false; } else { editbutton.Enabled = true; } }
void Logger_ClassInstalled(StudentsClass sClass, StudentsClassPosition position, int indexInList, int listLength, int fine) { logger.Trace("----- Выбрана позиция: " + SClassPositionToString(position) + ", штраф: " + fine); logger.Info("Пара <" + sClass.Name + " " + TeatherNameToString(sClass) + "> установлена (" + (indexInList + 1) + "/" + listLength + ")"); }
void Logger_StartInstallClass(StudentsClass sClass, StudentsClassPosition[] positionsForClass, int[] fines) { logger.Trace("Попытка установки пары " + sClass.Name + " " + TeatherNameToString(sClass)); logger.Trace("----- Доступны позиции для установки (" + Array.FindAll<int>(fines, f => f != Constants.BLOCK_FINE).Length + "):"); string positionsString = "\n"; for (int positionIndex = 0; positionIndex < positionsForClass.Length; positionIndex++) { if(fines[positionIndex] != Constants.BLOCK_FINE) { positionsString += ((positionIndex + 1).ToString() + ". " + SClassPositionToString(positionsForClass[positionIndex]) + ", штраф: " + fines[positionIndex] + "\n"); } } logger.Trace(positionsString); }
void InsertFirstClass(StudentsClass[] sortedStudentsClasses, FullSchedule resultSchedule, IFactor[] factors) { StudentsClassPosition[] positions = resultSchedule.GetSuitableClassRooms(sortedStudentsClasses[0]); int[] fines = new int[positions.Length]; for (int positionIndex = 0; positionIndex < positions.Length; positionIndex++) { fines[positionIndex] = GetSumFine(positions[positionIndex], factors, resultSchedule, sortedStudentsClasses[0]); } Logger_StartInstallClass(sortedStudentsClasses[0], positions, fines); int indexMinFine = Array.IndexOf<int>(fines, Array.FindAll<int>(fines, (f) => f != Constants.BLOCK_FINE).Min()); resultSchedule.SetClass(sortedStudentsClasses[0], positions[indexMinFine]); Logger_ClassInstalled(sortedStudentsClasses[0], positions[indexMinFine], 0, sortedStudentsClasses.Length, fines[indexMinFine]); }
int GetSumFine(StudentsClassPosition position, IFactor[] factors, FullSchedule scheduleForCreateTemp, StudentsClass sClass) { FullSchedule schedule = new FullSchedule(scheduleForCreateTemp); schedule.SetClass(sClass, position); int fine = 0; int resultFine = position.Fine; for (int factorIndex = 0; factorIndex < factors.Length; factorIndex++) { fine = factors[factorIndex].GetFineOfAddedClass(schedule, EStorage); if (fine != Constants.BLOCK_FINE) { resultFine += fine; } else { return Constants.BLOCK_FINE; } } return resultFine; }
FullSchedule CreateSchedule(StudentsClass[] sortedStudentsClasses) { FullSchedule resultSchedule = new FullSchedule(EStorage.ClassRooms.Length, EStorage); Rollback rollback = new Rollback(sortedStudentsClasses, 100000, resultSchedule, FixedClasses); rollback.logger = logger; IFactor[] factors = CreateFactorsArray(); //первая пара ставится отдельно InsertFirstClass(sortedStudentsClasses, resultSchedule, factors); //---- for (int classIndex = 1; classIndex < sortedStudentsClasses.Length; classIndex++) { StudentsClassPosition[] positionsForClass = resultSchedule.GetSuitableClassRooms(sortedStudentsClasses[classIndex]); int[] fines = new int[positionsForClass.Length]; Parallel.For(0, positionsForClass.Length, (positionIndex) => { Interlocked.Exchange(ref fines[positionIndex], GetSumFine(positionsForClass[positionIndex], factors, resultSchedule, sortedStudentsClasses[classIndex])); }); Logger_StartInstallClass(sortedStudentsClasses[classIndex], positionsForClass, fines); //for (int positionIndex = 0; positionIndex < positionsForClass.Length; positionIndex++) //{ // Interlocked.Exchange(ref fines[positionIndex], GetSumFine(positionsForClass[positionIndex], CreateFactorsArray(), resultSchedule, sortedStudentsClasses[classIndex])); //} if (positionsForClass.Length > 0 && Array.FindAll<int>(fines, (f) => f != Constants.BLOCK_FINE).Length > 0) { int indexMinFine = Array.IndexOf<int>(fines, Array.FindAll<int>(fines, (f) => f != Constants.BLOCK_FINE).Min()); resultSchedule.SetClass(sortedStudentsClasses[classIndex], positionsForClass[indexMinFine]); Logger_ClassInstalled(sortedStudentsClasses[classIndex], positionsForClass[indexMinFine], classIndex, sortedStudentsClasses.Length, fines[indexMinFine]); } else { logger.Info("---------- Откат пары <" + sortedStudentsClasses[classIndex].Name + ">"); if(!rollback.DoRollback(ref sortedStudentsClasses, ref classIndex)) { return null; } } } return resultSchedule; }
Label CreateLabel(int row, int column, StudentsClass sClass, ClassRoom room, MouseButtonEventHandler mLeft, MouseButtonEventHandler mRight) { Label l = new Label(); if (sClass != null) { l.Background = new SolidColorBrush(Color.FromRgb(210, 255, 205));//фон ячейки с парой } else { l.Background = Brushes.White; } l.Height = CELL_HEIGHT; l.Width = CELL_WIDTH; l.BorderBrush = new SolidColorBrush(Color.FromRgb(255, 140, 0));//границы ячеек l.BorderThickness = new Thickness(1); l.SetValue(Grid.RowProperty, row); l.SetValue(Grid.ColumnProperty, column); if (sClass != null) l.Content = sClass.Name + "(" + room.Housing + "/" + room.Number + ")"; l.HorizontalContentAlignment = HorizontalAlignment.Center; l.MouseLeftButtonDown += mLeft; l.MouseRightButtonDown += mRight; l.FontSize = 11; l.FontWeight = FontWeights.Bold; return l; }
private void FinePositionForClass(int classesInSchedule, StudentsClass sClass) { finePosition = new bool[classesInSchedule]; finePosition = schedule.GetFinePosition(sClass); }