Най-четените учебни материали
Най-новите учебни материали
***ДОСТЪП ДО САЙТА***
ДО МОМЕНТА НИ ПОСЕТИХА НАД 2 500 000 ПОТРЕБИТЕЛИ
БЕЗПЛАТНИТЕ УЧЕБНИ МАТЕРИАЛИ ПРИ НАС СА НАД 7 700
Ако сме Ви били полезни, моля да изпратите SMS с текст STG на номер 1092. Цената на SMS е 2,40 лв. с ДДС.
Вашият СМС ще допринесе за обогатяване съдържанието на сайта.
SMS Login
За да използвате ПЪЛНОТО съдържание на сайта изпратете SMS с текст STG на номер 1092 (обща стойност 2.40лв.)Да се направи Windows приложение за изчисляване на оптималната големина на партидата(l) на различни детайли |
![]() |
![]() |
![]() |
Задание Да се направи Windows приложение за изчисляване на оптималната големина на партидата(l) на различни детайли, при ртимична потребност и зададени:
Програмата трябва да може да изчислява и ритмичността на партидата: r= (дни) Приложението трябва да позволява записване на резултатите в база данни. Обща диаграма на процеса След като бъдат въведени входните данни от заданието, приложението ги подава на изчислителния процес, който представлява две формули за изчисление на ОГП и ритмичността. Резултата се извежда на екрана и при желание от потребителя може да бъде запаметен в базата от данни. Реализация Програмата е реализирана на езика Visual Basic 6.0. Интерфейса е реализиран чрез 2 форми. В първата от тях се въвеждат всички необходими данни и се правят изчисленията, тя е основната форма (frmMain). Другата форма е помощна и от нея се въвеждат нови детайли Достъпът до данните се осъществава чрез 3 Data контроли, свързани към таблиците от базата данни. За въвеждане на входните данни се използват няколко текстови полета (textBox) които са свързани (bounded) към Data контролите и служат както за въвеждане на нови данни, така и за извеждане на вече записаните в базата данни. За извеждането на резултата се използват също две такива свързани полета. Разликата е, че те са заключени така че потребителят да не може да пише в тях. Тъй като тези полета съдържат резултатите от изчисленията, не би следвало потребителя да попълва нещо в тях. По сложно е избирането на детайл. Както ще стане ясно по нататък в базата данни се записва само ID(номер) на детайла, който се взима от таблицата “детайли”. Това е направено с цел спестяване на памет и по-голяма яснота кое изчисление за кой детайл се отнася. Реализирано е със специален Data Bound Combo Box, който е отделна ActiveX контрола. Помощната форма служи единствено за добавяне на нови детайли. Тя се състои само от едно свързано поле. Извиква се чрез бутона “Нов Детайл”. При изход от нея се опреснява съдържанието на Combo Box-а, за да се появи в него току що въведения детайл. И при двете форми въвеждането на данни става чрез два бутона. По този начин въвеждането се разделя на три части: - подготовка на базата за нови данни - въвеждане от потребителя на новите данни - добавяне на новите данни в базата ИЛИ отказване на операцията Така потребителят може да се откаже от операцията по средата на въвеждането. Организация на базата данни Базата данни е направена на ACCESS 97. Файлът е наименован “ogplog97.mdb”. Тя съдържа две таблици свързани помежду си. Първата таблица се казва “OgpRez”. В нея всеки запис включва входните данни и изчислените оптимална големина на партидата и ритмичност. Другата таблица се състои само от две полета. Първото поле е ключ е Autonumber. То представлява уникален код за всеки датайл. Второто поле съдържа наименованието на детайла. Тази таблица спестява доста памет, тъй като ако вместо нея имаше само една таблица и всеки път трябваше да се въвежда име на детайл в поле от тип (Text – низ) всеки символ от този низ заема по 1 byte. Докато в този вариант винаги е 4 bytes, което позволява същесвуването на 4 294 967 296 различни детайла в базата. Ето и структурата на самите таблици: Таблица “OgpRez”
Двете таблици са свързани чрез полетата си IDDet , като връзката е от типа 1->М (1 откъм таблица “Detail” и М откъм таблица “OgpRez”) – на един детайл съответстват много изчисления с различни параметри. Компоненти на програмата Списък с компонентите на програмата и техните характеристики:
Променливи в програмата:
frmMain
Dim dbll As Double Dim intdr As Integer Dim curKa As Currency Dim curKs As Currency Dim curKm As Currency Dim dblNzn As Double Dim dblTs As Double Dim lngb As Long Dim dblChislitel As Double Dim dblZnamenatel As Double Private Sub cmdIztrii_Click() Dim reply As Integer reply = MsgBox("Наистина ли искате да изтриете този запис?", vbYesNo, "Потвърдете изтриването") If reply = vbYes Then datOGP.ReadOnly = False datOGP.Refresh datOGP.Recordset.Delete datOGP.ReadOnly = True datOGP.Refresh datOGP.UpdateControls End If End Sub Private Sub cmdNew_Click() cmdSave.Enabled = True cmdOtkaz.Enabled = True cmdNew.Enabled = False cmdIztrii.Enabled = False datOGP.ReadOnly = False datOGP.Refresh datOGP.Recordset.AddNew MsgBox " 1. Въведете входните данни от ляво" & vbCrLf & _ " 2. Натиснете бутона 'Изчисли ОГП'" & vbCrLf & _ " 3. Натиснете бутона 'Запис'" & vbCrLf & _ "(4.) Или натиснете бутона 'Отказ' за да се откажете" End Sub Private Sub cmdSave_Click() datOGP.Recordset.Update datOGP.ReadOnly = True cmdSave.Enabled = False cmdOtkaz.Enabled = False cmdNew.Enabled = True cmdIztrii.Enabled = True End Sub Private Sub cmdOtkaz_Click() datOGP.Refresh datOGP.Recordset.MoveLast datOGP.ReadOnly = True cmdSave.Enabled = False cmdOtkaz.Enabled = False cmdNew.Enabled = True cmdIztrii.Enabled = True End Sub Private Sub cmdCalculate_Click() intdr = Val(txtdr.Text) curKa = Val(txtKa.Text) curKs = Val(txtKs.Text) curKm = Val(txtKm.Text) dblNzn = Val(txtNzn.Text) dblTs = Val(txtTs.Text) lngb = Val(txtb.Text) dblChislitel = 2 * intdr * curKa dblZnamenatel = dblNzn * ((curKs + 2 * curKm) * dblTs + (curKs + curKm) * 1 / lngb) dbll = Sqr(dblChislitel / dblZnamenatel) txtl.Text = Int(dbll) txtr.Text = Int(dbll / lngb) End Sub Private Sub cmdExit_Click() End End Sub Private Sub cmdNewDet_Click() frmDetail.Show 1 End Sub frmDetail
Private Sub cmdIzhodDet_Click() frmMain.datDetBound.Refresh frmMain.dbcDet.Refresh frmDetail.Hide End Sub Private Sub cmdNovDet_Click() cmdSaveDet.Enabled = True cmdOtkazDet.Enabled = True cmdNovDet.Enabled = False datDetail.Recordset.AddNew MsgBox " 1. Въведете новият детайл" & vbCrLf & _ " 2. Натиснете бутона 'Запис'" & vbCrLf & _ "(3.) Или натиснете бутона 'Отказ' за да се откажете" End Sub Private Sub cmdOtkazDet_Click() datDetail.Recordset.MoveLast cmdSaveDet.Enabled = False cmdOtkazDet.Enabled = False cmdNovDet.Enabled = True End Sub Private Sub cmdSaveDet_Click() datDetail.UpdateRecord cmdSaveDet.Enabled = False cmdOtkazDet.Enabled = False cmdNovDet.Enabled = True End Sub Инструкция за работа с програмата При стартиране програмата автоматично зарежда първият запис от базата данни. Чрез стрелките за навигиране може да се премествате един запис напред, един запис назад, на последния или на първия запис. За да въведете нов запис, натиснете бутона “Нов запис”, при това той става неактивен, а достъпни стават бутоните “Запис” и “Отказ”. Въведете необходимите данни от ляво и изберете детайл от списъчното поле. След това натиснете бутона “Изчисли ОГП” – програмата изчислява ОГП и ритмичността. Ако желаете да запишете това изчисление в базата натиснете бутона “Запис”, в противен случай натиснете бутона “Отказ”. За да изтриете запис от базата, първо се позиционирайте на записа, който искате да изтриете. След това натиснете бутона “Изтрий”. Ще бъдете попитани за потвърждение на изтриването, натиснете “Yes” ако наистина искате да изтриете записа, или натиснете “No” за да се откжете. За да въведете нов детайл в базата, натиснете бутона “Нов Детайл”. Ще се отвори нов прозорец, в който ще въведете новия детайл. Той също има лента за навигиране, може да разгледате различните детайли както и да ги коригирате. Натиснете бутона “Нов Детайл” и попълнете името му в празното текстово поле. След това натиснете бутона “Запис” за да го запишете в базата, или бутона “Отказ” за да се откажете. След като приключите натиснете бутона “Изход”. Основната форма пак става активна и новият детайл ще се появи в списъчното поле. За изход от програмата натиснете бутона “Изход” в горния ляв ъгъл.Тестови данни, резултати Необходими файлове ogplog97.mdb – това е файлът с базата данни на ACCESS. (>98KB) OGP.exe – от този файл се стартира приложението. (36KB) Msvbvm60.dll – Runtime библиотека на Visual Basic 6.0, никое приложение написано на Visual Basic 6.0 не може да тръгне без нея (1.32MB) Dblist32.ocx – В този файл се съдържа ActiveX компонентата за Data Bound Combo Box-a (195KB) Общо: >1.64MB
|