Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/30: Рейтинг темы: голосов - 30, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 14
1

База данных. Библиотека.

22.11.2009, 02:55. Показов 6142. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне ученик с 11 класса задал мне задачу, а я не могу решить ее. Помогите!
СОздать СУБД в которой предусмотретьследующие режимы:создание БД, вывод БД, печать сведений из базы по запросу, выход из БД. все режимы должны быть предоставлены в виде функционального меню. режим печати по запросу должен предусматривать подменю выбора запросов. тестирование СУБД осуществить на базе данных библиотеке ВУЗа..
В базе данных библиотеки ВУЗа содержатся следующие сведения:шифр книги, название книги(журнала), Признак (книга или журнал), автор, год издания, число экземпляров (где и какое количество находится экземпляров, например, абонент-2, студенческий читальный зал-3, научный
зал 4). в СУБД предусмотреть следующие запросы:

список книг указанного автора, выпущенных после определенного года
список книг определенного автора , находящихся в определенном месте
Определить сколько экземрляров печатной продукции находится в определенном месте
определить в какомместе больше всего журналов
вывести название всех журналов имеющихся в базе
сортировка по отдельным полям
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2009, 02:55
Ответы с готовыми решениями:

База данных. Библиотека.
кто может помочь,или может у кого то есть база данных Общественная библиотека,очень очень...

База данных "Библиотека": Осуществить поиск книги по названию
Ребят, помогоите написать программу. Разработать базу данных книжный магазин, включающую следующие...

База данных
Написать программу заполнения базы данных с клавиатуры и выполнения одного какого-либо запроса...

База данных из записей
дано такое задание База данных должна содержать не менее трех записей с 5 полями...

5
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.11.2009, 08:34 2
томара ивановна, Или как Вас там. Автору этого вопроса уже объясняли, что это не просто задача, а уже довольно затратоемкая по времени программа. Такие либо пишут сами, задавая на форуме конкретные вопросы по отдельным моментам программы, либо платят знающим людям деньги, и Вам ее пишут. Во втором случае обращаются в раздел Фриланс.
0
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 14
04.12.2009, 00:17  [ТС] 3
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
   program semestr1;
    label 10,11,12;
   type kol_vo=record
          abon:integer;
          stud_zal:integer;
          nauk_zal:integer;
        end;
        spisok=record
          shifr:integer;
          nazv:string;
          priznak:string;
          author:string;
          god_izd:integer;
          kol:kol_vo;
        end;
        f=file of spisok;
   var
     b:f;
     i, n:integer{количество компонент в файле};
     f1:file of char;
     a:char;     {компоненты логического файла}
 procedure sozd(var h:f);
   var i:integer; j:integer;
       nn:spisok;
   begin
 
     rewrite(h);
          j:=1;
          writeln ('введите сведения о книги №=',j);
          writeln ('название  ');
          with nn,nn.kol do
          begin
          readln(nazv);
          while nazv<>'0' do
            begin
             write ('Введите шифр издания' );
                readln (shifr);
                write ('введите книга это или журнал ');
                readln (priznak);
                write ('назовите автора ');
                readln (author);
                write ('введите год издания  ');
                readln (god_izd);
                write ('количество книг у абонентов  ');
                readln (kol.abon);
                write ('количество книг в читальном зале  ');
                readln (stud_zal);
                write ('количество книг в научном зале  ');
                readln (nauk_zal);
                write(h,nn);
              j:=j+1;
              writeln('введите сведения о  книге №=',j);
              write ('названиие  ');  readln(nazv);
                end;
                end;
          close (h);
          end;
          procedure vivod (const h:f);
          var i:integer;
              nn:spisok;
          begin
          reset (h);
          writeln('=================================================================================================================================================================================================================================================================================================================================================================================================================================================================================');
          writeln ('№':5,'|шифр издания|-':17,'|название издания|-':21,'|признак|-':11,'|автор|-':17,'|год изд.|-':10,'|abon|-':10,'|stud|':10,'|nauk|':10);
          writeln('==========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================');
          i:=1; while not eof(h) do
            begin
            read (h,nn);  writeln;   with nn, nn.kol do
            writeln ('|',i:3,'||',shifr:14,'||',nazv:19,'||',priznak:9,'||',author:15,'||',god_izd:8,'||',abon:8,'||',stud_zal:8,'||',nauk_zal:8,'|');
 
            writeln('-----------------------------------------------------------------------------------------------------------------------------------------');
           i:=i+1;
           end;
          close  (h); readln;
          end;
          procedure poisk1 (var h:f);
            var
              nn:spisok;
              i:integer;
              aut: string;
              god:integer;
              metka:boolean;
              flag:boolean;
            begin
            reset(H);
            writeln('список книг указанного автора выпущенных после определенного года');
            write('введите интересующего вас автора  ');
            readln(aut);
 
            write('Выведите год  ');
            readln(god);
            flag:=true;
            i:=1;
            writeln('список книг ',aut,' выпущенных после ',god,' года');
            writeln('=================================================================================================================================================================================================================================================================================================================================================================================================================================================================================');
            writeln ('|автор|-':17,'|год изд.|-':10,'№':5,'|шифр издания|-':17,'|название издания|-':21,'|признак|-':11,'|abon|-':10,'|stud|':10,'|nauk|':10);
            writeln('==========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================');
 
            while not eof(h) do
              begin
               read(h,nn);
               with   nn,nn.kol do
                 if (author=aut) and (nn.god_izd>god) then
                       begin
                       flag:=false;
                       writeln ('|',author:15,'||',god_izd:8,'||',i:3,'||',shifr:14,'||',nazv:19,'||',priznak:9,'||',abon:8,'||',stud_zal:8,'||',nauk_zal:8,'|');
                       i:=i+1;
                   end;
               end;
               close(h);
                 if flag then
                 writeln('\\\\\\\\\\\\\\\\\\поисk не дал  результатов///////////////////////////');
              end;
              
              
              
              
      
              
              
           begin    10:                                            { }
            assign(b,'c:\Pabcwork\база1.txt');
 
         writeln('            меню             ');
         writeln('1:создание БД');
         writeln('2:вывод БД');
         writeln('3:Вывод списка книг указанного автора, выпущенных после определенного года');
         writeln('4:вывод списка книг указанного автора находящихся на определенном месте');
         writeln('5:выход');
         readln (n);
           case n  of
           1:sozd(b);
           2:vivod(b);
           3:poisk1(b);
           4:poisk2(b);
           5:exit;
           else
           writeln('Ошибка! Повторите выбор. ');
 
           end; goto 10;
            readln;
            end.
подскажите пожалуйста !!!! КАк мне определить список книг определенного автора , находящихся в определенном месте

Добавлено через 36 минут
вот тут у меня есть предположения как эту задачу мне решать
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
 procedure poisk2 (var h:f);
            type abon=integer; stud_zal=integer;nauk_zal=integer;
            var
              nn:spisok;
              n,i:integer;
              aut: string;
              key1:string;
              key2:integer;
 
              flag:boolean;
              begin
            reset(H);
            writeln('список книг указанного автора выпущенных после определенного года');
            write('введите интересующего вас автора  ');
            readln(aut);
            while not eof(h) do
              begin
               read(h,nn);
 
            writeln('укажите место, где вам нужно узнать список книг этого автора');
            writeln('1:   у абонентов');
            writeln('2:   в студенческом читальном зале');
            writeln('3:   в научном зале');
             case n of
            1:      begin key2:=nn.kol.abon;     key1:='abon';  end;
            2:      begin key2:=nn.kol.stud_zal; key1:='stud';  end;
            3:      begin key2:=nn.kol.nauk_zal; key1:='nauk';  end;
            end;
             readln(n); readln(key1);
            flag:=true;
            i:=1;
            writeln('список книг ',aut,' находящихся  в (у)',key1);
            writeln('=========================================================================================================================================================');
            writeln ('№':5,'|шифр издания|-':17,'|название издания|-':21,'|признак|-':11,'|автор|-':17,'|год изд.|-':10,'|',key1:10,'|');
            writeln('==========================================================================================================================================================');
 
                 with  nn,nn.kol do
                 if author=aut  then
                       if       key2=0 then
                       writeln('таких книг нет')
                       else
                       begin
                       flag:=false;
                       writeln ('|',i:3,'||',shifr:14,'||',nazv:19,'||',priznak:9,'||',author:15,'||',god_izd:8,'||',key2:8,'|');
                 {никак не могу добится того что бы у меня программа выводила список книг находящихся на определенном месте}    
 
                   i:=i+1;
                   end;
               end;
               close(h);
                 if flag then
                 writeln('\\\\\\\\\\\\\\\\\\поисk не дал  результатов///////////////////////////');
              end;
0
1063 / 130 / 34
Регистрация: 09.10.2009
Сообщений: 271
04.12.2009, 11:10 4
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
 procedure poisk2 (var h:f);
{            type abon=integer; stud_zal=integer;nauk_zal=integer; }
            var
              nn:spisok;
              n,i:integer;
              aut: string;
              key1:string;
              key2:integer;
 
begin    
            reset(H);
            writeln('Поиск книг указанного автора в указанном месте хранения:');
            write('введите интересующего вас автора  ');
            readln(aut);
                 {ВОТ ЭТОТ КУСОК НАВЕРНОЕ ДЛЯ ВСЕГО ПОИСКА, А НЕ ДЛЯ КАЖДОЙ ЗАПИСИ ОТДЕЛЬНО???}
            writeln('укажите место, где вам нужно узнать список книг этого автора');
            writeln('1:   у абонентов');
            writeln('2:   в студенческом читальном зале');
            writeln('3:   в научном зале');
            readln(n);
            {   readln(key1); - это зачем считывать с экрана ?  }
            case n of
            1:  key1:='abon';
            2:  key1:='stud'; 
            3:  key1:='nauk'; 
            end;
            i:=0;
            writeln('список книг ',aut,' находящихся  в (у)',key1);
            writeln('=========================================================================================================================================================');
            writeln ('№':5,'|шифр издания|-':17,'|название издания|-':21,'|признак|-':11,'|автор|-':17,'|год изд.|-':10,'|',key1:10,'|');
            writeln('==========================================================================================================================================================');
 
         while not eof(h) do
         begin
               read(h,nn);
               with nn do 
                if author=aut  then
                begin 
                   case n of
                      1: key2:= kol.abon;   
                      2: key2:= kol.stud_zal; 
                      3: key2:= kol.nauk_zal; 
                      else key2 := 0; 
                    end;
                   if key2>0 then
                   begin  i := i+1; 
                          writeln ('|',i:3,'||',shifr:14,'||',nazv:19,'||',priznak:9,'||',author:15,'||',god_izd:8,'||',key2:8,'|');
                   end;
                end; { of if author = ... }
            end; { of while not eof(f) }    
            close(h);
            if i = 0 then
                writeln('\\\\\\\\\\\\\\\\\\поисk не дал  результатов///////////////////////////');
 end; { of procedure }
1
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 14
04.12.2009, 17:53  [ТС] 5
В 28 строке программа пишет мне ошибку(ОЖИДАЛОСЬ ОПИСАНИЕ или BEGIN)
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
function poisk3 (var h:f):integer; {-- Определить    сколько   экземпляров   печатной   продукции находится в определенном месте  }
        var
          nn:spisok;
          s,n,i:integer;
          key1:string;
          key2:integer;
        begin
          s:=0;
          reset(H);
          writeln('Подсчет всех книг в указанном месте хранения:');
          while not eof(h) do
            begin
              read(h,nn);
              with nn.kol do
                begin
                  case n of
                    1: key2:= abon;
                    2: key2:= stud_zal;
                    3: key2:= nauk_zal;
                  else
                    key2 := 0;
                  end;
                    s:=s+key2;
                    i := i+1;
                end;
            end; { of if author = ... }
        end; { of while not eof(f) }
      close (h);
      if i = 0 then
        writeln('\\\\\\\\\\\\\\\\\\поисk не дал  результатов///////////////////////////');
end; { of procedure }
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
04.12.2009, 17:58 6
томара ивановна, у Вас несоответствие количества begin end Удалите end в 22 строке
1
04.12.2009, 17:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2009, 17:58
Помогаю со студенческими работами здесь

База данных - студенты
Задание Создать программу, имитирующую работу с базой данных по предложенной предметной области...

База данных сотрудников.
Program kontrrabota; uses crt; type lich_dan=record fam:string; ...

База данных файлы
Составить базу данных на паскале..использовать тему файлы,типизированные файлы,записи...Составить...

База данных студентов
Здравствуйте. нужна помощь.Пишу программу базу данных.первая программа создаёт файл и записывает в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru