Главная страница

курсовая работа. Курсовая (1). Пояснительная записка к курсовому проекту содержит постановку и программу решения задачи Автоматизация учета зачисления абитуриентов по результатам вступительного экзамена


Скачать 3.65 Mb.
НазваниеПояснительная записка к курсовому проекту содержит постановку и программу решения задачи Автоматизация учета зачисления абитуриентов по результатам вступительного экзамена
Анкоркурсовая работа
Дата07.11.2022
Размер3.65 Mb.
Формат файлаdocx
Имя файлаКурсовая (1).docx
ТипПрограмма
#774919
страница9 из 11
1   2   3   4   5   6   7   8   9   10   11

Заключение


В процессе выполнения курсового проекта были разработаны структура и алгоритм работы приложения «DevApp.exe» по задаче «Автоматизация зачисления абитуриентов по результатам вступительного экзамена».

При этом были изучены особенности реализации компонентов информационной системы, а также особенность работы секретарей во время распределения абитуриентов. Результатом работы стало создание программного продукта.

Программное обеспечение написано на языке С# с использованием среды разработки Visual Studio 2022. Результаты выводятся в Excel. Данные хранятся в SQL Server 2019

Были проведены опытная эксплуатация и отладочное тестирование программного обеспечения. После этого было написано руководство пользователя.

С помощью приложения на основании данных контрольного примера были получены результаты, которые полностью совпадают с выходной информацией контрольного примера.

Приложение А

Исходный код программы

Код окна «Aut»

using System;

using System.Collections.Generic;

using System.Data.SqlClient;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Shapes;
namespace Dethapp

{

///

/// Логика взаимодействия для Aut.xaml

///


public partial class Aut : Window

{

public Aut()

{

InitializeComponent();

}

public static int UserStatus;

private void EntR_Click(object sender, RoutedEventArgs e)

{

string login = Login.Text;

string password = Pass.Text;

if (password == "" || login == "")

{

MessageBox.Show("Были заполнены не все поля","Внимание!");

return;

}

UsersTab user = AbiturientsBB.GetContext().UsersTab.ToList().Find(u => u.Логин == login && u.Пароль == password);

if (user != null)

{

NewOpenSource Menu = new NewOpenSource();

Menu.Show();

this.Hide();

Login.Text = "";

Pass.Text = "";

if (user.Уровень_доступа == true)

{

((Manager.MainFrame.Parent as Grid).FindName("FioTb") as TextBlock).Text = user.ФИО;

MessageBox.Show("Вы успешно авторизовались как администратор","Успешная авторизация");

UserStatus=1;

}

else if (user.Уровень_доступа == false)

{

((Manager.MainFrame.Parent as Grid).FindName("FioTb") as TextBlock).Text = user.ФИО;

MessageBox.Show("Вы успешно авторизовались как секретарь","Успешная авторизация");

UserStatus = 0;

}

}

else

{

MessageBox.Show("Внимание: Пользователь не найден,\nПроверте логин или пароль.","Ошибка");

}

}

private void ExT_Click(object sender, RoutedEventArgs e)

{

Close();

}
private void AbiturientBtn_Click(object sender, RoutedEventArgs e)

{

this.Hide();

AbiturientRegWindow abiturientRegWindow = new AbiturientRegWindow();

АбитуриентыEdit.abiturietnStatus = 1;

abiturientRegWindow.Show();
}

private void Login_KeyDown(object sender, KeyEventArgs e)

{

if (e.Key == Key.Enter)

{

Pass.Focus();

}

}
private void Pass_KeyDown(object sender, KeyEventArgs e)

{

if (e.Key == Key.Enter)

{

EntR_Click(sender, e);

}

}

}

}

Код страницы «ChooseUserPage»

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;
namespace Dethapp

{

///

/// Логика взаимодействия для ChooseUserPage.xaml

///


public partial class ChooseUserPage : Page

{

public ChooseUserPage()

{

InitializeComponent();

ComboSelect.SelectedIndex = 0;

Sort.SelectedIndex = 0;

var CurrentUsers = AbiturientsBB.GetContext().UsersTab.ToList();

ListViewUsers.ItemsSource = CurrentUsers;

Update();

}

private void Update()

{

var list = AbiturientsBB.GetContext().UsersTab.ToList();
if (TBSearch.Text != "")

{

list = list.Where(p => p.ФИО.ToLower().Contains(TBSearch.Text.ToLower())).ToList();

}
switch (ComboSelect.SelectedIndex)

{

case 1:

list = list.Where(p => p.Должность == "Администратор").ToList();

break;

case 2:

list = list.Where(p => p.Должность == "Секретарь").ToList();

break;

case 3:

list = list.Where(p => p.Должность == "Гость").ToList();

break;

}

switch (Sort.SelectedIndex)

{

case 1:

list = list.OrderByDescending(p => p.ФИО).ToList();

break;

case 2:

list = list.OrderBy(p => p.ФИО).ToList();

break;

}
ListViewUsers.ItemsSource = list;

}

private void TBSearch_TextChanged(object sender, TextChangedEventArgs e)

{

Update();

}
private void ComboSelect_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

Update();

}
private void Dostup_Checked(object sender, RoutedEventArgs e)

{

Update();

}
private void Sort_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

Update();

}

}

}

Код окна «NewOpenSource»

using System;

using System.Collections.Generic;

using System.Data.SqlClient;

using System.IO;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Shapes;

using WebGrease.Configuration;

using System.Windows.Threading;
namespace Dethapp

{

///

/// Логика взаимодействия для NewOpenSource.xaml

///


public partial class NewOpenSource : Window

{

public NewOpenSource()

{

InitializeComponent();

MainFraim.Navigate(new СпециальностьPage());

Manager.MainFrame = MainFraim;

Time();

BaseSaveBtn.IsEnabled = false;

TestBtn.IsEnabled = false;

}

string sqlconnect = "Data Source=DESKTOP-N11STEF;Initial Catalog=Abiturients;Integrated Security=True";

private DispatcherTimer timer;
private void ЗаявкаBtn_Click(object sender, RoutedEventArgs e)

{

MainFraim.Navigate(new ЗаявкиPage());

}
private void СпециальнBtn_Click(object sender, RoutedEventArgs e)

{

MainFraim.Navigate(new СпециальностьPage());

}
private void ГруппыBtn_Click(object sender, RoutedEventArgs e)

{

MainFraim.Navigate(new ГруппыPage());

}
private void РаспГРBtn_Click(object sender, RoutedEventArgs e)

{

MainFraim.Navigate(new РаспредГрPage());

}
private void АбитурBtn_Click(object sender, RoutedEventArgs e)

{

MainFraim.Navigate(new АбитуриентPage());

}

private void TestBtn_Click(object sender, RoutedEventArgs e)

{

MainFraim.Navigate(new ChooseUserPage());

}
private void BaseSaveBtn_Click(object sender, RoutedEventArgs e)

{

if (MessageBox.Show("Произвести резервное копирование?", "Внимание", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)

{

try

{

SqlConnection con = new SqlConnection(sqlconnect);

con.Open();

SqlCommand command = new SqlCommand(@"BACKUP DATABASE Abiturients TO DISK = 'C:\sql\master.bak'", con);

//SqlDataAdapter adapter = new SqlDataAdapter();

command.ExecuteNonQuery();

MessageBox.Show("Бекап базы успешно","Успех");

con.Close();

con.Dispose();

}

catch

{

MessageBox.Show("Бекап базы провалено","Ошибка");

}

}
}
private void Print_Click(object sender, RoutedEventArgs e)

{

PrintDialog p = new PrintDialog();

p.PrintVisual((Visual)MainFraim, "This is the contents of a frame!");

p.PageRangeSelection = PageRangeSelection.AllPages;

p.UserPageRangeEnabled = true;

Nullable print = p.ShowDialog();

}

public void UsersPortal()

{

if(Aut.UserStatus==0)

{

BaseSaveBtn.IsEnabled = false;

TestBtn.IsEnabled = false;

}

else if (Aut.UserStatus == 1)

{

BaseSaveBtn.IsEnabled = true;

TestBtn.IsEnabled = true;

}
}

private void Time()

{

timer = new DispatcherTimer();

timer.Tick += new EventHandler(timer_Tick);

timer.Interval = new TimeSpan(0, 0, 5);

timer.Start();

}

private void timer_Tick(object sender, EventArgs e)

{

timer.Stop();

UsersPortal();

}

}

}
Код страницы « АбитуриентPage»

using DocumentFormat.OpenXml.Wordprocessing;

using Microsoft.Win32;

using System;

using System.Collections.Generic;

using System.Data;

using System.Data.SqlClient;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;

using Excel = Microsoft.Office.Interop.Excel;

namespace Dethapp

{

///

/// Логика взаимодействия для АбитуриентPage.xaml

///


public partial class АбитуриентPage : Page

{

public static int Костыль1;

public АбитуриентPage()

{

InitializeComponent();

Dgridnamordnic.ItemsSource = AbiturientsBB.GetContext().Абитуриент.ToList();

ComboSelect.SelectedIndex = 0;

Sort.SelectedIndex = 0;

Update();

}
private void Page_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)

{

if (Visibility == Visibility.Visible)

{

AbiturientsBB.GetContext().ChangeTracker.Entries().ToList().ForEach(p => p.Reload());

Dgridnamordnic.ItemsSource = AbiturientsBB.GetContext().Абитуриент.ToList();
}

}
private void BtnEdit_Click(object sender, RoutedEventArgs e)

{

Manager.MainFrame.Navigate(new АбитуриентыEdit((sender as Button).DataContext as Абитуриент));

Костыль1 = 1;

}
private void BtnADD_Click(object sender, RoutedEventArgs e)

{

Manager.MainFrame.Navigate(new АбитуриентыEdit(null));

Костыль1 = 0;

}
private void BtnDell_Click(object sender, RoutedEventArgs e)

{

var Dellete = Dgridnamordnic.SelectedItems.Cast<Абитуриент>().ToList();
if (MessageBox.Show($"Вы точно хотите удалить следующие {Dellete.Count()} элементов?", "Внимание",

MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)

{

try

{

AbiturientsBB.GetContext().Абитуриент.RemoveRange(Dellete);

AbiturientsBB.GetContext().SaveChanges();

MessageBox.Show("Данные удалены!");

Dgridnamordnic.ItemsSource = AbiturientsBB.GetContext().Абитуриент.ToList();

}

catch (Exception ex)

{

MessageBox.Show(ex.Message.ToString());

}

}

}
private void ExT_Click(object sender, RoutedEventArgs e)

{

Environment.Exit(0);

}
private void Print_Click(object sender, RoutedEventArgs e)

{

try

{

//запрос данных

SqlConnection sqlcon = new SqlConnection(@"Data Source=DESKTOP-N11STEF;Initial Catalog=Abiturients;Integrated Security=True");

sqlcon.Open();

SqlDataAdapter loginadapter = new SqlDataAdapter("SELECT * FROM [dbo].[Абитуриент] ORDER BY ФИО ", sqlcon);

DataTable dr = new DataTable();

loginadapter.Fill(dr);

//создается таблица

DataTable employeeTable = new DataTable();

employeeTable = dr;

//Объявляем приложение

Excel.Application ex = new Microsoft.Office.Interop.Excel.Application();

//Количество листов в рабочей книге

ex.SheetsInNewWorkbook = 1;

//Добавить рабочую книгу

Excel.Workbook workBook = ex.Workbooks.Add(Type.Missing);

//Отключить отображение окон с сообщениями

ex.DisplayAlerts = false;

//Получаем первый лист

Excel.Worksheet sheet = (Excel.Worksheet)ex.Worksheets.get_Item(1);

//Название листа

sheet.Name = "лист_1";

sheet.Cells[1, 1] = "ООО: Зубрила";

sheet.Cells[2, 1] = "Отчет по зачислению абитуриентов";

//наименования столбцов

sheet.Cells[5, 1] = "№";

sheet.Cells[5, 2] = "Код Абитуриента";

sheet.Cells[5, 3] = "Фио Абитуриента";

sheet.Cells[5, 4] = "Телефон";

sheet.Cells[5, 5] = "Средний балл";

//заполнения ячеек из таблицы

for (int i = 1; i <= employeeTable.Rows.Count; i++)

{

sheet.Cells[i + 5, 1] = i;

for (int j = 1; j < employeeTable.Columns.Count + 1; j++)

{

sheet.Cells[i + 5, j + 1] = String.Format(employeeTable.Rows[i - 1][j - 1].ToString());

}

}

sheet.Cells[employeeTable.Rows.Count + 8, 1] = "Подпись администратора:";

//выбираем диапазон значений

Excel.Range range2 = sheet.Range[sheet.Cells[5, 1], sheet.Cells[employeeTable.Rows.Count + 5, employeeTable.Columns.Count + 1]];

range2.Cells.Font.Name = "Times New Roman";

range2.Cells.Font.Size = 12;

//размер по содержисому

range2.EntireColumn.AutoFit();

range2.EntireRow.AutoFit();

//раставляем рамки

range2.Borders.get_Item(Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Excel.XlLineStyle.xlContinuous;

range2.Borders.get_Item(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlLineStyle.xlContinuous;

range2.Borders.get_Item(Excel.XlBordersIndex.xlInsideHorizontal).LineStyle = Excel.XlLineStyle.xlContinuous;

range2.Borders.get_Item(Excel.XlBordersIndex.xlInsideVertical).LineStyle = Excel.XlLineStyle.xlContinuous;

range2.Borders.get_Item(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlLineStyle.xlContinuous;

sheet.Columns["A:A"].ColumnWidth = 5.0;

//устанавливаем у столбцов шрифт и размер

sheet.Columns["A:Z"].Font.Name = "Times New Roman";

sheet.Columns["A:Z"].Font.Size = 12;

Excel.Range range1 = sheet.Range[sheet.Cells[6, 2], sheet.Cells[employeeTable.Rows.Count + 5, 2]];

//меняем формат ячеек

range1.NumberFormat = "0";

//Отобразить Excel

ex.Visible = true;

}

catch (Exception ex)

{

MessageBox.Show(ex.ToString());

}

}
private void TBSearch_TextChanged(object sender, TextChangedEventArgs e)

{

Update();

}
private void ComboSelect_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

Update();

}
private void Sort_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

Update();

}

private void Update()

{

var list = AbiturientsBB.GetContext().Абитуриент.ToList();
if (TBSearch.Text != "")

{

list = list.Where(p => p.ФИО.ToLower().Contains(TBSearch.Text.ToLower())).ToList();

}
switch (ComboSelect.SelectedIndex)

{

case 1:

list = list.Where(p => p.Средний_балл == 5).ToList();

break;

case 2:

list = list.Where(p => p.Средний_балл == 4).ToList();

break;

case 3:

list = list.Where(p => p.Средний_балл == 3).ToList();
1   2   3   4   5   6   7   8   9   10   11


написать администратору сайта