21-01-2013_19-45-38 / lab_11
.doc
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РБ
БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
АВТОТРАКТОРНЫЙ ФАКУЛЬТЕТ
КАФЕДРА «ЭКОНОМИКИ И ЛОГИСТИКИ»
Контрольная работа
по дисциплине «Информатика»
на тему «Создание приложения Расчет следующего дня Visual Basic»
Выполнила: студентка
группы № 306851
Александрович Д.О.
Приняла: ст. преподаватель
Стефанович Н.В.
Минск 2012-2013
В ходе выполнение контрольной работы было создано приложение на языке Visual Basic. Приложение позволяет по введенным
-
году;
-
дню недели;
-
месяцу;
-
числу месяца
рассчитать следующий день. Алгоритм работы приложения использует наиболее типовые конструкции языка, такие как условные циклы, Select Case условия и другие. Алгоритм содержит несколько узких мест, связанных с вычислениями в случае високосного года и в случае конца года. После ввода исходных данных пользователь получает сообщение на экран с датой и днем недели следующего дня.
В приложении возможны некоторые улучшения, среди которых наиболее стоит выделить
-
валидацию данных, введенных пользователем: данное улучшение позволит избежать ошибок в процессе выполнения программы и улучшит дружелюбность приложения;
-
добавление поддержки других календарей, кроме григорианского. Данное улучшение позволит сделать приложение по-настоящему универсальным и отвечающим требованиям любого пользователя из любой страны мира.
Ниже приведены снимки рабочего стола, выполненные в процессе работы и разработки приложения, а также листинг исходного кода с комментариями.
Рисунок 1 - Работа над исходным кодом приложения
Рисунок 2 – Приложение готово к работе
Рисунок 3 - Введены данные для високосного года
Рисунок 4 - Сообщение пользователю в случае данных из Рисунка 3
Рисунок 5 - Пример работы программы при необходимости перейти на новый год
Private Sub Command1_Click() ‘процедуры обработки нажатия на кнопку
Dim nextM, nextDay As String ‘объявим 2 переменные строкового типа
Dim nM, nD As Integer ‘и две переменные целочисленного типа, которые будут хранить следующий день недели и месяц
nM = (Combo1(1).ListIndex + 1) Mod 12 ‘подсчитаем номер следующего месяца
nD = (Combo1(0).ListIndex + 1) Mod 7 ‘и номер следующего дня
nextM = Combo1(1).List(nM) ‘запомним имя следующего месяца
nextDay = Combo1(0).List(nD) ‘и имя следующего дня
Dim day As Integer ‘объявим целочисленную переменную для хранения дня
day = CInt(Text1(1)) ‘считаем введенный пользователем день
Dim year As Integer ‘объявим еще одну переменную для хранения года
year = CInt(Text1(0)) ‘и считаем ее
Select Case Combo1(1).ListIndex ‘объявим Select Case условия для проверки, не является ли день последним в месяце
Case 0, 2, 4, 6, 7, 9, 11 ‘в случае, если у нас 31 день в месяце
If day <> 31 Then ‘если день не 31 то
nextM = Combo1(1).List(Combo1(1).ListIndex) ‘оставим текущий месяц
day = day + 1 ‘увеличим номер дня на 1
Else ‘иначе
day = 1 ‘у нас будет первый день следующего месяца
End If ‘конец условного цикла
Case 3, 5, 8, 10 ‘в случае , если в месяце 30 дней
If day <> 30 Then ‘если день не является последним
nextM = Combo1(1).List(Combo1(1).ListIndex) ‘запомним текущий месяц
day = day + 1 ‘увеличим день на 1
Else ‘иначе
day = 1 ‘у нас новый месяц последнего дня
End If ‘конец условного цикла
Case Else ‘в случае если не 31, и не 30 дней, то это февраль.
Dim feb As Integer ‘объявим переменную для хранения количества дней в феврале
If year Mod 4 = 0 Then ‘если год делится на 4, то он високосный
feb = 29 ‘и в феврале 29 дней
Else ‘иначе
feb = 28 ‘в феврале 28 дней
End If ‘конец условного цикла
If day <> feb Then ‘если у нас не последний день
nextM = Combo1(1).List(Combo1(1).ListIndex) ‘запомним текущий месяц
day = day + 1 ‘увеличим текущий день
Else ‘иначе
day = 1 ‘это будет первый день марта
End If ‘конец условного цикла
End Select ‘конец блока Select
If day = 1 And nextM = "January" Then ‘Если у нас новый день это 1 января, то мы перешли на следующий год
year = year + 1 ‘увеличим номер года на 1
End If ‘конец условного цикла
MsgBox nextDay & "; " & nextM & " " & day & ", " & year ‘выведем информацию пользователю
End Sub ‘конец процедуры
Список использованной литературы:
-
http://yandex.ru/
-
http://www.kodges.ru/19286-illjustrirovannyjj-samouchitel-po-visual-basic-6.0.html/
-
С.Н. Лукин – Visual Basic. Самоучитель для начинающих.