Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2008, 23:47   #1
kiko
Пользователь
 
Аватар для kiko
 
Регистрация: 19.11.2008
Сообщений: 24
Лампочка Создать базу данных «Детский мир»

Мои попытки были четны ... просто напросто напрочь запутался в программе!

Помогите пожалуйста

Создать базу данных «Детский мир», компоненты записей которой имеют следующую структуру:

**********************************Т АБЛИЦА ***********************************
|Артикул | название игрушки | ценa | Возрастная граница нижняя | возрастная граница верхняя|
*********************************** *********************************** *******

Составить программу, имеющую текстовое меню и позволяющую:

1. Создавать типизированный файл; вводить в файл данные о нескольких игрушках (количество заранее не оговаривается).
2. Выводить данные обо всех игрушках на экран и в другой файл.
3. Производить поиск игрушки по названию и выводить результаты на экран и в другой файл. В случае отсутствия игрушки с заданным названием выводить соответствующее сообщение.
4. Выводить на экран и в другой файл данные о наличии игрушек по следующим критериям:
.....a. названия игрушек, находящихся в заданном ценовом интервале;
.....b. названия игрушек, находящихся в заданном возрастном интервале.
5.Корректировать данные (цена, название).
6.Дополнять базу данных.
7.Сортировать данные по названию.

Отдельные пункты работы программы оформить в виде процедур.
нет ничего не возможного ...

Последний раз редактировалось kiko; 25.11.2008 в 23:49.
kiko вне форума Ответить с цитированием
Старый 26.11.2008, 00:56   #2
lexus_ilia
Студентик :)
Пользователь
 
Аватар для lexus_ilia
 
Регистрация: 29.09.2008
Сообщений: 84
По умолчанию

Ну так в чём именно проблема?Если во всём, то я сополезную, а так если пробежаться по задачи то, вам нужно использовать Динамические структуры данных (типа список), почитать про типизированные файлы, про поиск, про сортировки...
А почему запутались?
Вот алгоритм решения вашей задачи:
1)создаём список в котором есть поля Артикул, Название, Цена, Возвр. граница нижняя, Возвр. граница верхняя, указатель.
2)через цикл Repeat оформить ввод первоначальных данных.
3)ну с выводом вопросов по-моему не может быть... (while указатель_на_след_элем_списка<>nil do ) (если список односвязный)
4)a.Производить поиск и при проверке проверять название игрушек и интервал ценовой.
b.Производить поиск и при проверке проверять название игрушек и интервал возростной.
5)Опять же через repeat оформить изменение данных, у вас же не изменяется указатель или ещё что-нибудь, а просто переназначается какая-то переменная.(Цена,Название)
6)Типа 2-ого пункта..
7)Ну а про сортировки можете читать где угодно, советую Кнута том 3 (5.2 Раздел. Сортировки).Просто вам надо будет всё делать с динамикой, а это всегда муторновато малёк...
8)Ну а через процедуру я бы оформил все пункты начиная со 2-ого по 7-ой...
В самом теле программы, делаем Repeat а внутри case и всё, ну и менюшку, это уже сами. т.к. не люблю я их
lexus_ilia вне форума Ответить с цитированием
Старый 26.11.2008, 13:51   #3
kiko
Пользователь
 
Аватар для kiko
 
Регистрация: 19.11.2008
Сообщений: 24
По умолчанию

Создал список, ввёл и вывел данные, произвёл поиск ... а дальше затрудняюсь ... и то присутствует такое ощущение что не всё правильно

Помогите завершить программу и исправить ошибки пожалуйста

тело прог-ы:

Код:
program name;
uses crt;
type urpywku=record;
     apT:string;
     H.urp:string[20];
     UeHa:word;
     Bo3p.H:word;
     Bo3p.B:word;
end;

var f:file of urpywku;
    i,n:integer;
    urp:urpywku;

procedure BBOD(var f:file);
var i:integer;
begin
assing (f,'f.txt');
rewrite (f);
writeln ('BBEDUTE KOJlBO UrPYWEK');
readln (n);
for i:=1 to n do begin
  with chel do begin
  write ('apTukyJlbHbIu HOMEP >>'); 
  readln (apT);
  write ('HauMeHoBaHue urpywku >>'); 
  readln (H.urp);
  write ('U,eHa >>'); 
  readln (UeHa);
  write ('Bo3pacTHA9l rpaHuua Hu}I{H9l9l >>'); 
  readln (Bo3p.H);
  write ('Bo3pacTHA9l rpaHuua BepxH9l9l >>'); 
  readln (Bo3p.B);
  end;
 writeln;
 writeln;
 write (f,urp);
 end;
 close (f);
end;


procedure BbIBOD;
var i:integer;
    a:file of urpywku;
begin
 assign (a,'a.txt');
 reset (f);
 rewrite (a);
 while not eof (f) do begin
  read (f,chel);
  writeln (urp.apT,' ',urp.H.urp,' ',urp.UeHa,' ',urp.Bo3p.H,' ',urp.Bo3p.B);
  write (a,urp);
 end;
 close(f);
 close(a);
end;


procedure nouck;
var b:file of urp;
    apT:string;
    npoBepka:boolean;
begin
npoBepka:=false;
assign (b,'b.txt');
write ('BBEDUTE HA3BAHUE UrPyWKU');
readln (apT);
reset (f);
rewrite (b);
while not eof (f) do begin
read (f,urp);
with urp do begin
if urp=urpywka then begin
npoBepka:=true;
writeln (apT,' ',H.urp,' ',ueHa,' ',Bo3p.H,' ',Bo3p.B);
write (b,urp);
end;
end;
end;
if npoBepka=false then
writeln ('Takou urpywku HeT);
close (b);
close (f);
end;
нет ничего не возможного ...

Последний раз редактировалось Alex21; 29.11.2008 в 13:17. Причина: Используй правильные теги для оформления кода
kiko вне форума Ответить с цитированием
Старый 27.11.2008, 19:44   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses crt;
type TData=record
      art,name:string;
      price:real;
      up,down:byte;
     end;
var i,n:integer;
    a:array[1..100]of TData;
    f,f1:file of TData;
    ch:char;
    x:real;
    u,d:byte;
    s:string;

begin
clrscr;
assign(f,'c:\1.tdt');
assign(f1,'c:\11.tdt');
n:=0;
writeln('Read -r Write -w');
ch:=readkey;
case ch of
'w': begin
       rewrite(f);
       repeat
         writeln('Exit press <n> ');
           ch:=readkey;
           case ch of
            'n':exit;
               else begin
                    clrscr;
                    inc(n);
                    writeln('Input art');
                    readln(a[n].art);
                    writeln('Input name');
                    readln(a[n].name);
                    writeln('Input price');
                    readln(a[n].price);
                    writeln('Input up level');
                    readln(a[n].up);
                    writeln('Input down level');
                    readln(a[n].down);
                    write(f,a[n]);
                   end;
                end;
       until ch='n';
      end;
'r':begin
      reset(f);
      rewrite(f1);
      repeat
      clrscr;
      writeln('Print file -p');
      writeln('Find price -r');
      writeln('Level -l');
      writeln('Name -n');
      writeln('Exit -esc');
      ch:=readkey;
      case ch of
      'r': begin
            writeln('price');
            readln(x);
            n:=0;
             while not  eof(f) do
              begin
               inc(n);
               read(f,a[n]);
               if a[n].price>=x then begin
                                     write(f1,a[n]);
                                     writeln(a[n].art);
                                     writeln(a[n].name);
                                     writeln(a[n].price:6:2);
                                     writeln(a[n].up);
                                     writeln(a[n].down);
                                     writeln('=========');
                                    end;

              end;
            readln;
            end;
      'p':begin
             clrscr;
             while not  eof(f) do
              begin
               inc(n);
               read(f,a[n]);         write(f1,a[n]);
                                     writeln(a[n].art);
                                     writeln(a[n].name);
                                     writeln(a[n].price:6:2);
                                     writeln(a[n].up);
                                     writeln(a[n].down);
                                     writeln('=========');

              end;
            readln;
          end;
      'l':begin
            clrscr;
           writeln('Input up');
             readln(u);
           writeln('Input down');
             readln(d);
             while not  eof(f) do
              begin
               inc(n);
               read(f,a[n]);
               if (a[n].up>=u) and (a[n].down<=d) then begin
                                     write(f1,a[n]);
                                     writeln(a[n].art);
                                     writeln(a[n].name);
                                     writeln(a[n].price:6:2);
                                     writeln(a[n].up);
                                     writeln(a[n].down);
                                     writeln('=========');
                                    end;

              end;
            readln;
          end;
      'n':begin
           clrscr;
           writeln('Input name');
             readln(s);
             while not  eof(f) do
              begin
               inc(n);
               read(f,a[n]);
               if a[n].name=s then begin
                                     write(f1,a[n]);
                                     writeln(a[n].art);
                                     writeln(a[n].name);
                                     writeln(a[n].price:6:2);
                                     writeln(a[n].up);
                                     writeln(a[n].down);
                                     writeln('=========');
                                    end;

              end;
            readln;
          end;
        end;
      until ch=#27;
    end;
  end;
close(f);
close(f1);
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 27.11.2008, 21:57   #5
kiko
Пользователь
 
Аватар для kiko
 
Регистрация: 19.11.2008
Сообщений: 24
По умолчанию

огромнейшее спасибо
нет ничего не возможного ...
kiko вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать базу данных для библиотеки xxasb07 Помощь студентам 4 19.11.2008 12:36
Создать базу данных Master of Puppets Microsoft Office Excel 5 10.06.2008 13:34
Как создать базу данных? LeonKing Помощь студентам 4 07.05.2008 14:11
Как создать базу данных knazty Помощь студентам 15 18.11.2007 19:49