Дипломная работа. Разработка виртуального лабораторного комплекса по дисциплине Методы оптимизации
Скачать 2.09 Mb.
|
ЗАКЛЮЧЕНИЕЗадачи, поставленные в данной работе, были полностью выполнены. В рамках дипломного проекта был разработан программный продукт на тему «Разработка виртуального лабораторного комплекса по дисциплине «Методы оптимизации»». Во время выполнения дипломной работы были получены навыки разработки программного обеспечения на языке программирования C#, получен опыт работы с базами данных. Для реализации продукта использовалась современная среда разработки Visual Studio. Разработанное программное обеспечение было протестировано на стабильность. Для программного обеспечения была написана соответствующая техническая документация. СПИСОК ЛИТЕРАТУРЫПрограммирование на C# для начинающих. Основные сведения. Алексей Васильев. – Москва,2018. - 592с. Пахомов Б. И. П12 C# для начинающих. - СПб.: БХВ-Петербург, 2014. - 432 с. Microsoft Visual C#. Подробное руководство, Автор: Джон Шарп Фиайли К. SQL: Пер. с англ. – М.: ДМК Пресс. – 456 с.: ил Язык SQL. Базовый курс: учеб.-практ. пособие / Е. П. Моргунов; под ред. Е. В. Рогова, П. В. Лузанова; Postgres Professional. — М., 2017. — 256 с. Программирование на языке высокого уровня C#/ Т.А. Павловская – М., 2016,242 с. Троелсен, Эндрю, Джепикс, Филипп. Язык программирования C# 7 и платформы .NET и .NET Core, 8-е изд. : Пер. с англ. — СПб. : ООО “Диалектика”, 2018 — 1328 с. : ил. — Парал. тит. Англ Базы данных : учеб. пособие дли студ. учреждений сред, проф. образования / Э. В.Фуфаев, Д. Э.Фуфаев. — 7-е изд., стер. — М .: Издательский центр «Академия», 2012. — 320 с. ПРИЛОЖЕНИЕ 1. ЛИСТИНГ ПРОГРАММЫProgram.cs usingSystem; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespaceдиплом_беловой { staticclassProgram { /// /// Главная точка входа для приложения. /// [STAThread] staticvoid Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); AppDomain.CurrentDomain.SetData("DataDirectory", AppDomain.CurrentDomain.BaseDirectory); Application.Run(new enter()); } } } enter.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespaceдиплом_беловой { publicpartialclassenter : Form { int reg; publicenter() { InitializeComponent(); } privatevoid btEnterSt_Click(object sender, EventArgs e) { //проверяем для входа студента пустоту полей if (txtbLog.Text == ""&& txtbPass.Text == "") { MessageBox.Show("Заполнитепустыеполя!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { using (UsersContainer db = new UsersContainer()) { if (reg == 1) { //регистрация int i = 0; foreach (var item in db.StudentsSet) { if (item.Login == txtbLog.Text) { i++; //проверка присутствия такого же логина } } if (i != 0) { MessageBox.Show("Пользователь с таким логином уже существует!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); } elseif (i == 0) { Students students = new Students() { FIO = txtbFIO.Text, Group = txtbGroup.Text, Login = txtbLog.Text, Password = txtbPass.Text }; db.StudentsSet.Add(students); db.SaveChanges(); ResultLab resultLab = new ResultLab() { Students = students }; db.ResultLabSet.Add(resultLab); db.SaveChanges(); int idReg = 0; for (int k = 0; k < db.StudentsSet.ToList().Count; k++) { if (db.StudentsSet.ToList()[k].Login == txtbLog.Text) { idReg = db.StudentsSet.ToList()[k].Id; } } main f1 = new main(idReg); f1.ShowDialog(); this.Hide(); } } elseif (reg == 2) { int i = 0; //вход foreach (var item in db.StudentsSet) { if (item.Login == txtbLog.Text) { i++; //проверка присутствия такого же логина } } if (i == 0) { MessageBox.Show("Пользователя с таким логином не существует! Зарегистрируйтесь!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); } elseif (i != 0) { int idReg = 0; bool pass = false; foreach (var item in db.StudentsSet) { if (item.Login == txtbLog.Text && item.Password == txtbPass.Text) { pass = true; } } if (pass == true) { for (int k = 0; k < db.StudentsSet.ToList().Count; k++) { if (db.StudentsSet.ToList()[k].Login == txtbLog.Text) { idReg = db.StudentsSet.ToList()[k].Id; } } main f1 = new main(idReg); f1.ShowDialog(); this.Hide(); } elseif (pass == false) { MessageBox.Show("Неверныйпароль!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } } } privatevoid btEnterTch_Click(object sender, EventArgs e) { if (txtbCode.Text == "123"&& txtbCode.Text != "") { txtbCode.Text = ""; teacher f4 = new teacher(); f4.ShowDialog(); } else { MessageBox.Show("Кодневерный!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); } } privatevoid btRet_Click(object sender, EventArgs e) { btRet.Visible = false; btRet.Enabled = false; btReg.Visible = true; btReg.Enabled = true; btEnt.Visible = true; btEnt.Enabled = true; txtbFIO.Enabled = false; txtbFIO.Visible = false; txtbGroup.Enabled = false; txtbGroup.Visible = false; txtbLog.Enabled = false; txtbLog.Visible = false; txtbPass.Enabled = false; txtbPass.Visible = false; label1.Visible = false; label2.Visible = false; label6.Visible = false; label7.Visible = false; btEnterSt.Enabled = false; btEnterSt.Visible = false; txtbLog.Text = ""; txtbPass.Text = ""; txtbFIO.Text = ""; txtbGroup.Text = ""; } privatevoid btReg_Click(object sender, EventArgs e) { btRet.Visible = true; btRet.Enabled = true; btReg.Visible = false; btReg.Enabled = false; btEnt.Visible = false; btEnt.Enabled = false; txtbFIO.Enabled = true; txtbFIO.Visible = true; txtbGroup.Enabled = true; txtbGroup.Visible = true; txtbLog.Enabled = true; txtbLog.Visible = true; txtbPass.Enabled = true; txtbPass.Visible = true; label1.Visible = true; label2.Visible = true; label6.Visible = true; label7.Visible = true; btEnterSt.Enabled = true; btEnterSt.Visible = true; reg = 1; } privatevoid btEnt_Click(object sender, EventArgs e) { btRet.Visible = true; btRet.Enabled = true; btReg.Visible = false; btReg.Enabled = false; btEnt.Visible = false; btEnt.Enabled = false; txtbLog.Enabled = true; txtbLog.Visible = true; txtbPass.Enabled = true; txtbPass.Visible = true; label6.Visible = true; label7.Visible = true; btEnterSt.Enabled = true; btEnterSt.Visible = true; reg = 2; } //Разрешентольковводцифр void LockLetters(object sender, KeyPressEventArgs e) { if (Char.IsDigit(e.KeyChar) || Char.IsControl(e.KeyChar)) { return; } else { e.Handled = true; } } //Разрешентольковводбукв void LockDigits(object sender, KeyPressEventArgs e) { if (Char.IsLetter(e.KeyChar) || Char.IsControl(e.KeyChar) || Char.IsWhiteSpace(e.KeyChar)) { return; } else { e.Handled = true; } } privatevoid button1_Click(object sender, EventArgs e) { Application.Exit(); } } } teacher.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespaceдиплом_беловой { publicpartialclassteacher : Form { publicteacher() { InitializeComponent(); using (UsersContainer db = new UsersContainer()) { for (int i = 0; i < db.StudentsSet.ToList().Count; i++) { if (db.StudentsSet.ToList()[i].ResultLab == null) { dataGridView1.Rows.Add(db.StudentsSet.ToList()[i].FIO, db.StudentsSet.ToList()[i].Group, 0, 0, 0, 0); } else { dataGridView1.Rows.Add(db.StudentsSet.ToList()[i].FIO, db.StudentsSet.ToList()[i].Group, db.StudentsSet.ToList()[i].ResultLab.Lab1, db.StudentsSet.ToList()[i].ResultLab.Lab2, db.StudentsSet.ToList()[i].ResultLab.Lab3, db.StudentsSet.ToList()[i].ResultLab.Lab4); } //dataGridView1.Rows.Add(db.StudentsSet.ToList()[i].FIO, db.StudentsSet.ToList()[i].Group, db.StudentsSet.ToList()[i].ResultLab.Lab1, db.StudentsSet.ToList()[i].ResultLab.Lab2, db.StudentsSet.ToList()[i].ResultLab.Lab3, db.StudentsSet.ToList()[i].ResultLab.Lab4); } } } privatevoid button1_Click(object sender, EventArgs e) { if (txtbGroup.Text == "") { MessageBox.Show("Введитеномергруппы!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { using (UsersContainer db = new UsersContainer()) { dataGridView1.Rows.Clear(); for (int i = 0; i < db.StudentsSet.ToList().Count; i++) { if(db.StudentsSet.ToList()[i].Group == txtbGroup.Text) { if (db.StudentsSet.ToList()[i].ResultLab == null) { dataGridView1.Rows.Add(db.StudentsSet.ToList()[i].FIO, db.StudentsSet.ToList()[i].Group, 0, 0, 0, 0); } else { dataGridView1.Rows.Add(db.StudentsSet.ToList()[i].FIO, db.StudentsSet.ToList()[i].Group, db.StudentsSet.ToList()[i].ResultLab.Lab1, db.StudentsSet.ToList()[i].ResultLab.Lab2, db.StudentsSet.ToList()[i].ResultLab.Lab3, db.StudentsSet.ToList()[i].ResultLab.Lab4); } } } } } } privatevoid btReturn_Click(object sender, EventArgs e) { this.Close(); } //Разрешен только ввод цифр void LockLetters(object sender, KeyPressEventArgs e) { if (Char.IsDigit(e.KeyChar) || Char.IsControl(e.KeyChar)) { return; } else { e.Handled = true; } } } } main.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespaceдиплом_беловой { publicpartialclassmain : Form { int point; //выборлаб.работы int idreg; int i = 0; publicmain(int id) { InitializeComponent(); idreg = id; richTextBox1.Text = "1. Выберителабораторнуюработу \n" + "2. Введите функцию и входные переменные \n" + "3. Нажмите кнопку обработки и дождитесь результатов \n" + "4. Чтобы пошагово посмотреть работу алгоритма, нажмите кнопку таблицы \n" + "5. Чтобы получить оценку за лаб.работу, пройдите тестирование"; } privatevoid button5_Click(object sender, EventArgs e) { Application.Exit(); } privatevoid btLab1_Click(object sender, EventArgs e) { point = 1; function f2 = new function(point, idreg); f2.ShowDialog(); } privatevoid btLab2_Click(object sender, EventArgs e) { point = 2; function f2 = new function(point, idreg); f2.ShowDialog(); } privatevoid btLab3_Click(object sender, EventArgs e) { point = 3; function f2 = new function(point, idreg); f2.ShowDialog(); } privatevoid btLab4_Click(object sender, EventArgs e) { point = 4; function f2 = new function(point, idreg); f2.ShowDialog(); } privatevoid btInfo_MouseHover(object sender, EventArgs e) { //richTextBox1.Visible = true; } privatevoid btInfo_MouseLeave(object sender, EventArgs e) { //richTextBox1.Visible = false; } privatevoid btInfo_Click(object sender, EventArgs e) { if (i == 0) { richTextBox1.Visible = true; i = 1; } elseif (i==1) { richTextBox1.Visible = false; i = 0; } } privatevoid main_FormClosed(object sender, FormClosedEventArgs e) { Application.Exit(); } } } tablica.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespaceдиплом_беловой { publicpartialclasstablica : Form { int lab; List publictablica(List { InitializeComponent(); lab = numlab; myList1 = myList; if (lab == 1) { dataGridView1.Columns["ColumnH"].Visible = false; dataGridView1.Columns["ColumnEn"].Visible = false; dataGridView1.Columns["Columnx1"].Visible = false; dataGridView1.Columns["Columnx2"].Visible = false; dataGridView1.Columns["Columnfx1"].Visible = false; dataGridView1.Columns["Columnfx2"].Visible = false; for (int i = 0; i < myList1.Count; i++) { dataGridView1.Rows.Add(myList1[i].step, myList1[i].xi, myList1[i].fxi, "","","","", myList1[i].minx, myList1[i].minfx, myList1[i].a, myList1[i].b); } } elseif (lab == 2) { dataGridView1.Columns["ColumnEn"].Visible = false; dataGridView1.Columns["Columnx1"].Visible = false; dataGridView1.Columns["Columnx2"].Visible = false; dataGridView1.Columns["Columnfx1"].Visible = false; dataGridView1.Columns["Columnfx2"].Visible = false; for (int i = 0; i < myList1.Count; i++) { dataGridView1.Rows.Add(myList1[i].step, myList1[i].xi, myList1[i].fxi, "", "", "", "", myList1[i].minx, myList1[i].minfx, myList1[i].a, myList1[i].b, myList1[i].h); } } elseif (lab == 3) { dataGridView1.Columns["ColumnH"].Visible = false; dataGridView1.Columns["Column1"].Visible = false; dataGridView1.Columns["Column2"].Visible = false; for (int i = 0; i < myList1.Count; i++) { dataGridView1.Rows.Add(myList1[i].step, "", "", myList1[i].x1, myList1[i].x2, myList1[i].fx1, myList1[i].fx2, myList1[i].minx, myList1[i].minfx, myList1[i].a, myList1[i].b, "", myList1[i].En); } } elseif (lab == 4) { dataGridView1.Columns["ColumnH"].Visible = false; dataGridView1.Columns["Column1"].Visible = false; dataGridView1.Columns["Column2"].Visible = false; for (int i = 0; i < myList1.Count; i++) { dataGridView1.Rows.Add(myList1[i].step, "", "", myList1[i].x1, myList1[i].x2, myList1[i].fx1, myList1[i].fx2, myList1[i].minx, myList1[i].minfx, myList1[i].a, myList1[i].b, "", myList1[i].En); } } } privatevoid button1_Click(object sender, EventArgs e) { this.Close(); } } } |