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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2008, 12:43   #1
Coach2
Новичок
Джуниор
 
Аватар для Coach2
 
Регистрация: 30.03.2008
Сообщений: 1
По умолчанию Списки(помогите срочно)

Нужно составить предметный указатель:термин-подтермин-подтермин.И организовать просмотр ,удаление и добавление терминов (причем если удаляеться термин ,то удал все его подтермины),сортировка по алфавиту,поиск (вводишь термин и должно показать страницу на котрой он находиться ,а также страницы всех его подтерминов.Хотя бы часть проги,котор. это делает .Очень срочно нужно!
Coach2 вне форума Ответить с цитированием
Старый 30.03.2008, 20:32   #2
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию

Если чем-то поможет, че-то похоже была у меня контрольная работа, погляди.

Код:
Uses crt;

Type
 str24 = string[24];
 rab = record
	fio: str24;
	data_job: integer;
	doljn: str24;
	oklad: integer;
 end;

var
 key: char;
 num: integer;
 ld: rab;
 ved: array[1..5] of rab;
 f: file of rab;
 i: integer;
 filename: string;

Procedure Title;
begin
Writeln('┌───┬──────────────────┬─────────┬─────────────┬───────┐');
Writeln('│ N   │                    FIO        │Data job     │    Doljn             | Oklad     │');
Writeln('└───┴──────────────────┴─────────┴─────────────┴───────┘');
end;

Procedure Form;
var
 fm: str24;
 d_job,okl: integer;
 dol: string;
 x,y: integer;

begin
 ClrScr;
 Title;
 x:=3;
 y:=5;

 for i:=1 to 5 do
	begin
	 GoToXY(x,y);
		write(i,'.');

	 GoToXY(x+4,y);
		readln(fm);
		ved[i].fio:=fm;
		x:=26;
	 GoToXY(x,y);
		readln(d_job);
		ved[i].data_job:=d_job;
		x:=36;
	 GoToXY(x,y);
		readln(dol);
		ved[i].doljn:=dol;
		x:=50;
	 GoToXY(x,y);
		readln(okl);
		ved[i].oklad:=okl;

	 x:=3;
	 inc(y);
	end;
end;

Procedure Print;
var
 x,y: integer;
begin
 x:=3;
 y:=5;
 ClrScr;
 Title;
 Writeln;

for i:=1 to 5 do
 begin
	GoToXY(x,y);
	write(i,'.');

	GoToXY(x+4,y);
		write(ved[i].fio);
		x:=26;
	 GoToXY(x,y);
		writeln(ved[i].data_job);
		x:=36;
	 GoToXY(x,y);
		writeln(ved[i].doljn);
		x:=50;
	 GoToXY(x,y);
		writeln(ved[i].oklad);

	 x:=3;
	 inc(y);
 end;
end;

Procedure Save;
begin
 ClrScr;
 Title;
 writeln;
 writeln('Imya fayla : ');
	readln(filename);
 filename:=filename+'.txt';
 Assign(f,filename);
 rewrite(f);
 for i:=1 to 5 do
	begin
	 write(f,ved[i]);
	end;
 close(f);
 writeln('Sohranenie zakoncheno');
end;

Procedure Load;
var
 x,y: integer;
begin
 ClrScr;
 Title;
 Writeln('Vvedite imya fayla:');
 readln(filename);
 filename:=filename+'.txt';
 Assign(f,filename);
 Reset(f);

 x:=3;
 y:=5;
 ClrScr;
 Title;
 Writeln;

 for i:=1 to FileSize(f) do
 begin
	read(f,ld);

	GoToXY(x,y);
	write(i,'.');

	GoToXY(x+4,y);
		write(ld.fio);
		x:=26;
	 GoToXY(x,y);
		writeln(ld.data_job);
		x:=36;
	 GoToXY(x,y);
		writeln(ld.doljn);
		x:=50;
	 GoToXY(x,y);
		writeln(ld.oklad);

	 x:=3;
	 inc(y);
 end;
 Close(f);
end;

Procedure Poisk;
var
 name: string;
 x,y: integer;
begin
 writeln;
 writeln('Vvedite FIO dlya poiska :');
 readln(name);
 Reset(f);

 x:=3;
 y:=5;

 for i:=1 to 5 do begin
	read(f,ld);
	if ld.fio = name then begin
		ClrScr;
		Title;
		writeln;
		GoToXY(x,y);
		write(i,'.');
		GoToXY(x+4,y);
		 write(ld.fio);
		 x:=26;
		GoToXY(x,y);
		 writeln(ld.data_job);
		 x:=36;
		GoToXY(x,y);
		 writeln(ld.doljn);
		 x:=50;
		GoToXY(x,y);
		 writeln(ld.oklad);
	end;
 end;
 Close(f);
end;

Procedure Del;
var
 name: string;
 f1: file of rab;
 num_str: string;
 num_to_del: integer;
 x,y: integer;
begin
 writeln;
 writeln('Vvedite nomer zapisi dlya ydaleniya :');
 readln(num_to_del);
 Reset(f);
 Assign(f1,'TMP');
 rewrite(f1);
 for i:=1 to FileSize(f) do
	begin
	read(f,ld);
	if num_to_del <> i then
		write(f1,ld);
	end;
 erase(f);
 rename(f1,filename);
 Close(f);
 Close(f1);


 x:=3;
 y:=5;
 ClrScr;
 Title;
 Writeln;
 Assign(f,filename);
 Reset(f);
 for i:=1 to FileSize(f) do
 begin
	read(f,ld);

	GoToXY(x,y);
	write(i,'.');

	GoToXY(x+4,y);
		write(ld.fio);
		x:=26;
	 GoToXY(x,y);
		writeln(ld.data_job);
		x:=36;
	 GoToXY(x,y);
		writeln(ld.doljn);
		x:=46;
	 GoToXY(x,y);
		writeln(ld.oklad);

	 x:=3;
	 inc(y);
 end;


end;

Procedure MyWindow(x1,y1,x2,y2,col: byte);
begin
 Window(x1,y1,x2,y2);
 textBackGround(col);
 ClrScr;
end;

Procedure Menu;
begin
 MyWindow(64,7,78,18,1);
 TextbackGround(4);
 Writeln('     Menu     ');
 Writeln('              ');
 Writeln(' 1. Formir    ');
 Writeln(' 2. Print     ');
 Writeln(' 3. Save      ');
 Writeln(' 4. Load      ');
 Writeln(' 5. Poisk     ');
 Writeln(' 6. Delete    ');
 Writeln(' 7. Exit      ');
end;

begin
 MyWindow(60,1,80,25,1);
 Menu;
 MyWindow(1,1,59,25,5);
 Textbackground(5);

 repeat
 key:=readkey;
 case key of
	'1': Form;
	'2': Print;
	'3': Save;
	'4': Load;
	'5': Poisk;
	'6': Del;
 end;
 until key='7';
end.

Последний раз редактировалось Небесный; 30.03.2008 в 20:35.
Небесный вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите доделать на списки VANOLORD Паскаль, Turbo Pascal, PascalABC.NET 5 21.05.2008 18:30
паскаль динамич. списки...помогите кто чем может) Никита35 Помощь студентам 16 09.05.2008 16:41
Срочно,пожалуйста...паскаль динамич. списки Никита35 Помощь студентам 2 07.05.2008 22:48
Паскаль,списки.Срочно,пожалуйста... Никита35 Помощь студентам 7 06.05.2008 11:25
Здраствуйте!Зачетные задачки на списки...))) Помогите,плиз! Никита35 Помощь студентам 1 24.04.2008 14:02