Скачать 109.62 Kb.
|
Рецензия Демонстрационная программа Разработать программу, демонстрирующую возможность подсчета количества цифр в строке и вычисления факториала. РефератКурсовая работа. Пояснительная записка: 13 с., 5 рис., 0 табл., 1 прил., 4 источника. ЦИФРОВОЙ СЧЕТЧИК, ФАКТОРИАЛ Разработана программа, позволяющая подсчитывать количество цифр в строке и вычислять факториал. Язык программирования: С#, .NET Framework 4.0. Операционная система: Microsoft Windows XP, 7. СодержаниеРеферат 4 Содержание 5 Обоснование и выбор методов решения 5 Описание программы 6 Общие сведения 6 Функциональное назначение 7 Описание логической структуры программы 7 Структура файлов 8 Структура классов 8 Методы и поля 9 Руководство пользователя 9 Список используемых источников 10 ПРИЛОЖЕНИЕ 11 Обоснование и выбор методов решенияРазвитие современных информационных систем неразрывно связано с оценкой качества информации. Кроме того, в основе многих прикладных моделей лежат вычислительные алгоритмы. Целью работы является разработка пользовательского приложения для подсчета цифр в строке и вычисления факториалов в заданном диапазоне. Для решения поставленной задачи спроектировано пользовательское приложение, обеспечивающее ввод и вывод данных. Для вычисления факториала разработан метод на основе рекурсивного алгоритма: n! = n*(n-1)! Рекурсия является одним из наиболее мощных средств в арсенале программиста. Рекурсивные структуры данных и рекурсивные методы широко используются при построении программных систем. Рекурсивные методы, как правило, наиболее всего удобны при работе с рекурсивными структурами данных - списками, деревьями. Рекурсивные методы обхода деревьев служат классическим примером. Метод P (процедура или функция) называется рекурсивным, если при выполнении тела метода происходит вызов самого себя (метода P). Для того чтобы рекурсия не приводила к зацикливанию, в тело рекурсивного метода всегда встраивается оператор выбора, одна из ветвей которого не содержит рекурсивных вызовов. Если в теле рекурсивного метода рекурсивный вызов встречается только один раз, значит, что рекурсию можно заменить обычным циклом, что приводит к более эффективной программе, поскольку реализация рекурсии требует временных затрат и работы со стековой памятью. Подсчет количества цифр осуществляется посимвольным просмотром строки. Чтобы определить, является ли текущий символ десятичной цифрой, используется статический метод IsDigit класса Char . С точки зрения регулярного программирования строковый тип данных string относится к числу самых важных в С#. Этот тип определяет и поддерживает символьные строки. В целом ряде других языков программирования строка представляет собой массив символов. А в С# строки являются объектами. Следовательно, тип string относится к числу ссылочных. В C# есть символьный класс char, основанный на классе System.Char и использующий двухбайтную кодировку Unicode представления символов. Для этого типа в языке определены символьные константы - символьные литералы. Константу можно задавать:
Большинство статических методов перегружены. Они могут применяться как к отдельному символу, так и к строке, для которой указывается номер символа для применения метода. В языке C# определен класс char[], и его можно использовать для представления строк постоянной длины, как это делается в С++. Более того, поскольку массивы в C# динамические, расширяется класс задач, в которых можно использовать массивы символов для представления строк. Описание программыОбщие сведенияПриложение, исполняемый файл. Установка не требуется. Необходимые требования: MS Windows XP/Vista/7. Язык программирования: C#. Платформа Microsoft .Net Framework 4.0. Среда разработки: Microsoft Visual С# 2010. Объем программы: 8,7 КБ (исполняемый файл и библиотека). Объем проекта: 336 КБ (вместе с исходным кодом). Исходный код (классы и код форм): 126 строк. Функциональное назначениеПриложение обеспечивает подсчет количества цифр в строке и вычисление факториала на основе введенной пользователем информации. Описание логической структуры программыОбщая схема работы программы представлена на рис. 1. Рис 1. Общая схема работы программы. На рис. 2 приведен основной алгоритм работы по рекурсивному вычислению факториала числа. Рис. 2. Блок-схема рекурсивного алгоритма по вычислению факториала. Структура файловРазработанное решение реализовано в двух проектах (см. рис. 3): Functions и WindowsTest. Проект Functions реализует библиотеку с основными функциями программы. Файл DigitCounter.cs содержит классы Count и DigitCount, файл Factorial.cs содержит интерфейс ICalculable и класс Factorial. Проект WindowsTest представляет собой приложение Windows Forms, обеспечивающее пользовательский интерфейс к разработанным классам. Содержит одну форму (Form1.cs). Рис 3. Файловая структура приложения. Структура классовЯдро приложения состоит из трех классов (см. рис. 4). Класс DigitCount предназначен для подсчета цифр в строке, наследует абстрактный класс Count. Класс Factorial предназначен для вычисления факториала, наследует интерфейс ICalculable. Рис 4. Диаграмма классов приложения. Методы и поляКласс Form1 (Form1.cs) – класс реализации формы пользовательского приложения.
Класс Count () – абстрактный класс счетчика.
Класс DigitCount : Count – класс счетчика цифр в строке.
Интерфейс ICalculabe – интерфейс вычисления значений математических функций.
Класс Factorial : ICalculabe – класс расчета факториала.
Руководство пользователяПриложение позволяет пользователю рассчитывать число цифр в строке и вычислять факториал. Основная форма приложения представлена на рис. 5. Рис 5. Интерфейс пользовательского приложения. Для того чтобы определить число цифр в строке необходимо ввести строку в поле Введите строку и нажать кнопку Найти цифры. В поле Результат запишется искомое число цифр. Например, для строки «2012 год» результатом будет «Цифр в строке:4». Для того чтобы вычислить факториал числа необходимо ввести это число в поле Введите число и нажать кнопку Факториал. В поле Результат запишется искомое значение факториала. Например, для значения «10» результатом будет «10!=3628800». В процессе работы приложения могут возникнуть следующие сообщения:
Список используемых источников
ПРИЛОЖЕНИЕЛистинг файла DigitCounter.cs //Copyright (C) Microsoft Corporation. All rights reserved. // DigitCounter.cs // compile with: /target:library using System; namespace Functions { public abstract class Count { public abstract int Increase(); } public class DigitCount:Count { int cnt; public override int Increase() { return ++cnt; } /// /// Статический метод вычисления числа цифр для строкового параметра /// /// Исходная строка /// public static int NumberOfDigits(string theString) { int count = 0; for ( int i = 0; i < theString.Length; i++ ) { if ( Char.IsDigit(theString[i]) ) { count++; } } return count; } } } Листинг файла Factorial.cs //Copyright (C) Microsoft Corporation. All rights reserved. // Factorial.cs // compile with: /target:library using System; namespace Functions { interface ICalculable { int x { get; set; } } public class Factorial:ICalculable { private int _x; private int _y; public int x { get { return _x; } set { _x = value; } } /// /// Статический метод вычисления факториала для целочисленного входного параметра /// /// Целое число (от 0 до 16), факториал которого необходимо рассчитать. /// public static int Calc(int i) { return((i <= 1) ? 1 : (i * Calc(i-1))); } } } Листинг файла Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Functions; namespace WindowsTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void bCountDigit_Click(object sender, EventArgs e) { //Вызов статического метода NumberOfDigits для класса Functions.DigitCount textBox3.Text="Цифр в строке:"+DigitCount.NumberOfDigits(textBox1.Text); } private void bFactorial_Click(object sender, EventArgs e) { try { int x=Convert.ToInt32(textBox2.Text); if ((x >= 0) && (x <=16)) { //Вызов статического метода Calc для класса Functions.Factorial textBox3.Text = textBox2.Text + "!=" + Factorial.Calc(x); } else { MessageBox.Show("Значение х должно быть целое положительное от 0 до 16."); } } catch (Exception) { MessageBox.Show("Неверные данные."); } } } } |
Курсовая работа по дисциплине Электромагнитная совместимость систем... Курсовая работа состоит из 20 с, в которых содержаться: 3 рисунка, 3 таблицы, 6 формул и 4 ссылки на литературу | Курсовая работа по дисциплине «Информатика и программирование» Кафедра «Программное обеспечение вычислительной техники и автоматизированных систем» | ||
Курсовая работа на тему : Формирование рынка ценных бумаг в Украине Курсовая работа содержит 38 листов, 2 рисунка, 2 таблицы и было использовано 11 источников | Курсовая работа по дисциплине «Предпринимательское право» Курсовая работа имеет целью систематизацию, закрепление и расширение теоретических знаний, углубленное изучение и решение студентом... | ||
Курсовая работа по дисциплине на тему: «Мониторы» Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования | Курсовая работа на тему: «Совершенствование системы мотивации как... | ||
Методические указания для выполнения курсовой работы по дисциплине... Курсовая работа согласно учебному плану для специальности 170500 выполняется студентами 2-го курса на 3-ем семестре и составляет... | Курсовая работа на тему «Открытый урок» Данная курсовая работа выполнена для того, чтобы учителя русского языка и литературы могли использовать разработанные мною уроки... | ||
Курсовая работа на тему: «Поисковые системы» по дисциплине "организация ЭВМ " Учебно-методический комплекс «Таможенное право» составлен в соответствии с требованиями Государственного образовательного стандарта... | Курсовая работа выполняется на основании 'Задания на курсовую работу'... Целью курсовой работы является закрепление практических навыков самостоятельной постановки и решения задачи обработки данных с помощью... | ||
Курсовая работа По дисциплине «Бухгалтерский управленческий учет» На тему: «Разработка системы управленческого учета на примере предприятия ООО «Столичная кондитерская фабрика»» | Курсовая работа по дисциплине «Экономическая теория» на тему «Государственное... Государственное образовательное учреждение высшего профессионального образования | ||
Курсовая работа на тему: Информационные технологии управления муниципальной недвижимостью Выписка из образовательного стандарта по учебной дисциплине «Экономическая теория» для студентов, обучающихся по специальностям | Курсовая работа По дисциплине «Политэкономия» На тему «Денежная система и денежное обращение» ... | ||
Курсовая работа по дисциплине: «Теория проектирования автоматизированных станочных комплексов» На тему: «Проект автоматической системы технологического оборудования для обработки основания гидрораспределителя очистного комбайна... | Курсовая работа по дисциплине: «Экономическая теория» на тему: «Государственное... Роль государственного регулирования в современной экономике. Структура финансового рынка 3 |