рефераты
Главная

Рефераты по рекламе

Рефераты по физике

Рефераты по философии

Рефераты по финансам

Рефераты по химии

Рефераты по хозяйственному праву

Рефераты по цифровым устройствам

Рефераты по экологическому праву

Рефераты по экономико-математическому моделированию

Рефераты по экономической географии

Рефераты по экономической теории

Рефераты по этике

Рефераты по юриспруденции

Рефераты по языковедению

Рефераты по юридическим наукам

Рефераты по истории

Рефераты по компьютерным наукам

Рефераты по медицинским наукам

Рефераты по финансовым наукам

Рефераты по управленческим наукам

Психология и педагогика

Промышленность производство

Биология и химия

Языкознание филология

Издательское дело и полиграфия

Рефераты по краеведению и этнографии

Рефераты по религии и мифологии

Рефераты по медицине

Рефераты по сексологии

Рефераты по информатике программированию

Краткое содержание произведений

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

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

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

Выполнил : студент гр. 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.

                     Приложение В

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

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


© 2012 Рефераты, курсовые и дипломные работы.