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

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

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

> Задача ИПС, немножко подскажите
сообщение
Сообщение #1


Пионер
**

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

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


Общем задали вот такую задачу:


Сделать с помощью способов языка программирования Pascal Информационно - Поискову Систему (ИПС):
--------------------------------------------------------------------------------------------------
Добавления новых специальностей , груп та студентов;
Поиск студентов за группой ,за Фамилией, за специальностью ,за средним балом;
Просмотр всех существующих специальностей, груп та студентов;
Удаление указанной специальности , группы студента (с безопасностью сохранения ценности данных)
--------------------------------------------------------------------------------------------------
Требование к разработки ИПС:

Все операции с данными в ИПС должны быть сделаны в форме процедур или функций, которые должны быть собранные в Модуль!

Работа с ИПС должна быть реализованная в режиме диалогу, в котором надо предвидеть основные режимы роботы с данными (Добавление новых, вывод уже существующих, Искать за указанными критериями, Удаление данных, выход с системы)

ИПС реализовать у виде Файловой Системы, тоисть все основные объекты базы данных(мой комент: имеется веду не БД , мы не учили еще, а *.txt файлы) должны сохранятся у отдельных файлах, между которыми взаимодействует связь через специальные поля.


Вот такую жесть задали blink.gif

Подскажите с чего начать? (я имею виду не код, а саму идею алгоритма)

Сообщение отредактировано: Димас -


--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Пионер
**

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

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


blink.gif

Вот что за сегодняшний день удалось написать:

Это код модуоя vbp:
 
Unit vbp;

interface
uses crt;
var
c : char;
{///////////////////////////// Types /////////////////////////////////////////}

{```````````````````````````}
Type Specialnist = record

id : integer;
name : string ;
end;
{```````````````````````````}

{```````````````````````````}
Type Groups = record

id : integer;
name : string ;
id_spec : integer;
end;
{````````````````````````````}

{````````````````````````````}
Type student = record
id : integer;
name : string ;
id_group : integer;
id_spec : integer;
ser_bal : integer;
end;
{````````````````````````````}

{//////////////////////////// Types end //////////////////////////////////////////}


{~}
Procedure author;
procedure add_spec;
Procedure add_group;
Procedure add_student;
Procedure dir_spec;
Procedure dir_group;
Procedure dir_student;
Procedure del_spec;
Procedure del_group;
Procedure del_student;
procedure A1;
procedure A2;
procedure A3;
{~}

implementation





{///////////////// Procedur's and Function's ////////////////////////////////////////}

{****************************************** A1 (add) *******************************}

{''''''''''''''''''''''''''''''' add_spec ''''''''''''''''''''''''''''''''}

procedure add_spec; {Добавления Специальности!}
var
f1,f2: file of Specialnist;
a: Specialnist;
b: Specialnist;
i: integer;
begin

clrscr;
writeln('ADD Spec');

{1}
Assign(f1,'c:\spec.txt');
Assign(f2,'c:\spec.bak');


reset(f1);
rewrite(f2);

{Запсиь c копии spec.txt в spec.bак}
while not Eof(f1) do
begin
read(f1,a);
write(f2,a);
end;

Close(f1);
Close(f2);
{/1}


{2}
Assign(f1,'c:\spec.txt');
Assign(f2,'c:\spec.bak');

rewrite(f1);
reset(f2);


while not Eof(f2) do
begin
read(f2,a);

{ if a.name<>'test2' then
begin
write(f1,a); //Удаления
end;
}
write(f1,a);
end;
writeln('Введите названия новой Специальности ');
readln(a.name); {Добавления новой специальности}

a.id:=a.id+1;

write(f1,a); {rec main to file}

Close(f1);
Close(f2);

writeln('end!');
readkey;
end;
{''''''''''''''''''''' END add_spec ''''''''''''''''''''''''''''''''''''''''}

{''''''''''''''''''''' add_group ''''''''''''''''''''''''''''''''''''''''''}
Procedure add_group;
var
f1,f2: file of Groups;
f3 : file of Specialnist;
a : Groups;
b : Specialnist;
i : integer;
Begin

clrscr;
writeln('ADD Groups');

{1}
Assign(f1,'c:\group.txt');
Assign(f2,'c:\group.bak');


reset(f1);
rewrite(f2);

{Запсиь c копии group.txt в group.bак}
while not Eof(f1) do
begin
read(f1,a);
write(f2,a);
end;

Close(f1);
Close(f2);
{/1}


{2}
Assign(f1,'c:\group.txt');
Assign(f2,'c:\group.bak');

rewrite(f1);
reset(f2);


while not Eof(f2) do
begin
read(f2,a);

{ if a.name<>'test2' then
begin
write(f1,a); //Удаления
end;
} write(f1,a);
end;
writeln('Введите названия новой Групы');

readln(a.name); {Добавления group}

a.id:=a.id+1;
{----- Вычитуем Специальности ------------}

Assign(f3,'c:\spec.txt');
reset(f3);

writeln('_______________________________________________________________');
writeln(' id Специальности | Названия Специальности ');
writeln('_______________________________________________________________');

while not Eof(f3) do
begin
read(f3,b);
Writeln(' ',b.id, ' ',' | ', b.name,' ');
end;
writeln('_______________________________________________________________');

Close(f3);
{----- end -----------------}

writeln;
writeln('Внимание: Если id не будет соответвоать, Запись не будет добавленая!');
writeln;
writeln('К какой специальности закрепить групу ? (id)');

readln(a.id_spec);


Assign(f3,'c:\spec.txt');
reset(f3);

{ниже условия которое не будет записывать в файл если id не соответсвует!}
while not Eof(f3) do
begin
read(f3,b);

if (a.id_spec=b.id) then write(f1,a);


end;
Close(f3);

{ write(f1,a); {rec to main file group}

Close(f1);
Close(f2);



writeln('end!');
readkey;



end;

{'''''''''''''''''''' END add_group '''''''''''''''''''''''''''''''''''''''}


{'''''''''''''''''''' add_student '''''''''''''''''''''''''''''''}
Procedure add_student;
var
f1,f2: file of student;
f3 : file of groups;
a : student;
b : groups;
i : integer;
Begin

clrscr;
writeln('ADD Student');

{1}
Assign(f1,'c:\student.txt');
Assign(f2,'c:\student.bak');


reset(f1);
rewrite(f2);

{Запсиь c копии student.txt в student.bак}
while not Eof(f1) do
begin
read(f1,a);
write(f2,a);
end;

Close(f1);
Close(f2);
{/1}


{2}
Assign(f1,'c:\student.txt');
Assign(f2,'c:\student.bak');

rewrite(f1);
reset(f2);


while not Eof(f2) do
begin
read(f2,a);

{ if a.name<>'test2' then
begin
write(f1,a); //Удаления
end;
} write(f1,a);
end;
a.id:=a.id+1;
writeln('Введите нового Студента');

readln(a.name); {Добавления student}
Writeln('Введите среднюю оценку этого студента');
readln(a.ser_bal);

{----- Вычитуем groups ------------}
Assign(f3,'c:\group.txt'); {Група - f3}
reset(f3);

{~}
writeln('________________________________________________________________________');
writeln(' id Групы | Названия Групы | Специальность Групы ');
writeln('________________________________________________________________________');
{~}


while not Eof(f3) do
begin
read(f3,b);
writeln(' ',b.id,' ',' | ', b.name,' | ',' ',b.id_spec);
end;

writeln('________________________________________________________________________');
Close(f3);

{----- end -----------------}

writeln;
writeln('Внимание: Если id не будет соответвоать, Запись не будет добавленая!');
writeln;
writeln('К какой Групе закрепить студента ? (id)');
readln(a.id_group);

assign(f3,'c:\group.txt');
reset(f3);

{ниже условия которое не будет записывать в файл если id не соответсвует!}
while not Eof(f3) do
begin
read(f3,b);

if a.id_group=b.id then
begin
a.id_spec:=b.id_spec; {ok}
write(f1,a);
end;



end;
Close(f3);

{write(f1,a); {rec to main file студента}

Close(f1);
Close(f2);



writeln('end!');
readkey;



end;


{'''''''''''''''''''' end add_student ''''''''''''''''''''''''''''''''}

{***************************** END for A1 (add) *******************************}

{**************************** A2 (dir) ************************************}
{'''''''''''''''''' dir_spec ''''''''''''''''''''' }
Procedure dir_spec;
var
f1: file of specialnist;
a: specialnist;
Begin
clrscr;
Assign(f1,'c:\spec.txt');
reset(f1);

writeln('_______________________________________________________________');
writeln(' id Специальности | Названия Специальности ');
writeln('_______________________________________________________________');

while not Eof(f1) do
begin
read(f1,a);
Writeln(' ',a.id, ' ',' | ', a.name,' ');
end;
writeln('_______________________________________________________________');

Close(f1);
readkey;
end;
{''''''''''''''''''' END ''''''''''''''''''''''''''}

{'''''''''''''''''' dir_group '''''''''''''''''''''}
Procedure dir_group;
var
f1 : file of specialnist;
f2 : file of groups;
a : specialnist;
b : groups;
I : integer;
Begin
clrscr;
Assign(f1,'c:\spec.txt'); {Специальность - f1}
reset(f1);

Assign(f2,'c:\group.txt'); {Група - f2}
reset(f2);

{~}
writeln('________________________________________________________________________');
writeln(' id Групы | Названия Групы | Специальность Групы ');
writeln('________________________________________________________________________');
{~}


while not Eof(f2) do
begin
read(f2,b);
writeln(' ',b.id,' ',' | ', b.name,' | ',' ',b.id_spec);

{while not Eof(f1) do
begin
read(f1,a);
if b.id_spec=b.id then write(a.name);
end;}

end;

writeln('________________________________________________________________________');
Close(f2);
Close(f1);
readkey;
end;
{''''''''''''''''' END ''''''''''''''''''''''''''''}

{''''''''''''''''' dir_student ''''''''''''''''''''}
Procedure dir_student;
var
f1 : file of specialnist;
f2 : file of groups;
f3 : file of student;
a : specialnist;
b : groups;
v : student;
Begin
clrscr;

Assign(f1,'c:\spec.txt'); {Специальность - f1}
reset(f1);

Assign(f2,'c:\group.txt'); {Група - f2}
reset(f2);

Assign(f3,'c:\student.txt'); {Студенты - f3}
reset(f3);


{~}
writeln('__________________________________________________________________________');
writeln('id студента| Студент | Група | Специальность | Средний бал ');
writeln('__________________________________________________________________________');
{~}


while not Eof(f3) do
begin
read(f3,v);
writeln(' ',v.id,' ',' ',v.name,' ',' ',v.id_group,' ',v.id_spec,' ',v.ser_bal);
end;

writeln('________________________________________________________________________');
Close(f2);
Close(f1);
Close(f3);
readkey;

end;

{''''''''''''''' END ''''''''''''''''''''''''''' }


{''''''''''''''''''''''''''''''''''''''''''''''' DELETE '''''''''''''''''''''''''}

{---------------------------------------------- DEL_SPEC -----------------------}

Procedure del_spec;
Begin
end;

{--------------------------------------------- END DEL_SPEC ---------------------}

{---------------------------------------------- DEL_Group -----------------------}

Procedure del_group;
Begin
end;

{---------------------------------------------- END DEL_Group -----------------------}

{---------------------------------------------- DEL_Student -----------------------}

Procedure del_student;
var
f1,f2: file of Student;
a,b: Student;
Begin

clrscr;
writeln('DEL Students');

{1}
Assign(f1,'c:\student.txt');
Assign(f2,'c:\student.bak');


reset(f1);
rewrite(f2);

{~}
writeln('________________________________________________________________________');
writeln(' id Групы | Названия Групы | Специальность Групы ');
writeln('________________________________________________________________________');
{~}

{Запсиь c копии spec.txt в spec.bак}
while not Eof(f1) do
begin

{writeln('ID=',a.id,' name=',a.name,' group=',a.id_group);
writeln('---------------------------------------------------');}
read(f1,a);
writeln(' ',a.id,' ',' | ', a.name,' | ',' ',a.id_spec);

write(f2,a);
end;
writeln('________________________________________________________________________');

Close(f1);
Close(f2);
{/1}


{2}
Assign(f1,'c:\student.txt');
Assign(f2,'c:\student.bak');

rewrite(f1);
reset(f2);

writeln;
writeln('Внимание: Если id не будет соответвоать, Запись не будет Удалена!');
writeln;


Writeln('Какого Студента Вы хотите удалить? (ID)');
Readln(b.id); {DELTE!}
{ Цыкляшка для удаления Студента }
while not Eof(f2) do
begin
read(f2,a);

if a.id<>b.id then
begin
write(f1,a);
end;

end;
Close(f1);
Close(f2);
readkey;
end;

{---------------------------------------------- END DEL_Student -----------------------}

{'''''''''''''''''''''''''''''''''''''''''''''''' END DELETE ''''''''''''''''''''}

{**************************** END for A2 (dir) ********************************}

{'''''''''''''''''''' A1 ''''''''''''''''''''''''''''''''''''''''''}
procedure A1;
begin
clrscr;
repeat
clrscr;
writeln ('1 - Добавить Специальность,');
writeln ('2 - Добавить Групу');
writeln ('3 - Добавить Студента');
writeln ('4 - Вернутся в Главное Меню');
c := readkey;
case c of
'1' :add_spec;
'2' :add_group;
'3' :add_student;
'4' :;
end;
until c = '4';

end;
{'''''''''''''''''''''''''''''''''' end A1 ''''''''''''''''''''''''''''''''''}


{''''''''''''''''''''''''''''''''''' A2 '''''''''''''''''''''''''''''''''''''}
procedure A2;
begin
clrscr;
repeat
clrscr;
writeln ('1 - Просмотр всех Специальностей');
writeln ('2 - Просмотр всех Груп');
writeln ('3 - Просмотр всех Студентов');
writeln ('4 - Вернутся в Главное Меню');
c := readkey;
case c of
'1' :dir_spec;
'2' :dir_group;
'3' :dir_student;
'4' :;
end;
until c = '4';
end;
{''''''''''''''''''''''''''''''''''' end A2 '''''''''''''''''''''''''''''''''}

{'''''''''''''''''''''''''''''''''' A3 ''''''''''''''''''''''''''''''''''}
procedure A3;
begin
clrscr;
repeat
clrscr;
writeln ('1 - Удаления Специальностей');
writeln ('2 - Удаления Груп');
writeln ('3 - Удаления Студентов');
writeln ('4 - Вернутся в Главное Меню');
c := readkey;
case c of
'1' :del_spec;
'2' :del_group;
'3' :del_student;
'4' :;
end;
until c = '4';
end;



{'''''''''''''''''''''''''''''''''' END A3 '''''''''''''''''''''''''''''''''}

Procedure author;
Begin
ClrScr;

writeln;
Writeln(' ~\\|//~ ');
Writeln(' -(o o)- ');
Writeln(' ┌──────────-oOOOo──(_)──oOOOo───────────┐ ');
Writeln(' │ │ ');
Writeln(' │ ----------------------- │ ');
Writeln(' │ ИПС beta v1 │ ');
Writeln(' │ ----------------------- │ ');
Writeln(' │ │ ');
Writeln(' │ Автор Програмы: │ ');
Writeln(' │ │ ');
Writeln(' │ ***** Дмитрий ******* │ ');
Writeln(' │ │ ');
Writeln(' │ │ ');
Writeln(' │ Курсовая №1 В-II │ ');
Writeln(' │ │ ');
Writeln(' │ Група: ММК** │ ');
Writeln(' │ │ ');
Writeln(' │ │ ');
Writeln(' │ .oooO Oooo. │ ');
Writeln(' └─────────────( )───( )─────────────┘ ');
Writeln(' \ ( ) / ');
Writeln(' \_) (_/ ');


Readkey;
End;

{///////////////// Procedur's and Function's END////////////////////////////////////////}


end.





Вот самая прога:
 

Program k1;

uses Crt,vbp;


{////////////////////////// Main Program /////////////////// ////////////////}

Begin
repeat
clrscr;
writeln ('1 - Добавить Студента, Групу, Студента');
writeln ('2 - Поиск Студентов');
writeln ('3 - Просмотр Специальностей, Груп, Студентов');
writeln ('4 - Удаления специальностей, Груп, Студентов');
writeln ('5 - Автор©');
writeln ('6 - Выход');

c := readkey;
case c of
'1' : A1;
'2' : ;
'3' : A2;
'4' : A3;
'5' : author;
'6' :;
end;
until c = '6';
end.




Так запарился ,что "репа" хоть бы до утро прошла blink.gif

Еще надо блин: реализовать поиск(но это вроде фигня, сделаю),Совместноя удаления(чуть попарусь и думаю сделаю), меня вот что колышит: что то не могу идшники к названиям привязать.... blink.gif

ну и в конце самое главное када скелет буит готов надо будет обезательно пристроить графический интерфей с окнами, что для меня убийство, никак асилить не магуsad.gif

Сообщение отредактировано: Димас -


--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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