Курсовая откликнетесь все плиииииз (Разъяснить и подсказать по паскалю)

Модератор: Модераторы разделов

Lexflax
Сообщения: 1
ОС: windows 7

Курсовая откликнетесь все плиииииз

Сообщение Lexflax »

Задачи по курсовой описаны , решение дал друг но сам я сомневаюсь что он ее делал , можите дать пояснения ко блокам программы а лучше конечно описать что какая процедура выполняет ... и описать те места что они выполняют где я поставил знаки вопроса, заранее спасибо очень важно откликнетесь плизз заодно если по моим вопросам знаете точные ссылки подробные для их решения тоже оставляйте только подписывайте пояснение на что ссылка...
1. Постановка задачи.

Создать текстовый файл с исходными данными в соответствии с заданной структурой:
Расчет движения
Наименование воздушной линии Тип самолета Количество рейсов Налет, тыс. км Пассажирооборот, человеко-км

Разработать меню, используя, оператор repeat/until, в котором предусмотреть следующие пункты:
1) ввод данных в массив записей:
• из текстового файла;
• из типизированного файла;
• с экрана.
2) обработку массива записей:
• сортировку по заданному полю;
• поиск по заданному полю с сохранением результатов в виде таблицы в текстовом файле.
3) корректировку массива записей:
• вставка нового элемента;
• удаление указанного элемента;
• замена полей указанного элемента.
4) вывод массива записей на экран и сохранение его в файл:
• сохранение массива записей в текстовый файл;
• сохранение массива записей в виде таблицы в текстовом файле;
• сохранение массива записей в типизированный файл.
5) выход.

program Cntrl;
uses crt;
const shapka1=#218+'---'+#194+'----------------'+#194+'--------------'+#194+'----------'+#194+'------------'+#194+
'-----------------'+#191;
shapka2=#179+' '+#179+' Naimenovanie '+#179+' Tip '+#179+' Kol-vo '+#179+' Nalet, '+#179+
' Passajirooborot '+#179;
shapka3=#179' '+#252+' '+#179+' vozdushnoi '+#179+' samoleta '+#179+' reisov '+#179+' tys.km '+
#179+' cheloveko-km '+#179;
shapka4=#179+' '+#179+' linii '+#179+' '+#179+' '+#179+' '+#179+
' '+#179;
shapka5=#195+'---'+#197+'----------------'+#197+'--------------'+#197+'----------'+#197+'------------'+#197+
'-----------------'+#180;
shapka6=#192+'---'+#193+'----------------'+#193+'--------------'+#193+'----------'+#193+'------------'+#193+
'-----------------'+#217; ????????????(что означает +#193,197,217,179,252,191,192)??????
type zap=record
nml:string[15];
tps:string[13];
klr:integer;
nlt:integer;
chb:integer;
end;
pp=array[1..99] of zap;
p=byte;
procedure vtx(var mmas:pp; var mn:p); {1.1. Vvod dannyh iz tekstovogo faila}
var i:p; fp:text; name:string;
begin
clrscr;
writeln('Vv-te imya faila (naprimer, c:\temp\txtf.pas):');
readln(name);
if (name='1')or(name='') then name:='txtf.pas' else ???????????(почему здесь присваиваются наим цифры???)
if name='2' then name:='c:\temp\txtf.pas';
assign(fp,name);
reset(fp); i:=1;
while not eof(fp) do ???????????( что означает эта строка и какие у нее параметры????)
with mmas[i] do
begin
readln(fp,nml); readln(fp,tps); ?????????(зачем тут в вводе все время писать fp?)
readln(fp,klr); readln(fp,nlt);
readln(fp,chb); i:=i+1; ???????????? ( за что тут принимают i ?)
end;
mn:=i-1; ??????????( за что тут принимают Mn? тоесть где используют?)
close(fp);
end;
procedure vtp(var mmas:pp; var mn:p); {1.2. Vvod dannyh iz tip. faila}
var i:p; fp:file of zap; name:string;
begin clrscr;
writeln('Vv-te imya faila (naprimer, c:\temp\tpzf.dat):');
readln(name);
if (name='1')or(name='') then name:='tpzf.dat' else
if name='2' then name:='c:\temp\tpzf.dat';
assign(fp,name); reset(fp); i:=1;
while not eof(fp) do
begin read(fp,mmas[i]); i:=i+1; end;
mn:=i-1; close(fp);
end;
procedure srt(var mmas:pp; var mn:p); {2.1. Sortirovka po zadannomu polyu}
var key:char; i,j:p; g:zap;
begin
clrscr;
writeln('Vyberite pole dlya sortirovki:');
writeln('1. Naimenovanie vozdushnoi linii');
writeln('2. Tip samoleta');
writeln('3. Kolichestvo reisov');
writeln('4. Nalet (tys. km)');
writeln('5. Passajirooborot (chel/km)');
writeln('6. <<< Nazad');
key:=readkey; ?????????????( что означает реадкей?) и зачем оно тут нужно?
repeat case key of
'1':for j:=1 to mn-1 do for i:=1 to mn-j do ??????? вот по этим блокам дайте пояснение а то все так запутанно тут....
if mmas[i].nml>mmas[i+1].nml then
begin g:=mmas[i]; mmas[i]:=mmas[i+1];
mmas[i+1]:=g; end;
'2':for j:=1 to mn-1 do for i:=1 to mn-j do
if mmas[i].tps>mmas[i+1].tps then
begin g:=mmas[i]; mmas[i]:=mmas[i+1];
mmas[i+1]:=g; end;
'3':for j:=1 to mn-1 do for i:=1 to mn-j do
if mmas[i].klr>mmas[i+1].klr then
begin g:=mmas[i]; mmas[i]:=mmas[i+1];
mmas[i+1]:=g; end;
'4':for j:=1 to mn-1 do for i:=1 to mn-j do
if mmas[i].nlt>mmas[i+1].nlt then
begin g:=mmas[i]; mmas[i]:=mmas[i+1];
mmas[i+1]:=g; end;
'5':for j:=1 to mn-1 do for i:=1 to mn-j do
if mmas[i].chb>mmas[i+1].chb then
begin g:=mmas[i]; mmas[i]:=mmas[i+1];
mmas[i+1]:=g; end;
'6':key:='6';
else key:='0';
end; until key<>'0';
end;
procedure vst(var mmas:pp; var mn:p); {3.1. Vstavka novogo elementa}
var i,j:p; {1.3. Vvod dannyh s ekrana}
begin clrscr;
write('Vvedite kolichestvo zapisei: ');
readln(j); mn:=mn+j;
for i:=(mn-j+1) to mn do with mmas[i] do
begin
clrscr; writeln(i,' iz ',mn,'. Vvedite:');
write('Naimenovanie vozdushnoi linii (max.15): '); readln(nml);
write('Tip samoleta (max.13): '); readln(tps);
write('Kolichestvo reisov: '); readln(klr);
write('Nalet (tys. km): '); readln(nlt);
write('Passajirooborot (chel/km): '); readln(chb);
end;
end;
procedure udl(var mmas:pp; var mn:p); {3.2. Udalenie ukazannogo elementa}
var i,j,ch:p; mm:array[1..99] of boolean;
begin clrscr;
write('Vvedite kolichestvo zapisei dlya udaleniya (vsego ',mn,'): ');
readln(j); for i:=1 to mn do mm[i]:=false;
writeln('Vvedite nomera zapisei cherez probel (ot 1 do ',mn,'): ');
for i:=1 to j do begin read(ch); mm[ch]:=true; end; ch:=0;
for i:=1 to mn do if (mm[i]) then ch:=ch+1
else if ch>0 then mmas[i-ch]:=mmas[i]; mn:=mn-j;
end;
procedure zam(var mmas:pp; var mn:p); {3.3. Zamena polei ukazannogo elementa}
var i,j:p; mm:array[1..99]of byte;
begin clrscr;
write('Vvedite kolichestvo zapisei dlya izmeneniya (vsego ',mn,'): ');
readln(j); writeln('Vvedite nomera zapisei cherez probel:');
for i:=1 to j do read(mm[i]); readln;
for i:=1 to j do with mmas[mm[i]] do
begin
clrscr; writeln(mm[i],'. Vvedite:');
write('Naimenovanie vozdushnoi linii (max.15): '); readln(nml);
write('Tip samoleta (max.13): '); readln(tps);
write('Kolichestvo reisov: '); readln(klr);
write('Nalet (tys. km): '); readln(nlt);
write('Passajirooborot (chel/km): '); readln(chb);
end;
end;
procedure stx(var mmas:pp; var mn:p); {4.1 Sohranenie v tekstovyi fail}
var fp:text; name:string; i:p;
begin
clrscr;
writeln('Vvedite imya faila (naprimer, "c:\temp\txtf.pas"): ');
readln(name);
if (name='')or(name='1') then name:='txtf.pas' else
if name='2' then name:='c:\temp\txtf.pas';
assign(fp,name);
rewrite(fp);
for i:=1 to mn do with mmas[i] do
begin
writeln(fp,nml);
writeln(fp,tps);
writeln(fp,klr);
writeln(fp,nlt);
writeln(fp,chb);
end;
close(fp);
end;
procedure stt(var mmas:pp; var mn:p); {4.2 Sohranenie v vide tablici}
var fp:text; name:string; i:p;
begin
clrscr;
writeln('Vvedite imya faila (naprimer "c:\temp\txtt.pas"): ');
readln(name);
if (name='')or(name='1') then name:='txtt.pas' else
if name='2' then name:='c:\temp\txtt.pas';
assign(fp,name);
rewrite(fp);
for i:=1 to mn do with mmas[i] do
begin
writeln(fp,shapka1);
writeln(fp,shapka2);
writeln(fp,shapka3);
writeln(fp,shapka4);
writeln(fp,shapka5);
for i:=1 to mn do with mmas[i] do
writeln(fp,#179,i:2,' ',#179,nml:15,' ',#179,tps:13,' ',#179,klr:9,' ',#179,nlt:11,' ',#179,chb:16,' ',#179);
writeln(fp,shapka6);
end;
close(fp);
end;
procedure stp(var mmas:pp; var mn:p); {4.3 Sohranenie v tipizirovannyi fail}
var fp:file of zap; name:string; i:p;
begin
clrscr;
writeln('Vvedite imya faila (naprimer "c:\temp\tpzf.dat"): ');
readln(name);
if (name='')or(name='1') then name:='tpzf.dat' else
if name='2' then name:='c:\temp\tpzf.dat';
assign(fp,name);
rewrite(fp);
for i:=1 to mn do write(fp,mmas[i]);
close(fp);
end;
procedure vvd(var mmas:pp; var mn:p); {4. Vyvod massiva zapisei na ekran}
var i:p; key:char;
begin
if mn>0 then
begin
clrscr;
writeln(shapka1);
writeln(shapka2);
writeln(shapka3);
writeln(shapka4);
writeln(shapka5);
for i:=1 to mn do
with mmas[i] do writeln(#179,i:2,' ',#179,nml:15,' ',#179,tps:13,' ',#179,klr:9,' ',#179,nlt:11,' ',#179,chb:16,' ',#179);
writeln(shapka6);
writeln;
writeln('1) Sohranit` v tekstovyi fail');
writeln('2) Sohranit` v tekstovyi fail v vide tablicy');
writeln('3) Sohranit` v tipizirovannyi fail');
writeln('4) <<< Nazad');
repeat
key:=readkey;
case key of
'1':stx(mmas,mn);
'2':stt(mmas,mn);
'3':stp(mmas,mn);
'4':key:='4';
else key:='0';
end;
until key<>'0';
end
else begin write(' Nechego vyvesti!!!'); delay(50000); end;
end;
procedure psk(var mmas:pp; var mn:p); {2.2. Poisk po zadannomu polyu}
var key:char; i,j:p; name:string; ch:integer; mm:pp;
begin clrscr; j:=0;
writeln('Vyberite pole dlya poiska:');
writeln('1. Naimenovanie vozdushnoi linii');
writeln('2. Tip samoleta');
writeln('3. Kolichestvo reisov');
writeln('4. Nalet (tys. km)');
writeln('5. Passajirooborot (chel/km)');
writeln('6. <<< Nazad');
key:=readkey; write('Naiti: ');
repeat case key of
'1':begin readln(name);
for i:=1 to mn do
if (pos(name,mmas[i].nml)>0) then
begin j:=j+1; mm[j]:=mmas[i]; end; end;
'2':begin readln(name);
for i:=1 to mn do
if (pos(name,mmas[i].tps)>0) then
begin j:=j+1; mm[j]:=mmas[i]; end; end;
'3':begin readln(ch);
for i:=1 to mn do
if mmas[i].klr=ch then
begin j:=j+1; mm[j]:=mmas[i]; end; end;
'4':begin readln(ch);
for i:=1 to mn do
if mmas[i].nlt=ch then
begin j:=j+1; mm[j]:=mmas[i]; end; end;
'5':begin readln(ch);
for i:=1 to mn do
if mmas[i].chb=ch then
begin j:=j+1; mm[j]:=mmas[i]; end; end;
'6':key:='6';
else key:='0';
end; until key<>'0';
if j>0 then vvd(mm,j) else begin
writeln('Zapicei ne naideno!'); delay(50000); end;
end;
procedure vdn(var mmas:pp; var mn:p); {1. Vvod dannyh v massiv zapicey}
var key:char;
begin clrscr;
writeln(' - Vvod dannyh v massiv zapisei -'); writeln;
writeln('1) Iz tekstovogo faila');
writeln('2) Iz tipizirovannogo faila');
writeln('3) S ekrana');
writeln('4) <<< Nazad');writeln;
writeln; write('Vyberite punkt...');
repeat
key:=readkey;
case key of
'1':vtx(mmas,mn);
'2':vtp(mmas,mn);
'3':vst(mmas,mn);
'4':writeln('nazad');
else key:='0';
end;
until (key<>'0');
end;
procedure obr(var mmas:pp; var mn:p); {2. Obrabotka massiva zapisei}
var key:char;
begin
if mn>0 then begin clrscr;
writeln(' - Obrabotka massiva zapisei -'); writeln;
writeln('1) Sortirovka po zadannomu polyu');
writeln('2) Poisk po zadannomu polyu i sohranenie tablicy rezul`tatov v fail');
writeln('3) <<< Nazad'); writeln;
writeln; write('Vyberite punkt...');
repeat
key:=readkey;
case key of
'1':srt(mmas,mn);
'2':psk(mmas,mn);
'3':writeln('nazad');
else key:='0'; end;
until (key<>'0');
end else begin write(' Nechego vyvesti!!!'); delay(50000); end;
end;
procedure krt(var mmas:pp; var mn:p); {3. Korrektirovka massiva}
var key:char;
begin
if mn>0 then begin clrscr;
writeln(' - Korrektirovka massiva zapisei -'); writeln;
writeln('1) Vstavka novogo elementa');
writeln('2) Udalenie ukazannogo elementa');
writeln('3) Zamena polei ukazannogo elementa');
writeln('4) <<< Nazad'); writeln;
writeln; write('Vyberite punkt...');
repeat
key:=readkey;
case key of
'1':vst(mmas,mn);
'2':udl(mmas,mn);
'3':zam(mmas,mn);
'4':writeln('nazad');
else key:='0'; end;
until (key<>'0');
end else begin write(' Nechego vyvesti!!!'); delay(50000); end;
end;
{####### OSNOVNAYA PROGRAMMA #######}
var q:boolean;
n:byte;
key:char;
mas:pp;
Begin
q:=false; n:=0;
repeat clrscr;
writeln(' - MENU -'); writeln;
writeln('1) Vvod dannyh v massiv zapisei');
writeln('2) Obrabotka massiva zapisei');
writeln('3) Korrektirovka massiva zapisei');
writeln('4) Vyvod massiva na ekran');
writeln('5) Vyhod'); writeln; writeln;
write('Vyberite punkt...');
repeat
key:=readkey;
case key of
'1':vdn(mas,n);
'2':obr(mas,n);
'3':krt(mas,n);
'4':vvd(mas,n);
'5':q:=true;
else key:='0';
end;
until (key<>'0');
until q;
End.
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Курсовая откликнетесь все плиииииз

Сообщение BIgAndy »

Лет пять назад у вас бы был бы стабильный низачод по моему предмету только из-за оформления кода, не говоря уж о его содержании... :cray:
Читать не вомзожно.... :wacko:
Спасибо сказали:
Аватара пользователя
taaroa
Сообщения: 1319

Re: Курсовая откликнетесь все плиииииз

Сообщение taaroa »

Темы от студентов с запросами готовых решений по заданиям зарываются не глядя.

за оформление (и содержание) кода тему смело можно заполировать.
а аффтара^W автора наградить предупреждением.
:wq
Спасибо сказали:
Аватара пользователя
Brainsburn
Сообщения: 950
Статус: /
ОС: Gentoo

Re: Курсовая откликнетесь все плиииииз

Сообщение Brainsburn »

if (name='1')or(name='') then name:='txtf.pas' else ???????????(почему здесь присваиваются наим цифры???)

Цифры тут не присваиваются, вы про оператор if слышали? Присваивается в паскале через := (это не смайл).

Тему сейчас закроют, поэтому на будущее:
1) Оформляйте код!
2) Готовых решений по курсовым и т.п. тут не дают, на блюдце не подносят. Тем более, что готовое решение вам дал друг. Разбирайтесь сами, а по тому, что не понятно, задавайте конкретные вопросы: в чем именно заключается ваша проблема; что вы сделали для ее решения; на каком этапе возникли затруднения.
3) Паскаль в Linux практически не используется.
4) Оформляйте код!
Спасибо сказали:
Аватара пользователя
Aectann
Бывший модератор
Сообщения: 3491
Статус: ...
ОС: OS X, GNU_и_не_только/Linux

Re: Курсовая откликнетесь все плиииииз

Сообщение Aectann »

iУведомление от модератора
Как уже было замечено,

Темы от студентов с запросами готовых решений по заданиям зарываются не глядя.

Закрыто.
My god... it's full of stars!...
Спасибо сказали: