Вопрос Кто может написать такую программу на Паскале? СРОЧНО.

Регистрация
30 Ноя 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
Заполнить динамический массив (кол-во запросить у пользователя)данных о блюдах в ресторане. Отсортировать его по ценам. Написать функцию, позволяющую извлекать информацию по интересующему блюду и помещать ее в файл.
 
вот похожая могу прислать в адрес всю
uses crt;
type
toy=record
name: string[20];
price: integer;
a,b: byte;
end;
procedure vvod;
var
f: file of toy;
n,i: integer;
t:toy;
begin
writeln('создание файла');
assign(f,'igr.dat');
rewrite(f);
write('Ввести количество записей ');
readln(n);
for i:=1 to n do
with t do begin
writeln('Информация по ',i,'- й игрушке');
write(' Наименование: ');
readln(name);
write(' цена в рублях: ');
readln(price);
write(' Нижняя и верхняя возрастная граница через пробел : ');
readln(a,b);
write(f,t);
end;
close(f);
end;
 
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
#include <algorithm>

struct product
{
std::string name;
int price;
friend std::eek:stream& operator<< (std::eek:stream& ost, product const& rhs)
{
ost << rhs.name << " " << rhs.price << '\n';
return ost;
}
};

struct node
{
node(product const& rhs) : data(rhs), next(nullptr){}
product data;
node* next;
};

// однонаправленный список
class list
{
public:
list() : root(nullptr){}
void add(product const& rhs) // добавление в список
{
if (!root)
{
root = new node(rhs);
}
else
{
node* tmp = root;
while (tmp->data.name != rhs.name && tmp->next)
{
tmp = tmp->next;
}
if (tmp->data.name != rhs.name)
{
tmp->next = new node(rhs);
}
}
}
void print() const // печать списка
{
node* tmp = root;
while (tmp)
{
std::cout << tmp->data;
tmp = tmp->next;
}
}
node* find(std::string const& name) const // поиск в списке единицы товара
{
node* ret = root;
while (ret && ret->data.name != name)
{
ret = ret->next;
}
return ret;
}
void dump(std::string const& name) const // сброс в файл единицы товара
{
node* found = find(name);
if (found)
{
std::eek:fstream ofs("out.txt");
ofs << found->data;

ofs.close();
}
else
{
std::cout << "product not found\n";
}
}
~list()
{
node* tmp = root;
while (root)
{
root = root->next;
delete tmp;
tmp = root;
}
}
private:
node* root;
};

int main()
{
int n;
std::cout << "n: ";
std::cin >> n;
std::cin.ignore(1);
product* par = new product[n];
for (int i = 0; i < n; ++i) // заполнение массива
{
std::cout << "name: ";
std::getline(std::cin, par.name);
std::cout << "price: ";
std::cin >> par.price;
std::cin.ignore(1);
}
std::sort(par, par + n, [](auto& a, auto& b) {return a.price < b.price; });
list lst;
for (int i = 0; i < n; ++i)// заполнение списка
{
lst.add(par);
}
delete[] par;
par = nullptr;

lst.print();
lst.dump("name 1");


return 0;
}
 
Назад
Сверху