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

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

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

> База данных
Arei
сообщение 16.09.2010 19:54
Сообщение #1





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

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


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



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




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

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


Гость






Цитата
Вот что умудрился сделать за ночь.Есть море ошибок я так думаю.
Ошибки действительно есть... Первая, и самая главная - это то, что ты код не форматируешь как положено. Было бы написано правильной "лесенкой" - ты б увидел, что у тебя в строке №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».
говорит об использовании файлов?
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



- Текстовая версия 21.06.2025 17:47
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"