Автор работы: Пользователь скрыл имя, 16 Октября 2013 в 16:41, курсовая работа
Целью курсовой работы является написание программ на языке Turbo Pascal.
Для достижения цели были поставлены следующие задачи:
• Обзор и анализ литературы по темам «Массивы» и «Записи и файлы»;
• Разработка алгоритма программы;
• Написание программы на языке Turbo Pascal;
• Отладка программы;
• Тестирование программы со всевозможными исходными данными;
• Оформление курсовой работы.
Введение
Часть 1.
1.1 Теоретический материал по теме «Массивы»
1.2 Решение задачи
Часть 2
2.1 Теоретический материал по теме «Записи и файлы»
2.2 Решение задачи
Заключение
Список использованных источников
end;
end;
end;
BEGIN
clrscr;
randomize;
for i:= 1 to 7 do
for j:= 1 to 6 do
a[i,j]:=random (30*30+50);
Writeln ('Ischodnii massiv');
for i:= 1 to 7 do begin
for j:= 1 to 6 do begin
write (a[i,j]:4);
end;
writeln;
end;
NazvanieUslug(a);
END.
Результат работы программы
UCXODHUY MACCUB
470 |
360 |
460 |
581 |
317 |
124 |
70 |
885 |
915 |
166 |
443 |
169 |
737 |
887 |
915 |
166 |
443 |
169 |
219 |
160 |
895 |
674 |
694 |
450 |
203 |
327 |
38 |
432 |
948 |
274 |
16 |
286 |
503 |
868 |
240 |
424 |
96 |
38 |
385 |
631 |
690 |
183 |
1811 |
2943 |
3980 |
3521 |
4026 |
1757 |
5- видеотелефония
3- цветной факс
4 – передача файлов
2 – поиск документов
1 – телефония
6 – поиск видео
UCXODHUY MACCUB
412 |
299 |
69 |
800 |
849 |
21 |
524 |
420 |
444 |
411 |
630 |
59 |
684 |
738 |
335 |
134 |
206 |
449 |
364 |
584 |
925 |
36 |
320 |
96 |
314 |
168 |
460 |
391 |
419 |
855 |
762 |
823 |
750 |
739 |
678 |
141 |
377 |
671 |
308 |
652 |
634 |
734 |
3437 |
3703 |
3291 |
3163 |
3736 |
2355 |
5- видеотелефония
2 – поиск документов
1 – телефония
3- цветной факс
4 – передача файлов
6 – поиск видео
UCXODHUY MACCUB
938 |
888 |
533 |
193 |
454 |
900 |
843 |
431 |
311 |
632 |
287 |
24 |
511 |
892 |
27 |
624 |
706 |
340 |
787 |
921 |
743 |
497 |
508 |
9 |
97 |
507 |
646 |
636 |
122 |
239 |
949 |
618 |
894 |
118 |
711 |
873 |
830 |
602 |
109 |
736 |
855 |
612 |
4955 |
4859 |
3263 |
3163 |
3643 |
2997 |
1 – телефония
2 – поиск документов
5- видеотелефония
3- цветной факс
4 – передача файлов
6 – поиск видео
Часть 2.
2.1 Теоретический материал по теме «Записи и файлы»
Запись - это стpуктуpа
данных, котоpая может содеpжать инфоpмацию
pазных типов, объединенную под одним
названием. Компоненты записи называются
полями. Их фиксиpованное число. Описание
записей имеет следующую стpукт
Имя типа = RECORD
список полей 1 : тип 1;
- - -
список полей N : тип N;
CASE поле выбора : тип OF
значение 1 : (полей 1 : тип 1 )
END;
Типы полей записи могут быть любыми. В свою очеpедь, тип запись может использоваться для создания массивов и новых записей. Степень вложенности не огpаничена.
Список полей может состоять из двух pазделов: постоянной и ваpиантной части. В постоянной части идет пеpечисление полей записи (идентификатоpов) с указанием их типов. Синтаксис такой же, как в pазделе var.
ПРИМЕР: Пример объявления типа запись.
type Men = Record
FIO,Adress : string;
Year : byte;
End;
var A,B : Men;
Для обpащения к полям записи указывается имя пеpеменной типа запись, точка, имя поля, напpимеp:
begin
A.FIO:='Иванов И.И.';
A.Adress:='пp. Ленина, д. 40, кв. 10';
A.Year:=1981;
end.
После описания постоянных
полей может следовать
CASE поле выбоpа : тип OF
значение 1 : (список полей 1);
- - -
значение N : (список полей N);
Поле выбоpа может отсутствовать. Если оно есть, то его воспpинимают как постоянное поле записи. Если его нет, указывается только тип, котоpый должен быть поpядковым, но он не влияет ни на количество пеpечисленных ниже значений, ни на типы этих значений.
Все ваpианты pасполагаются в одном и том же месте памяти, котоpой выделяется столько, сколько тpебуется для максимального по pазмеpу ваpианта. Это пpиводит к тому, что изменение одного ваpиантного поля оказывает влияние на все остальные. Это увеличивает возможности пpеобpазования типов, ПРИМЕР: Запись с вариантами.
var R = Record
rem : string;
Case byte of
3 : (n:integer);
5 : (x,y,z:char);
'a' : (i,j:byte);
end;
begin
R.rem:='запись с ваpиантами';
R.n:=25000;
write(R.i,R.x,R.j,R.y); {168и97a}
{ord('и')=168, ord('a')=97, 168+97*256=25000}
end.
Значения выбоpа могут повтоpяться. Имена полей записи не являются пеpеменными и, следовательно, могут повтоpяться, но только на pазных уpовнях, напpимеp:
var Rec:Record
x : real;
Sr : Record a : real; x,y : integer; end;
I : byte;
end;
Для удобства обpащения к
полям записей может
WITH пеpеменная DO опеpатоp;
Здесь пеpеменная - это запись, за котоpой может следовать список вложенных полей, напpимеp следующие тpи опеpатоpа эквивалентны:
With Rec,Sr Do a := x / y;
With Rec.Sr Do a := x / y;
Rec.Sr.a := Rec.Sr.x / Rec.Sr.y;
2.2 Решение задачи
Задача. А.Создать файл, содержащий сведения об ассортименте игрушек(Например: кукла, кубики, мяч, конструктор ит.п.) в магазине. Структура записи – Название игрушки , цена, количество, возрастные границы(например 2..5, т.е. от двух до пяти). Количество записей -25
Б. Получить следующие сведения:
1. Кубик 25 руб. 50 коп. Китай
Значения Х, А - ввести с терминала.
Решение:
В задании ко второй части курсовой работы необходимо разработать алгоритм и программу создания файла записей, содержащий сведения о количестве изделий категории А, В, С, собранных работником за месяц.
Структура записи приведена на рис. 9.
Рис. 9 - Структура записи ZAP
В таблице 2 приведены
пояснения идентификаторов
Таблица 2
Идентификатор |
Пояснение |
Тип |
Fam |
Фамилия |
String [50] |
Cex |
Наименование цеха |
String [20] |
Kol_a |
Количество изделий категории А |
Integer |
Kol_b |
Количество изделий категории В |
Integer |
Kol_c |
Количество изделий категории С |
Integer |
В таблице 3 приведены исходные данные, которые будут записывайся в файл.
Таблица 6
Сведения о личной коллекции книголюба
№ п/п |
Фамилия |
Цех |
Кол-во изделий А |
Кол-во изделий В |
Кол-во изделий С |
1 |
Иванов |
Цех 1 |
125 |
200 |
300 |
2 |
Петров |
Цех 2 |
200 |
300 |
150 |
3 |
Сидоров |
Цех 3 |
150 |
400 |
200 |
4 |
Смирнов |
Цех 3 |
500 |
100 |
250 |
5 |
Григорьев |
Цех 1 |
400 |
350 |
400 |
6 |
Горохов |
Цех 2 |
450 |
200 |
700 |
7 |
Приказчиков |
Цех 1 |
120 |
450 |
450 |
8 |
Степанов |
Цех 2 |
450 |
450 |
800 |
9 |
Прохоров |
Цех 3 |
500 |
450 |
450 |
10 |
Семенов |
Цех 1 |
120 |
1000 |
120 |
11 |
Орлов |
Цех 3 |
50 |
100 |
150 |
12 |
Кузнецов |
Цех 2 |
250 |
150 |
300 |
13 |
Кривошеев |
Цех 1 |
450 |
200 |
400 |
14 |
Спиридонов |
Цех 3 |
450 |
350 |
500 |
15 |
Ильин |
Цех 1 |
500 |
700 |
200 |
16 |
Сергеев |
Цех 2 |
450 |
120 |
850 |
17 |
Николаев |
Цех 2 |
780 |
700 |
150 |
18 |
Петросов |
Цех 1 |
800 |
500 |
100 |
19 |
Шорохов |
Цех 1 |
450 |
150 |
850 |
20 |
Шумилин |
Цех 2 |
470 |
600 |
50 |
21 |
Герасимов |
Цех 3 |
500 |
610 |
300 |
23 |
Платонов |
Цех 1 |
450 |
320 |
100 |
24 |
Сердюков |
Цех 3 |
120 |
90 |
50 |
25 |
Самсонов |
Цех 2 |
90 |
180 |
380 |
26 |
Кругов |
Цех 1 |
100 |
120 |
450 |
27 |
Квадратов |
Цех 2 |
200 |
400 |
500 |
28 |
Трешкин |
Цех 3 |
500 |
700 |
50 |
29 |
Пяткин |
Цех 3 |
200 |
300 |
100 |
30 |
Примаков |
Цех 2 |
250 |
150 |
50 |
На рис. 10 приведена схема алгоритма создания файла. В схеме сначала выполняется открытие файла. Затем организуется цикл ввода 25 записей. В этом цикле вводятся поля записи организовывается запись в файл. После выхода из цикла файл закрывается.
Рис. 10 Схема алгоритма создания файла
Текст программы создания файла:
program z1;
type
zap=record
Fam:string[50];
cex:string [20];
kol_a: integer;
kol_b: integer;
kol_c: integer;
end;
var
f: file of zap;
x:zap;
i: integer;
begin
assign (f,'new.txt');
rewrite (f);
writeln ('Vvedite svedeniy o 30 zapicych');
for i:= 1 to 25 do begin
write ('Familiy');
readln (x.fam);
write ('Cex');
readln (x.cex);
write ('kolichestvo isdelii A');
readln (x.kol_a);
write ('kolichestvo isdelii B');
readln (x.kol_b);
write ('kolichestvo isdelii C');
readln (x.kol_c);
write (f,x);
end;
close (f);
end.
По индивидуальному заданию надо разработать алгоритм, который позволит подсчитать:
- общее количество изделий категорий А, В, С, собранных рабочим цеха;
- ведомость заработной платы рабочих цеха Х,
- Средний размер заработной платы работников этого цеха.
Алгоритм приведен на рис. 11. По алгоритму сначала открывается файл и организуется цикл чтения информации из файла. Затем происходит сравнение введенной фамилии, цеха, производится расчет зарплаты (количество изделий различных категорий умножается на соответствующие расценки, которые описаны в разделе констант), после чего выводятся данные в виде списка работников и их данных, в том числе и зарплаты по введенному цеху, выводится количество изделий, произведенных работником, фамилия которого запрашивается в начале программы, а также средняя зарплата по введенному цеху.
Рис. 11. Схема алгоритма обработки файла
Текст программы приведен ниже:
Program z2;
uses crt;
const
Sa=5.5;
Sb=10.75;
Sc=12;
type zap=record
fam:string[50];
cex:string [20];
kol_a:integer;
kol_b: integer;
kol_c:integer;
end;
var
f: file of zap;
x: zap;
kol,k: integer;
zp,s,sr: real;
f1,C: string;
begin
assign (f,'new1.txt');
reset (f);
writeln ('vvedite familiu rabochego');
readln (F1);
writeln ('vvedite cex');
readln (C);
writeln ('****************************
writeln ('|Familia |Cex |Kol A |Kol B |Kol C | Zarplata ');
writeln ('____________________________
While not eof (f) do
begin
read (f,x);
if (x.fam=F1) then kol:=x.kol_a+x.kol_b+x.kol_c;
If (x.cex=C) then begin
zp:=x.kol_a*Sa+x.kol_b*Sb+x.
writeln (x.fam:13,'|',x.cex:10,'|',x.