Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2013, 09:30   #1
dgulij
Пользователь
 
Регистрация: 02.03.2013
Сообщений: 14
По умолчанию Разработать программу (Базу Данных) на С++

– «Обработка данных, хранящихся в файлах».
При разработке программы применить технологию модульного программирования и технологию нисходящего проектирования. Логически законченные фрагменты оформить в виде подпрограмм, которым все необходимые данные передаются через список параметров. Использования глобальных переменных следует избегать.
В программе предусмотреть меню, содержащее команды для проверки всех возможных действий с заданным в конкретном варианте объектом. Необходимо предусмотреть контроль ошибок пользователя при вводе данных
Условие задания
Создать приложение «Реализованный товар», включающую следующую информацию: номер магазина, номер секции, номер чека, наименование товара, артикул товара, цена товара, дата продажи и т.д. Разработать удобный пользовательский интерфейс и организовать добавление, удаление, поиск и корректировку записей.
Выяснить самый доходный магазин, товар, секцию, самый доходный месяц и т. д. Дать графическую интерпретацию полученным результатам в виде графиков, круговых диаграмм и гистограмм.
Помогите пожалуйста(((((заранее большое спасибо!!!!!
dgulij вне форума Ответить с цитированием
Старый 14.03.2013, 11:51   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Помогите пожалуйста(((((заранее большое спасибо!!!!!
Какого рода помощь Вам нужна?
Обратите внимание, что задание чётко делится на две части: создать простенькую файловую БД и создать приложение, её использующее. Переходить ко второй части, не сделав первую, настоятельно не рекомендую.
Первая часть:
1) Придумать, как хранить таблицу в файле (файлах). Придумать, как хранить таблицу в памяти. Написать код, записывающий данные в файл и читающий их из файла. Удостовериться, что он работает (просматривая сами файлы и проверяя содержимое структур отладчиком).
2) Придумать, как хранить в памяти упорядоченное подмножество элементов таблицы и реализовать этот способ. Сделать вывод данных из памяти в консоль, убедиться в его работоспособности. Проверить работоспособность действий "вывести только строки, соответствующие условию", "вывести строки, упорядочив их по полю".
3) Придумать и реализовать прочие действия с подмножеством элементов таблицы (выбор максимума, сумма значений заданного поля и т.д.). Продумать поведение в случае некорректного запроса ("сложить текстовые поля").
4) Придумать интерфейс, которым может воспользоваться сторонний код для определения таблицы и условий манипуляции с ней (выборка по условию, выборка в порядке, нахождение суммы).

Вторая часть:
1) Продумать структуру таблиц. Создать эти таблицы.
2) Придумать пользовательский интерфейс. Реализовать его по пунктам, используя интерфейсы БД из пункта 4 первой части.
3) Profit!
Abstraction вне форума Ответить с цитированием
Старый 14.03.2013, 19:32   #3
dgulij
Пользователь
 
Регистрация: 02.03.2013
Сообщений: 14
По умолчанию

я вообще не понимаю как создать эту базу данных(((((((((((((
dgulij вне форума Ответить с цитированием
Старый 14.03.2013, 21:55   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

То есть, Вам дали задание из серии "Это всякие железяки, их можно соединять винтиками, закрутив отверткой. Еще бывают гайки и шестеренки. Задание: постройте синхрофазотрон." ((C) bash.im)? Сочувствую. Но даже какой-то одной толковой книжки, которой было бы достаточно, назвать не могу. По сравнению с заданиями вида "удалить в строке группу символов между круглыми скобками" это находится много выше по шкале сложности, подразумевает принятие собственных решений об алгоритмах, структурах данных, создание собственных компонент и продумывание их интерфейсов, придумывание собственного файлового формата... На этом уровне уже нет одного-единственного "правильного" решения, которое мог бы подсказать любой желающий. Вот (примерно и вчерне) как я бы делал обозначенный мной пункт 1 в части записи в файл:
Код:
enum FieldType{
  INTEGER,
  REAL,
  TEXT,
  MONEY
};

class Field {
public:
  virtual std::wstring ToString(void)const=0;
  virtual void Store(std::ofstream& stream)const=0;  
};

class IntegerField : public Field{
private:
  int m_value;
public:
  std::wstring ToString(void)const{
    std::wstring ret;
    std::wstringstream s(ret);
    s << m_value;
    return ret;
  }
  virtual void Store(std::ofstream& stream)const{
    stream.write(&m_value, sizeof(int));
  }
  Field* GetFromStream(std::ifstream& stream){
    IntegerField* ret = new IntegerField;
    stream.read(&ret->m_value, sizeof(int));
    return ret;
  }
  IntegerField(int value) : m_value(value) {}
};

class Record {
private:
  std::vector<Field*> m_data;
public:
  void Store(std::ofstream& stream)const{
    for(std::vector<Field*>::iterator i = m_data.begin(); i!=m_data.end(); ++i)
      (*i)->Store(stream);
  }

  ~Record(){
    for(std::vector<Field*>::iterator i = m_data.begin(); i!=m_data.end(); ++i)
      delete *i;
  }
  friend owstream& operator<<(owstream& s, const Record& r);
};

owstream& operator<<(owstream& s, const Record& r){
  for(std::vector<Field*>::iterator i = m_data.begin(); i!=m_data.end(); ++i){
    s << (*i)->ToString() << '\t';
  }
}

class RecordSet{
private:
  std::list<Record> m_data;
public:
  void Store(std::ofstream& stream)const{
    for(std::vector<Record>::iterator i = m_data.begin(); i!=m_data.end(); ++i)
      i->Store(stream);
  }
};
Abstraction вне форума Ответить с цитированием
Старый 16.03.2013, 21:33   #5
dgulij
Пользователь
 
Регистрация: 02.03.2013
Сообщений: 14
По умолчанию

спасибо за помощь....а можно мне подробно программку с заголовком и коментариями Пожалуйста если вам не сложно.Заранее большое спасибо!!!
dgulij вне форума Ответить с цитированием
Старый 18.03.2013, 11:20   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
а можно мне подробно программку с заголовком и коментариями
Нельзя. Приведённый текст - неточный, черновой набросок примерно в 1/20 нужного Вам кода, а то и ещё меньше. В основном он был призван проиллюстрировать уровень требуемого владения языком - все использованные выше конструкции должны быть понятны Вам без комментариев.
Если у Вас ситуация "вообще не понимаю" - у Вас проблемы. Большие. Требуется изучить на достаточном уровне C++, основы проектирования программ, сносно владеть используемой средой разработки. Как уже сказано, я даже не могу привести одну конкретную книгу, которую достаточно было бы изучить, чтобы подняться до решения этой задачи с демонстрируемого Вами уровня. Советую обратиться к выдавшему Вам это задание за рекомендациями.
Abstraction вне форума Ответить с цитированием
Старый 18.03.2013, 14:51   #7
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
...Как уже сказано, я даже не могу привести одну конкретную книгу, которую достаточно было бы изучить, чтобы подняться до решения этой задачи с демонстрируемого Вами уровня... .
Есть версия, ТС не собирается читать книгу, хочет взять решение, распечатать и сдать

Цитата:
Код:
enum FieldType{
  INTEGER,
  REAL,
  TEXT,
  MONEY
};
Есть версия, что препод ожидает увидеть лишь 1 тип записей, увидеть одну вот такую большую структуру: "номер магазина, номер секции, номер чека, наименование товара, артикул товара, цена товара, дата продажи и т.д", включающую сразу все поля.
одну небольшую функцию, считывающую с файла список структур, одну - изменяющую что-то там и одну функцию, записывающую все назад в файл. Судя по рекомендациям к задаче там больше не ждут )
rrrFer вне форума Ответить с цитированием
Старый 18.03.2013, 15:30   #8
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Есть версия, что препод ожидает увидеть лишь 1 тип записей, увидеть одну вот такую большую структуру: "номер магазина, номер секции, номер чека, наименование товара, артикул товара, цена товара, дата продажи и т.д", включающую сразу все поля.
"Цена товара" - "артикул товара" - "номер чека" - "номер магазина"? Без нормализации на каком-то уровне (хотя да, это может быть уровень приложения, а не БД) он убьётся забивать даже минимальный объём данных.
Цитата:
Есть версия, ТС не собирается читать книгу, хочет взять решение, распечатать и сдать
Да я понимаю, судя по прошлым его темам. Но лично я решение писать не буду, это отнюдь не задача на пять минут. И, судя опять же по прошлым темам, я понимаю, что ТС попал(а).
Какое счастье, что это не моя проблема...
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль Записи разработать базу данных qsccsq Паскаль, Turbo Pascal, PascalABC.NET 3 08.03.2011 10:59
Необходимо разработать базу данных наличия материалов для сайта PTO Фриланс 3 12.01.2011 18:31
разработать базу данных для автоматизации учетной информации склада Student_17 Фриланс 6 27.11.2010 14:10
Требуется разработать базу данных. vereck Фриланс 2 02.03.2010 21:50
нужно разработать базу данных в акссес Gelya86 Фриланс 9 28.02.2008 11:23