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

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

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

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


Пионер
**

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

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


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


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

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

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

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


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

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

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


--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Димас
сообщение 22.05.2007 21:15
Сообщение #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

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


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

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


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

 



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