Розробка системи сенсорного терміналу для видачі розкладу студентам

Основні мови програмування для системи сенсорного терміналу для відображення інформації про розклад студентам. Аналіз баз даних для системи відображення інформації. Рекомендації по використанню програмного забезпечення адміністратору та користувачеві.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 02.09.2014
Размер файла 1,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Без правильної вентиляції приміщення може значно погіршитися стан повітряно-дихальної системи через те, що комп'ютер працюючи притягує на систему охолодження пил, який без належної вентиляції може призвести до захворювань на астму та ін.

Постійний та ефективний обмін повітря є обов'язковою умовою для роботи з електронно-обчислювальною машиною. До опалення і вентиляції висуваються такі основні вимоги.

Приміщення де працюють оператори з електрино-обчислювальними машинами тобто персональними комп'ютерами забезпечують опаленням і припливно-витяжною вентиляцією з таким розрахунком, щоб у приміщенні температура повітря, відносна вологість і швидкість руху повітря підтримувалась у оптимальних межах. Вміст шкідливих газів і парів в повітрі зазначеного приміщення не дозволяється. Штучна вентиляція повинна здійснюватися за допомогою кондиціонерів та витяжок, коли природна вентиляція в свою чергу повинна здійснюватись за допомогою квартирок зі зручними пристроями, що дають змогу легко відчиняти і зачиняти їх. Площа квартирок, що відчиняються, повинна бути не менше 1/50 площі підлоги і забезпечувати трикратний повітрообмін.

Вентиляція є важливою характеристикою будь-якого місця роботи. Завдяки правильній вентиляції значно зменшується ризик захворіти на різного типу захворювання пов'язані з дихальною системою.

3.3.3 Освітлення

Оператор персонального комп'ютера постійно має справу з клавіатурою, мишкою а іноді навіть системним блоком (чистка, змазка), тому всі робочі місця, проходи й приміщення мають бути добре освітленими.

Освітлення має бути рівномірним і досить сильним. Воно не повинно утворювати різких тіней на робочих місцях, зайвої яскравості й блискучості в полі зору працюючих, а також контрастів між освітленням робочого місця і навколишньою обстановкою.

Освітлення повинно давати правильний напрям світлового потоку. Оператор ПК може працювати і з паперами, наприклад при наборі тексту з уже друкованого паперу на комп'ютер, в цьому випадку йому потрібно розрізняти знаки менші 5 мм, тому ми віднесемо даний вид роботи до грубої зорової роботи. При цьому виді роботи незалежно від характеристик фону і контрасту об'єкта з фоном згідно з ДБН В. 2.5-28-2006 нормується виключно загальне штучне освітлення: 200 лк, а коефіцієнт природного освітлення буде 1% при боковому освітленні.

Значення коефіцієнта світлового клімату за ДБН В. 2.5-28-2006 для даного приміщення буде змінюватись від 0,8 - 0,9 залежно від напрямку розташування вікна відносно сторін світу.

3.3.4 Шум і вібрація

При кожній роботі оператора, ПК працює не безшумно, і це створює певне шумове забруднення, яке також повинно нормуватись, згідно ДСН 3.3.6-037-99, дану роботу можна віднести до 4 категорії: Робота, що вимагає зосередження, робота з підвищеними вимогами до процесів спостереження та дистанційного керування виробничими циклами: робочі місця за ПК у кабінетах нагляду та дистанційного керування без мовного зв'язку по телефону; у приміщеннях лабораторій з шумовим устаткуванням, шумними агрегатами обчислювальних машин, і вона нормується певними показниками.

3.4 Виробнича безпека

Більшість персональних комп'ютерів під'єднано до мережі 220 В. Вони під'єднані до трифазної, чотири провідної мережі з заземленим нейтральним напругою 380/220 В. У приміщені операторів підлога дерев'яна, суха, немає струмопровідного пилу, підвищеної вологості та інших ознак підвищеної небезпеки. Умови роботи у приміщеннях без підвищеної небезпеки (відповідно з ГОСТ 12.1.013-78). Згідно ГОСТ 12.1.030-81 занулення електрообладнання для захисту людини від поразки електричним струмом застосовувати не обов'язково, т. є електрообладнання з однофазовими споживачами електричної енергії напругою 220В.

Для того щоб оператор уникнув ураження струмом необхідно дотримуватись елементарних правил безпеки:

1) перед початком увімкнення ПК переконатися що ніде не пошкоджена ізоляція усіх дротів підключених до напруги;

2) навіть при виключеному пристрої у автоматі можуть залишатись деякі напруги в наслідок не до кінця розряджених конденсаторів, тому після відімкнення від напруги живлення необхідно почекати принаймні 5 хвилин;

3) при виході ПК з ладу не намагатись самостійно відремонтувати пристрій, а дочекатись відповідно техніка;

4) не використовувати несправний ПК;

5) при перших ознаках поломки одразу зупинити роботу приладу та повідомити про це відповідну людину.

3.5 Протипожежні заходи

Не дивлячись що робота оператора ПК проходить переважно за комп'ютером протипожежні заходи також є необхідними. Оскільки ПК це все-таки техніка, для неї характерне коротке замикання в мережі або ж всередині самого ПК, що може без зайвих проблем спричинити сильну пожежу[19].

Пожежна безпека нормується за НАПБ Б.03.002-2007. Норми визначення категорій приміщень, будинків та зовнішніх установок за вибухопожежною та пожежною небезпекою. Згідно ОНТП - 24-86 [5] приміщення і виробництва за вибуховою і пожежною небезпекою поділяються на категорії А, Б, В, Г, Д, в залежності від:

- властивостей речовин і матеріалів, що знаходяться у відповідному приміщенні;

- кількість цих речовин і матеріалів;

У приміщенні пожежі можуть виникнути по наступним причинам:

- застосування відкритого вогню;

- порушення вимог та правил користування електропристроями;

- короткі замикання, перенавантаження, великі перехідні опори в

електричній мережі;

- порушення робітниками правил та вимог пожежної безпеки.

Відповідно до ОНТП 2486 робоче місце оператора по вибуховій і пожежній безпеці відноситься до категорії В. Можлива причина пожежі в приміщенні - порушення правил техніки безпеки, несправність електроприладів. Існує охоронно-пожежна сигналізація. У випадку пожежі можна також зв'язатися з пожежною охороною.

Відстань від найбільш віддаленого робочого місця до ближчого евакуаційного виходу із приміщення безпосередньо зовні чи в сходову клітку для об'єму приміщення до 15 тис. м3, категорії приміщення В, ступені вогнестійкості будівлі ІІ при щільності людського потоку до 1 чол/м2 - 100 м; більше 1 до 3 чол/м2 - 60 м; більше 3 до 5 чол/м2 - 40 м.

Ширину евакуаційного виходу із приміщення необхідно приймати в залежності від загальної кількості людей, які евакуюються через цей вихід і кількості людей на 1 м ширини виходу (дверей), які встановлюються згідно з ОНТП. Для об'єму приміщення до 15 тис. м3, категорії приміщення В, ступені вогнестійкості будівлі ІІ кількість людей на 1 м ширини евакуаційного виходу (дверей) повинна бути не більше 110 чол[20].

У приміщенні можлива пожежа класу А - пожежі твердих речовин, переважно органічного походження, горіння яких супроводжується тлінням (деревина, текстиль, папір).

Для захисту від пожеж класу А використовується порошковий вогнегасник ОП-8 ємністю 10 л., який власне і встановлено на місці роботи оператора ПК.

ВИСНОВКИ

Розробка програмного забезпечення - це важкий і довготривалий процес. Під час написання програми виникає багато запитань та помилок і тільки виправивши всі помилки можна добитись безперебійної роботи програмного забезпечення.

У даній дипломній роботі розроблено програмне забезпечення для системи сенсорного терміналу для відображення інформації про розклад студентам.

Розглянуто варіанти мов програмування та баз даних, обрано з них найефективнішу і найпростішу у застосуванні, розглянуто сенсорні термінали різних фірм-виробників.

Також здійснено проектування структури програмного забезпечення, розроблявся інтерфейс, проектувалась база даних, розроблялась її ER-модель.

Було надано рекомендації щодо використання даного програмного забезпечення адміністратору і користувачеві.

Було визначено необхідні дії для забезпечення надійної охорони праці, здійснено аналіз умов праці оператора, описано організаційно-технічні заходи, заходи з виробничої санітарії, заходи з виробничої безпеки та протипожежні заходи.

Була обрана і використана необхідна література і все програмне забезпечення було внесено в додатки.

ЛІТЕРАТУРА

1. Daniel Solis, «Illustrated C#», y. 2008, p. 726;

2. Трей Нэш, «C# 2008 Ускоренный курс для профессионалов», год 2008, стр. 576;

3. Matthew MacDonald, «Pro WPF in C# 2008: Windows Presentation Foundation in .NET 3.5», y. 2008, p. 1040;

4. Джо Майо, «C# Builder. Быстрый старт», год 2005, стр. 371;

5. Чарльз Петцольд, «Программирование для Microsoft Windows на C#», год 2002, стр. 564+612.

6. Jay Hilyard, Stephen Teilhet, «C# 3.0 Cookbook, Third Edition, with Examples», y. 2008, p. 886;

7. Jesse Liberty, Donald Xie, «Programming C# 3.0, Fifth Edition. Examples», y. 2008, p. 607;

8. Кристиан Нейгел, Билл Ивьен, «C# 2005 и платформа .NET 3.0 для профессионалов», год 2008, стр. 1790;

9. Сара Морган, Билл Райан, «Разработка распределенных приложений на платформе Microsoft .Net Framework», год 2008, стр. 608;

10. Date C.J., «SQL and Relational Theory», y. 2011, p. 446;

11. Rachel Clements, Jon Reade, «What's New in SQL Server 2012», y. 2012, p. 238;

12. Jay Natarajan, Scott Shaw, «Pro T-SQL 2012 Programmer's Guide, 3rd Edition», y. 2013, p. 679;

13. Knight B., Knight D., Davis M., Snyder W., «Microsoft SQL Server 2012 Integration Services», y. 2013, p. 600;

14. Microsoft, «Administreting MS SQL Server 2012», y. 2012, p. 825;

15. Leonard Lobel, Andrew Brust, «Programming Microsoft SQL Server 2012», y. 2012, p. 814;

16. Жидецький В. Ц. Охорона праці користувачів комп'ютерів./ Жидецький В. Ц. - Львів : Афіша, 2000. - 176 с.

17. Бондаренко Є. А. Безпека життєдіяльності : навч. посіб. / Є. А. Бондаренко., А. В. Сердюк - Вінниця : ВДТУ, 2013. - 160 с.

18. Бондаренко Є. А. Охорона праці в робочій професії користувача ЕОМ : навч. посіб./ Є. А. Бондаренко. - Вінниця : ВДТУ, 2003. - 115 с.

19. Бондаренко Є. А. Пожежна безпека : навч. посіб./ Є. А. Бондаренко. - Вінниця : ВНТУ, 2008. - 109 с.

20. Використання нормативних актів про охорону праці користувачів ЕОМ: довідник./ Є. А. Бондаренко - Вінниця : ВДНТУ, 2003. - 100 с.

ДОДАТКИ

Додаток А

using AdminInfo;

using System;

using System.Collections.Generic;

using System.DirectoryServices.AccountManagement;

using System.Globalization;

using System.IO;

using System.Linq;

using System.Security.Principal;

using System.Text;

using System.Threading;

using System.Timers;

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 System.Xml.Serialization;

namespace Administration

{

public partial class MainWindow : Window

{

public static Dictionary<int, string> weekNum = new Dictionary<int, string>();

KeyboardControl keyboard;

private Admin _Admin;

public MainWindow()

{

InitializeComponent();

_Admin = new Admin();

if (weekNum.Count == 0)

{

weekNum.Add(0, "--");

weekNum.Add(1, "Перший");

weekNum.Add(2, "Другий");

}

Thread timerHandler = new Thread(new ThreadStart(() =>

{

CustomTimer();

}));

timerHandler.IsBackground = true;

timerHandler.Start();

}

private void ButtonAdminClick(object sender, RoutedEventArgs e)

{

CreateKeyboard();

}

private void CreateKeyboard()

{

if (keyboard == null)

{

keyboard = new KeyboardControl();

keyboard.EventDropKeyboard += new DropKeyboard(keyboard_EventDropKeyboard);

keyboard.EventBackspace += new Backspace(keyboard_EventBackspace);

keyboard.EventCursorePosition += new ChangeCursorePosition(keyboard_EventCursorePosition);

keyboard.EventSymbol += new Symbol(keyboard_EventSymbol);

keyboard.EventDelete += new DeleteData(keyboard_EventDelete);

keyboard.Width = gridKeyboard.Width;

gridKeyboard.Children.Add(keyboard);

}

else if (keyboard != null && keyboard.HidenState)

{

gridKeyboard.Children.Remove(keyboard);

keyboard = new KeyboardControl();

keyboard.EventDropKeyboard += new DropKeyboard(keyboard_EventDropKeyboard);

keyboard.EventBackspace += new Backspace(keyboard_EventBackspace);

keyboard.EventCursorePosition += new ChangeCursorePosition(keyboard_EventCursorePosition);

keyboard.EventSymbol += new Symbol(keyboard_EventSymbol);

keyboard.EventDelete += new DeleteData(keyboard_EventDelete);

keyboard.Width = gridKeyboard.Width;

gridKeyboard.Children.Add(keyboard);

}

}

private void keyboard_EventDelete()

{

if (passwordTextBox.Password.Length > 0)

{

passwordTextBox.Clear();

}

}

private void keyboard_EventSymbol(string symbol)

{

passwordTextBox.Password += symbol;

}

private void keyboard_EventCursorePosition(int numberPosition)

{

if (passwordTextBox.Password.Length > 0)

{

}

}

private void keyboard_EventBackspace()

{

if (passwordTextBox.Password.Length > 0)

{

int index = passwordTextBox.Password.Length - 1;

passwordTextBox.Password = passwordTextBox.Password.Remove(index);

}

}

private void keyboard_EventDropKeyboard()

{

if (passwordTextBox.Password.Length > 0)

{

if (_Admin.Password == passwordTextBox.Password)

{

passwordTextBox.Clear();

AdministrationWindow admWnd = new AdministrationWindow();

admWnd.Show();

}

else

{

MessageBox.Show("Login error");

}

}

}

private void ButtonUserClick(object sender, RoutedEventArgs e)

{

StudentWindow stdWnd = new StudentWindow();

stdWnd.Show();

}

private void CustomTimer()

{

CultureInfo cult = new CultureInfo("uk-UA");

while (true)

{

timerWindow.Dispatcher.Invoke(new Action(() =>

{

timerWindow.Content = String.Format("{0:d/M/yyyy HH:mm:ss}", DateTime.Now);// .ToString("{0:d/M/yyyy HH:mm:ss}", cult);

}));

Thread.Sleep(1000);

}

}

private void buttonDEL_Click(object sender, RoutedEventArgs e)

{

passwordTextBox.Clear();

}

private void buttonBack_Click(object sender, RoutedEventArgs e)

{

}

private void Button_Click(object sender, RoutedEventArgs e)

{

passwordTextBox.Password += ((Button)sender).Content;

}

private void loginTextBox_MouseDown(object sender, MouseButtonEventArgs e)

{

}

private void passwordTextBox_GotFocus(object sender, RoutedEventArgs e)

{

}

private void loginTextBox_GotFocus(object sender, RoutedEventArgs e)

{

}

private void Window_Loaded_1(object sender, RoutedEventArgs e)

{

DeserializationAdmin();

}

private void SerializationAdmin()

{

XmlSerializer xml = new XmlSerializer(typeof(Admin));

using (var fStream = new FileStream("Admin.xml", FileMode.Create, FileAccess.Write, FileShare.None))

{

xml.Serialize(fStream, _Admin);

}

}

private void DeserializationAdmin()

{

XmlSerializer xml = new XmlSerializer(typeof(Admin));

using (var fStream = new FileStream("Admin.xml", FileMode.Open, FileAccess.Read, FileShare.None))

{

_Admin = (Admin)xml.Deserialize(fStream);

}

}

private void Window_Closing_1(object sender, System.ComponentModel.CancelEventArgs e)

{

SerializationAdmin();

}

private void Button_Click_1(object sender, RoutedEventArgs e)

{

Close();

}

}

}

Додаток Б

using System;

using System.Collections.Generic;

using System.Collections.ObjectModel;

using System.ComponentModel;

using System.Linq;

using System.Text;

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 Administration

{

public partial class AdministrationWindow : Window

{

SQLDataManager _dataManager = SQLDataManager.GetInstance;

public List<Shedule> myList = new List<Shedule>();

public string[] teachers = null;

private int _LessonNum = 1;

public AdministrationWindow()

{

InitializeComponent();

_dataManager.EventChangedGroups += new MyEventHandler(GetInstance_EventChangedGroups);

_dataManager.EventChangeLessons += new MyEventHandler(GetInstance_EventChangeLessons);

_dataManager.EventChangeInstitute += new MyEventHandler(GetInstance_EventChangeInstitute);

_dataManager.EventChangeSpeciality += new MyEventHandler(GetInstance_EventChangeSpeciality);

SetComboInstitutes();

}

private void GetInstance_EventChangeSpeciality()

{

SetComboSpecialities();

}

private void GetInstance_EventChangeInstitute()

{

SetComboInstitutes();

}

private void GetInstance_EventChangeLessons()

{

if (ComboBoxGroup.SelectedItem != null)

{

SetGrid(ComboBoxGroup.SelectedItem.ToString());

}

}

private void SetGrid(string groupName)

{

myList = _dataManager.GetShedule(groupName);

ICollectionView view = CollectionViewSource.GetDefaultView(myList);

view.GroupDescriptions.Add(new PropertyGroupDescription("DayName"));

gridContent.ItemsSource = view;

}

public void GetInstance_EventChangedGroups()

{

SetComboGroups();

}

private void ComboBoxInstitute_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

SetComboSpecialities();

}

private void ComboBoxSpeciality_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

SetComboGroups();

if (ComboBoxSpeciality.SelectedItem != null)

{

buttonAddGroup.IsEnabled = true;

buttonEditSubject.IsEnabled = true;

buttonEditTeachers.IsEnabled = true;

}

else

{

{

buttonAddGroup.IsEnabled = false;

buttonEditSubject.IsEnabled = false;

buttonEditTeachers.IsEnabled = false;

}

}

}

private void ComboBoxGroup_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

if (ComboBoxGroup.SelectedItem != null)

{

buttonDeleteGroup.IsEnabled = true;

buttonAddLesson.IsEnabled = true;

}

else

{

buttonDeleteGroup.IsEnabled = false;

buttonAddLesson.IsEnabled = false;

}

string groupName = string.Empty;

try { groupName = ComboBoxGroup.SelectedItem.ToString(); } catch{}

SetGrid(groupName);

string str = String.Empty;

try { str = ComboBoxSpeciality.SelectedItem.ToString(); }

catch { }

comboBoxDay.ItemsSource = _dataManager.GetDaysList();

comboBoxDay.SelectedIndex = 0;

comboBoxSubject.ItemsSource = _dataManager.GetSubjectsList(str);

comboBoxSubject.SelectedIndex = 0;

comboBoxClass.ItemsSource = _dataManager.GetClassesList();

comboBoxClass.SelectedIndex = 0;

comboBoxWeek.ItemsSource = MainWindow.weekNum.Values;

comboBoxWeek.SelectedIndex = 0;

labelLessonNum.Content = _LessonNum;

comboBoxLessonType.ItemsSource = new string[] { "Лекційне", "Практичне", "Лабораторне" };

comboBoxLessonType.SelectedIndex = 0;

}

private void SetComboInstitutes()

{

ComboBoxInstitute.ItemsSource = _dataManager.GetInstituteList();

ComboBoxInstitute.SelectedIndex = 0;

}

private void SetComboSpecialities()

{

ComboBoxSpeciality.ItemsSource = _dataManager.GetSpecialityList(ComboBoxInstitute.SelectedItem.ToString());

ComboBoxSpeciality.SelectedIndex = 0;

}

private void SetComboGroups()

{

string specialityName = string.Empty;

if (ComboBoxSpeciality.SelectedItem != null) specialityName = ComboBoxSpeciality.SelectedItem.ToString();

ComboBoxGroup.ItemsSource = _dataManager.GetGroupList(specialityName);

ComboBoxGroup.SelectedIndex = 0;

}

private void buttonAddGroup_Click(object sender, RoutedEventArgs e)

{

if (ComboBoxInstitute.SelectedItem != null && ComboBoxSpeciality != null)

{

AddGroup addGroup = new AddGroup(ComboBoxInstitute.SelectedItem.ToString(), ComboBoxSpeciality.SelectedItem.ToString());

addGroup.Show();

}

}

private void buttonDeleteGroup_Click(object sender, RoutedEventArgs e)

{

if (ComboBoxGroup.SelectedItem != null)

{

_dataManager.DropGroup(ComboBoxGroup.SelectedItem.ToString());

SetComboGroups();

}

}

private void buttonEditSubject_Click(object sender, RoutedEventArgs e)

{

if (ComboBoxSpeciality.Items.Count > 0)

{

EditSubject editSub = new EditSubject(ComboBoxSpeciality.SelectedItem.ToString());

editSub.Show();

}

}

private void buttonEditTeachers_Click(object sender, RoutedEventArgs e)

{

if (ComboBoxSpeciality.Items.Count > 0)

{

EditTeachers editTeacher = new EditTeachers(ComboBoxSpeciality.SelectedItem.ToString());

editTeacher.Show();

}

}

private void buttonCancel_Click(object sender, RoutedEventArgs e)

{

_dataManager.EventChangedGroups -= new MyEventHandler(GetInstance_EventChangedGroups);

_dataManager.EventChangeLessons -= new MyEventHandler(GetInstance_EventChangeLessons);

Close();

}

private void buttonEditClasses_Click(object sender, RoutedEventArgs e)

{

EditClasses editClasses = new EditClasses();

}

private void gridContent_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

}

private void buttonDeleteLesson_Click(object sender, RoutedEventArgs e)

{

if (gridContent.SelectedItem != null)

{

Shedule item = (Shedule)gridContent.SelectedItem;

int week = 0;

foreach (KeyValuePair<int, string> pair in MainWindow.weekNum)

{

if (pair.Value == item.WeekNum) week = pair.Key;

}

_dataManager.DropLesson(ComboBoxGroup.SelectedItem.ToString(), item.DayName, item.LessonNum, week);

}

}

private void comboBoxSubject_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

string str = String.Empty;

try { str = comboBoxSubject.SelectedItem.ToString(); }

catch { }

comboBoxTeacher.ItemsSource = _dataManager.GetTeachersList(str);

comboBoxTeacher.SelectedIndex = 0;

}

private void buttonAdd_Click(object sender, RoutedEventArgs e)

{

try

{

if (ComboBoxGroup.SelectedItem != null)

{

int numOFWeek = 0;

foreach (KeyValuePair<int, string> pair in MainWindow.weekNum)

{

if (pair.Value == comboBoxWeek.SelectedItem.ToString()) numOFWeek = pair.Key;

}

if (_dataManager.AddNewLesson(ComboBoxGroup.SelectedItem.ToString(), comboBoxDay.SelectedItem.ToString(), comboBoxSubject.SelectedItem.ToString(),

numOFWeek, comboBoxTeacher.SelectedItem.ToString(), Convert.ToInt32(comboBoxClass.SelectedItem), Convert.ToInt32(labelLessonNum.Content),

comboBoxLessonType.SelectedItem.ToString()) == false) MessageBox.Show("Невдалось додати урок. Можливо в цей час для групи вже встановлено інший урок");

}

}

catch

{

MessageBox.Show("Неможливо додати урок до розкладу");

}

}

private void buttonNumInc_Click(object sender, RoutedEventArgs e)

{

labelLessonNum.Content = ++_LessonNum;

}

private void buttonNumDec_Click(object sender, RoutedEventArgs e)

{

if(_LessonNum>1) labelLessonNum.Content = --_LessonNum;

}

private void buttonEditSpeciality_Click(object sender, RoutedEventArgs e)

{

if (ComboBoxInstitute.SelectedItem != null)

{

AddTeacherWindow speciality = new AddTeacherWindow(ComboBoxInstitute.SelectedItem.ToString());

speciality.Show();

}

}

private void Button_Click_1(object sender, RoutedEventArgs e)

{

EditInstityteWindow editWindow = new EditInstityteWindow();

editWindow.Show();

} }}

Додаток В

using System;

using System.Collections.Generic;

using System.Collections.ObjectModel;

using System.ComponentModel;

using System.Linq;

using System.Text;

using System.Threading;

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 Administration

{

public partial class StudentWindow : Window

{

SQLDataManager _dataManager = SQLDataManager.GetInstance;

public List<Shedule> myList = new List<Shedule>();

public string[] teachers = null;

public StudentWindow()

{

InitializeComponent();

SetComboInstitutes();

}

private void GetInstance_EventChangeLessons()

{

SetGrid(ComboBoxGroup.SelectedItem.ToString());

}

private void SetGrid(string groupName)

{

myList = _dataManager.GetShedule(groupName);

ICollectionView view = CollectionViewSource.GetDefaultView(myList);

view.GroupDescriptions.Add(new PropertyGroupDescription("DayName"));

gridContent.ItemsSource = view;

}

public void GetInstance_EventChangedGroups()

{

SetComboGroups();

}

private void ComboBoxInstitute_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

SetComboSpecialities();

}

private void ComboBoxSpeciality_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

SetComboGroups();

}

private void ComboBoxGroup_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

if (ComboBoxGroup.SelectedItem != null)

{

buttonPrint.IsEnabled = true;

}

else

{

buttonPrint.IsEnabled = false;

}

string groupName = string.Empty;

try { groupName = ComboBoxGroup.SelectedItem.ToString(); }

catch{}

SetGrid(groupName);

}

private void SetComboInstitutes()

{

ComboBoxInstitute.ItemsSource = _dataManager.GetInstituteList();

ComboBoxInstitute.SelectedIndex = 0;

}

private void SetComboSpecialities()

{

ComboBoxSpeciality.ItemsSource = _dataManager.GetSpecialityList(ComboBoxInstitute.SelectedItem.ToString());

ComboBoxSpeciality.SelectedIndex = 0;

}

private void SetComboGroups()

{

string specialityName = string.Empty;

if (ComboBoxSpeciality.SelectedItem != null) specialityName = ComboBoxSpeciality.SelectedItem.ToString();

ComboBoxGroup.ItemsSource = _dataManager.GetGroupList(specialityName);

ComboBoxGroup.SelectedIndex = 0;

}

private void buttonCancel_Click(object sender, RoutedEventArgs e)

{

Close();

}

private void buttonPrint_Click(object sender, RoutedEventArgs e)

{

if (ComboBoxGroup.SelectedItem != null)

{

PrintSheduleWindow printing = new PrintSheduleWindow();

List<Shedule> list;

List<Shedule> grid = new List<Shedule>();

foreach (var data in gridContent.Items)

grid.Add((Shedule)data);

while (grid.Count > 0)

{

if (grid.Count > 40)

{

list = new List<Shedule>();

for (int index = 0; index < 40; index++)

{

list.Add((Shedule)grid[0]);

grid.RemoveAt(0);

}

}

else

{

list = new List<Shedule>();

foreach (var data in grid)

list.Add((Shedule)data);

grid.Clear();

}

printing.Show();

printing.Print(list, new string[] { ComboBoxInstitute.SelectedItem.ToString(), ComboBoxSpeciality.SelectedItem.ToString(), ComboBoxGroup.SelectedItem.ToString() });

printing.Hide();

}

}

}

}

}

Додаток Г

АНОТАЦІЯ

У бакалаврській роботі розроблено програмне забезпечення для системи сенсорного терміналу для відображення інформації про розклад студентам.

Високий рівень рішення поставленої задачі досягнутий за рахунок використання принципів об'єктно-орієнтованого програмування в середовищі Visual C# із використанням Windows WPF.

У даній роботі розроблено базу даних, призначену для зберігання та обробки інформації. Розроблено алгоритм роботи програмного забезпечення для видачі інформації про розклад.

Дана розробка є доцільною для впровадження та використання в освітньо-навчальній сфері.

ANNOTATION

In bachelor work software is developed for the system of sensory terminal for the reflection of information about a time-table students.

The high level of decision of the put task is attained due to the use of principles of the object-oriented programming in the environment of Visual C# with the use of Windows WPF.

A database, intended for storage and treatment of information, is developed in this work. The algorithm of work of software is developed for delivery of information about a time-table.

This development is expedient for introduction and use in to educationally sphere.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.