Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
4 / 4 / 3
Регистрация: 19.04.2017
Сообщений: 66

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

21.03.2018, 17:58. Показов 1782. Ответов 5

Студворк — интернет-сервис помощи студентам
Добрый день!
Задание.
Помогите пожалуйста, как решать, натолкните на мысль.
Составить программу, позволяющую организовать в виде очереди набор данных динамической структуры о страховой компании. Каждый элемент данных дол-жен содержать фамилию клиента, свершившееся бедствие (если бедствия не случилось, то «–»), сумму застрахованного имущества (вводятся из файла), плату за страховку (вычисляется в программе как 10% от застрахованной суммы) и вы-платы за свершившееся бедствие (0, если бедствие «–», или застрахованную сумму в остальных случаях).
Программа должна:
1. Считать из файла D:\WORK\Strah.txt информацию о первых N клиентах;
2. Вывести на экран полученный список в виде таблицы;
3. Запросить число клиентов K, которых нужно удалить из очереди, и удалить из набора данных соответствующее число элементов. Если K N, то удалить весь список. Вывести обновлённый список на экран;
4. Добавить одну запись вводом с клавиатуры и вывести список на экран;
5. Для обновлённого списка вычислить и вывести на экран прибыль страховой компании (сумма всех плат за страховку минус сумма выплат).
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.03.2018, 17:58
Ответы с готовыми решениями:

Программа, позволяющую организовать в виде стека набор данных динамической структуры о пациентах больницы
Добрый день! :) Задание. Помогите пожалуйста, как решать, натолкните на мысль. Составить программу, позволяющую организовать в виде...

База данных страховой компании
Добрый день! Помогите пожалуйста с задачей. Заранее благодарна за любую помощь

Класс как тип шаблонного класса динамической структуры данных(очереди)
Добрый день! Чтобы класс можно было применять как тип шаблонного класса очереди myQueue, написанного мной, что нужно учесть? Дело в том,...

5
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
22.03.2018, 06:34
Цитата Сообщение от Parkervans Посмотреть сообщение
Считать из файла D:\WORK\Strah.txt информацию о первых N клиентах;
Чёт не получается ;–)
Говорит, что нет у меня такого файла… И даже каталога такого на диске D: нету!
0
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
22.03.2018, 17:08

Не по теме:

Цитата Сообщение от JuriiMW Посмотреть сообщение
И даже каталога такого на диске D: нету!
У меня вообще и диска D нету!



Добавлено через 3 минуты
Цитата Сообщение от Parkervans Посмотреть сообщение
Считать из файла D:\WORK\Strah.txt информацию о первых N клиентах;
Как считать данные с файла организовав их в записи
0
4 / 4 / 3
Регистрация: 19.04.2017
Сообщений: 66
22.03.2018, 19:14  [ТС]
Файл не загрузился, вот он, а путь не важен.
Вложения
Тип файла: txt Strax.txt (293 байт, 18 просмотров)
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
23.03.2018, 06:23
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Если не ошибаюсь, то как-то так:
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
const fName = 'C:\Документы\Downloads\Strax.txt';
 
type
  tQueueItem = class
    F : String[20]; /// Фамилия
    d : String[20]; /// Бедствие
    s : Integer;    /// Сумма
    x : tQueueItem; /// Следующий в очереди
    
    constructor (F, d : String; s : Integer);
    begin
      Self.F := F; Self.d := d; Self.s := s; Self.x := nil;
    end;
    
    procedure print := WriteLnFormat('{0,-20} | {1,-16} | {2}', F, d, s);
  end;
  
type
  tQueue = class
    Head, Tail : tQueueItem;
    Count : Integer;
    
    constructor;
    begin
      Head := nil; Tail := nil; Count := 0;
    end;
    
    procedure Add(NewItem : tQueueItem);
    begin
      if Count = 0 then begin Head := NewItem; Tail := Head; end
      else begin Tail.x := NewItem; Tail := Tail.x; end;
      Count += 1;
    end;
    
    procedure Add(s : String);
    begin
      try
        var v := s.ToWords('|').Select(z->z.Trim).ToArray;
        if v.Count<>3 then Exit;
        var NewItem := New tQueueItem(v[0], v[1], StrToInt(v[2]));
        Add(NewItem);
      except
        Exit;
      end;
    end;
    
    procedure Print;
    begin
      if Count = 0 then begin WriteLn('Пусто.'); Exit; end else WriteLn('В очереди элементов ' + Count);
      WriteLn('       Фамилия       | Страховой случай | Сумма страховки');
      WriteLn('-'*60);
      var cur := Head;
      while cur <> nil do begin cur.Print; cur := cur.x; end;
    end;
    
    procedure Delete(n : Integer);
    begin
      while (n > 0) and (Count > 0) do (Head, n, Count) := (Head.x, n - 1, Count - 1);
      if Count = 0 then Tail := nil;
    end;
    
    procedure ReadItem;
    begin
      WriteLn('Введите информацию о страховке:');
      var NewItem := New tQueueItem(ReadLnString('Фамилия:'), ReadLnString('Бедствие или -:'), ReadLnInteger('Сумма:'));
      Add(NewItem);
    end;
    
    procedure Amount;
    begin
      if Count = 0 then begin WriteLn('Пусто.'); Exit; end;
      var(cur,res) := (Head,0);
      while cur <> nil do begin if cur.d = '-' then res += cur.s else res -= cur.s*10; cur := cur.x; end;
      WriteLn('Прибыль страховой компании состаляет ' + res);
    end;
  end;
 
begin
  var Queue := New tQueue; WriteLn('Очередь создана.');
  foreach var s in ReadLines(fName) do Queue.Add(s); WriteLn('Очередь заполнена из файла.');
  Queue.Print; WriteLn;
  Queue.Delete(ReadLnInteger('Число удаляемых из очереди элементов: K =')); WriteLn;
  Queue.Print; WriteLn;
  Queue.ReadItem; WriteLn;
  Queue.Print; WriteLn;
  Queue.Amount;
end.
1
4 / 4 / 3
Регистрация: 19.04.2017
Сообщений: 66
23.03.2018, 13:26  [ТС]
Большое спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.03.2018, 13:26
Помогаю со студенческими работами здесь

Выбор базы данных для страховой компании
Здравствуйте! Возник такой вопрос: Имеется база данных в DOS системе. Из нее получаем ежедневно CSV файл отчетов, который позже...

ООП.Разработать структуру элементов данных класса в виде динамической структуры данных
Здравствуйте, получил задание, но немного недопонимаю как это сделать, с чего начать. Помогите пожалст или объясните образно как сделать, а...

Организовать информационный массив для хранения данных в виде заданной структуры
Помогите пожалуйста с заданием. Информация о билетах на поезд содержит номер поезда, направление следования, дату, время отправления и...

Организовать информационный массив для хранения данных в виде заданной структуры и заполнить его данными с клавиатуры
Информация о сотрудниках предприятия состоит из фамилии, имени, отчества, должности, заработной платы, даты рождения, даты трудоустройства...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru