Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 22.02.2021
Сообщений: 4

Программа, имитирующая кассовый аппарат (вывод чеков)

23.02.2021, 13:30. Показов 1048. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Нужна помощь с кодом.

Коротко о задаче. Мне нужно было написать программу, выводящую чеки. В дальнейшем нам надо будет работать с сортировкой данных массива, так что я не вполне понимаю, что нужно делать сейчас. Придётся еще все переделывать :/
Нужно создать структурный шаблон и динамический массив. Это я сделала. А как сделать так, чтобы выводилось ровно столько позиций, сколько должно быть? sizek считывает сумму позиций и выводит пустые, если в предыдущем чеке было больше позиций. Как это переделать, в голову не лезет.

Заранее простите, если опубликовала не так.

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
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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <string.h>
 
using namespace std;
 
 
struct check
{char data[11]; string name[50];
int price[5], kolvo[2], sum, paid, sdacha;
};
 
 
int main()
{
const int SIZE=512; int YesOrNot=1, SIZEON=0, sizek=0;
setlocale(LC_ALL, "RUS");
 
check* arr=new check[SIZE];
 
for (int i=0; i<SIZE; i++){
cout<<"Введите дату: ";
while (YesOrNot){
cin>>arr[i].data;
if (strlen(arr[i].data)!=10)
cout<<"Дата должна соответствовать формату 00.00.0000!\nВведите еще раз: ";
else
{(YesOrNot==0);
break;}
}
 
YesOrNot=1;
for(int j=0; j<SIZE; j++)
 
do{
cout<<endl;
cout<<"Введите наименование товара: ";
cin>>arr[i].name[j];
 
cout<<"Введите количество товара: ";
cin>>arr[i].kolvo[j];
 
cout<<"Введите цену за ед. товара: ";do{
cin>>arr[i].price[j];
if(arr[i].price[j]>0) {
YesOrNot=0;
sizek++;}
else cout<<"Цена не может быть отрицательной или равной нулю!\nВведите еще раз: ";
}while (YesOrNot); 
 
cout<<endl;
cout<<"Добавить еще товар?\1-да\n0-нет\nВвод: ";
cin>>YesOrNot;
cout<<endl;
arr[i].sum+=arr[i].price[j]*arr[i].kolvo[j];
if(YesOrNot==1) break;
}
 
cout<<"Сумма: ";
cout<<arr[i].sum;
cout<<endl;
 
cout<<"Сумма, внесенная покупателем: "; while (YesOrNot==0){
cin>>arr[i].paid;
if(arr[i].paid>0) break;
else {
cout<<"Сумма не может быть отрицательной или равной нулю!\nВведите еще раз: ";
YesOrNot=0;}
}
 
cout<<endl;
 
arr[i].sdacha=arr[i].paid-arr[i].sum;
 
cout<<"Сдача ";
cout<<arr[i].sdacha;
 
cout<<endl;
SIZEON++;
cout<<"Добавить еще чек?\n1-да\n0-нет\nВвод: "; cin>>YesOrNot;
if(YesOrNot==0) break;
}
cout<<endl;
 
 
cout<<"Вывести историю чеков?\n1-да\n0-нет\nВвод:";
cin>>YesOrNot;
cout<<"\n\n";
switch (YesOrNot) {
    case 1: { for (int i=0; i<SIZEON; i++){
        cout<<"-Чек "<<i<<"-\n";
        cout<<" ———————————————————————————————————————————————————————\n";
        cout<<"| Дата "<<arr[i].data<<setw(17)<<"|"<<setw(5)<<"Цена"<<setw(3)<<"|"<<
        setw(12)<<"Количество"<<setw(2)<<"|"<<endl;
        cout<<"|———————————————————————————————————————————————————————|\n";
        for (int j=0; j<sizek; j++) {
            cout<<"| "<<j<<". Наименование товара: "<<arr[i].name[j]<<setw(5)<<"|";
            cout<<setw(6)<<arr[i].price[j]<<setw(2)<<"|";
            cout<<setw(8)<<arr[i].kolvo[j]<<setw(6)<<"|"<<endl;
            cout<<"|———————————————————————————————————————————————————————|\n";
        }
    cout<<"| Сумма: "<<arr[i].sum<<setw(46)<<"|"<<endl;
    cout<<"| Внесенная покупателем сумма: "<<arr[i].paid<<setw(24)<<"|"<<endl;
    cout<<"| Сдача: "<<arr[i].sdacha<<setw(46)<<"|"<<endl;
    cout<<"|"<<setw(57)<<"|\n";
    cout<<"————————————————————————————————————————————————————————\n";
    }
    break;
    delete arr;
    }
    case 0: {
    break;
    delete arr;
    }
}
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.02.2021, 13:30
Ответы с готовыми решениями:

Qt serial port кассовый аппарат
Хочу реализовать обмен с кассовым аппаратом, протокол есть в открытом доступе. Так же есть исходники библиотеки для другого аппарата, но от...

Кассовый аппарат АМС-100Ф и Access
Как можно связать кассовый аппарат и документ в Access? Кассовый аппарат АМС-100Ф. Нужен драйвер.

Как передать значение из формы на кассовый аппарат?
кассовый аппарат как нажатием кнопки передать значение из формы на кассовый аппарат и распечатать... если есть, выложите файлы...

1
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
23.02.2021, 13:32
ЧЕБУПИТСЯ, главное в решении задачи (для меня) это научиться делать ее декомпозицию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.02.2021, 13:32
Помогаю со студенческими работами здесь

Кассовый аппарат, выдать деньги минимальными купюрами
Всем здрасте, помогите написать (Осталось всего 3 программы написать эти самые сложные оказались) В кассе имеются купюры достоинством...

Программа имитирующая автомат
Доброго времени суток, есть необходимость создания программы имитирующей какое нибудь оружие. Например у нас есть автомат калашникова, в...

Программа, имитирующая человека
Составьте программу, имитирующую человека, качающегося на качелях, с помощью видеостраниц

Программа имитирующая диалог
Напишите программу, которая имитирует диалог. Если введена фраза, заканчивающаяся вопросительным знаком, программа отвечает «Да,...

Программа, имитирующая склад
омогите решить поставленные условия. Создать структуру коиорая будет имитировать склад. Предусмоиреть такме поля :наименование...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru