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
| :-dynamic(dokument/5).
dokument('Должностная инструкция','Внутренний','23.09.2013','Шаляпин К.Н.',5433).
dokument('Положение','Внутренний','03.12.2013','Логинов И.А.',5464).
dokument('Заявление','Внутренний','12.04.2013','Кузнецов А.А.',3005).
dokument('Устав','Внутренний','10.11.2012','Шаляпин К.Н.',1456).
dokument('Штатное расписание','Внутренний','30.05.2013','Логинов И.А.',2958).
dokument('Запрос','Входящий','17.04.2013','Шкалин С.Д.',3684).
dokument('Справка','Исходящий','24.11.2013','Карев А.А.',2874).
dokument('Платежное поручение','Исходящий','12.04.2013','Марфин И.А.',3015).
dokument('Заявление','Внутренний','15.01.2013','Баринова Е.Н.',1456).
dokument('Справка','Внутренний','30.05.2013','Шмаль М.И.',2938).
dokument('Запрос','Входящий','25.03.2013','Комаров С.Д.',3684).
dokument('Справка','Исходящий','28.03.2013','Баранова А.А.',2274).
dokument('Заявление','Внутренний','29.06.2013','Зарицкий А.А.',3205).
dokument('Протокол','Внутренний','12.09.2013','Шлепко К.Н.',1456).
dokument('Служебная записка','Внутренний','30.07.2013','Ракита Т.П.',2950).
dokument('Запрос','Исходящий','19.05.2013','Фазирин К.И.',3694).
dokument('Справка','Исходящий','11.11.2013','Корольков Д.А.',1874).
dokument('Заявление','Внутренний','12.04.2013','Юрьева Н.А.',3505).
dokument('Протокол','Внутренний','07.07.2013','Белый Н.Н.',1456).
dokument('Накладная','Внутренний','30.11.2013','Доронин Я.П.',2353).
dokument('Запрос','Входящий','13.02.2013','Пузо М.И.',3632).
dokument('Протокол','Исходящий','29.11.2013','Чернов Н.И.',1274).
dokument('Заявление','Внутренний','23.04.2013','Сокуренко А.В.',6005).
dokument('Постановление','Исходящий','17.11.2012','Фазлеев Ш.Н.',1036).
dokument('Служебная записка','Внутренний','30.12.2013','Топоров М.Г.',2298).
dokument('Запрос','Входящий','08.04.2013','Килинкин А.В.',0534).
dokument('Справка','Исходящий','12.11.2013','Зверев А.С.',1284).
dokument('Накладная','Внутренний','20.06.2013','Тазуев А.Х.',0228).
dokument('Запрос','Входящий','03.08.2013','Олегов О.О.',3134).
dokument('Заявление','Исходящий','11.11.2013','Башмаков Е.А.',8834).
menu:-write('1.Добавление новой записи в справочник.'),nl,
write('2.Изменение существующей записи в справочнике.'),nl,
write('3.Удаление записи из справочника.'),nl,
write('4.Получение информации о документах на заданную дату.'),nl,
write('5.Получение информации о документы, исполнителем которых является заданный сотрудник.'),nl,
write('6.Упорядочить список документов по названию с помощью сортировки Шелла.'),nl,
write('7.Просмотр БД.'),nl,
write('8.Запись базы данных на диск.'),nl,
write('9.Выход из проги.'),nl,nl,
write('Ваш выбор:'),
read(C),process(C).
process(1):-write('Введите название документа: '),read(Name),nl,
write('Введите тип документа: '),read(Type),nl,
write('Введите дату создания: '),read(Date),nl,
write('Введите Фамилию и инициалы исполнтеля: '),read(Fio),nl,
write('Введите идентификационный номер документа: '),read(Nomer),nl,
asserta(dokument(Name,Type,Date,Fio,Nomer)),nl,
write('Запись добавлена!'),nl,
write('Нажмите Enter для продолжения'),nl,
get_char(_),menu.
process(2):-write('Введите идентификационный номер: '),read(Nomer),nl,
write('Введите новые фамилию и инициалы исполнителя: '),read(Fio),nl,
retract(dokument(Name,Type,Date,_,Nomer)),
assert(dokument(Name,Type,Date,Fio,Nomer)),
write('Запись изменена!'),nl,
write('Нажмите Enter для продолжения'),nl,
get_char(_),menu,!.
process(3):-write('Введите идентификационный номер документа: '),read(Nomer),nl,
retract(dokument(_,_,_,_,Nomer)),
write('Запись удалена!'),nl,
write('Нажмите Enter для продолжения'),nl,
get_char(_),menu,!.
process(4):-write('Введите дату: '),read(Date),nl,
dokument2(Name,Type,Date,Fio,Nomer),
write('Информация о документе: '),nl,
write('Название:'),tab(1),write(Name),nl,
write('Тип:'),tab(1),write(Type),nl,
write('Дата создания:'),tab(1),write(Date),nl,
write('Исполнитель:'),tab(1),write(Fio),nl,
write('Идентификационный номер:'),tab(1),write(Nomer),nl,
write('Нажмите Enter для продолжения'),nl,
get_char(_),menu.
process(5):-write('Введите имя и инициалы исполнителя: '),read(Fio),nl,
dokument2(Name,Type,Date,Fio,Nomer),
write('Информация о документе: '),nl,
write('Название:'),tab(1),write(Name),nl,
write('Тип:'),tab(1),write(Type),nl,
write('Дата создания:'),tab(1),write(Date),nl,
write('Исполнитель:'),tab(1),write(Fio),nl,
write('Идентификационный номер:'),tab(1),write(Nomer),nl,
write('Нажмите Enter для продолжения'),nl,
get_char(_),menu.
process(6):-write('6'),nl,menu. %ins_sort([ ],[ ]).
% ins_sort([H|T],L):–ins_sort(T,T_Sort),insert(H,T_Sort,L).
% insert(X,[],[X]).
% insert(X,[H|T],[H|T1]):– X>H,!, insert(X,T,T1).
% insert(X,T,[X|T])menu.
process(7):-listing(dokument/5),get_char(_),menu.
process(8):-tell('Z:\\11IVT(b)POVT\\ProtokoL\\prolog\\dokument.txt'),
listing(dokument/5),told,
write('БД записана в файл!'),nl,
write('Нажмите Enter для продолжения'),nl,menu.
process(9):-retract.
process(_):-write('всего 9 пунктов'),nl,nl,nl, menu.
dokument2(Name,Type,Date,Fio,Nomer):-dokument(Name,Type,Date,Fio,Nomer),!. |