Создание приложений

Задачи

 

1. Диалог с компьютером. С помощью встроенных диалоговых окон (MsgBox и InputBox) создайте программу (макрос), реализующую следующий диалог с компьютером:

Компьютер: «Как вас зовут?»

Пользователь: ХХХ (вводит свое имя)

Компьютер: «Привет, ХХХ»(введенное имя)

«Сколько Вам лет?»

Пользователь: ГГ (вводит число лет)

Если ГГ(число лет) < 20, то компьютер выдает «Уже немало,ХХХ», в противном случае компьютер сообщает «Вы прекрасно выглядите для своих ГГ лет»

Создайте кнопку для запуска программы.

 

2. Угадай число. Создайте программу, реализующую следующий алгоритм. Компьютер вырабатывает случайное число в диапазоне от 0 до 100, не сообщая, запоминает его и предлагает «Угадай число». Пользователь вводит число. Если введенное число меньше того, которое придумал компьютер, то компьютер сообщает «Больше». Если введенное число больше того, которое придумал компьютер, то компьютер сообщает «Меньше». Если пользователь угадал число, то компьютер сообщает «Угадал!»

Подсказка. Для того, чтобы компьютер выработал случайное число Х в диапазоне от 0 до 100, начните программу с операторов

Randomize

X=Rnd*100

 

3. Для предыдущей задачи «Угадай число» выводите на лист Excel каждое из чисел, введенных пользователем, а после того, как число угадано, выведите на лист количество попыток при угадывании числа, общее время игры и вопрос «Продолжим д/н». При ответе «д» компьютер вырабатывает новое случайное число, и игра повторяется.

 

 

4. Экскурсии. Фирма реализует экскурсионные путевки по цене 500 руб. Для групп от 5 человек дается скидка 5% на каждого человека, для групп более 8 человек дается скидка на каждого – 7%. Создайте программу, реализующую следующий алгоритм. На лист Excel выводятся заголовки столбцов: Фамилия клиента, Количество путевок, Процент скидки, Получено с клиента. В диалоге запрашивается фамилия клиента и количество путевок. Процент скидки и Получено с клиента рассчитывается. Для каждого клиента записывайте данные в очередную строку. После записи каждой строки выводите диалоговое окно с вопросом «Закончить д/н?», при ответе «д» закончить работу программы. Создайте кнопку для запуска программы.

 

5. Для задачи «Экскурсии» (упр.4) создайте макрос для расчета общей суммы денег ( Итого), полученных с клиентов. (Первый вариант программы: количество клиентов известно, второй вариант – количество клиентов определите с помощью встроенной функции COUNTA). Создайте кнопку для вывода суммы в нужный столбец в конце таблицы.

 

6. По таблице «Экскурсии» создайте макрос для вывода на лист количества клиентов, получивших скидку 7%.

 

7. Создайте таблицу Сотрудники

 

Создайте таблицуСотрудники

Фамилия Должность Зарплата
Петров Менеджер
Сорокин Начальник отдела
Волков Директор
Котов Менеджер
Воронов Продавец
Смирнов Менеджер
Акулов Начальник сектора
Сонин Менеджер

 

Добавьте в нее несколько строк.

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

 

8. Откройте таблицу Учет(сотрудники), расположенную в папке Справка (диск D:). Сохраните ее в своей папке. Выведите количество сотрудников, имеющих разряд выше 13-го.

 

 

9. Создайте таблицу Поставщики

 

Товар Поставщик Цена (у.е.)
Принтер 1 HP
Плоттер Compuway
Телефон Panasonic
Картридж HP
Принтер 2 VS
Память Samsung
Сетевая карта 3COM

 

Добавьте в нее несколько строк

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

 

 

  1. Создайте таблицу Технические средства
Технические средства Подразделение Количество
Компьютеры Бухгалтерия
Принтеры Технический центр
Компьютеры Технический центр
Плоттеры Лаборатория
Компьютеры Лаборатория
Сканеры Технический центр
Принтеры Бухгалтерия
Компьютеры Кафедра

 

Добавьте в нее несколько строк

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

 

11. Откройте таблицу Учет(сотрудники), расположенную в папке Справка (диск D:). Сохраните ее в своей папке. Создайте кнопку, по нажатию на которую на текущий лист выводится общая сумма заработной платы сотрудников второго отдела.

 

 

12. По таблице Учет(сотрудники) см.упр.11 создайте кнопку, по нажатию на которую на текущий лист выводится средняя заработная плата конструкторов.

 

 

13. Для таблицы Учет(сотрудники) см.упр.11 создайте пользовательскую функцию для расчета средней заработной платы сотрудников разных должностей. (Должность – это параметр функции).

 

 

14. По таблице «Экскурсии» см.упр.4 создайте макрос для вывода на лист информации о клиентах (фамилия, количество путевок, получено с клиента), получивших скидку 5%. Создайте кнопку для запуска макроса.

 

 

15. Отредактируйте программу для упражнения 14. По нажатию на кнопку должно появляться диалоговое окно «Введите размер скидки»». После того, как пользователь ввел размер скидки (например, 5%), на листе должен появиться список клиентов, получивших заданную пользователем скидку.

 

 

16. По таблице «Технические средства» см. упр.10 создайте кнопку, по нажатию на которую на текущем листе создается новая таблица с заголовками «Тех.средство» и «Количество», в которую выводится список технических средств, установленных в бухгалтерии.

 

 

17. Для таблицы Учет(сотрудники) см.упр.11 выведите список сотрудников моложе 30 лет в таблицу с заголовками «Фамилия», «Дата рождения», «Должность», «Разряд», «Зарплата».

18. По таблице «Экскурсии» (упр.4) создайте макрос для вывода на лист (например, в 15-ю строку) информации о клиенте (фамилия, количество путевок, получено с клиента, номер строки), заказавшего максимальное количество путевок. Создайте кнопку для запуска макроса.

 

 

19. По таблице «Должности» (упр.7) создайте макрос для вывода на лист фамилии и должности сотрудника, получающего максимальную зарплату.

 

 

20. Для таблицы Учет(сотрудники) см.упр.11 выведите фамилию, должность, отдел, количество отработанных часов и зарплату сотрудника, отработавшего минимальное количество часов.

 

 

21. Для таблицы «Результаты заездов спортсменов-лыжников”, состоящей из двух столбцов (фамилия, результат) и нескольких строк с результатами, создайте макрос, позволяющий вывести фамилию и результат спортсмена, показавшего лучший результат.

 

 

22. Товары 1.Заполните таблицу Товары. В отдельных ячейках создайте два поля со списками: в ячейке d10 – Товары (источник строк для списка – наименования товаров); в ячейке d11 – характеристика –список из трех позиций: цена, код производителя, кол-во на складе.

 

  Цена Код производителя Кол-во на складе
Компьютер      
Принтер      
Сканер      
Монитор      
Мышь      

 

Создайте кнопку, по нажатию на которую в ячейке b10 появляется значение, соответствующее заданному в первом списке товару и заданной во втором списке характеристике.

 

23. Товары 2. Заполните таблицу Товары. Создайте макрос для расчета Итого (кол-во и стоимость). Создайте кнопку для запуска макроса.

 

    Товар 1 Товар 2 Товар 3 Товар 4 Итого:
кол-во стоимость кол-во стоимость кол-во стоимость кол-во стоимость кол-во стоимость
Фирма 1                    
Фирма 2                    
Фирма 3                    
Фирма 4                    
Фирма 5                    

Итого:

 

24. Переименуйте Лист 1 в Меню, Лист2 в – БД. Создайте пользовательскую форму, содержащую три поля для ввода: наименование товара, цена и количество; надпись – стоимость, а также две кнопки Ок и Отмена. Стоимость вычисляется автоматически по формуле: цена* количество. При изменении данных в полях количество и цена стоимость должна пересчитываться. На листе Меню создайте кнопку для вызова созданной формы. Подготовьте программы для кнопок Ок и Отмена. По нажатию на кнопку Ок данные, введенные в форму, должны быть записаны на лист БД. При нажатии на кнопку Отмена форма должна исчезнуть с экрана.

 

25. Создайте пользовательскую форму для ввода фамилии клиента туристической фирмы, названия маршрута, цены путевки и размера скидки. В форме создайте надпись – стоимость,а такжекнопкииОтмена.Стоимость вычисляется автоматически по формуле: цена путевки – размер скидки* цена путевки. При изменении данных в полях цена путевки и размер скидки стоимость должна пересчитываться. На листе Меню создайте кнопку для вызова созданной формы. Подготовьте программы для кнопок Ок и Отмена. По нажатию на кнопку Ок данные, введенные в форму, должны быть записаны на лист БД. При нажатии на кнопку Отмена форма должна исчезнуть с экрана.

 

26. Переименуйте Лист1 в Меню, Лист2 – в Клиенты. На листе Клиенты введите несколько фамилий клиентов автосервиса. Создайте пользовательскую форму, содержащую поля для ввода – дата, причина обращения и поле со списком – клиент. На листе Меню создайте кнопку для вызова созданной формы. В появляющейся форме поле со списком должно быть заполнено.

 

27. Переименуйте Лист1 в Меню, Лист2 – в Должности, Лист3 – в Отделы. На листе Должности введите несколько должностей. На листе Отделы введите несколько наименований отделов. Создайте пользовательскую форму для отдела кадров, содержащую поле для ввода – фамилия нового сотрудника, два поля со списками – должность и отдел и кнопки Ок и Отмена. На листе Меню создайте кнопку для вызова созданной формы. В появляющейся форме поля со списками должны быть заполнены. Подготовьте программы для кнопок Ок и Отмена. По нажатию на кнопку Ок данные, введенные в форму, должны быть записаны на лист БД. При нажатии на кнопку Отмена форма должна исчезнуть с экрана.


Приложением называют объединение некоторого множества задач предметной области.

Этапы разработки приложения рассмотрим на примере создания приложения «Учет командировочных расходов». (Пример позаимствован из пособия «Информатика». Методические указания. Ч.2, см. литературу [3]).

 

Первый этап – Постановка задачи.

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

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

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

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

В нашем случае приложение «Учет командировочных расходов» можно представить как объединение 4-х задач:

1) ввод и накопление данных о сотрудниках предприятия, назовем ее «Сотрудники»;

2) ввод и накопление данных об организациях, в которые командируются сотрудники, назовем «Организации»;

3) ввод и накопление информации о конкретных командировках, назовем ее «Командировки»;

4) создание интерфейса, позволяющего объединить вышеперечисленные задачи, назовем «Меню».

 

Второй этап – экономико-математическое описание задачи и выбор метода ее решения.

Для первой задачи «Сотрудники» не требуется математического описания. Она предполагает создание списка или базы данных. Каждая запись будет хранить информацию об одном сотруднике. Поля записи – Ф.И.О., отдел, должность, телефон.

Задача «Организации» также предполагает создание списка или базы данных. Записи этой базы данных будут хранить сведения об организациях. Поля записей – наименование организации, адрес, телефон.

Для задачи «Командировки» выполним математическое описание. В этой задаче нужно рассчитать общую сумму расходов на командировку. Обозначим исходные данные:

Дни – количество дней командировки;

Суточные – размер суточных;

Билеты – стоимость билетов до города, в который командируется сотрудник и обратно.

Сумма – общая величина расходов на командировку.

Формула для расчета суммы расходов будет выглядеть так:

Сумма = Дни*Суточные + Билеты.

 

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

Четвертая задача – «Меню» предполагает создание меню для удобного взаимодействия пользователя с тремя базами данных.

Задачи «Сотрудники» и «Командировки» связаны между собой по фамилии сотрудника. Задачи «Организации» и «Командировки» связаны между собой по наименованию организации.

На рис. 14 представлены задачи приложения «Учет командировочных расходов», а также связи между этими задачами.


 
 

 


Рис. 14.Задачи, составляющие приложение

«Учет командировочных расходов»

 

Третий этап – Алгоритмизация.

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

 

Задача 1 – Сотрудники

 

Разработаем алгоритм для решения задачи Сотрудники. Словесное описание алгоритма:

1. Подготовка листа Excel для накопления данных о сотрудниках. Эта подготовка включает переименование листа, например, Листа1 в лист Сотрудники, и ввод заголовков столбцов. В нашем случае заголовки столбцов соответствуют полям записей о сотрудниках. Результат выполнения этого пункта см. на рис.15.

 

Рис.15. Лист Сотрудники

2. Подготовка формы для ввода информации на лист Сотрудники. Для этого надо ввести во вторую строку таблицы запись об одном сотруднике, например, Иванов А.М., Менеджер, Маркетинговый отдел, 123-45-67 и выполнить команду Данные –Форма. На экране появится встроенная форма с полями для ввода данных и несколькими кнопками для работы с базой данных.

После того, как в поля для ввода будут введены данные и нажата кнопка Ок информация об очередном сотруднике будет записана на лист «Сотрудники».

Таким образом, задача Сотрудники уже практически подготовлена для работы с ней. Этап Программирование для этой задачи пропускается.

 

Задача 2 – Организации

Алгоритм для решения задачи Организации аналогичен предыдущему. Описание алгоритма:

1. Подготовка листа Excel для накопления данных об организациях, в которые командируются сотрудники:

· переименование листа Лист2 в Организации;

· ввод заголовков столбцов (Наименование организации, Адрес, Телефон);

2. Подготовка формы для ввода информации на лист Организации:

· ввод информации об одной организации;

· выполнение команды Данные – Форма,заполнение полей автоформы, Ok.

Задача Организации, как и предыдущая практически решена. Этап Программирование для нее пропускается.

 

Задача 3 – Командировки

Разработку алгоритма для решения задачи «Командировки», как и первых двух задач, целесообразно начать с подготовки листа Excel для накопления данных о командировках:

1. Переименуем Лист3 в Командировки»и введем заголовки толбцов (Дата выезда, Ф.И.О. сотрудника, Наименование организации, Количество дней, Суточные, Стоимость билетов, Общая сумма).

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

2. Создание пользовательской формы начинается с проектирования. Предположим, что пользовательская форма будет выглядеть так, как показано на рис.16.

 

 

Рис.16. Пользовательская форма для ввода

сведений о командировке

 

Спроектированная пользовательская форма (ПФ) содержит четыре поля для ввода и два поля со списками. Поля для ввода (у нас это – TextBox1, TextBox2, TextBox3 и TextBox4) предназначены для того, чтобы пользователь вводил в них информацию. После того, как данные в поля Количество дней (TextBox2), Суточные (TextBox3) и Стоимость билетов(TextBox4) введены и если эти данные – числа, напротив надписи Общая сумма должна появиться сумма, рассчитанная по формуле:

Сумма=Дни*Суточные+Билеты.

Пересчет этой суммы должен производиться при каждом изменении содержимого полей Количество дней, Суточные и Стоимость билетов,т.е. в рамках задачи «Командировки»выделяется подзадача«Расчет суммы в ПФ».

Для того, чтобы можно было поместить результат расчета справа от надписи Общая сумма, необходимо сделать еще одну надпись в этом месте формы (Label8), появившееся слово Label8 удалить, но номер этой надписи (8) запомнить.

В спроектированной ПФ имеются две кнопки – Ок и Отмена. По нажатию на кнопку Ок информация из полей ввода должна быть записана на лист «Командировки». Это тоже отдельная подзадача. Назовем ее«Работа кнопки Ок в ПФ.

После нажатия на кнопку Отмена форму необходимо убрать с экрана. Назовем эту подзадачу «Работа кнопки Отмена в ПФ».

Таким образом, задача «Командировки» разбивается на пять подзадач см. рис.17.

 

       
 
 
   
3.4

 


Рис. 17. Декомпозиция задачи Командировки

 

Алгоритм решения подзадачи 3.1 – Подготовка листа Excel приведен в начале параграфа на стр. 59, это пункт, помеченный цифрой 1.

Алгоритм решения подзадачи 3.2 – Создание ПФ описан в параграфе Создание пользовательской формы, см. стр. 12.

Первые две подзадачи практически подготовлены для решения.

Для решения остальных подзадач разработаем детальные алгоритмы.

Подзадача 3.3 – Расчет суммы в ПФ

 

Словесное описание алгоритма:

1. Если содержимое поля Дни(у нас это – TextBox2.Text) – число и содержимое поля Суточные (TextBox3.Text) – число и содержимое поля Цена Билета (TextBox4.Text) – число, то выполняется пункт 2, в противном случае ничего не происходит.

2. В переменную Дни записывается содержимое поля Дни.

3. В переменную Суточные записывается содержимое поля Суточные (TextBox3.Text).

4. В переменную Билеты записывается содержимое поля Стоимость билетов (TextBox4.Text).

5. Содержимым надписи label8 становится результат расчета Дни*Суточные+Билеты.

Инструментальные средства Excel не позволяют исполнить этот алгоритм без программирования. Решение подзадачи будет продолжено на этапе Программирование.

 

Подзадача 3.4 – Работа кнопки Ок в ПФ

 

Словесное описание алгоритма:

1. Поиск на листе Командировки первой пустой строки, присваивание переменной Строка ее номера.

2. Запись на лист «Командировки» в строку с номером Строка:

· в столбец А – содержимого поля TextBox1;

· в столбец В – содержимого поля ComboBox1;

· в столбец С – содержимого поля со списком ComboBox2;

· в столбец D – содержимого поля TextBox2 ;

· в столбец E – содержимого поля TextBox3 ;

· в столбец F – содержимого поля TextBox4 ;

· в столбец G – содержимого надписи Label8.

3. Удаление ПФ с экрана.

Для решения подзадачи необходим этап Программирование.

 

Подзадача 3.5 – Работа кнопки Отмена в ПФ

По нажатию на кнопку Отмена в ПФ эту форму необходимо убрать с экрана. Для этого необходимо создать программу.

Итак, для решения подзадач 3.3, 3.4 и 3.5 необходимо записать разработанные алгоритмы на языке программирования. Эта работа будет выполняться на этапе Программирование.

 

Задача 4 – Меню

 

Разработку алгоритм для решения задачи Меню следует начать с проектирования меню, которое должно стать основой пользовательского интерфейса. Предположим, после запуска приложения на экране появится окно, показанное на рис. 18.

 

Рис. 18. Окно Меню

 

Вид этого окна зависит от требований заказчика.

Спроектированное нами окно содержит надпись, сделанную с помощью объекта WordArt, и четыре кнопки.

Работа каждой кнопки – это отдельная подзадача.

Таким образом, в рамках задачи Меню решается пять подзадач см. рис.19.

 

 


Рис.

               
 
4.2
 
4.3
 
4.5
     
4.2
 

 


Рис. 19. Декомпозиция задачи Меню

Для решения каждой из подзадач разработаем детальные алгоритмы.

Подзадача 4.1 – Создание окна Меню

Словесное описание алгоритма:

1. Добавление листа Excel (команда Вставка-Лист) и переименование его в лист «Меню».

2. Выполнение надписи «Учет командировочных расходов».с помощью объекта WordArt.

3. Создание кнопок с помощью панели инструментов Рисование.

 

Подзадача 4.2 – Работа кнопки «Новый сотрудник»

После нажатия на кнопку Новый сотрудник на экране должна появиться встроенная форма для ввода информации о новом сотруднике.

Инструментальные средства Excel не позволяют решить подзадачу без программирования. Работа с этой подзадачей будет продолжена на этапе Программирование.

 

Подзадача 4.3 – Работа кнопки «Новая организация»

После нажатия на кнопку Новая организация на экране должна появиться встроенная форма для ввода данных на лист «Организации».

Для решения подзадачи необходим этап Программирование.

 

Подзадача 4.4 – Работа кнопки «Новая командировка»

После нажатия на кнопку Новая командировка на экране должна появиться созданная нами пользовательская форма Новая командировка –UserForm1.Однако пользовательская форма не подготовлена для работы, т.к. в ней не были заполнены поля со списками.

В пользовательской форме UserForm1 присутствуют два поля со списками – Список сотрудников ( у нас – ComboBox1) и Список организаций (у нас – ComboBox2). Алгоритмы для заполнения полей со списками могут быть разные. Приведем один из вариантов.

1. Объявление переменных. Обозначим NS – номер последней заполненной строки на листе Сотрудники, NORG – номер последней заполненной строки на листе Организации. Объявим переменные NS и NORG как целые. Объявим также две строковых переменных DS и DORG для запоминания диапазонов, содержащих фамилии сотрудников и наименования организаций.

2. Определение последней заполненной строки в столбце А на листе Сотрудники – NS.

3. Определение последней заполненной строки на листе Организации – NORG.

4. Определение диапазона фамилий сотрудников (фамилии записаны в столбце А, начиная со второй строки и заканчиваясь строкой номер NS).

5. Определение диапазона наименований организаций (со второй по NORG-ю строку столбца А).

6. Присваивание имени «Сотр» диапазону, содержащему фамилии сотрудников.

7. Присваивание имени «Орг» диапазону, содержащему наименования организаций.

8. В ПФ Новая командировка (UserForm1) очистка всех полей для ввода: Дата выезда (TextBox1), Количество дней (TextBox2), Суточные (TextBox3), Цена билета (TextBox4), Фамилия И.О. (ComboBox1), Организация (ComboBox2).

9. Указание источника строк для поля со списком Фамилия И.О (ComboBox1) – «Сотр».

10. Указание источника строк для поля со списком Организация (ComboBox2) – «Орг».

11. Вывод ПФ на экран.

Работа с подзадачей будет продолжена на этапе «Программи-рование».


Подзадача 4.5 – Работа кнопки «Выход»

После нажатия на кнопку Выход приложение должно закрыться.

Для этого необходимо создать программу.

Итак, для подзадач 4.2, 4.3, 4.4, 4.5 необходимо записать разработанные алгоритмы на языке программирования. Эта работа выполняется на этапе «Программирование».

 

 

Четвертый этап – Программирование.

Как было показано выше, при подготовке к решению первой и второй задач этап «Программирование» пропускается.

При подготовке третьей задачи необходимо составить программы для трех подзадач: