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

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

Восстановить пароль Регистрация
 
Ян_
0 / 0 / 0
Регистрация: 24.05.2011
Сообщений: 9
27.04.2014, 21:47     Поэтапное написание задачи для всех кому интересно (VC2010Express(console) #1
Я пишу работу по учёбе и буду постепенно выкладывать что я сделал, как для критика так и для советов) буду всем вам признателен за помощь)
Итак, начнем !
Задание:
Кликните здесь для просмотра всего текста

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++ кому не трудно решите
задачи c++ кому не трудно решите C++
C++ Бинарные деревья ! кому интересно , сюда!;)
Шифрование "Лозунговым методом" (кому интересно) C++
C++ кому какие логические задачи спрашивали во время интервью?
C++ Кому интересно поломать голову

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

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

Текущее время: 09:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru