Разработка консольных приложений в интегрированной среде C++ Builder 6

Составление алгоритмов, разработка приложения для решения прикладных задач на примере консольных приложений C++ Builder 6. Анализ пользовательских интерфейсов, компонентной архитектуры программы. Примеры консольных приложений. Сущность алгоритмизации.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 08.11.2014
Размер файла 92,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

ТУЛЬСКИЙ ИНСТИТУТ ЭКОНОМИКИ И ИНФОРМАТИКИ

Кафедра информационных технологий

Учебная дисциплина

«Информатика и программирование»

КУРСОВАЯ РАБОТА

На тему Разработка консольных приложений в интегрированной среде C++ Builder 6

Выполнил студент Устинов Святослав Сергеевич, гр. ТзбПИвЭ12с

Руководитель Кузнецов О.В.

Тула, 2014 год

ВВЕДЕНИЕ

В наше время информация является общедоступной, а объем её несоизмеримо велик, поэтому многие пользователи ПК занимаются программированием. С помощью программ можно решать сложные задачи, которые отнимают у человека много времени, компьютер же решит их за доли секунд. Цель подготовки курсовой работы - развитие навыков составления алгоритмов, написания и отладки приложений для решения прикладных задач на примере консольных приложений в интегрированной среде Builder C++. При выполнении курсовой работы предстоит решить следующие задачи: алгоритмизация интерфейс программа

· изучить теорию и технологию работы со средой программирования Builder C++;

· овладение навыками алгоритмизации на примере типовых задач;

· изучение языка программирования C++ в рамках базового стандарта;

· изучение литературы и технической документации по теме работы;

· развитие навыков составления, тестирования и отладки прикладных программ.

При написании курсовой будет использована учебная литература, а так же методические пособия по данной теме.

Примеры консольных приложений показаны ниже.

ЗАДАНИЕ 1

Написать программу для вычисления значения выражения.

(Формула 1.1)

при различных значениях x.

Предусмотреть программную обработку значений x, при которых выражение не существует.

Решение:

Выделим основные логические блоки хода решения задачи:

1. Необходимо реализовать возможность ввода с клавиатуры переменной x типа integer.

2. Предусмотреть ограничение на ввод чисел меньше 0.

3. Произвести вычисление по формуле с подставленной переменной x.

4. Реализовать функционал вывода результата на экран.

1. Первым делом необходимо добавить объект Edit1, данное поле, будет использоваться для ввода переменной x.

(Рисунок 1.1)

2. Далее мы добавляем кнопку Button1, которая будет служить кнопкой запуска расчета.

(Рисунок 1.2)

3. Также нам понадобится поле для вывода результатов, Edit2.

(Рисунок 1.3)

4. Следующим шагом будет написание непосредственно кода программы обработки.

INT x;

String z;

FLOAT rezult;

z=Edit1->Text;

x=StrToInt(z);

if(x<5)

{

Edit2->Text="Некорректный x";

}

else

{

rezult=sqrt((2*x)/(x-5))/((sqrt(2*x)-sqrt(x-5))/(sqrt(2*x)+sqrt(x-5))-(sqrt(2*x)+sqrt(x-5))/(sqrt(2*x)-sqrt(x-5)));

Edit2->Text=rezult;

}

Описание: создаются переменные x(int), z(string), result(float). Далее присваивается значение для переменной x из поля ввода Edit1, и переводится в целочисленное значение. Далее задается условие, если x меньше 5, то выводится сообщение о некорректной переменной x, иначе выполняется решение формулы и выводится результат.

(Рисунок 1.4)

ЗАДАНИЕ 2

В N-этажном доме M подъездов. На каждой лестничной площадке К квартир. Нумерация квартир в доме сквозная, начиная с 1. Написать программу, которая по номеру квартиры определяет номер подъезда и этажа, на котором находится квар­тира.

Решение:

Выделим основные логические блоки хода решения задачи:

1. Необходимо создать поля для ввода этажности дома, количества подъездов, количества квартир.

2. Также необходимо создать блок ввода номера квартиры.

3. Дополнительно создаем поля для вывода этажа и подъезда.

4. Добавляем на форму поля, введите количество этажей дома (Edit1), количество подъездов (Edit2), введите квартиру(Edit3), квартира находится в (Edit4) подъезде, на (Edit5) этаже

(Рисунок 2.1)

5. По нажатию кнопки будет выполняться следующий расчет:

String m, n, k, rezm, rezn, kolroomvsego, roominpodezd, o, op=0, zr=0, z;

m=Edit1->Text;

n=Edit2->Text;

k=Edit3->Text;

kolroomvsego=m*n*4;

roominpodezd=kolroomvsego/n;

for(int s=1; s<=n; s++)

{

op=roominpodezd*s;

zr=op-roominpodezd;

if (k>=zr && k<=op)

{

rezn=s;

Edit4->Text=rezn;

for(int z; z<=m; z++)

{

rezm=z*4;

if(rezn<k)

{

Edit5->Text=z;

}

}

}

Описание:

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

(Рисунок 2.2)

ЗАДАНИЕ 3

Заданы круг площади S и квадрат площади Р. Написать программу, проверяющую, поместится ли круг в квадрат или поместится ли квадрат в круг, или они не поместятся друг в друга.

Решение:

Выделим основные логические блоки хода решения задачи:

1. Для начала необходимо вычислить диаметр круга. И длину стороны квадрата.

2. Используя эти данные получаем, если диаметр круга меньше или равен стороне квадрата то круг входит в квадрат, иначе нет.

3. Создаем поля для ввода площади круга и площади квадрата, Edit1 и Edit2

4. Создаем поля вывода ответа (да/нет)

5. Создаем кнопку по нажатию на которую, получим результат. В ней будет содержаться следующий код:

INT p,s,radiuskruga,storonakvadrata,diametr;

s=StrToInt(Edit1->Text);

p=StrToInt(Edit2->Text);

radiuskruga=sqrt(s/3.14);

diametr=radiuskruga*2;

storonakvadrata=sqrt(p);

if(diametr<=storonakvadrata)

{

Edit3->Text="Да";

}

else

{

Edit3->Text="Нет";

}

(Рисунок 3.1)

(Рисунок 3.2)

ЗАДАНИЕ 4

Написать программу, позволяющую вычислить с помощью цикла:

2+4+6+…+2n, где n задается с клавиатуры.

Решение:

Выделим основные логические блоки хода решения задачи:

1. Для решения задачи необходимо создать цикл ограниченный числом n введенным с клавиатуры.

2. Создаем поле для ввода числа n (Edit1), поле вывода (Edit2) и кнопку запуска расчета, содержащую следующий код:

int n,rezult;

n=StrToInt(Edit1->Text);

for(int z=1; z<=n; z++)

{

rezult=2*z;

}

Edit2->Text=rezult;

(Рисунок 4.1)

ЗАДАНИЕ 5

Распечатать одномерный массив длиной M x N в M столбцов по N эле­ментов в столбце

Решение:

Выделим основные логические блоки хода решения задачи:

1. Создаем и заполняем одномерный массив длинной M x N

2. Выводим массив в соответствии с заданием

3. Код программы будет выглядеть следующим образом:

#include <iostream>

#include <windows.h>

using namespace std;

int z5()

{

const int M = 3;

const int N = 4;

int A[M*N] = {1,5,8,2,4,12,8,9,3,0,4,22};

for (int i=0;i<N;i++){

for (int j=0;j<M;j++){

cout << A[i*M+j] << "\t";

}

cout << endl;

}

system("PAUSE");

return 0;

}

ЗАДАНИЕ 6

Два массива содержат по n целых положительных чисел (задаются случайным образом). Написать программу создания третьего масси­ва, содержащего сумму этих чисел.

Решение:

Выделим основные логические блоки хода решения задачи:

1. Для решения задачи необходимо сначала заполнить два массива ограниченных количеством n значениями с помощью цикла ограниченного количеством значений.

2. После чего необходимо поэлементно сложить значения массива и вывести массив в отдельную форму.

3. Создаем поле для ввода числа n (Edit1), поле вывода (Memo1) и кнопку запуска расчета, содержащую следующий код:

INT n;

n=StrToInt(Edit1->Text);

int* a = new int[n];

int* b = new int[n];

int* rez = new int[n];

randomize();

Memo1->Clear();

for(int z=0; z<n; z++)

{

a[z]=random(50);

b[z]=random(50);

rez[z]=a[z]+b[z];

Memo1->Lines->Add(rez[z]);

}

(Рисунок 6.1)

ЗАДАНИЕ 7

Дана вещественная матрица размера n х m. Переставляя целиком ее строки и столбцы, нужно добиться того, чтобы наи­больший элемент (любой из нескольких) оказался:

- в верхнем левом углу;

- в правом нижнем углу;

- в левом нижнем углу;

- в правом верхнем углу;

- в центре массива (для n=m, где n - нечетное).

Решение:

Выделим основные логические блоки хода решения задачи:

1. Необходимо создать и заполнить массив n x m случайными числами.

2. Далее методом перебора значений добиться результатов указанных в задании

3. Вывести результат.

4. Код программы будет выглядеть следующим образом

#include <iostream>

#include <windows.h>

using namespace std;

int z7()

{

int const S = 1; //где должен оказаться максимальный элемент

int const N = 5;

int const M = 3;

float A[N][M] = {{1.25,2,3},

{133,3.3,12},

{7,8.78,10},

{2.6,15.69,2},

{7,18,10.5},

};

float R[M]; //вспомогательный массив для перестановки строк

float C[N]; //вспомогательный массив для перестановки столбцов

cout << "Исходный массив:" << endl;

for (int i=0;i<N;i++){

for (int j=0;j<M;j++)

cout << A[i][j] << "\t";

cout << endl;

}

//находим максимальный элеиент и его индекс

float maxA = A[0][0];

int maxI = 0;

int maxJ = 0;

for (int i=0;i<N;i++){

for (int j=0;j<M;j++)

if (maxA <= A[i][j]){

maxA = A[i][j];

maxI = i;

maxJ = j;

}

}

cout << "Максимальный элемент = " << maxA << endl;

switch (S)

{

case 0: //верхний левый угол

for (int i=0;i<M;i++){

R[i] = A[0][i];

A[0][i] = A[maxI][i];

A[maxI][i] = R[i];

}

for (int i=0;i<N;i++){

C[i] = A[i][0];

A[i][0] = A[i][maxJ];

A[i][maxJ] = C[i];

}

break;

case 1: //правый нижний угол

for (int i=0;i<M;i++){

R[i] = A[N-1][i];

A[N-1][i] = A[maxI][i];

A[maxI][i] = R[i];

}

for (int i=0;i<N;i++){

C[i] = A[i][M-1];

A[i][M-1] = A[i][maxJ];

A[i][maxJ] = C[i];

}

break;

case 2: //левый нижний угол

for (int i=0;i<M;i++){

R[i] = A[N-1][i];

A[N-1][i] = A[maxI][i];

A[maxI][i] = R[i];

}

for (int i=0;i<N;i++){

C[i] = A[i][0];

A[i][0] = A[i][maxJ];

A[i][maxJ] = C[i];

}

break;

case 3: //правый верхний угол

for (int i=0;i<M;i++){

R[i] = A[0][i];

A[0][i] = A[maxI][i];

A[maxI][i] = R[i];

}

for (int i=0;i<N;i++){

C[i] = A[i][M-1];

A[i][M-1] = A[i][maxJ];

A[i][maxJ] = C[i];

}

break;

case 4: //в центре массива

for (int i=0;i<M;i++){

R[i] = A[(N-1)/2][i];

A[(N-1)/2][i] = A[maxI][i];

A[maxI][i] = R[i];

}

for (int i=0;i<N;i++){

C[i] = A[i][(M-1)/2];

A[i][(M-1)/2] = A[i][maxJ];

A[i][maxJ] = C[i];

}

break;

default:

break;

}

cout << "Преобразованный массив:" << endl;

for (int i=0;i<N;i++){

for (int j=0;j<M;j++)

cout << A[i][j] << "\t";

cout << endl;

}

system("PAUSE");

return 0;

}

ЗАДАНИЕ 8

Найти входит ли подстрока в строку.

Решение:

Выделим основные логические блоки хода решения задачи:

1. Для решения задачи необходимо задать подстроку и строку.

2. С помощью функции TMask определить входит ли подстрока в строку. Вывести результат. Программа будет иметь следующий код:

String x;

Edit1->Text="Забор";

Edit2->Text="За";

x=Edit1->Text;

TMask *Mask = new TMask("*За*");

if(Mask->Matches(x))

{

Edit3->Text="Содержит";

}

else

{

Edit3->Text="Не содержит"; }

(Рисунок 8.1)

ЗАДАНИЕ 9

Разработать функцию поиска минимального элемента одномерного массива.!

Решение:

Выделим основные логические блоки хода решения задачи:

1. С помощью цикла ограниченного размерностью массива перебираем и сравниваем все элементы. Если элемент является наименьшим, то сохраняем его и выводим элемент в Edit1

INT a[5]={5,4,3,2,1};

for (int i = 0; i < 5; i++)

{

if (a[i] < a[0])

{

a[0] = a[i];

}

}

Edit1->Text=a[0];

}

(Рисунок 9.1)

ЗАДАНИЕ 10

В файле хранятся название товара, количество и цена единицы. Переписать в другой файл записи, описывающие това­ры со стоимостью, превосходящей заданное k.

Решение:

Выделим основные логические блоки хода решения задачи:

1. Для решения задачи необходимо считать данные о товарах из файла. После чего необходимо отсечь товары не проходящие под условия (меньше стоимости k) и записать в другой файл.

2. Создаем файл goods1.txt в который записываем данные о товарах и ценах.

3. Считываем информацию из файла goods1.txt

4. Отсеиваем данные не подходящие под условие задачи

5. Записываем результат в файл goods2.txt

#include <iostream>

#include <windows.h>

#include <fstream>

using namespace std;

int z10()

{

ifstream g1("goods1.txt");

if (!g1) {

cout << "Не удалось открыть файл goods1.txt" << endl;

return -1;

}

float k;

cout << "Введите k = ";

cin >> k;

ofstream g2("goods2.txt");

char e[3][100];

while (!g1.eof()) {

for (int i=0;i<3;i++)

g1 >> e[i];

if (atof(e[1])*atof(e[2]) > k)

g2 << e[0] << "\t" << e[1] << "\t" << e[2] << endl;

}

g1.close();

g2.close();

cout << "Товары стоимостью более " << k << " выведены в файл goods2.txt" << endl;

system("PAUSE");

return 0;

}

ЗАКЛЮЧЕНИЕ

В ходе выполнения курсовой работы я закрепил знания работы с программой C++Builder . Благодаря уникальному сочетанию удобства разработки пользовательских интерфейсов, компонентной архитектуры, однотипности доступа к разнообразным базам данных было проще программировать.

ЛИТЕРАТУРА

1. Ильин А.А. и др. Информатика: Учебное пособие. - М.: Серебряная нить, 2005. 376 с.

Размещено на Allbest.ru

...

Подобные документы

  • Визуальное проектирование и событийное программирование. Повышение производительности программиста при использовании RAD-систем. Составление алгоритмов, разработка приложения для решения прикладных задач на примере консольных приложений C++ Builder 6.

    курсовая работа [258,7 K], добавлен 30.10.2013

  • Создание консольных приложений с использованием графического интерфейса пользователя. Содержание палитры компонентов программы С++ Builder. Использование возможностей объектно-ориентированного программирования, особенности редактора кода и форм в С++.

    лекция [27,0 K], добавлен 22.12.2010

  • Изучение принципов построения линейных алгоритмов и простых расчетных программ на языке программирования C. Разработка программы расчета математических выражений на основе вводимых данных. Создание консольных приложений в среде Microsoft Visual Studio.

    лабораторная работа [254,4 K], добавлен 23.11.2014

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

    лабораторная работа [1,2 M], добавлен 01.05.2014

  • Реализация программного кода "Organizer 1.0". Разработка приложений баз данных с помощью Borland C++ Builder 6. Компоненты системы программирования для работы по технологии InterBase. Программный код и интерфейс "Organizer 1.0", структура приложения.

    курсовая работа [466,9 K], добавлен 28.07.2009

  • Работа в Borland C++ Builder. Среда разработки и компоненты C++ Builder. Свойства компонентов. Менеджер проектов. Создание приложений в C++ Builder. Выбор компонентов для групповых операций. Работа с базами данных в Borland C++ Builder.

    курсовая работа [35,8 K], добавлен 11.06.2007

  • Визуальная разработка приложений баз данных. Характеристика визуальных компонентов среды разработки Builder 6.0, используемых в данном приложении. Программная реализация приложения, разработка форм и вкладок. Тестирование приложения, листинг программы.

    курсовая работа [3,1 M], добавлен 28.03.2011

  • Разработка программного приложения Windows Forms для работы с базой данных на языке высокого уровня в автономном режиме с использованием ADO.NET. Создание консольных приложений (варианты метода Main), выполнение запросов к SQL серверу и листинг программ.

    курсовая работа [2,4 M], добавлен 16.06.2014

  • Разработка критериев оценки экрана веб-приложений. Основные подходы к защите веб-приложений. Анализ российских нормативных документов. Зарубежная практика выбора экрана веб-приложений. Разработка и обоснование общих требований к механизмам защиты.

    дипломная работа [68,7 K], добавлен 04.08.2016

  • Разработка приложений для работы с графикой в Borland C++ Builder. Вывод изображения на экран, изменение цвета и толщины линии контура, перемещение объекта по экрану, получение нового объекта вычитанием двух существующих. Основные обработчики событий.

    контрольная работа [1,5 M], добавлен 28.03.2012

  • Проектирование, кодирование и отладка службы Windows: "Контроль приложений", осуществляющей контроль набора приложений и управление ими; разработка приложения, управляющего этой службой. Взаимодействие службы и приложения; тестирование и сопровождение.

    курсовая работа [1,1 M], добавлен 22.05.2013

  • Разработка веб-приложений на основе Servlet API. Основные способы передачи данных от пользователя. Краткая справка по необходимым программным компонентам. Составление программы интернет-чата на основе протокола HTTP. Диаграмма классов веб-приложения.

    лабораторная работа [1,1 M], добавлен 01.05.2014

  • Среда разработки C++ Builder. Использование видимых и невидимых компонентов. Прототип обработчика событий. Менеджер проектов. Установка опций проекта. Создание приложений в С++ Builder. Создание простейшего приложения. Размещение компонентов на форме.

    курсовая работа [226,9 K], добавлен 24.03.2009

  • Разработка приложения "Ведомость начисления заработной платы" в среде программирования C++Builder. Алгоритм и сценарий работы программы. Проектирование интерфейса пользователя. Написание программных модулей и результаты тестирования данной программы.

    курсовая работа [597,4 K], добавлен 31.01.2016

  • Вопросы программирования в Maple версий 6-11 и разработка приложений. Рассматривает эффективные приемы программирования и разработки приложений для многих разделов техники, математики, физики, для решения которых пакет не имеет стандартных средств.

    монография [4,8 M], добавлен 13.03.2008

  • Основы создания мидлетов (midlet) - MIDP приложений для мобильных устройств на языке Java. Особенности устройств, для которых мидлеты предназначены. Библиотеки javax.microedition. Практические примеры создания MIDP приложений для телефона и их запуск.

    методичка [25,9 K], добавлен 30.06.2009

  • Создание клиент-серверного приложения "Чат" с помощью среды визуальной разработки приложений Borland C++ Builder версии 6. Описание функциональности приложения: наличие клиент-серверной архитектуры, обмен короткими сообщениями, а также передача файлов.

    курсовая работа [302,0 K], добавлен 30.01.2012

  • Анализ информационной системы "Бурятия.INFO". Построение функциональной модели "Как надо", диаграммы прецедентов, диаграммы последовательности действий, диаграммы классов. Разработка программного приложения в интегрированной среде Intellij IDEA.

    дипломная работа [1,3 M], добавлен 13.04.2014

  • Характеристика модели клиент-сервер как технологии взаимодействия в информационной сети. Разработка и описание алгоритмов работы приложений на платформе Win32 в среде Microsoft Visual Studio, использующих для межпроцессного взаимодействия сокеты.

    курсовая работа [544,6 K], добавлен 02.06.2014

  • Основные программы, функционирующие в среде Windows и поддерживающие диалоговые окна и другие возможности. Разработка программы на языке Builder C++ 6.0, осуществляющей выдачу сообщения в заданное время. Описание ее алгоритмов. Общие сведения о IBM PC.

    курсовая работа [49,1 K], добавлен 13.11.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.