Программирование на языке С

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Программирование
  • 29 29 страниц
  • 5 + 5 источников
  • Добавлена 07.09.2012
1 000 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Содержание

Аннотация
Введение
1.Анализ технического задания
2.Программная реализация
3.Описание программы
4.Руководство программиста
5.Методика испытаний
6.Заключение
7.Список литературы
Приложения
Блок-схема алгоритма программы
Текст программы

Фрагмент для ознакомления

pVisited[i]i#includeint main(){int iNum = 0; printf("Enter a number of people, arrived on the Olympic Games - "); scanf("%d", &iNum); printf("On the Olympic Games there arrived %d of people\n", iNum);//Создаем динамический массив размерностью iNum X iNum//в этом массиве будет храниться матрица смежности,//описывающая граф, показывающий связи между олимпийцами//создадим iNum строкint (*pArrayGraf)[iNum];// выделение памяти для массива iNum x iNumpArrayGraf = malloc(iNum*iNum*sizeof(int));if (!pArrayGraf) { printf("There is not enough memory.\n"); exit(1); } printf("Memory is allocated\n");int i = 0, j = 0;//Заполним выделенный масив нулямиfor(i = 0;i < iNum; i++) {for(j = 0; j < iNum; j++){ pArrayGraf[i][j] = 0; } }////Задание знакомых прибывших на олимпиаду (заполнение матрицы смежности)////Тестовый пример №1/* pArrayGraf[0][1] = 1; pArrayGraf[0][2] = 1; pArrayGraf[1][0] = 1;pArrayGraf[1][2] = 1; pArrayGraf[1][3] = 1; pArrayGraf[2][0] = 1; pArrayGraf[2][1] = 1; pArrayGraf[2][1] = 1; pArrayGraf[2][3] = 1; pArrayGraf[2][4] = 0; pArrayGraf[3][1] = 1; pArrayGraf[3][2] = 1; pArrayGraf[3][4] = 0; pArrayGraf[4][2] = 0; pArrayGraf[4][3] = 0; /* ////Тестовыйпример №2 pArrayGraf[0][1] = 1; pArrayGraf[0][2] = 1; pArrayGraf[0][3] = 1; pArrayGraf[1][0] = 1; pArrayGraf[2][0] = 1; pArrayGraf[2][4] = 1; pArrayGraf[2][5] = 1; pArrayGraf[3][0] = 1; pArrayGraf[3][6] = 0; pArrayGraf[4][2] = 1; pArrayGraf[5][2] = 1; pArrayGraf[6][3] = 0; */////Заданиеграфавручнуюfor(i = 0; i < iNum; i++)for(j = i + 1; j < iNum; j++) {if(i!=j) {int sw = 0; printf("The Olympian of %d is familiar with the Olympian of %d? (Yes - 1 / No - 0) - ", i+1, j+1); scanf("%d",&sw); printf("\n");switch(sw) {case 0: pArrayGraf[i][j] = 0; pArrayGraf[j][i] = 0;break;case 1: pArrayGraf[i][j] = 1; pArrayGraf[j][i] = 1;break;default: pArrayGraf[i][j] = 1; pArrayGraf[j][i] = 1;break; } } }//Вывод содержимого массива на экранfor(i = 0;i < iNum; i++) {for(j = 0; j < iNum; j++) { printf("%d ", pArrayGraf[i][j]);} printf("\n"); }//Матрицу, описывающую граф знакомств, мы получили//Теперь нам надо определить является ли граф, описанный этой матрице, связным//Если граф связный, то перезнакомить всех олимпийцев - возможно,//если не - то нельзя.//Для определения связности графа, воспользуемся известным алгоритмом поиска в ширину// Для этого:// 1. Определим массив, который будет выполнять роль очереди:int *pQueue = malloc(iNum*sizeof(int));// 2. Массивпосещенныхвершинint *pVisited = malloc(iNum*sizeof(int));for(i = 0; i < iNum; i++) { pQueue[i] = 0; pVisited[i] = 0; }// 3. Головаочереди:int iHead = 0;// 4. Хвосточереди:int iCount = 0;// 5. Текущий элемент:int iCurrent = 0;//Помещаем первую вершину графа в очередь pQueue[iCount] = 1;//Увеличиваем указатель на хвост очереди iCount++;//Помечаем первую вершину, как посещенную pVisited[0] = 1;//Начинаем цикл поиска связанных с вершиной 1 вершинdo {//В переменную извлекаем головной элемент очереди iCurrent = pQueue[iHead]-1;//Увеличиваем указатель на голову очереди iHead++;//Ищем связанные вершины (в матрице смежности на пересечении//связанных вершин ставится единица), т.о. если iCurrent == 1,//то связная у связной вершины на пересечении будет стоять единица.for(i = 0; i < iNum; i++){//Проверяем условие смежности вершин и то что вершина еще была не посещенаif ((pArrayGraf[iCurrent][i] == 1) && (!pVisited[i])){//если смежная вершина есть и она еще не посещалась,//то добавляем ее в очередь pQueue[iCount] = (i+1);//увеличиваем указатель на конец очереди iCount++;//помечаем, как посещенную pVisited[i] = 1; } } }//цикл заканчивается, когда очередь исчерпаетсяwhile(iCount != iHead);//печать содержимое матрицы посещений printf("\n");for(j = 0; j < iNum; j++) { printf("%d ", pVisited[j]); } printf("\n\n");//печать содержимое очередиfor(j = 0; j < iNum; j++) { printf("%d ", pQueue[j]); }int fl = 0;//проверка связности (если в матрице посещений есть 0, то граф не связан)for(j = 0; j < iNum; j++) {if ((pVisited[j] == 0) && (fl == 0)) { printf("\nParticipants of the Olympic Games can`t get acquainted with each other."); fl = 1; } }if (fl == 0) printf("\nParticipants of the Olympic Games can get acquainted with each other.");//освобождениепамяти free(pArrayGraf); free(pQueue);free(pVisited);return 0;}

7.Список литературы
1.А. Левитин «Алгоритмы: введение в разработку и анализ» Пер. с англ. – М.: Издательский дом «Вильямс», 2006. – 576 с., ил.
2.«Информатика и программирование. Методические указания к курсовой работе» - Муром, 2007. – 10 с.
3.ГОСТ 19.101-77
4.ГОСТ 2.105-95
5.У. Савич «Программирование на C++. 4-е издание» – СПб.:Питер; Киев: Издательская группа BHV, 2004 – 781 с., ил.

Вопрос-ответ:

Как происходит анализ технического задания?

Анализ технического задания включает в себя изучение требований заказчика, определение функциональности и основных характеристик программы, а также оценку сложности и объема работы.

Как осуществляется программная реализация?

Программная реализация включает в себя написание кода на языке программирования С, в соответствии с требованиями технического задания. Реализация может включать создание структур данных, обработку входных данных, выполнение алгоритмов и вывод результатов.

Что включает в себя описание программы?

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

Что включает в себя руководство программиста?

Руководство программиста содержит инструкции по установке и настройке программы, а также описание основных функций и возможностей программы, примеры использования и решения типичных задач.

Как осуществляется методика испытаний?

Методика испытаний включает в себя планирование и проведение тестирования программы, а также анализ результатов тестирования и исправление возникших ошибок. Испытания могут включать проверку работы программы на различных тестовых данных и сравнение полученных результатов с ожидаемыми значениями.

Что такое аннотация в программировании?

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

Что такое программная реализация?

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

Что такое методика испытаний?

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

Какова основная функция динамического массива в данной программе?

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