3. Програмна реалізація 3.1 Детальна реалізація функціональних частин програмного забезпечення
3.1.1 Реалізація програмного забезпечення
Опис методів класів
Після запуску програми перша дія, яку необхідно зробити користувачеві - це вибрати обліковий запис користувача і ввести пароль.
Коректність введення пароля перевіряється за хеш-значенням поточного пароля і введеного пароля користувачем методом PasswordIsValid (stringhash1, stringhash2) класу Password, в якості параметрів в який передаються два хеш-значення. Перше - справжнє хеш-значення пароля, що зберігається у файлі на диску в папці разом з програмою, друге - отримане з введеного користувачем пароля. Якщо хеш-значення збігаються, функція повертає True. p align="justify"> Хеш-значення паролів (Адміністратора і Продавця) зберігаються у файлі на диску (HashAdmin. dat - для Адміністратора, HashSaler. dat - для Продавця), і виходять методомgetHashSalerPassword (), для пароля Продавця і методомgetHashAdminPassword ( ) того ж класу Password, для пароля Адміністратора.
У класі Passwordтак же міститься метод NewPassword (stringnewpassword, intfl), який змінює паролі Продавця або Адміністратора. В якості параметрів йому передається нове значення пароля і прапор зміни. Якщо прапор дорівнює 0, то необхідно змінити пароль Адміністратора, якщо 1 - пароль Продавця. Пароль змінюється простий перезаписом файлу, що містить хеш-значення поточного пароля, на хеш-значення нового пароля. p align="justify"> У кожному класі сутностей описані методи для здійснення доступу до властивостей класу (так звані геттер), конструктор даного класу і метод для серіалізациі і десеріалізациі при записі і читанні бази з файлу. При серіалізації дані переводяться в бінарний вигляд, при десеріалізациі - у вид, придатний для читання тими чи іншими методами. Для використання можливості серіалізациі і десеріалізациі необхідно вказати наступні директиви:
usingSystem.runtime. Serialization. Formatters. Binary;. Runtime. Serialization; System. IO;
Методи серіалізациі і десеріалізациі для кожного класу реалізують інтерфейс Serealization_Deserialization.
Розберемо вищенаписане на прикладі классаAuto (див. лістинг 3.1.1.1).
Лістинг 3.1.1.1 - Методи доступу до властивостей класу
// методыдоступаксвойствамкласса
publicstringgetEngineType () {returnEngineType;}
publicfloatgetEngineVolume () {returnEngineVolume;}
publicintgetGuaranteeTime () {returnGuaranteeTime;}
publicstringgetHireCost () {returnHireCost;}
publicstringgetIsHire () {returnIsHire;}