Отчет по практике. Отчет. Допустить к защите
Скачать 407.85 Kb.
|
ЗаключениеВ процессе разработки дипломного проекта было спроектировано программное обеспечение «Учет оплаты за обучение», получен опыт в разработке приложений на языке программирования высокого уровня C# с применением технологии WPF. А также получен опыт в составлении SQL запросов на выборку, удаление, изменение и добавление данных. Данный программный продукт обеспечивает выполнение следующих задач: добавление, изменение, удаление и хранение данных; просмотр и редактирование списка групп и студентов; подсчет суммы оплаты за обучение; контроль вводимой информации и блокировку ввода некорректных данных; парольную защиту при входе в систему. На сегодняшний день внедрение информационных технологий в сферу образования очень актуально, это позволяет решить такие проблемы как автоматизированное управление учебным процессом, сведение к минимуму ошибок по вине человека. Приложение и база данных были разработаны с целью облегчить работу с большим количеством и долгосрочном хранении информации. Список использованных источников Шарп Джон Ш26 Microsoft Visual C#. Подробное руководство. 8-е изд. — СПб.: Питер, 2017. — 848 с.: ил. — (Серия «Библиотека программиста»). Карпова, И.П. Базы данных. Учебное пособие [Электронный ресурс] / И.П. Карпова. – Электрон.дан. – Санкт-Петербург: Питер, 2013. Режим доступа: https://ibooks.ru/reading.php?productid=334057, только для зарегистрированных пользователей. – Загл. с экрана. Заботина, Н.Н. Проектирование информационных систем: Учебное пособие [Электронный ресурс] / Н.Н. Заботина. – Электрон.дан. – Москва: НИЦ ИНФРА-М, 2015. – Режим доступа: http://znanium.com/bookread2.php? book=454282, только для зарегистрированных пользователей. – Загл. с экрана. Интерактивный учебник Пошаговые руководства по WPF –[интернет-ресурс] - https://docs.microsoft.com/ru-ru/dotnet/framework/wpf/getting-started/wpf-walkthroughs Документация по MySQL http://www.mysql.ru/docs/ Приложение А Текст программы //Класс подключения к серверу using System; using System.Data; using MySql.Data.MySqlClient; namespace Diplom { class connect { string ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectToDB"].ConnectionString; MySqlConnection con; MySqlCommand cmd; MySqlDataAdapter dataAdapter; MySqlDataReader dr; DataTable dt; object result; MySqlConnection MyConnect = new MySqlConnection(); public void OpenConection() { con = new MySqlConnection(ConnectionString); con.Open(); } public void CloseConnection() { con.Close(); } public void ExecuteQueries(string Query_) { cmd = new MySqlCommand(Query_, con); cmd.ExecuteNonQuery(); } public object ExecuteQ(string Query_) { cmd = new MySqlCommand(Query_, con); result = cmd.ExecuteScalar(); if (result == DBNull.Value) { result = 0; } return result; } public MySqlDataReader DataReader(string Query_) { cmd = new MySqlCommand(Query_, con); dr = cmd.ExecuteReader(); return dr; } public MySqlDataAdapter DataAdapter(string Query_) { MySqlDataAdapter dataAdapter = new MySqlDataAdapter(Query_, con); return dataAdapter; } public DataTable QueryEx() { dt = new DataTable(); dt.Load(dr); return dt; } public void NonQueryEx() { cmd.ExecuteNonQuery(); } } } Листинг формы «Авторизация»: using System; using System.Data; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using Diplom.Validation; using MySql.Data.MySqlClient; namespace Diplom { public partial class MainWindow : Window { private connect conn; MySqlDataAdapter dataAdapter; private int _errors = 0; private validationText validText = new validationText(); public MainWindow() { InitializeComponent(); grid_validationData.DataContext = validText; } #region Активность кнопки авторизация private void sign_CanExecute(object sender, CanExecuteRoutedEventArgs e) { e.CanExecute = _errors == 0; e.Handled = true; } private void sign_Executed(object sender, ExecutedRoutedEventArgs e) { validText = new validationText(); grid_validationData.DataContext = validText; e.Handled = true; } private void Validation_Error(object sender, ValidationErrorEventArgs e) { if (e.Action == ValidationErrorEventAction.Added) _errors++; else _errors--; #endregion //helpMenu кнопка помощи private void helpMenu(System.Object sender, EventArgs e) { menuBorder.IsEnabled = false; } //форма помощи private void help(System.Object sender, EventArgs e) { menuBorder.IsEnabled = true; } //infoMenu кнопка информации private void infoMenu(System.Object sender, EventArgs e) { menuBorder.IsEnabled = false; } //info форма информации private void Info(System.Object sender, EventArgs e) { menuBorder.IsEnabled = true; } //настройки private void settingMenu(System.Object sender, EventArgs e) { settings settings = new settings(); settings.Show(); } private void exitMenu(System.Object sender, EventArgs e) { MessageBoxResult result = MessageBox.Show("Выйти из программы?", "Завершение работы", MessageBoxButton.YesNo, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { Application.Current.Shutdown(); } } private void Button_Click(object sender, RoutedEventArgs e) { try { if (login.Text == "" || pass.Password == "") { MessageBox.Show("Введите данные!"); } else { conn = new connect(); conn.OpenConection(); dataAdapter = conn.DataAdapter("Select role From users where login ='" + login.Text + "' and pass ='" + pass.Password + "'"); DataTable dt = new DataTable(); dataAdapter.Fill(dt); if (dt.Rows.Count > 0) { string role = dt.Rows[0][0].ToString(); if (role == "Администратор") { admin admin = new admin(); admin.Show(); this.Hide(); } if (role == "Секретарь") { Sekret admin = new Sekret(); admin.Show(); this.Hide(); } if (role == "Кассир") { kassir admin = new kassir(); admin.Show(); this.Hide(); } } else { MessageBox.Show("Неправильно введённые имя или пароль"); } } catch { MessageBox.Show("Соединение отсутствует"); settings s = new settings(); s.Show(); } } private void login_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Space) { e.Handled = true; } } private void pass_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Space) { e.Handled = true; } } } Листинг формы «Настройки»: using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Configuration; using Diplom.Validation; namespace Diplom { public partial class settings : Window { private int _errors = 0; private validationText validText = new validationText(); connect conn; public settings() { InitializeComponent(); grid_validationData.DataContext = validText; } #region Активность кнопки авторизация private void Update_CanExecute(object sender, CanExecuteRoutedEventArgs e) { e.CanExecute = _errors == 0; e.Handled = true; } private void Update_Executed(object sender, ExecutedRoutedEventArgs e) { validText = new validationText(); grid_validationData.DataContext = validText; e.Handled = true; } private void Validation_Error(object sender, ValidationErrorEventArgs e) { if (e.Action == ValidationErrorEventAction.Added) _errors++; else _errors--; } #endregion private void Update_Click(object sender, RoutedEventArgs e) { StringBuilder Con = new StringBuilder("Database= "); Con.Append(DBname_text.Text); Con.Append(";Datasource="); Con.Append(server_text.Text); Con.Append("; User="); Con.Append(user_text.Text); Con.Append(";Password='"); Con.Append(pass_text.Password); Con.Append("';"); connect myConnect = new connect(); string strCon = Con.ToString(); try { var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings"); connectionStringsSection.ConnectionStrings["ConnectToDB"].ConnectionString = strCon; config.Save(); ConfigurationManager.RefreshSection("connectionStrings"); conn = new connect(); conn.OpenConection(); conn.CloseConnection(); startConnect.Visibility = Visibility.Visible; valid_text.Visibility = Visibility.Hidden; } catch { if (pass_text.Password.Length <=3) { MessageBox.Show("Пароль должен быть не менее 4-х символов"); } else { valid_text.Inlines.Add("Введенные настройки неверны"); valid_text.Visibility = Visibility.Visible; } } } private void Exit_Click(object sender, RoutedEventArgs e) { this.Close(); } #region Запрет ввод пробелов в поля private void server_text_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Space) { e.Handled = true; } } private void DBname_text_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Space) { e.Handled = true; } } private void user_text_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Space) { e.Handled = true; } } private void pass_text_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Space) { e.Handled = true; } } #endregion } } |