1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Общем задали вот такую задачу: Сделать с помощью способов языка программирования Pascal Информационно - Поискову Систему (ИПС): -------------------------------------------------------------------------------------------------- Добавления новых специальностей , груп та студентов; Поиск студентов за группой ,за Фамилией, за специальностью ,за средним балом; Просмотр всех существующих специальностей, груп та студентов; Удаление указанной специальности , группы студента (с безопасностью сохранения ценности данных) -------------------------------------------------------------------------------------------------- Требование к разработки ИПС:
Все операции с данными в ИПС должны быть сделаны в форме процедур или функций, которые должны быть собранные в Модуль!
Работа с ИПС должна быть реализованная в режиме диалогу, в котором надо предвидеть основные режимы роботы с данными (Добавление новых, вывод уже существующих, Искать за указанными критериями, Удаление данных, выход с системы)
ИПС реализовать у виде Файловой Системы, тоисть все основные объекты базы данных(мой комент: имеется веду не БД , мы не учили еще, а *.txt файлы) должны сохранятся у отдельных файлах, между которыми взаимодействует связь через специальные поля.
Вот такую жесть задали
Подскажите с чего начать? (я имею виду не код, а саму идею алгоритма)
Сообщение отредактировано: Димас -
--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
{ 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
{ 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
{ 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; 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);
{~} 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;
{~} writeln('________________________________________________________________________'); writeln(' id Групы | Названия Групы | Специальность Групы '); writeln('________________________________________________________________________'); {~}
{Запсиь c копии spec.txt в spec.bак} while not Eof(f1) do begin
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 '''''''''''''''''''''''''''''''''}
c := readkey; case c of '1' : A1; '2' : ; '3' : A2; '4' : A3; '5' : author; '6' :; end; until c = '6'; end.
Так запарился ,что "репа" хоть бы до утро прошла
Еще надо блин: реализовать поиск(но это вроде фигня, сделаю),Совместноя удаления(чуть попарусь и думаю сделаю), меня вот что колышит: что то не могу идшники к названиям привязать....
ну и в конце самое главное када скелет буит готов надо будет обезательно пристроить графический интерфей с окнами, что для меня убийство, никак асилить не магу
Сообщение отредактировано: Димас -
--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)