Автор: Пользователь скрыл имя, 04 Апреля 2012 в 01:22, курсовая работа
Метою курсової роботи є закріплення теоретичних знань та практичних навичок програмування, набутих при вивченні дисциплін «Системний аналіз та проектування комп'ютерних інформаційних систем»
В ході виконання курсової роботи студенти повинні навчитися самостійно працювати з літературою, розробляти алгоритми, здійснювати їх програмну реалізацію та від лагодження на сучасних комп‘ютерних системах.
Вступ………………………………………………………………………………. 3
1. Огляд літератури………………………………………………………………. 4
2. Формулювання задачі.……………………………………………………….. 11
3. Алгоритм розв’язання задачі.………………………………………………... 12
4. Програмні реалізації алгоритму.……………………………………………. 13
5. Інструкція користувачеві програми.………………………………………... 14
6. Контрольні приклади та аналіз результатів їх реалізації.……………….… 15
Висновки……………………………………………………………………….… 17
Література…………………………………………………………………........... 18
Додатки…………………………………………………………………………….19
Додаток 1. Лістинг Inc файлу………………………………………………...…… 19
Додаток 2. Лістинг Asm файлу………………….…….………………………….… 22
invoke MessageBeep,MB_ICONASTERISK
.endif
.if eax == 1003
mov closeCon,1
.else
mov closeCon,0
.endif
.if eax == 1004
mov cOut,1
.else
mov cOut,0
.endif
.if eax == 10010
invoke ExitProcess,0
.elseif eax == 10003
invoke ShellAbout,hWnd,addr szDisplayName,addr AboutMsg,0
.elseif eax == 10004
invoke MessageBox,NULL,ADDR HelpStr,ADDR HelpTit,MB_OK
.endif
.elseIF wParam==CBN_SELENDOK shl 16 + 1001
invoke SendMessage,hComBox,CB_
mov h,eax
inc h
invoke SelectedInterface,hWnd
.ENDIF
.elseif eax == WM_HSCROLL
invoke SendMessage,he,TBM_GETPOS,0,0
invoke wsprintf,addr buffer,addr format,eax
invoke SendMessage,edit,WM_SETTEXT,0,
.elseif eax==WM_TIMER
invoke SelectedInterface,hWnd
.elseif eax==WM_CLOSE
invoke EndDialog,hWnd,0
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
DlgProc endp
SelectedInterface proc hWnd:HWND
LOCAL hDC:HDC
mov reqsize,0
invoke GetIfTable,mInet,ADDR reqsize,FALSE
invoke GlobalAlloc,GMEM_MOVEABLE,
mov hInet,eax
invoke GlobalLock,eax
mov mInet,eax
invoke GetIfTable,mInet,ADDR reqsize,FALSE
mov ebx, mInet
mov eax,[ebx]
mov TypeCount,eax ;кількість интерфейсов
add ebx,4
mov eax,860
mov ecx,h ;zero-based индекс потрібного інтерфейса
mul ecx
add ebx,eax ;зсув на потрібний кусок
assume ebx: PTR MIB_IFROW
invoke GetDC,hWnd
mov hDC,eax
mov eax,[ebx].dwInOctets
xor edx,edx
idiv numdiv
mov divResIn,eax
xor eax,eax
mov eax,[ebx].dwOutOctets
xor edx,edx
idiv numdiv
mov divResOut,eax
invoke wsprintf,addr buf,addr formInOctets,divResIn
invoke TextOut,hDC,280,60,addr buf,sizeof buf
invoke wsprintf,addr buf1,addr formOutOctets,divResOut
invoke TextOut,hDC,280,80,addr buf1,sizeof buf1
invoke wsprintf,addr buf2,addr formSpeed,[ebx].dwIndex
invoke TextOut,hDC,280,100,addr buf2,sizeof buf2
mov ebx,limit1
.if cOut!=0
mov eax, divResOut
mov traff,eax
.elseif
mov eax, divResIn
mov traff,eax
.endif
.if traff>ebx && ebx !=0
invoke KillTimer,hWnd,0
invoke MessageBox,NULL,ADDR LimitString,ADDR LimitName,MB_ICONWARNING+MB_
.if eax == IDOK
.if closeCon!=0
invoke InternetHangUp,5,0
invoke InternetHangUp,16,0
.endif
invoke ExitProcess,0
.elseif
invoke SetTimer,hWnd,0,1200,0
invoke SendMessage,he,TBM_SETPOS,1,0
invoke SetDlgItemText,hWnd,1010,NULL
mov limit1,0
.endif
.endif
invoke ReleaseDC,hWnd,hDC
assume ebx: NOTHING
invoke GlobalUnlock,mInet
invoke GlobalFree,hInet
ret
SelectedInterface endp
CountInterfaces proc hWnd:HWND
next_item:
inc i
mov reqsize,0
invoke GetIfTable,mInet,ADDR reqsize,FALSE
invoke GlobalAlloc,GMEM_MOVEABLE,
mov hInet,eax
invoke GlobalLock,eax
mov mInet,eax
invoke GetIfTable,mInet,ADDR reqsize,FALSE
mov ebx, mInet
mov eax,[ebx]
mov TypeCount,eax ;кількість интерфейсов
add ebx,4
mov eax,860
mov ecx,i ;zero-based индекс потрібного інтерфейса
mul ecx
add ebx,eax ;зсув на потрібний кусок
assume ebx: PTR MIB_IFROW
.if [ebx].bDescr==NULL
ret
.else
invoke SendMessage,hComBox,CB_
.endif
invoke GlobalUnlock,mInet
invoke GlobalFree,hInet
jmp next_item
assume ebx: NOTHING
ret
CountInterfaces endp
end Start
1