Автор работы: Пользователь скрыл имя, 15 Февраля 2013 в 05:37, курсовая работа
C++–компилируемый статически типизированный язык программирования общего назначения. Поддерживая разные парадигмы программирования, сочетает свойства как высокоуровневых, так и низкоуровневых языков.
В сравнении с его предшественником – языком C, – наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования. Название «C++» происходит от языка C, в котором унарный оператор ++ обозначает инкремент переменной.
Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (например, видеоигры). Существует несколько реализаций языка C++ – как бесплатных, так и коммерческих. Их производят Проект GNU, Microsoft, Intel и Embarcadero (Borland). C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.
Введение
5
1 Теоретические основы
8
2 Описание алгоритма программы
14
3 Описание основных функций и переменных программы
19
4 Тестирование программы
20
5 Руководство пользователя
23
Заключение
24
Библиографический список
25
random_shuffle(start,end) –сортирует элементы между start и end в случайном порядке
sort(start,end) - сортирует элементы от start до end в порядке возрастания
Создание динамических массивов
Чаще
всего операции new и delete
float *ptrarray = new float [10];
После того как динамический массив стал ненужным, нужно освободить участок памяти, который под него выделялся.
delete [] ptrarray;
После оператора delete ставятся квадратные скобочки, которые говорят о том, что высвобождается участок памяти, отводимый под одномерный массив.
Так же в программе использовались структуры.
Структура– это составной тип данных, который состоит из элементов разных типов. Объявление структуры следует рассматривать как объявление типа.
Предположим, требуется хранить информацию о баскетболисте. Нужно хранить его имя, зарплату, рост, вес, среднюю результативность, процент попаданий, результативных передач и тому подобное. Тогда понадобится некоторая форма данных, которая могла бы хранить всю эту информацию как единое целое. Массив здесь не подходит. Хотя массив может хранить несколько элементов, но все они должны быть одного типа. То есть один массив может хранить 20 целых чисел, а другой — 10 чисел с плавающей точкой, но он не может хранить целые значения в одних элементах и значения с плавающей точкой — в других.
Удовлетворить эту потребность в совместном хранении всей информации о баскетболисте может структура C++. Это позволяет унифицировать представление данных за счет сохранения всей информации, связанной с баскетболистом, в одной структурной переменной. Если вы хотите отслеживать информацию о целой команде, то можете воспользоваться массивом структур. Тип структуры — это еще и ступенька к покорению бастиона объектно-ориентированного программирования C++ - класса. Изучение структур приблизит вас к сердцу ООП на языке C++.
Структура — определяемый пользователем тип с объявлением, описывающим свойства типа. После того, как вы определите тип, вы можете создавать переменные этого типа. То есть, создание структуры — двухфазный процесс. Во-первых, вы определяете описание структуры, перечисляющей и именующей типы данных, которые могут быть сохранены в структуре. Затем вы создаете структурные переменные, или, иначе говоря, структурные объекты данных, которые следуют плану, заданному объявлением.
struct [<имя структуры>]{
<тип поля><индетификатор 1>;
<тип поля><индетификатор 2>;
…
<тип поля><индетификатор N>;
}[<идентификатор перемен.
Пример. Объявление структуры, которая хранит сведения о журнале: название, год, номер.
struct magazin{
char* tittle;
int year;
intnumber;
};
Ниже определена и инициализирована переменная структура mag.
magazinmag = {"Nature", 3, 1995);
Доступ
к элементам структуры
<имя структуры>.< индетификатор n>
Здесь точка обозначает оператор выбора, а составное имя дает еще один пример адресного выражения.
2. АЛГОРИТМ ПРОГРАММЫ
В предоставленной программе
Так же для облегчения занимаемой памяти используется динамический массив, который выделает память только в момент работы самой программы, а не на шаге компиляции.
Вывод мужчин или женщин осуществляется с помощью проверки условия оператором if (согласно рисунку 1). Так как в структуре, принадлежность пола обозначается одним символом, применение данного способа является самым оптимальным для данного случая.
Для отборки самой молодой девушки, чей рост выше среднего роста мужчин, использовалась отдельная функция, перевода даты в десятичную систему и последующим сравнением между собой.
Для выхода использовалась операция return(0), которая закрывает программу.
Рисунок 1 – Блок – схема меню программы.
Рисунок 2 – Блок – схема выбора и вывода мужчин (женщин) из списка.
Рисунок 3 – Блок схема сортировки и вывода самой молодой женщины чей рост вше среднего роста мужчины.
Функция minidata представляет собой перевод даты в десятичное числа. С последующим сложением и сравненем полученных дпт
Функция
“minidata” требуется для
a.y*10000+a.m*100+a.d
Если первое значение больше второго возвращается единица иначе ноль.
3. ОПИСАНИЕ ВСЕХ ФУНКЦИЙ И ПЕРЕМЕННЫХ ПРОГРАММЫ.
В данной программе использовалось две функция “comp” и “minidata”.
Функция “comp” используется для сортировки фамилий по алфавиту, путем сравнения каждой буквы и возвращение единицы или нуля. Анна процедура помогает сортировать не только по первой букве но и по всему слову.
Так же в програме использовались переменные типо bool для возвращения истинных или ложных значений.
Таблица 1 – Описание переменных
Имя |
Тип |
Описание переменной |
t |
int |
Счетчик мужчин |
i |
Счетчик цикла | |
l |
Счетчик цикла, подсчетколичества операций | |
s |
Счётчик ввода операция | |
e |
Счётчик подсчета количества мужчин | |
N |
Хранит количества людей | |
q |
Счётчик правильности ввода значений | |
k |
Номер выполняемой операции | |
youngest_woman_no |
Хранения номера самой молодой женщины | |
higt |
float |
Переменная в структуре |
symm |
Сумма всех мужчин | |
comp |
bool |
Возвращение 1 или 0 |
d |
birth_date (int) |
Структура хранящая даты рождения |
m | ||
y | ||
surname |
men(char) |
Переменная в структуре men хранящая фамилию |
name |
Переменная в структуре men хранящая имя | |
sex |
Переменная в структуре men хранящая пол |
4. ТЕСТИРОВАНИЕ ПРОГРАММЫ.
Для отладки
программы производились
При входе в программу, автоматически запрашивается количество человек.
Далее программа выдает шаблон на заполнение, в котором требуется ввести:
При вводе даты рождения проверяются условия. Не более 31 дня в месяце, количество месяцев не превышается 12, год не менее 1930 и не более 2012.При невыполнении условия, программа выдаёт сообщение об ошибке.
Рисунок 4 - Проверка даты.
После заполнения даты, требуется ввести рост. Так же данное условие проверяется. Рост может быть не больше 250 и меньше 50 сантиметров. При неверном вводе выдается ошибка и повторный ввод роста.
Рисунок 5 - Проверка веденного роста.
Далее пользователь вводит пол. Данное условие не проверяется.
После заполнения шаблонов пользователь предоставляется меню.
Рисунок 6 - Меню программы.
При вводе нужной операции выполняется соответствующее действие.
Сортировка по алфавиту проходит по каждому символу.
Рисунок 7 - Сортировка по алфавиту.
При выполнении пункта «6», сравнение дат производиться программно. При совпадении годов(месяца), учитывается месяц(день) рождения человека.
Рисунок 8 - Вывод самой молодой девушки, чей рост выше среднего роста мужчины.
При выводе операции «3» выводятся все данные о мужчинах. Если таковых не имеется, то выводиться сообщение об их отсутствии. Следовательно, не выполняется пункт «6» и выводиться сообщение об отсутствии девушек, удовлетворяющих условию. Так же не выполняется пятая операция.
Рисунок 9 - Пример выполнения программы без мужчин.
Так же учитывается и отсутствие женщин в списке.
Рисунок 10 - Пример выполнения программы без женщин.
Если пользователь вводит неверный номер операции, выводиться сообщение об ошибке и просьба ввести его повторно.
Рисунок 11 - Вывод ошибки, при неверно введённой операции.
5. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
В начале программы пользователю предлагается ввести количество человек. В данном поле не рекомендуется вводить буквенные значения. В противном случае программа работает не корректно.
Далее пользователь вводит имя и фамилию, в данном поле не имеется ни каких ограничений.
В последующих трех строчках требуется ввести дату рождения человека в числовой форме. При введении неверной даты, выводиться сообщение об ошибке и выводиться повторный ввод данных. Если,дата введена в символьной форме, программа работает некорректно, завершает цикл ввода и переход к вводу следующего человека.
После пользователь вводит рост, он так же проверяется. Рост человека не более 250 и не менее 50сантиметров. Последним пунктом вводиться пол, одной буквой.
Далее
возможна работа с базой
По просьбе пользователя возможен вывод:
При вводе неверной операции выводиться ошибка и повторный ввод. При введении символьных значений программа завершает работу.Для выхода из программы введите «7»
ЗАКЛЮЧЕНИЕ
В современном, информационном обществе
человек имеет дело с большим
количеством информации. Её нужно
обрабатывать, хранить, редактировать.
Именно для этого разрабатываются
различные программные
В процессе выполнения курсовой работы была разработана программа на языке программирования С++.
В ходе работы были освоены структуры, работа с базами данных а именно:
Был разработан специальный алгоритм поиска самой молодой женщины, путем перевода даты в десятичную систему и последующим сравнением.
Освоены новые библиотеки аlgorithm и windows.h. Обеспечена проверка правильности ввода данных, путем создания условий проверки через цикл for иwhile.
Использован динамический массив для разумного распределения памяти.
Программа адоптирована для любого пользователя. Благодаря понятному интерфейсу программа подходит для использования, как в домашних условиях, так и в различных предприятиях.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1 Библиотека
MSDN [Электронный ресурс]. – Режим доступа
: http://msdn.microsoft.com/ru-