You are on page 1of 17

Природо-математическа гимназия

,,Яне Сандански”

Професия “Системно програмиране”

Специалност “Системен програмист”

Курсов проект

На тема:
Здравословно хранене и здравословен начин на живот

Изготвили : Проверил :
Симона Огнянова Костадин Бабанов
Надежда Карапетрова
Ивана Бургилова Оценка: …………..

19.02.2024г.
Съдържание

Тема и цели на проекта.......................................................................................................................................


Дизайн и функционалност на формите.............................................................................................................
Анализ на елементите.........................................................................................................................................
Анализ на документацията.................................................................................................................................
Допълнителни функционалности......................................................................................................................

2
Тема и цели на проекта

Тема на проекта : Здравословно хранене и здравословен начин на живот

Проектът “Здравословно хранене и здравословен начин на живот” е


Windows forms приложение, създадено с цел да предостави ценни
ресурси и информация за подобряване на качеството на живот чрез
правилно хранене и здравословен начин на живот.

ден 1 - Реших каква да бъде темата на проекта и се поинтересувах от това


как мога да я направя
Ден 2 - Започнах да събирам информация за това какво мога да направя и
добавя към проекта, за да бъде функционално и да помага на
потребителите
ден 3 - Продължих със структурирането на формите и направих връзката
между тях чрез бутони
ден 4 - Направих кодовете за пресмятанията, които има в проекта
ден 5 - Продължих с дизайнът, като промених фоновете с подходящи снимки
и добавих подходящи снимки към всяка форма
ден 6 - Направих няколко корекции и пооправих дизайнът и допълних с
някои разяснения към формите, с цел да бъде по лесно използван от
потребителя

Дизайн и функционалност на формите

1. Начална форма

3
Описание: Това е началната форма, на която има четири бутона за отваряне
на другите форми.

2. Форма за проследяване на фитнес (FitnessTrackerForm)

Описание: Формата за проследяване на фитнес предоставя на


потребителите възможността да въвеждат своите фитнес данни, които
включват брой стъпки, преодоляно разстояние и време, прекарано в
тренировка в Textbox - ове и два Button - а, единият от които е за
резултата, а другия за затваряне на формата. Потребителите могат да
използват тази форма, за да проследят своята физическа активност и да
получат оценка за тяхната обща фитнес стойност.

Функционалности:
- Въвеждане на брой стъпки, преодоляно разстояние и време за тренировка.
- Изчисляване на стойности като индекс на телесна маса (BMI), изгорени калории
и други статистически данни.
- Възможност за запазване на фитнес данни за бъдеща справка.

4
using System.Windows.Forms;
namespace FitnessTrackerApp
{
public partial class FitnessTrackerForm : Form
{
public FitnessTrackerForm()
{
InitializeComponent();
}

private void btnCalculate_Click(object sender, EventArgs e)


{
try
{
// Извличане на въведените данни от текстовите полета
int steps = Convert.ToInt32(txtSteps.Text);
double distance = Convert.ToDouble(txtDistance.Text);
double time = Convert.ToDouble(txtTime.Text);

// Изчисляване на фитнес стойност (примерно използваме прост


алгоритъм за оценка)
double fitnessValue = CalculateFitnessValue(steps, distance, time);

// Показване на оценката в MessageBox


MessageBox.Show($"Вашата фитнес стойност е: {fitnessValue}",
"Резултат", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("Грешка при изчисляването. Моля, проверете
въведените данни.", "Грешка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}

5
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}

private double CalculateFitnessValue(int steps, double distance, double time)


{
// Примерен алгоритъм за оценка на фитнес стойност
double fitnessValue = (steps * 0.01) + (distance * 0.1) + (time * 0.05);
return fitnessValue;
}
}
}

3. Форма за планиране на диета (DietPlannerForm)

Описание: Формата за планиране на диета предоставя на потребителите


средство за съставяне на хранителен режим, който да отговаря на
техните хранителни предпочитания и диетични цели. Потребителите
могат да въведат информация за закуска, обяд и вечеря, като формата им
помага да поддържат баланс в хранителния си режим. Във формата има 3
TextBox – ове, в които се въвежда информация за закуска, обяд и вечеря
и два Button - а, единият от които е за резултата, а другия за затваряне на
формата.

Функционалности:

6
- Въвеждане на хранителни предпочитания за закуска, обяд и вечеря.
- Възможност за съставяне на балансиран хранителен режим с подходящи
количества на храните.
- Запазване на диетични предпочитания за бъдеща справка.

using System;
using System.Windows.Forms;

namespace DietPlannerApp
{
public partial class DietPlannerForm : Form
{
// Променливи за съхранение на предпочитанията на потребителя
private string breakfastPreferences;
private string lunchPreferences;
private string dinnerPreferences;

public DietPlannerForm()
{
InitializeComponent();
}

private void btnSavePreferences_Click(object sender, EventArgs e)


{
// Запазване на предпочитанията на потребителя
breakfastPreferences = txtBreakfast.Text;
lunchPreferences = txtLunch.Text;
dinnerPreferences = txtDinner.Text;

MessageBox.Show("Диетичните предпочитания бяха запазени


успешно!", "Запазване", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}

7
private void btnPlanDiet_Click(object sender, EventArgs e)
{
// Проверка дали потребителят е въвел предпочитания
if (string.IsNullOrEmpty(breakfastPreferences) ||
string.IsNullOrEmpty(lunchPreferences) ||
string.IsNullOrEmpty(dinnerPreferences))
{
MessageBox.Show("Моля, въведете предпочитания за закуска, обяд
и вечеря.", "Грешка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}

// Изчисляване на примерен балансиран хранителен режим


// В този пример, просто се комбинират предпочитанията в един
стринг
string balancedDiet = $"Закуска: {breakfastPreferences}\nОбяд:
{lunchPreferences}\nВечеря: {dinnerPreferences}";

// Показване на балансирания хранителен режим в нов прозорец


MessageBox.Show(balancedDiet, "Балансиран хранителен режим",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}

private void btnClose_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

4. Форма за БМИ калкулатор (BMI Calculator Form)

8
Описание: Формата за БМИ калкулатор предоставя на потребителите
възможността да изчислят индекса на телесна маса (BMI) чрез въвеждане
на тегло и височина в TextBox - ове. BMI калкулаторът помага на
потребителите да получат представа за тяхното текущо здравословно
състояние спрямо теглото и височината с един Button, който извежда
резултата и още един, който затваря формата.

Функционалности:
- Въвеждане на тегло в килограми и височина в метри.
- Изчисляване на индекс на телесна маса (BMI) и предоставяне на оценка
за категорията на теглото.

using System;
using System.Windows.Forms;

namespace BMICalculatorApp
{
public partial class BMICalculatorForm : Form
{
public BMICalculatorForm()
{
InitializeComponent();
}

private void btnCalculateBMI_Click(object sender, EventArgs e)


{
try

9
{
// Извличане на въведените данни за тегло и височина
double weight = Convert.ToDouble(txtWeight.Text);
double height = Convert.ToDouble(txtHeight.Text);

// Изчисляване на BMI
double bmi = CalculateBMI(weight, height);

// Оценка на категорията на теглото


string category = GetWeightCategory(bmi);

// Показване на резултата в MessageBox


MessageBox.Show($"Вашият BMI е: {bmi:F2}\nКатегория на
теглото: {category}", "Резултат", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("Грешка при изчисляването. Моля, проверете
въведените данни.", "Грешка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}

private void btnClose_Click(object sender, EventArgs e)


{
this.Close();
}

private double CalculateBMI(double weight, double height)


{
return weight / (height * height);
}

10
private string GetWeightCategory(double bmi)
{
if (bmi < 18.5)
return "Поднормено тегло";
else if (bmi < 24.9)
return "Нормално тегло";
else if (bmi < 29.9)
return "Наднормено тегло";
else
return "Затлъстяване";
}
}
}

5. Форма съвети за здравословен начин на живот (HealthyTipsForm)

Описание: Формата с съвети за здравословен начин на живот предоставя на


потребителите съвети и препоръки за подобряване на тяхното
здравословно състояние и начин на живот. Потребителите могат да
получат съвети по всякакви аспекти на здравословния начин на живот.
Формата съдържа един Button, който като резултат дава отделни съвети и
препоръки за по-добър начин на живот,a съветите се изписват в label
един по един.

Функционалности:

11
- Генериране на случайни съвети за подобряване на здравето и начина на
живот.
- Подпомагане на потребителите с полезни и информативни препоръки за
здравословен начин на живот.

using System;
using System.Windows.Forms;

namespace HealthTipsApp
{
public partial class HealthTipsForm : Form
{
private string[] healthTips =
{
"Правилното хранене е основен елемент за подобряване на здравето.
Употребявайте разнообразни и натурални храни.",
"Физическата активност е важна за поддържане на тялото в добра
форма. Препоръчително е да се упражнявате редовно.",
"Достатъчният сън е ключов за здравето и енергията ви през целия
ден. Старайте се да спите поне 7-8 часа на нощ.",
"Отказването от лоши навици като цигарите и надморската височина
е стъпка към по-доброто здраве.",
"Поддържането на психическото здраве се отразява положително и на
физическото ви здраве. Разговаряйте с приятели и семейство."
};

public HealthTipsForm()
{
InitializeComponent();
}

private void btnGetTip_Click(object sender, EventArgs e)


{
// Генериране на случаен съвет

12
Random rand = new Random();
int tipIndex = rand.Next(healthTips.Length);
string randomTip = healthTips[tipIndex];

// Показване на съвета в Label


lblTip.Text = randomTip;
}
}}

Анализ на елементите

1. Организация на елементите според идеята на приложението


- Елементите са ясно организирани според функционалностите на
приложението. Всяка форма има своята цел и предоставя съответните
функционалности на потребителя. Ясно е написано кой бутон към къде
води. Например, формата за проследяване на фитнес активност е
разделена на текстови полета за въвеждане на данни и бутони за
изчисляване на резултатите и затваряне на формата. Добре съчетаване на
цветовете на текста спрямо картинката - особено оранжевото - много
добре се откроява.
- Забележка: Fitness Tracker е по-добре всичко да е на български или на
английски. По-добре ще е за потребителя, защото не всеки знае
английски.

1. Икономичност на създадените контроли:


● В документацията са използвани само необходимите контроли за
изпълнение на функционалностите на приложението. Не се наблюдава
излишно натрупване на контроли или претоварване на интерфейса с
излишни елементи. Всяка форма има минимален брой контроли, които са
достатъчни за изпълнението на съответните задачи.
● Забележка: дори на “HealthyTipsForm” формата е малко празна трябва
да се измислят още контроли, които да се добавят, може някакво
описание да се добави там.
2. Лесен и интуитивен интерфейс:

13
● Интерфейсът на всеки компонент от приложението е лесен за разбиране
и използване. Всички контроли са ясно разположени и лесно достъпни за
потребителя. Например, бутоните за изчисляване на резултати и
затваряне на формата са ясно маркирани и лесни за навигация.
● Забележка: В някои форми трябва по-подробно обяснение какво точно
прави формата, както е в ИТМ- формата, примерно в FitnessTrackerForm
- няма как клиента да знае какво означава това, какво се прави там, само
въвежда някакви данни, пък какво ще изведе след това - не се знае.
Label1 трябва да се замини с информацията, която ще получи
потребителя
3. Подходящ дизайн:
● Документацията е създадена с подходящ дизайн, който е подходящ за
темата на приложението - здравословно хранене и начин на живот.
Цветовете и изображенията са подбрани така, че да съответстват на
здравословния и активен начин на живот. Например, във формата за
проследяване на фитнес активност са използвани свежи и енергични
цветове, които стимулират активността.
● Забележка: Всяка форма е с различен background, според нас трябва на
всяка форма да са с еднакъв, защото това е нещото, което потребителя
първо вижда и не трябва да го отблъсква, но ние не го променихме,
защото ще развалим проекта.

4. Размер, шрифт и разположение на менютата и командите:


● Всички менюта и команди са от един и същ размер, шрифт и
разположение. Това осигурява еднаква визуална и функционална
структура на приложението и прави навигацията по него по-лесна и
последователна за потребителя.
● Забележка: На ИТМ - цвета на шрифта и шрифтовете са различни,
трябва да се направят да са еднакви. Във всяка форма има “label1” -
според нас трябва да се напише някакъв текст, а не да стои така, защото
потребителя не знае какво означава.

14
Анализ на документацията

1. Организация на информацията:
● Информацията е организирана в четири секции, всяка секция представя
различен компонент на приложението: Начална форма, Форма за
проследяване на фитнес, Форма за планиране на диета и Форма за БМИ
калкулатор. Това позволява на потребителя бързо да се ориентира и да
намери необходимата информация за всеки компонент от приложението.
● Забележка: Допълнителни пояснения на функционалностите - В някои
секции може да се добавят пояснения или примери за конкретни
ситуации, в които функционалностите на приложението могат да бъдат
полезни. Това би помогнало на потребителите да разберат по-добре как
приложението може да им помогне в техния дневен живот.

2. Ясно описание на функционалностите:


● Всяка секция включва ясно описание на целта и функционалностите на
съответния компонент на приложението. Например, секцията за Формата
за проследяване на фитнес представя как потребителите могат да въведат
данни за своята фитнес активност и какви резултати могат да очакват.

3. Представяне на функционалностите с кодови примери:


● Всяка секция включва кодови примери, които илюстрират как да се
използва съответния компонент на приложението. Това е полезно за
разработчиците, които искат да внедрят съответната функционалност в
своите проекти.
● Забележки: Включването на допълнителни примери за употреба на
приложението би било полезно за потребителите, особено за тези, които
не са запознати със съответните технологии или концепции.

4. Използване на визуални елементи:


● Документацията включва използването на визуални елементи като
заглавия, списъци и кодови блокове, които правят информацията по-
лесна за възприемане и разбиране.

15
5. Отстраняване на възможни грешки:
● Документацията е добре структурирана и не се наблюдават очевидни
грешки или пропуски в информацията. Това допринася за яснотата и
пълнотата на предоставената информация.
● Забележка: форматирането на текста може да бъде подобрено за
постигане на по-голяма яснота и четимост. Например, може да се
използват надписи или фонови цветове, за да се отделят различните
секции или елементи на документацията.

Допълнителни функционалности

1. Промяна в дизайна на формата “FitnesTrackerForm”


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

2. Добавяне на повече функционалност във формата “DietPlannerForm”


- в проверката за дневен прием се добавят повече видове храна, която е
препоръчително да се приема.
- Промяна в дизайна - по-голям шрифт на компонентите, още един етикет
за извеждане на резултата.

3. Добавяне на повече функционалност във формата “DietPlannerForm”


- в проверката за дневен прием се добавят повече видове храна, която е
препоръчително да се приема.
- Промяна в дизайна - по-голям шрифт на компонентите, още един етикет
за извеждане на резултата

4. Формата “BMICalculatorForm”
- променихме формулата и методите така, че да работи правилно.
- Направихме шрифтът да бъде еднакъв за цялата форма и да преобладава
един цвят.

5. Формата “DietPlannerForm”

16
- извеждаше справка за въведените данни (дали човек се храни правилно
или не).
- Ние добавихме още едно поле, в което да се въвежда деня на диетата и
цялата информация се запазва в база данни, която предварително
проектирахме.

6. Създадохме нова форма “GetDataForUsers”


- формата взима данните от базите данни и ги извежда в listBox. Данните
съдържат дните на хранителния план и консумираните продукти.

7. Направихме всички форми да се стартират в центъра на екрана, а не на случайна


позиция.

17

You might also like