Автор работы: Пользователь скрыл имя, 14 Мая 2013 в 18:21, курсовая работа
Цель работы: обобщить знания по управляющим операторам языка Pascal; получить практические навыки работы с файлами, овладеть практическими навыками в организации ввода/вывода значений комбинированных типов данных, получить практические навыки программирования задач с использованием записей и файлов в среде Delphi.
В курсовой работе предусматривается разработка следующих вопросов: постановка задачи в формализованном виде; построение алгоритма решения задачи; реализация алгоритма на ПК путем создания пользовательского программного продукта; анализ результатов; использование компьютерной модели для проведения испытаний; анализ полученных данных и формулировка выводов; создание пояснительной записки.
Для студентов заочного отделения ИСТз-21, ИСТз-22
Преподаватель: Раковцы Г.М.
Цель работы: обобщить знания по управляющим операторам языка Pascal; получить практические навыки работы с файлами, овладеть практическими навыками в организации ввода/вывода значений комбинированных типов данных, получить практические навыки программирования задач с использованием записей и файлов в среде Delphi.
В курсовой работе предусматривается разработка следующих вопросов:
КР должна содержать следующие разделы:
- Титульный лист, название курса, название работы, подписи студентов;
(оформляется в соответствии с требованиями, действующими в БарГУ).
- Рецензия (пустой лист) .
- Лист задание.
- РЕФЕРАТ
- ОГЛАВЛЕНИЕ (должно строиться средствами редактора Word).
- ВВЕДЕНИЕ (содержит цель выполняемой работы, описываются средства и среды обработки математической модели и оформления курсовой работы).
- 1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ, в которую входят подразделы:
- 2. ПРАКТИЧЕСКАЯ ЧАСТЬ, в которую входят подразделы:
2.1Описание объектов, свойств, методов.
2.2 Формы и основные модули текста программы.
2.3 Результаты тестирования программного продукта.
- ЗАКЛЮЧЕНИЕ (содержит краткие выводы по результатам КР и применения теоретических знаний в практическом программировании в рамках КР)
- CПИСОК ЛИТЕРАТУРЫ (должен быть оформлен согласно библиографическим требованиям).
-ПРИЛОЖЕНИЕ (полный текст программы)
- Программа на носителе (диск).
Титульный лист пояснительной записки должен быть оформлен в соответствии с общими требованиями к оформлению курсовых работ, действующими в БарГУ; работа сдается в бумажном и электронном виде (на диске).
Текст курсовой работы (КР) должен содержать нумерацию страниц, разделов, глав и т.д., позволяющую получать оглавление в электронном виде. Рисунки и диаграммы должны быть выполнены стандартными средствами MS Office, Visio, Windows и содержать сквозную нумерацию и подписи.
Требования к программному обеспечению: программы должны быть реализованы стандартными средствами Delphi и сопровождаться соответствующей инструкцией по запуску и проведению вычислительного эксперимента. Программа должна содержать краткую справочную систему и пункт об авторе (About).
Носители - диск. Требования к сдаче работы: бумажная и электронная версия должны быть представлены в период указанный в листе задание к курсовой работе.
Работа должна содержать
утвержденное задание с подписью
преподавателя и быть выполнена
в соответствии с настоящими требованиями.
В качестве теоретической части КР должен быть рассмотрены основные аспектов обработки записей и файлов средствами Delphi. Студент должен свободно ориентироваться в представленном теоретическом материале.
Практическая часть КР должна содержать следующие разделы:
2. ПРАКТИЧЕСКАЯ ЧАСТЬ
В практической части работы должны быть применены изложенные теоретические аспекты.
Подробно описать в подразделе 2.1. объекты, их свойства и методы, используемые при разработке проекта, демонстрирующего решение поставленных задач. В подразделе 2.2 показать основные формы проекта решения задачи и прокомментировать основные фрагменты модулей программы. В подразделе 2.3 показать результаты тестирования программного продукта с помощью подобранных тестов.
Задачи курсовой работы:
Задание 1.
Выполнить на компьютере программу создания файла, содержащего сведения о сдаче студентами сессии. Структура записи содержит поля: индекс группы, фамилию студенты, оценки по 5 экзаменам. Количество записей в файле произвольное.
Методические указания
Так как по условию не требуется выполнять арифметических операций над данными полей записи, то все поля записей файла целесообразно определить как поля символьного типа. Идентификаторы и длины полей приведены в таблице 1.
Таблица1 – Описание идентификаторов и длины полей
Описание поля |
Имя переменной |
Тип данных |
Пример |
Индекс группы |
INDEX |
6 символов |
ИУ2-11 |
Фамилия |
FAM |
20 символов |
ИВАНОВ П.В. 11 |
Оценки по пяти экзаменам |
Массив MARKER (5) |
Каждый элемент односимвольный |
54323 |
Для получения текущей записи, организуем в программе запрос на ввод очередной порции информации с терминала в оперативную память ЭВМ, для чего воспользуемся обычными операторами языка для ввода данных. Полученную строку данных запишем в первую запись файла. Для этого, используем оператор записи данных в файл, после чего запросим ввод второй строки данных с терминала в оперативную память ЭВМ. Организуем ее запись в файл. Этот процесс ввода с терминала и записи в файл будем продолжать до тех пор, пока не будет получен с терминала признак окончания ввода данных. Для подсчета количества записей в файле введем счетчик К, значение которого будем увеличивать на 1 при каждой операции записи строки в файл. Для контроля после создания файл организуем чтение записей файла и их вывод на экран.
Программа создания файла в Pascal с именем SESSYA имеют вид:
program lr15;
type
zap=record
index: string[6];
fаm: string[20];
marker: array[1..5] of char
end;
var
sessya: file of zap;
k: integer;
flag: boolean;
x: zap;
begin
k:=0; flag:=true;
rewrite(sessya);
repeat
writeln(‘введите текущую запись: индекс группы, фамилию и’);
writeln (‘5 оценок за экзамены’);
writeln (‘для окончания работы введите вместо индекса’);
writeln(‘группу символов ######’);
read (x.index, x.fam, x.marker[1], x.marker[2], x.marker[3], x.marker[4], x.marker[5]);
if x.index <> ‘######’ then
begin
k:=k+1;
write(sessya,x)
end
else
flag:=false;
until flag;
writeln (‘в файле ’,’ записей’);
assign(sessya,'sessya');
reset(sessya);
while not eof(sessya) do
begin
read(sessya,x);
writeln(x.index, x.fam,x. marker[1],x. marker [2],x. marker [3],x. marker[4],x. marker[5]);
end;
writeln (‘конец файла’)
end.
Тестовый вариант исходных данных для создания файла
РК6-21 СИДОРОВ В. Г. 44323
РК4-21 НИКИФОРОВ П. Д. 55343
РК4-22 ФЕДОРОВ С. Г. 44444
РК7-23 ФОКИН П. А. 55555
РК4-22 ПОДГОРНЫЙ А. А. 55232
РК4-22 СИЛАЕВ Ф. Г. 55555
РК4-22 БЕЛОВ И. Ф. 55455
РК4-22 АНИСОВ Д. Ф. 42323
РК4-22 ЛУКИН В. Д. 33433
РК4-22 ДЕДОВ П. Л. 33333
В качестве индекса группы X ввести значение РК4-22.
Задание 2.
Написать программу зачисления на стипендию студентов группы X. Размер обычной стипендии 70 руб. Студенту, получившему , все пять оценок «5», назначается стипендия, повышенная на 50 %; получившему оценки «4» и «5» — повышенная на 25 %; студенту, получившему хотя бы одну оценку «2», стипендия не назначается. В остальных случаях назначается обычный размер стипендии.
Методические указания
Для выполнения задания 2 необходимо: ввести с терминала индекс группы X, для которой печатается ведомость зачисления на стипендию; организовать в цикле чтение текущей записи файла, проверять совпадение значения поля «индекс группы» со значением переменной X. Если индексы не совпадают, то переходить к чтению следующей записи файла.
Если индексы совпадают, то проводить зачисление на стипендию по следующему алгоритму: ввести счетчики количества отличных и хороших оценок К5 и К4, задав их начальное значение 0; организовать цикл на пять повторений для проверки каждой оценки студента.
Если текущая оценка «2», то выходить из цикла, зачисления на стипендию не будет и переходить к чтению следующей записи файла; если оценка «5», то увеличить счетчик К5 на 1 и продолжить цикл просмотра оценок; если оценка «не 5», то проверить ее на значение «4».
Если оценка «4», то счетчик К4, увеличить на 1 и продолжить цикл. После просмотра всех оценок проверить значение счетчика К5 — равно ли пяти? При положительном ответе назначить стипендию 70 + 0,5*70=105 руб.
Выдать на печать фамилию студента, размер стипендии и перейти к чтению следующей записи; если К5 не равно пяти, то проверить равенство пяти суммы значений К5 и К4.
При ответе ДА назначить стипендию 70 + 0,25*70 = 87,5 руб., в противном случае — стипендию 70 руб. и перейти к печати строки документа о зачислении на стипендию, а затем — к чтению новой записи. При обнаружении конца файла завершить решение задачи.
Программы в Pascal имеют вид:
program lr15b ;
label 2;
type zap=record
index:string[6];
fam:string[20];
marker:array[1..5] of char;
end;
var sessya:file of zap;
y:zap;
x:string[6];
i, k, k4, k5, n: integer;
s:real;
begin
assign (sessya, ‘sessya’)',
reset(sessya);
writeln(ввeдитe индекс группы');
readln(x);
writeln('вeрoятнocть зачисления на стипендию');
writeln(‘cтудeнтoв группы');
writeln('i i i i');
writeln(‘i N/N i фамилия i руб i');
writeln (‘I i ii');
n:=o;
2: while not eof(sessya) do
begin
read(sessya.y);
if y.index=x then
begin
k4:=0; k5:=0;
for i:=l to 5 do
begin
if y.marker=’2’ 'then goto 2;
if y.marker='5' then k5:=k5+1;
if y.marker='4' then k4:=k4+1;
end;
end;
s:=70.0; n:=n+1;
if k5:=5 then s:=105.0 else
if (k5*k4)=5 then s:=87.5;
end;
writeln (‘кoнeц файла')
end.
Варианты задания курсовой работы:
Вариант задания |
Условия задачи |
1 |
1. Создать файл, содержащий сведения о месячной зарплате рабочих завода. Каждая запись содержит поля – фамилия рабочего, наименование цеха, размер зарплаты за месяц. Количество записей – произвольное. 2. Вычислить общую сумму выплат за месяц по цеху Х, а также среднемесячный заработок рабочего этого цеха. Напечатать для бухгалтерии ведомость для начисления заработной платы рабочим этого цеха. |
2 |
1. Создать файл, содержащий сведения о количестве изделий, собранных сборщиками цеха за неделю. Каждая запись содержит поля – фамилия сборщика, количество изделий, собранных им ежедневно в течение 6-дневной недели, т.е. раздельно – в понедельник, вторник и т.д. Количество записей – произвольное. 2. Написать программу, выдающую на печать следующую информацию: фамилию сборщика и общее количество деталей, собранное им за неделю; фамилию сборщика, собравшего наибольшее число изделий, и день, когда он достиг наивысшей производительности труда. |
3 |
1. Создать файл, содержащий сведения о количестве изделий категорий А, В, С, собранных рабочим за месяц. Структура записей имеет поля: фамилия сборщика, наименование цеха, количество изделий по категориям, собранных рабочим за месяц. Количество записей – произвольное. |
3 |
2. Cчитая, заданными значения расценок за выполненную работу по сборке единицы изделия категорий А, В, С соответственно, выдать на печать следующую информацию: - общее количество изделий - ведомость зарплаты рабочих цеха Х; - средний размер зарплаты |
4 |
1. Создать файл, содержащий сведения о телефонах абонентов. Каждая запись имеет поля: фамилия абонентов, год установки телефона, номер телефона. Количество записей произвольное. 2. Написать программу, выдающую информацию следующего вида: - по вводимой фамилии абонента выдается номер телефона; - определяется количество |
5 |
1. Создать файл, содержащий сведения об ассортименте игрушек в магазине. Структура записи: название игрушки, цена, количество, возрастные границы, например 2-5, т.е. от 2 до 5 лет. Количество записей произвольно. 2. Написать программу, в результате выполнения которой выдаются следующие сведения: - названия игрушек, которые - Стоимость самой дорогой - название игрушки, которая по стоимости не превышает x рублей и подходит ребенку в возрасте от a до b лет. Значения x, a, b ввести с терминала |
6 |
1. Создайте файл, содержащий сведения о сдаче студентами I курса кафедры «ЭВМ» сессии. Структура записи: индекс группы, фамилия студента, оценка по пяти экзаменам, признак участия в общественной работе: «1» - активное участие, «0» - неучастие. Количество записей – 30. 2. Написать программу зачисления студентов группы Х на стипендию. Студент, получивший все оценки «5» и активно участвующий в общественной работе, зачисляется на повышенную стипендию (доплата 50%), не активно участвует – доплата 25%. Студенты, получившие «4» и «5», зачисляются на обычную стипендию. Студент, получивший одну оценку «3», но активно занимающийся общественной работой, также зачисляется на стипендию, в противном случае зачисление не производится. Индекс группы вводится с терминала. |
7 |
1. Создайте файл, содержащий сведения о сдаче студентами сессии. Структура записи: индекс группы, фамилия студента, оценка по пяти экзаменам и пяти зачетам («з» означает зачет, «н» - незачет). Количество записей – 25. 2. Написать программу, выдающую следующую информацию: - фамилии неуспевающих - средний балл, полученный каждым студентом группы Х, и всей группой в целом. |
8 |
1. Создайте файл, содержащий сведения о личной коллекции книголюба. Структура записи: шифр книги, автор, название, год издания, местоположение (номер стеллажа, шкафа и т.п.). Количество записей произвольное. 2. Написать программу, выдающую следующую информацию: - местонахождение книги автора Х названия У. Значение Х, У ввести с терминала; - список книг автора Z, находящихся в коллекции; - число книг издания ХХ года, имеющееся в библиотеке |
9 |
1. Создать файл, содержащий сведения о наличии билетов и рейсах Аэрофлота. Структура записи: номер рейса, пункт назначения, время вылета, время прибытия, количество свободных мест в салоне. Количество записей произвольное. 2. Написать программу, выдающую информацию следующего вида: - время отправления самолетов в город Х; - наличие свободных мест на рейс в город Х с временем отправления У. Значения Х, У вводятся по запросу с терминала. |
10 |
1. Создайте файл, содержащий сведения об ассортименте обуви в магазине фирмы. Структура записи: артикул, наименование, количество, стоимость одной пары. Количество записей произвольное. Артикул начинается с буквы Д - для дамской обуви, М -для мужской, Д- для детской. 2. Написать программу, выдающую следующую информацию: - о наличии и стоимости обуви артикула Х; - ассортиментный список дамской обуви с указанием наименования и имеющегося в наличии числа пар каждой модели. |
11 |
1. Создайте два файла, содержащих сведения о десяти нападающих хоккейных команд: «Динамо» и «Спартак» соответственно: имена нападающих, число заброшенных ими шайб, сделанных голевых передач, заработанное штрафное время. 2. Написать программу, которая по данным, извлеченным из этих файлов, создает новый третий файл, содержащий имя, команду, сумму очков (голы + передачи) для шести лучших игроков обеих команд. Имена и пользователи результативности хоккеистов вывести на экран. |
12 |
1. Создать файл, содержащий сведения о том, какие из пяти предлагаемых дисциплин по выбору желает слушать студент. Структура записи: фамилия студента, индекс группы, 5 дисциплин, средний балл успеваемости. Выбираемая дисциплина отмечается символом 1, иначе – пробел. Количество записей -25. 2. Написать программу, которая печатает список студентов, желающих прослушать дисциплину Х. Если, число желающих превысит 8 человек, то отобрать студентов, имеющих более высокий средний балл успеваемости. |
13 |
|
14 |
- информацию о состоянии заказов на текущую дату по группам изделий. - отсортированную в алфавитном порядке информацию о марке изделия по введенной группе Х. |
15 |
- какие рейсы выполняются на данном типе самолета Х; - все номера рейсов, типы самолетов и времена вылета для заданного пункта назначения в порядке возрастания времени вылета. |
16 |
- количество абитуриентов, проживающих в городе Х; - абитуриентов, сдавших экзамены
со средним баллом не ниже 4.5,
вывести их фамилии в |
17 |
-вывести информацию о наличии свободных мест на все поезда по введенной дате выезда; - зарезервировать m мест до города N на k-й день недели с временем отправления поезда не позднее t часов вечера. Вывести время отправления или сообщение о невозможности выполнить заказ в полном объеме. |
18 |
- фамилии сотрудников и номер отделения согласно введенной должности Х; - списки сотрудников по отделам в порядке убывания стажа. |
19 |
- общее количество выпущенной продукции А на заводе; -для заданного цеха Х выводит количество выпущенных изделий по каждому наименованию в порядке убывания количества. |
20 |
- список книг данного автора Х; - список книг с фамилиями авторов в алфавитном порядке, изданных после заданного года. |
21 |
- информацию о самом молодом игроке и в какой он команде, -список игроков команды Х в порядке убывания их роста. |
22 |
- информацию о том, в какой команде самый легкий игрок и его данные, -список игроков команды Х в порядке возрастания их возраста. |
23 |
|
24 |
1. Создать файл, содержащий сведения о разговорах на междугородной АТС . Структура записи содержит: дату разговора, код и название города, время разговора, тариф, номер телефона в этом городе и номер телефона абонента. Количество записей произвольное. 2. Написать программу, которая выводит: - стоимость разговоров по данному номеру телефона за указанную дату; - по каждому городу общее время разговоров с ним и сумму. |
25 |
-список рейсов автобусов, - информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения У раньше заданного времени. Х, У- вводятся с клавиатуры. |
26 |
|
27 |
-общую стоимость товаров с наименованием Х; - в алфавитном порядке список
товаров, хранящихся больше |
28 |
- список многодетных семей; -список граждан ставших на учет до Х года в порядке возрастания занимаемого квадратного метра на члена семьи. |
29 |
- список игроков в порядке убывания их возраста; - список игроков у которых вес превышает норму Х, а рост меньше, чем У. Х, У- вводятся с клавиатуры. |
30 |
- команду, которая имеет больше всех поражений; - табельную таблицу команд, расположив из в порядке убывания набранных очков. За 1 победу – 2 очка, за 1 ничью – 1 очко, за 1 проигрыш -0 очков. |
Информация о работе Программирование с использованием записей и файлов