Каталог :: Кибернетика

Курсовая: Программирование в Turbo Pascal

             Московский Государственный Индустриальный  Университет             
     

Институт Дистанционного Образования

Курсовая работа

по дисциплине: «ИНФОРМАТИКА» по теме: «Выполнение задания по программированию в TURBO PASCAL»

Выполнила: студентка группы 01М22

Белоусова Екатерина Преподаватель: Суворов С.В.

Москва, 2002

Содержание: Стр. 1. Формулировка задания 3 2. Описание переменных 4 3. Блок-схема 5 4. Программа 6 5. Результаты проверки правильности программы 9 6. Результат подстановки данных в программу 10 7. Список используемой литературы 10 Формулировка задания: На телефонном узле в конце каждого квартала составляется на каждого абонента ведомость оплаты междугородных телефонных разговоров (с 7-ю городами) в течение квартала (3 месяца). Написать программу, которая вводит исходные данные, выполняет расчеты и выводит на экран: ü Исходные данные в виде таблицы, где указаны коды городов, с которыми велись разговоры, общее время разговора с каждым городом за один месяц, стоимость одной минуты разговора (меняется каждый месяц); ü Общая продолжительность разговоров с каждым городом за квартал; ü Плата за каждый месяц; ü Общая плата за 3 месяца; ü Город с наибольшей платой. Требование к вводу информации: Исходные данные вводятся с клавиатуры. Требования к выводу результатов: Результаты выводятся на экран. Требования к структуре программы. Программа должна состоять из следующих частей: ü Вывод заставки с информацией о студенте и задании; ü Ввод данных (выполняется в диалоговом режиме); ü Вывод исходных данных и результатов (на один экран). Требования к размещению исходных данных внутри программы. Исходные данные располагаются в файле, компонентами которого являются записи. Структура каждой записи и типы ее полей выбираются в зависимости от задания. Используемые цвета: Черный (0) Светло-зеленый (10) Красный (4) Желтый (14) Описание переменных: Описание типов: Тип: telef=record kod:integer; tpm1,tpm2,tpm3,price1,price2,price3:integer; end; Тип записи telef является представлением информации о городе, а именно: kod - код города, который является целым числом. tpm1,tpm2,tpm3 - время разговора абонента с городом за 1-ый, 2-ой и 3-ий месяц соответственно, целые числа. price1,price2,price3 - стоимость 1-ой минуты разговора за 1-ый, 2-ой и 3-ий месяц соответственно, также целые числа. Тип: telef1=record kod,tpm,ob:integer; pr1,pr2,pr3:integer; end; Тип записи telef1 также является представлением информации о городе. кod - код города, tpm - общее время разговора с городом за квартал (3 месяца). pr1,pr2,pr3 - стоимость разговора с городом за 1-ий, 2-ой и 3-ий месяцы соответственно. оb- общая стоимость разговора с городом за квартал. Все поля типа записи telef1- целые числа. Описание переменных: а:file of telef; Типизированный файл «а» содержит записи типа telef, т.е. содержит исходную информацию о каждом городе, времени разговора с каждым городом помесячно и стоимость минуты разговора за каждый месяц квартала. tel:telef; tel-запись типа telef, содержащая информацию о городе. tel-запись, которой по мере выполнения программы, присваиваются значения записей, находящихся в типизированном файле «а». res: array[1..7] of telef1; res - одномерный массив, содержащий 7 элементов типа telef1, т.е. этот массив содержит информацию о 7-ми городах, полученную в результате расчетов, произведенных в программе. i,j,aa,max: integer; i - целое число, которое используется в цикле ввода исходных данных, переменная «i» в этом случае принимает значения кода городов, также эта переменная используется в цикле вывода результатов на экран, где выступает в роли значения номера города, т.е. в роли номера элемента массива res. max,j- целые числа, переменные, используемые для определения кода города с наибольшей оплатой за квартал. Переменной max присваиваются значения общей стоимости разговоров с городом за квартал, по мере выполнения программы переменной max присваивается наибольшее значение. Переменной j присваивается значение номера элемента массива res и при определении города с наибольшей оплатой j присваивается номер этого города в массиве res. s - целое число, используемое в цикле расчета результатов. Переменной s присваиваются значения от 1 до 7, т.е. значения номеров элементов массива res. Блок-схема: решение: i = 7 Нет Да Блок-схема: решение: Конец файла записи Нет Да
Вывод на экран таблицы результата расчетов

Да
Блок-схема: решение: i = 7 Нет Нет Нет Да
Да Блок-схема: знак завершения: Конец Да
Вывод города с наибольшей платой
program kursovik; uses crt; type telef=record kod:integer; tpm1,tpm2,tpm3,price1,price2,price3:integer; end; telef1=record kod,tpm,ob:integer; pr1,pr2,pr3:integer; end; var a:file of telef; tel:telef; res:array[1..7] of telef1; i,j,s,aa,max:integer; begin; textbackground(10); clrscr; textcolor(0); gotoxy(15,2); writeln('Курсовая работа студента группы 01М22 Белоусовой Е.В.'); gotoxy(27,3); writeln('Задание на курсовую работу:'); textcolor(4); writeln; writeln(' На телефонном узле в конце каждого квартала составляется на каждого абонента'); writeln('ведомость оплаты междугородных телефонных разговоров (с 7-ю городами) в течение'); writeln('квартала (3 месяца).'); writeln(' Написать программу, которая вводит исходные данные, выполняет расчеты и '); writeln('выводит на экран:'); writeln(' - исходные данные в виде таблицы, где указаны коды городов, с которыми велись'); writeln(' разговоры, общее время разговора с каждым городом за один месяц, стоимость'); writeln(' одной минуты разговора (меняется каждый месяц);'); writeln(' - общая продолжительность разговоров с каждым городом за квартал;'); writeln('плата за каждый месяц;'); writeln('общая плата за 3 месяца;'); writeln('город с наибльшей платой.'); gotoxy(27,18); textcolor(0); writeln('Требование к вводу информации'); textcolor(4); writeln(' - исходные данные вводятся с клавиатуры.'); textcolor(0); writeln; writeln(' Требование к выводу результатов'); textcolor(4); writeln(' - результат выводятся на экран.'); textcolor(14); writeln; writeln(' Для продолжения работы программы нажмите ENTER'); readln; clrscr; textcolor(0); writeln(' Требования к структуре программы '); textcolor(4); writeln(' Программа должна состоять из следующих частей:'); writeln(' - вывод заставки с информацией о студенте и задании;'); writeln(' - ввод данных (выполняется в диалоговом режиме);'); writeln(' - вывод исходных данных и результатов (на один экран).'); textcolor(0); writeln(' Требования к размещению исходных данных внутри программы '); textcolor(4); writeln(' Исходные данные располагаются в файле, компонентами которого являются записи.'); writeln('Структура каждой записи и типы ее полей выбираются в зависимости от задания.'); textcolor(0); writeln(' Используемые цвета '); textcolor(4); writeln(' - черный(0),красный(4), светло-зеленый(10), желтый(14)'); textcolor(14); gotoxy(18,24); writeln('Для продолжения работы программы нажмите ENTER'); readln; clrscr; assign(a,'kurs.dat'); rewrite(a); textcolor(0); for i:=1 to 7 do begin write('Введите код ',i,'-го города: '); readln(tel.kod); write('Введите общее время разговора с городом ',tel.kod,' за 1-й месяц: '); readln(tel.tpm1); write('Введите стоимость одной минуты разговора с городом ',tel.kod,' в 1-м месяце: '); readln(tel.price1); write('Введите общее время разговора с городом ',tel.kod,' за 2-й месяц: '); readln(tel.tpm2); write('Введите стоимость одной минуты разговора с городом ',tel.kod,' в 2-м месяце: '); readln(tel.price2); write('Введите общее время разговора с городом ',tel.kod,' за 3-й месяц: '); readln(tel.tpm3); write('Введите стоимость одной минуты разговора с городом ',tel.kod,' в 3-м месяце: '); readln(tel.price3); write(a,tel); end; close(a);reset(a); s:=1; while not eof(a) do begin read(a,tel); res[s].kod:=tel.kod; res[s].tpm:=tel.tpm1+tel.tpm2+tel.tpm3; res[s].pr1:=tel.tpm1*tel.price1; res[s].pr2:=tel.tpm2*tel.price2; res[s].pr3:=tel.tpm3*tel.price3; res[s].ob:=res[s].pr1+res[s].pr2+res[s].pr3; s:=s+1; end;close(a); clrscr; writeln('Код города Общее время разговора за каждый месяц Стоимость минуты разговора'); reset(a); while not eof(a) do begin read(a,tel); writeln(' ',tel.tpm1,' ',tel.price1); writeln(' ',tel.kod,' ',tel.tpm2,' ',tel.price2); writeln(' ',tel.tpm3,' ',tel.price3); end; textcolor(14); gotoxy(18,24); writeln('Для продолжения работы программы нажмите ENTER'); readln; clrscr; textcolor(0); writeln('Код города Общее время разговора за квартал Плата за месяц Общая плата'); for i:=1 to 7 do begin aa:=res[i].kod; writeln(' ',res[i].pr1); writeln(' ',aa,' ',res[i].tpm,' ',res[i].pr2,' ',res[i].ob); writeln(' ',res[i].pr3); end; max:=res[1].ob; for i:=1 to 6 do begin if res[i+1].ob>max then begin max:=res[i+1].ob; j:=i+1; end; end; writeln('Город с наибольшей платой: ',res[j].kod); textcolor(14); gotoxy(18,24); writeln('Для завершения работы программы нажмите ENTER'); readln; end.

Таблица исходных данных

Таблица результатов

Код городаОбщее время разговора за каждый месяцСтоимость минуты разговораКод городаОбщая продолжительность разговоров за кварталПлата за каждый месяцОбщая плата
0000

0

0

0

00

0

00

0

0000

0

0

0

00

0

00

0

0000

0

0

0

00

0

00

0

0000

0

0

0

00

0

00

0

0000

0

0

0

00

0

00

0

0000

0

0

0

00

0

00

0

0000

0

0

0

00

0

00

0

Город с наибольшей платой - 1

Таблица исходных данных

Таблица результатов

Код городаОбщее время разговора за каждый месяцСтоимость минуты разговораКод городаОбщая продолжительность разговоров за кварталПлата за каждый месяцОбщая плата
1111

3

1

3

11

1

11

1

1111

3

1

3

11

1

11

1

1111

3

1

3

11

1

11

1

1111

3

1

3

11

1

11

1

1111

3

1

3

11

1

11

1

1111

3

1

3

11

1

11

1

1111

3

1

3

11

1

11

1

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

Таблица исходных данных

Код городаОбщее время разговора за каждый месяцСтоимость минуты разговора
1710
810
915
215
25
35
346
56
67
4210
420
810
537
27
17
649
610
711
7813
910
1014

Таблица результатов

Код городаОбщая продолжительность разговоров за кварталПлата за каждый месяцОбщая плата
1

24

70

285

80

135

2

6

5

30

10

15

3

15

24

96

30

42

4

14

20

180

80

80

5

6

21

42

14

7

6

17

36

173

60

77

7

27

104

334

90

140

Город с наибольшей платой - 7
Список использованной литературы: 1. Фигурнов В.Э. IBM PC для пользователя. Изд. 6-е, М., 1995 г. 2. Фаронов В. В., Турбо Паскаль 7.0., Учебное пособие. – М.: «Нолидж», 1999 г. 3. Острейковский В.А. Информатика. –М.: «Высшая школа», 2000 г.