Автор работы: Пользователь скрыл имя, 18 Июня 2013 в 22:26, курсовая работа
Целью данной курсовой работы является разработка Windows-приложения для склонения натуральных чисел не превосходящих 100000. Для разработки требуемого приложения будет использоваться Borland Delphi.
OnClick – событие, выполняемое при нажатии пользователем на кнопку.
В данной курсовой работе было разработано Windows-приложение «Склонение числительных», позволяющее осуществить ввод натурального числа, не превосходящего 100000 и получить на экране соответствующее количественное числительное во всех падежах.
В ходе курсового проектирования был изучен теоретический материал по теме «Склонение числительных». Также была проанализирована среда разработки приложений Delphi.
// процедура, обрабатывающая нажатие на пункт меню Выход:
procedure TMainWnd.N1Click(Sender: TObject);
begin
self.Close;
end;
// процедура, обрабатывающая нажатие на пункт меню Ввести значение:
procedure TMainWnd.Entervalue1Click(
begin
EnterWnd.ShowModal;
end;
// процедура, обрабатывающая нажатие на пункт меню О программе
procedure TMainWnd.Exit1Click(Sender: TObject);
begin
AboutWnd.ShowModal;
end;
// процедура, обрабатывающая
нажатие на пункт меню
procedure TMainWnd.Saveto1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
begin
CurrentFile := SaveDialog1.FileName;
Memo1.Lines.SaveToFile(
Memo1.Modified:=false;
end;
end;
//============================
// Здесь происходит обработка нажатия на кнопку "Отмена"
// ==============================
procedure TEnterWnd.Button2Click(Sender: TObject);
begin
self.close; // Выход из данного диалога
end;
// ==============================
// Здесь происходит обработка вводимых символов в поле Edit
// Фильтруем вводимые символы в поле Edit.
// Разрешаем вводить только цифры от 0 до 9
// ==============================
procedure TEnterWnd.Edit1KeyPress(
begin
if not (key in['0'..'9',decimalseparator,#
begin
key:=#0; //если введенное число 0
beep; // Бикаем при вводе запрещённого символа
end;
end;
// ==============================
// Здесь происходит обработка нажатия на кнопку "Ввести"
// Получаем число из Edit и выводим результат его преобразования в Memo
// ==============================
procedure TEnterWnd.Button1Click(Sender: TObject);
var
s, m: integer;
begin
if Edit1.Modified then // Проверяем, есть ли на вводе число
begin
s:=strtoint(Edit1.Text); // Получаем строку из Edit1 и преобразуем её в число
if (s<>0) then // Проверяем, равно ли введённое число 0
begin
if (s<=100000) then // Проверяем, больше ли введённое число 100000
begin
MainWnd.Memo1.Clear; // очищаем поле Меmо
MainWnd.Memo1.Lines.Add('Вы
MainWnd.Memo1.SelStart:=16;
MainWnd.Memo1.SelLength:=6;
MainWnd.Memo1.SelText:=
MainWnd.Memo1.Lines.add(''+#
MainWnd.Memo1.Lines.add('
MainWnd.Memo1.Lines.add(''+#
for m:=0 to 5 do // Производим циклический вывод результата
MainWnd.Memo1.Lines.Add(
Edit1.Clear;
self.close;
end
else // если введенное число больше 100000
Edit1.Text:='Вы ввели слишком большое число' ;
Edit1.SetFocus;
end
else //если пользователь ввел 0
Edit1.Text:='Вы ввели ноль. Повторите';
Edit1.SetFocus;
end
else // если пользователь ничего не ввел
Edit1.Text:='Введите значение от 1 до 100000';
Edit1.SetFocus;
end;
// ==============================
// Стираем поле Edit при запуске (событие FormOnShow) окна диалога
// ==============================
procedure TEnterWnd.FormShow(Sender: TObject);
begin
Edit1.Clear;
Edit1.SetFocus;
end;
procedure TAboutWnd.Button1Click(Sender: TObject); // процедура обработки нажатия кнопки Закрыть
begin
self.close
end;
function KolToStrin(Padej: integer; Value: string): string;
implementation
const //создаем массивы со всеми необходимыми формами числительных
//Именительный и винительный падежи
a: array[0..4, 0..9] of string = (
('', 'один ', 'два ', 'три ', 'четыре ', 'пять ', 'шесть ', 'семь ','восемь ', 'девять '),
('', '', 'двадцать ', 'тридцать ', 'сорок ', 'пятьдесят ', 'шестьдесят ','семьдесят ', 'восемьдесят ', 'девяносто '),
('', 'сто ', 'двести ', 'триста ', 'четыреста ', 'пятьсот ', 'шестьсот ','семьсот ', 'восемьсот ', 'девятьсот '),
('тысяч ', 'одна тысяча ', 'две тысячи ', 'три тысячи ', 'четыре тысячи ','пять тысяч ', 'шесть тысяч ', 'семь тысяч ', 'восемь тысяч ','девять тысяч '),
('', '', 'двадцать ', 'тридцать ', 'сорок ', 'пятьдесят ', 'шестьдесят ','семьдесят ', 'восемьдесят ', 'девяносто '));
b: array[0..9] of string =
('десять ', 'одинадцать ', 'двенадцать ', 'тринадцать ', 'четырнадцать ','пятнадцать ', 'шестнадцать ', 'семнадцать ', 'восемнадцать ','девятнадцать ');
// Родительный падеж
ra: array[0..4, 0..9] of string = (
('', 'одного ', 'двух ', 'трех ', 'четырёх ', 'пяти ', 'шести ', 'семи ','восьми ', 'девяти '),
('', '', 'двадцати ', 'тридцати ', 'сорока ', 'пятидесяти ', 'шестидесяти ','семидесяти ', 'восьмидесяти ', 'девяноста '),
('', 'ста ', 'двухсот ', 'трехсот ', 'четырехсот ', 'пятисот ', 'шестисот ','семисот ', 'восьмисот ', 'девятисот '),
('тысяч ', 'одной тысячи ', 'двух тысяч ', 'трех тысяч ', 'четырех тысяч ','пяти тысяч ', 'шести тысяч ', 'семи тысяч ', 'восьми тысяч ','девяти тысяч '),
('', '', 'двадцати ', 'тридцати ', 'сорока ', 'пятидесяти ', 'шестидесяти ','семидесяти ', 'восьмидесяти ', 'девяноста '));
rb: array[0..9] of string =
('десяти ', 'одинадцати ', 'двенадцати ', 'тринадцати ', 'четырнадцати ','пятнадцати ', 'шестнадцати ', 'семнадцати ', 'восемнадцати ','девятнадцати ');
// Дательный падеж
da: array[0..4, 0..9] of string = (
('', 'одному ', 'двум ', 'трем ', 'четырём ', 'пяти ', 'шести ', 'семи ','восьми ', 'девяти '),
('', '', 'двадцати ', 'тридцати ', 'сорока ', 'пятидесяти ', 'шестидесяти ','семидесяти ', 'восьмидесяти ', 'девяноста '),
('', 'ста ', 'двухстам ', 'трехстам ', 'четырехстам ', 'пятистам ', 'шестистам ','семистам ', 'восьмистам ', 'девятистам '),
('тысячам ', 'одной тысячи ', 'двум тысячам ', 'трем тысячам ', 'четырем тысячам ','пяти тысячам ', 'шести тысячам ', 'семи тысячам ', 'восьми тысячам ','девяти тысячам '),
('', '', 'двадцати ', 'тридцати ', 'сорока ', 'пятидесяти ', 'шестидесяти ','семидесяти ', 'восьмидесяти ', 'девяноста '));
db: array[0..9] of string =
('десяти ', 'одинадцати ', 'двенадцати ', 'тринадцати ', 'четырнадцати ','пятнадцати ', 'шестнадцати ', 'семнадцати ', 'восемнадцати ','девятнадцати ');
// Творительный падеж
ta: array[0..4, 0..9] of string = (
('', 'одним ', 'двумя ', 'тремя ', 'четырьмя ', 'пятью ', 'шестью ', 'семью ','восемью ', 'девятью '),
('', '', 'двадцатью ', 'тридцатью ', 'сорока ', 'пятьюдесятью ', 'шестьюдесятью ','семьюдесятью ', 'восемьюдесятью ', 'девяностами '),
('', 'ста ', 'двумястами ', 'тремястами ', 'четырьмястами ', 'пятьюстами ', 'шестьюстами ','семьюстами ', 'восемьюстами ', 'девятьюстами '),
('тысячами ', 'одной тысячью ', 'двумя тысячами ', 'тремя тысячами ', 'четырьмя тысячами ','пятью тысячами ', 'шестью тысячами ', 'семью тысячами ', 'восемью тысячами ','девятью тысячами '),
('', '', 'двадцатью ', 'тридцатью ', 'сорока ', 'пятьюдесятью ', 'шестьюдесятью ','семьюдесятью ', 'восемьюдесятью ', 'девяностами '));
tb: array[0..9] of string =
('десятью ', 'одинадцатью
', 'двенадцатью ', 'тринадцатью ', 'четырнадцатью
','пятнадцатью ', 'шестнадцатью ', 'семнадцатью
', 'восемнадцатью ','девятнадцать
// Предложный падеж
pa: array[0..4, 0..9] of string = (
('', 'одном ', 'двух ', 'трех ', 'четырёх ', 'пяти ', 'шести ', 'семи ','восьми ', 'девяти '),
('', '', 'двадцати ', 'тридцати ', 'сорока ', 'пятидесяти ', 'шестидесяти ','семидесяти ', 'восьмидесяти ', 'девяноста '),
('', 'ста ', 'двухстах ', 'трехстах ', 'четырехстах ', 'пятистах ', 'шестистах ','семистах ', 'восьмистах ', 'девятистах '),
('тысячах ', 'одной тысяче ', 'двух тысячах ', 'трех тысячах ', 'четырёх тысячах ','пяти тысячах ', 'шести тысячах ', 'семи тысячах ', 'восьми тысячах ','девяти тысячах '),
('', '', 'двадцати ', 'тридцати ', 'сорока ', 'пятидесяти ', 'шестидесяти ','семидесяти ', 'восьмидесяти ', 'девяноста '));
pb: array[0..9] of string =
('десяти ', 'одинадцати ', 'двенадцати ', 'тринадцати ', 'четырнадцати ','пятнадцати ', 'шестнадцати ', 'семнадцати ', 'восемнадцати ','девятнадцати ');
// ==============================
// Тело функции
// ==============================
function kolToStrin(Padej: integer; Value: string): string;
var
s, t, rt, dt, tt, pt: string;
p, pp, i, k: integer;
begin
s := value; // Принимаем "число"
if (s='100000') then // Склоняем число 100000
begin
t := 'Сто тысяч ';
rt := 'Ста тысяч ';
dt := 'Ста тысячам ';
Информация о работе Разработка Windows-приложения «Склонение числительных» средствами Borland Delphi