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

Вывести: список сотрудников, возраст которых не менее K лет и не превышает L лет

17.05.2016, 16:22. Показов 4221. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
20.Дан список N сотрудников с указанием фамилии, точной даты рождения, стажа работы и заработной платы. Вывести: список сотрудников, возраст которых не менее K лет и не превышает L лет, упорядоченный по алфавиту фамилий (в полном формате, с указанием всех данных по каждому сотруднику).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.05.2016, 16:22
Ответы с готовыми решениями:

Вывести фамилии всех сотрудников, чей стаж работы не менее 3-х лет и возраст не более 25 лет
DELPHI HEILP Народ, спасайте, я тупой , как валенок в программировании , но надо сделать такую...

Вывести на экран сотрудников мужского пола возраст которых выше 45 лет
Дан список сотрудников некой организации, вывести на экран сотрудников мужского пола возраст...

Работа с файлами: найти сотрудников, чей возраст старше 45 или стаж превышает 20 лет
работа с файлами поместить в файл n записей, содержащих сведения о сотрудниках: ФИО, год...

Вывести список работников, стаж работы которых превышает заданное число лет
Работник: ФИО, должность, стаж, Зарплата. Вывести: а) список работников, стаж работы которых...

10
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
18.05.2016, 09:14 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Программа проверена
Задайте число N (Оно в программе), а также числа K и L
(они тоже в программе).
программа считывает файл 1.txt, обрабатывает его и
заносит данные в файл 2.txt.

Вид записи в файле 1.txt:
Иванов, 11.05.1980, 22, 40000
Петров, (и тд. )
примечание:
Запятые ОБЯЗАТЕЛЬНЫ. Число пробелов любое...

QBasic/QuickBASIC
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
CLS
DIM God AS STRING
DIM Go0 AS STRING
CONST N = 3
 
TYPE A
   NM AS STRING * 20
   DR AS STRING * 10
   ST AS INTEGER
   ZP AS SINGLE
END TYPE
DIM M(1 TO N) AS A
 
OPEN "1.txt" FOR INPUT AS #1
OPEN "2.txt" FOR OUTPUT AS #2
 
K = 20
L = 40
Go0 = MID$(DATE$, 7, 4)
 
FOR i = 1 TO N
   INPUT #1, M(i).NM, M(i).DR, M(i).ST, M(i).ZP
NEXT i
 
FOR i = 1 TO N - 1
FOR j = i TO N
   IF M(i).NM > M(j).NM THEN
      SWAP M(i).NM, M(j).NM
      SWAP M(i).DR, M(j).DR
      SWAP M(i).ST, M(j).ST
      SWAP M(i).ZP, M(j).ZP
   END IF
NEXT j, i
 
FOR i = 1 TO N
   God = MID$(M(i).DR, 7, 4)
   x = VAL(Go0) - VAL(God)
   IF x >= K AND x <= L THEN
      PRINT #2, M(i).NM, M(i).DR, M(i).ST, M(i).ZP
   END IF
NEXT i
 
END
0
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 18
20.05.2016, 13:20  [ТС] 3
geh, программа не работает. Когда надо вводить фамилии?
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
20.05.2016, 13:28 4
укыневноаглпдр
Вы задали величину N?
У меня в программе N=3 (это когда я производил отладку программы)
Поставьте свое число, например N=20 или 100
0
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 18
23.05.2016, 14:45  [ТС] 5
geh, добрый день, можете описать ход решение в форме комментария в программе, для защиты?)
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
23.05.2016, 17:18 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Строки 6-11.
Вводится пользовательский тип данных
TYPE A * *
NM AS STRING * 20 - (фамилия и инициалы. Отведено 20 байт)
DR AS STRING * 10 - (дата рождения 10 байт) * *
ST AS INTEGER - (стаж)
ZP AS SINGLE - (заработная плата)
END TYPE
Строка 12
Объявляется массив М() для хранения наших данных
Строки 14-15
Открываются два файла. Один для чтения. Другой для записи.
Строки 17-18
K = 20 (минимальный возраст)
L = 40 (максимальный возраст)
Строка 19
Go0 = MID$(DATE$, 7, 4) - программа считывает на компьютере
текущую дату (функция DATE$), формат типа 22-05-2016.
Но поскольку день и месяц нам не нужны, то программа из этой
даты вытаскивает лишь год (последние 4 символа)
Строки 21-23
Программа считывает строки из файла #1 и заполняет
массив М()
Строки 25-33
Сортировка данных по алфавиту
Строки 35-41
1. Определяется год рождения (переменная God)
2. А также возраст x = VAL(Go0) - VAL(God)
(Go0 - текущий год (2016))
примечание: вообще говоря его можно было и не вычислять
а сразу ввести в программу. Но я показал как его можно вычислить.
3.
Происходит запись в файл. Вот строки кода
IF x >= K AND x <= L THEN * * *
PRINT #2, M(i).NM, M(i).DR, M(i).ST, M(i).ZP * *
END IF
В целом все. Будут вопросы - задавайте
Человек, который молчит. (Не спрашивает)
Либо знает все, либо - ничего...
0
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 18
24.05.2016, 15:00  [ТС] 7
geh, а можете написать так, чтобы при запуске программы надо было все данные ввести с клавиатуры?
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
24.05.2016, 15:26 8
укыневноаглпдр
Да. Это можно сделать. Но вы устанете вводить
эти данные с клавиатуры, либо собьетесь.
Понимаете, бейсик в этом случае заставит все вводить
с самого начала...
0
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 18
24.05.2016, 18:03  [ТС] 9
geh, да, я понимаю, просто это нужно для защиты работы...
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
24.05.2016, 18:46 10
1. Удалите в программе строку 14. Открывать файл для
чтения нам больше не понадобится.
2. Удалите строки 21-23. Там как раз идет чтение из файла.
а на их место поставьте прилагаемый ниже код. Это ручной
ввод данных.
3. Все. Больше ничего менять не надо.

QBasic/QuickBASIC
1
2
3
4
5
6
FOR i = 1 TO N
   INPUT "NAME"; M(i).NM
   INPUT "DEN POSHDENIA"; M(i).DR
   INPUT "STASH"; M(i).ST
   INPUT "ZARPLATA"; M(i).ZP
NEXT i
0
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 18
25.05.2016, 19:34  [ТС] 11
geh, огромное спасибо
0
25.05.2016, 19:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2016, 19:34
Помогаю со студенческими работами здесь

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

Список абитуриентов, сдавших вступительные экзамены на оценки 4 и 5 и возраст менее 20 лет
Привет всем!Помогите сделать такую вот задачку: написать с помощью файлового типа данных список...

Дан список сотрудников: фамилия, возраст, должность, оклад. Оставить в списке только тех, кто не достиг возраста 60 лет.
Пожалуйста помогите решить задачи в паскаль вот одна из них. Дан список сотрудников: фамилия,...

Найти среднюю стоимость автомобилей, "возраст" которых превышает 6 лет
Известны стоимость и &quot;возраст&quot; каждой из 20-ти моделей легковых автомобилей. Найти среднюю...

Напечатать список сотрудников, стаж работы которых более 25 лет
Прошу помогите разобрать задачу 1. Создать набор данных, в котором записи имеют структуру: ОТДЕЛ,...

Вывести информацию о спортсменах, возраст которых не достиг 18 лет
// KR_6.cpp: определяет точку входа для консольного приложения. // Информация об участниках...


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

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

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