Автор работы: Пользователь скрыл имя, 11 Ноября 2012 в 15:30, практическая работа
Цель: изучение синтаксиса Visual Basic.NET, описание и использование переменных, массивов, освоение технологий работы с серверными элементами управления ASP.NET - (Label, Textbox, Button, CheckBox, RadioButton, ComboBox); разработка Windows-приложений на языке Visual Basic.Net.
Для выполнения данного задания было создано 7 Windows-форм и 1 внешний модуль.
Файл Module1.vb
Module Module1
Public K As Double 'переменная с атрибутом доступа public для подсчета верных ответов
End Module
Файл FormStart.vb
Public Class FormStart
Private Sub FormStart_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
'При нажатии на кнопку закрыть данную форму и открыть первый вопрос
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Hide()
K = 0
FormQ1.Show()
End Sub
End Class
Файлы FormQ1.vb, FormQ2.vb … FormQ5.vb имеют следующий вид:
Public Class FormQ1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'увеличение счетчика при выборе верного ответа
If RadioButton3.Checked = True Then
K = K + 1
End If
Me.Hide() 'закрыть текущее окно
FormQ2.Show() 'открыть окно со след.вопросом
End Sub
End Class
Файл FormFinish.vb
Public Class FormFinish
Private Sub FormFinish_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'вывод результатов
LabelResult.Text = Convert.ToString(K) + " из 5"
If ((K / 5) < 0.6) Then
LabelItog.Text = "Вы не сдали тест"
Else
LabelItog.Text = "Тест успешно сдан"
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Hide() 'закрыть окно при завершении теста
End Sub
End Class
Выполненное задание выглядит следующим образом:
Рисунок 3.3.1-7 – Окна разработанного приложения «Тест по ASP.NET»
Задание 4. "Термины ASP.NET"
Создайте приложение из 5 основных терминов, характеризующих ASP.NET. Для мини-словаря используйте конструкцию Select-Case. Дополнительный балл: Предоставьте пользователю возможность добавлять свой термин и его определение. При этом элементы должны размещаться в алфавитном порядке.
Файл FormDictionary.vb
Public Class FormDictionary
Dim N As Integer
Dim definition(5) As String
Private Sub FormDictionary_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
N = 4
'инициализация массива для определений терминов
definition(0) = "ASP.NET Web Forms - это технология разработки веб-приложений, основная цель которой - сделать веб-разработку такой же простой и визуальной, как и разработку оконных приложений."
definition(1) = "Common Language Runtime (англ. CLR — общеязыковая исполняющая среда) — виртуальная машина, интерпретирующая и исполняющая код на языке CIL, в который компилируются программы, написанные, в частности, на .NET-совместимых языках программирования (C#, Managed C++, Visual Basic .NET, Visual J# и т. п.); компонент пакета Microsoft .NET Framework."
definition(2) = "Веб-обозреватель, обозреватель, браузер (от англ. Web browser) — программное обеспечение для просмотра веб-сайтов, то есть для запроса веб-страниц (преимущественно из Сети), их обработки, вывода и перехода от одной страницы к другой."
definition(3) = "Веб-формы — это страницы, запрашиваемые пользователями через браузер и образующие пользовательский интерфейс, обеспечивающий возможность взаимодействия и создающий внешний вид веб-приложений."
definition(4) = "Пространство имён (англ. namespace) — некоторое множество, под которым подразумевается модель, абстрактное хранилище или окружение, созданное для логической группировки уникальных идентификаторов (то есть имён). "
End Sub
Private Sub ListBox1_SelectedIndexChanged(
Dim i As Integer
i = ListBox1.SelectedIndex() 'определение индекса выбранного термина
Label1.Text = definition(i) 'вывод соответсующего определения
End Sub
'функция добавления нового термина
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim List As String = ""
Dim Def As String = ""
List = InputBox("Введите новый термин", "Добавить", , , )
If StrComp(List, "") <> 0 Then
Def = InputBox("Дайте ему определение", "Добавить", , , )
If StrComp(Def, "") <> 0 Then
ListBox1.Items.Add(List)
N = N + 1
ReDim Preserve definition(N)
definition(N) = Def
'сортировка терминов по алфавиту
For i = 0 To N - 1 Step 1
If StrComp(ListBox1.Items.Item(N - i), ListBox1.Items.Item(N - i - 1), 1) <= 0 Then
List = ListBox1.Items.Item(N - i)
ListBox1.Items.Item(N - i) = ListBox1.Items.Item(N - i - 1)
ListBox1.Items.Item(N - i - 1) = List
Def = definition(N - i)
definition(N - i) = definition(N - i - 1)
definition(N - i - 1) = Def
End If
Next i
End If
End If
End Sub
End Class
Рисунок 3.4.1 – Стартовая форма приложения
Рисунок 3.4.2 – Выбор конкретного
термина и вывод его
Рисунок 3.4.3 – Добавление нового термина в словарик
Рисунок 3.4.4 – Отсортированный список терминов
Задание 5. "Интернет-магазин"
Создайте приложение, которое позволяет определить суммарный спрос на товары Интернет-магазина по каждому наименованию. В магазине имеются товары 5 различных наименований. В течение дня каждый из 10 покупателей сообщил о своем намерении приобрести определенное количество товара одного из наименований. Расположите товары в порядке убывания дневного спроса на них.
Дополнительный балл: Разработайте подпрограмму "Корзина покупателя", которая открывается в отдельном окне и возвращает перечень выбранных пользователем товаров.
Для выполнения данного задания было создано 2 Windows-формы и 1 внешний модуль.
Файл Module1.vb
Module Module1
Public demand() As Integer = {0, 0, 0, 0, 0} 'массив для подсчета спроса на каждый товар
Public product(5) As String 'массив для хранения наименований товаров
End Module
Файл FormShop.vb
Public Class FormShop
Private Sub FormShop_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
product(0) = "Печенье"
product(1) = "Пряники"
product(2) = "Сушки"
product(3) = "Зефир"
product(4) = "Вафли"
End Sub
'функция подсчета спроса на каждый товар
Private Sub ButtonDemand_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDemand.Click
demand(0) = CheckBox1_1.CheckState + CheckBox2_1.CheckState + CheckBox3_1.CheckState + CheckBox4_1.CheckState + CheckBox5_1.CheckState + CheckBox6_1.CheckState + CheckBox7_1.CheckState + CheckBox8_1.CheckState + CheckBox9_1.CheckState + CheckBox10_1.CheckState
demand(1) = CheckBox1_2.CheckState + CheckBox2_2.CheckState + CheckBox3_2.CheckState + CheckBox4_2.CheckState + CheckBox5_2.CheckState + CheckBox6_2.CheckState + CheckBox7_2.CheckState + CheckBox8_2.CheckState + CheckBox9_2.CheckState + CheckBox10_2.CheckState
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
demand(4) = CheckBox1_5.CheckState + CheckBox2_5.CheckState + CheckBox3_5.CheckState + CheckBox4_5.CheckState + CheckBox5_5.CheckState + CheckBox6_5.CheckState + CheckBox7_5.CheckState + CheckBox8_5.CheckState + CheckBox9_5.CheckState + CheckBox10_5.CheckState
FormDemand.Show() 'открытие формы с суммарным спросом
End Sub
'функции отборажения корзин потребителей
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Message As String = "Покупатель №1 выбрал "
If CheckBox1_1.CheckState = 1 Then
Message = Message + product(0) + " "
End If
If CheckBox1_2.CheckState = 1 Then
Message = Message + product(1) + " "
End If
If CheckBox1_3.CheckState = 1 Then
Message = Message + product(2) + " "
End If
If CheckBox1_4.CheckState = 1 Then
Message = Message + product(3) + " "
End If
If CheckBox1_5.CheckState = 1 Then
Message = Message + product(4) + " "
End If
MsgBox(Message, , "Покупатель №1")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim Message As String = "Покупатель №2 выбрал "
If CheckBox2_1.CheckState = 1 Then
Message = Message + product(0) + " "
End If
If CheckBox2_2.CheckState = 1 Then
Message = Message + product(1) + " "
End If
If CheckBox2_3.CheckState = 1 Then
Message = Message + product(2) + " "
End If
If CheckBox2_4.CheckState = 1 Then
Message = Message + product(3) + " "
End If
If CheckBox2_5.CheckState = 1 Then
Message = Message + product(4) + " "
End If
MsgBox(Message, , "Покупатель №2")
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim Message As String = "Покупатель №3 выбрал "
... ... ... ... ... ... ... ... ... ... ... ... ...
MsgBox(Message, , "Покупатель №3")
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim Message As String = "Покупатель №4 выбрал "
... ... ... ... ... ... ... ... ... ... ... ... ...
MsgBox(Message, , "Покупатель №4")
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim Message As String = "Покупатель №5 выбрал "
... ... ... ... ... ... ... ... ... ... ... ... ...
MsgBox(Message, , "Покупатель №5")
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Dim Message As String = "Покупатель №6 выбрал "
... ... ... ... ... ... ... ... ... ... ... ... ...
MsgBox(Message, , "Покупатель №6")
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
Dim Message As String = "Покупатель №7 выбрал "
... ... ... ... ... ... ... ... ... ... ... ... ...
MsgBox(Message, , "Покупатель №7")
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
Dim Message As String = "Покупатель №8 выбрал "
... ... ... ... ... ... ... ... ... ... ... ... ...
MsgBox(Message, , "Покупатель №8")
End Sub
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
Dim Message As String = "Покупатель №9 выбрал "
... ... ... ... ... ... ... ... ... ... ... ... ...
MsgBox(Message, , "Покупатель №9")
End Sub
Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
Dim Message As String = "Покупатель №10 выбрал "
... ... ... ... ... ... ... ... ... ... ... ... ...
MsgBox(Message, , "Покупатель №10")
End Sub
End Class
Файл FormDemand.vb
Public Class FormDemand
Private Sub FormDemand_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim number() As Integer = {0, 1, 2, 3, 4}
Dim temp As Integer
'упорядочивание товаров по убыванию спроса на них
For i = 0 To 3 Step 1
For j = i To 4 Step 1
If demand(i) <= demand(j) Then
temp = demand(i)
demand(i) = demand(j)
demand(j) = temp
temp = number(i)
number(i) = number(j)
number(j) = temp
End If
Next j
Next i
'вывод наименований
Label1.Text = product(number(0))
Label2.Text = product(number(1))
Label3.Text = product(number(2))
Label4.Text = product(number(3))
Label5.Text = product(number(4))
'вывод спроса
Label11.Text = demand(0)
Label12.Text = demand(1)
Label13.Text = demand(2)
Label14.Text = demand(3)
Label15.Text = demand(4)
End Sub
End Class
Описание работы приложения
Рисунок 3.5.1 – Стартовая форма приложения
На рисунке 3.5.1 изображена стартовая форма приложения модели интернет-магазина. Напротив наименований товаров расположены объекты CheckBox в 10 столбцов, которые предназначены для каждого покупателя. Т.е. 10 покупателей выбирает некоторое количество определенных товаров посредством установления «птички» напротив выбранного наименования. По нажатию кнопки «Посчитать спрос» выводится статистика суммарного спроса по каждому наименованию.
Рисунок 3.5.2 – Выбор товаров покупателями
Рисунок 3.5.3 – Спрос на товар
Также можно посмотреть, что выбрал каждый из покупателей в отдельном окне, выбрав кнопку «Кi» - корзина i-го покупателя:
Рисунок 3.5.4 – Корзина покупателя №1
Персональное задание.
Разработайте приложение, в котором обеспечивается проверка достоверности ввода номера кредитной карты по алгоритму Luhn. Алгоритм Luhn – это формула, которая объединяет цифры номера кредитной карты (удваивая каждую из них) и проверяет, делится ли итоговая сумма на 10. Если условие выполняется, то номер кредитной карты корректен и может быть использован для оплаты.
Файл Form1.vb
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'проверка на ввод числа
If IsNumeric(TextBox1.Text) And (TextBox1.Text <> "0") Then
Dim n As Integer = TextBox1.Text.Length
Dim CNumber(n) As Char
CNumber = TextBox1.Text.ToCharArray
Dim Number(n) As Integer
If CNumber(0) = "-" Then
LMsg.Text = "Введите положительное число"
Else
'разделение ввденной строки-числа на массив цифр
For i = 0 To n - 1
Number(i) = Val(CNumber(i))
Next
Dim test As Double = 0
'проверка достоверности номера по алгоритму Luhn
For i = 0 To n - 1
test = test + 2 * Number(i)
Next
If (test Mod 10) Then
LMsg.Text = "Неверный номер кредитной карты"
Else
LMsg.Text = "Номер кредитной карты верный"
End If
End If
Else
LMsg.Text = "Введите число"
End If