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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
alexb4
0 / 0 / 0
Регистрация: 28.05.2014
Сообщений: 6
#1

Создать базу данных (БД) склада компьютерного магазина - C++

28.05.2014, 06:00. Просмотров 1912. Ответов 16
Метки нет (Все метки)

Есть задание помоги интересует не выполнение а справка что можете посоветовать почитать на эту тему что нужно использовать и если можно примеры. в программировании слаб заушник( времени мало информации в инете мало. помогите!!!

Задание:

Все задания выполняются на языки c++ в среде Visual Studio. Результатом выполнения задания является работающая консольная программа, протокол, который включает в себя задание, алгоритм работы основных функций и код программы.
Задание состоит из основной задачи и дополнительных двух заданий. Без выполнения обоих частей задание не считается выполненным.

Для работы с файлами использовать функции fopen, fclose, fread, fwrite.
База данных(БД ) представляет собой массив структур. Запись представляет собой структура вида:
C++
1
2
3
4
5
6
struct Inventar
{
char Name[30];
double Cost;
char Type[30];
};
Вот сама задача:

Создать базу данных(БД) склада компьютерного магазина . БД содержит наименование запчасти, цена, тип. (Пример: "asus 7670", 4300р, видеокарта). БД должна загружаться из файла "base.txt" и сохранятся в него. Функции, которые можно выполнять с БД: удалить, добавить, изменить запись. Вывести все запчасти необходимые для сборки Системного блока компьютера в трех ценовых диапазонах: самый дорогой, средний и самый дешевый. Системный блок должен состоять из видеокарты, процесса, материнской платы, оперативной памяти, корпуса и жесткого диска.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2014, 06:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать базу данных (БД) склада компьютерного магазина (C++):

Создать базу данных склада компьютерного магазина ("base.txt") - C++
Доброго времени суток! Так уж вышло, что пытаюсь научиться писать на C++ и для одного из примеров нужно мне написать некоторую программу в...

Структуры и алгоритмы обработки данных. Создать базу данных пользователей Интернет - C++
Создать базу данных пользователей Интернет (имя пользователя, текущий счет, привилегированность пользователя, состояние подключения)...

Создать базу данных - C++
Помогите пожалуйста,написал простую базу данных,но она не идет почему-то.Где в этой проге ошибки?На разных компилятор выскакивают разные...

Создать базу данных - C++
Задали нам создать базу данных.Мне попалась тема про фильмы. 5 составляющих: имя фильма, дата выхода, кассовые сборы, актерский состав,...

Создать базу данных автомобилей - C++
Помогите написать вот этот пример. Создать базу данных(БД) Автомобилей. БД содержит марка автомобиля, год выпуска, пробег. БД должна...

Создать базу данных о спортсменах - C++
Первое задание создать базу данных 1 файл - Фамилия Имя спортсмена 2 файл - Вид спорта Создать запрос всех спортсменов занимающихся...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
solar_wind
756 / 747 / 42
Регистрация: 06.07.2009
Сообщений: 2,969
Завершенные тесты: 1
28.05.2014, 07:53 #2
Простейший вариант:
1. Определяешь структуру данных для хранения в файле. Например одна запись это одна строка. '\n' это переход на другую строку если что. В каждой строке будет название;цена;тип;
2. При запуске программы открываешь файл (fopen)
3. В цикле, который закончится когда указатель чтения дойдет до конца файла, читаешь символы и запихиваешь их в char. Для стоимости проще будет тоже создать временно char[]. Как считал строку, записываешь их в массив со структурами.
4. Выводишь на экран
5. Ну дальше придумываешь меню и функции, которые будут выполняться.
6. Перед закрытием программы очищаешь файл, проходишь по массивы структур и записываешь в файл.
alexb4
0 / 0 / 0
Регистрация: 28.05.2014
Сообщений: 6
01.06.2014, 21:36  [ТС] #3
а можно пример что и как должно быть в файле записано
solar_wind
756 / 747 / 42
Регистрация: 06.07.2009
Сообщений: 2,969
Завершенные тесты: 1
02.06.2014, 05:12 #4
alexb4, На самом деле что угодно, главное что бы смог потом это расшифровать.
Я же тебе писал пример....

название;цена;тип;
название;цена;тип;
название;цена;тип;
название;цена;тип;
название;цена;тип;
название;цена;тип;
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
02.06.2014, 07:31 #5
fopen, fclose, fread, fwrite это не С++, это С

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
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <stdio.h>
 
#pragma pack(push,1)
struct Inventar
{
char Name[30];
double Cost;
char Type[30];
};
#pragma pack(pop)
 
#define MAX_RECORDS 20
int main()
{
  Inventar db_records[MAX_RECORDS]={0};
  FILE* db_file=fopen("base.txt","rb");
  if(db_file)
  {
     int record_no=0;
     while(record_no<MAX_RECORDS && fread(&db_records[record_no],sizeof(Inventar),1,db_file))
     {
        printf("%d %s %6.2f %s\n",record_no,db_records[record_no].Name,db_records[record_no].Cost,db_records[record_no].Type);
        record_no++;
     }     
     fclose(db_file);
     db_file=0;
  }
   
  srand( (unsigned)time( NULL ) );
  int rand_rec = 0;
  for(int i=0;i<MAX_RECORDS;i++)
   rand_rec = (double)rand() / (RAND_MAX + 1) * (MAX_RECORDS);
  printf("Change record %d\n",rand_rec);
  
  strncpy(db_records[rand_rec].Name,"Test Name",sizeof(db_records[rand_rec].Name)-1);
  db_records[rand_rec].Cost = 100.2;
  strncpy(db_records[rand_rec].Type,"Test Type",sizeof(db_records[rand_rec].Type)-1);
  
  db_file=fopen("base.txt","wb");
  if(db_file)
  {
     for(int rec_no=0;rec_no<MAX_RECORDS;rec_no++)
     {
        if(!fwrite(&db_records[rec_no],sizeof(Inventar),1,db_file))
        {
           printf("Database file write error\n");
           break;
        }
     }
     fclose(db_file);
  }
  else
  {
     printf("Database file open error\n");
  }
  
}
alexb4
0 / 0 / 0
Регистрация: 28.05.2014
Сообщений: 6
02.06.2014, 21:07  [ТС] #6
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
fopen, fclose, fread, fwrite это не С++, это С
Код C
Попытался компилировать выдал такую ошибку:
Ошибка 1 error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. e:\основы программирования\база\проект1\проект1\исходный код.cpp 19 1 Проект1

добавил вот это
Код
#pragma warning(disable : 4996)
эта ошибка ушла появилась эта
"Проект1.exe" (Win32). Загружено "E:\Основы Программирования\База\Проект1\Debug\Проект1.exe". Символы загружены.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\ntdll.dll". Невозможно найти или открыть PDB-файл.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\kernel32.dll". Невозможно найти или открыть PDB-файл.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\KernelBase.dll". Невозможно найти или открыть PDB-файл.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\msvcr120d.dll". Невозможно найти или открыть PDB-файл.
Программа "[7424] Проект1.exe" завершилась с кодом 0 (0x0).

Уменя стоит VS2013 если что...

Добавлено через 9 минут
включил символы в настройках символы загрузились а ошибка примерно такая же((
"Проект1.exe" (Win32). Загружено "E:\Основы Программирования\База\Проект1\Debug\Проект1.exe". Символы загружены.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\ntdll.dll". Символы загружены.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\kernel32.dll". Символы загружены.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\KernelBase.dll". Символы загружены.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\msvcr120d.dll". Символы загружены.
Программа "[8240] Проект1.exe" завершилась с кодом 0 (0x0).
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
02.06.2014, 21:08 #7
Цитата Сообщение от alexb4 Посмотреть сообщение
эта ошибка ушла появилась эта
"Проект1.exe" (Win32). Загружено "E:\Основы Программирования\База\Проект1\Debug\Проект1.exe". Символы загружены.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\ntdll.dll". Невозможно найти или открыть PDB-файл.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\kernel32.dll". Невозможно найти или открыть PDB-файл.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\KernelBase.dll". Невозможно найти или открыть PDB-файл.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\msvcr120d.dll". Невозможно найти или открыть PDB-файл.
Программа "[7424] Проект1.exe" завершилась с кодом 0 (0x0).
и где тут ошибки
первая строка сообщает, что загружена отладочная информация
потом в трех строках тебе сообщается что отладочной информации для системных библиотек не найдено
и последняя строчка сообщает что программа успешно отработала и закрылась
Цитата Сообщение от alexb4 Посмотреть сообщение
Уменя стоит VS2013 если что
выделяешь строчку которая тебе не нравится и жмешь F1 и в справке вычитываешь что сие означает
alexb4
0 / 0 / 0
Регистрация: 28.05.2014
Сообщений: 6
02.06.2014, 21:15  [ТС] #8
Цитата Сообщение от ValeryS Посмотреть сообщение
Originally Posted by alexb4
эта ошибка ушла появилась эта
"Проект1.exe" (Win32). Загружено "E:\Основы Программирования\База\Проект1\Debug\Проект1.exe". Символы загружены.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\ntdll.dll". Невозможно найти или открыть PDB-файл.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\kernel32.dll". Невозможно найти или открыть PDB-файл.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\KernelBase.dll". Невозможно найти или открыть PDB-файл.
"Проект1.exe" (Win32). Загружено "C:\Windows\SysWOW64\msvcr120d.dll". Невозможно найти или открыть PDB-файл.
Программа "[7424] Проект1.exe" завершилась с кодом 0 (0x0).
и где тут ошибки
первая строка сообщает, что загружена отладочная информация
потом в трех строках тебе сообщается что отладочной информации для системных библиотек не найдено
и последняя строчка сообщает что программа успешно отработала и закрылась
Originally Posted by alexb4
Уменя стоит VS2013 если что
выделяешь строчку которая тебе не нравится и жмешь F1 и в справке вычитываешь что сие означает
просто вышло окно на доли секунды и закрылось оно, а работы программы не увидел как таковой((
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
02.06.2014, 21:26 #9
Цитата Сообщение от alexb4 Посмотреть сообщение
просто вышло окно на доли секунды и закрылось оно, а работы программы не увидел как таковой
запусти не F5 а ctrl+F5
вообще эта тема не раз обсуждалась
например для VC можно сделать
C++
1
system("pause");
перед return
alexb4
0 / 0 / 0
Регистрация: 28.05.2014
Сообщений: 6
03.06.2014, 06:21  [ТС] #10
uglyPinokkio, А код что вы скинули что он по идеи должен был делать? то что он записывает в файл я это понял. Это как пример? и то что файл в который записывается иформация из программы бинарный это обязательно или можно в обычном формате???
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
03.06.2014, 06:22 #11
Цитата Сообщение от alexb4 Посмотреть сообщение
просто вышло окно на доли секунды и закрылось оно, а работы программы не увидел как таковой((
Ну собственно:

1. Это не полное решение задачи, а только чтение-сохранение массива структур. Я больше 10 минут бесплатно не работаю .

Приложение загружает из файла до MAX_RECORDS записей, изменяет одну из них, выбранную случайным образом и сохраняет обратно.

2. Работа программы видна в файле base.txt. Файл бинарный, поскольку по условию это не запрещено а конвертировать double в текст было лень.

3. Называть каталоги и файлы на языке отличном от английского - моветон.
alexb4
0 / 0 / 0
Регистрация: 28.05.2014
Сообщений: 6
03.06.2014, 06:32  [ТС] #12
значит я все правильно понял в этой проге. а если не бесплатно то какова цена вопроса. Просто время у меня более менее наработки есть кое какие.
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
03.06.2014, 07:00 #13
Цитата Сообщение от alexb4 Посмотреть сообщение
значит я все правильно понял в этой проге. а если не бесплатно то какова цена вопроса. Просто время у меня более менее наработки есть кое какие.
Так там же уже пол задачи есть? Чтение - изменение - сохранение есть.
Удаление можно сделать просто через обнуление цены - при чтении не выводить записи с нулевой ценой.
Осталось сделать меню с выбором функций.
Выбор конфигурации сделать тупым перебором по цене. Для студенческой работы пойдет.
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
03.06.2014, 21:09 #14
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
в файле base.txt. Файл бинарный,
сам то понял что сказал?
расширение текстовое а файл бинарный
solar_wind
03.06.2014, 21:29     Создать базу данных (БД) склада компьютерного магазина
  #15

Не по теме:

ValeryS, Расширение это всего лишь часть названия, хотя конечно немного не логично

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2014, 21:29
Привет! Вот еще темы с ответами:

Создать базу данных автобусного парка - C++
Доброго времени суток. Задание таково: Собственно сам код полностью не требую, но есть несколько вопросов: 1) Возможна ли...

Создать базу данных в visual studio - C++
Я практически ничего не знаю о языке,но у меня задание написать БД. Что нужно знать что бы сделать простейшую БД ?Скиньте пожалуйста ссылок...

Создать базу данных «Учет прибыли предприятия» - C++
Помогите пожалуйста написать программу. Создать базу данных «Учет прибыли предприятия», содержащую следующие поля: - код продукции; ...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.06.2014, 21:29
Ответ Создать тему
Опции темы

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