Реферат по предмету "Программирование, Базы данных"


Разработка информационно-справочной системы "Сводка погоды"

Domains
        N,i,n,y,m,d,t,v,p=integer
database-svod1
          svod1(n,y,m,d,t,v,p)
database-lolo
          lolo(n,y,m,d,t,v,p)
database-kuku
          kuku(n,y,m,d,t,v,p)
database
          svod(n,y,m,d,t,v,p)
Predicates
        start
        patch
        load
        select(i)
        sel(i,i)
        process(i)
        procedure(i)
        sve(i)
        lod(i)
        repeat
goal
        start.
Clauses
/*Процедура создания основного меню и загрузки базыданных*/
        start:-
           makewindow(1,2,7,«C В О Д К А П О Г О Д Ы »,0,0,25,80),
           clearwindow,
            load,
            patch.
/*Процедура управления основным меню*/
        patch:-
            repeat,
            cursor(7,0),
            write("                     0 — Опpогpамме... "),nl,
           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,
            write("                     =>"),
            readint(Choice),
            Choice >= 0,
            Choice
            clearwindow,
            process(Choice),
            clearwindow,
            Choice = 9,
            retractall(_),
           removewindow.
/*Процедура поиска и загрузки файла содержащего базуданных*/
        load:-
            existfile(«lesha.dat»),
            consult(«lesha.dat»),
            cursor(1,2),
            write("Базазагружена").
        load:-
            cursor(1,2),
           write(«Нет базы на диске»).
/*Пpоцедуpа ввода новых данных*/
       process(7):-
       makewindow(1,2,7,«Ввод новых данных»,0,0,25,80),
            nl,
           write(«Введите порядковый номер :»),readint(N),nl,
            write("ВведитеГод              :"),readint(Y),nl,
            write("ВведитеМесяц           :"),readint(M),nl,
            write("ВведитеЧисло           :"),readint(D),nl,
            write(«ВведитеТемпературу      :»),readint(T),nl,
           write(«Введите Влажность       :»),readint(V),nl,
           write(«Введите Давление        :»),readint(P),nl,
           assertz(svod(N,Y,M,D,T,V,P)),
           removewindow,
            fail.
/*Процедура просмотра-добавления*/
        process(8):-
        makewindow(1,2,7,«Просмотр-добавление»,0,0,25,80),
         nl,
        write(«Введите номер записи:»),readint(A),nl,nl,
         svod(A,Y,M,D,T,V,P),
         write("Номерзаписи:"),write(A),nl,
         write("Год          :"),write(Y),nl,
         write("Месяц        :"),write(M),nl,
        write("Число        :"),write(D),nl,
         write("Температура :"),write(T),nl,
         WRITE("Влажность   :"),write(V),nl,
         write("Давление    :"),write(P),nl,nl,nl,
         write(«Нажмите на любуюклавишу»),
        readchar(_),
         removewindow,
         !.
        process(8):-
write(«Этого номера записи нет в базе.»),
write(«Повторите введенный номер записи ипродолжайте ввод данных»),nl,nl,nl,
         write("Введитеномер:"),
         readint(N),nl,
         write("ВведитеГод          :"),readint(Y),nl,
         write("ВведитеМесяц        :"),readint(M),nl,
         write("ВведитеЧисло        :"),readint(D),nl,
         write(«ВведитеТемпературу  :»),readint(T),nl,
        write(«Введите Влажность   :»),readint(V),nl,
        write(«Введите Давление    :»),readint(P),
         assertz(svod(N,Y,M,D,T,V,P)),
         removewindow,
         fail.
         process(0):-
         makewindow(1,2,7,"Опpогpамме...",0,0,25,80),
write("                     Инфоpмационно-спpавочнаясистема"),nl,nl,
write("                       о пргнoзе погоды  "),nl,nl,
write("                        Язык-TURBO-PROLOG v.2.0.     "),nl,nl,
write("                      автоp:МоргунА.В.        "),nl,nl,
write("                      МГИРЭА, гp.ИИ-1-95 (с) 1996 г. "),nl,nl,nl,nl,
write(«Нажмите на любую клавишу»),
        readchar(_),
        removewindow.
/*Процедура изменения содержимого записей базы данных*/
        process(1):-
        makewindow(1,2,7,"Коppекцияданных",0,0,25,80),
            nl,
            select(N),
            X=N,
            svod(X,Y,M,D,T,V,P),
            write("Номерзаписи       :"),write(N),nl,
            write("Год                 :"),write(Y),nl,
            write("Месяц               :"),write(M),nl,
            write("Число               :"),write(D),nl,
            write("Температура         :"),write(T),nl,
            write("Влажность           :"),write(V),nl,
            write("Давление            :"),write(P),nl,nl,nl,
            write("ВведитеГод         :"),readint(Y1),nl,
            write("ВведитеМесяц       :"),readint(M1),nl,
            write("ВведитеЧисло       :"),readint(D1),nl,
            write(«ВведитеТемпературу :»),readint(T1),nl,
           write(«Введите Влажность  :»),readint(V1),nl,
            write("ВведитеДавление   :"),readint(P1),nl,
            X1=X,
            retract(svod(X,Y,M,D,T,V,P)),
            assert(svod(X1,Y1,M1,D1,T1,V1,P1)),
            !,
           removewindow.
/*Процедура удаления записей из базы данных*/
        process(2):-
            makewindow(1,2,7,"Удалениезаписей",0,0,25,80),
            nl,
            select(N),
            X=N,
            svod(X,Y,M,D,T,V,P),
            retract(svod(X,Y,M,D,T,V,P)),!,
            removewindow.
/*Процедура просмотра содержимого базы данных*/
        process(3):-
        makewindow(1,2,7,"Просмотp базы",0,0,25,80),
        nl,
write("╔════════════════════════════════════════════════════════════════════╗"),nl,
write("║                         СВОДКА ПОГОДЫ                             ║"),nl,
write("║                                                                   ║"),nl,
write("╠═══════╦═══════════════════════╦══════════╦════════════╦════════════╣"),nl,
write("║       ║         Дата         ║ Темп-ура║ Влажность ║Давление    ║"),nl,
write("║      ╠═══════╦════════╦══════╬══════════╬════════════╬════════════╣"),nl,
write("║Номер║ год  ║месяц   ║число║          ║            ║            ║"),nl,
write("║       ║       ║        ║      ║          ║            ║            ║"),nl,
write("║       ║       ║        ║      ║          ║            ║            ║"),nl,
nl,
           svod(N,Y,M,D,T,V,P),
            cursor(Z,_),
            cursor(Z,2),write(N),
            cursor(Z,11),write(Y),
            cursor(Z,20),write(M),
            cursor(Z,29),write(D),
            cursor(Z,36),write(T),
            cursor(Z,47),write(V),
            cursor(Z,60),write(P),
            cursor(Z,66),write("|"),
            nl,
            fail.
        process(3):-
write("----------------------------------------------------------------------"),
nl,
write("Нажмитеналюбуюклавишу"),
           readchar(_),
            removewindow.
/*Процедура загрузки в память базы данных*/
       process(4):-
            nl,
           makewindow(2,15,4,«Загрузка»,5,5,20,70),
           write(«1 — База будет загружена из указанного файла»),nl,
           write(«2 — База будет загружена из файла lesha.dat»),nl,
           write(«3 — Выход в основное меню»),nl,
            write("==>"),
            readint(C),
            C>0,C
            lod(C),
            !,
            removewindow.
/*Процедура сохранения базы данных*/
       process(5):-
            nl,
           makewindow(2,15,4,«Запись»,5,5,20,70),
           write(«1 — База будет записана в указанный файл»),nl,
           write(«2 — База будет записана в файл lesha.dat»),nl,
           write(«3 — Выход в основное меню»),nl,
            write("==>"),
            readint(I),
            I>0,I
            sve(I),!,
           removewindow.
 /*Процедура выборасоздания новой базы*/
       process(6):-
            nl,
           makewindow(3,2,7,«Создание новой базы»,0,0,25,80),
           write(«1 — База будет создана по Году»),nl,
           write(«2 — База будет создана по Месяцу»),nl,
           write(«3 — База будет создана по Числу»),nl,
            write(«4 — Выход в основноеменю»),nl,
            write("==>"),
            readint(O),
            O>0,O
            procedure(O),
           removewindow.
           process(_).
/*Процедура создания новой базы данных и ее сохранения*/
        procedure(1):-
  makewindow(1,2,7,«Создание новой базы по Году»,0,0,25,80),
            nl,
            cursor(7,10),
            retractall(_,svod1),
            nl,
            write(«Если вы хотитеузнать сводку погоды, то»),
            nl,
            write("ВведитеГод:"),
            readint(X),
            svod(N,Y,M,D,T,V,P),
            S=Y,
            S=X,
            N1=N,M1=M,D1=D,T1=T,V1=V,P1=P,
            assert(svod1(N1,Y,M1,D1,T1,V1,P1)),
            fail.
        procedure(1):-
write("Базасоздана"),nl,
write("╔════════════════════════════════════════════════════════════════════╗"),nl,
write("║                         СВОДКА ПОГОДЫ                             ║"),nl,
write("║                                                                    ║"),nl,
write("╠═══════╦═══════════════════════╦══════════╦════════════╦════════════╣"),nl,
write("║       ║         Дата         ║ Темп-ура║ Влажность ║Давление    ║"),nl,
write("║      ╠═══════╦════════╦══════╬══════════╬════════════╬════════════╣"),nl,
write("║Номер║ год  ║месяц   ║число║          ║            ║            ║"),nl,
write("║       ║       ║        ║      ║          ║            ║            ║"),nl,
write("║       ║       ║        ║      ║          ║            ║            ║"),nl,
nl,
            svod1(N,S,M,D,T,V,P),
            cursor(Z,_),
            cursor(Z,2),write(N),
            cursor(Z,11),write(S),
            cursor(Z,20),write(M),
            cursor(Z,29),write(D),
            cursor(Z,36),write(T),
            cursor(Z,47),write(V),
            cursor(Z,60),write(P),
            nl,
            fail.
        procedure(1):-
write("-------------------------------------------------------------------"),
            save(«not.dat»,svod1),
            nl,
           write(«База сохранена в файле not.dat»),
            nl,
           write(«Нажмите любую клавишу»),
            readchar(_),
            removewindow,
            !.
        procedure(1):-
write("-------------------------------------------------------------------"),
            nl,
            write(«Невозможносохранить созданную базу»),
            nl,
           write(«Нажмите любую клавишу»),
           readchar(_),
           makewindow(1,2,7,«С В О Д К А П О Г О Д Ы»,0,0,25,80).
           procedure(2):-
   makewindow(1,2,7,«Создание новой базы по Месяцу»,0,0,25,80),
            nl,
            cursor(7,10),
            retractall(_,lolo),
            nl,
 write(«Если вы хотите узнатьсводку погоды то, введите Месяц»),nl,
            readint(X),
            svod(N,Y,M,D,T,V,P),
            S=M,
            S=X,
            N1=N,Y1=Y,D1=D,T1=T,V1=V,P1=P,
            assert(lolo(N1,Y,S,D,T,V,P)),
            fail.
        procedure(2):-
write("Базасоздана"),nl,
write("╔════════════════════════════════════════════════════════════════════╗"),nl,
write("║                         СВОДКА ПОГОДЫ                             ║"),nl,
write("║                                                                   ║"),nl,
write("╠═══════╦═══════════════════════╦══════════╦════════════╦════════════╣"),nl,
write("║       ║         Дата         ║ Темп-ура║ Влажность ║Давление    ║"),nl,
write("║      ╠═══════╦════════╦══════╬══════════╬════════════╬════════════╣"),nl,
write("║Номер║ год  ║месяц  ║число║          ║            ║            ║"),nl,
write("║       ║       ║        ║      ║          ║            ║            ║"),nl,
write("║       ║       ║        ║      ║          ║            ║            ║"),nl,
nl,
            lolo(N,Y,M,D,T,V,P),
            cursor(Z,_),
            cursor(Z,2),write(N),
            cursor(Z,11),write(Y),
            cursor(Z,20),write(M),
            cursor(Z,29),write(D),
            cursor(Z,36),write(T),
            cursor(Z,47),write(V),
            cursor(Z,60),write(P),
            nl,
            fail.
        procedure(2):-
write("-----------------------------------------------------------------------------"),
            save(«not1.dat»,lolo),
            nl,
           write(«База сохранена в файле not1.dat»),
            nl,
           write(«Нажмите любую клавишу»),
            readchar(_),
            removewindow,
            !.
        procedure(2):-
write("-------------------------------------------------------------------"),
            nl,
            write(«Невозможносохранить созданную базу»),
            nl,
           write(«Нажмите любую клавишу»),
           readchar(_),
           makewindow(1,2,7,«С В О Д К А П О Г О Д Ы »,0,0,25,80).
       procedure(3):-
     makewindow(1,2,7,«Созданиебазы данных по Числу»,0,0,25,80),
            nl,
            cursor(7,10),
            retractall(_,kuku),
            nl,
   write(«Если вы хотите узнатьданные о сводке погоды, то»),
            nl,
            write("ВведитеЧисло:"),
            readint(X),
            svod(N,Y,M,D,T,V,P),
            S=D,
            S=X,
            N1=N,Y1=Y,M1=M,T1=T,V1=V,P1=P,
            assert(kuku(N1,Y1,M1,S,T1,V1,P1)),
            fail.
        procedure(3):-
write("Базасоздана"),nl,
write("╔════════════════════════════════════════════════════════════════════╗"),nl,
write("║                         СВОДКА ПОГОДЫ                             ║"),nl,
write("║                                                                   ║"),nl,
write("╠═══════╦═══════════════════════╦══════════╦════════════╦════════════╣"),nl,
write("║       ║         Дата         ║ Темп-ура║ Влажность ║Давление    ║"),nl,
write("║      ╠═══════╦════════╦══════╬══════════╬════════════╬════════════╣"),nl,
write("║Номер║ год  ║месяц   ║число║          ║            ║            ║"),nl,
write("║       ║       ║        ║      ║          ║            ║            ║"),nl,
write("║       ║       ║        ║      ║          ║            ║            ║"),nl,
nl,
          kuku(N,Y,M,D,T,V,P),
            cursor(Z,_),
            cursor(Z,2),write(N),
            cursor(Z,11),write(Y),
            cursor(Z,20),write(M),
            cursor(Z,29),write(D),
            cursor(Z,36),write(T),
            cursor(Z,47),write(V),
            cursor(Z,60),write(P),
            nl,
            fail.
        procedure(3):-
write("-------------------------------------------------------------------"),
            save(«not2.dat»,kuku),
            nl,
           write(«База сохранена в файле not.dat»),
            nl,
           write(«Нажмите любую клавишу»),
            readchar(_),
            removewindow,
            !.
        procedure(3):-
write("-------------------------------------------------------------------"),
            nl,
            write(«Невозможносохранить созданную базу»),
            nl,
           write(«Нажмите любую клавишу»),
           readchar(_),
           makewindow(1,2,7," С В О Д К А П О Г О Д Ы",0,0,25,80).
/*Процедура записи на диск*/
        sve(1):-
           write(«Введите имя файла :»),
           readln(N),
           save(N),
           write(«Все в порядке»),
            beep,
            !.
        sve(1):-
           write(«Ошибка обмена, нажмите любую клавишу»),
            readchar(_).
        sve(2):-
            save(«lesha.dat»).
        sve(3).
/*Процедура чтения с диска*/
        lod(1):-
            retractall(_),
            write("Введитеимяфайла:"),
            readln(N),
            existfile(N),
            consult(N),
            write(«Все впорядке»),
            beep,
            !.
        lod(1):-
            nl,
           write(«Данного файла нет на диске»),nl,
           write(«Нажмите любую клавишу»),
           readchar(_).
        lod(2):-
           retractall(_),
            existfile(«lesha.dat»),
            consult(«lesha.dat»),
            write("Всевпорядке"),
            beep,
            !.
        lod(2):-
            write("Файлаlesha.dat нетнадиске"),nl,
            write("нажмителюбуюклавишу"),
            readchar(_).
        lod(3).
        repeat.
        repeat:- repeat.
/*Выборзаписи*/
        select(N):-
        nl,
        write(«1 — известенHoмерзаписи»),nl,
        write(«2 — известенГод»),nl,
        write(«3- известен Месяц»),nl,
       write(«4 — известно Число»),nl,
       write(«5 — известна Температура»),nl,
        write("==>"),
        readint(X),
        sel(X,N).
        sel(1,N):-
        nl,
       write(«Введите номер записи                :»),
        readint(N),
        svod(M,_,_,_,_,_,_),
        M=N.
        sel(1,N):-
        N=0.
        sel(2,N):-
        nl,
        write("ВведитеГод:"),
        readint(L),
        svod(Z,L,_,_,_,_,_),
        N=Z.
        sel(2,N):-
        N=0.
        sel(3,N):-
        nl,
        write("ВведитеМесяц: "),
        readint(F),
        svod(Z,_,F,_,_,_,_),
        N=Z.
        sel(3,N):-
        N=0.
        sel(4,N):-
        nl,
        write("ВведитеЧисло:"),
        readint(Q),
        svod(Z,_,_,Q,_,_,_),
        N=Z.
        sel(4,N):-
        N=0.
        sel(5,N):-
        nl,
       write(«Введите Температуру:»),
        readint(W),
        svod(Z,_,_,_,W,_,_),
        N=Z.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

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

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.