95548

Написание программы на языке VBA

Курсовая

Информатика, кибернетика и программирование

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

Русский

2015-09-24

231.31 KB

11 чел.

 Аннотация

Задание на курсовую работу

Введение

Описание формы Excel, необходимой для решения задачи

Назначение и описание требуемых переменных

Алгоритм работы программы

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

Тестирование программы

Заключение

Список использованной литературы

Аннотация

Встроенные языки программирования – удобные и гибкие средства разработки макрокоманд обработки данных внутри программы. К такиv языкам можно отнести Visual Basic for Applications, разработанный компанией Microsoft и применяемый в пакете программ Microsoft Office.

Задание на курсовую работу

Имеется группа из 10-ти студентов, которые обучаются по 6-ти предметам.

Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:

  1.  исходные данные в виде таблицы, где перечислены фамилии и инициалы студентов, оценки по всем предметам;
  2.  средний балл для каждого студента;
  3.  средний балл по каждому предмету всей группы;
  4.  средний балл по всем предметам всей группы;
  5.  фамилию студента с наименьшим средним баллом.

Введение

Microsoft Excel имеет встроенный язык программирования - Visual Basic for Аpplications (VBA). Этот язык позволяет создавать приложения, выполняемые в среде Microsoft Office. Это могут быть разнообразные аналитические программы, финансовые системы, программы учета кадров, системы автоматического создания официальных писем/документов с помощью библиотеки готовых шаблонов и т.п. При этом интерфейс создаваемой программы может быть совершенно непохожим на интерфейс того приложения, в котором она написана.

VBA сочетает в себе практически неограниченные возможности с простотой изучения и использования. Теперь большинство функций можно описать, не прибегая к программированию. В том случае, если возможностей языка недостаточно, можно обратиться к API-функциям Windows. Пожалуй, самое главное достоинство VBA в том, что этот язык является единым для всех офисных приложений Microsoft и поэтому позволяет связывать их между собой. Уже сейчас из программы, написанной в Excel, можно обращаться к объектам Word для Windows, а также Microsoft Project. Это открывает заманчивые перспективы. Представьте, что пользователь на конкретном рабочем месте должен на основе некоторых данных, извлекаемых из базы, делать их анализ, строить диаграммы и проектировать деятельность организации, а также автоматически выполнять рассылку этих обработанных данных по некоторым адресам вместе с сопроводительным письмом. Все это можно сделать средствами офисных продуктов Microsoft, однако при этом пользователь должен в совершенстве овладеть каждым из них. В случае если программа для решения этой задачи написана на VBA, пользователю придется изучить только ее.

Программа MS Excel, являясь лидером на рынке программ обработки электронных таблиц, определяет тенденции развития в этой области.

Одним из важнейших функциональных расширений программы, предназначенным для профессионалов, является встроенная в Excel среда программирования Visual Basic (VBA) для решения прикладных задач. Благодаря VBA фирме Microsoft удалось не только расширить возможности языка макрокоманд Excel, но и ввести новый уровень прикладного программирования, поскольку VBA позволяет создавать полноценные прикладные пакеты, которые по своим функциям выходят далеко за рамки обработки электронных таблиц.

Описание формы Excel, необходимой для решения задачи

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

Таблица представлена на рисунке 1.

Рисунок 1. Таблица для ввода исходных данных.

Средний балл студента по предметам, как и средний балл по предмету можно вычислить конечно, с помощью стандартных средств Microsoft Excel. Но мы попробуем произвести все вычисления средствами VBA в Excel.

 

Назначение и описание требуемых переменных

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

Dim buff(10, 6) As Integer – буффер, в который считываем баллы десяти студентов по  шести предметам.  

Dim sred_po_stud(10) As Currency – массив, в который будем сохранять результаты вычисления средней арифметической по каждому студенту, в последующем будем искать в нем минимальную среднюю величину.

Dim sred_po_pred(6) As Currency – массив, в который будем записывать вычисленную среднюю арифметическую величину по предмету.     

Dim SP_stud(10) As String – список студентов, в котором будет выбираться студент, у которого наименьшая средняя арифметическая по 6 предметам.

Dim sred_arifm As Currency – общая средняя арифметическая величина по оценкам шести предметов, заработанным десятью студентами.

Dim i, j As Integer -  переменные счетчики циклов

Dim x, y, s As Integer – переменные накопительные счетчики вычисления средних арифметических  

Dim q As Integer – флаг, указывающий на элемент в массиве SP_stud 

Dim min As Currency – минимальное значение среднего арифметического среди средних арифметических, вычисленных по каждому студенту за все шесть предметов

Алгоритм работы программы

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

Sub Кнопка1_Щелчок()

Dim buff(10, 6) As Integer ' буфер для обработки данных

Dim sred_po_stud(10) As Currency ' средняя арифметическая по студентам

Dim sred_po_pred(6) As Currency ' средняя арифметическая по предметам

Dim SP_stud(10) As String ' список студентов

Dim i, j As Integer  ' счетчики циклов

Dim x, y, s As Integer ' счетчики циклов с накоплением для вычисления средних величин

Dim q As Integer ' флаг, указывающий на элемент в массиве SP_stud

Dim sred_arifm As Currency ' средняя арифметическая всех оценок по всем предметам заработанным всеми студентами

Dim min As Currency ' минимальное среднее арифметическое среди средних арифметических, вычисленных по каждому студенту за все шесть предметов

min = 0

x = 0

y = 0

s = 0

' считываем данные из таблицы

For i = 1 To 10

For j = 1 To 6

buff(i, j) = Cells(i + 2, j + 1)

Next j

SP_stud(i) = Cells(i + 2, 1)

Next i

 

' считаем среднее арифметическое по студентам и ср. арифм по студентам и предметам

 For i = 1 To 10

For j = 1 To 6

 x = x + buff(i, j)

 y = y + buff(i, j)

 Next j

 sred_po_stud(i) = x / 6

 x = 0

 Next i

 

 sred_arifm = y / 60 ' средняя арифм по всем оценкам

 

 ' среднюю арифм по студентам

 For i = 1 To 6

 For j = 1 To 10

 s = s + buff(j, i)

 Next j

 sred_po_pred(i) = s / 10

 s = 0

 Next i

 s = 0

 ' вычисление минимальной средней арифметической среди студентов

 min = sred_po_stud(1)

 For i = 2 To 10

 If (min > sred_po_stud(i)) Then

 min = sred_po_stud(i)

 q = i

 End If

 Next i

 

 'вывод вычисленных данных на экран

 

 For i = 1 To 6 ' средняя арифметическая по предметам

 Cells(14, i + 1) = sred_po_pred(i)

 Next i

 

 For i = 1 To 10 ' средняя арифметическая по студентам

 Cells(i + 2, 9) = sred_po_stud(i)

 Next i

 

 Cells(16, 3) = SP_stud(q) 'фамилия студента с наименьшим средним баллом

 Cells(15, 7) = sred_arifm ' средняя арифм по предметам и студентам

End Sub

Sub cls()

Worksheets("Лист1").Range("I3:I12").Value = ""

Worksheets("Лист1").Range("B14:G14").Value = ""

Worksheets("Лист1").Range("C15:G16").Value = ""

End Sub

Тестирование программы

Проверка выполнения программы при задании всех ячеек с исходными данными равными 1.

Проверка выполнения программы при задании всех ячеек с исходными данными равными 0.

Как видно, расчет выполняется верно. И даже то, что Фамилия студента с наименьшим баллом не отображается, вполне естественно – ведь средний балл студентов одинаков. Логика программы не позволяет вывезти несколько фамилий студентов с одинаковым средним баллом.

Проверка работы программы при задании значений исходных данных при которых наименьший средний балл по предметам у студента Липатова.

                                                    

Заключение

Как видим, язык Visual Basic for Application (VBA) в пакете программ Microsoft Office (на примере Microsoft Excel), позволяет более гибче подходить к вычислению и обработке  данных.   

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

Список использованной литературы

  1.  П. Эйткен – Интенсивный курс программирования в Excel за выходные  - М.:  «Диалектика»,  2004г.  – 421с.
  2.  Джон Уокенбах  - Профессиональное программирование на VBA в Excel 2010. , – М.: «Wiley», 2010г.  - 1308c.
  3.   Гарнаев А. – Самоучитель VBA  - М.: «БХФ-Петербург», 2004. – 560с.
  4.  Кашаев С.  – Программирование в Microsoft Excel на примерах – М.: «БХФ-Петербург», 2007. – 320с.
  5.  Демидова Л. А., Пылькин А. Н.,  - Программирование на Visual Basic for Applications: Практикум . – М.: Горячая линия-Телеком, 2004. – 175с.  


 

А также другие работы, которые могут Вас заинтересовать

81010. Предмет, структура и задачи коррекционной педагогики, ее взаимосвязь с другими науками 27.51 KB
  Объект коррекционной педагогики – специальное образование людей с особыми образовательными потребностями дети с психофизическими нарушениями. Предмет коррекционной педагогики – теория и практика специального образования. Система отраслей коррекционной педагогики структура науки.
81011. История развития специального (коррекционного) образования 26.64 KB
  Сеген в США открыл частные школы для слабоумных детей предполагающие обучение и воспитание трудовое и физическое. Первые школы для слепых и глухих детей в России появились в начале 19 в. появляются школы для умственно отсталых детей. разработка методик обучения для каждой категории детей с психофизическими нарушениями.
81012. Сеть специальных учреждений для детей с психофизическими нарушениями 26.53 KB
  специальные дошкольные образовательные учреждения: специальные ячли специальные детские сады группы конпенсирующего вида при массовых детских садах специальные детские дома для детей сирот подготовительные отделения при специальных школах; 2. специальные общеобразовательные учреждения: специальные школы первого вида для глухих; второго вида для слабослышащих; третьего вида для незрячих; четвертого вида для слабовидящих; пятого вида для детей с нарушениями речи; шестого вида для детей с нарушениями опорно – двигательного аппарата; седьмого...
81013. Особенности дошкольного и школьного специального (коррекционного) образования 28.25 KB
  комплектование ДОУ по принципу ведущего отклонения в развитии ребенка с нарушениями слуха – глухие и слабослышащие; с нарушениями зрения; с нарушениями речи; с нарушениями интеллекта; с ЗПР; с нарушениями опорно – двигательного аппарата. для каждой категории детей с психофизическими нарушениями предусмотрена своя специальная школа; 2.
81014. Принципы специального образования 28.23 KB
  Выготского о зоне ближайшего развития ; принцип ранней педагогической помощи обеспечение раннего выявления и ранней диагностики отклонения ребенка для определения его образовательных потребностей; принцип коррекционнокомпенсирующей направленности опора на сохранные анализаторы а так же использование компенсаторных возможностей детей; принцип социальноадаптирующей направленности обучения подготовка ребенка с психофизическими нарушениями к максимально самостоятельной жизни в обществе чтобы избежать социального выпадения; принцип...
81015. Показатели развития ребенка, значимые для выявления психофизических нарушений 27.51 KB
  В соответствии с этим учитывается степень достижения зрелости в каждый период развития ребенка до и после его рождения. Во время эмбрионального развития организм плода очень восприимчив к различным неблагоприятным факторам. Развитие сенсорных и моторных функций которые являются базой для развития психических процессов.
81016. Причины аномального развития детей. Типы нарушений психического развития 29.04 KB
  Типы нарушений психического развития по Лебединскому: недоразвитие ранее время поражения незрелость мозга. Пример: умственная отсталость психические функции недоразвиты вынужденная недостаточность высших психических функций мышления речи; ✓ задержанное развитие замедление темпов формирования познавательной и эмоциональной сфер; ✓ поврежденное развитие более позднее после 2 3 лет патологическое воздействие на мозг; ✓ дефицитарное развитие тяжелые нарушения отдельных систем: зрения слуха речи опорнодвигательного...
81017. Принципы и методы диагностики отклонений в развитии ребенка. Функции психолого-медико-педагогической консультации 30.39 KB
  Принцип комплексного изучения ребенка который предполагает всестороннее обследование особенностей развития всех видов познавательной деятельности эмоциональноволевой сферы личности навыков и т.Принцип целостного системного изучения ребенка.Принцип динамического изучения ребенка согласно которому при обследовании важно выяснить не только то что дети знают и умеют но и их возможности в обучении зона ближайшего развития.
81018. Политический реализм и неореализм в теории международных отношений 36.26 KB
  Все концепции международных отношений нсмотря на кардинальные различия рассматривают мировую политику в целом а не отдельные ее элементы. Это отличает их от внутриобщественных отношений построенных на принципах иерархии субординации формализованных правовых нормах. В отличии от внутриобщественных отношений где формально закреплена функция государственного принятия решений в МО это невозможно на правовом уровне.