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

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

Войти
Регистрация
Восстановить пароль
 
Ольга1993
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 6
#1

Удалить партии товара, превышающие заданную стоимость - C++

12.03.2013, 16:30. Просмотров 682. Ответов 8
Метки нет (Все метки)

Файл содержит название, цену, количество товара. Удалить партии товара, превышающие заданную стоимость.

В С++ надо создать файл содержащий название, цену, количество товара. И удалить из него партии товара, превышающие заданную стоимость. Все это надо делать через структуры. Но я вроде так поняла. Вообще для меня это темный лес, не понимаю как работать с файлами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2013, 16:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить партии товара, превышающие заданную стоимость (C++):

Найти стоимость товара в рублях для каждого месяца текущего года, зная стоимость товара в долларах - C++
Задача с выводом результатов вычислений в цикле: 1. Стоимость товара, выраженная в долларах, неизменна и равна S. В январе курс...

Составить программу, в которой описывается структура из полей: Название товара, Цена, Размер партии товара... - C++
Составить программу, в которой описывается структура из полей: Название товара, Цена, Размер партии товара (в штуках). Организовать ввод...

Удалить из файла все элементы, у которых стоимость превышает заданную - C++
Удалить все элементы, у которых стоимость (cost) превышает заданную. Как это сделать, подскажите пожалуйста. #include...

Найти максимальную стоимость товара... - C++
6.Покупатель имеет купюры достоинством А(1), ...,А(n), а продавец - В(1), ...,В(m). Необходимо найти максимальную стоимость товара Р,...

Функция вычисляющая стоимость товара с налогом - C++
напишите функцию add_tax типа void.у неё два формальных параметра :taxRate,значение которого представляет налог с продажи в процентах ,и...

Удалить из массива все элементы превышающие его среднее значение - C++
1) Сформировать одномерный массив целых чисел, используя датчик случайных чисел. 2) Распечатать полученный массив. 3) Поменять...

8
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,127
12.03.2013, 17:53 #2
Работа с файлами
0
Ольга1993
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 6
12.03.2013, 18:57  [ТС] #3
Хотя бы что-то. Спасибо
0
Ольга1993
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 6
14.03.2013, 13:36  [ТС] #4
Подскажите пожалуйста как удалить партии товара, превышающие заданную стоимость.
И еще почему введеные мною записи не выводятся на экран ?
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
# include <iostream.h>
#include<conio.h>
#include<stdio.h>
# include <string.h>
struct spisok {char naz[20]; int cen,kol;};
int main(){
FILE *f; 
spisok sp;
int n,i;
cout << "File name? ";
char s[20];
cin.getline(s, 20);
f=fopen(s, "wb");
cout << "vvedite kolichestvo zapisei? "; cin >> n;
for (int i=1; i<=n; i++)
 { cout << "Nazvanie tovara "<<endl; cin >> sp.naz;
   cout << "Cena tovara"<<endl; cin >> sp.cen;
   cout << "Kolichestvo tovara"<<endl; cin >> sp.kol;
   fwrite(&sp, sizeof(spisok), 1, f);
 }
fclose(f);
f=fopen(s, "rb");
fread(&sp, sizeof(spisok), 1, f);
cout<<"\n file:\n";
i=1;
while (fread(&sp, sizeof(spisok), 1, f))
{cout<<i<<" "<<sp.naz<<", "<<sp.cen<<", "<<sp.kol<<endl;
i++;};
return 0;
getch ();
            }
0
XRuZzz
Антикодер
681 / 583 / 29
Регистрация: 15.09.2012
Сообщений: 2,531
14.03.2013, 15:37 #5
так как вы работаете с товарами на C++ то лучше создать класс Products и в нём уже описать атрибуты как в структуре.

Добавлено через 12 минут
вот как выглядит хорошо оформленный класс

файл Products.h
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
#ifndef PRODUCTS_H_
#define PRODUCTS_H_
 
#include <string>
 
using namespace std;
 
namespace shop
{
 
class Products
{
    public:
        Products();
        virtual ~Products();
        int getAmount() const;
        void setAmount(int amount);
        const string& getName() const;
        void setName(const string& name);
        int getPrice() const;
        void setPrice(int price);
 
    private:
        string name;
        int price;
        int amount;
};
 
}
#endif
файл Products.cpp
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
#include "Products.h"
 
namespace shop
{
 
Products::Products()
{
}
 
Products::~Products()
{
}
 
int Products::getAmount() const
{
    return amount;
}
 
void Products::setAmount(int amount)
{
    this->amount = amount;
}
 
const string& Products::getName() const
{
    return name;
}
 
void Products::setName(const string& name)
{
    this->name = name;
}
 
int Products::getPrice() const
{
    return price;
}
 
void Products::setPrice(int price)
{
    this->price = price;
}
 
}
чтоб использовать его в main нужно добавить вначале файле
C++
1
#include "Products.h"
потом в main не забыть про пространство имен
shop::Products sp;
а программа у вас выводит на одну запись меньше чем надо.

Добавлено через 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <string>
#include <sstream>
#include "Products.h"
using namespace std;
 
int getInt(string &in)
{
    int res;
    stringstream er;
    getline(cin, in);
    er << in;
    er >> res;
    return res;
}
 
int printInfo(const shop::Products &in)
{
    cout << " Product " << in.getName()     << endl;
    cout << " Price "   << in.getPrice()    << endl;
    cout << " Amount "  << in.getAmount()   << endl << endl;
    return 1;
}
 
int main()
{
    FILE *f;
    shop::Products sp;
 
    int n, i, price, amount;
    cout << "Enter file name ";
    string nameFile, nameProduct, sNum, sPrice, sAmount;
    getline(cin, nameFile);
    f = fopen(nameFile.c_str() , "wb");
    cout << "Enter amount records ";
    n = getInt(sNum);
    for (i = 1; i <= n; i++)
    {
        cout << "Product name " ;
        getline(cin, nameProduct);
        sp.setName(nameProduct);
        cout << "Price " ;
        price = getInt(sPrice);
        sp.setPrice(price);
        cout << "Product amount ";
        amount = getInt(sAmount);
        sp.setAmount(amount);
        printInfo(sp);
надеюсь остальное попытаетесь сами переписать(транслит использовать не советую)
1
Ольга1993
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 6
14.03.2013, 15:57  [ТС] #6
Спасибо конечно, но это не то что мне нужно. Мне надо сделать все через структуры. А классы мы ещё даже не проходили
0
XRuZzz
Антикодер
681 / 583 / 29
Регистрация: 15.09.2012
Сообщений: 2,531
14.03.2013, 16:37 #7
я советую делать на Fstream

Цитата Сообщение от Ольга1993 Посмотреть сообщение
Спасибо конечно, но это не то что мне нужно. Мне надо сделать все через структуры. А классы мы ещё даже не проходили
а в С++ они практически не отличаются

поэтому можете тупо заменить слово class на struct

вот более свежее решение
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
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <string>
#include <sstream>
#include <fstream>
#include "Products.h"
using namespace std;
 
int getInt(string &in)
{
    int res;
    stringstream er;
    getline(cin, in);
    er << in;
    er >> res;
    return res;
}
 
int printInfo(const shop::Products &in)
{
    cout << " Product " << in.getName()     << endl;
    cout << " Price "   << in.getPrice()    << endl;
    cout << " Amount "  << in.getAmount()   << endl << endl;
    return 1;
}
 
void  print_file(string filename)
{
    std::ifstream   ifile( filename.c_str() );
 
    std::cout   <<  filename
                <<  ":"
                <<  std::endl
                <<  ifile.rdbuf()
                <<  std::endl
                <<  std::endl;
}
 
int main()
{
    ofstream file;
    ifstream ifile;
    shop::Products sp;
    int n, i, price, amount;
    cout << "Enter file name ";
    string nameFile, nameProduct, sNum, sPrice, sAmount;
    getline(cin, nameFile);
    file.open(nameFile.c_str(), fstream::in | fstream::out | fstream::app);
    cout << "Enter amount records ";
    n = getInt(sNum);
    for (i = 1; i <= n; i++)
    {
        cout << "Product name " ;
        getline(cin, nameProduct);
        sp.setName(nameProduct);
        cout << "Price " ;
        price = getInt(sPrice);
        sp.setPrice(price);
        cout << "Product amount ";
        amount = getInt(sAmount);
        sp.setAmount(amount);
        printInfo(sp);
        file << sp.getName() << ";" << sp.getPrice() << ";" << sp.getAmount() << endl;
    }
    file.close();
    print_file(nameFile.c_str());
    return 0;
}
Добавлено через 12 минут
но товар это не структура - это класс товаров
1
Ольга1993
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 6
14.03.2013, 16:47  [ТС] #8
спасибо большое за помощь
0
XRuZzz
14.03.2013, 16:52     Удалить партии товара, превышающие заданную стоимость
  #9

Не по теме:


кнопка спасибо, находится под сообщением

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

Удалить из массива все элементы, превышающие его среднее значение более, чем на 10% - C++
Сформировать одномерный массив целых чисел используя ДСЧ. Распечатать получившийся массив. Поменять местами min и max элементы. ...

Написать подпрограмму подсчета стоимости товара с учетом скидки 3%, если стоимость больше 100грн - C++
Использовать подпрограмму для подсчете стоимости покупки десяти товаров.

Ввести количество товара и стоимость за одну штуку, вычислить скидку и вывести результат в консоль - C++
Всем привет последнее время часто читаю ваш форум решил зарегистрироваться. итак к делу: мне нужна помощь по нескольким задачам по с...

Структура с данными о проданных товарах за месяц по трем видам. Вычислить всю стоимость товара - C++
з.1 Использование структур. Создать структуру Produkcia – данные о проданных товарах за месяц по трем видам товара (порядковый номер чека...


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

Или воспользуйтесь поиском по форуму:
9
14.03.2013, 16:52
Ответ Создать тему
Опции темы

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