Волжский университет имени В.Н.Татищева
Кафедра “Информатика и системы управления”
КУРСОВАЯ РАБОТА
по дисциплине : “Основы технологии программирования”
Тема: “Обувной магазин”
Выполнил: ХХХ
ХХХ
Преподаватель: ХХХ
Тольятти 2005
Оглавление
-
Задание
-
Описание предметной области;
-
Описание алгоритма задачи;
-
Список используемой литературы;
-
Приложения:
-
листинг программ;
-
распечатка результатов решения задачи по данным контрольного примера.
Волжский университет имени В.Н.Татищева
Кафедра “Информатика и системы управления”
Специальность: 071900 “Информационные системы”
ЗАДАНИЕ
на курсовой проект по дисциплине
“Основы технологии программирования”
Студенту _________Комаровой Людмиле Сергеевне_______________________
Группа ___________ИТЗ - 301__________________________________________
Тема проекта ______ «Обувной магазин» _____________________________
Календарный график задания___________________________________________
____________________________________________________________________
СОДЕРЖАНИЕ ЗАДАНИЯ
Дан файл, содержащий сведения об ассортименте обуви в магазине фирмы. Каждая запись содержит поля – артикул, наименование, количество, стоимость одной пары. Артикул начинается с буквы Д для дамской обуви, М – для мужской, П – для детской. Написать программу, выдающую следующую информацию:
- о наличии и стоимости обуви артикула Х;
- ассортиментный список дамской обуви с указанием наименования и имеющегося в наличии числа пар каждой модели.
Значение Х вводится по запросу с терминала.
____________________________________________________________________
Руководитель курсовой работы Ахмедханлы Деля Михайловна
Студент Комарова Людмила Сергеевна
Описание предметной области.
Программа «Наличие товара на складе обувного магазина» предназначена для получения информации о наличии товара на складе и его цены.
Программа написана на Turbo Pascal версия 7.1, работает в операционной среде MS DOS.
Программа «Наличие товара на складе обувного магазина» содержит таблицу, в которой находятся следующие графы: артикул, наименование товара, цена и количество. В программе эта таблица выглядит следующим образом:
type
obuv=record
art: string [7];
name: string [15];
cena: real;
kol: integer;
end;
где: art – артикул, имеет расширение string и занимает 7 байт; name – наименование, имеет расширение string и занимает 15 байт; cena - цена, имеет расширение real и занимает 6 байт; kol - количество, имеет расширение integer и занимает 2 байта.
|
Имя поля |
Тип переменной |
Количество знаков |
артикул |
art |
string [7] |
7 |
Наименование товара |
name |
string [15] |
15
|
цена |
cena |
real |
4(2) |
количество |
kol |
integer |
4 |
В целом одна компонента таблицы занимает 30 байт.
Описание алгоритма задачи.
Integer - Целочисленная переменная обозначающая обычные целые числа (2 байта). (-3276832767)
String - строковые переменные (255 байт).
Real - служит для хранения вещественных чисел (6 байт)
type - Пользовательский тип данных:
READ (<список - ввода>) - имя оператора ввода;
WRITE (<список - вывода>) - имя оператора вывода;
READLN (a, b, c) - после вода значений a, b и c курсор перемещается на следующую строку.
WRITELN - без списка вывода можно использовать для пропуска строк при оформлении вывода результатов.
Оператор: IF < условия > THEN P1 [ ELSE P2 ];
если то иначе (не обязательная часть)
По этому оператору выполняется "тело цикла", а затем проверяется <условие>, если оно не выполнилось, цикл повторяется. И так до тех пор, пока <условие> не будет выполнено.
Необходимо помнить: если <условие> сразу выполнилось, цикл будет пройден один раз.
Оператор цикла с постусловием:
REPEAT { - тело цикла UNTIL <условие>;
где P1, P2, …PN - любые операторы.
По этому оператору выполняется "тело цикла", а затем проверяется <условие>, если оно не выполнилось, цикл повторяется. И так до тех пор, пока <условие> не будет выполнено.
Перед выполнением операций чтения или записи информации в файлы, они должны быть открыты следующими процедурами: reset и rewrite.
Rewrite (ff); - создает новый файл, имя которого указано в assign (ff, name), т.е. с именем, хранящимся в строковой переменной name.
Reset(ff); - открывает уже существующий файл с именем, указанным в assign. Файл доступен и для записи и для чтения. Внутренний указатель при этом ставится в начало файла.
Seek (ff, n); - данная процедура перемещает указатель в файле на элемент с номером n.
Write(ff, buf); - данная процедура пишет одну компоненту файла из переменной буфер.
Список используемой литературы:
1. С.А. Обрамов, Е.В. Зима «Начала программирования на языке Pascal»;
2. Н.Д. Васюкова В.В. Тюляева «Практикум по основам программирования. язык Pascal»;
3. Г.Л. Симашка А.И. Салтыков «Программирование на языке Pascal »;
4. В.Г. Баула, Н.Д. Васюкова, В.В. Тюляева «Основы программирования и алгоритмические языки»;
5. В.В. Фаронов «TururboPascai 7.0 практика программирования»
Листинг программы
program <Sklad>;
type
obuv=record
art: string [7];
name: string [15];
cena: real;
kol: integer;
end;
var
ff: file of obuv;
buf: obuv;
ch: char;
x: string [7];
begin
assign (ff,'tovar.dat');
writeln ('Создать новый файл - Y/N');
readln (ch);
if ch = 'Y' then
rewrite (ff) {Создание нового файла}
else
begin
reset (ff); {Открыть файл}
seek (ff, filesize (ff)); {Переместить указатель в конец файла}
end;
repeat
writeln ('Будите вводить- Y/N');
readln (ch);
if ch = 'Y' then
begin
writeln ('Введите артикул');
readln (buf.art);
writeln (' Введите наименование');
readln (buf.name);
writeln (' Введите цену');
readln (buf.cena);
writeln (' Введите количество');
readln (buf.kol);
write (ff,buf); {Запись первой компоненты файла}
end;
until ch = 'N';
writeln ('Вы хотите просмотреть наличие женской обуви?- Y/N');
readln (ch);
if ch = 'Y' then
begin
begin
reset (ff); {Переместить указатель в начало файла}
repeat
read (ff,buf); {Чтение всей компоненты из файла}
if buf.art[1] = 'Д' then
writeln (buf.art,buf.name,buf.cena,buf.kol);
until eof (ff);
end;
end
else
begin
writeln (' Введите артикул');
readln (х);
reset (ff); {Переместить указатель в начало файла}
repeat
read (ff,buf); {Чтение всей компоненты из файла}
if buf.art = x then
writeln(buf.art,buf.name,buf.cena,buf.kol);
until eof (ff);
end;
readln;
Close (ff);
end.
Распечатка результатов решения задачи по данным контрольного примера.