Главная страница
Навигация по странице:

  • КУРСОВОЙ ПРОЕКТ вариант №1«Приложение Windows Forms для расчета определенного интеграла функции одной переменной с заданной точностью»

  • Введение

  • Цель курсового проекта

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

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

  • Курсовая работа Принципы построения программного обеспечения АСУ ТП Приложение Windows Forms для расчета определенного интеграла. Документ Microsoft Word. Курсовой проект вариант 1 Приложение Windows Forms для расчета определенного интеграла функции одной переменной с заданной точностью


    Скачать 349.46 Kb.
    НазваниеКурсовой проект вариант 1 Приложение Windows Forms для расчета определенного интеграла функции одной переменной с заданной точностью
    АнкорКурсовая работа Принципы построения программного обеспечения АСУ ТП Приложение Windows Forms для расчета определенного интеграла
    Дата06.03.2023
    Размер349.46 Kb.
    Формат файлаdocx
    Имя файлаДокумент Microsoft Word.docx
    ТипКурсовой проект
    #972545

    Министерство цифрового развития, связи и массовых коммуникаций

    Российской Федерации

    Федеральное государственное образовательное бюджетное учреждение

    высшего профессионального образования

    «Санкт–Петербургский государственный университет телекоммуникаций

    им. проф. М.А. Бонч-Бруевича»
    Кафедра «Интеллектуальные системы

    автоматизации и управления»
    Дисциплина «Принципы построения программного обеспечения АСУ ТП»

    КУРСОВОЙ ПРОЕКТ

    вариант №1

    «Приложение Windows Forms для расчета определенного интеграла функции одной переменной с заданной точностью»

    Выполнила: студентка группы ИСТ-042

    « » 2022г.

    Л.В.Абольянина
    Принял: доцент кафедры, к.т.н.

    « » 2022г.

    В.А.Чебыкин
    Санкт-Петербург

    2022

    Содержание




    Введение 3

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

    1.1 «Program.cs» 4

    1.2 «Func.cs» 4

    1.3 «Form1.cs» 5

    1.4 Скриншоты работы программы 7

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

    2.1«Program.cs» 9

    2.2 «Func.cs» 9

    2.3 «Form1.cs» 10

    Заключение 12





    Введение


    C# - объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров компании Microsoft под руководством Андерса Хейлсберга и Скотта Вильтаумота как язык разработки приложений для платформы Microsoft .NET Framework и .NET Core.

    C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, переменные, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.

    Переняв многое от своих предшественников — языков C++, Delphi, Модула, Smalltalk и, в особенности, Java — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем.

    Согласно рейтингу TIOBE, С# входит в 5 самых популярных языков и удерживает эту позицию уже несколько лет. Недавние изменения и выход .NET 6 в ноябре 2021 года выглядят весьма многообещающе для общества разработки на С#.

    Цель курсового проекта

    Создать приложение Windows Forms, рассчитывающее значение определенного интеграла функции одной переменной с заданными пользователями параметрами: начало интегрирования, конец интегрирования, необходимая точность. В выпадающем списке пользователь выбирает нужную функцию, после нажатия на кнопку «рассчитать» ответ выводится на экран.
    1. Листинг программы

    1.1 «Program.cs»


    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Threading.Tasks;

    using System.Windows.Forms;
    namespace Curs

    {

    static class Program

    {

    ///

    /// Главная точка входа для приложения.

    ///


    [STAThread]

    static void Main()

    {

    Application.EnableVisualStyles();

    Application.SetCompatibleTextRenderingDefault(false);

    Application.Run(new Form1());

    }

    }

    }

    1.2 «Func.cs»


    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;
    namespace Curs

    {

    public delegate double Function(double x);

    static class Func

    {

    public static double f1(double x)

    {

    return Math.Cos(x);

    }

    public static double f2(double x)

    {

    return Math.Sin(x);

    }

    public static double f3(double x)

    {

    return Math.Sqrt(x);

    }

    public static double f4(double x)

    {

    return Math.Log(x);

    }

    public static double f5(double x)

    {

    return Math.Exp(x);

    }

    public double Summ (Function f, double a, double b, double eps)

    {
    int n = 2;

    double sum1, sum2 = 0;

    do

    {

    sum1 = sum2;

    sum2 = 0;

    double h = (b - a) / n;

    for (int i = 0; i < n; i++)

    {

    sum2 += h * f(a + i * h);

    }

    n *= 2;

    }

    while (Math.Abs(sum1 - sum2) > eps);

    return sum2;

    }

    }

    }

    1.3 «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.Threading.Tasks;

    using System.Windows.Forms;
    namespace Curs

    {

    public partial class Form1 : Form

    {

    public Form1()

    {

    InitializeComponent();

    }

    private void button1_Click(object sender, EventArgs e)

    {

    Rasc();

    }


    public void Rasc()

    {

    try

    {

    double a = Convert.ToDouble(textBox1.Text);

    double b = Convert.ToDouble(textBox2.Text);

    double eps = Convert.ToDouble(textBox4.Text);

    double result;

    switch (comboBox1.SelectedIndex)

    {

    case 0:

    result = Func.Summ(Func.f1, a, b, eps);

    textBox3.Text = result.ToString();

    break;

    case 1:

    result = Func.Summ(Func.f2, a, b, eps);

    textBox3.Text = result.ToString();

    break;

    case 2:

    result = Func.Summ(Func.f3, a, b, eps);

    textBox3.Text = result.ToString();

    break;

    case 3:

    result = Func.Summ(Func.f4, a, b, eps);

    textBox3.Text = result.ToString();

    break;

    case 4:

    result = Func.Summ(Func.f5, a, b, eps);

    textBox3.Text = result.ToString();

    break;

    default:

    MessageBox.Show("Ошибка!");

    break;

    }

    }

    catch

    {

    MessageBox.Show("Возникло исключение. " +

    "Проверьте корректность введенных данных");

    textBox3.Text = "ошибка";

    }

    }

    private void textBox4_TextChanged(object sender, EventArgs e)

    {

    }

    }

    }

    1

    .4 Скриншоты работы программы
    Рис. 1 «Корректная работа программы»

    Рис. 2 «Проверка правильности вычислений»

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

    Еще несколько примеров:



    Рис. 3 «Проверка работы программы»



    Рис. 4 «Проверка работы программы(2)»


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

    Рис. 5 «Поведение программы при ошибке»

    То же самое происходит, если какое-либо поле не заполнено или не выбрана функция для расчета.
    1. Описание программы

      1. «Program.cs»


    Первая строчка кода в функции Main: Application.EnableVisualStyles(). Этот метод включает визуальные стили для приложения. Визуальные стили — это цвета, шрифты и другие визуальные элементы, которые формируют тему операционной системы. Элементы управления будут рисоваться с визуальными стилями, если элемент управления и операционная система его поддерживают. Чтобы иметь результат, EnableVisualStyles() он должен вызываться перед созданием элементов управления в приложении; как правило, EnableVisualStyles() это первая строка в Main функции.

    Вторая строчка кода в функции Main: Application.SetCompatibleTextRenderingDefault(false). UseCompatibleTextRenderingсвойство предназначено для обеспечения совместимости элементов управления Windows Forms, которые отображают текст с помощью TextRenderer класса. В большинстве случаев рекомендуется оставлять булевское значение false.

    Третья строчка кода в функции Main содержит метод Application.Run, создающий новую Form1. Она будет рассмотрена в конце описания программы.

    2.2 «Func.cs»


    Создаем делегат с сигнатурой double Function(double x). Делегат — это тип, который представляет ссылки на методы с определенным списком параметров и типом возвращаемого значения. При создании экземпляра делегата этот экземпляр можно связать с любым методом с совместимой сигнатурой и типом возвращаемого значения. Метод можно вызвать (активировать) с помощью экземпляра делегата.

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

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

    Далее следует метод Summ, который отвечает за расчет интеграла - он принимает на вход четыре аргумента (объявленный ранее делегат, значение начала интегрирования типа double, значение конца интегрирования типа double, и значение точности интегрирования типа double). В теле метода прописаны формулы для вычисления определенного интеграла одной переменной с заданной точностью: количество отрезков, составляющих прямоугольники, будет увеличиваться до тех пор, пока значение интеграла не достигнет определенной точности. Изначально отрезка всего два. Конструкция do while означает, что первый прогон метода пройдет в любом случае, а проверка условия будет осуществляться уже после него.

    Метод Summ возвращает значение типа double.

    2.3 «Form1.cs»


    При нажатии на кнопку button1 вызывается функция Rasc, про которую будет сказано далее.

    В ней конвертируются значения (в тип double), записанные пользователем в textBox1, textBox2, textBox4, и присваиваются соответственно переменным a, b, eps. Поскольку нам нужно учитывать значения из текстбокса, создаем свитч по индексу выбранного в comboBox1 значения, и вызываем метод Summ с соответствующим делегатом в каждом кейсе от нуля до четырех. Результат выводится в textBox3.

    Код данной функции заключен в блок try: это сделано для того, чтобы при возникновении исключения программа не вылетала, а обрабатывала его. В нашем случае (прописано в блоке catch) выводится сообщение об ошибке и просьба проверить корректность введенных данных.

    Заключение


    Создано приложение Windows Forms, рассчитывающее значение определенного интеграла функции одной переменной с заданными пользователями параметрами: начало интегрирования, конец интегрирования, необходимая точность. В выпадающем списке пользователь выбирает нужную функцию, после нажатия на кнопку «рассчитать» ответ выводится на экран.

    В ходе работы приобретены навыки самостоятельного поиска и решения возникающих проблем, более полно изучена тема использования делегатов в коде программы, исследованы новые элементы управления для Windows Forms (такие как textbox и comboBox), использованы такие конструкции, как switch и try/catch.


    написать администратору сайта