Разработка программы для преобразования чисел на языке программирования С++
Понятие C++ как компилируемого статического типизированного языка программирования общего назначения. Анализ функций и возможностей. Алгоритм разработки программы, требования к ней. Описание используемых функций, модулей, инструкция пользователя.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 30.05.2014 |
Размер файла | 1,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Курсовая работа
Разработка программы для преобразования чисел на языке программирования С++
Введение
C++ - компилируемый статический типизированный язык программирования общего назначения.
Поддерживает такие парадигмы программирования как процедурное программирование, объектно-ориентированное программирование, обобщенное программирование, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции. Стандартная библиотека включает, в том числе, общеупотребительные контейнеры и алгоритмы. C++ сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником - языком С, - наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования.
Название «C++» происходит от названия языка C, в котором унарный оператор ++ обозначает инкремент переменной.
Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (игр). Существует множество реализаций языка C++, как бесплатных, так и коммерческих и для различных платформ. Например, на платформе x86 это GCC, Visual C++, Intel C++ Compiler, Embarcadero (Borland) C++ Builder и другие. C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.
Синтаксис C++ унаследован от языка C. Одним из принципов разработки было сохранение совместимости с C. Тем не менее, C++ не является в строгом смысле надмножеством C; множество программ, которые могут одинаково успешно транслироваться как компиляторами C, так и компиляторами C++, довольно велико, но не включает все возможные программы на C.
Для многих операций в офисах, лабораториях и прочих рабочих местах, связанных с какими-либо расчетами, требуются какие-то документы, которые необходимо заполнить быстро и правильно словесным эквивалентом числа. Примером могут служить расчетные отделы бухгалтерской части какого-либо предприятия, отделы по выдаче путевок на перевоз грузов и так далее. Для быстрого выполнения всех этих операции очень удобно использовать компьютер, если в нем есть пригодная для конкретной задачи программа.
Цель курсовой работы:
Создание именно такой программы, которая могла бы выполнять преобразование чисел в словесную форму.
Значит, предполагаемый проект должен обладать рядом качеств, которые бы выделили его среди остальных программ с той же функцией.
Во-первых, функциональность, то есть программа должна включать большой размер допустимых чисел.
Во-вторых, простота интерфейса, рассчитанного практически на любого пользователя, имеющего хотя бы первоначальное понятие о работе с документами, правилами их заполнения и знаком с консольными приложениями.
В-третьих, удобство в использовании программы.
Средой программирования я выбрал программу DEVC++ и язык программирования C++ так как этот язык можно считать основным языком программирования и он наиболее распространен, а программа была выбрана мною потому, что я имею опыт работы в ней и задание моей курсовой работы возможно реализовать в данной программе.
В аналогичных моей программах использовался цикл switch, в моей программе он тоже используется, так как это наиболее простой способ задания необходимых параметров нажимаемым клавишам. Аналогичная программа была рассмотрена на практическом занятии по программированию, там мы тоже использовали цикл switch. В большом количестве используются пользовательские функции, они уменьшают размер основной функции и придают более аккуратный вид. Во многих программах такого типа используются пользовательские для формирования различных классов цифр, на пример такие как единицы, десятки, сотни и так далее, так же и в моей программе используются пользовательские функции.
1. Алгоритм решения задачи
Пользователь запускает программу, не экране появляется консольное окно с текстом «Введите число которое необходимо преобразовать» далее пользователь набирает на клавиатуре необходимое ему число, но это число не должно быть больше одного миллиона и меньше минус одного миллиона, нажимает клавишу Enter, после чего на экран выводится результат работы (словесный эквивалент введенного числа) и вопрос о продолжении или окончании работы, и в зависимости от необходимости пользователя он может выбрать продолжить работу (клавиша 1) или закончить работу (клавиша 0). При выборе пользователя «1» программа вновь повторяет все действия, при выборе «0» программа закрывается.
2. Руководство пользователя
Запускаете программу через файл.exe показанном на рисунке 1
Рисунок 1
или же откомпилировав исходный код программы, после этого действия появится консольное окно показанное на рисунке 2
Рисунок 2
в котором представлено предложение начала работы, далее пользователь вводит необходимое ему число в пределах от - одного миллиона до одного миллиона, нажимает клавишу Enter и получает результат как на рисунке 3:
Рисунок 3
Далее представлен вопрос о продолжении или окончании работы с программой как на рисунке 3. Если пользователь желает продолжить то для продолжения работы он должен нажать «1» если нет то «0» и подтвердить свой выбор нажатием клавиши Enter.
3. Описание используемых функций, модулей
программирование пользователь компилированный
В данной программе используются различные библиотеки, вот их перечень:
iostream (Название образовано от Input/Output Stream «поток ввода-вывода») - используется для корректной работы cin, cout, cerr и clog для передачи информации в и из стандартных потоков ввода, вывода, ошибок (без буферизации) и ошибок (с буферизацией) соответственно.
math.h - используется для выполнения простых математических действий.
string.h - заголовочный файл стандартной библиотеки языка Си, содержащий функции для работы с различными функциями работы с памятью.
Ещё в данной программе используются пользовательские функции, на пример функция для формирования единиц int unit (char*s1, int x) или же функция для формирования сотен int hundreds (char*s3, int x), int secondDozen (char*s1, int x) - пользовательская функция формирования чисел от одиннадцати до 19, int tens (char*s2, int x) - пользовательская функция для формирования десятков, int thousands (char*s4, int x) - пользовательская функция для формирования тысяч и ещё несколько пользовательских функций, так же используются: цикл с пред условием while, цикл switch (он используется для формирования различных классов чисел), цикл if проверяющий поставленное условие.
Описание программы
Программа написана на языке C++, формально её можно поделить на 2 части, первая часть это главная часть программы, она ведет диалог с пользователем, предлагает варианты дальнейших действий и в этой части программы присутствует функция принятия значения с клавиатуры, вторая часть это «рабочая» часть программы в ней происходит формирование словесного эквивалента введенного пользователем числа и вывод результата работы на экран. После прохождения полного цикла работы, программа выводит на экран предложение с продолжением работы или же окончанием работы.
Заключение
Цель данной работы была достигнута, программа функционирует как и было задумано в начале, цифры переформировываются в слова программой.
Трудности были встречены при написании программы, программа не запускалась, преодолев эту ошибку необходимо было настраивать её таким образом что б корректно выдавала сообщения и реагировала на нажатые клавиши. На данный момент программа работает корректно.
Данная программа является примером реализации программ для Windows на данный момент самой распространенной операционной системой в мире.
Возможным усовершенствованием может быть добавление дробных чисел и / или добавление интерфейса, увеличение диапазона допустимых чисел.
Список использованной литературы
1. http://ru.wikipedia.org - общая информация о языке программирования C++.
2. Страуструп, Бьерн. Язык программирования C++ / пер. с англ. С. Анисимова, М. Кононова под ред. Ф. Андреева, А. Ушакова. - 3-е изд. - М.; СПб.: Бином: Нев. диалект, 1999. - 990 с.
3. Холзнер, Стивен. Visual C++ 6: учеб. курс. - СПб.: Питер, 1999. - 569 с.
4. М. Теллес. Borland C++ Builder (+CD). Библиотека программиста. http://www.piter-press.ru/lib/978531400107/
5. Н. Культин «Практика программирования на С++». «Питер», Санкт - Петербург 2003.
6. Т.А. Павловская «С/С++ Программирование на языке высокого уровня» учебник для вузов; Питер, Санкт - Петербург 2004.
Приложение
#include<iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
using namespace std;
// глобальная переменная
double value, integral_part, fractional_part;
int intValue;
// заголовок функции
int integerValue (int, char*sign);
int fractionalValue(int);
// основная функция
int main()
{
char sign[7] = «»; // переменная знака
short extension;
while(true)
{
cout << «Введите число которое необходимо преобразовать»;
cin >> value;
// определение знака
if (value < 0)
strcpy (sign, «минус»);
else strcpy (sign, «»);
value = fabs(value);
if (value>1000000) // проверка на попадание в диапазон
cout << endl << «Число должно входить в промежуток от -1000000 до 1000000»;
else {
fractional_part = modf (value,&integral_part); // получает цнлую часть
if (fractional_part == 0.0) // если целое
{
intValue = (int) integral_part;
integerValue (intValue, sign); // вызываем функцию целого значения(…)
}
else // если чесло не целое
{
intValue = (int) integral_part;
integerValue (intValue, sign); /// вызываем функцию целого значения(…)
cout <<» точка»;
fractional_part = ceil (fractional_part*1000-0.00011); // калибровка числа
intValue = (int) fractional_part;
fractionalValue(intValue); //// вызываем функцию дробного значения(…)
}
}
cout << endl <<endl << «Вы хотите продолжить (1-да, 0-нет)?»;
cin >> extension;
if (extension == 0)
break;
cout << «___________________________________________________» << endl;
}
cin >> value;
return 0;
}
// это модуль с функцией программы
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
using namespace std;
// функция для формирования единиц
int unit (char*s1, int x)
{
switch(x)
{
case 0: strcpy (s1, «ноль»);
break;
case 1: strcpy (s1, «один»);
break;
case 2: strcpy (s1, «два»);
break;
case 3: strcpy (s1, «три»);
break;
case 4: strcpy (s1, «четыре»);
break;
case 5: strcpy (s1, «пять»);
break;
case 6: strcpy (s1, «шесть»);
break;
case 7: strcpy (s1, «семь»);
break;
case 8: strcpy (s1, «восемь»);
break;
case 9: strcpy (s1, «девять»);
break;
}
return 0;
}
// функция для формирования чисел от 11-19
int secondDozen (char*s1, int x)
{
switch(x)
{
case 11: strcpy (s1, «одиннадцать»);
break;
case 12: strcpy (s1, «двенадцать»);
break;
case 13: strcpy (s1, «тринадцать»);
break;
case 14: strcpy (s1, «четырнадцать»);
break;
case 15: strcpy (s1, «пятнадцать»);
break;
case 16: strcpy (s1, «шестнадцать»);
break;
case 17: strcpy (s1, «семнадцать»);
break;
case 18: strcpy (s1, «восемнадцать»);
break;
case 19: strcpy (s1, «девятнадцать»);
break;
}
return 0;
}
// функция для формирования десятков
int tens (char*s2, int x)
{
int temp = x/10;
switch(temp)
{
case 0: strcpy (s2, "»);
break;
case 1: strcpy (s2, «десять»);
break;
case 2: strcpy (s2, «двадцать»);
break;
case 3: strcpy (s2, «тридцать»);
break;
case 4: strcpy (s2, «сорок»);
break;
case 5: strcpy (s2, «пятьдесят»);
break;
case 6: strcpy (s2, «шестьдеят»);
break;
case 7: strcpy (s2, «семдесят»);
break;
case 8: strcpy (s2, «восемдесят»);
break;
case 9: strcpy (s2, «девяносто»);
break;
}
return 0;
}
// функция для формирования сотен
int hundreds (char*s3, int x)
{
int temp = x/100;
switch(temp)
{case 0: strcpy (s3, "»);
break;
case 1: strcpy (s3, «сто»);
break;
case 2: strcpy (s3, «двести»);
break;
case 3: strcpy (s3, «тристо»);
break;
case 4: strcpy (s3, «четыресто»);
break;
case 5: strcpy (s3, «пятьсот»);
break;
case 6: strcpy (s3, «шестьсот»);
break;
case 7: strcpy (s3, «семсот»);
break;
case 8: strcpy (s3, «восемсот»);
break;
case 9: strcpy (s3, «девятсот»);
break;
}
return 0;
}
// функция для формирования тысяч
int thousands (char*s4, int x)
{
if (x!= 0)
{
if (x>10 && x<20)
{
secondDozen (s4, x);
strcat (s4,» тысячи»);
}
else {
char temp[50] = «»;
hundreds (s4, x % 1000);
if((x % 100)>10 && (x % 100)<20)
{
secondDozen (temp, x % 100);
strcat (s4, temp);
strcat (temp, "»);
}
else {
tens (temp, x % 100);
strcat (s4, temp);
strcat (temp, "»);
unit (temp, x % 10);
strcat (s4, temp);
strcat (temp, "»);
}
strcat (s4,» тысяч»);
}
}
else strcpy (s4, "»);
return 0;
}
//// функция для формирования целых чисел
int integerValue (int x, char*sign)
{
char s1 [20] = «»;
char s2 [20] = «»;
char s3 [40] = «»;
char s4 [60] = «»;
if (x == 0)
strcpy (s1, «ноль»);
else
{
if (x == 1000000)
strcpy (s1, «один миллион»);
{
if (x>10 && x<20)
secondDozen (s1, x);
else {
thousands (s4, x/1000);
hundreds (s3, x % 1000);
if((x % 100)>10 && (x % 100)<20)
secondDozen (s1, x % 100);
else {
tens(s2, x % 100);
unit (s1, x % 10);}
}
}
}
cout <<sign << s4 << s3 << s2 << s1;
return 0;
}
// функция для формирования дробных чисел
int fractionalValue (int x)
{
char s1 [20] = «»;
char s2 [20] = «»;
char s3 [40] = «»;
if (x<10)
{
strcpy (s3, «ноль»);
strcpy (s2, «ноль»);
unit (s1, x);
}
else if (x<100)
{
strcpy (s3, «ноль»);
if (x>10 && x<20)
secondDozen (s1, x);
else {
if (x % 10 == 0)
unit (s1, x/10);
else {
tens(s2, x);
unit (s1, x % 10);}
}
}
else
{
if (x % 100 == 0)
unit (s1, x/100);
else {
hundreds(s3, x % 1000);
if((x % 100)>10 && (x % 100)<20)
secondDozen (s1, x % 100);
else {
tens(s2, x % 100);
unit (s1, x % 10);}
}
}
cout << s3 << s2 << s1;
return 0;
}
Размещено на Allbest.ru
...Подобные документы
Разработка программы, которая выявляет в прямоугольной матрице все подматрицы, состоящие только из m-значных целых чисел. Использование компилируемого языка программирования общего назначения C/C++. Обработка алгоритмов, кодирование программных средств.
курсовая работа [980,1 K], добавлен 05.03.2015Разработка программы проверки знаний для тестирования студентов по программированию с кодом на языке Delphi. Проектирование визуального интерфейса и словесный алгоритм работы программы. Алгоритмы разработанных процедур и функций, инструкция пользователя.
курсовая работа [506,5 K], добавлен 21.02.2011Методика разработки программы по поиску информации из базы данных, содержащей информацию о телевизорах. Использование языка программирования "С++" и среды разработки Qt Creator "С++" - статически типизированного языка программирования общего назначения.
курсовая работа [626,1 K], добавлен 22.12.2011Разработка программы обработки типизированных файлов с кодом на языке Object Pascal, с использованием компонентов Delphi для ввода и вывода данных. Разработка экранных форм и алгоритма программы. Описание программных модулей и инструкция оператору.
курсовая работа [1,5 M], добавлен 08.02.2011Си - это язык программирования общего назначения. Постановка задачи: разработка программы - калькулятора. Метод решения задачи. Алгоритм работы программы. Технические данные для использования. Описание основных функций.
курсовая работа [14,1 K], добавлен 23.05.2002Основы программирования на 32-битном Ассемблере, разработка с его помощью программы, демонстрирующей работу одного из разделов ОС Windоws. Описание используемых АРI-функций как интерфейса программирования приложений. Листинг программы, результаты работы.
курсовая работа [164,5 K], добавлен 18.05.2014Постановка задачи и алгоритм решения. Листинг программы, иллюстрирующей работу с символами, строками и блоками. Описание возможностей языка С, используемых для реализации алгоритма. Тестирование итоговой программы, анализ полученных результатов расчета.
курсовая работа [63,0 K], добавлен 27.12.2012Требования к техническим, программным средствам разработки и функционированию программы. Обоснование выбранного языка программирования. Описание алгоритма решения задачи, тестирование ее основных функций. Понятие дружелюбного пользовательского интерфейса.
курсовая работа [85,9 K], добавлен 31.10.2014Порядок проектирования программы, демонстрирующей принцип заполнения очереди и стека и принцип удаления элементов из очереди и стека. Определение класса и всех необходимых функций. Программа на языке С, описание возможностей, используемых для алгоритма.
курсовая работа [254,3 K], добавлен 20.05.2013Поиск взаимно простых чисел. Алгоритм Евклида для целых чисел. Описание выбранного языка программирования. Алгоритм решения задачи. Обзор средств программирования. Текст и описание программы. Руководство оператора, программа и методика испытаний.
курсовая работа [843,5 K], добавлен 15.06.2011Критерии классификации баз данных. Использование C++ - компилируемого, статически типизированного языка программирования общего назначения. Этапы разработки специализированного прикладного программного обеспечения - базы данных "Прохождение практики".
курсовая работа [1,4 M], добавлен 11.12.2015Организация вычислительных процессов и программирования на алгоритмическом языке. Создание программы "Калькулятор". Выбор языка и среды программирования. Функциональная схема работы программы, описание разработанных алгоритмов. Способы устранения ошибок.
курсовая работа [434,1 K], добавлен 27.08.2012Порядок описание процесса разработки модели для разрешения задачи программирования с помощью средств языка программирования. Структуры данных и основные принципы их построения. Этапы компьютерного моделирования. Этапы и значение написания программы.
курсовая работа [19,5 K], добавлен 19.05.2011Анализ и описание алгоритма. Основные характеристики выбранного компьютера, программных сред (операционная система и среда программирования). Описание компонентов и интерфейса программы, а также модулей, процедур и функций. Вызов и загрузка программы.
курсовая работа [1,3 M], добавлен 26.04.2015Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.
курсовая работа [1,2 M], добавлен 04.08.2014Создание программы, реализующей игру "Линии". Среда разработки программы, описание ее общего вида. Основные алгоритмы программы. Реализация программы в среде разработки Microsoft Visual Studio 2008 на языке объектно-ориентированного программирования С++.
курсовая работа [639,0 K], добавлен 16.03.2012Особенности объектно-ориентированного программирования. Основные возможности языка программирования Java, классификация платформ. Создание программы, обеспечивающей вычисление арифметических выражений. Руководство пользователя и характеристика функций.
курсовая работа [1,2 M], добавлен 07.07.2012Математическое описание операций преобразования плоских фигур. Выбор и обоснование языка программирования и среды разработки. Задание базовой фигуры. Разработка алгоритма работы программы. Проверка корректности работы программы в различных режимах.
курсовая работа [567,6 K], добавлен 13.10.2014Обоснование необходимости разработки программы для игры "Тетрис". Математическая и графическая части алгоритма. Выбор языка и среды программирования. Отладка текста программы, разработка интерфейса пользователя. Тестирование, руководство пользователя.
курсовая работа [1,5 M], добавлен 17.01.2011Анализ различных командных интерпретаторов. Разработка структуры программы на языке программирования С и ее алгоритма. Требования для работы с ней. Действия, необходимые для её запуска и функционирования. Описание функций translate, sozd, info и f.
курсовая работа [238,2 K], добавлен 06.12.2014