Реферат по предмету "Информатика, программирование"


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

Пояснительная записка к заданию на вычислительную практику по дисциплине “Основы алгоритмизации и языки программирования”


Выполнил : студент гр. 96 АЭ2 Ю. Ф. Фролкина


Пензенский государственный технический университет, Кафедра “Информационно - вычислительные системы”


1997


Пояснительная записка содержит 21 лист , 2 приложения , 2 источника.


Объектом работы является денежная сумма в чековой книжке.


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


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


Программа написана на языке Turbo Pascal и предназначена для эксплуотации под управлением операционной системы MS-DOS.


При разработке данной программы была использованя библиотека ТТТ , которая упростила как саму программу , так и процесс её разработки.


Введение


Сейчас, на пороге ХХI века, огромный выбор программ предназначенных для помощи человеку в различных сферах его деятельности.


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


Разработка предоставляет пользователю возможности ввода денежной суммы и мгновенного получения на экране персонального компьютера её словесного эквивалента.


Таким образом , созданная программа имеет большое практическое значение в сфере бизнеса и банковского дела.


1 Анализ требований


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


Определить целесообразность использования при проектировании данной задачи библиотеки ТТТ.


2 Техническое задание


2.1 Основание для разработки


Основанием для разработки служит задание на вычислительную практику по курсу "Основы алгоритмизации и языки программирования", выданное на кафедре ИВС ПГТУ , доцентом А.В. Ерёменко , утверждённое заведующим кафедрой профессором Э.К. Шаховым.


2.2 Назначение разработки


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


2.3 Требования к программе или программному изделию


2.3.1 Требования к функциональным характеристикам


Программа должна выполнять следующие функции:


а ) вывод на экран окна для запроса исходной числовой суммы


б ) организация ввода данных с отображением их на экране и контролем ввода нечисловых символов , а также с возможностью удаления уже введённых числовых символов


в ) перевод введённой суммы в словесный формат


г ) вывод введённой суммы на экран в словесном формате.


Входными данными для программы является число - денежная сумма , вводимая пользователем с клавиатуры.


Выходными данными должны быть словесное выражение, составленное в соответствии введённой пользователем денежной суммы.


2.3.2 Требования к надёжности:


Программа должна работать без прерываний по программным ошибкам, а именно:


а ) При вводе нечислового символа, программа должна выводить звуковой сигнал и не учитывать этот символ


б) При заполненнии всего отведённого количества символов (9 символов) и попытке ввода следующего программа должна ввести этот символ как последний - девятый.


в ) При выводе полученного словесного выражения программа должна перенести это выражение на следующую строку экрана в том случае , если длина словесного выражения больше чем 60 символов.


2.3.3 Требования к составу и параметрам технических средств


Программа должна быть предназначена для использования на персональном компьютере типа IBM AT стандартной комплектации.


2.3.4 Требования к информационной и программной совместимости


Программа должна быть написана на языке Турбо-Паскаль 6.0 или выше. Для её функционирования на персональном компьютере должна быть установлена операционная система MS-DOS . В качестве дополнительных программных средств могут использоваться стандартные модули Турбо -Паскаля. Должна быть проанализирована целесообразность использования библиотеки TTT.


2.4 Требования к программной документации


Пояснительная записка должна содержать следующие программные документы:


а ) техническое задание


б ) описание программы


в ) текст программы


г ) программа и методика испытаний


д ) описание применения


е ) результаты тестирования.


Правила оформления и содержание этих программных документов регламентированы стандартами ЕСПД.


2.5 Порядок контроля и приёмки


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


3 Описание метода решения


Метод решения поставленной задачи заключается в последовательном просмотре введённой суммы в числовом формате , выделении в качестве строки символов и проверки каждой числовой тройки :


1 ) единицы , десятки и сотни


2 ) тысячи , десятки тысяч и сотни тысяч


3 ) миллионы , десятки и сотни миллионов.


Каждая числовая тройка (если она есть) преобразуется в соответствии со своим содержимым путём просмотра каждого элемента тройки и преобразования в словесный эквивалент с учётом падежей.


Если в какой-либо из троек не достаёт количества чисел , то вместо них подставляются пробелы и анализируются.


Затем полученные строковые выражения складываются вместе и выводятся на экран с учётом переноса строки , если она целиком не умещается на экране.


4. Описание программы


4.1 Общие сведения


Разработанная программа имеет название currency.exe. Программа написана на алгоритмическом языке Тurbo Pasca v. 6.0. , её исходный текст находится в файле currency.pas . Для её нормального функционирования на персональном компьютере должна быть установлена операционная система MS-DOS версии 3.0 или выше.


4.2 Функциональное назначение


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


4.3 Описание логической структуры


Данная программа содержит в себе необходимые процедуры и функции с использованием стандартных модулей языка Turbo Pascal :


Сrt - модуль , содержащий в себе функции , необходимые для работы с экраном в текстовом режиме


Strings - модуль , функции которого обеспечивают работу со строковыми переменными.


Так же при разработке программы для её упрощения были использованы модули из библиотеки ТТТ: FastTTT5 , StrnTTT , ReadTTT5 , WinTTT5 , которые предазначены для упрощения процесса программирования при работе с экраном , поцессом ввода и вывода информации.


В начале программы вызывается функция модуля WinTTT5 - СlearText , которая очищает заданную область экрана и запролняет его заданным цветом.


Затем вызывается фунуция модуля ReadTTT5 - Read_Longint , которая рисует на экране рамку в заданных координатах и заданным размером , выводит приглашение и организует ввод.


После ввода вызывается функция ValToStr с параметром sum типа Longint - введённая пользователем сумма. Эта функция выполняет перевод денежной суммы из числового формата в словесный. Она содержит в себе несколько служебных функций:


Функция STR0_9(n9,strS:char):String , где n9 - денежная сумма , находящаяся в интервале значений от 0 до 9 , strS - род деннежной единицы. Функция осуществляет перевод денежной единицы из числового формата в словесный на заданном интервале значений


Функция STR10_19(n19:char):String , где n19 - денежная сумма , находящаяся в интервале значений от 10 до 19 . Функция осуществляет перевод денежной единицы из числового формата в словесный на заданном интервале значений


Функция STR20_90(n99:char):String , где n99 - денежная сумма , находящаяся в интервале значений от 20 до 90 . Функция осуществляет перевод денежной единицы из числового формата в словесный на заданном интервале значений


Функция STR_Hund(nHund:char):String , где nHund - сотенная часть денежной суммы . Функция осуществляет перевод этой части денежной единицы из числового формата в словесный


Функция STR0_999(strP_100,strP_10,strP_1,strSex:char):String , где strP_100 - сотенный элемент денежная суммы , strP_10 - элемент десятков денежная суммы , strP_1 - элемент единиц денежная суммы , strSex - род денежной единцы . Функция осуществляет соединение в одну строку полученных значений в словесном эквиваленте для части денежной суммы , находящейся в интервале от 0 до 999.


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


Затем вызывается фунуция модуля FastTTT5 - WriteAT , которая осуществляет вывод заданного текста нужным цветом в заданные координаты экрана.


В конце программы вызывается фунуция модуля WinTTT5 - Reset_StartUp_Mode , которая восстанавливает исходный режим экрана.


4.4 Используемые технические средства


Данная программа предназначена для её изпользования на персональном компьютере типа IBM - PC стандартной конфигурации с минимальным объёмом оперативной памяти 640 К.


4.5 Вызов и загрузка


Для вызова программы на выполнение необходимо с помощью команд операционной системы компьютера сделать текущим каталог , в котором находится файл cyrrency.exe и вызвать его на выполнение.


4.6 Входные данные


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


4.7 Выходные данные


Выходными данными является денежная сумма в словесном формате, отображается программой на экране.


5. Программа и методика испытаний


5.1 Цель испытаний


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


5.2 Средства и порядок испытаний


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


5.3 Результаты испытания


При запуске программы и проверки её работоспособности были получены следующие результаты:


При вводе числа 1 - Сумма прописью : один рубль


При вводе числа 12 - Сумма прописью : двенадцать рублей


При вводе числа 123 - Сумма прописью : сто двадцать три рубля


При вводе числа 1234 - Сумма прописью : одна тысяча двести тридцать четыре рубля


При вводе числа 12345 - Сумма прописью : двенадцать тысяч триста сорок пять рублей


При вводе числа 123456 - Сумма прописью : сто двадцать три тысячи четыреста пятьдесят шесть рублей


При вводе числа 1234567 - Сумма прописью : один миллион двести тридцать четыре тысячи пятьсот шестьдесят семь рублей


При вводе числа 12345678 - Сумма прописью : двенадцать миллионов триста сорок пять тысяч шестьсот семьдесят восемь рублей


При вводе числа 123456789 - Сумма прописью : сто двадцать три миллиона четыреста пятьдесят шесть тысяч семьсот восемьдесят девять рублей.


При вводе нечислового символа - буквы "a" программа выдала звуковой сигнал.


6 Описание применения


Программа запускается обычным образом с клавиатуры персонального компьютера. Запускаемый файл называется currency.exe.


Программа currency.exe запускается из опереционной системы MS-DOS или из оболочки Norton Commander.


После запуска программы на экране появляется окно для ввода денежной суммы в числовом формате.


Диапазон входной информации равен от 0 до 999999999 рублей.


Окончанием ввода денежной суммы служит нажатие пользователем клавиши Enter.


В качестве результата программа выводит на экран словесный эквивалент введённой пользователем денежной суммы.


Заключение


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


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


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


Применение этой программы возможно на IBM - совместимых компьютерах , где установлена система MS - DOS и оснащённых любым видеоадаптером , поддерживающем текстовый режим 80х25 символов.


Список литературы


1. Шахов Э.К. Разработка и документирование программ. Методические ука зания к курсовой работе по программированию. -Пенза : Изд-во Пенз.гос.техн.ун-та,1994. - 59 с.,ил. 8 , табл. 6., библиогр.8 назв.


2. Сергиевский М.В., Шалашов А.В. Турбо Паскаль 7.0 язык, среда программирования. -М: Машиностроение.-1994,-254 с.ил.


Листинг программы


{Преобразование денежных сумм из числового формата в словесный}


Program Currency


Uses Strings, Crt, FastTTT5, StrnTTT5, ReadTTT5, WinTTT5


Const


{Денежныеединицы}


strUnit1 : String='рубль'


strUnit2 : String='рубля'


strUnitM : String='рублей'


{Род денежной единицы


М : мужской


Ж : женский}


strSex : Char='М'


var


ch : Char


Sum : LongInt


{Сумма в числовом формате}


Str1, Str2, Prop : String


{сумма в словесном формате}


Index : Byte


{для разбиения 'Prop' на две строки,


если 'Prop' длиннее 60 символов}


{Переводит денежную сумму из числового формата в словесный}


FUNCTION ValToStr(nSumNum:LongInt):String


var


Tmp_Prop :String


str1,str10,str100 : Char


{единицы, десятки, сотни}


nNum : String


{сумма в виде String}


nLenNum : Integer


{длина nNum}


{временные строки}


str99,strMld,strHun,strNOne,strTh,strNTh,strMln,strN_Mln : String


{*************** служебные функции ****************}


{перевод единиц,


n9 : число в символьном виде}


FUNCTION STR0_9(n9,strS:Char):String


begin


CASE n9 of


'1':IF strS='М' then str0_9:='один'


ELSE str0_9:='одна'


'2':IF strS='М' then str0_9:='два'


ELSE str0_9:='две'


'3': str0_9:='три'


'4': str0_9:='четыре'


'5': str0_9:='пять'


'6': str0_9:='шесть'


'7': str0_9:='семь'


'8': str0_9:='восемь'


'9': str0_9:='девять'


END


end


{str0_9}


{перевод второго десятка,


n19 : число в символьном виде}


FUNCTION STR10_19(n19:Char):String


begin


str10_19:=''


CASE n19 of


'0': str10_19:='десять'


'1': str10_19:='одиннадцать'


'2': str10_19:='двенадцать'


'3': str10_19:='тринадцать'


'4': str10_19:='четырнадцать'


'5': str10_19:='пятнадцать'


'6': str10_19:='шестнадцать'


'7': str10_19:='семнадцать'


'8': str10_19:='восемнадцать'


'9': str10_19:='девятнадцать'


END


end


{str10_19}


{перевод десятков,


n99 : число в символьном виде}


FUNCTION STR20_90(n99:Char):String


begin


str20_90:=''


CASE n99 of


'2': str20_90:='двадцать'


'3': str20_90:='тридцать'


'4': str20_90:='сорок'


'5': str20_90:='пятьдесят'


'6': str20_90:='шестьдесят'


'7': str20_90:='семьдесят'


'8': str20_90:='восемьдесят'


'9': str20_90:='девяносто'


END


end


{str20_90}


{перевод сотен,


nHund : число в символьном виде}


FUNCTION STR_Hund(nHund:Char):String


begin


str_Hund:=''


CASE nHund of


'1': str_Hund:='сто'


'2': str_Hund:='двести'


'3': str_Hund:='триста'


'4': str_Hund:='четыреста'


'5': str_Hund:='пятьсот'


'6': str_Hund:='шестьсот'


'7': str_Hund:='семьсот'


'8': str_Hund:='восемьсот'


'9': str_Hund:='девятьсот'


END


end


{str_Hund}


{составление строки из единиц, десятков и сотен}


FUNCTION Str0_999(strP_100,strP_10,strP_1,strSex:Char):String


var


Str100: String


begin


IF ((strP_100=' ') OR (strP_100='0')) then


str100:=''


ELSE


str100:=Str_Hund(strP_100)


IF ((strP_10=' ') OR (strP_10='0')) then


str99:=Str0_9(strP_1,'М')


ELSE


IF strP_10='1' then


str99:=Str10_19(strP_1)


ELSE


str99:=Str20_90(strP_10)+' '+str0_9(strP_1,'M')


str100:=Strip('B',' ',str100)


IF length(str100)>0 then


str100:=str100+' '


Str0_999:=Strip('B',' ',str100+str99)


end


{***************** ValToStr *********************************}


Begin


{функцияиз StrnTTT5-переводитцелоечисловстроку}


nNum:=Int_To_Str(nSumNum)


{функция из StrnTTT5-удаляет из строки символы,


(откуда удалять, что удалять, строка)}


nNum:=Strip('B',' ',nNum)


nLenNum:=length(nNum)


{вычисляемдлину}


strHun:=''


strTh:=''


strMln:=''


{если сумма меньше 100}


IF nLenNum<3 then


begin


{функция из StrnTTT5-добавляем слева несколько пробелов}


nNum:=Squeeze('L',' ',3-nLenNum)+nNum


nLenNum:=Length(nNum)


end


{выделяем единицы, десятки и сотни}


str1:=nNum[nLenNum]


str10:=nNum[nLenNum-1]


str100:=nNum[nLenNum-2]


IF NOT ((str1='0') AND (str10='0') AND (str100='0')) then


begin


{переводим в словесный формат сотни}


strHun:=str0_999(str100,str10,str1,strSex)


{выбираем 'рубль', 'рубля' или 'рублей'}


IF (str1='1') AND (str10<>'1') then


strNOne:=strUnit1


ELSE


IF (str1 in ['1'..'4']) AND (str10<>'1') then


strNOne:=strUnit2


ELSE


strNOne:=strUnitM


strHun:=strHun+' '+strNOne


end


ELSE


strHun:=strUnitM


{********}


{еслибольше 999}


IF nLenNum>3 then


begin


{еслименьше 999999}


IF nLenNum<6 then


begin


{добавляем недостающие пробелы}


nNum:=Squeeze('L',' ',6-nLenNum)+nNum


nLenNum:=Length(nNum)


end


{выделям тысячи, десятки и сотни тысяч}


str1:=nNum[nLenNum-3]


str10:=nNum[nLenNum-4]


str100:=nNum[nLenNum-5]


IF NOT ((str1='0') AND (str10='0') AND (str100='0')) then


begin


strTh:=str0_999(str100,str10,str1,'Ж')


{выбираемпадежслова 'тысяча'}


IF (str1='1') AND (str10<>'1') then


strNTh:='тысяча'


ELSE


IF (str1 in ['1'..'4']) AND (str10<>'1') then


strNTh:='тысячи'


ELSE


strNTh:='тысяч'


strTh:=strTh+' '+strNTh


end


END


{********}


{если больше больше 999.999}


IF nLenNum>6 then


begin


{еслименьше 999.999.999}


IF nLenNum<9 then


begin


{добавляемпробелы}


nNum:=Squeeze('L',' ',9-nLenNum)+nNum


nLenNum:=Length(nNum)


END


{выделяем миллионы, десятки и сотни миллионов}


str1:=nNum[nLenNum-6]


str10:=nNum[nLenNum-7]


str100:=nNum[nLenNum-8]


IF NOT ((str1='0') AND (str10='0') AND (str100='0')) then


begin


{выбираем падеж слова миллион}


strMln:=str0_999(str100,str10,str1,'M')


IF (str1='1') AND (str10<>'1') then


strN_Mln:='миллион'


ELSE


IF (str1 in ['1'..'5']) AND (str10<>'1') then


strN_Mln:='миллиона'


ELSE


strN_Mln:='миллионов'


strMln:=strMln+' '+strN_Mln


END


END


{********}


{удаляем пробелы из строки миллионов}


strMln:=Strip('B',' ',strMln)


IF Length(strMln)>0 then


strMln:=strMln+' '


{добавляем справа один пробел}


{удаляем пробелы из строки тысяч}


strTh:=Strip('B',' ',strTh)


IF Length(strTh)>0 then


strTh:=strTh+' '


{добавляем справа один пробел}


{удаляем пробелы из строки сотен}


strHun:=Strip('B',' ',strHun)


{складываем строки миллионов, тысяч и сотен в одну строку}


Tmp_Prop:=strMln+strTh+strHun


{переводим первый символ полученной строки в верхний регистр}


Tmp_Prop[1]:=UpCase(Tmp_Prop[1])


{возвращаем итоговую строку}


ValToStr:=Tmp_Prop


end


{ValToStr}


{*********** MAIN ***********}


Begin


Str1:=''


Str2:=''


clrscr


{функция из WinTTT5-очищаем экран от текста}


ClearText(1,1,80,25,White,Blue)


{функция из ReadTTT5-считываем длинное целое, допустимые значения 0-999999999


(столбец, строка, длина поля ввода, приглашение, тип рамки,


минимальное значение, максимальное значение)}


Read_LongInt(25,10,9,'Введите число : ',4,Sum,0,999999999)


{переводим из числового формата в символьный}


Prop:=ValToStr(sum)


{функция из WinTTT5-отключаем курсор}


OffCursor


Index:=61


{максимальная длина строки для вывода на экран}


{функция из FastTTT5-выводим текст в нужном месте


(столбец, строка, цвет текста, фон, текст)}


WriteAt(2,14,Yellow,Blue,'Суммапрописью : ')


{если символьная строка длиннее 60 символов}


if Length(Prop)>60 then


begin


{ищем слева от 60-го символа первый пробел}


repeat


dec(Index)


until Prop[Index]=' '


{выделяем левую часть символьной строки (до 60-го символа)}


Str1:=Squeeze('L',Prop,Index)


{выделяем правую часть символьной строки (после 60-го символа)}


Str2:=Squeeze('R',Prop,Length(Prop)-Index+1)


{выводимлевуючасть}


WriteAt(19,14,White,Blue,Str1)


{выводимправуючасть}


WriteAt(19,15,White,Blue,Str2)


end


else {выводимсимвольнуюстрокуполностью}


WriteAt(19,14,White,Blue,Prop)


{ждемнажатияклавиши}


ch:=readkey


{функция из WinTTT5-восстанавливаем исходный режим экрана}


Reset_StartUp_Mode


end.


ПриложениеВ


( рекомендательное )


Результаты тестирования программы



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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Муханов, Николай Терентьевич
Реферат McCains Campaign Essay Research Paper John McCains
Реферат Банковское регулирование на примере ОАО АК БАРС-банка
Реферат Измерения геометрических величин в курсе геометрии 7-9 классов
Реферат Реактивное движение в природе и технике
Реферат Новелістика Дніпрової Чайки, Степана Васильченка, Марка Черемшини, Леся Мартовича
Реферат Теоретические основы осуществления прокурорского надзора
Реферат Координація періодичної діяльності гастродуоденальної зони при порушенні її функціонально морфологічної
Реферат "Мысль народная" и "мысль семейная" в романе Л.Н.Толстого "Война и мир"
Реферат Фінансовий ринок (фондовий) України
Реферат Налоговая система Украины и е особенности в других странах
Реферат Трагедия Григория Мелехова в романе Тихий Дон
Реферат 4 Анализ и оценка риска инвестиционных проектов
Реферат 3. Із першого речення тексту випиши слова, у яких кількість звуків І букв різна
Реферат Технология сварки обечайки корпуса теплообменного аппарата