p align="left">1. Проверка соответствия программы техническому заданию. При этом проверялось наличие и корректность выполнения программой функций описанных в техническом задании. 2. Проверка правильности выполнения вычислений. Для этого вычисления были предварительно рассчитаны вручную, а после сверены с результатами программы. 3. Проверка работы программы с граничными значениями. Для этого при работе программы вводились граничные данные, на что в ответ от программы были получены сообщения о некорректности введенных данных и просьбе ввести их заново. 4. Определение времени выполнения программой расчетов. При этом тестировались наиболее ресурсоемкие задачи - непосредственное проведение тестирования и построение отчетов. При этом программа показала хорошие показатели. 5. Проверка защищенности данных с которыми оперирует программ от посторонних пользователей. При этом использовались попытки выполнить действия приводящие и изменениям данных: редактирование, удаление. В ответ на эти действия программа предлагала ввести пароль. При ложном вводе пароля программа отказывала в доступе на модификацию данных. 6. Проверка работы всех пунктов меню и вызова всех экранных форм. При этом были проверены пункты меню на соответствие функций выполняемых ими их описанию. 7. Проверка работы программы на компьютерах различной конфигурации. Помимо указанной выше тестовой конфигурации программа была протестирована на следующей платформе: - Процессор: 1200 Мгц - Объем оперативной памяти 256 Мб - Размер свободного дискового пространства 300 Мб - Для тестирования программы использовалась операционная система: Windows 2000. Заключение На курсовое проектирование мне была предложена задача: создание Универсального проигрывателя win media При разработке программного продукта была изучена предметная область для данной задачи, выявлены информационные потоки, на основании которых была построена диаграмма потоков данных. Универсальный проигрыватель win media позволяет: - Воспроизводить мультимедиа файлы различных форматов. - Создавать плейлисты. - Вести базу данных мультимедиа файлов. Приложение А (обязательное) Листинг программы. Программа RadLe unit UMain; interface uses Windows, Messages, ShellAPI, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Buttons, ComCtrls, StdCtrls, ExtCtrls, Menus, MMSystem, MMUtils, MMAbout, MMObj, MMDSPObj, MMWaveIO, MMMPType, MMMPEG, MMDesign, MMWavOut, MMDIBCv, MMLevel, MMConect, MMSpectr, MMHTimer, MMSlider, MMLEDS, MMPanel, MMSpin, MMLEDLbl, MMButton, MMWave, MMLabel, MMVolume, MMHook, MMPitch, MMAudio, MMWheel, MMAVI; type TMainForm = class(TForm) OpenDialog: TOpenDialog; WaveOut: TMMWaveOut; MMDesigner1: TMMDesigner; MMConnector1: TMMConnector; HiTimer: TMMHiTimer; MMPanel2: TMMPanel; ButtonPanel: TMMPanel; DisplayPanel: TMMPanel; MMPanel7: TMMPanel; MMLevelScale1: TMMLevelScale; digit: TMMLEDDigit; MMLevel2: TMMLevel; MMLevel1: TMMLevel; Label2: TLabel; Label3: TLabel; Label4: TLabel; MMSpectrum1: TMMSpectrum; ss1: TMMLEDDigit; ss2: TMMLEDDigit; mm1: TMMLEDDigit; mm2: TMMLEDDigit; btnStop: TMMSpeedButton; btnPlay: TMMSpeedButton; btnPause: TMMSpeedButton; btnOpen: TMMSpeedButton; btnPrev: TMMSpeedButton; btnSkipL: TMMSpeedButton; btnSkipR: TMMSpeedButton; btnNext: TMMSpeedButton; btnClose: TMMSpeedButton; btnMenu: TMMSpeedButton; btnIncVolume: TMMSpeedButton; btnDecVolume: TMMSpeedButton; Bevel1: TBevel; btnPlayList: TMMSpeedButton; Gauge: TMMLevel; Bevel2: TBevel; ledMode: TMMLEDMode; ledRate: TMMLEDPanel; Label18: TLabel; lblBitRate: TLabel; ledBitRate: TMMLEDPanel; lblLayer: TLabel; lblLayer2: TLabel; lblFile: TMMLEDLABEL; PopupMenu: TPopupMenu; Preferences1: TMenuItem; N1: TMenuItem; Play1: TMenuItem; Stop1: TMenuItem; Pause1: TMenuItem; N2: TMenuItem; Previous1: TMenuItem; Next1: TMenuItem; N3: TMenuItem; PlayList1: TMenuItem; WaveFile: TMMWaveFile; N4: TMenuItem; Info1: TMenuItem; ImageEOF: TImage; ImageState: TImage; MPEGFile: TMMMPEGFile; SpeedButton1: TSpeedButton; N5: TMenuItem; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure HiTimerTimer(Sender: TObject); procedure WaveOutStop(Sender: TObject); procedure btnCloseClick(Sender: TObject); procedure btnOpenClick(Sender: TObject); procedure btnStopClick(Sender: TObject); procedure btnPauseClick(Sender: TObject); procedure btnPlayClick(Sender: TObject); procedure btnPrevClick(Sender: TObject); procedure btnSkipLClick(Sender: TObject); procedure btnSkipRClick(Sender: TObject); procedure btnNextClick(Sender: TObject); procedure btnDecVolumeClick(Sender: TObject); procedure btnIncVolumeClick(Sender: TObject); procedure btnPlayListClick(Sender: TObject); procedure WaveOutStart(Sender: TObject); procedure MMPanelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure MMPanelMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer); procedure MMPanelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure GaugeMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Приложение А (продолжение) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure btnMenuClick(Sender: TObject); procedure PopupMenuPopup(Sender: TObject); procedure PreferencesClick(Sender: TObject); procedure Info1Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure WaveOutPause(Sender: TObject); procedure WaveOutRestart(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure N5Click(Sender: TObject); public oMin, oSec: Word; Dragging: Boolean; DragStart: TPoint; Seeking: Boolean; OldTime,CurTime: Longint; PlayListName: TFileName; PlayList : TStringList; PlayIndex: integer; IncPlayList: Boolean; DisplayColor: TColor; TimeCnt : Longint; procedure LoadImage(Image: TImage; Name: PChar); procedure DrawTime(Time: Longint); procedure SetFileParams; function LoadFile(FileName: TFileName): Boolean; function AddFile(FileName: TFileName): Boolean; procedure SelectFile(index: integer); procedure WMNCHitTest(var Msg: TWMNCHitTest); message WM_NCHitTest; procedure WMDropFiles(var Msg: TMessage); message WM_DropFiles; procedure LoadSettings; procedure SaveSettings; procedure DrawLevelBar(Sender: TObject; DIB: TMMDIBCanvas; Rect: TRect; nSpots,Peak: integer); end; var MainForm: TMainForm; implementation {$R *.DFM} {$R IMAGE.RES} uses upref,ulist, UMe, UVideo; const REGBASENAME = 'Software\SwiftSoft\MPEGPlay'; procedure TMainForm.WMNCHitTest(var Msg: TWMNCHitTest); begin inherited; { is the click in the client area? } if (Msg.Result = htClient) then { if so, make Windows think it's } Msg.Result := htCaption; { on the caption bar. } end; procedure TMainForm.LoadImage(Image: TImage; Name: PChar); begin with Image.Picture do begin { load the bitmap } Bitmap.Handle := LoadBitmap(hInstance,Name); Приложение А (продолжение) { change the black/white resource to a colored bitmap } ChangeColors(Bitmap,False,DisplayColor,clBlack,clBlack); end; end; procedure TMainForm.LoadSettings; var L,T: integer; begin try L := (Screen.Width-Width) div 2; T := (Screen.Height-Height) div 2; Left := GetFromRegistry(HKEY_CURRENT_USER, REGBASENAME, 'Left', L); Top := GetFromRegistry(HKEY_CURRENT_USER, REGBASENAME, 'Top', T); WaveOut.NumBuffers := GetFromRegistry(HKEY_CURRENT_USER, REGBASENAME, 'Buffers', WaveOut.NumBuffers); WaveOut.BufferSize := GetFromRegistry(HKEY_CURRENT_USER, REGBASENAME, 'BufferSize', WaveOut.BufferSize); WaveOut.DeviceID := GetFromRegistry(HKEY_CURRENT_USER, REGBASENAME, 'DeviceID', WaveOut.DeviceID); WaveOut.CallBackMode := GetFromRegistry(HKEY_CURRENT_USER, REGBASENAME, 'CBMode', WaveOut.CallBackMode); except end; end; procedure TMainForm.SaveSettings; begin SaveInRegistry(HKEY_CURRENT_USER, REGBASENAME, 'Left', Left); SaveInRegistry(HKEY_CURRENT_USER, REGBASENAME, 'Top', Top); SaveInRegistry(HKEY_CURRENT_USER, REGBASENAME, 'Buffers', WaveOut.NumBuffers); SaveInRegistry(HKEY_CURRENT_USER, REGBASENAME, 'BufferSize', WaveOut.BufferSize); SaveInRegistry(HKEY_CURRENT_USER, REGBASENAME, 'DeviceID', WaveOut.DeviceID); SaveInRegistry(HKEY_CURRENT_USER, REGBASENAME, 'CBMode', WaveOut.CallBackMode); end; procedure TMainForm.FormCreate(Sender: TObject); begin MMLevel1.DIBCanvas.BackGroundBitmap.LoadFromResourceName(hInstance,'BM_BAR1'); MMLevel2.DIBCanvas.BackGroundBitmap.LoadFromResourceName(hInstance,'BM_BAR1'); MMSpectrum1.DIBCanvas.BackGroundBitmap.LoadFromResourceName(hInstance,'BM_BAR2'); MMLevel1.DIBCanvas.PaletteRealize := True; MMLevel2.DIBCanvas.PaletteRealize := True; MMSpectrum1.DIBCanvas.PaletteRealize := True; DragAcceptFiles(Handle,True); PlayListName := 'noname.m3u'; PlayList := TStringList.Create; PlayIndex := 0; DisplayColor := clLime; LoadImage(ImageEOF,'BM_EOF'); LoadImage(ImageState,'BM_PLAY'); LoadSettings; MMLevel1.OnDrawBar := DrawLevelBar; MMLevel2.OnDrawBar := DrawLevelBar; MMSpectrum1.OnDrawBar := DrawLevelBar;
Страницы: 1, 2, 3, 4, 5, 6, 7, 8
|