Програмирование С++

Автор: Пользователь скрыл имя, 12 Июня 2013 в 21:56, курсовая работа

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

Данная курсовая работа выполнена на языке программирования высокого уровня С++ с использованием компилятора Code::Blocks. Этот язык был разработан в начале 80-х годов в BellLaboratories. С++ - расширение С, т.е. он обеспечивает кардинальное преимущество языка С++, как над своим предшественником языком С так и над другими языками высокого уровня: поддержка объектно-ориентированного программирования, перегруженных операций и возможность разработки полномасштабных windows-приложений.

Содержание

1. ВВЕДЕНИЕ 3
2. СРЕДА ПРОГРАММИРОВАНИЯ CODE::BLOCKS 4
3. ПРОГРАММЫ
3.1 Задача 4.8 8
3.2 Задача 4.86 10
3.3 Задача 5.6 11
3.4 Задача 5.79 15
3.5 Задача 6.32 16
3.6 Задача 6.78 18
3.7 Задача 7.7 20
3.8 Задача 12.37 22
4. АНАЛИЗ РЕЗУЛЬТАТОВ 25
5. ЗАКЛЮЧЕНИЕ 25
6. СПИСОК ЛИТЕРАТУРЫ 26

Работа содержит 1 файл

Kursach.docx

— 210.81 Кб (Скачать)

Федеральное агентство по образованию РФ

 

ФГБОУ ВПО «Воронежский государственный  технический университет»

 

 

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

Кафедра компьютерных интеллектуальных технологий проектирования

 

 

Курсовая работа

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

 

 

Выполнил студент

очной формы обучения

группы ТО-121,

Баранов П.А.

___________________________

(подпись) 

Проверил 

Юров А. Н.

___________________________

(подпись) 

Работа зачтена 

___ _____________2013____г.

 

 

ВОРОНЕЖ 2013

СОДЕРЖАНИЕ

1. ВВЕДЕНИЕ 3

2. СРЕДА ПРОГРАММИРОВАНИЯ  CODE::BLOCKS 4

3. ПРОГРАММЫ

3.1 Задача 4.8 8

    3.2 Задача 4.86 10

    3.3 Задача 5.6 11

    3.4 Задача 5.79 15

    3.5 Задача 6.32 16

    3.6 Задача 6.78 18

    3.7 Задача 7.7 20

    3.8 Задача 12.37 22

4. АНАЛИЗ РЕЗУЛЬТАТОВ 25

5. ЗАКЛЮЧЕНИЕ 25

6. СПИСОК ЛИТЕРАТУРЫ 26

 

 

 

 

 

 

ВВЕДЕНИЕ

Данная курсовая работа выполнена  на языке программирования высокого уровня С++ с использованием компилятора  Code::Blocks. Этот язык был разработан в  начале 80-х годов в BellLaboratories. С++ - расширение С, т.е. он обеспечивает кардинальное преимущество языка С++, как над  своим предшественником языком С  так и над другими языками  высокого уровня: поддержка объектно-ориентированного программирования, перегруженных операций и возможность разработки полномасштабных windows-приложений.

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

С помощью  языка С++ можно решать всевозможные задачи ставящиеся перед современным  программистом: написание системных  программ, разработка полноценных windows-приложений, объектное моделирование. Благодаря  тому, что язык С++ первоначально  разрабатывался как язык системного программирования, то он предоставляет  программисту широкие возможности  для работы с аппаратурой. Но так  как язык С++ подвергся полномасштабной  обработки, то он обеспечивает пользователя широким набором средств для  решения задач объектно-ориентированного программирования, благодаря этому  язык С++ позволяет осуществить интеграцию принципов объектно-ориентированного программирования на аппаратный уровень.

В этой курсовой работе проиллюстрированы  основные разделы программирования, изучаемые в курсе программирования на языке С++.

 

 

СРЕДА ПРОГРАММИРОВАНИЯ  CODE::BLOCKS

Code::Blocks — свободная кроссплатформенная  среда разработки. Code::Blocks написана  на С++ и использует библиотеку wxWidgets. Имея открытую архитектуру,  может масштабироваться за счёт  подключаемых модулей. Поддерживает  языки программирования  С, С++, D (с ограничениями).

Code::Blocks разрабатывается для Windows, Linux и Mac OS X. Среду можно собрать  из исходников практически под  любую Unix-подобную систему, например FreeBSD.

 

Возможности компиляции

 

• Поддержка множества компиляторов

  • MinGW / GCC C/C++
    • GNU ARM GCC Compiler
    • GNU AVR GCC Compiler
    • GNU GCC Compiler for PowerPC
    • GNU GCC Compiler for TriCore
  • Digital Mars C/C++
  • DigitalMars D (с некоторыми ограничениями)
  • SDCC (Small device C compiler)
  • Microsoft Visual C++ 6
  • Microsoft Visual C++ Toolkit 2003
  • MicrosoftVisual C++ 2005/2008 (с некоторыми ограничениями)
  • Borland C++ 5.5
  • Watcom
  • Intel C++ compiler
  • GNU Fortran
  • GNU ARM
  • GNU GDC

• Многопрофильные проекты

•Поддержка рабочих пространств

•Импорт проектов Dev-C++

•Импорт проектов и рабочих пространств MicrosoftVisualStudio (включая 2012)

 

Возможности интерфейса

 

•Подсветка синтаксиса

•Сворачивание блоков кода

•Автодополнение кода

•Браузер классов

•Скриптовой движок Squirrel

•Планировщик под несколько  пользователей

•Поддержка плагинов Devpack (установочные пакеты для Dev-C++)

•Плагин wxSmith (инструмент быстрой  разработки приложений (RAD) на wxWidgets)

 

Возможности отладки

 

•Поддержка отладчиков:

  • GNU GDB
  • MS CDB

•Поддержка визуализации значений переменных и функций

 

Чтобы создать новую программу 

 

1) Запускаем программу

2) ВыбираемCreateanewproject (показано на рисунке 1)

Рисунок 1-Сообщение от среды C::Bна начальном этапе работы

3) Consoleapplication (показано на рисунке 2)

Рисунок 2-Типы проектных решений

4) C++ (показано на рисунке 3)

Рисунок 3-Выбор языка программирования

5) Пишем название программы (показано на рисунке 4)

Рисунок 4-Создание проектного решения

6) Finish

7) Выбираем файл main.cpp (показано на рисунке 5)

Рисунок 5-Начало работы в программе

Пользование программой

А) Чтобы запустить программу выбираем (показано на рисунке 6)

    1. Build (компилирование программы)
    2. Run (запуск программы)
    3. Или Buildandrun (тогда без первых 2 пунктов)

Рисунок 6-Панель запуска программы

Б) Ошибки программы можно  поглядеть в Buildmessages. Так же они будут подсвечиваться красным цветом в коде программы. ( Показано на рисунке 7)

Рисунок 7-Вывод ошибок

ПРОГРАММЫ

Задача 4.8

1)Условие задачи

Известны два расстояния :

Одно в километрах;Другое – в футах (1фут=0,45м).

Какое из расстояний меньше?

2) Описание решения задачи

А) Ввожу два числа с клавиатуры

Б) Перевожу в метры

В) Сравниваю два значения

3) Кодпрограммы

#include<iostream>

#include <cstdlib>

using namespace std;

int main()

{

floata,b;

setlocale(LC_ALL, "Russian");

cout<<"Введите рассояние в километрах"<<endl;

cin>>a;

cout<<"Введите рассояние в футах"<<endl;

cin>>b;

a=a*1000;

b=b*0.45;

if (a>b) cout<<"Расстояние в километрах больше"<<endl;

else

{

if (a<b) cout<<"Расстояние в футах  больше"<<endl;

elsecout<<"Расстоянияравны"<<endl;

}

system("pause");

return 0;

}

4) Результатпоказан на рисунке 8

Рисунок 8-Вывод наибольшего расстояния

Задача 4.86

1)Условие задачи

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

2) Описание решения задачи

А) Для данной задачи подключаем дополнительную библиотеку <cmath>

Б) Ввожу два числа с клавиатуры  с клавиатуры

В) Ставлю условия, если модуль первого числа больше модуля второго числа, то первое число делим пополам

3) Кодпрограммы

#include <iostream>

#include <cmath>

#include <cstdlib>

using namespace std;

{

inta,b;

setlocale(LC_ALL, "Russian");

cout<<"Введите 1 число"<<endl;

cin>>a;

cout<<"Введите 2 число"<<endl;

cin>>b;

if (abs(a)-abs(b)>0) cout<<a/2<<endl;}

system("pause");

return 0;

}

4) Результатпоказан на рисунке 9

Рисунок 9-Сравнение двух чисел

Задача 5.6

1)Условие задачи

Напечатать числа следующим  образом

21 20.4                     16 15.5 16.8

22 21.4                     17 16.5 17.8

   …                                 …

35 34.4                      24 23.5 24.8

     а)                                 б)

2) Описание решения задачи

А) Для данной задачи подключаем дополнительную библиотеку <cmath>

Б) Создаем двумерный массив и заполняем элементы числами, увеличивая значение на единицу

В) Выводим эти числа столбиком

3) Кодпрограммы

#include <iostream>

#include <cstdlib>

#include <cmath>

using namespace std;

int main()

{ inti,j,k,p;

float a[16][3],b[10][4];

setlocale(LC_ALL, "Russian");

a[1][1]=21;

a[1][2]=20.4;

cout<<"à)"<<endl;

cout<<a[1][1]<<" "<<a[1][2]<<endl;

for (i=2; i<16; i++)

{

for (j=1; j<3; j++)

{

a[i][1]=a[i-1][1]+1;

a[i][2]=a[i-1][2]+1;

cout<<a[i][j]<<" ";

}

cout<<endl;

}

 

b[1][1]=16;

b[1][2]=15.5;

b[1][3]=16.8;

cout<<"á)"<<endl;

cout<<b[1][1]<<" "<<b[1][2]<<" "<<b[1][3]<<endl;

for (k=2; k<10; k++)

{

for (p=1; p<4; p++)

{

b[k][1]=b[k-1][1]+1;

b[k][2]=b[k-1][2]+1;

b[k][3]=b[k-1][3]+1;

cout<<b[k][p]<<" ";

}

cout<<endl;

}

system("pause");

return 0;

}

4)Результатпоказаннарисунке 10

Рисунок 10-Вывод чисел

Задача 5.79

1)Условие задачи

Вычислить приближенно площадь  фигуры, образованной кривойy= -0.5(x+1)^2+2, осью абсцисс, осью ординат и прямой y=2.

2) Описание решения задачи

3)  Код программы

#include<iostream>

#include <cstdlib>

#include <cmath>

using namespace std;

int main()

{ float a, b, eps,x,s,f;

a=-3;

b=0;

eps=0.001;

s=0;

x=a;

while (x<=b)

{

x=x+eps;

 

f=-0.5*pow(x+1,2)+2;

 

s=s+f*eps;

 

}

 

cout<<s;

 

system("pause");

 

return 0;

 

}

4)Результат показан на рисунке 11

Рисунок 11-Вывод приближенной площади фигуры

Задача 6.32

1)Условие задачи

Дано натуральное число. Определить сколько раз в нем  встречается

минимальная цифра (например для числа ответ равен 3, для  числа

40 330 – 2 ,для числи 10 345 – 1).

2) Описание решения задачи

А)

Б)

В)

3)  Код программы

#include<iostream>

#include <cstdlib>

#include <string.h>

using namespace std;

int main()

{

intn,z, min, a,k=0;

cin>>n;

a=n;

min=9;

while (a>0)

{

z=a%10;

if (z<min) min=z;

a/=10;

}

while (n>0)

{

z=n%10;

if (z==min) k++;

n/=10;

}

cout<<k;

system("pause");

 

return 0;

 

}

4)Результат показан на рисунке 12

Рисунок 12-Вывод минимальных цифр в числе

Задача 6.78

1)Условие задачи

Выяснить, является ли заданное число n членом арифметической прогрессии , первый член которой равенf , а шаг-s.

2) Описание решения задачи

А) Вводим первый член арифметической прогрессии, шаг и число относительно которого мы работаем

Б) Создаем цикл (for)

В) Если данное число равно члену прогрессии, то оно входит в эту прогрессию

3)  Кодпрограммы

#include<iostream>

#include <cstdlib>

using namespace std;

int main()

{

intf,n,d;

setlocale(LC_ALL, "Russian");

cout<<"Введите число"<<endl;

cin>>n;

cout<<"Введите первый член арифметической прогрессии"<<endl;

cin>>f;

cout<<"Введите шаг"<<endl;

cin>>d;

for (inti=0; i<50; i++)

{

if (n==f)

{

cout<<"Является"<<endl;

break;

}

f=f+d;

}

system("pause");

return 0;

}

 

4)Результатпоказан на рисунке 13

Рисунок 13-Проверяем является ли число членом прогрессии

Задача 7.7

1)Условие задачи

 

Определить количество натуральных  чисел из интервала от 100 до 500, сумма  цифр которых равна 15.

2) Описание решения задачи

А) Создаем массив, значение которых равняется самим элементам

Б) Определяем разряды в числе если сумма этих цифр равна 15 , то увеличиваем счетчик этих чисел

В) Выводим сумму этих чисел

3) Кодпрограммы

#include<iostream>

#include <cstdlib>

using namespace std;

int main()

{

inti,a[501],k=0;

for (i=100;i<501;i++)

{

a[i]=i;

if (((a[i]/100)+(a[i]%10)+(a[i]/10)%10)==15) k++;

}

cout<<k<<endl;

system("pause");

return 0;

}

4) Результатпоказаннарисунке 14

Рисунок 14-Вывод количества натуральных чисел от 100 до 500 сумма цифр которых равна 15

Задача 12.37

1)Условие задачи

В двумерном массиве хранится информация о количестве учеников в каждом классе каждой параллели школы с первой по одиннадцатую (в первой строке – информация о классах первой параллели, во второй  - второй параллели и.т.д). В каждой параллели школы имеются  четыре класса. Определить общее число учеников в параллели 5-х классов

2) Описание решения задачи

А) Подключаем дополнительную библиотеку <ctime>

Б) Создаем двумерный массив и заполняем случайными числами

В) Используя циклfor,выводим сумму учеников 5ой параллели

Информация о работе Програмирование С++