Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ян_
0 / 0 / 0
Регистрация: 24.05.2011
Сообщений: 9
#1

Поэтапное написание задачи для всех кому интересно (VC2010Express(console) - C++

27.04.2014, 21:47. Просмотров 216. Ответов 0
Метки нет (Все метки)

Я пишу работу по учёбе и буду постепенно выкладывать что я сделал, как для критика так и для советов) буду всем вам признателен за помощь)
Итак, начнем !
Задание:
Кликните здесь для просмотра всего текста

1 . Заказ блюд в ресторане
Требования к программному обеспечению
Функциональные требования :
1 . Управление ингредиентами
1.1 . Возможность добавлять ингредиент
1.2 . Возможность удалять ингредиент (в случае если он не входит в состав какого-то блюда )
1.3 . Возможность изменить ингредиент
1.4 . Возможность просмотреть перечень всех ингредиентов
2 . Управление блюдами
2.1 . Возможность добавлять блюдо
2.2 . Возможность удалять блюдо
2.3 . Возможность изменять блюдо
2.3.1 . Возможность добавлять и удалять ингредиенты блюда
2.3.2 . Возможность изменять название блюда
2.3.3 . Возможность изменять цену блюда
2.3.4 . Возможность изменять время приготовления блюда
2.4 . Возможность просмотреть информацию о конкретном блюдо
3 . Управление заказами
3.1 . Возможность добавить заказ
3.2 . Возможность удалить заказ
3.3 . Возможность изменить заказ
3.3.1 . изменить количество блюд
3.3.2 . изменить общую стоимость
3.3.3 . изменить номер столика данного заказа
3.4 . Возможность просмотреть информацию о заказе
Нефункциональные требования :
1 . Требования к внешнему интерфейсу
1.1 . Внешний интерфейс должен быть командным
1.2 . Применение должно быть консольным
2 . Данные должны храниться в файлах после выхода из программы.
3 . Система должна обеспечить правильность введенных данных
4 . Логическая структура данных
4.1 . Информационный объект блюдо

Итак первым пунктом у меня стояло создания ингредиента,точнее списка ингредиентов.Для этой цели мне послужил класс CIngridients. Я решил для начала напихать разных ингредиенитов в файл а потом посредством конструктора оттуда тыркать в list(условие задания), и отображать. При добавлении нового ингредиента мы его добавляем в файл и добавляем в list вот код конструктора который вышел
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
CIngridients::CIngridients()
{
    cout<<"chose ingridients to add in dish - \n";
    FIngridients.open("Ingridients.txt",ios::in);
    int i  = 0;
    int IngrNumb;
    string h1;
    while(getline(FIngridients, h1))//считаем все строки и понита ради начнем с 0
    {
        cout<<i<<"."<<h1<<"\n";
        i++;
    }
    i = 0;
    cin>>IngrNumb;
    while(getline(FIngridients, h1))//считаем все строки и понита ради начнем с 0
    {
        if (i==IngrNumb) 
        {
            DishIngridients.push_back(h1);
 
        }
        i++;
    }
 
 
}
а вот код всей программы(там много заготовок под будушие функции, так что не судите строго)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#include <exception>
#include <stdio.h>
#include <windows.h>
#include <string>//если поставить библиотеку String.h тогда cin;getline посылают на йух
#include <list>
#include <cstdlib>
#include <cstdio>
#include <fstream>
//2 бибилиотеки для файлов
//#include <conio.h>
using namespace std;
fstream FIngridients; //Тут будет доступ к файлику со всеми ингридиентами(попробую реализорвать так что-бы не пропускало одинаковые)
fstream FDishes; //а тут тоже самое но с блюдами
fstream FOrders; //a тут тоже самое с заказами
fstream FSystem; //системный(буфер, временное хранилище и так далее)
 
 
class CIngridients
{
private:
public:
    list<string> DishIngridients;
    string IngridientName;
    void AddNewIngridient(string);//не по этому!!!вводить ингридиент с клавиатуры(если такого ингридиента нету тогда предложить создать его и вызвать конструктор)
    CIngridients(void);
    ~CIngridients();
//list<string>  ChangeIngridient();//как бы меняем в листе названий одно из них
void    ShowAllIngridients();
};
CIngridients::CIngridients()
{
    cout<<"chose ingridients to add in dish - \n";
    FIngridients.open("Ingridients.txt",ios::in);
    int i  = 0;
    int IngrNumb;
    string h1;
    while(getline(FIngridients, h1))//считаем все строки и понита ради начнем с 0
    {
        cout<<i<<"."<<h1<<"\n";
        i++;
    }
    i = 0;
    cin>>IngrNumb;
    while(getline(FIngridients, h1))//считаем все строки и понита ради начнем с 0
    {
        if (i==IngrNumb) 
        {
            DishIngridients.push_back(h1);
 
        }
        i++;
    }
 
 
}
CIngridients::~CIngridients(void)
{}
//list<string>  Ingridients::ChangeIngridient() пока что нечего возвращать
//{}
void    CIngridients::ShowAllIngridients()
{}
void CIngridients::AddNewIngridient(string NameIngridients)
{
 
        cout<<"Enter name of the Ingridient - \n";
    getline(cin,IngridientName);
    FIngridients.open("Ingridients.txt",ios::app);
    FIngridients<<IngridientName<<"\n";
    FIngridients.close();
    cout<<"Ingridient created. Ingridient's name - "<<IngridientName<<"\n";
    //+ добавить в лист ингридиент(если его нету в списке предложеных)
 
}
class Dish
{
private:
public:
};
class Order
{
private:
public:
};
 
int main()
{   
    SetConsoleCP (1251);
    SetConsoleOutputCP(1251);
    //FIngridients = fopen("Ingridients.txt","r+");
    CIngridients a;
    system ("pause");
    return 0;
}
Пишите отзывы критику вопросы помогу чем смогу)

Добавлено через 29 минут
Возникла вот такая вот проблема
list iterator not decrementable
происходит при попытке вывести последний элемент листа
cout<<DishIngridients.back();

Добавлено через 11 минут
проблемма была изза того что я не закрыл файл после прочтения его до конца и в лист ничего не заносилось а потом пытался из пустоты вытянуть номер последнего елемента) вот как выглядит кусок кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
CIngridients::CIngridients()
{
    cout<<"chose ingridients to add in dish - \n";
    FIngridients.open("Ingridients.txt",ios::in);
    int i  = 0;
    int IngrNumb;
    string h1;
    while(getline(FIngridients, h1))//считаем все строки и понита ради начнем с 0
    {
        cout<<i<<"."<<h1<<"\n";
        i++;
    }
    FIngridients.close();
    i = 0;
    FIngridients.open("Ingridients.txt",ios::in);
    cin>>IngrNumb;
    while(getline(FIngridients, h1))//считаем все строки и понита ради начнем с 0
    {
        if (i==IngrNumb) 
        {
            DishIngridients.push_back(h1);
        }
        i++;
    }
    FIngridients.close();
    cout<<DishIngridients.front()<<"\n";
 
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2014, 21:47     Поэтапное написание задачи для всех кому интересно (VC2010Express(console)
Посмотрите здесь:

Кому интересно. Покер - C++
Вообщем, давно ничего не кодил и на днях накатал немного говно кода на тему Покера. Кому будет интересно, посмотрите и предложите если...

Кому интересно поломать голову - C++
Привет! Сейчас на работе думал с ума схожу - есть код, который (с виду) работать не должен, но он работает :) В итоге я разобрался...

Бинарные деревья ! кому интересно , сюда!;) - C++
задание : Описать процедуру или функцию которая : а) печатает запись, встречающуюся в дереве один раз б) печатает запись,...

прога странно работает=) кому интересно покопать? - C++
написал прогу по подсчету crc-16 (сама функция с википедии).. так вот... когда скармливаю файл (текстовыми кормлю) на несоклько килобайт (1...

Шифрование "Лозунговым методом" (кому интересно) - C++
Вот работа была сделал -&gt; делюсь:) #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #include...

задачи c++ кому не трудно решите - C++
Matrix25. Дана матрица размера M × N. Найти номер ее строки с наибольшей суммой элементов и вывести данный номер, а также значение...

задачи c++ кому не трудно решите - C++
Matrix14. Дана квадратная матрица A порядка M. Начиная с элемента A1,1, вы- вести ее элементы следующим образом («уголками»): все...

кому какие логические задачи спрашивали во время интервью? - C++
поделитесь опытом пожалуйста?

В чем интересно загвоздка???интересно разобраться! - C++
Помогите разобраться в чем дело? Switch постоянно зацикливается и бесконечный цикл получается если вводить символы вместо цифр как от этого...

В заданной последовательности найти сумму всех целых чисел кратных 5 (для решения задачи использовать while) - C++
Введена последовательность n, найти сумму всех целых чисел этой последовательности кратных 5

Для тех, кому непонятна рекурсия - C++
Всем привет! Два дня долбился долбился и никак не мог понять, как же работает рекурсия, заходил в гугл, смотрел и выходил, потому что...

Параметр для консольной строки - шрифт Lucida Console - C++
Начал писать программу (программы) в которых будет записываться информация в файл на русском языке, но для этого должен быть установлен...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru