Методы проектирования структуры ПО

Автор работы: Пользователь скрыл имя, 26 Ноября 2012 в 16:24, доклад

Описание

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

Работа состоит из  1 файл

проект.docx

— 39.20 Кб (Скачать документ)

В рассмотренном  примере определен массив B, состоящий  из четырех целочисленных элементов. С элементами массива можно манипулировать как с обыкновенными переменными. 
Существуют многомерные массивы, например: 
int A[3][2];  -двумерный массив (четыре строки и три столбца): 
char   A[3][3][3][3]; - четырехмерный массив. 
Рассмотрим пример работы с двумерным массивом. 
#include “stdio.h” 
main() 

            float B[4][3]; 
B[0][0] = 0; 
            B[1][1] = 1.1; B[2][1] = 1.2; B[3][1] = 1.3; 
            B[1][2] =2.1;  B[2][2] =         2.2;  B[3][2] =2.3; 
            printf("B[1,1]= %4.2f B[2,1]= %4.2f B[3,1]= %4.2f\\n", B[1][1],B[2][1],B[3][1]); 
            printf("B[1,2]= %4.2f B[2,2]= %4.2f B[3,2]= %4.2f\\n", B[1][2],B[2][2],B[3][2]); 
}

Записи 
В отличие от массивов  запись  позволяет  хранить  данные различных  типов. Запись  начинается  после  ключевого  слова struct.  
Пример, где в записи  хранится  информация  о студентах: фамилия, год рождения, номер группы: 
#include “stdio.h” 
#include “string.h” 
typedef           struct A { 
            char                 Fio[31]; 
            int                               God; 
            int                               Gruppa; 
}; 
main() 

            struct A B; 
            strcpy(B.Fio,"Ivanow G.I."); B.God = 1977; 
            B.Gruppa = 384; 
            printf("Fio = %s\\n",B.Fio);  
printf("God = %d\\n",B.God);  
printf("Gruppa = %d\\n",B.Gruppa); 

В рассмотренном примере запись имеет следующую структуру: 
                                               struct A { /* A  имя записи} */ 
            char                 Fio[31]; /* 1 поле записи */ 
            int                               God;     /* 2 поле записи */ 
            int                               Gruppa;  /* 3 поле записи */ 
                                                                                  } 
Далее можем ввести структуру B аналогичную A по команде 
                        struct A B; 
Далее можем в поля помещать конкретные данные, но мы должны уточнить, что поля принадлежат переменной B  нотацией  с точкой (B.Fio:=”Ivanow G.I.”; и т.д.). 
С помощью ключа typedef  структурам дается имя. 
Пример можно переписать следующим образом. 
#include “stdio.h” 
#include “string.h” 
typedef           struct  { 
            char                 Fio[31]; 
            int                               God; 
            int                               Gruppa; 
} A; 
main() 

             A B; 
            strcpy(B.Fio,"Ivanow G.I."); 
            B.God = 1977; 
            B.Gruppa = 384; 
            printf("Fio = %s\\n",B.Fio);  
printf("God = %d\\n",B.God);  
printf("Gruppa = %d\\n",B.Gruppa); 
}

В примере  мы рассмотрели одну запись, но в  реальной  жизни в группе не может быть одного студента, поэтому мы  можем совместить массив и запись и создать  массив  записей.  Рассмотрим пример.

#include “stdio.h” 
#include “string.h” 
typedef  struct A { 
            char        Fio[31]; 
            int         God; 
int         Gruppa; 
 }; 
main() 

            A WGruppa[12]; 
            strcpy(WGruppa[1].Fio,"Ivanow G.I."); 
            WGruppa[1].God = 1977; 
            WGruppa[1].Gruppa = 384; 
            strcpy(WGruppa[2].Fio,"Petrow R.G."); 
            WGruppa[2].God = 1978;  
WGruppa[2].Gruppa = 384; 
            printf("Fio1 = %s\\n",WGruppa[1].Fio); 
            printf("God1 = %d\\n",WGruppa[1].God);  
printf("Gruppa1 = %d\\n",WGruppa[1].Gruppa); 
            printf("Fio2 = %s\\n",WGruppa[2].Fio);  
printf("God2 = %d\\n",WGruppa[2].God); 
printf("Gruppa2 = %d\\n",WGruppa[2].Gruppa); 
}

Первоначально мы определили  структуру  A,  а  затем  использовали ее при объявлении структуры WGruppa, как  массива состоящего из 12 записей структуры B. 
Теперь для адресации мы  должны  указать  номер  элемента массива и имя поля. 
Существуют варианты, когда одна запись содержит другую запись, например, добавляется адрес, к рассмотренной выше записи студент. Пример. 
#include “stdio.h” 
#include “string.h” 
typedef                       struct Adress { 
            char    City[31]; 
char    Street_Nd_Kw[61]; }; 
typedef                       struct A { 
            char         Fio[31]; 
            int          God; 
            int          Gruppa; 
Adress       D_addr; }; 
main() 

            A WGruppa[12]; 
            strcpy(WGruppa[1].Fio,"Ivanow G.I."); 
            WGruppa[1].God = 1977; 
            WGruppa[1].Gruppa = 384; 
            strcpy(WGruppa[1].D_addr.City,"Shadrinsk"); strcpy(WGruppa[1].D_addr.Street_Nd_Kw,"Lenina 10 kw.1"); 
            strcpy(WGruppa[2].Fio,"Petrow R.G."); 
            WGruppa[2].God = 1978; 
            WGruppa[2].Gruppa = 384; 
            strcpy(WGruppa[2].D_addr.City,"Kataisk"); strcpy(WGruppa[2].D_addr.Street_Nd_Kw,"Akulowa 1 kw.2"); 
            printf("Fio1 = %s\\n",WGruppa[1].Fio); 
printf("God1 = %d\\n",WGruppa[1].God); 
printf("Gruppa1 = %d\\n",WGruppa[1].Gruppa); 
printf("City= %s\\n",WGruppa[1].D_addr.City)
            printf("Street= %s\\n",WGruppa[1].D_addr.Street_Nd_Kw); 
            printf("Fio2 = %s\\n",WGruppa[2].Fio); 
            printf("God2 = %d\\n",WGruppa[2].God); 
            printf("Gruppa2 = %d\\n",WGruppa[2].Gruppa);  
printf("City= %s\\n",WGruppa[2].D_addr.City);  
printf("Street= %s\\n",WGruppa[2].D_addr.Street_Nd_Kw); 
}


Информация о работе Методы проектирования структуры ПО