Создание программного продукта для расчета возможности выдачи кредита
Понятие программного продукта и его стандартизация, авторское право и стоимостная оценка. Автоматизированные банковские системы, их эволюция и технологическое построение. Сущность и структура кредита. Принципы объектно-ориентированного программирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 19.10.2011 |
Размер файла | 879,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
В отличие от государственных займов, широко распространенных в современном хозяйстве, государственная форма кредита по сравнению с другими формами имеет ограниченное применение, чаще всего предоставляется через банки, а также в сфере международных экономических отношений, по существу становится международной формой кредита.
При международной форме кредита состав участников кредитной сделки не меняется, в кредитные отношения вступают те же субъекты - банки, предприятия, государство и население, однако отличительным признаком данной формы является принадлежность одного из участников к другой стране. Здесь одна из сторон - иностранный субъект.
Гражданская форма кредита основана на участии в кредитной сделке в качестве кредитора отдельных граждан, частных лиц. Такую сделку иногда называют частной (личной) формой кредита. Гражданская форма кредита может носить как денежный, так и товарный характер, применяется во взаимоотношениях со всяким из других участников кредитных отношений.
Во взаимоотношениях частных лиц друг с другом данная форма кредита часто носит дружеский характер: ссудный процент устанавливается в меньшей сумме, чем в банках, в некоторых случаях не взыскивается; кредитный договор не заключается, чаще используется долговая расписка, однако и она зачастую не применяется. Элемент доверия здесь приобретает повышенное значение. Срок такого кредита не является жестким, чаще носит условный характер.
Как отмечалось ранее, формы кредита можно также различать в зависимости от целевых потребностей заемщика. В этой связи выделяются две формы: производительная и потребительская формы кредита.
Производительная форма кредита связана с особенностью использования полученных от кредитора средств. Этой форме кредита свойственно использование ссуды на цели производства и обращения.
Так же, как в случае с товарной формой кредита, можно предположить, что его потребительская форма исторически возникла вначале развития кредитных отношений, когда у одних субъектов ощущался избыток предметов потребления, у других возникала потребность во временном их использовании. Со временем данная форма стала распространенной и в современном хозяйстве, позволяя субъектам ускорить удовлетворение потребностей населения, прежде всего, в товарах длительного пользования.
Потребительская форма кредита в отличие от его производительной формы используется населением на цели потребления, он не направлен на создание новой стоимости, преследует цель удовлетворить потребительские нужды заемщика. Потребительский кредит могут получать не только отдельные граждане для удовлетворения своих личных потребностей, но и предприятия, не создающие, а «проедающие» созданную стоимость.
Современный кредит имеет преимущественно производительный характер. Как отмечалось ранее, решающий удельный вес среди разнообразных форм кредита имеет банковский кредит. Это означает, что заемщик не только должен возвратить ссуду, но и уплатить за ее использование ссудный процент. В современном хозяйстве кредит ссужается не просто в форме денег, а в форме денег как капитала. Движение денег как капитала, как возрастающей стоимости, обусловливает производительное использование ссуды, требует от заемщика такого размещения заемных средств, которое предполагает их рациональное, производительное использование, создание новой стоимости, прибыли, частично уступаемой кредитору в виде платы за временное позаимствование ссуженной стоимости.
Это не исключает случаи покрытия кредитом убытков от деятельности предприятий. Здесь форма кредита вступает в противоречие с его содержанием, в конечном счете, нарушаются законы кредита, нарушается ход кредитного процесса, кредит из фактора экономического роста превращается в инструмент обострения диспропорций в развитии экономики.
Чистых форм кредита, изолированных друг от друга, не существует. Банковский кредит, например, хотя и предоставляется в денежной форме, однако на практике его погашение производится в форме товаров. Часто подобная ситуация вызывается исключительными обстоятельствами. Так, в России в период современного экономического кризиса 90-х гг. и сильной инфляции банки производили взыскание кредита посредством получения от заемщика соответствующих сумм товаров. Известны случаи, когда предприятия-заемщики расплачивались с банками за полученные ранее кредиты сахаром, который работники банка продавали по сходной цене клиентам [5].
Это относится и к другим формам кредита. Банковский кредит, будучи по своему характеру производительным кредитом, на практике приобретают потребительские черты. В свою очередь гражданский кредит - это далеко не всегда потребительский кредит. Граждане могут приобретать ссуду на строительство или ремонт дома, приобретение хозяйственного инвентаря, используемого при сельскохозяйственных работах.
Вид кредита - это более детальная его характеристика по организационно-экономическим признакам, используемая для классификации кредитов. Единых мировых стандартов при их классификации не существует. В России кредиты классифицируются в зависимости от:
- стадий воспроизводства, обслуживаемых кредитом;
- отраслевой направленности;
- объектов кредитования;
- его обеспеченности;
- срочности кредитования;
- платности и др.
Являясь важным инструментом платежа, кредит применяется для удовлетворения разнообразных потребностей заемщика. Эти потребности зарождаются не только в обмене, где разрыв в платежном обороте наиболее проявляется, но и в других стадиях воспроизводства. Хозяйственные организации, производящие продукт, расходуют полученные ссуды для приобретения средств производства, удовлетворения потребностей по расчетам по заработной плате с работниками, с бюджетными организациями. Население получает кредит для удовлетворения своих потребительских нужд. Выступая категорией обмена, кредит используется для удовлетворения потребностей производства, распределения и потребления валового продукта.
Кредит подразделяется на виды и в зависимости от их отраслевой направленности. Бывает промышленный кредит, сельскохозяйственный, торговый кредит. Отраслевая направленность кредита часто находит свое воплощение в государственной статистике ряда стран. По отраслям делят кредиты и отдельные коммерческие банки.
Классификация кредита обусловлена также объектами аккредитования. Чаще всего кредит используется для приобретения различных товаров. В ряде случаев ссуда выдается для осуществления различных производственных затрат. Объект кредитования может иметь материально-вещественную форму и не иметь ее. Ссуда довольно часто берется под разрыв в платежном обороте, когда у предприятия временно отсутствуют свободные денежные средства, но возникают обязательства по текущим платежам. В этом случае кредит покрывает недостаток денежных средств или разрыв в платежном обороте.
Классификация кредита по видам зависит и от его обеспеченности. Обычно обеспеченность различают по характеру, степени (полноте) и формам. По характеру обеспечения выделяют ссуды, имеющие прямое и косвенное обеспечение. Прямое обеспечение содержат ссуды, выданные под конкретный материальный объект. Косвенное обеспечение имеют ссуды, выданные на покрытие разрыва в платежном обороте.
По степени обеспеченности выделяются кредиты с полным (достаточным), неполным (недостаточным) обеспечением и без обеспечения. Полное обеспечение имеется в том случае, если размер обеспечения равен или выше размера предоставляемого кредита. Неполное обеспечение возникает тогда, когда его стоимость меньше размера кредита. Кредит может не иметь обеспечения (бланковый кредит) при наличии достаточного доверия банка к заемщику, уверенности банка в возврате средств.
Помимо обычного залога товарно-материальных ценностей, имущества, принадлежащего заемщику в группу обеспечения возврата кредита входят различного рода гарантии, поручительства третьих лиц, страхование и др.
При классификации кредита в зависимости от срочности кредитования выделяют краткосрочные, среднесрочные и долгосрочные ссуды.
Краткосрочные ссуды обслуживают текущие потребности заемщика, связанные с движением оборотного капитала. Краткосрочными ссудами считаются ссуды, срок возврата которых по международным стандартам не выходит за пределы одного года. Это определяется экономическими условиями, степенью инфляции. Так, в России в 90-е годы в силу значительных инфляционных процессов к краткосрочным ссудам зачастую относили ссуды со сроком до трех-шести месяцев.
Среднесрочные и долгосрочные кредиты обслуживают долговременные потребности, обусловленные необходимостью модернизации производства, осуществления капитальных затрат по расширению производства.
Устоявшегося стандартного срока как критерия отнесения кредита к разряду среднесрочных или долгосрочных ссуд пока нет. В США среднесрочными ссудами являются ссуды сроком погашения до восьми лет, в Германии - до шести лет. В России к среднесрочным ссудам относили ссуды сроком погашения от шести месяцев до двенадцати месяцев, к долгосрочным - кредиты, срок возврата которых выходил за пределы года сильная инфляция трансформировала представление о сроке кредитования, меняла критерии срочности кредитования заемщиков.
Кредит можно классифицировать по видам и в зависимости от платности за его использование. Здесь выделяют платный и бесплатный, дорогой и дешевый кредиты. За основу такого деления берется размер процентной ставки, установленный за пользование ссудой.
В современном хозяйстве кредит функционирует как капитал. Это означает, что кредитор передает ссуженную стоимость не как сумму денег, а как самовозрастающую стоимость, которая возвращается с приращением в виде ссудного процента. Заемщик полученные средства должен использовать таким образом, чтобы с их помощью не только обеспечить непрерывность производства, но и создать новую стоимость, достаточную, чтобы рассчитаться с кредитором - возвратить ему первоначально авансированную сумму и уплатить ссудный процент. Именно поэтому кредит как стоимостная категория носит платный характер.
Тем не менее, в очень ограниченных размерах существует и бесплатный кредит. Он применяется при кредитовании акционеров банка, при личных (дружеских) формах кредита. При товарном кредите (в форме векселей) отсрочкам платежа также не сопровождается взысканием процента.
Размер платности чаще всего дифференцируется в зависимости от срока кредита, качества обеспечения, платежеспособности заемщика. Платность меняется с учетом экономического цикла - подъема, депрессии или экономического кризиса. Дорогой и дешевый кредиты - понятия относительные.
В мировой банковской практике используются и другие критерии классификации кредитов. В частности, кредиты могут делиться на ссуды, выдаваемые в иностранной и национальной валюте, юридическим и физическим лицам.
3. ОБОСНОВАНИЕ ВЫБОРА ЯЗЫКА ПРОГРАММИРОВАНИЯ
3.1 Принципы объектно-ориентированного программирования
Бытует мнение, что во многих языках, таких как C++ и Microsoft Visual Basic, есть «поддержка объектов», однако на самом деле лишь немногие из них следуют всем принципам, составляющим основу ООП, и язык Basic -- один из них. Он изначально разрабатывался как настоящий объектно-ориентированный язык, в основе которого лежит технология компонентов [7].
Многие языки претендуют называться «объектно-ориентированными», либо «основанными на объектах», но лишь немногие являются таковыми на самом деле. Взять, например, C++. Ни для кого не секрет, что своими корнями он глубоко уходит в язык С, и ради поддержки программ, написанных когда-то на С, в нем пришлось пожертвовать очень многими идеями ООП. Даже в Java есть вещи, не позволяющие считать его по-настоящему объектно-ориентированным языком.
Прежде всего, имеется в виду базисные типы и объекты, которые обрабатываются и ведут себя по-разному. Объектно-ориентированное программирование -- это не только модный термин, не только новый синтаксис или новый интерфейс прикладного программирования (API). ООП -- это целый набор концепций и идей, позволяющих осмыслить задачу, стоящую при разработке компьютерной программы, а затем найти путь к ее решению более понятным, а значит, и более эффективным способом.
Объектно-ориентированное программирование -- это иной способ осмысления, формулирования и решения задач по созданию программ. Практика показывает, что начинающие программисты намного быстрее овладевают объектно-ориентированными языками, чем те, кто начинал с процедурных языков вроде BASIC, COBOL и С.
Любая сущность -- объект [8]. В настоящем объектно-ориентированном языке все элементы так называемой предметной области (problem domain) выражаются через концепцию объектов. Объекты -- это центральная идея объектно-ориентированного программирования.
Инкапсуляция -- это свойство объекта скрывать свои внутренние данные и методы, представляя наружу только интерфейс, через который осуществляется программный доступ к самым важным элементам объекта. Как объект выполняет задачу, не имеет значения, главное, чтобы он справлялся со своей работой. Имея в своем распоряжении интерфейс объекта, заставляете объект выполнять нужную вам работу. Здесь важно отметить, что разработка и написание программ моделирования реальных объектов предметной области облегчается тем, что представить поведение таких объектов довольно просто.
Объекты и классы. Программисты, начинающие осваивать ООП, часто путают термины «объект» и «класс».
Есть разные трактовки термина «класс», показывающие, в частности, чем класс отличается от объекта. Считайтся, что класс -- это просто новый тип данных (как char, int или long), с которым связаны некие методы. Объект же -- это экземпляр типа, или класса.
Три основных принципа языков объективно-ориентированного программирования. По Бьерну Страуструпу, автору C++, язык может называться объектно-ориентированным, если в нем реализованы три концепции: объекты, классы и наследование. Однако теперь принято считать, что такие языки должны держаться на других трех китах: инкапсуляции, наследовании и полиморфизме. Этот философский сдвиг произошел из-за того, что со временем стали понимать: построить объектно-ориентированные системы без инкапсуляции и полиморфизма так же невозможно, как без классов и наследования.
Инкапсуляция. Инкапсуляция, или утаивание информации (information hiding), -- это возможность скрыть внутреннее устройство объекта от его пользователей, предоставив через интерфейс доступ только к тем членам объекта, с которыми клиенту разрешается работать напрямую. Инкапсуляция подразумевает наличие границы между внешним интерфейсом класса (открытыми членами, видимыми пользователям класса) и деталями его внутренней реализации. Преимущество инкапсуляции для разработчика в том, что он может открыть те члены класса, которые будут оставаться статичными, или неизменяемыми, скрыв внутреннюю организацию класса, более динамичную и в большей степени подверженную изменениям. Как уже говорилось, в С# инкапсуляция достигается путем назначения каждому члену класса своего модификатора доступа -- public, private или protected.
Абстрагирование. Абстрагирование связано с тем, как данная проблема представлена в пространстве программы. Во-первых, абстрагирование заложено в самих языках программирования. Постарайтесь вспомнить, давно ли вам приходилось заботиться о стеке или регистрах процессора. Причина проста: большинство языков отстраняют вас (абстрагируют) от таких подробностей, позволяя сосредоточиться на решении прикладной задачи [9].
При объявлении классов в объектно-ориентированных языках можно использовать такие имена и интерфейсы, которые отражают смысл и назначение объектов предметной области. «Удаление» элементов, не связанных напрямую с решением задачи, позволит полностью сосредоточиться на самой задаче и решить ее более эффективно.
Однако язык -- это один уровень абстрагирования. Если пойти дальше, то, как разработчику класса, нужно придумать такую степень абстрагирования, чтобы клиенты класса могли сразу сосредоточиться на своей задаче, не тратя время на изучение работы класса. При определении нужной степени абстрагирования класса важно помнить и о программисте клиентского кода.
Кроме того, решая, какие члены класса сделать открытыми, надо опять вспомнить о клиенте. Это еще раз подтверждает необходимость иметь хотя бы начальное представление о предметной области и клиентах вашего класса. Так, в случае с БД ваши клиенты, наверное, не должны иметь прямого доступа к членам, представляющим внутренние буферы данных. Ведь структура этих буферов может когда-нибудь измениться. Кроме того, от целостности этих буферов зависит вся работа ядра БД, и поэтому операции по их изменению следует выполнять только вашими методами. Только после этого можно сказать, что предприняты все меры предосторожности.
Наличие в классах абстрагирования, которое максимально удобно для программистов, работающих с этими классами, имеет первостепенное значение при разработке повторно используемого ПО. Если выстроить интерфейс, на который не влияют изменения в реализации, то приложению долгое время не понадобятся никакие модификации. В результате отстранения пользователя от деталей реализации система в целом становится понятнее, а значит, и удобнее в работе. Иначе обстоит дело с такими процедурными языками как С, в которых нужно показать явно каждый модуль и предоставить доступ к элементам структуры. И при каждом ее изменении нужно редактировать строки кода, имеющие отношение к данной структуре.
Наследование. Наследованием называют возможность при описании класса указывать на его происхождение (kind-of relationship) от другого класса. Наследование позволяет создать новый класс, в основу которого положен существующий. В полученный таким образом класс можно внести свои изменения, а затем создать новые объекты данного типа. Этот механизм лежит в основе создания иерархии классов. После абстрагирования наследование -- наиболее значимая часть общего планирования системы. Производным (derived class) называется создаваемый класс, производный от базового (base class). Производный класс наследует все методы базового, позволяя задействовать результаты прежнего труда [10].
Любой унаследованный интерфейс производного класса не должен требовать больше и обещать меньше, чем в базовом классе. Пренебрежение этим правилом приводит к разрушению существующего кода. Интерфейс класса -- это контракт между классом и пользователями, применяющими этот класс. Имея ссылку на производный класс, программист всегда может обращаться с ним, как с базовым классом. Это называется восходящим преобразованием типа (upcasting). Это правило распространяется только на функциональные возможности базового класса. В производный класс можно добавить и другие функции, которые выполняют и более узкие (или более широкие) задачи, чем унаследованные функции. Поэтому данное правило применяется только к унаследованным членам, поскольку существующий код рассчитан на работу только с этими членами.
Полиморфизм. Самое короткое и выразительное определение полиморфизма таково: это функциональная возможность, позволяющая старому коду вызвать новый. Это свойство ООП, пожалуй, наиболее ценно, поскольку дает возможность расширять и совершенствовать свою систему, не затрагивая существующий код.
Полиморфизм имеет минимум два плюса. Во-первых, он позволяет группировать объекты, имеющие общий базовый класс, и последовательно (например, в цикле) их обрабатывать. Второе достоинство: старый код может использовать новый код.
3.2 Меню Visual Basic
В Visual Basic существует два типа меню: встроенные и контекстные [11].
Встроенные меню. Встроенные меню выводятся в строке меню, над верхней границей окна Visual Basic. Название каждого меню отражает содержащиеся в нем команды. Например, меню «Формат» содержит команды, предназначенные для форматирования формы. Некоторые команды вызывают подменю с более подробными командами. Например, выбор команды «Панели» инструментов из меню «Вид» приводит к появлению подменю с названиями панелей инструментов и командой «Настройка». Эта команда служит для изменения встроенных меню или добавления в строку меню новых команд.
Контекстные меню. Контекстные меню содержат наиболее часто используемые команды и появляются при нажатии правой кнопки мыши или клавиш SHIFT+F10.
1. Команда «Масштаб». Эта команда служит для уменьшения или увеличения изображения выбранной формы. Допускается выбор или ввод коэффициента масштабирования в пределах от 10 до 400 процентов.
Команда доступна только на панели инструментов «UserForm».
2. Команда «Описание» (контекстное меню). Эта команда выводит в окне модуля место описания переменной или процедуры, на имя которой установлен указатель. Если описание находится в библиотеке, на которую имеется ссылка, оно выводится в окне просмотра объектов.
3. Команда «Показать скрытые компоненты» (контекстное меню окна просмотра объектов). Эта команда показывает или скрывает в окне просмотра объектов скрытые компоненты каждого класса. Скрытые компоненты не предназначены для использования в программах и обычно не выводятся в окне просмотра объектов. Они отображаются светло серым текстом.
4. Команда «Настройка» (контекстное меню). Эта команда выводит окно «Настройка» для добавления, удаления, изменения или создания специальных панелей инструментов.
5. Команда «Удалить контрольное значение» (контекстное меню). Эта команда служит для удаления контрольного значения.
6. Команда «Только слово целиком (Поиск)» (контекстное меню окна просмотра объектов). Эта команда позволяет найти текст, в точности совпадающий с введенным в поле поиска в окне просмотра объектов.
7. Команда «Скрыть» (контекстное меню). Команда служит для скрытия активного окна, проекта, папки, модуля или панели элементов управления.
8. Команда «Свернуть родительский объект» (контекстное меню). Команда служит для скрытия элементов родительского объекта в областях Локальные и Контрольные окна отладки. При скрытии элементов списка, значок минус (-) слева от выражения изменяется на плюс (+).
9. Команда «Свойства» (контекстное меню). Эта команда выводит окно «Свойства» для выбранного объекта.
10. Команда «Установить/снять» (контекстное меню). Точка останова. Устанавливает или удаляет точку останова на текущей строке.
11. Закладка. Устанавливает или удаляет закладку на текущей строке в окне модуля.
12. Команда «Переместить» (контекстное меню). В зависимости от того, является ли активным окно или панель элементов, выполняются следующие действия:
- Указатель мыши принимает форму стрелочек и становится возможным перемещение активного окна.
- Появляется окно диалога «Порядок страниц» для изменения порядка страниц в панели элементов.
- Допускается перемещение выбранной страницы в влево или вправо относительно других страниц.
13. Команды «Закомментировать блок» и «Раскомментировать блок». Эти команды служит для добавления или удаления символа комментария, апострофа, в каждую строку выделенного блока текста. Если в момент вызова команд нет выделенного текста, символ комментария добавляется в строку, содержащую указатель.
- Закомментировать блок. Добавляет символ комментария в каждую строку выделенного блока теста.
- Раскомментировать блок Удаляет символ комментария из каждой строки выделенного блока теста.
14. Команда «Свойства» (контекстное меню окна просмотра объектов). Выводит окно диалога «Параметры компонента», в котором задается описание специального компонента, а также присваивается идентификатор экрана справки и имя файла справки. Команда доступна только для элементов, содержащих инструкции Basic.
15. Команда «Справка» (контекстное меню). Выводит разделы справочной системы, относящиеся к выделенному элементу.
16. Команды «Объект» и «Программа» (контекстное меню). Эти команды позволяют выбрать либо окно конструктора, либо окно модуля.
- Объект. Отображает или активизирует выбранный элемент.
- Программа. Отображает или активизирует окно модуля для выделенного объекта.
17. Команда «Закрепление» (контекстное меню). Переключает способность активного окна фиксировать свое положение. Окно считается закрепленным, когда его положение на экране, в окне приложения или в другом закрепленном окне зафиксировано. При перемещении такого окна оно остается «привязанным» к своему положению. Если окно может быть перемещено и оставлено в новом месте - оно не закреплено.
18. Команда «Компоненты группы» (контекстное меню окна просмотра объектов). Переключает режим отображения компонентов класса между списком по алфавиту и списком компонентов, сгруппированных по типам.
19. Команда «Описания» (контекстное меню окна просмотра объектов). Выводит описание выделенного компонента.
20. Команда «Размер» (контекстное меню). Указатель приобретает другую форму и становится возможным изменение размеров активного окна или панели инструментов.
21. Команда «Копировать» (контекстное меню окна просмотра объектов). Эта команда служит для копирования текста для выделенного класса или компонента в буфер обмена.
3.2.3. Подстановочные знаки, используемые при сравнении строк. Встроенное сопоставление с шаблоном предоставляет гибкий инструмент для сравнения строк. В таблице 3.1. показаны подстановочные знаки, используемые с оператором Like, и наборы цифр или строки, которым они соответствуют.
Таблица 3.1.
Подстановочные знаки, используемые с оператором Like
Символ(ы) в шаблоне |
Соответствует в выражении |
|
? |
Любой одиночный символ |
|
* |
Ноль или более символов |
|
# |
Любая одиночная цифра (09) |
|
[списокСимволов] |
Любой одиночный символ, входящий в списокСимволов |
|
[!списокСимволов] |
Любой одиночный символ, не входящий в списокСимволов |
Группа из одного или более символов (списокСимволов), заключенный в скобки ([ ]), служит для сопоставления с любым одиночным символом в выражении и может содержать практически все символы из набора символов ANSI, включая цифры. Особые символы - открывающая скобка ([ ), знак вопроса (?), знак номера (#) и звездочка (*) - могут использоваться непосредственно для сопоставления только когда заключены в скобки. Закрывающая скобка ( ]) внутри группы не может использоваться для этой цели, но может использоваться вне группы, как отдельный символ.
Помимо просто списка символов, заключенных в скобки, списокСимволов может задавать диапазон символов посредством дефиса (-), разделяющего нижнюю и верхнюю границы диапазона. Например, использование в шаблоне [А-Я] приведет к совпадению, если соответствующий символ в выражении содержит любую заглавную букву в диапазоне от А до Я. Несколько диапазонов включаются в скобки без всяких разделителей. Например, [а-яА-Я0-9] сопоставимо с любым буквенно-цифровым символом.
Ниже перечислены другие важные правила сопоставления с шаблоном:
- Восклицательный знак (!) в начале спискаСимволов означает, что сопоставление выполняется, только если символ из выражения не входит в списокСимволов. При использовании вне скобок восклицательный знак сопоставляется только с собой.
- Использование дефиса (-) для сопоставления с собой допускается либо в начале (после восклицательного знака, если таковой присутствует), либо в конце спискаСимволов. В любой другой позиции дефис служит для задания диапазона символов ANSI.
- При указании диапазона символов границы следует задавать в порядке возрастания (А-Я или 0-100). [А-Я] является допустимым шаблоном, а [Я-А] - нет.
- Символьная последовательность [ ] не принимается во внимание; полагается, что это строка нулевой длины ("").
22. Команда «Закрыть» (контекстное меню). Зарывает выбранное окно.
23. Команды «Шаг с заходом», «Шаг с обходом» и «Шаг с выходом» (меню «Отладка»). «Шаг с заходом» выполняет одну инструкцию программы. Если команда «Шаг с заходом» выполняется не в режиме конструктора, на текущей строке выполнения осуществляется переход в режим прерывания. Если инструкция является вызовом процедуры, будет выведена первая инструкция этой процедуры.
Во время разработки эта команда запускает выполнение и входит в режим прерывания, прежде чем выполнится первая строка программы.
При отсутствии текущей точки выполнения команда «Шаг с заходом» не осуществляет никаких действий, пока не будет активирована программа, например выбором документа с помощью мыши.
«Шаг с обходом» похожа на команду «Шаг с заходом». Различие проявляется, только если текущая инструкция содержит вызов процедуры.
Команду «Шаг с обходом» выполняет процедуру за один шаг и затем переходит к следующей инструкции текущей процедуры. Поэтому инструкцией, выводимой на следующем шаге, является следующая инструкция текущей процедуры, независимо от того, содержит ли текущая инструкция вызов процедуры. Команда доступна только в режиме прерывания.
«Шаг с выходом» выполняет оставшиеся строки процедуры, в которой находится текущая точка выполнения. Следующей выводимой инструкцией является инструкция, следующая за вызовом этой процедуры. Выполняются все строки программы между текущей и конечной точками выполнения. Команда доступна только в режиме прерывания.
24. Команда «Выполнить до текущей позиции» (меню «Отладка»). При работе в режиме конструктора команда «Выполнить до текущей позиции» служит для задания инструкции, находящейся ниже по тексту программы, на которой необходимо остановить выполнение. Программа выполняется от текущей до выбранной инструкции в строке индикатора на полях, напротив текущей строки выполнения, появляется индикатор на полях. Эта команда полезна, например, для пропуска больших циклов.
25. Команда «Точка останова» (меню «Отладка»). Команда служит для установки или удаления точки останова в текущей строке программы. Невозможно установить точку останова в строке, содержащей неисполняемые инструкции, например комментарии, инструкции описания или пустые строки.
Строка программы, в которой установлена точка останова, приобретает цвет, заданный на вкладке «Модуль» в окне диалога «Параметры».
26. Команда «Снять все точки останова» (меню «Отладка»). Эта команда удаляет все точки останова из проекта. В этом случае возможно прерывание программы, если установлено контрольное выражение или на вкладке «Общие» окна диалога «Параметры» выбран параметр Останов при любой ошибке. Отменить действие команды «Снять все точки останова» нельзя.
27. Команда «Следующая инструкция» (меню «Отладка»). Устанавливает точку выполнения на выбранную строку программы. Для установки строки, которая будет выполняться после текущей инструкции, следует выбрать нужную строку программы и выполнить команду «Следующая инструкция» или с помощью мыши переместить индикатор текущей выполняемой строки на полях в нужную строку.
С помощью этой команды допускается выбор строки программы, расположенной как до, так и после текущей инструкции. При запуске программы промежуточные строки не выполняются. Эта команда полезна для повторения инструкции внутри текущей процедуры, а также для пропуска нежелательных инструкций. С помощью команды «Следующая инструкция» невозможно установить точку выполнения на инструкцию в другой процедуре.
28. Команда «Отобразить следующую инструкцию» (меню «Отладка»). Выделяет цветом следующую выполняемую инструкцию. Эта команда используется для помещения курсора на строку, которая будет выполняться следующей. Команда доступна только в режиме прерывания.
29. Команда «Добавить контрольное значение» (меню «Отладка»). Эта команда выводит окно диалога «Добавление контрольного значения» для задания контрольного выражения. Это значение может быть любым допустимым в Basic выражением. Контрольные выражения обновляются в окне отладки каждый раз при входе в режим прерывания.
30. Команда «Изменить контрольное значение» (меню «Отладка»). Эта команда выводит окно диалога «Изменение контрольного значения» для редактирования или удаления контрольного выражения. Команда доступна только при установленном контрольном выражении, даже если окно отладки скрыто.
31. Команда «Контрольное значение» (меню «Отладка»). Эта команда выводит окно диалога "Контрольное значение" с текущим значением выделенного выражения. Эта команда служит для просмотра текущего значения переменной, свойства или другого выражения, для которого не задано контрольное выражение. Выделите выражение в окне модуля или в окне отладки и затем выполните команду «Контрольное значение». Для добавления контрольного выражения из окна диалога «Контрольное значение» следует нажать кнопку «Добавить».
3.3 Объектно-ориентированный подход к созданию программ
Есть два принципиально отличающихся подхода к технологии программирования: инженерно-конструкторский и математический. Первый основан на том, что изготовление программного продукта по заданным требованиям суть итеративный процесс последовательной реализации алгоритма решения задачи. Второй подход основан на математическом доказательстве правильности программы и автоматическом (или полуавтоматическом) получении готовой программы по заданным спецификациям.
Объектно-ориентированный подход к технологии программирования - инженерно-конструкторский, в котором внимание концентрируется на самом процессе решения задачи.
Процесс создания программного продукта разбивается на последовательные этапы, выполняемые относительно независимо друг от друга со строго определенными интерфейсами между этапами. В зависимости от сложности создаваемого продукта могут присутствовать не все указанные этапы, могут быть и другие этапы. Однако всегда можно выделить четыре части: анализ (что делать), проектирование (как делать), изготовление (чем делать), использование (что сделано).
Три главные проблемы функционального подхода.
1. Слабая формализация связей между этапами. Специализация этапов приводит к тому, что интерфейсы между ними описываются на различных языках с разной степенью формализации. Слабая формализация уменьшает надежность программы и, что самое неприятное, ее адекватность требованиям заказчика.
2. Отсутствие гибкости. Поэтапная последовательная схема жестко связана с нисходящим способом создания программы. Однако практика показывает, что процесс. создания. хоть сколько-нибудь сложной программы неизбежно оказывается циклическим,. с возвратами для внесения изменений в предыдущие этапы. Такие возвраты связаны с большими затратами, поскольку вовлекают этапы с разными интерфейсами и разными исполнителями.
3. Плохое использование результатов предыдущих разработок. Нисходящее проектирование вместе со слабой формализацией языков спецификаций приводят к тому, что результаты проектирования, как и готовые программы и их части, практически невозможно использовать для других целей. Исключение составляют библиотеки языков программирования на этапе кодирования.
Объектно-ориентированный язык программирования основывается на понятии объекта как замкнутой независимой сущности, взаимодействующей с внешним миром через строго определенный интерфейс в виде перечня сообщений, которые объект может принимать. Объект обладает свойствами, поведением и состоянием. Объекты с одинаковыми свойствами и поведением объединяются в классы. Программа на объектно-ориентированном языке представляет собой совокупность описаний классов. Классы, в свою очередь, представляют собой описания свойств и поведения составляющих их объектов. Свойства представляются другими, как правило, более простыми объектами. Поведение описывается обменивающимися сообщениями объектами.
Объектно-ориентированным языкам присущи следующие характеристики:
- абстрактные типы данных;
- скрытие реализации внешнего интерфейса (инкапсуляция);
- наследование свойств и поведения объектов;
- динамическое связывание имени со значением;
- полиморфизм имен сообщений;
- автоматическое управление памятью.
Чисто объектно-ориентированные языки, такие как Smalltalk [4], Eiffel [5], обладают всеми перечисленными здесь свойствами. Широко распространены объектно-ориентированные расширения традиционных языков (Си++ [6],. Турбо-Паскаль [7]), в которых присутствуют не все объектно-ориентированные черты.
Объектно-ориентированная база классов представляет собой иерархический набор (библиотеку) классов - строительных блоков для сборки новых уровней создаваемого программного продукта. Здесь хранятся классы «джентльменского набора» библиотек языков программирования, а также классы, описывающие понятия прикладных предметных областей.
Классы представляют собой накопленные знания о ранее изготовленных продуктах, следовательно здесь вполне допустимо употребление термина «база знаний». База классов должна обеспечивать легкий поиск классов, их изучение, модификацию, включение новых классов. Язык и база классов объединяются в интегрированную объектно-ориентированную среду программирования (ООСП), в которой все средства поддержки процесса разработки программ написаны на данном языке и входят на равных правах в состав базы классов. Типичными примерами таких средств являются графический многооконный интерфейс с пользователем, иерархические меню, компилятор, интерпретатор, отладчик, текстовый редактор.
Разработка программ по объектно-ориентированной технологии сводится к созданию новых классов, их тестированию и включению в состав ООСП. Пользователь или заказчик на основе анализа реального объекта предметной области формулирует общие требования к разрабатываемой прикладной программе или системе, которая будет моделировать поведение реального объекта. Пользователь перечисляет участвующие в задаче объекты, их основные свойства и поведение. Поведение объекта описывается с двух сторон - это действия, выполняемые объектом для обслуживания запросов от других объектов, и действия других объектов, требуемые ему самому. Все объекты задачи, их свойства и поведение (выполняемые и требуемые действия) обозначаются именами и при необходимости сопровождаются комментариями.
Здесь пользователь не связывается формальным синтаксисом объектно-ориентированного языка, но только простой семантикой: «каждому объекту соответствуют его свойства и поведение».
На этапе анализа для каждого объекта задачи отыскиваются конкретные объекты, выполняющие требуемые для него действия. Здесь же возникает необходимость в упорядочении действий по времени, т.е. в описании процесса, реализующего поведение объекта.
Еще один важный вопрос, решаемый на этапе анализа программы - классификация объектов. Все объекты с одинаковыми свойствами и поведением объединяются в один класс, становясь при этом экземплярами последнего. Класс также является объектом с собственными свойствами и поведением. Важнейшим свойством класса является описание структуры его экземпляров, важнейшим элементом поведения - способность порождать новые экземпляры.
Некоторые классы оказываются близкими по своим свойствам другим классам. В этом случае удобно воспользоваться принципом наследования, когда при описании нового класса указывается один или несколько классов - предков, свойства которых передаются по наследству данному классу. Эти свойства явно описывать в новом классе нет необходимости. Новые свойства, которыми класс будет отличаться от своих предков, а также измененные старые должны быть заданы явно.
Класс может иметь как предков, так и потомков, поэтому всякой программе соответствует иерархическая древовидная или сетевая структура классов. Эта структура является неотъемлемой частью ООСП.
Классификация объектов необходима, во-первых, для лучшего понимания процесса решения задачи и, во-вторых, для более эффективного выполнения программы решения задачи.
Применение на этапе анализа единого формализованного языка взаимодействия объектов, того же самого, на котором в конечном счете будет выражена программа, позволяет сделать спецификации процесса решения задачи выполняемыми.
Разработка и кодирование в объектно-ориентированной технологии представляют собой процесс последовательного отображения классов решаемой прикладной задачи на встроенный базовый набор классов ООСП. Этот процесс имеет двунаправленный характер с преобладанием восходящего направления, т.е. сборки новых классов из готовых библиотечных классов.
4. ОПИСАНИЕ ПРОГРАММНОГО ПРОДУКТА «АНАЛИЗ БАНКОВСКИХ КРЕДИТОВ»
4.1 Постановка задачи
Программа минимизирует расходы заемщика при кредитовании. Входные данные:
- доход заемщика,
- стоимость квартиры,
- сумма свободных денег заемщика для оплаты оформления кредита и первоначального взноса.
Минимизируется формула затрат заемщика по 2 переменным (срок кредита и процентная ставка).
В разработанном программном продукте ведется база данных по банкам. В информацию по банкам включается стоимость оформления кредита и процентным ставкам.
На основе входных данных программа выдает:
- предполагаемый банк, где расходы будут минимальны,
- размер ежемесячного платежа,
- сумму первоначального взноса,
- сумму процентов по кредиту и расходов по оформлению кредита,
- срок кредита.
В программе присутствует возможность удаления, добавления и редактирования информации о банках.
4.2 Руководство пользователя
При запуске разработанного программного продукта «Анализ банковских кредитов», на экране отображается окно, представленное на рис.4.1. Главное меню содержит следующие команды: «Файл», «Данные», «Расчет», «Настройки», «Вид», «Помощь».
Рис.4.1.
В меню «Файл» присутствует такая команд как «Выход», которая позволяет выйти из программного продукта.
В меню «Данные» находятся команды по работе с базой данных банков: «Добавить», «Редактировать», «Удалить» и «Параметры платежей».
Для добавления нового банка необходимо выбрать команду «Добавить» в меню «Данные», после чего на экране появится окно, представленное на рис.4.2. В данной пустой форме необходимо заполнить поля: название банка, телефон, адрес, максимально возможная сумма кредита, процентная ставка по кредиту, сроки взятия кредита (минимальное количество месяцев и максимальное количество месяцев), минимально и максимально возможная сумма кредита, а также любая краткая информация.
При внесении информации в базу данных она автоматически сохраняется в файле credit.mdb, находящемся в каталоге с программным продуктом «Анализ банковских кредитов».
Рис.4.2.
Для редактирования информации необходимо в меню «Данные» выбрать команду «Редактировать» (Рис.4.3.). После чего на экране отобразится окно редактирования информации о выбранном банке.
Рис.4.3.
Для удаления выбранного банка необходимо в меню «Данные» выбрать команду «Удалить».
Для просмотра параметра платежей по выбранному банку необходимо выбрать команду «Параметры платежей» меню «Данные». (рис.4.4.) При необходимости эти данные можно изменить, оперируя кнопками на панели инструментов.
Рис.4.4.
Для поиска банка в базе данных необходимо в строке поиска (рис.4.5) ввести название банка. Поиск ведется, начиная с первой введенной буквы.
Рис.4.5.
Для проведения расчета банковских процентов, необходимо в меню «Расчет» выбрать команду «Расчет» (рис.4.6). В качестве параметров для анализа выплат по кредиту вводится:
- рыночная стоимость жилья;
- ежемесячный доход;
- имеющаяся сумма.
Для проведения расчетов, необходимо нажать кнопку «Расчет», для закрытия окна, без сохранения необходимо нажать кнопку «Close», для передачи отчета в Microsoft Word, необходимо нажать кнопку «В word» (рис.4.7).
Рис.4.6
Рис.4.7.
Для изменения шрифта необходимо в меню «Настройки» выбрать команду «Шрифт» (рис.4.8) и выбрать необходимый для отображения информации шрифт, его размер и начертание.
Рис.4.8.
Для отображения/сокрытия дополнительной информации необходимо в меню «Вид» выбрать команду «Дополнительная информация».
В меню «Помощь» можно просмотреть информацию о разработчике данной программы (Рис.4.9).
Рис.4.9.
Данный программный продукт «Анализ банковских кредитов» можно использовать в любой организации, а также его можно применять для использования в личных целях.
Заключение
Кредит выполняет определенные функции, такие как регулирование объема совокупного денежного оборота, перераспределение денежных средств на условиях их последующего возврата, аккумуляция временно свободных денежных средств. Все эти функции отличаются друг от друга составом участников, объектом ссуд, динамикой, величиной процента, сферой функционирования и т.д.
Структура кредита включает кредитора, заемщика и ссуженную стоимость, поэтому формы кредита можно рассматривать в зависимости от характера ссуженной стоимости; кредитора и заемщика; целевых потребностей заемщика.
В зависимости от целевых потребностей заемщика выделяются две формы: производительная и потребительская формы кредита.
Чистых форм кредита, изолированных друг от друга, не существует. Банковский кредит, например, хотя и предоставляется в денежной форме, однако на практике его погашение производится в форме товаров и т.п.
В этой связи появляются и развиваются новые разновидности форм кредита. Новыми формами кредитных отношений, которые успешно применяются в цивилизованных странах, являются лизинг-кредит, факторинг, форфейтинг, ипотека, овердрафт и др.
В данной дипломной работе рассмотрены аспекты построения автоматизированных банковских систем, формы и виды кредитов, проведен анализ объектно-ориентированных языков программирования, а также разработан программный продукт расчета кредитов.
Список использованной литературы
1. Банковское дело. Под редакцией О.И.Лаврушина. - М.: Финансы и статистика, 2003.
2. «Деньги. Кредит. Банки». Под редакцией О.И. Лаврушина. - М.: Финансы и статистика, 2003.
3. Курс экономической теории. Учебное пособие. / Под ред. проф. Чепурина М.Н., проф. Киселевой Е.А. - Киров.: Издательство «АСА», 2001.
4. Лаврушин О.И. Кредит/Российская банковская энциклопедия/ Москва, 1996.
5. Экономика. Учебное пособие. /Под ред. Проф. А.С.Булатова. - М.: Юрист, 2001.
6. Экономическая теория. Учебное пособие. /Под ред. В.Д,Камаева. - М.: Гуманит. Изд.центр ВЛАДОС, 2001.
7. Фокс Дж. Программное обеспечение и его разработка. М.:Мир, 1985. - 368 с.
8. Лисков Б., Гатэг Дж. Использование абстракций и спецификаций при разработке программ: Пер. с англ. - М.: Мир, 1989. - 424 с.
9. Иванов А.Г., Карпова А.В., Семик В.П., Филинов Ю.Е. Объектно-ориентированная среда программирования. Системы и средства информатики. Вып.2. М.: Наука, 1991.
10. Программирование. Специальный выпуск по объектно-ориентированному программированию. N 6, 1990.
11. Карпов Б.А. Visual Basic специальный справочник - Питер, 2000.
<VisualStudioProject>
<CSHARP ProjectType = "Local" ProductVersion = "7.10.3077" SchemaVersion = "2.0"
ProjectGuid = "{0C3068AF-4B66-4D93-B80D-E95692337C89}" >
<Build> <Settings ApplicationIcon = "App.ico" AssemblyKeyContainerName = ""
AssemblyName = "Organaizer" AssemblyOriginatorKeyFile = ""
DefaultClientScript = "JScript" DefaultHTMLPageLayout = "Grid"
DefaultTargetSchema = "IE50" DelaySign = "false"
OutputType = "WinExe" PreBuildEvent = "" PostBuildEvent = ""
RootNamespace = "Organaizer" RunPostBuildEvent = "OnBuildSuccess" StartupObject = "" >
<Config Name = "Debug" AllowUnsafeBlocks = "false" BaseAddress = "285212672"
CheckForOverflowUnderflow = "false" ConfigurationOverrideFile = ""
DefineConstants = "DEBUG;TRACE" DocumentationFile = "" DebugSymbols = "true"
FileAlignment = "4096" IncrementalBuild = "false" NoStdLib = "false" NoWarn = ""
Optimize = "false" OutputPath = "bin\Debug\" RegisterForComInterop = "false"
RemoveIntegerChecks = "false" TreatWarningsAsErrors = "false" WarningLevel = "4" />
<Config Name = "Release" AllowUnsafeBlocks = "false" BaseAddress = "285212672"
CheckForOverflowUnderflow = "false" ConfigurationOverrideFile = ""
DefineConstants = "TRACE" DocumentationFile = "" DebugSymbols = "false"
FileAlignment = "4096" IncrementalBuild = "false" NoStdLib = "false"
NoWarn = "" Optimize = "true" OutputPath = "bin\Release\" RegisterForComInterop = "false"
RemoveIntegerChecks = "false" TreatWarningsAsErrors = "false" WarningLevel = "4" />
</Settings> <References> <Reference Name = "System" AssemblyName = "System"
HintPath = "C:\WINNT\Microsoft.NET\Framework\v1.1.4322\System.dll" />
<Reference Name = "System.Data" AssemblyName = "System.Data"
HintPath = "C:\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Data.dll" />
<Reference Name = "System.Drawing" AssemblyName = "System.Drawing"
HintPath = "C:\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Drawing.dll" />
<Reference Name = "System.Windows.Forms" AssemblyName = "System.Windows.Forms"
HintPath = "C:\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Windows.Forms.dll" />
<Reference Name = "System.XML" AssemblyName = "System.Xml"
HintPath = "C:\WINNT\Microsoft.NET\Framework\v1.1.4322\System.XML.dll" />
</References> </Build> <Files> <Include> <File RelPath = "AddContact.cs"
SubType = "Form" BuildAction = "Compile" />
<File RelPath = "AddContact.resx" DependentUpon = "AddContact.cs"
BuildAction = "EmbeddedResource" />
<File RelPath = "AddSchedule.cs" SubType = "Form" BuildAction = "Compile" />
<File RelPath = "AddSchedule.resx" DependentUpon = "AddSchedule.cs"
BuildAction = "EmbeddedResource" />
<File RelPath = "App.ico" BuildAction = "Content" />
<File RelPath = "AssemblyInfo.cs" SubType = "Code" BuildAction = "Compile" />
<File RelPath = "Contact.cs" SubType = "Code" BuildAction = "Compile" />
<File RelPath = "EditRemoveContact.cs" SubType = "Form" BuildAction = "Compile" />
<File RelPath = "EditRemoveContact.resx" DependentUpon = "EditRemoveContact.cs"
BuildAction = "EmbeddedResource" /> <File RelPath = "EditRemoveSchedule.cs"
SubType = "Form" BuildAction = "Compile" /> <File RelPath = "EditRemoveSchedule.resx"
DependentUpon = "EditRemoveSchedule.cs" BuildAction = "EmbeddedResource" />
<File RelPath = "MISC01.ICO" BuildAction = "Content" />
<File RelPath = "Organaizer.cs" SubType = "Form" BuildAction = "Compile" />
<File RelPath = "Organaizer.resx" DependentUpon = "Organaizer.cs"
BuildAction = "EmbeddedResource" />
<File RelPath = "PaintedContact.cs" SubType = "UserControl" BuildAction = "Compile" />
<File RelPath = "PaintedContact.resx" DependentUpon = "PaintedContact.cs"
BuildAction = "EmbeddedResource" />
<File RelPath = "PaintedHour.cs" SubType = "UserControl" BuildAction = "Compile" />
<File RelPath = "PaintedHour.resx" DependentUpon = "PaintedHour.cs"
BuildAction = "EmbeddedResource" />
Подобные документы
Требования к функциям и задачам, выполняемым системой "Подбор кредита ОАО "Россельхозбанк". Проектирование архитектуры программного продукта. Структурная схема программного продукта. Описание компонент программного обеспечения. План менеджмента проекта.
курсовая работа [684,0 K], добавлен 03.05.2015Особенности алгоритмов, критерии качества. Создание и применение программного продукта на языке Delphi. Тип операционной системы. Внутренняя структура программного продукта. Руководство пользователя и программиста, расчет себестоимости и цены программы.
дипломная работа [1,5 M], добавлен 12.06.2009Сущность и история развития объектно-ориентированного программирования. Наследование как важнейшее свойство объекта. Экземпляры объектных типов. Поля объектов, методы, полиморфизм. Производительность объектных программ. Пример программного продукта.
курсовая работа [33,3 K], добавлен 25.03.2012Исследование принципов объектно-ориентированного программирования на базе языка программирования С++. Разработка программного комплекса для ведения учёта памятников города. Описание процессов сортировки, поиска, формирования статистики по памятникам.
курсовая работа [782,4 K], добавлен 26.05.2014Обоснование выбора языка программирования. Анализ входных и выходных документов. Логическая структура базы данных. Разработка алгоритма работы программы. Написание программного кода. Тестирование программного продукта. Стоимость программного продукта.
дипломная работа [1008,9 K], добавлен 13.10.2013Характеристика программного продукта и стадий разработки. Расчет затрат на разработку и договорной цены, эксплуатационных расходов, связанных с использованием нового программного продукта. Оценка конкурентоспособности. Изучение, оценка рыночного спроса.
курсовая работа [139,0 K], добавлен 22.09.2008Среда программирования Delphi: общая характеристика и оценка функциональных особенностей, внутренняя структура возможности и сферы практического использования. Принципы программирования на данном языке, обзор используемых компонентов, оценка результатов.
курсовая работа [33,7 K], добавлен 12.01.2015Создание программного продукта, представляющего моделирование на компьютере логнормального распределения, определение вероятностной оценки стоимости актива. Описание работы программного продукта. Работа с графиками, таблицами, математическими функциями.
курсовая работа [742,7 K], добавлен 08.01.2009Общая характеристика, цели и функции создания, модульная структура и взаимосвязь элементов необходимого программного продукта, предъявляемые к нему требования. Комплект поставки и порядок инсталляции, запуск разработанного программного продукта.
курсовая работа [32,0 K], добавлен 11.11.2013Описание разработки программного продукта с использованием объектно-ориентированного языка программирования Delphi. Принципы рейтинговой оценки знаний Костанайского социально–технического университета. Описание внешнего вида программы, обработка событий.
дипломная работа [2,4 M], добавлен 03.07.2015