Программная реализация задачи определения статистических данных по успеваемости на факультете


ФЕДЕРАЛЬНОЕ Государственное АВТОНОМНОЕ образовательное учреждение Высшего профессионального образования

«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ

ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»

(НИУ «БелГУ»)

ИНСТИТУТ ИНЖЕНЕРНЫХ ТЕХНОЛОГИЙ И ЕСТЕСТВЕННЫХ НАУК

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И ПРИКЛАДНОЙ МАТЕМАТИКИ

Кафедра прикладной математики и информатики

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ЗАДАЧИ ОПРЕДЕНИЯ СТАТИСТИЧЕСКИХ ДАННЫХ ПО УСПЕВАЕМОСТИ НА ФАКУЛЬТЕТЕ

Курсовая работа

студента заочной формы обучения

направления подготовки

230400.61 Прикладная информатика и математика

2 курса группы 83001361

Богданова Георгия,

по дисциплине: «Информатика и программирование»

Научный руководитель:

к. т.н. Н. Н.Гахова

БЕЛГОРОД 2014

ПЛАН КУРСОВОЙ РАБОТЫ

По дисциплине «Информатика и программирование»

На тему: «ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ЗАДАЧИ ОПРЕДЕНИЯ СТАТИСТИЧЕСКИХ ДАННЫХ ПО УСПЕВАЕМОСТИ НА ФАКУЛЬТЕТЕ»

Введение

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

2. Решение задачи средствами прикладных программ

3. Разработка алгоритмов и структур данных

4. Программная реализация алгоритмов на языке программирования

5. Тестирование разработанного программного обеспечения

Заключение

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

Приложения

Исполнитель: ___________________________________ Богданов Г.

Руководитель: ____________________________к. т.н., доц. Гахова Н. Н.

Содержание

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

2. Решение задачи средствами прикладных программ

3. Разработка алгоритмов и структур данных

4. Программная реализация задачи определения статистических данных по успеваемости на факультете на языке программирования C#

5. Тестирование разработанного программного обеспечения

Заключение

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

Приложение

Введение

Современное учебное заведение — это находящаяся в постоянном развитии, динамическая система со сложными иерархическими организационно-управленческими структурами и подразделениями. Достижение стоящих перед ВУЗом стратегических целей может осуществляться путем разработки и внедрения информационной системы управления учебным заведением, либо его подразделениями. Информационная система должна позволять решать ряд задач по сбору, учету, хранению, контролю, обработке и анализу информации об основных процессах высшего учебного заведения.

Программная реализация задачи определения статистических данных по успеваемости на факультете является актуальной задачей для большинства ВУЗов. В настоящее время предлагаются различные решения в этой сфере.

Информационные системы и технологии становятся средством повышения эффективности и производительности работы человека, позволяют быстро и качественно анализировать информацию, принимать правильные решения. Подготовка курсовой работы способствует:

- закреплению, углублению и обобщению знаний, полученных студентами в процессе изучения лекционных курсов по дисциплине «Информатика и программирование»;

- развитию умений и навыков, полученных при выполнении лабораторных работ;

- применению этих знаний, умений и навыков к решению конкретных задач;

- развитию навыков работы со специальной литературой и разработки программного обеспечения.

Язык программирования С# отличается минимализмом. Программы компилируются с помощью однопроходного компилятора, чтобы каждой элементарной составляющей программы после компиляции соответствовало небольшое число машинных команд, а использование базовых элементов языка не задействовало библиотеку времени выполнения C# — это язык программирования, предназначенный для разработки самых разнообразных приложений, предназначенных для выполнения в среде. NET Framework. Язык C# прост, строго типизирован и объектно-ориентирован. Благодаря множеству нововведений C# обеспечивает возможность быстрой разработки приложений.

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

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

Факультет компьютерных наук и телекоммуникаций был основан 26 августа 2002 г. Первоначально на факультете подготовка велась по трем специальностям — «Математическое обеспечение и администрирование информационных систем», «Прикладная информатика в экономике» и «Сети связи и системы коммутации». В 2005 году спектр специальностей был расширен за счет специальности «Радиосвязь, радиовещание и телевидение».

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

Одной из основных и трудоемких в работе факультета является деятельность деканата. Работникам деканата приходится выполнять огромный объем рутинной работы по учету контингента студентов, обеспечению учебного процесса, предоставлению информации в различные подразделения ВУЗа. При этом всю информацию необходимо представлять в различных форматах.

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

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

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

2. Решение задачи средствами прикладных программ

Microsoft Excel (также иногда называется Microsoft Office Excel) — программа для работы с электронными таблицами, созданная корпорацией Microsoft для Microsoft Windows, Windows NT и Mac OS. Она предоставляет возможности экономико-статистических расчетов, графические инструменты и, за исключением Excel 2008 под Mac OS X, язык макропрограммирования VBA (Visual Basic for Application). Microsoft Excel входит в состав Microsoft Office и на сегодняшний день Excel является одним из наиболее популярных приложений в мире. Ценной возможностью Excel является возможность писать код на основе Visual Basic для приложений (VBA). Этот код пишется с использованием отдельного от таблиц редактора. Управление электронной таблицей осуществляется посредством объектно-ориентированной модели кода и данных. С помощью этого кода данные входных таблиц будут мгновенно обрабатываться и отображаться в таблицах и диаграммах (графиках). Таблица становится интерфейсом кода, позволяя легко работать изменять его и управлять расчётами

При помощи программы Microsoft Excel необходимо решить следующую задачу: в рабочей книге создать таблицы с данными об успеваемости по двум предметам на 3-х факультетах (каждый факультет на отдельном листе). Посчитать количество отличных, хороших, удовлетворительных и неудовлетворительных оценок по двум предметам и вывести результат в строку «Всего». Посчитать процент всех оценок в сумме по двум предметам. Выполнить консолидацию и получить на отдельном листе итоговую таблицу. Построить графики

3. Разработка алгоритмов и структур данных

Блок-схема алгоритма — графическое изображение алгоритма в виде связанных между собой с помощью стрелок (линий перехода) и блоков — графических символов, каждый из которых соответствует одному шагу алгоритма. Внутри блока дается описание соответствующего действия.

Рисунок 2 — Блок-схема программы для вывода статистики факультета

4. Программная реализация задачи определения статистических данных по успеваемости на факультете на языке программирования C#

C# — объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft. NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.

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

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

Синтаксис C# очень выразителен, но прост в изучении. Все, кто знаком с языками C, C++ или Java с легкостью узнают синтаксис с фигурными скобками, характерный для языка C#. Разработчики, знающие любой из этих языков, как правило, смогут добиться эффективной работы с языком C# за очень короткое время. Синтаксис C# делает проще то, что было сложно в C++, и обеспечивает мощные возможности, такие как типы значений Nullable, перечисления, делегаты, лямбда-выражения и прямой доступ к памяти, чего нет в Java. C# поддерживает универсальные методы и типы, обеспечивая более высокий уровень безопасности и производительности, а также итераторы, позволяющие при реализации коллекций классов определять собственное поведение итерации, которое может легко использоваться в клиентском коде. Выражения LINQ делают строго типизированный запрос очень удобной языковой конструкцией.

Как объектно-ориентированный язык, C# поддерживает понятия инкапсуляции, наследования и полиморфизма. Все переменные и методы, включая метод Main — точку входа приложения — инкапсулируются в определения классов. Класс может наследовать непосредственно из одного родительного класса, но может реализовывать любое число интерфейсов. Для методов, которые переопределяют виртуальные методы в родительском классе, необходимо ключевое слово override, чтобы исключить случайное повторное определение. В языке C# структура похожа на облегченный класс: это тип, распределяемый в стеке, реализующий интерфейсы, но не поддерживающий наследование.

При реализации программы на C# есть ряд преимуществ, а именно:

- расширяемость системы (в С# можно подгружать любые exe, импортировать классы и объекты из других программ);

- кросплатформенность (mono, концепция NET);

- сложность разработки и сопровождения (подбор кадров, читаемость кода, документированность языка);

- степень открытости исходных текстов библиотек, исполняемых программ, количество литеретуры и помощь (MSDN);

- возможность привлечения сторонних разработчиков при разработке системы для программирования узко-специализированных задач (сборки, модули, теже exe);

- защищенность и контроль версий подключаемых алгоритмов (концепция NET);

- трудоемкость написания;

- скорость работы (распределение процессов, распределение данных скорость работы с данными);

- удобство разработки (среда разработки по сравнению с Delphi7)

На рисунке 3 предоставлена форма программы перевода чисел в различные системы счисления, код программного обеспечения предоставлен в приложении 1.

Рисунок 3 — Форма программы перевода чисел в различные системы счисления

5. Тестирование разработанного программного обеспечения

программа статистический алгоритм прикладной

Существует несколько видов процедур тестирования программного обеспечения, которые приходится выполнять:

- модульное тестирование;

- комплексное тестирование;

- подтверждение правильности и верификация;

- тестирование в условиях нехватки ресурсов, ошибки и их исправление;

- тестирование производительности;

- тестирование удобства использования.

Модульный тест представляет собой программу, занимающуюся тестированием некоего модуля. Модульное тестирование является основой для всех других видов тестирования, которые обсуждаются в данном разделе. Если части не работают по отдельности, то скорее всего они не будут хорошо работать и вместе. Все используемые модули обязаны пройти собственное модульное тестирование перед тем как продолжать работу. Как только все соответствующие модули прошли индивидуальное тестирование, вы готовы к новому этапу. Вам придется проверить, как модули используют друг друга и взаимодействуют между собой по всей системе.

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

Тестирование производительности, нагрузочное тестирование или тестирование в реальных условиях эксплуатации может также оказаться важным аспектом проекта. Задайте себе вопрос, отвечает ли программа требованиям производительности в условиях реального мира — с ожидаемым числом пользователей, подключений или транзакций в единицу времени. Является ли она масштабируемой? При работе с некоторыми приложениями вам могут понадобиться специализированные тестовая аппаратура или программное обеспечение для реалистичной имитации нагрузки.

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

Если тестировщик обнаруживает дефект, это должно быть в первый и последний раз — обнаружение дефекта человеком. Автоматизированные тесты должны быть модифицированы для проверки наличия этого дефекта, начиная с момента его первоначального обнаружения, потому что это снова случится. У разработчиков нет времени гоняться за дефектами, которые автоматизированные тесты не могли обнаружить. Приходиться тратить время на написание новой программы — с новыми дефектами.

Заключение

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

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

В ходе решения поставленных задач была необходимость избежать трудоёмкости перевода чисел в различные системы счисления. Поэтому мною был выбран программный метод реализации поставленной цели.

Для своей курсовой работы я выбрал язык программирования С#. Он великолепно подходит для быстрого конструирования различных компонентов — от высокоуровневой бизнес — логики до системных приложений, использующих низкоуровневый код.

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

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

1. C# Language Specification. Microsoft Corporation, 2005.

2. А. Хейлсберг, М. Торгерсен, С. Вилтамут, П. Голд Язык программирования C#. Классика Computers Science. 4-е издание = C# Programming Language (Covering C# 4.0), 4th Ed. — СПб.: «Питер», 2012. — 784 с. — ISBN 978-5-459-00283-6.

3. Герберт Шилдт. C# 4.0: полное руководство = C# 4.0 The Complete Reference. — М.: «Вильямс», 2010. — С. 1056. — ISBN 978-5-8459-1684-6.

4. Гуннерсон Э. Введение в C#. СПб.: Питер, 2005.

5. Джесс Либерти «Программирование на С#» 2-е издание, 456с.,2005г

6. Джозеф Албахари, Бен Албахари C# 5.0. Справочник. Полное описание языка = C# 5.0 in a Nutshell: The Definitive Reference. — М.: «Вильямс», 2013. — 1008 с. —ISBN 978-5-8459-1819-2.

7. Джон Скит C# для профессионалов: тонкости программирования, 3-е издание, новый перевод = C# in Depth, 3rd ed.. — М.: «Вильямс», 2014. — 608 с. — ISBN 978-5-8459-1909-0.

8. Кристиан Нейгел и др. C# 5.0 и платформа. NET 4.5 для профессионалов = Professional C# 5.0 and. NET 4.5. — М.: «Диалектика», 2013. — 1440 с. — ISBN 978-5-8459-1850-5.

9. Кристиан Нейгел, Карли Уотсон и др. Visual C# 2010: полный курс = Beginning Microsoft Visual C# 2010. — М.: Диалектика, 2010. — ISBN 978-5-8459-1699-0.

10. Обширнейшая информация по платформе. NET: www. gotdotnet. com.

11. Олливерсон М. Методы высокоуровневого программирования.:Москва,2005.

12. Официальная конференция по языку C#: news://msnews. microsoft. com/ microsoft. public. dotnet. languages. csharp.

13. Полный справочник по С#. : Пер. с англ. — М. : Издательский дом

14. Си Шарп: Создание приложений для Windows/ В. В. Лабор.— Мн.: Харвест, 384 с.,2003.

15. Шатрова, Т. И. Языковая игра в текстах комической направленности: процессы кодирования и декодирования [Текст] : дис. … канд. филол. наук / Т. И. Шатрова ; Тульский гос. пед. ун-т им. Л. Н. Толстого. — Белгород, 2006. — 159 с.

16. Э. Стиллмен, Дж. Грин Изучаем C#. 2-е издание = Head First C#, 2ed. — СПб.: «Питер», 2012. — 704 с. — ISBN 978-5-4461-0105-4.

17. Эндрю Троелсен Язык программирования C# 5.0 и платформа. NET 4.5, 6-е издание = Pro C# 5.0 and the. NET 4.5 Framework, 6th edition. — М.: «Вильямс», 2013. — 1312 с. — ISBN 978-5-8459-1814-7.

Приложение

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;

namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)//параметры вводимых зачений для оценок и группы

{

TextBox TextBox1 = new TextBox();

[STAThread]

public static void Main()

{

Application. EnableVisualStyles();

Application. Run(new Form1());

}

public Form1()

{

this. AutoSize = true;

FlowLayoutPanel panel = new FlowLayoutPanel();

panel. AutoSize = true;

panel. FlowDirection = FlowDirection. TopDown;

panel. Controls. Add(TextBox1);

this. Controls. Add(panel);

this. KeyPreview = true;

this. KeyPress +=

new KeyPressEventHandler(Form1_KeyPress);

TextBox1.KeyPress +=

new KeyPressEventHandler(TextBox1_KeyPress);

}

private void maskedTextBox2_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)

{

TextBox TextBox2 = new TextBox();

[STAThread]

public static void Main()

{

Application. EnableVisualStyles();

Application. Run(new Form1());

}

public Form1()

{

this. AutoSize = true;

FlowLayoutPanel panel = new FlowLayoutPanel();

panel. AutoSize = true;

panel. FlowDirection = FlowDirection. TopDown;

panel. Controls. Add(TextBox2);

this. Controls. Add(panel);

this. KeyPreview = true;

this. KeyPress +=

new KeyPressEventHandler(Form1_KeyPress);

TextBox1.KeyPress +=

new KeyPressEventHandler(TextBox2_KeyPress);

}

private void maskedTextBox3_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)

{

}

……………………………

private void textBox31_TextChanged(object sender, EventArgs e)

{

TextBox TextBox31 = new TextBox();

[STAThread]

public static void Main()

{

Application. EnableVisualStyles();

Application. Run(new Form1());

}

public Form1()

{

this. AutoSize = true;

FlowLayoutPanel panel = new FlowLayoutPanel();

panel. AutoSize = true;

panel. FlowDirection = FlowDirection. TopDown;

panel. Controls. Add(TextBox31);

this. Controls. Add(panel);

this. KeyPreview = true;

this. KeyPress +=

new KeyPressEventHandler(Form1_KeyPress);

TextBox1.KeyPress +=

new KeyPressEventHandler(TextBox31_KeyPress);

}

private void numericUpDown1_ValueChanged(object sender, EventArgs e)// параметры для кол-ва человек в группе (максимальное значнение=150

void umericUpDown1_ValueChanged(object sender, KeyPressEventArgs e)

{

if (e. KeyChar >= 48 && e. KeyChar <= 57)

{

MessageBox. Show(«umericUpDown1_ValueChanged ‘» +

e. KeyChar. ToString() + «umericUpDown1_ValueChanged.»);

switch (e. KeyChar)

{

case (char)150:

MessageBox. Show(«Control. KeyPress:

e. KeyChar. ToString() + «»);

e. Handled = true;

break;

}

}

private void domainUpDown1_SelectedItemChanged(object sender, EventArgs e)//выпадающий список дисциплин

{

foreach(CultureInfo ci in domainUpDown1_SelectedItemChangeds(CultureTypes. WindowsOnlyCultures))

domainUpDown1_SelectedItemChanged. Items. Add(ci. NativeName);

}

private void button3_Click(object sender, EventArgs e)//обработка кнопки закрыть

{

[BrowsableAttribute(false)]

public event CancelEventHandler Closing;

private void button2_Click(object sender, EventArgs e)//обработка кнопки очистить

{

button2_Click. Controls. Cleare();

}

private void textBox63_TextChanged(object sender, EventArgs e)//вывод общего кол-ва человек в группах

{

string inWord = textBox63.Text;

char[] separators = { ‘.’, ‘!’, ‘?’ };

string[] sentences = File. ReadAllText(, Encoding. Default).Split(separators, StringSplitOptions. RemoveEmptyEntries);

textBox63.Text = «»;

foreach (string sentence in sentences)

label1.Text += sentence + » «

+ sentence. Split(‘ ‘).Where(a => a == inWord).Count() + «»;

}

}