primer fayla v konsolnom rezhime
TRANSCRIPT
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
1/17
Пример выполнения заданияв консольном режиме
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
2/17
Написать программу по обработкефайла, содержащего информацию о рей-тинге студентов. Каждая апись должнасодержать !"# студента и полу$енн%й баллрейтинга.
&%вести информацию, отсортирован-
ную в порядке увели$ения рейтинга.
'еультат% в%полнения программ%со(ранить в текстовом файле.
)ри работе с файлом должн% б%тьв%полнен% следующие действия* соданиенового файла, просмотр все( аписей,
добавление новой аписи, сортировка.
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
3/17
+ля содания текстового файла в
консольном приложении испольуем
функцию fprintf . екст программ%*. . .
/0123456 78950:.;<
/0123456 70:.;<
89=429 >?@A B - Cаблон
2;@= DEFGHIJK структур%
5:4L36 8MLK
N ?@AK- Oтруктурная переменная
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
4/17
019 80P6 Q 80P6:R>?@AK - 'амер аписи
DEST UDP, UD9K - Vкаатели файлов
2;@= D036M?@AGJ Q [email protected]@9WK
XX 2;@= D036M?@AGYIJK
2;@= D036MZ6PGJ Q W=6P439.9[9WK
XX 2;@= D036MZ6PGYIJK
\:05 F49>?@AK - )рототип функции
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
5/17
\:05 ]@01
B
019 ^:5, - +ля в%бора действия
0, _, - )еременн%е циклов
^:3K - Коли$ество аписей3:1` 361K - #бaем файла
>?@A 89, - bлемент структур%
U]@8M?K - Vкаатель для массива
D9 Q R:A61D036MZ6P, WcWK - #ткр%тие
текстового файла для со(ранения реультатов
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
6/17
c;036 9=46 B - dесконе$н%й цикл
A498We1 f=6@96 g he1 i55 g Y
e1 j06c g He1 k:=9 g l
e1 TmE> g IWK
82@1RWn5W, o^:5K
pсли добавить пункт* q&ведите имяфайлаr, то можно в процессе
в%полнения программ% в%бирать
нужн%й файл.
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
7/17
8c092;^:5 B
2@86 h* - Oодание нового файла
DP Q R:A61D036M?@A, WcLWK - #ткр%тие 0R DP QQ stSS B - )роверка
A498We1 f=6@96 TZZFZuWK
=694=1K
N
R23:86DPK - vакр%тие файла
A=019RWe1 f=6@96 s6c D036 n8 ue1W,
D036M?@AK
L=6@^K - Конец 2@86 h
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
8/17
2@86 Y* - +обавление новой аписи
DP Q R:A61D036M?@A,W@LWK - #ткр%тие
A=019RWe1 DEF g WK
RR348;89501K - #$истка потока ввода
`[email protected] A=019RW w@33 g WK
82@1RWn3RW, [email protected]
Rc=096o?@A, 80P6, h, DPK - vапись в файл
R23:86DPK - vакр%тие файла
L=6@^K - Конец 2@86 Y
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
9/17
2@86 H*
0R DP Q R:A61D036M?@A,W=LW QQ stSS
B- #ткр%тие файла для $тения с проверкой
A498We1 FA61 TZZFZuWK
=694=1K N
A=019RWe1e9--------- E1R:=]@90:18 ---------WK
- &%вод текста с новой строки с табуляциейна xкран
RA=019RD9, We1e9--------- E1R:=]@90:18
---------WK-
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
10/17
c;036h B - dесконе$н%й цикл
XX 0R u R=6@5o?@A,80P6,h,DP L=6@^K
0R R=6@5o?@A,80P6,h,DP QQ I L=6@^K- O$ит%ваем и файла DP по одной аписи
?@A до те( пор пока не дойдем до конца
файла, т.е. пока реультат функции R=6@5 не
равен I
F49?@AK - &%ов функции для
в%вода информации на xкран и аписи в
текстов%й файл
N - Конец цикла c;036h
R23:86DPK - vакр%тие файла
L=6@^K - Конец 2@86 H
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
11/17
2@86 l* - Oортировка по рейтингу
DP Q R:A61D036M?@A,W=LWK - #ткр%тие
361 Q R036361`9;R0361:DPK - #преде-ление обaема файла в байта(
^:3 Q 361 X 80P6K - 'ас$ет коли$ества
аписей в файле]@8M? Q 16c >?@AG^:3JK - Oодание
динами$еского массива
R=6@5]@8M?, 80P6, ^:3, DPK - yтение ^:3аписей каждая рамером 80P6 байт и
файла DP и апись по адресу ]@8M?
R23:86DPK - vакр%тие файла
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
12/17
A=019RWe1e9----- k F Z > -----e1WK - &%вод
текста на xкран
RA=019RD9,We1e9----- k F Z > -----e1WK - vаписьтакого же текста в файл реультатов D9
R:= 0 Q IK 0 7 ^:3 - hK 0zz -
Oортировка R:= _ Q 0zhK _ 7 ^:3K _zz
0R ]@8M?G0J.8ML < ]@8M?G_J.8ML B
89 Q ]@8M?G0JK - )ерестановка
]@8M?G0J Q ]@8M?G_JK
]@8M?G_J Q 89K
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
13/17
R:= 0 Q IK 0 7 ^:3K 0zz - &%вод все(
F49]@8M?G0JK аписей
563696 GJ]@8M?K
L=6@^K - Конец 2@86 l
2@86 I* - Конец работ%R23:86D9K - vакр%тие текстового файла
=694=1K - &%(од и функции ]@01
N - Конец оператора 8c092;
N - Конец оператора c;0369=46
N - Конец функции ]@01
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
14/17
!ункция в%вода одной аписи на xкран и
аписи в файл
\:05 F49 >?@A P
B
A=019R We1 nYI8 , n{.H3R W, P.DEF, P.8MLK- &%вод на xкран полей DEF и 8ML аписи P
RA=019R D9, We1 nYI8 , n{.H3R W, P.DEF, P.8MLK
- vапись в текстов%й файл D9 аналоги$ной
информации
N
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
15/17
&%брав пункт qhr, откр%ваем файл
DP Q R:A61D036M?@A, WcLWK
с логи$еским именем DP укаатель с
фии$еским именем D036M?@A равн%м в
на|ем примере zapisi .dat массив 2;@=,
котор%й будет располагаться в текущей
рабо$ей папке.
'ежим откр%тия cL g для содания несуществующего бинарного файла, или
амен% существующего файла на нов%й со
стиранием пред%дущей информации.
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
16/17
&%бирая пункт qYr, откр%ваем файл
DP Q R:A61D036M?@A,W@LWK
- аналоги$но файл с укаателем DP и именем
D036M?@A.
Но режим откр%тия @L g для содания
первой аписи у не существующего бинарного
файла, или добавления новой аписи в конец
существующего файла. &%бирая пункт qYr добавляем столько
аписей, сколько надо. & xтом пункте можно
поставить цикл.
-
8/16/2019 Primer Fayla v Konsolnom Rezhime
17/17
&%брав пункт qHr, просматриваем
содержимое файла и апис%ваем в
реультирующий текстов%й файл D9.Oортированн%е аписи в%ведем на
xкран и апи|ем в файл, в%брав пункт qlr.
)ри работе пунктов qHr и qlr файлоткр%ваем для $тения
DP Q R:A61D036M?@A,W=LWK
'ежим откр%тия =L g для $тения информации
и существующего бинарного файла, при его
отсутствии g о|ибка.