39288

Односвязные списки

Лабораторная работа

Информатика, кибернетика и программирование

Пользователь вводит информационные поля в массив структур. Условия для обработки – поиск элементов списка по значению одного из полей, вывод информационных полей структур Описание структуры для формирования списка приведено в следующем пункте.

Русский

2013-10-02

131.45 KB

16 чел.

Федеральное государственное бюджетное образовательное учреждение высшего

профессионального образования

«Санкт-Петербургский государственный электротехнический

университет «ЛЭТИ» им. В.И.Ульянова (Ленина)»

Факультет компьютерных технологий и информатики

Кафедра вычислительной техники

Отчет

по лабораторной работе № 2

на тему «Односвязные списки»

по дисциплине «Программирование»

Выполнил:

студент группы № 2306 Титков Евгений

Проверила:

к.т.н.,  доцент Сискович Т.И.

 

Санкт-Петербург

2013 г.

Цель работы

Получение практических навыков в работе со структурами.

                                                    Задание

Написать программу для создания массива структур, ввода данных в поля структур, вывода и обработки.

Уточнение задания

Пользователь вводит информационные поля в массив структур. Условия для обработки –

поиск элементов списка по значению одного из полей, вывод информационных полей структур

Описание структуры для формирования списка приведено в следующем пункте.

Описание структуры

Шаблон:

struct games

{

   char name[30];//Название продукта

 int year; //год выпуска

 int rating;  //рейтинг товара

};

Имя структур: x,y.

Контрольные примеры

Контрольные примеры обработки приведены в таблице 1 «Контрольные примеры обработки».

Таблица 1. Контрольные примеры обработки

До обработки

После обработки

п/п

Название товара

Год выпуска

Рейтинг

Название товара

Год выпуска

Рейтинг

1

Crysis

2013

8

Crysis

2013

8

2

Kinect

2012

4

Hather

2010

7

3

Hather

2010

7

                  Описание переменных главной функции

          Описание переменных главной функции приведено в таблице 3.

Таблица 2. Описание переменных главной функции

 

Имя переменной

Тип переменной

Назначение

x,y

games

Структурные переменные

z

int

Переменная для выбора пункта меню

f1,f2,f3,ch

int

вспомогательные переменные

Краткое описание алгоритма

При разработке алгоритма предусмотрен контроль над  выполнением пунктов меню.

1) Пользователь выбирает один из пунктов меню:

1 – ввод данных;

2 – вывод данных;

3 –обработка списка и вывод данных;

4 - выход.

2) Если пользователь выбирает 1 пункт меню,  выполняется ввод данных в структуру. Данные вводятся многократно по желанию пользователя. (Пользователь будет предупрежден о вводе некорректных данных)

3) Если пользователь выбирает 2 пункт меню, происходит вывод данных, затем, переход к пункту 1.

4) Если пользователь выбирает 3 пункт меню, выполняется обработка и вывод данных . Переход к пункту 1.

5) Если выбран 4 пункт меню, завершение программы.

6) Если не выбран ни одни из 1-4 пунктов, вывод сообщения «Ошибка, выберите пункт меню снова».

Блок схема алгоритма

Код программы на языке С/С++

#include "stdafx.h"

#include "stdio.h"

#include "string.h"

#include "conio.h"

#include "iostream"

struct games

{

 char name[30];

 int year;

 int rating;

};

struct games* memory(struct games*  x,int n)

{

 x=(struct games*) realloc(x, (n+1)*sizeof(struct games));

 return (x);

}

struct games* input(struct games* x ,int n)

{

     fflush(stdin);

     puts("");

     printf("ENTER GAME NAME %d = ",n+1);

     gets(x[n].name);

     puts("");

     printf("ENTER GAME YEAR %d = ",n+1);

     scanf("%d",&x[n].year);

     puts("");

     printf("ENTER GAME RATING %d = ",n+1);

     scanf("%d",&x[n].rating);

     puts("");

  

  return x;

}

void print(struct games* x,int n)

{

 printf("\n-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-\n");

 printf("\n*%30s%5s%7s*\n", "NAME", "YEAR", "RATING");

 printf("\n-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-\n");

 for(int i=0; i<n; i++)

   {

    printf("\n*%30s%5d%7d \n",x[i].name,x[i].year,x[i].rating);

    printf("\n*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n");

   }

puts("\nDone! Please enter any key.\n");

getch();

}

int _tmain(int argc, _TCHAR* argv[])

{

 int z,n = 0, l,ch,fl1,fl2,fl3;

 

struct games* x = NULL;

struct games* y = NULL;

do

 {

  puts("**********MENU*************");

  puts("** 1.Input structur      **");

  puts("** 2.Print struct        **");

  puts("** 3.Confirming          **");

  puts("** 4.Exit                **");

  puts("***************************");

  puts("");

  do{

  scanf("%d",&z);

  if (z>=5) puts(“You wrong please enter correct z 1-4”);

  }while(z>=5);

  switch(z)

          {

           case 1:

     do

       {

                    x = memory(x,n);

                    x = input(x,n);

        n++;

     puts("Do you want continued enter 1-yes 0-no?");

     scanf("%d",&ch);

     if (ch==0)

       {

                    puts("\nDone! Please enter any key.\n");

                    getch();

                    system("cls");

       }

    }

    while(ch==1);

    fl1=1;

    break;

           case 2:

     if (fl1==1)

       {

        system("cls");

                    print(x,n);

        system("cls");

       }

     else puts("Please enter struct");

                 break;

           case 3:

     if (fl1==1)

       {

        l =0;

                    for(int i=0;i<n;i++)

                       {

      if (x[i].rating >7)

        {

          y = memory(y, l);

          y[l] = x[i];

                l++;

        }

      

           }

     print(y,l);

     getch();

     system("cls");

        }

     else puts("Please enter struct");

     break;

           case 4:

                   z=0;

                   break;

         }

 }

 while(z!=0);

return 0;

}

Результаты выполнения программы

При выполнении программы полученные результаты совпадают с приведенными в таблице 1 "Контрольные примеры". Ошибок не обнаружено.

Выводы

При выполнении лабораторной работы получены практические навыки в работе со структурами С/С++.


 

А также другие работы, которые могут Вас заинтересовать

37478. Метод мурашиних колоній 235.5 KB
  Технічне завдання Розробити програму що здійснює пошук оптимального шляху між двома клітинками ігрового поля яке являє собою двовимірну матрицю клітинок заданого розміру. Пошук шляху повинен здійснюватись за допомогою алгоритму мурашиної колонії параметри алгоритму повинні налаштовуватись користувачем вручну. Пізніше список використовується для визначення довжини шляху між вузлами. Справжня мураха під час переміщення по шляху залишає за собою деяку кількість феромону.
37479. МЕТОДОЛОГИЯ МОДЕЛИРОВАНИЯ ДАННЫХ В СРЕДЕ ERWIN 993 KB
  2] Зависимые и независимые сущности.9] Избыточные сущности [9. На стадии проектирования создаются логические модели трех уровней: Entity Reltion Digrm Диаграмма сущностьсвязь и KeyBsed model Модель данных основанная на ключах и Полная атрибутивная модель Диаграмма сущностьсвязь ERD Entity Reltionship Digrm определяет сущности и их отношения. Модель данных основанная на ключах описывает структуру данных системы в которую включены все сущности и атрибуты в том числе ключевые.
37480. Вступ до філософії. Історико-філософський та релігієзнавчий аспекти 1008.5 KB
  Розкриває зміст світоглядної проблематики та специфіку філософського і релігійного підходів до неї становлення та основні етапи розвитку філософії у звязку з розвитком релігії в країнах європейської культури особливості східних і західних релігійних і філософських традицій основні позиції та філософські аргументи щодо питань про сутність релігії існування Бога відношення моральності і релігії проблеми особистого безсмертя. Християнська релігія та філософське осмислення ідеї Бога Абсолюта від Середньовіччя до початку ХІХ ст. Проблема...
37481. ФІЛОСОФІЯ, її ПОХОДЖЕННЯ, ПРОБЛЕМАТИКА ТА ФУНКЦІЇ 791.5 KB
  Перш за все філософія аналізує людське знання про реально існуючі речі та цікавиться тим ступенем достовірності який може бути тут досягнутий. Дитрих фон Гільдебранд Філософія відрізняється від науки не в тому значенні що апелює до відірваних від життя тверджень а в тому що максимально вірно виражає її зміст. Карл Ясперс Філософія як особлива сфера людського знання і пізнання виникла на основі світоглядних пошуків та орієнтацій людини що постають як необхідність з погляду людського життєвого вибору та самоствердження.
37482. Философия. Учебное пособие 3.03 MB
  Учебнике рассматриваются предмет и метод философской науки, философия как мировоззренческая система, прослеживается эволюция ее основных течений. Важное место отводится человеку в системе философского знания. Особое внимание уделяется проблемам общества и культуры как объектам философского анализа, а также основополагающим ценностям жизни людей.
37483. Философия: Энциклопедический словарь 3.92 MB
  В Словаре включающем более 1500 статей рассматриваются понятия и проблемы современной философии ее главные направления и основные разделы. Большое число статей посвящено истории философии и философам оказавшим существенное влияние на развитие философии и всей общественной мысли. Особое место занимают материалы об отечественной философии и ее наиболее видных представителях. Введены также статьи показывающие взаимосвязь философии с такими науками как социология политология история лингвистика экономическая наука.
37484. Философы XX века 1.64 MB
  В разряд таких фактов прерывающих сплошную причинноследственную зависи мость попадают прежде всего явления самопроизволь ности о которых Бергсон и говорит как о специфичес ком признаке живого в целом и человека в особеннос ти. есть изобретение или оно ничто ^ Определяя время как ткань реальности Бергсон имеет в виду прежде всего внутренний субъективный опыт человека. У Бергсо на речь идет еще о бытийной основе и мира в целом и человека. Но в отличие от научной гипотезы яв ляющейся по мысли Бергсона определенной мыслитель...
37485. ФИЛОСОФИЯ. Учебник для вузов 4.35 MB
  Учебник написан авторами, которые известны и как крупные ученые, и как педагоги, обладающие большим опытом преподавания в вузах. Фундаментальные вопросы философии рассматриваются в нем с позиций плюрализма, многообразия их интерпретации и обоснования. Структура учебника максимально приближена к курсу философии, читаемому в большинстве вузов
37486. Высшая нервная деятельность 191 KB
  Понятие о высшей и низшей нервной деятельности. Образование условных рефлексов. Физиология высшей нервной деятельности. Условное (внутреннее) торможение и запредельное торможение. Биоэлектрическая активность головного мозга и методы ее изучения