Государственный комитет Российской Федерации по телекоммуникациям
Сибирский государственный университет
телекоммуникаций и информатики
КУРСОВАЯ РАБОТА
По дисциплине
« Программирование на языках высокого уровня»
Разработка программы для создания и работы с двусвязным списком, состоящим из структур
Вариант № 5
Работу выполнил
студент 1 курса
группы ПДВ - 72
Леушин Валерий Анатольевич
Работу проверил
Работа защищена
«___» __________2007 г.
С оценкой «_______»
Новосибирск 2007
Задание
Разработать программу для создания и работы с двусвязным списком, состоящим из структур. Структура содержит название, цену, количество товара. Для работы со списком создать меню со следующими пунктами:
1. Создание списка.
2. Просмотр списка.
3. Добавление в конец списка новой структуры.
4. Корректировка списка (удалить из списка заданный товар).
5. Выход.
Содержание
Введение 4
1. Определение и детальное рассмотрение поставленной задачи 5
2. Блок-схема функционирования системы 6
3. Проектный раздел 7
4. Исходный модуль программы 8
5. Результаты тестирования выполнения задания 12
6. Список литературы 17
Введение
Целью данной работы явилось разработка программы для работы со списком товаров, включающим следующие функциональные возможности:
· создание нового списка товаров;
· просмотр списка товаров;
· добавление нового товара в конец списка;
· удаление любого товара из списка.
Каждый товар включает в себя следующие характеристики: название, цену и количество.
Список товаров хранится в отдельном файле, что позволяет использовать разработанную программу не создавая список каждый раз при ее запуске.
1. Определение и детальное рассмотрение поставленной задачи
Для функционирования данной программы необходимо включение следующих заголовочных файлов:
stdio.h – включает в текст программы средства связи с библиотечными фунциями ввода-вывода (функции scanf и printf);
conio.h – включает функции для работы с терминалом в текстовом режиме (функция getch)
alloc.h – включает функции для выделения памяти (функция malloc);
string.h – включает функции обработки строк (функция strcmp).
Для создания списка товаров воспользуемся двусвязным списком структур, содержащим следующие данные – название товара, цена товара, количество товара, указатель на предыдущую и следующую структуру
При запуске программы пользователь получает доступ к пунктам основного меню, которое оформим в виде оператора – переключателя switch для определения дальнейших действий программы в зависимости от выбранного пользователем пункта: 1 – создание списка, 2 – просмотр списка, 3 – добавление в конец, 4 – удаление из списка, 0 – выход из меню:
Каждый пункт основного меню ссылается на функцию, которая определяет дальнейшие действия программы: создание списка товаров, просмотр списка товаров, добавление товара в конец списка, удаление заданного товара из списка, выход из программы.
Для сохранения данных о товарах нам потребуется указатель на файл, в котором будет храниться и обрабатываться вся информация о товарах.
2. Блок-схема функционирования системы
|
|||
Рис. 2.1 Блок-схема функционирования системы
3. Проектный раздел
Программа состоит из следующих частей:
1. Включение заголовочных файлов stdio.h, conio.h, alloc.h, string.h, необходимых для работы программы.
2. Описание структуры типа spisok, используемых переменных и прототипов используемых в программе функций.
3. Основная функция main (), в которой прописаны пункты основного меню и ссылки на функции для работы со списком.
4. Функции для работы со списком:
4.1. создание списка - sozdanie(tf);
4.2. просмотр списка - prosmotr(tf);
4.3. добавление в конец - dobavlenie(tf);
4.4. удаление из списка - udalenie(tf).
4. Исходный модуль программы
#include <stdio.h>
#include <conio.h> // включение заголовочных файлов
#include <alloc.h>
#include <string.h>
struct spisok // описание структуры типа spisok
{char nazvanie[10]; // название товара
float cena; // цена товара
int kolich; // количество товара
struct spisok *v1; // указатель на предыдущую структуру списка
struct spisok *v2;
} tovar; // tovar – имя структуры типа spisok
void sozdanie(FILE *);
void prosmotr(FILE *);
void dobavlenie(FILE *); // описание прототипов используемых функций
void udalenie(FILE *);
struct spisok *nachalo,*konec,*tekush, *predidush, dannie[99]; // описание указателей и на структуры и массива структур dannie
main() // основная функция
{
FILE *tf;
char c; // описание переменных
int i;
while (1)
{clrscr();
puts(" 1 - sozdanie spiska");
puts(" 2 - prosmotr spiska");
puts(" 3 - dobavlenie v konec");
puts(" 4 - udalenie iz spiska");
puts(" 0 - vihod");
c=getch();
switch(c)
{case '1':sozdanie(tf);break; // вывод основного меню программы
case '2':prosmotr(tf);break;
case '3':dobavlenie(tf);break;
case '4':udalenie(tf);break;
case '0':return 0;
default: puts(" neverniy rejim");
}
}
clrscr();
}
void sozdanie(FILE *tf) // функция создания нового списка
{ char c;
int i=1, vsego;
clrscr();
printf("\n vvod dannih: \n");
predidush=NULL;
do
{
clrscr();
tekush=(struct spisok *)malloc(sizeof(struct spisok)); // выделение памяти для структуры
printf("\n tovar nomer %d :\n \t \t nazvanie: ", i);
scanf("%s", tekush->nazvanie);
printf(" \t \t cena: ");
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.