0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 85
1

Создать программу с записями о товарах

05.03.2014, 12:24. Показов 1290. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать программу с записями о товарах со следующими реквизитами: наименование товара (тип string), тип товара (тип string), количество (тип integer), цена за единицу (тип integer). Удалить нужное количество записей из указанного места файла.
как это будет выглядеть через процедуры?

Добавлено через 16 часов 24 минуты
up
никто не поможет?(

Добавлено через 10 часов 13 минут
всё ещё прошу помощи

Добавлено через 14 часов 5 минут
хотя бы объясните что значит "Удалить нужное количество записей из указанного места файла"
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2014, 12:24
Ответы с готовыми решениями:

Создать массив записей о товарах
Создать массив записей . Запись включает следующую информацию - название товара , цену , дату...

Создать класс, содержащий информацию о товарах
Обучаюсь. В чем проблема подскажите... ссылка - код

Создать массив структур, содержащий сведения о товарах
С клавиатуры в массив структур ввести N записей с данными про товары, которые поступили на склад:...

Создать файл, содержащий сведения о товарах в магазине
Привет ребят. Подсобите с задание, а то понятия не имею как делать! Создать файл, содержащий ...

4
905 / 232 / 100
Регистрация: 21.10.2012
Сообщений: 567
05.03.2014, 13:50 2
Лучший ответ Сообщение было отмечено passkrin как решение

Решение

Задаете тип данных как запись. Например:
Pascal
1
2
3
4
5
6
7
Type
       Tovar    = record
                  NaimTov  : string;
                  TypeTov  : string;
                  KolTov   : integer;
                  CenTov   : integer;
        end;
Задаете массив данных и файловую переменную типа Вашей записи. Например:
Pascal
1
2
Var   Mass : array [1..20] of Tovar;
      f    : file of Tovar;
Создаете и Открываете файл типа Вашей записи. Например:
Для записи.
Pascal
1
2
3
4
5
Assign(F,FileName);rewrite(f);
 
...   ...   ...
 
Close(F);
Для чтения.
Pascal
1
2
3
4
5
Assign(F,FileName);Reset(F);
 
...   ...   ...
 
Close(F);
Где FileName имя файла. Например:
Pascal
1
FileName:='TovarBas.dat'
Записываете в этот файл данные. Например:
Вместо

... ... ...

делаете так:
Pascal
1
2
3
4
5
6
7
8
9
10
Mass[1].NaimTov:='Колбаса';
Mass[1].TypeTov:='еда';
Mass[1].KolTov  :=1000;
Mass[1].CenTov  := 100;
write(f,Mass[1]);
 
Mass[2].NaimTov:='Сыр';
Mass[2].TypeTov:='еда';
{...   ...   ...
и т.д.}
значения после знаков равно вводите каждый раз новые

или в цикле:
Pascal
1
2
3
4
5
6
7
8
for i:=1 to 20 do
 begin
   write('Наименование: ',i:2);readln(Mass[i].NaimTov);
   write('         Тип: ',i:2);readln(Mass[i].TypeTov);
   write('  Количество: ',i:2);readln(Mass[i].KolTov);
   write('        Цена: ',i:2);readln(Mass[i].CenTov);
   write(f,Mass[i]);
 end;

После того, как создали файл с данными можете его обрабатывать.
Цитата Сообщение от passkrin Посмотреть сообщение
"Удалить нужное количество записей из указанного места файла"
Есть варианты. Например:
Открываете два файла.
  1. На чтение (это Ваш файл данных)
  2. На запись (это новый файл, в который Вы перепишете только те записи, которые нужны, а ненужные пропустите.
и т.д.
1
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 85
05.03.2014, 17:34  [ТС] 3
всё равно не получается(
можно полный код?



Добавлено через 15 секунд
Pascal
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
Type
       Tovar    = record
                  NaimTov  : string;
                  TypeTov  : string;
                  KolTov   : integer;
                  CenTov   : integer;
 
        end;
Var   Mass : array [1..10] of Tovar;
      f    : file of Tovar;
      i    : integer;
      FileName: string;
      procedure tovars;
begin
Assign(F, 'tovar.bat');rewrite(f);
for i:= 1 to 10 do
 begin
   write('naimenovanie ',i,' : ');readln( Mass[i].NaimTov);
   write('         tip ',i,' : ');readln( Mass[i].TypeTov);
   write('  koli4estvo ',i,' : ');readln( Mass[i].KolTov);
   write('        cena ',i,' : ');readln( Mass[i].CenTov);
   write( f, Mass[i]);
 end;
Close(F);
end;
procedure
begin
tovars;
end.
добавьте сюда пожалуйста "Удалить нужное количество записей из указанного места файла". вообще не понимаю
0
905 / 232 / 100
Регистрация: 21.10.2012
Сообщений: 567
06.03.2014, 04:00 4
Попробуйте такой вариант:
Pascal
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
uses    crt;
const   n = 10;
Type
       Tovar    = record
                  NaimTov  : string[25];
                  TypeTov  : string[25];
                  KolTov   : Integer;
                  CenTov   : Integer;
 
        end;
Var   Mass     : array [1..n] of Tovar;
      f,fo     : file of Tovar;
      i,kol    : integer;
      FileName,
      FileNameO: string;
      ch       : char;
 
Function  FileExists(FileName : String) : Boolean;
Var       F : File;
Begin
 {$I-}Assign(F, FileName);Reset(F);Close(F);{$I+}
 FileExists := (IOResult = 0) And (FileName <> '');
End;  { FileExists }
 
procedure Menu;
begin
     gotoxy(1,1);
     writeln('Выберите пункт меню:');
     writeln('1. Создать файл данных');
     writeln('2. Удалить записи');
     writeln('3. Просмотр данных');
     writeln('4. Закончить работу');
     write  ('Ответ:');
end;
 
procedure tovars;
begin
     Assign(F, FileName);rewrite(f);
     for i:= 1 to n do
      begin
        write('naimenovanie ',i,' : ');readln( Mass[i].NaimTov);
        if Mass[i].NaimTov='' then break;
        write('         tip ',i,' : ');readln( Mass[i].TypeTov);
        if Mass[i].TypeTov='' then break;
        repeat
        {$I-}write('  koli4estvo ',i,' : ');readln( Mass[i].KolTov);{$I+}
          if IOResult<>0 then continue;
        until (Mass[i].KolTov>0)and(Mass[i].KolTov<=maxint);
          if Mass[i].KolTov=0 then break;
        repeat
        {$I-}write('        cena ',i,' : ');readln( Mass[i].CenTov);{$I+}
          if IOResult <>0 then continue;
        until (Mass[i].CenTov>0)and(Mass[i].CenTov<=maxint);
          if Mass[i].CenTov=0 then break;
          write( f, Mass[i]);
      end;
      Close(F);clrscr;
end;
 
procedure Readers;
var       k : integer;
begin
     kol:=0;
     if FileExists(FileName) then
      begin
        Assign(F, FileName);reset(f);k:=0;gotoxy(1,10);
      end
                             else
      begin
        writeln;writeln('Файл ',FileName,' отсутствует');exit;
      end;
     if not eof(f) then
      begin
       while (not eof(f))and(k<=n) do
        begin
          inc(k);read(f,mass[k]);
        end;
        kol:=k;
       end
                   else
       writeln('Файл ',FileName,' пуст');
     Close(F);
end;
 
procedure Vyvod;
var       k,i : integer;
begin
     Readers;
     if kol>0 then
      begin
       clrscr;
       gotoxy(1,10);
       writeln('Нм|     Наименование товара   |                Тип         | кол-во| цена ');
       writeln('--|---------------------------|----------------------------|-------|------');
       for k:=1 to kol do
        begin
          write(k:2,'|');
          write  (mass[k].NaimTov);
          for i:=0 to 25-length(mass[k].NaimTov) do write(' ');write(' | ');
          write  (mass[k].TypeTov);
          for i:=0 to 25-length(mass[k].TypeTov) do write(' ');write(' | ');
          write  (mass[k].KolTov:5);write(' | ');
          writeln(mass[k].CenTov:5);
        end;
      end;
end;
 
procedure DelTovars;
var       i,k : integer;
          t   : tovar;
begin
 readers;
 if kol>0 then
  begin
   repeat
    repeat
    gotoxy(1,23);clreol;write('Номер записи для удаления(0-выход): ');
    {$I-}
      read(k);
      if ioresult<>0 then continue;
      if k=0 then
       begin
         clrscr;readers;exit;
       end;
    until (k>0)and(k<=kol);{$I+}
    gotoxy(1,23);clreol;
    Assign(F ,FileName );reset(f)  ;
    Assign(Fo,FileNameO);rewrite(fo);
    for i:=1 to kol do
     begin
      read(f,t);
      if i<>k then write(fo,t);
     end;
    close(f);erase(f);
    rename(fo,FileName);close(fo);
    vyvod;
   until (k=0)or(kol=0);
 end;
   clrscr;readers;menu;
end;
 
BEGIN
    clrscr;
    FileName :='tovars.dat';FileNameO:='tovdel.dat';
    repeat
     Menu;
     ch:=readkey;
     case ch of
      #0   : begin
              ch:=readkey;continue;
             end;
      '1'  : begin
              clrscr;tovars;
             end;
      '2'  : begin
              clrscr;Vyvod;DelTovars;
             end;
      '3'  : begin
              Vyvod;
             end;
     end;
    until ch = '4';
END.
При создании файла данных:
  1. если вводится наименование или тип пустые (т.е. просто нажать <Enter>), то ввод прекращается.
  2. если вводится количество или цена, то при вводе 0 (нуля) - ввод прекращается
В файл записываются только полностью введенные записи, т.е. наименование и тип - непустые,
и количество и цена больше нуля.
0
905 / 232 / 100
Регистрация: 21.10.2012
Сообщений: 567
06.03.2014, 04:31 5
Это файлик с данными на 10 товаров для проверки: TOVARs.rar
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2014, 04:31
Помогаю со студенческими работами здесь

Создать файл, содержащий сведения о товарах в магазине
Создать файл, содержащий сведения о товарах в магазине: наименование товара, изготовитель, год...

Создать массив записей, содержащий сведения об экспортируемых товарах
Создать массив записей, содержащий сведения об экспортируемых товарах. Каждая запись содержит поля...

Работа с файлами. (Создать набор данных,содержащий сведения о товарах)
Добрый вечер всем!Огромная просьба,помогите в решении задачи с помощью объявления в программе...

Создать типизированный файл tovar.dat, содержащий сведения о товарах
Создать типизированный файл tovar.dat, содержащий сведения о товарах: - название; -...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru