Помощь - Поиск - Пользователи - Календарь
Полная версия: Информационное табло по баскетболу
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
LOVE133
Финальным аккордом стала такая задача.Необходимо создать табло, которое выдавало бы данные о команде, игроке, времени попадания и очках за мяч. Ввод данных у меня получается, оформление диалогового режима в виде меню тоже, а как информацию из файла в виде таблицы на экран или на принтер вывести - вот тут -то и возникли трудности. Вот что получилось . Там есть программки, для добавления в файл, для просмотра, только что-то на работает.... Может , подскажете, что именно.


Не стоит постить с вои задания в FAQ
klem4
ВОзможнт тебе вот это нужно, вот пример вывода данных в виде таблицы


program kuznecov_2;

uses crt;

type

TGoods = array[1..50] of record
name : string[15];
cost : word;
pPlan : word;
pFact : word;
pPercent : byte;
end;

var

goods : TGoods;

n : byte;

procedure FillData(var r : TGoods; size : byte);
var
i : byte;
begin
for i := 1 to size do
with r[i] do begin
clrscr;
writeln('Tovar N ', i);
writeln;
write('Imya : '); readln(name);
write('Cena : '); readln(cost);
write('Skolko nado prodat po planu : '); readln(pPlan);
write('Skolko prodano po faktu : '); readln(pFact);

pPercent := round(100*pFact/pPlan);

end;

writeln;
writeln('Spasibo, vvod zavershen, najmite lunuy klavishu');
repeat
until keypressed;
clrscr;
end;

procedure ShowTable(r : TGoods; size : byte);
var
i : integer;
begin

writeln('+-------------+------+--------+-------+---------+');
writeln('| NAME | COST | PLAN | FACT | PERCENT |');
writeln('+-------------+------+--------+-------+---------+');

for i := 1 to size do
with r[i] do begin
writeln('|', name : 10,'|':4, cost : 5,'|':2,pPlan :5,'|':4,
pFact : 4, '|':4, pPercent:6, '|':4);
writeln('+-------------+------+--------+-------+---------+');
end;

end;
Begin

clrscr;

write('Kol-vo tovarov : ');

readln(n);

FillData(goods, n);
ShowTable(goods, n);

readln;


End.
volvo
Цитата
Там есть программки, для добавления в файл, для просмотра, только что-то на работает...
Если ты имеешь в виду, что при выборе пункта меню 'просмотр' ничего не отображается на экране, то это само собой... Ты же пишешь информацию в файл...

Кроме этого, происходит путаница в следующем: Когда ты сохраняешь информацию об игроках (процедура Save), расширение .DAT автоматически НЕ прибавляется к имени файла, а когда пытаешься прочесть (Read_File) - почему-то прибавляется... Просто реши для себя, что в файлах с .DAT будут находиться таблицы, а без .DAT - исходная информация... Поэтому в Read_File строку
assign(f,comname+'.dat');

замени на
assign(f,comname);


Я бы на твоем месте сделал процедуру Print_Table универсальной, так чтобы она могла выводить данные и на экран, и в файл:
procedure print_table(on_screen: boolean; k:integer);
var
i, j: integer;
f: text;

begin
if on_screen then AssignCrt(f)
else begin
write('введите имя команды - '); readln(comname);
assign(f,comname+'.DAT');
end;
rewrite(f);

writeln(f,'таблица по баскетболу');
writeln(f);
for i:=1 to k do
with comands[i] do begin
write(f,com,' ');
write(f,surname:25-length(surname));
writeln(f,'',time:2:2,'','-',goal);
end;
close(f);
if on_screen then begin
write('Для продолжения - нажмите Enter...')
readln;
end;
end;

теперь для того, чтобы вывести таблицу на экран, достаточно вызвать
print_table(true, k);

, а для вывода в файл -
print_table(false, k);
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.