IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> База данных
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Создать систему управления базой данных (СУБД) в которой предусмотреть следующие режимы: создание БД, вывод БД, добавление записей в БД, удаление записей из БД, корректировка сведений в БД, печать сведений из базы по запросу, выход из БД. Все режимы должны представлены в виде функционального меню. Режим печати по запросу должен предусматривать подменю выбора запросов. Тестирование СУБД осуществить на БД «Больница №4».
В приемном покое больницы №4 содержатся сведения о больных поступивших на лечение. Одна запись этого списка содержит: Ф.И.О. больного, номер палаты, пол, диагноз, дата поступления. СУБД должна выдавать следующие сведения:
- в какой палате лежит больной Х;
- список больных с указанным диагнозом;
- больного наиболее долго находящегося в больнице;
- сколько мужчин и сколько женщин находятся на лечении;
+ выдать все диагнозы, с которыми больные стоят на учете;
+ сортировка по отдельным полям



"Реализация концепции СУБД через массив записного типа языка Pascal"
Реализовать:
- Функциональное меню
- Ввод БД
- Выдод БД
- Не менее двух запросов




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

Сообщение отредактировано: Arei -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Сам что-нибудь делать будешь, или как? Ну, к примеру, сможешь написать (и расположить правильно в программе) хотя бы "заглушки-пустышки" для процедур, которые будут образовывать твою СУБД? Чтоб потом заменить "пустышки" на реальные процедуры, и оно заработало. Меню можешь взять здесь...

Начни что-нибудь делать, а мы потом поможем, доработаем вместе до нормального состояния. До понедельника еще куча времени, можно Windows с нуля написать smile.gif

Поиск прошерсти, задач на базы данных было немало, они все похожи друг на друга как две капли воды. Заменить тип данных, и чуть-чуть изменить запрос - и из футбольной/хоккейной команды получили библиотеку. А уж из магазина (и такие реализации уже были здесь) - так еще проще.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Спасибо всё сейчас буду искать
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


                  
uses crt;
type
TRec = record
fName:string[31];
secName:string[31];
thName:string[31];
nomer:string;
Pol:string[20];
Diag:string[20];
baza :string[20];
Sam :string[20];
Daim :string[20];
Swam :string[20];
Qwert :string[20];
fme :string[20];
end;

var
i,n:integer;
BD:array[1..100] of TRec;
PunktOfMenu: char;
MainMenuTitle : char;
caseKey: char;

Begin

clrscr;
write('Кол-во ,больных в больнице = '); readln(n);
for i:=1 to 1 do
with BD[i] do
begin

write('Открыть меню : '); read(Sam);
if Sam='Да'then



begin
writeLn;
writeLn('Выберите нужное действие:');
writeLn('1 - Ввод Базы данных');
writeLn('2 - Вывод Базы данных');
writeLn('3 - Подменю запросов к Базе данных') ;
writeLn('5 - Выход');
write('Ваш выбор:');
readLn(PunktOfMenu);
MainMenuTitle := PunktOfMenu;
end;

begin
repeat

PunktOfMenu:=MainMenuTitle;
case PunktOfMenu of
'1': begin
writeln;
writeln ('База данных перед изменения ');
write('Имя : '); readln(fName);
write('Фамилия : '); readln(secName);
write('Отчество : '); readln(thName);
write('Номер палаты: '); readln(nomer);
write('Пол : '); readln(Pol);
write('Диагноз: '); readln(Diag);

writeLn('Для прекращения ввода нажмите "0"'); readln(caseKey);
begin
if caseKey='0'then


begin
for i:=1 to n do
with BD[i] do
writeln ('База данных после изменения ');
writeln('Имя : ',fname);
writeln('Фамилия : ',secName);
writeln('Отчество : ',thName);
writeln('Номер палаты: ',nomer);
writeln('Пол : ',Pol);
writeln('Диагноз : ',Diag);
writeln;

end;
end;

end;
'2':
begin
writeln ('База данных после изменения ');
writeln('Имя : ',fname);
writeln('Фамилия : ',secName);
writeln('Отчество : ',thName);
writeln('Номер палаты: ',nomer);
writeln('Пол : ',Pol);
writeln('Диагноз : ',Diag);

writeln;

end;


end;{case}


until PunktOfMenu='2' ;

begin

end;




end;
end;
end.




Вот что умудрился сделать за ночь.Есть море ошибок я так думаю.Помогите мне и да же советом.

Вот нашёл на форуме реализацию нужной ме функции, но не могу её удачно приспособить вот она


Заранее спасибо а помощь.

Добавлено через 2 мин.
http://forum.pascal.net.ru/index.php?showtopic=25694&hl вот ссылка на тему нужную мне
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата
Вот что умудрился сделать за ночь.Есть море ошибок я так думаю.
Ошибки действительно есть... Первая, и самая главная - это то, что ты код не форматируешь как положено. Было бы написано правильной "лесенкой" - ты б увидел, что у тебя в строке №30 начинается цикл for i := 1 to 1 (Кстати, какой смысл делать от 1 до 1 - это отдельный разговор, но допустим, что ты хочешь протестировать с одной записью. Хотя даже в этом случае лучше задать количество записей константой), а в строке №72 ты открываешь еще один цикл по i. В результате программа ведет себя как попало под Турбо Паскалем, и вообще не компилируется другими компиляторами.

Дальше: насколько я помню, изначально была библиотека? Что случилось, теперь БД больницы?

В общем, каркас я бы написал вот так:
uses crt;
type
TRec = record
fName:string[31];
secName:string[31];
thName:string[31];
nomer:string;
Pol:string[20];
Diag:string[20];
end;

function MainMenu: integer;
var PunktOfMenu: integer;
begin
writeLn;
writeLn('Выберите нужное действие:');
writeLn('1 - Ввод Базы данных');
writeLn('2 - Вывод Базы данных');
writeLn('3 - Подменю запросов к Базе данных');
writeln('4 - Корректировка БД');
writeLn('5 - Выход');
write('Ваш выбор:');
readLn(PunktOfMenu);
MainMenu := PunktOfMenu;
end;

var
i, n: integer;
BD: array[1..100] of TRec;

menu, curr: integer;
R: TRec;
Begin
n := 0;
clrscr;
repeat
menu := MainMenu;
case menu of
1: { Ввод базы }
begin
write('Кол-во больных в больнице = '); readln(n);
for i := 1 to n do
begin
writeln('Информация о большом №', i);
with R do
begin
writeln('Имя : '); readln(fname);
writeln('Фамилия : '); readln(secName);
writeln('Отчество : '); readln(thName);
writeln('Номер палаты: '); readln(nomer);
writeln('Пол : '); readln(Pol);
writeln('Диагноз : '); readln(Diag);
writeln;
end;
BD[i] := R;
end;
end;

2: { Вывод базы на экран }
begin
if n = 0 then writeln('<База пуста>')
else
for i := 1 to n do with BD[i] do
begin
writeln('Имя : ', fname);
writeln('Фамилия : ', secName);
writeln('Отчество : ', thName);
writeln('Номер палаты: ', nomer);
writeln('Пол : ', Pol);
writeln('Диагноз : ', Diag);
writeln;
end;
end;

3: { Здесь будут запросы }
begin
end;

4: { Корректировка базы }
begin
write('Какую запись будем корректировать?');
readln(curr);
if (curr > 0) and (curr <= n) then
with BD[curr] do
begin
writeln('До корректировки:');
writeln('Имя : ', fname);
writeln('Фамилия : ', secName);
writeln('Отчество : ', thName);
writeln('Номер палаты: ', nomer);
writeln('Пол : ', Pol);
writeln('Диагноз : ', Diag);
writeln;

writeln('Введите новые данные:');

writeln('Имя : '); readln(fname);
writeln('Фамилия : '); readln(secName);
writeln('Отчество : '); readln(thName);
writeln('Номер палаты: '); readln(nomer);
writeln('Пол : '); readln(Pol);
writeln('Диагноз : '); readln(Diag);
writeln;
end
else
writeln('<Несуществующая запись>');
end;
end;
until menu = 5;
end.


Чувствуешь разницу?

Дальше. В том каркасе, который я привел, есть повторяющийся код. Это - плохо. Попробуй от этого избавиться. Тебе понадобится вынести некоторые действия в процедуры (или функции). С запросами - чуть позже разберемся.

И еще одно: ты уверен, что с файлами твоя БД не должна работать? У тебя об этом ничего не сказано. Или все-таки
Цитата
Тестирование СУБД осуществить на БД «Больница №4».
говорит об использовании файлов?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


"Реализация концепции СУБД через массив записного типа языка Pascal" подразумевает работу с динамическим массивом? Или просто создать массив на заведомо большее реального количества количество пациентов?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Спасибо volvo нет с файлами в этом работе работать не надо, а вот вы виделия ссылку давал у меня не получается что то разобраться с тем кодом, но всё равно спасибо вам.

Добавлено через 6 мин.
Извини просто я не ту работу думал делать (перепутал вариант).Теперь подскажи что мне делать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата
Теперь подскажи что мне делать.
Я подсказал, что делать: перечитай мой пост, и сделай то, о чем я говорил. Если ты надеешься, что ты будешь давать ничего не значащие ответы, а тебе тут будут выкладывать более и более полные решения - это ты ошибаешься. Нужна эта БД в первую очередь тебе. Вот и прилагай усилия к тому, чтоб ее написать.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Спасибо что напомнил про твой пост сверху , а то я его не заметил сейчас буду делать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 3:11
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name