Код программы: Option Strict On Option Explicit On Module module1 Public n As Integer \

Код программы: Option Strict On Option Explicit On Module module1 Public n As Integer ' Количество школьников Public m As Integer ' Количество оценок






Скачать 147.74 Kb.
НазваниеКод программы: Option Strict On Option Explicit On Module module1 Public n As Integer ' Количество школьников Public m As Integer ' Количество оценок
Спиридонов Сергей Александрович
Дата конвертации21.07.2013
Размер147.74 Kb.
ТипЛабораторная работа
Лабораторная работа 5-1

«Стандартные модули и
модульная структура приложений в VB»




Автор:

Спиридонов Сергей Александрович

(БИН1205)


Вариант №22

2. Задание на разработку проекта и вариант задания:


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



3.Формализация и уточнение задания.

  1. Тема и название работы

  2. Задание на разработку проекта и вариант задания

  3. Формализация задания

  4. Разработка проекта:

  1. Графический интерфейс пользователя;

  2. Таблица свойств объектов;

  3. Программный код с использованием процедур.

  1. Результаты выполнения проекта.

  2. Доказательство правильности работы программы.


4.1. Разработка графического интерфейса пользователя





4.4.Написание программного кода с использованием процедур

Код программы:

Option Strict On

Option Explicit On

Module module1

Public n As Integer ' Количество школьников

Public m As Integer ' Количество оценок

Public osh(,) As Integer ' Оценки, полученные за год

Public fam() As String ' Фамилии школьников

Public pr4 As Single ' процент хорошистов

Public pr5 As Single ' процент отличников

Public so() As Double ' Средние оценки, полученные за год


Sub vivod(ByVal z As String, ByVal T As TextBox)

T.Text = z

End Sub

'Процедура вывода строкового массива данных

Public Sub VivodMasStr(ByVal a() As String, ByRef z As String)

Dim i As Integer

z = ""

For i = 0 To UBound(a)

z = z + a(i) + vbNewLine

Next

End Sub

'Процедура вывода вещественного массива данных

Public Sub VivodMas(ByVal a() As Double, ByRef z As String)

Dim i As Integer

z = ""

For i = 0 To UBound(a)

z = z + Format(a(i), "0.0000") + vbNewLine

Next

End Sub

'Процедура вывода двумерного массива

'(собираем матрицу в одну строку)

Sub vivodMatr(ByRef x(,) As Integer, ByVal n As Integer, _

ByVal m As Integer, ByRef z As String)

Dim i, j As Integer

z = ""

For i = 0 To n - 1

For j = 0 To m - 1

z = z + CStr(x(i, j)) & Space(3)

Next j

z = z + vbNewLine

Next i

End Sub


' Определение массива средних баллов каждого студента so(i)

Public Sub sred(ByVal n As Integer, ByVal m As Integer, _

ByRef oc(,) As Integer, ByRef so() As Double)

Dim i, j As Integer

Dim s As Double

For i = 0 To n - 1

s = 0

For j = 0 To m - 1

s = s + oc(i, j)

Next j

so(i) = s / m

Next i

End Sub


End Module


Option Strict On

Imports System.IO

Public Class Form1

'Процедура построчного чтения сведений о студентах из тек. файла,

'для подсчета числа студентов

Sub readfile(ByVal filename As String, ByRef n As Integer)

Dim f = New StreamReader(filename)

Dim line As String

n = 0

Try

Do While Not (f.EndOfStream)

line = f.ReadLine()

n = n + 1

Loop

f.Close()

Catch ex As Exception

MsgBox("Невозможно прочитать данные из файла")

End Try

End Sub

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

'и создание массива фамилий студентов и массива оценок

Sub vvod(ByVal filename As String, ByVal n As Integer, _

ByRef m As Integer, ByRef fam() As String, _

ByRef oc(,) As Integer)

Dim i, j As Integer

Dim line As String

Dim buf() As String

Dim f As New StreamReader(filename)

Try

i = 0

Do While Not (f.EndOfStream)

line = f.ReadLine()

'Удаление из строки возможных лишних пробелов

'(цикл замены двух пробелов одним)

Do While line.IndexOf(Space(2)) >= 0

line = line.Replace(Space(2), Space(1))

Loop


If line = "" Then

n = n - 1

MsgBox("В файле есть пустая строка")

Exit Sub

Else

buf = Split(line, Space(1))

' При обработке первой строки файла(при i = 0)определяем

' кол-во экзаменов m и выделяем память массив оценок oc(,)

If i = 0 Then

'длина массива buf() -кол-во экзаменов минус фамилия

m = buf.Length - 1

ReDim oc(n - 1, m - 1)

End If

'Первый элемент этого массива buf()-фамилия,следующие-оценки

fam(i) = buf(0)

For j = 0 To m - 1

oc(i, j) = CInt(buf(j + 1))

Next

End If

i = i + 1

Loop

f.Close()

Catch ex As Exception

MsgBox("Невозможно прочитать данные из файла")

End Try

n = i

End Sub

Private Sub GetFileName()

OpenFileDialog1.Title = "Please Select a File"

OpenFileDialog1.InitialDirectory = "C:temp"

OpenFileDialog1.ShowDialog()

End Sub

'кнопка для ввода из файла

Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles Button1.Click

GetFileName()

End Sub

'кнопка для перехода на 2-ю форму

Private Sub Button2_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles Button2.Click

Form2.Show()

End Sub


'Процедура для окончания работы программы

Private Sub Button3_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles Button3.Click

End

End Sub


Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk

Dim s As String = ""

s = OpenFileDialog1.FileName.ToString()

readfile(s, n)

ReDim fam(n - 1)

vvod(s, n, m, fam, osh)

ReDim so(n - 1)

'вызов процедуры вычисления среднего балла каждого студента

'и общего среднего балла группы

sred(n, m, osh, so)

'вывод данных на форму

VivodMasStr(fam, s)

TextBox1.Text = s

vivodMatr(osh, n, m, s)

TextBox2.Text = s

VivodMas(so, s)

TextBox3.Text = s

End Sub

End Class


Option Strict On

Imports System.IO

Public Class Form2

'Процедура сортировки массива средних оценок по убыванию

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

Sub sort(ByRef so() As Double, ByRef fam() As String, ByRef b(,) As Integer, _

ByVal n As Integer)

Dim i, j, h, p As Integer

Dim m As Double

Dim c As String

For i = n - 1 To 1 Step -1

For j = 1 To i

If so(j) > so(j - 1) Then

m = so(j) : so(j) = so(j - 1) : so(j - 1) = m

c = fam(j) : fam(j) = fam(j - 1) : fam(j - 1) = c

For h = 0 To UBound(b, 2)

p = b(j, h) : b(j, h) = b(j - 1, h) : b(j - 1, h) = p

Next

End If

Next

Next

End Sub

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

Sub writefile(ByVal filename As String, ByVal fam() As String, _

ByVal so() As Double)

Dim wf As StreamWriter = File.CreateText(filename)

Dim s As String

Dim i, k As Integer

k = fam.Length - 1

For i = 0 To k

s = fam(i) + " " + CStr(so(i))

wf.WriteLine(s)

Next

wf.Flush() : wf.Close()

End Sub

'Процедура вывода отличников

Public Sub VivodEx(ByVal a() As String, ByVal b() As Double, ByRef z As String)

Dim i As Integer

z = ""

For i = 0 To UBound(a)

If b(i) = 5 Then

z = z + a(i) + vbNewLine

End If

Next

End Sub

'Процедура вывода хорошистов

Public Sub VivodGood(ByVal a() As String, ByVal b(,) As Integer, ByRef z As String)

Dim i, j As Integer

Dim b1 As Boolean

z = ""

For i = 0 To UBound(a)

b1 = False

For j = 0 To UBound(b, 2)

If b(i, j) < 4 Then

b1 = False

Exit For

End If

If b(i, j) = 4 Then

b1 = True

End If

Next

If b1 Then

z = z + a(i) + vbNewLine

End If

Next

End Sub

Private Sub GetPercent(ByRef a As String)

Dim p As Double

p = Split(a, vbNewLine).Length - 1

p = p * 100 / n

a = CStr(p)

End Sub

Private Sub GetFileName()

OpenFileDialog1.Title = "Please Select a File"

OpenFileDialog1.InitialDirectory = "C:temp"

OpenFileDialog1.ShowDialog()

End Sub

'кнопка "Решить задачу"

Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles Button1.Click

Dim z As String = "" 'строка для вывода массивов

sort(so, fam, osh, n)

VivodMasStr(fam, z)

TextBox3.Text = z

VivodMas(so, z)

TextBox4.Text = z

VivodEx(fam, so, z)

TextBox5.Text = z

GetPercent(z)

TextBox1.Text = z

VivodGood(fam, osh, z)

TextBox6.Text = z

GetPercent(z)

TextBox2.Text = z

End Sub

'кнопка "Записать в файл"

Private Sub Button2_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles Button2.Click

GetFileName()

End Sub

'Процедура для окончания работы программы

Private Sub Button3_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles Button3.Click

End

End Sub


Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk

writefile(OpenFileDialog1.FileName.ToString, fam, so)

End Sub

End Class


5. Результаты выполнения проекта








Ваша оценка этого документа будет первой.
Ваша оценка:

Похожие:

Код программы: Option Strict On Option Explicit On Module module1 Public n As Integer \Урок по информатике в 10 классе - Задачи урока: образовательная знакомство учащихся с элементами управления Option Button (переключатели) и Checkbox (флажки) для создания тестирующих программ; развивающие
65.7kb.   «Создание тестирующей программы в программе Visual Basic c использованием элементов управления Option Button (переключатель) и Checkbox...
Код программы: Option Strict On Option Explicit On Module module1 Public n As Integer \Public-Speaking - Ект Public Speaking, который был рассчитан на учащихся 9-11 классов и нацелен на совершенствование коммуникативных навыков и формирование основ ораторского маст
20.5kb.   Мы, коллектив школы иностранных языков Streamline завершили работу по социальному проекту Public-Speaking (английский язык) среди...
Код программы: Option Strict On Option Explicit On Module module1 Public n As Integer \Public: Xolodilnik(char marka[])
26.6kb.  
Код программы: Option Strict On Option Explicit On Module module1 Public n As Integer \Dim rgbcolor As Integer ' цвет грани
80.7kb.  
Код программы: Option Strict On Option Explicit On Module module1 Public n As Integer \Dim rgbcolor As Integer ' цвет грани
87.6kb.  
Код программы: Option Strict On Option Explicit On Module module1 Public n As Integer \Dim rgbcolor As Integer ' цвет грани
116kb.  
Код программы: Option Strict On Option Explicit On Module module1 Public n As Integer \Dim rgbcolor As Integer ' цвет грани
99.2kb.  
Код программы: Option Strict On Option Explicit On Module module1 Public n As Integer \Dim rgbcolor As Integer ' цвет грани
61.5kb.  
Код программы: Option Strict On Option Explicit On Module module1 Public n As Integer \Dim rgbcolor As Integer ' цвет грани
40.8kb.  
Код программы: Option Strict On Option Explicit On Module module1 Public n As Integer \Dim rgbcolor As Integer ' цвет грани
111.8kb.  
Разместите кнопку на своём сайте:
Рефераты


База данных защищена авторским правом ©CoolReferat 2000-2018
обратиться к администрации | правообладателям | пользователям
Основная база рефератов
Рефераты