Изменение данных о товарах

Написать программу, в которой хранятся данные о товарах, их количестве и цене. При запуске программы эта информация выводится на экран. Далее пользователю должно предлагаться вводить номера товаров и их новое количество. Изменение данных должно завершаться, если пользователь вводит специально оговоренный символ (например, 0). После этого все данные о товарах должны снова выводиться на экран.

  1. В программе должна быть структура с полями для хранения названия товара, его количества и цены. После этого создается массив структур. Он заполняется внутри программы.
  2. После этого в цикле прохода по элементам массива структур надо вывести значения всех полей каждого элемента-структуры.
  3. Создать бесконечный цикл. В нем спрашивать у пользователя номер товара. Если был введен 0, то прерывать цикл оператором break. В остальных случаях запрашивать новое количество товара и записывать в соответствующее поле товара под указанным номером это новое значение.
  4. В конце программы снова вывести всю информацию о товарах.
Pascal


type
goods = record
good: string[50];
qty: byte;
price: word;
end;
var
arr: array[1..5] of goods;
i,n: byte;
begin
with arr[1] do begin good:='Core-i3-4330'; qty:=10; price:=4600 end;
with arr[2] do begin good:='Core i5-4670K'; qty:=5; price:=8600 end;
with arr[3] do begin good:='AMD FX-6300'; qty:=7; price:=3600 end;
with arr[4] do begin good:='Pentium G3220'; qty:=11; price:=2200 end;
with arr[5] do begin good:='Core i5-3450'; qty:=9; price:=6500 end;

for i:=1 to 5 do
writeln(i,') ',arr[i].good,', ',arr[i].qty,', ',arr[i].price);

while true do begin
write('№: '); readln(i);
if i <> 0 then begin
write('Количество: '); readln(n);
arr[i].qty := n;
end else break;
end;

for i:=1 to 5 do
writeln(i,') ',arr[i].good,', ',arr[i].qty,', ',arr[i].price);
end.



1) Core-i3-4330, 10, 4600
2) Core i5-4670K, 5, 8600
3) AMD FX-6300, 7, 3600
4) Pentium G3220, 11, 2200
5) Core i5-3450, 9, 6500
№: 1
Количество: 15
№: 3
Количество: 10
№: 4
Количество: 7
№: 0
1) Core-i3-4330, 15, 4600
2) Core i5-4670K, 5, 8600
3) AMD FX-6300, 10, 3600
4) Pentium G3220, 7, 2200
5) Core i5-3450, 9, 6500
Язык Си


#include < stdio.h>

struct goods {
char good[50];
unsigned short qty;
unsigned int price;
};

main() {
struct goods arr[5] = {
"Core-i3-4330", 9, 4500,
"Core i5-4670K", 3, 8500,
"AMD FX-6300", 6, 3700,
"Pentium G3220", 8, 2100,
"Core i5-3450", 5, 6400 };
struct goods *a;
int i, n;
for (i=0, a=arr; i<5; i++, a++)
printf("%d) %s, %d, %d\n", i+1, a->good, a->qty, a->price);
while (1) {
printf("№: ");
scanf("%d", &i);
if (i == 0) break;
else {
printf("Количество: ");
scanf("%d", &n);
a = arr+i-1;
a->qty = n;
}
}
for (i=0, a=arr; i<5; i++, a++)
printf("%d) %s, %d, %d\n", i+1, a->good, a->qty, a->price);
}
Python


goods = {'1': ['Core-i3-4330', 9, 4500],
'2': ['Core i5-4670K', 3, 8500],
'3': ['AMD FX-6300', 6, 3700],
'4': ['Pentium G3220', 8, 2100],
'5': ['Core i5-3450', 5, 6400]}

for i in goods:
print("%s) %s - %d шт. по %d руб" % (i, goods[i][0], goods[i][1], goods[i][2]))

while 1:
n = input('№: ')
if n != '0':
qty = int(input('Количество: '))
goods[n][1] = qty
else:
break

for i in goods:
print("%s) %s - %d шт. по %d руб" % (i, goods[i][0], goods[i][1], goods[i][2]))

Поскольку в словаре нет порядка (это неупорядоченная структура в отличие от списка), то потребовалось ввести еще одно поле - номер товара.

Оцените статью
Добавить комментарий