Модульное программирование

Автор работы: Пользователь скрыл имя, 22 Января 2011 в 15:04, курсовая работа

Описание работы

Определить количество элементов массива расположенных между максимальным и «центральным» элементами массива (предполагается, что число элементов – нечётное и максимальный элемент - единственный). Если по какой либо причине количество определить не удаётся, выдать об этом сообщение с указанием причины.

Файлы: 1 файл

курсовая_работа моя.doc

— 227.00 Кб (Скачать файл)

 

    ОПИСАНИЕ ОСНОВНОЙ ПРОГРАММЫ 

6.1 Описание данных 

Описание глобальных данных: 

void enter(int *a, int n); //функция  ввода массива

void print(int *a, int n); // функция вывода массива

            int max(int *a, int n); // функция находящая номер максимального элемента

                int poisk(int*a,int n,int zad_elem);//функция проверяющая наличие заданного элемента в массиве

                void del(int*a,int &n,int zad_elem);//функция удаляющая После каждого элемента с заданным значением, 1 элемент, если он отличен от заданного

                      void paste(int*a,int &n,int new_element,int zad_nomer);//функция вставляющая элемент с заданным значением после элемента с заданным номером

            bool proverka pologit(int*a,int n);//функция проверяющая есть ли в массиве два подряд идущих положительных элемента.

                int kol_vo(int*a,int maxim,int n);//функция нахождения количества элементов расположенных между центральным и максимальным элементами

            bool neskolko(int*a,int n);//функция проверки единственности максимального элемент в массиве 

Описание локальных  данных: 

 int *амассив.

 Int nдлина массива.

 Int choiceномер задания, выбираемого из меню.

 Int numbermaxномер максимального элемента.

 Int zad_elemзначение элемента для сравнения

         Int zad_nomerзаданный номер элемента после которого необходимо произвести вставку

 Int new_elementзначение нового элемента. 

Программа использует подпрограммы решения задач 1-4: 

Enter(a,n), print(a,n), max(a,n), kol_vo(a,maxim,n), paste(a,n,new_element,zad_nomer), poisk(a,n,zad_elem), proverka pologit(a,n,), del(a,n,Zad_elem), neskolko(a,n). 
 
 

6.2 Описание алгоритма: 

Выбор требуемой  задачи из меню.

Выполнение выбранной  задачи по соответствующим условиям.  

6.3 Текст программы 

_______________________________Main.cpp_____________________________________

#include<iostream>

using namespace std; 

void enter(int *a, int n); //функция ввода массива

void print(int *a, int n); // функция вывода массива

int max(int *a, int n); // функция находящая номер максимального элемента

                bool poisk(int*a,int n,int zad_elem);//функция проверяющая наличие заданного элемента в массиве

                void del(int*a,int &n,int zad_elem);//функция удаляющая После каждого элемента с заданным значением, 1 элемент, если он отличен от заданного

                  void paste(int*a,int &n,int new_element,int zad_nomer);//функция вставляющая элемент с заданным значением после элемента с заданным номером

            bool proverka pologit(int*a,int n);//функция проверяющая есть ли в массиве два подряд идущих положительных элемента

                int kol_vo(int*a,int maxim,int n);//функция нахождения количества элементов расположенных между центральным и максимальным элементами

              bool neskolko(int*a,int n);//функция проверки единственности максимального элемент в массиве 

int main()

    { int n,choice;

do

   {

      system("dhcp 1251|cls");

cout<<"\n>>>>>>>>>>>>>>>>>>> МЕНЮ <<<<<<<<<<<<<<<<<<<< ";

          cout<<"\nЗадание № 1. Найти  количество элементов массива расположенных между максимальным и центральным элементами.";

          cout<<"\nЗадание № 2. После каждого элемента с заданным значением, удалить 1 элемент, если он отличен от заданного.";

          cout<<"\nЗадание № 3. Вставить элемент с заданным значением после элемента с заданным номером.";

          cout<<"\nЗадание № 4. Проверить есть ли в массиве два подряд идущих положительных элемента.";

cout<<"\n0. Выход"<<"\n";

cout<<"\n Выбери задание => ";

cin>>choice;

      switch(choice)

      { 

            case(1):

                  {

                              cout <<"\nВы выбрали пункт №1-Найти  количество элементов массива расположенных между максимальным и центральным элементами."; 

                              cout<<"\nВведите количество элементов массива: ";

                               cin>>n; 

                                if (n==0)//проверка на наличие элементов в массиве

                        {

                            cout<<"\nМассив пуст!\n";

                            return 1;

                         }

                                  if ((n%2)==0)//проверка на чётность размерности массива

                       {

                                            cout <<"Ошибка! Количество элементов должно быть нечётным. \n";

                             return 10;

                       } 

                  int *a = new int [n];

                  enter(a,n);//функция ввода элементов в массив 

                                    if (max(a,n)==(n/2))//проверка на совпадения номера максимального и центрального элемента

                        {

                                              cout<<"Центральный и максимальный элемент совпадают";

                              return 9;

                        }

       

                  int maxim=max(a,n);

                                if (neskolko(a,n)) //функция проверки единственности максимального элемент в массиве

                                        cout <<"Ошибка! В массиве несколько максимальных элементов. \n";

                 else

                                      kol_vo(a,maxim,n);//функция нахождения количества элементов расположенных между центральным и максимальным элементами 

                 system("pause");

                     break;

                     delete []a;

                  } 
 

          case(2):

                     {

                                    cout <<"\nВы выбрали пункт №2-После каждого элемента с заданным значением, удалить 1 элемент, если он отличен от заданного.";

                     int zad_elem;

                                    cout <<"\nВведите количество элементов массива:";

                                    cin >> n; 

                     if (n<2)

                           {

                                                   cout <<"Ошибка! Количество элементов массива должно быть не менее двух.\n";

                                 return 3;

                           } 

                    int*a = new int [n];

                                     enter(a,n);//функция ввода элементов массива 

                                   cout <<"\nВведите заданный элемент для сравнения: ";

                                   cin >> zad_elem; 

                     if (zad_elem==a[n-1])

                        {

                                                cout <<"\n Заданный элемент является последним в массиве ";

                              return 4;

                         } 

                                   if (poisk(a,n,zad_elem))//функция проверки наличия заданного элемента в массиве

                          {

                                              del(a,n,zad_elem);//функция удаляющая после каждого элемента с заданным значением,1 элемент, если он отличен от заданного

                                                print(a,n);//функция вывода элементов массива

                          }

                                      else  cout<<"\nВ массиве нет заданного элемента "; 

                  system("pause");

                  break;

                 delete[]a;

              } 
 

           case(3):

                        {

                                              cout <<"\nВы выбрали пункт № 3-Вставить элемент с заданным значением после элемента с заданным номером.";

                            int new_element, zad_nomer; 

                                               cout <<"\nВведите количество элементов массива:";cin >> n;

                           if (n<1)

                               {

                                   cout <<"\n Массив пуст\n";

                                   return 5;

                              } 

                                       int* a = new int[n+1];

                                           enter(a,n);//функция ввода элементов массива 

                                        cout <<"\nВведите номер элемента после которого необходимо произвести вставку: ";

                       cin>>zad_nomer;

                                         if (n<zad_nomer)// если заданный номер превышает размерность массива

                              {

                                                    cout<<"Ошибка! Массив не имеет элемента с заданным номером, так как количество элементов массива менее "<<zad_nomer;

                                  return 6;

                             } 

                     cout <<"\nВведите элемент для вставки:";

Информация о работе Модульное программирование