Ім'я файлу: курсач 2.docx
Розширення: docx
Розмір: 191кб.
Дата: 07.12.2021
скачати

Під час виконання курсового проекту була розроблена програма яка веде облік користувачів. У ній було реалізовано декілька класів, які мають успадкування від одного класу.

Також було реалізовано. Дружелюбні функції для вводу та відображення імені користувача.

Перевірка правильності вводу імені та дати реалізована за допомогою регулярних виразів та валідації.

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


  • Для чого потрібна твоя програма?

  • Чому вона корисна?

  • Де ії можна застосувати?

  • Чи є в неї аналоги, які вони. Їх сильні та слабкі сторони.

  • Яка історія виникнення подібних програм?



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

Алгоритмічних мов в даний час є велика безліч, кожен з яких служить для вирішення своїх завдань. В той же час є і мови загального призначення, на яких пишеться велика кількість сучасних програм для комп'ютера. До цих мов можна віднести такі, як C++, Java, C#, Delphi та інші [1].


  1. ПОСТАНОВКА ЗАДАЧІ



Створити клас "користувач" з базовими властивостями "ім'я", " дата

реєстрації " та методом " отримати інформацію" (метод повинен вивести ім'я та дату реєстрація).

Створити два спадкоємця класу "Користувач": клас "Адмін" і клас "гість". У класу "Адмін" має бути додаткова властивість "суперАдмин" (може бути true / false, має бути прихованим). Властивості визначаються в момент виклику конструктора.

У класу "гість" має бути властивість "термін дії" (validDate, наприклад), містить дату (наприклад, один тиждень від моменту реєстрації).

У КЛАСІВ-спадкоємців метод "отримати інформацію" повинен так само містити інформацію про додаткові властивості ("суперАдмин" і "термін дії")

2. Провести валідацію всіх полів через регулярні вирази

3. Зробити френдлі інтерфейс

  1. ТЕОРЕТИЧНІ ВІДОМОСТІ




    1. Класи і об'єкти в С++



Класи і об'єкти в С є основними концепціями об'єктно-орієнтованого програмування – ООП. Об'єктно-орієнтоване програмування – розширення структурного програмування, в якому основними концепціями є поняття класів і об'єктів. Основна відмінність мови програмування С++ від С полягає в тому, що в С немає класів, а отже мова С не підтримує ООП, на відміну від С++ [3].

Класи в С++ – це абстракція, що описує методи, властивості, ще не існуючих об'єктів.

Об'єкти – конкретне уявлення абстракції, що має свої властивості і методи. Створені об'єкти на основі одного класу називаються екземплярами цього класу. Ці об'єкти можуть мати різну поведінку, властивості, але все одно будуть об'єктами одного класу. В ООП існує три основних принципи побудови класів:

Інкапсуляція – це властивість, що дозволяє об'єднати в класі дані, методи, які працюють з ними і приховати деталі реалізації від користувача.

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

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

Кожен об'єкт має якісь свої властивості або атрибути, які характеризують його протягом усього життя. Атрибути об'єкта зберігаються в змінних, оголошених всередині класу, якому належить даний об'єкт. Причому, оголошення змінних повинно виконуватися зі специфікатором доступу private. Такі змінні називаються елементами даних. Так як елементи даних оголошені в private, то і доступ до них можуть отримати тільки методи класу, зовнішній доступ до елементів даних заборонений. Тому прийнято оголошувати в класах спеціальні методи – так звані set і get функції, за допомогою яких можна маніпулювати елементами даних. Набір-функції ініціюють елементи даних, отримати-функції дозволяють переглянути значення елементів даних [4].

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

    1. Регулярні вирази



Регулярні вирази, введені в C ++ 11, можуть додатково підтримувати повернутий масив відповідних рядків або інший текстовий синтаксис, який визначає, як замінити зіставлені шаблони в рядках, на яких працює [5].

Синтаксис

regex_match / / повертає, чи була вся послідовність символів зіставлена регулярним виразом, при бажанні, захоплення в об'єкт відповідності

regex_search / / повертає, чи відповідає послідовність символів символу регулярним виразом, необов'язково, захоплюючи об'єкт відповідності

regex_replace / / повертає послідовність символів введення, модифіковану регулярним виразом, за допомогою рядка заміщає формату

regex_token_iterator / / ініціалізується символьною послідовністю, визначеною ітераторами, списком індексів захоплення для ітерації та регулярним виразом.

Dereferencing повертає поточне індексоване відповідність регулярного виразу. Збільшення кроків до наступного індексу захоплення або, якщо він знаходиться в останньому індексі, скидає індекс і затримує наступне входження регулярного виразу в послідовності символів

regex_iterator / / ініціалізується символьною послідовністю, визначеною ітераторами та регулярним виразом. Виділення повертає частину послідовності символів, що збігається з усім регулярним виразом. Приріст знаходить наступне входження регулярного виразу в послідовності символів.

    1. Валідація



Валідація – це процес перевірки даних на відповідність різним критеріям. При розробці будь-якої програми в більшості випадків розробнику доводиться мати справу з обробкою даних, які ввів Користувач у відповідні поля на формі. З різних причин користувач може вводити некоректні дані [6].

Існує два види валідації даних, введених Користувачем.

  • клієнтська валідація;

  • серверна валідація.

Клієнтська валідація проводиться в бразуере на стороні клієнта. Вона зазвичай містить нескладні алгоритми перевірки. Це відбувається в силу того, що клієнтський код фізично не може звернутися до серверних ресурсів (наприклад, до бази даних). Тому на стороні клієнта перевіряються самі тривіальні сценарії (такі як перевірка довжини рядка, перевірка на входження в діапазон і т.д.).

Клієнтська валідація може бути відсутня в додатку. Однак, якщо сценарії валідації присутні на стороні клієнта, це може позбавити від необхідності зайвих звернень до сервера в разі невиконання простих умов перевірки [8].

Серверна валідація працює в рамках програмного коду, розміщеного на стороні сервера. Тут перевіряються всілякі випадки, в тому числі ті, які вже були перевірені на стороні клієнта. Крім тривіальних перевірок, на стороні сервера можуть працювати більш складні алгоритми. Необхідність дублювання перевірки сценаріїв, які вже були перевірені на стороні клієнта, обумовлена тим, що клієнтські перевірки можуть не спрацювати, якщо в браузері у клієнта відключено виконання сценаріїв JavaScript. Іншими словами наявність клієнтської валідації не може гарантувати успішну перевірку певних там обмежень.

3. ПРОГРАМНА РЕАЛІЗАЦІЯ



У програмі, згідно реалізовано клас користувач



Рисунок 1. Клас користувач
У даному класі описані поля

string name; - ім’я

string date; - дата реєстрації

Та створено методи:

cusers – конструктор класу.

friend void setname – дружелюбний метод для встановлення імені користувача.

friend void setdate - дружелюбний метод для встановлення дати реєстрації.

friend string getname - дружелюбний метод для виводу імені користувача.

friend string getdate - дружелюбний метод для виводу дати реєстрації.

string getinf() – метод виводу інформації.

Від класу «користувач» успадковуються класи «адміністратор» та «гість».



Рисунок 2. Адміністратор
У класі «Адміністратор» будинок описані поля

bool superadmin; – мітка суперадміну.

Та реалізовані методи

cadmin() – конструктор класу

void setsadm – встановлення мітки суперадміну.

bool getsadm() – отримання мітки суперадміну

Клас «Адміністратор» успадковується від класу «користувач», отже клас «Адміністратор» має ті ж самі поля та методи що й клас «користувач».

Також було реалізовано клас «гість».


Рисунок 3. Гість
У класі «гість» описані поля

string vDate;– час дії

Та реалізовані методи

cguest– конструктор класу

void setvdat– встановлення часу дії.

void getinfo() – вивід інформації.

Клас «гість» успадковується від класу «користувач», отже клас «гість» має ті ж самі поля та методи що й клас «користувач».

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


Рисунок 4. Валідація вводу імені користувача
Валідація вводу імені користувача дозволяє вводити лише символи латинського та українського алфавіту.

Перевірка вводу імені користувача здійснюється через регулярний вираз



Рисунок 5. регулярний вираз перевірки імені
Блок схема алгоритму представлена на рисунку 6.

Рисунок 6. Блок схема валідації вводу імені користувача
Валідація введення дати реєстрації представлена на рисунку 7.


Рисунок 7. Валідація вводу дати реєстрації
Валідація вводу дати реєстрації дозволяє вводити строку у форматах «дд/мм/гггг» або «дд.мм.гггг».

Перевірка вводу кількості поверхів споруди здійснюється через регулярний вираз



Рисунок 8. регулярний вираз перевірки кількості поверхів
Блок схема алгоритму представлена на рисунку 9.


Рисунок 9. Блок схема валідації вводу дати реєстрації
Загальна блок схема програми представлена на рисунку 10.

Головна програма містить меню для вибору завдання. Воно реалізоване за допомогою конструкції

switch (a)

{

case 1:

яка допомагає, залежно від вибору користувача виконувати ті чи інші дії.



Рисунок 10. Блок схема програми


Під час виконання курсового проекту була розроблена програма яка веде облік користувачів. У ній було реалізовано декілька класів, які мають успадкування від одного класу.

Також було реалізовано. Дружелюбні функції для вводу та відображення імені користувача.

Перевірка правильності вводу імені та дати реалізована за допомогою регулярних виразів та валідації.
скачати

© Усі права захищені
написати до нас