Цель и задачи практической работы
Разработка программного обеспечения для ресторана.
- анализ предметной области;
- выбор языка программирования и среды разработки;
- построение алгоритма решения задачи;
- разработка и тестирование ПО.
Скриншоты из отчета


Содержание архива
- Исходный код программы на языке программирования C#
- Мануалы по настройки программы и базы данных
- Текстовая часть работы, отчет (29 страниц).
Содержание отчета
- Содержание
-
Введение
-
1.3 Выбор среды программирования
- 2 Разработка программного обеспечения
-
2.1 Реализация даталогической модели данных в СУБД PostgreSQL
-
2.2 Разработка запросов к базе данных
-
2.3 Разработка модулей приложения баз данных
- Список литературы
Функционал программы
Программа имеет несколько модулей:
- Модуль клиент;
- Модуль повара;
- Модуль официанта
Последовательность их работы:
Клиент делает заказ, потом официанту необходимо подтвердить его, отметив галочку в программе, далее заказ уходит на кухню повару.
Тот в свою очередь готовит блюдо и подтверждает в программе что оно готово.
Официант увидев готовность блюда в программе, забирает заказ и уносит его клиенту.
Также в модуле повара можно добавлять и убирать наличие ингредиентов, что изменяет меню клиента и не позволяет заказать блюда, которые нельзя приготовить,
также эта функция показывает повару какие рецепты ему доступны.
Фрагмент программного кода
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Npgsql;
//Класс для обработки модуля клиента
namespace Ресторан.classes
{
public class Client
{
public int id { get; set; }
public string namemenu { get; set; }
public double massa { get; set; }
public decimal buy { get; set; }
public Client() { }
public Client (int id, string namemenu, double massa, decimal buy)
{
this.id = id;
this.namemenu = namemenu;
this.massa = massa;
this.buy = buy;
}
public static List<Client> Fetch(string conn)
{
using (NpgsqlConnection con = new NpgsqlConnection(conn))
{
con.Open();
string Q = "";
Q += " create temp table Peace on commit drop as ";
Q += " select distinct recipe.namemenu as name, ingredient.checks as checks ";
Q += " from recipe join ingredient on recipe.foodname=ingredient.idц322 ";
Q += " join menu on recipe.namemenu=menu.id ; ";
Q += " create temp table PeaceOfPeace on commit drop as ";
Q += " select p.name as pname ";
Q += " from (select name from Peace where Peace.checks = 'true') as p ";
Q += " where p.name not in (select name from Peace where Peace.checks = 'false'); ";
Q += " select id, namemenu, massa, buy ";
Q += "";
NpgsqlCommand npgc = new NpgsqlCommand("select id, namemenu, massa, buy from(select p.name from (select distinct recipe.namemenu as name from recipe join ingredient on recipe.foodname=ingredient.id join menu on recipe.namemenu=menu.id where ingredient.checks = 'true') as p where p.name not in (select distinct recipe.namemenu as name from recipe join ingredient on recipe.foodname=ingredient.id join menu on recipe.namemenu=menu.id where ingredient.checks = 'false')) as p join menu on p.name = menu.id ", con);
NpgsqlDataReader reader = npgc.ExecuteReader();
List<classes.Client> list = new List<classes.Client>();
if (reader.HasRows)
{
while (reader.Read())
list.Add(new classes.Client
{
id = reader.GetInt32(0),
namemenu = reader.GetString(1),
massa = reader.GetDouble(2),
buy = reader.GetDecimal(3),
});
}
reader.Close();
return list;
}
}
}
}
Скриншот архива с проектом

Пояснения по запуску программы
Для успешного запуска программы необходимо установить СУБД PostgreSQL далее зайти в pgAdmin и в запроснике по порядку выполнить действия описанные в мануале для базы данных.
Если необходимо редактировать программу нужно установить Visual Studio и через нее открыть файл с расширением .sln

Телеграм
-