Разработка Диссертационного приложения на языке C# с использованием Windows Form
Курсовая работа, 16 Мая 2013, автор: пользователь скрыл имя
Описание работы
C# — объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.
C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML [1].
Файлы: 1 файл
КР 01 Выдыш.doc
— 6.07 Мб (Скачать файл)
Практическая часть
Описание алгоритма
- С помощью кнопки button1_Click импортируем таблицу .XLSX,.XLS .
- Создаем временный строковый массив List<String> , для копирования ячеек из Excel. Каждое значение ячейки заносим во временный массив.
- Затем заполняем таблицу Table.Rows.Add построчно. Если операция выполнена успешно выводится сообщение: «Файл успешно считан!», если же нет, то: «Ошибка!»
- Далее создаем две кнопки «Максимум» и «Минимум».
- Для того чтобы, отыскать значения максимума и минимума, необходимо преобразовать данные из строкового в числовой тип. Для этого создаем 2мерный массив, куда перенесем данные из таблицы. Перенос осуществляется построчно, строковые элементы таблицы преобразуются в дробные числа.
- Завершающим этапом является непосредственное нахождение максимума или минимума. При нахождении максимума изначально находим минимальное значение и сравниваем его по порядку с оставшимися значениями до тех пор, пока не будет выявлено наибольшее значение. В случае с нахождением минимума действия производятся аналогично.
Код программы
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.
namespace MinAndMax
{
public partial class Form1 : Form
{
private Microsoft.Office.Interop.
private Microsoft.Office.Interop.
private Microsoft.Office.Interop.
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.
//Книга.
ObjWorkBook = ObjExcel.Workbooks.Open(
//Таблица.
ObjWorkSheet = ObjExcel.ActiveSheet as Microsoft.Office.Interop.
Microsoft.Office.Interop.
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.
{
try
{
arr.Add(item.Value.ToString().
}
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]
}
}
//для каждого столбика считаем максимум и выводим в текстбокс
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]
}
}
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 – язык высокого уровня программирования в настоящее время позволяет решать большинство инженерных задач. Обладает большим количеством встроенных компонентов и функций, что в свою очередь позволяет реализовать инженеру те или иные приложения абсолютно разной направленности.
При выполнении курсовой работы был
получен комплекс теоритических
знаний, а также практически
Список использованных источников
- C SHARP [Электронный ресурс]: Свободная
энциклопедия "Википедия". – Амстердам,
2001. – Режим доступа: http://ru.wikipedia.org/wiki/
C_Sharp – Загл. с экрана. - Visual Studio [Электронный ресурс]: Свободная
энциклопедия "Википедия". – Амстердам,
2001. – Режим доступа: http://ru.wikipedia.org/wiki/
Microsoft_Visual_Studio – Загл. с экрана. - .NET_Framework [Электронный ресурс]: Свободная
энциклопедия "Википедия". – Амстердам,
2001. – Режим доступа http://ru.wikipedia.org/wiki/.
NET_Framework – Загл. с экрана. - Рендольф, Н., Гарднер, Д. Visual Studio 2010 для профессионалов [Текст] / Н. Рендольф, Д. Гарднер. – М.: Диалектика, 2011. – 1184 с.
- Макки, А. Введение в .NET 2010 и Visual Studio 2010 для профессионалов [Текст] / А. Макки. – М.: Вильямс, 2010. – 416 с.
- Уотсон, К., Нейгел, К. Visual C# 2008: базовый курс [Текст] / К. Уотсон, К. Нейгел. – М.: Диалектика, 2009. – 1216 с.
- Просиз, Д. Программирование для Microsoft .NET [Текст] / Д. Просиз. – М.: Русская редакция, 2003. – 704 с.
- Нейгель, К., Ивьен, Б. С# 2005 и платформа .NET 3.0 для профессионалов [Текст] / К. Нейгель, Б. Ивьен. – М.: Диалектика. – 1790 с.