Разработка программы для создания и работы с двусвязным списком, состоящим из структур (Структура содержит название, цену, количество товара)

Страницы работы

17 страниц (Word-файл)

Содержание работы

Государственный комитет Российской Федерации по телекоммуникациям

Сибирский государственный университет

телекоммуникаций и информатики

КУРСОВАЯ РАБОТА

По дисциплине

« Программирование на языках высокого уровня»

Разработка программы для создания и работы с двусвязным списком, состоящим из структур

Вариант № 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: ");

Похожие материалы

Информация о работе