Разработка Диссертационного приложения на языке C# с использованием Windows Form

Автор работы: Пользователь скрыл имя, 16 Мая 2013 в 11:29, курсовая работа

Описание работы

C# — объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.
C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML [1].

Файлы: 1 файл

КР 01 Выдыш.doc

— 6.07 Мб (Скачать файл)

 

 

 


  1.  Практическая часть

    1. Описание алгоритма

  1. С помощью кнопки button1_Click импортируем таблицу .XLSX,.XLS .
  2. Создаем временный  строковый массив List<String> , для копирования ячеек из Excel. Каждое значение ячейки заносим во временный массив.
  3. Затем заполняем таблицу Table.Rows.Add построчно. Если операция выполнена успешно выводится сообщение: «Файл успешно считан!», если же нет, то: «Ошибка!»
  4. Далее создаем две кнопки «Максимум» и «Минимум».
  5. Для того чтобы, отыскать значения максимума и минимума, необходимо преобразовать данные из строкового в числовой тип. Для этого создаем 2мерный массив, куда перенесем данные из таблицы. Перенос осуществляется построчно, строковые элементы таблицы преобразуются в дробные числа.
  6. Завершающим этапом является непосредственное нахождение максимума или минимума. При нахождении максимума изначально находим минимальное значение и сравниваем его по порядку с оставшимися значениями  до тех пор, пока не будет выявлено наибольшее значение. В случае с нахождением минимума действия производятся аналогично.
    1. Код программы

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 Microsoft.Office.Interop.Excel;

 

 

namespace MinAndMax

{

    public partial class Form1 : Form

        {

           private Microsoft.Office.Interop.Excel.Application ObjExcel;

            private Microsoft.Office.Interop.Excel.Workbook ObjWorkBook;

            private Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;

 

        public Form1()

        {

            InitializeComponent();

        }

        //код для загрузки файла таблицы, кнопка Импорт таблицы

        private void button1_Click(object sender, EventArgs e)

        {

             OpenFileDialog openDialog = new OpenFileDialog();

            openDialog.Filter = "Файл Excel|*.XLSX;*.XLS";

            openDialog.ShowDialog();

                          try

            {

                ObjExcel = new Microsoft.Office.Interop.Excel.Application();

                //Книга.

                ObjWorkBook = ObjExcel.Workbooks.Open(openDialog.FileName);

                //Таблица.

                ObjWorkSheet = ObjExcel.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet;

                Microsoft.Office.Interop.Excel.Range rg = null;

 

                Int32 row = 1;

                Table.Rows.Clear();

                // создаем временный строковый массив, для копирования ячеек из Excel

                List<String> arr = new List<string>();

                while (ObjWorkSheet.get_Range("a" + row, "a" + row).Value != null)

                {

                    // Читаем данные из ячейки

                    rg = ObjWorkSheet.get_Range("a" + row, "f" + row);

                    //каждое значение ячейки заносим во временный массив

                    foreach (Microsoft.Office.Interop.Excel.Range item in rg)

                    {

                        try

                        {

                            arr.Add(item.Value.ToString().Trim());

                        }

                        catch { arr.Add(""); }

                    }

                    //заполняем нашу таблицу в Table.Rows.Add по строчно

                    Table.Rows.Add(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5]);

                    // очищаем временный массив

                    arr.Clear();

                    row++;

                }

                //выводим сообщение, что все ок

                MessageBox.Show("Файл успешно считан!", "Считывания excel файла", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }//а если не ок, сообщение об ошибке

            catch (Exception ex) { MessageBox.Show("Ошибка: " + ex.Message, "Ошибка при считывании excel файла", MessageBoxButtons.OK, MessageBoxIcon.Error); }

            finally

            {  

                ObjWorkBook.Close(false, "", null);

                // Закрытие приложения Excel.

                ObjExcel.Quit();

                ObjWorkBook = null;

                ObjWorkSheet = null;

                ObjExcel = null;

                GC.Collect();

            }

 

       

        }

        //код для кнопки максимум:

        private void button2_Click(object sender, EventArgs e)

        {

            int j = 0;

            int i = 0;

            int N = 6;

            //создаем 2мерный массив, куда перенесем данные из таблицы

            double[,] matr = new double[Table.RowCount, N];

            //Переносим построчно все элементы из таблицы в массив и переделываем их из строк в дробные числа

            for (i = 0; i < Table.RowCount; i++)

            {

                for (j = 0; j < N; j++)

                {

                    matr[i, j] = Convert.ToDouble(Table.Rows[i].Cells[j].Value);

 

                }

            }

            //для каждого столбика считаем максимум и выводим в текстбокс

            for (int stb = 0; stb < 6; stb++)

            {

                double max = double.MinValue;

                for (int k = 0; k < matr.GetLength(0); ++k)

                {

                   if (matr[k, stb] > max) max = matr[k, stb];

 

                }

                textBox1.Text += "Максимум в " + (stb + 1) + "-ом столбце=" + Environment.NewLine + max.ToString() + Environment.NewLine;

            }

        }

 

        //для кнопки минимума, аналогично максимуму

        private void min_Click(object sender, EventArgs e)

        {

            int j = 0;

            int i = 0;

            int N = 6;

            double[,] matr = new double[Table.RowCount, N];

            for (i = 0; i < Table.RowCount; i++)

            {

                for (j = 0; j < N; j++)

                {

                    matr[i, j] = Convert.ToDouble(Table.Rows[i].Cells[j].Value);

 

                }

            }

 

            for (int stb = 0; stb < 6; stb++)

            {

                double min = double.MaxValue;

                for (int k = 0; k < matr.GetLength(0); ++k)

                {

                    if (matr[k, stb] < min) min = matr[k, stb];

 

                }

                textBox2.Text += "Минимум в " + (stb + 1) + "-ом столбце=" + Environment.NewLine + min.ToString() + Environment.NewLine;

            }

        }

 

        private void Form1_Load(object sender, EventArgs e)

        {

 

        }

 

     

        }

    }

 

Рисунок 1 – Внешний вид программы

 

 

 

 

 

 

 

 

 


Заключение

С Sharp – язык высокого уровня программирования в настоящее время позволяет решать большинство инженерных задач. Обладает большим количеством встроенных компонентов и функций, что в свою очередь позволяет реализовать инженеру те или иные приложения абсолютно разной направленности.

При выполнении курсовой работы был  получен комплекс теоритических  знаний, а также практически реализовано  требуемое Windows-приложение. Основная идея, которого заключалась в упрощение и частичной автоматизации расчета максимальных и минимальных значений функции. Полученное приложение достаточно простое и удобное в использовании, что позволяет использовать его любому инженеру.

 

 

 

 

 

Список использованных источников

  1. C SHARP [Электронный ресурс]: Свободная энциклопедия "Википедия". – Амстердам, 2001. – Режим доступа: http://ru.wikipedia.org/wiki/C_Sharp – Загл. с экрана.
  2. Visual Studio [Электронный ресурс]: Свободная энциклопедия "Википедия". – Амстердам, 2001. – Режим доступа: http://ru.wikipedia.org/wiki/Microsoft_Visual_Studio – Загл. с экрана.
  3. .NET_Framework [Электронный ресурс]: Свободная энциклопедия "Википедия". – Амстердам, 2001. – Режим доступа http://ru.wikipedia.org/wiki/.NET_Framework – Загл. с экрана.
  4. Рендольф, Н., Гарднер, Д. Visual Studio 2010 для профессионалов [Текст] / Н. Рендольф, Д. Гарднер. – М.: Диалектика, 2011. – 1184 с.
  5. Макки, А. Введение в .NET 2010 и Visual Studio 2010 для профессионалов [Текст] / А. Макки. – М.: Вильямс, 2010. – 416 с.
  6. Уотсон, К., Нейгел, К. Visual C# 2008: базовый курс [Текст] / К. Уотсон, К. Нейгел. – М.: Диалектика, 2009. – 1216 с.
  7. Просиз, Д. Программирование для Microsoft .NET [Текст] / Д. Просиз. – М.: Русская редакция, 2003. – 704 с.
  8. Нейгель, К., Ивьен, Б. С# 2005 и платформа .NET 3.0 для профессионалов [Текст] / К. Нейгель, Б. Ивьен. – М.: Диалектика. – 1790 с.

Информация о работе Разработка Диссертационного приложения на языке C# с использованием Windows Form