当前位置:文档之家› VB课设MP3设计报告

VB课设MP3设计报告

VB课设MP3设计报告
VB课设MP3设计报告

福建工程学院

VB课程设计

课题:具有记忆功能的MP3播放器班级:电气1102

学号:

姓名:

同组组员:

指导老师:黄旭红、;林挺钊、林丽日期:2014.5.30

目录

一、设计的目的与要求 (3)

二、准备工作 (3)

三、系统分析与项目的实现步骤 (3)

3.1、对于MP3播放器设计的个人分析、想法 (3)

3.2、系统实现的方法 (4)

3.3、程序设计的总框图 (5)

3.4、项目的具体设计方案 (5)

3.4.1设计涉及的一些基本知识介绍 (5)

3.4.2、MP3播放器的设计原理 (9)

3.4.3、MP3播放器的设计流程图 (9)

3.5扩展部分 (9)

3. 6类声明与核心算法程序代码 (11)

四、测试与结论 (23)

五、课程设计总结 (25)

六、参考文献 (26)

七、附录 (27)

1.窗体 (27)

2.程序代码 (27)

3“MP3播放器”窗体控件表 (43)

一、设计的目的与要求

MP3播放器为多媒体播放器中的一大类,各类可在window上运行的MP3播放器软件也很多。试开发一个具有记忆功能的MP3播放器软件,要求如下:

1.菜单式的人机界面。

2.该MP3播放器要具有如下功能:

(1)可手动添加、删除MP3文件;

(2)可打开、播放、暂停、停止;

(3)可以载入上一次播放列表;

(4)可以调节声音大小;

(5)可以循环播放。

二、准备工作

在开始做课程设计项目前,应回顾或复习的相关内容;需要的VB集成开发环境软件,以及项目牵涉到的哪些原理。

三、系统分析与项目的实现步骤

3.1、对于MP3播放器设计的个人分析、想法

3.1、对于MP3播放器设计的个人分析、想法

1.用过菜单编辑器编辑菜单式的人机界面,可设置弹出式菜单

2.使用MMC控件实现歌曲播放、暂停、停止

3.使用通用对话框实现打开

4.通过数据库记录歌曲全路径,再运行程序使加载到listbox,用listbox的相关属性和命令来实现对歌曲的添加删除,循环播放,可添加清除功能清除所有歌曲以及随机播放功能

5.声音的调节通过使用API函数来实现,可以扩展设置静音

3.2、系统实现的方法

系统的功能结构

MP3播放器

播放列表播放控制

1. 用过菜单编辑器编辑菜单式的人机界面,可设置弹出式菜单,有添加删除清除三个项目

2.利用mci命令,api函数实现歌曲播放、暂停、停止,歌曲播放进度等操作

3. 使用通用对话框实现打开文件功能,打开后自动

4.通过mic命令获取mp3文件的位置,通过两个listbox控件,一个隐藏的加载mp3文件全路径,一个显示的保存歌曲名和演唱者(通过对mp3文件获取信息和路径的相关处理得到歌曲名,演唱者)。两个list的数据一一对应。用于使得循环播放添加删除功能得以实现

5.声音的调节通过使用用mci 命令来实现,可以扩展设置静音,主要利用按钮给出调节声音的指令

3.3、程序设计的总框图

3.4、项目的具体设计方案

3.4.1设计涉及的一些基本知识介绍 1.MP3文件格式简介

Moving Picture Experts Group Audio Layer III (MPEG-1 Audio Layer 3,动态图像专家压缩标准音频层面3),经常称为MP3,是当今较流行的一种数字音频编码和有损压缩格式,它设计用来大幅度地降低音频数据量,而对于大多 数用户的听觉感受来说,重放的音质与最初的不压缩音频相比没有明显的下降。它是在1991年,由位于德国埃尔朗根的研究组织Fraunhofer- Gesellschaft 的一组工程师发明和标准化的。 MP3是一个数据压缩格式。它舍弃脉冲编码调制(PCM )音频数据中,对人类听觉不重要的数据(类似于JPEG 是一个有损图像压缩),从而达到了压缩成小 得多的文件大小。MP3中使用了许多技术,其中包括心理声学,以确定音频的哪一部分可以丢弃。MP3音频可以按照不同的比特率进行压缩,提供了权衡数据大 小和音质之间的依据。 (1)、MP3文件结构

MP3文件大体分为三部分:TAG_V2(ID3V2),Frame, TAG_V1(ID3V1) (2)ID3V2

包含了作者,作曲,专辑等信息,长度不固定,扩展了ID3V1的信息量。 (3) Frame

一系列的帧,个数由文件大小和帧长决定

类模块程序 窗体程序

打开,关闭MP3

循环播放 随机播放

暂停MP3 停止MP3 上一首 下一首

音量调节 静音

添加、删除文件

清除列表

每个FRAME的长度可能不固定,也可能固定,由位率bitrate决定

每个FRAME又分为帧头和数据实体两部分

帧头记录了mp3的位率,采样率,版本等信息,每个帧之间相互独立

(4) ID3V1

包含了作者,作曲,专辑等信息,长度为128BYTE。

(5). MP3帧格式

(6)帧头格式

帧头长4字节(若Protection bit为1,则还要帧头最后添加16bits的校验位),对于固定位率的MP3文件,所有帧的帧头格式一样其数据结构如下:

typedef FrameHeader {

unsigned int sync: 11; //同步信息

unsigned int version: 2; //版本

unsigned int layer: 2; //层

unsigned int error protection: 1; // CRC校验

unsigned int bitrate_index: 4; //位率

unsigned int sampling_frequency: 2; //采样频率

unsigned int padding: 1; //帧长调节

unsigned int private: 1; //保留字

unsigned int mode: 2; //声道模式

unsigned int mode extension: 2; //扩充模式

unsigned int copyright: 1; // 版权

unsigned int original: 1; //原版标志

unsigned int emphasis: 2; //强调模式

}HEADER, *LPHEADER;

(7)MP3帧长取决于位率和频率,计算公式为:

. mpeg1.0 layer1 : 帧长= (48000*bitrate)/sampling_freq + padding

layer2&3: 帧长= (144000*bitrate)/sampling_freq + padding

. mpeg2.0 layer1 : 帧长= (24000*bitrate)/sampling_freq + padding

layer2&3 : 帧长= (72000*bitrate)/sampling_freq + padding

2.API函数

操作系统除了协调应用程序的执行、内存分配、系统资源管理外,同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务是一个函数),可以帮肋应用程序达到开启视窗、描绘图形、使用周边设备的目的,由于这些函数服务的对象是应用程

序(Application),所以称之为 Application Programming Interface,简称API函数。

3.MCI简介

MCI(Media Control Interface,媒体控制接口)向Windows程序提供了在高层次上控制媒体设备接口的能力。程序不必关心具体设备,就可以对激光唱机(CD)、视盘机、波形音频设备、视频播放设备和MIDI设备等媒体设备进行控制。

对于程序员来说,可以把MCI理解为设备面板上的一排按键,通过选择不同的按键(发送不同的MCI命令)可以让设备完成各种功能,而不必关心设备内部实现。

比如,对于play,视盘机和CD机有不同的反应(一个是播放视频,一个播放音频),而对用户来说却只需要按同一按钮。

应用程序通过向MCI发送命令来控制媒体设备。MCI命令接口分命令字符串和命令消息两种,两者具有相同的功能。命令字符串具有使用简单的特点,但是它的执行效率不如命令消息。

所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:

MCIERROR mciSendString(

LPCTSTR lpszCommand, //MCI命令字符串

LPTSTR lpszReturnString, //存放反馈信息的缓冲区

UINT cchReturn, //缓冲区的长度

HANDLE hwndCallback //回调窗口的句柄,一般为NULL ); //若成功则返回0,否则返回错误码。

该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:BOOL mciGetErrorString(

DWORD fdwError, //函数mciSendString返回的错误码

LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区

UINT cchErrorText //缓冲区的长度

);

下面是使用mciSendString函数的一个简单例子:

char buf[50];

MCIERROR mciError;

mciError=mciSendString("open cdaudio",buf,strlen(buf),NULL);

if(mciError)

{

mciGetErrorString(mciError,buf,strlen(buf));

AfxMessageBox(buf);

return;

}

open cdaudio命令打开CD播放器,如果出错(如驱动器内没有CD)则返回错误码,此时可以用mciGetErrorString函数取得错误信息字符串。

MCI命令

使用MCI设备一般包括打开、使用和关闭三个过程,常用的MCI命令有:open 打开设备

close 关闭设备

play 开始设备播放

stop 停止设备的播放或记录

record 开始记录

save 保存设备内容

pause 暂停设备的播放或记录

resume 恢复暂停播放或记录的设备

seek 改变媒体的当前位置

capacility 查询设备能力

info 查询设备的信息

status 查询设备状态信息

MCI的大部分命令可以控制不同的媒体设备,但其中record和save命令并不是所有MCI设备都可以使用。

MCI命令的使用是很随意的,只要先打开,最后关闭,中间可以随意调用各种命令。

4、模块的使用

VB有3种类型的模块:窗体模块,标准模块,类模块。

没一个模块都和一个文件相联系,3种模块对应着3中不同类型的文件。窗体模块存放在扩展名为frm的文件中,标准模块存放在扩展名为bas的文件中,类模块存放在扩展名为cls的文件中。

三类模块说明如下:

1。简单的程序只有一个模块,这时的程序的代码都存放在这个窗体模块中。窗体模块是大多数vb程序的基础。

2。对于复杂的程序可以增加窗体。为了避免重复,可以将多个窗体都要用到的共同代码集中起来,存放在一个独立的模块中,这个独立的模块成为标准模块。多个标准模块还可以构成一个模块库。在标准模块的声名的public变量和常量是在整个工程有效

的全局变量和常量。

3。类模块是面向对象编程的基础。用户可以使用类模块创建含有属性和方法的自己的对象。窗体也是一种类模块,是一种可以显示窗体的模块,并且可以把控件拖放到窗体上。一般的类模块和标准模块都没有可见的用户界面(窗体)。

4。标准模块中数据的存活期和工程的存活期相同。类模块中数据的存活期和类的对的存活期相同,随着该类对象的创建而创建,随着该类对象的消失而消失。 5。当变量在标准模块中声名为public 时,他在工程中的任何地方都是可见的(有效的)。当变量在类模块中声明为public 时,在模块外访问该变量是受到限制的,只能访问那些有引用的变量。 3.4.2、MP3播放器的设计原理

不使用控件,直接调用API 的函数播放音乐,通过API 函数的调用,执行MCI 命令,实现播放,暂停,停止,等基本功能,通过添加类模块来实现相应的类模块的信息,在窗体或其他模块中通过定义可以引用,使用类的属性和方法。通过创建一个文件来保存播放列表的信息,来实现,下一次打开时可以具有记忆功能。 3.4.3、MP3播放器的设计流程图

3.5扩展部分 1. 清除

可以将歌曲列表清空 程序如下

Private Sub cls_Click()

Dim i As Integer, last As Integer objPlay.StopMP3

MP3播放器设计

设计MP3类模块

设计MP3播放器的主窗

体 编写窗体对应的程序代

码 编写类的功能和属性代码

last = lstPlay.ListCount - 1

For i = 0 To last

lstPlay.ListIndex = last - i

DelMP3

Next i

End Sub

2.上一首,下一首

程序如下:

Private Sub cmdPrev_Click() '上一首

If lPlayIndex = 0 Then '正在播放的是第1首

lstPlay.ListIndex = lstPlay.ListCount - 1 '选中最后一首

Else '否则向前一首

lstPlay.ListIndex = lPlayIndex - 1 '

End If

MP3Play

End Sub

Private Sub cmdNext_Click() '下一首

If lPlayIndex = lstPlay.ListCount - 1 Then '播放的是最后一首

lstPlay.ListIndex = 0 '选中第1首

Else '播放的是位于中间的文件

lstPlay.ListIndex = lPlayIndex + 1 '播放下一曲

End If

MP3Play '播放MP3

End Sub

3.静音

'api函数声明,用于控制音量

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Sub Command1_Click()

'音量增大

SendMessage hwnd, 793, 197266, 655360

End Sub

Private Sub Command2_Click()

'音量减小

SendMessage hwnd, 793, 197266, 589824

End Sub

Private Sub Image2_Click()

'静音

SendMessage hwnd, 793, 2100912, 524288

Image2.Visible = False

Image1.Visible = True

End Sub

Private Sub Image1_Click()

'静音

SendMessage hwnd, 793, 2100912, 524288

Image2.Visible = True

Image1.Visible = False

End Sub

Private Sub Image2_Click()‘'静音

SendMessage hwnd, 793, 2100912, 524288

Image2.Visible = False

Image1.Visible = True

End Sub

3.6类声明与核心算法程序代码

在类模块的声明部分编写以下代码,对类内部要调用的API函数进行声明

Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _

(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _ ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long Private Declare Function mciGetErrorString Lib "winmm.dll" Alias _

"mciGetErrorStringA" (ByVal dwError As Long, _

ByVal lpstrBuffer As String, ByVal uLength As Long) As Long

Private Declare Function GetShortPathName Lib "kernel32" Alias _

"GetShortPathNameA" (ByVal lpszLongPath As String, _

ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

下面是在类模块中定义需要使用的变量

Dim m_Filename As String 'MP3文件名

Dim m_isOpen As Boolean '打开标志

Dim m_isPlay As Boolean '播放标志

Dim m_isPaused As Boolean '暂停标志

Dim m_sAlias As String '别名

Dim m_strTitle As String

Dim m_strAuthor As String

Dim m_isHasTag As Boolean '是否有TAG标志变量

Const sRet As String = "OK" '成功返回值

在类代码中反复执行下面打开MP3文件的操作,根据传入的打开参数的不同,使用不同的打开文件模式而且根据打开文件操作的执行结果不同,分别返回不同的打开文件的结果

Private Function GetFirstFrame() As Long

Dim bHead(1) As Byte, lCount As Long

If OpenHeaderFile(m_Filename) <> sRet Then '打开MP3文件

Exit Function

End If

For lCount = 1 To 6000

Get #iFileNo, lCount, bHead(0) '读取文件头

If bHead(0) = 255 Then '若找到值为255的字节

Get #iFileNo, lCount + 1, bHead(1) '读取下一个字节

If bHead(1) = 250 Or bHead(1) = 251 Then '若为250或251 m_lFirstFrame = lCount '返回文件位置

Exit Function '退出循环

End If

End If

Next

CloseHeaderFile

End Function

编写OpenMP3函数,发送MCI命令打开需要播放的MP3文件。该函数定义为Public 使其成为类的方法,可供其他模块调用类的功能。

Public Function OpenMP3() As String '打开MP3

Dim sBuffer As String, sFile As String, lRet As Long

On Error GoTo err

DefBUF sBuffer '定义缓冲区

GetShortPathName m_Filename, sBuffer, Len(sBuffer) '获取文件名

CheckBUF sBuffer

If sBuffer = "" Then '缓冲区为空

GoTo err

Else

sFile = sBuffer '获取文件名

End If

lRet = mciSendString("OPEN " & sFile & " TYPE MPEGVideo ALIAS " & m_sAlias, 0, 0, 0) '发送MCI打开指定

If lRet Then 'MCI指令失败

OpenMP3 = GetMCIError(lRet) '返回错误信息

Exit Function '退出函数

Else

mciSendString "SET " & m_sAlias & " TIME FORMAT TMSF", 0, 0, 0 '发送MCI指令

m_isOpen = True '设置打开标志变真

m_isPlay = False '设置播放标志为假

m_isPaused = False '设置暂停标志为假面具

End If

OpenMP3 = sRet '返回成功字符串

Exit Function '退出函数

err:

OpenMP3 = "打开MP3文件出错!"

End Function

编写CloseMP3函数,发送MCI命令关闭真在播放的MP3文件。该函数定义为Public 使其成为类的方法,可供其他模块调用类的功能。

Public Function CloseMP3() As String '关闭MP3文件

Dim lRet As Long

On Error GoTo err

lRet = mciSendString("CLOSE " & m_sAlias, 0, 0, 0) '发送MCI指令

If lRet Then 'MCI指令出错

CloseMP3 = GetMCIError(lRet) '返回错误信息

Exit Function '退出函数

Else

m_isOpen = False '打开标志为假

m_isPlay = False '播放标志为假

m_isPaused = False '暂停标志为假

End If

CloseMP3 = sRet '返回成功字符串

Exit Function '退出函数

err:

CloseMP3 = "关闭MP3文件出错!"

End Function

编写PlayMP3函数,发送MCI命令播放指定的MP3文件。该函数定义为Public使其成为类的方法,可供其他模块调用类的功能。

Public Function PlayMP3(lPos As Long) As String '播放MP3

Dim lRet As Long

On Error GoTo err

If m_isPaused Then lPos = GetPosition '暂停为真,从暂停位置开始 lRet = mciSendString("PLAY " & m_sAlias & " FROM " & lPos, 0, 0, 0) '发送MCI播放命令

If lRet Then 'MCI指令出错

PlayMP3 = GetMCIError(lRet) '返回错误信息

Exit Function '退出过程

Else

m_isOpen = True '打开标志为真

m_isPlay = True '播放标志为真

m_isPaused = False '暂停标志为假

End If

PlayMP3 = sRet '返回成功字符串

Exit Function '退出函数

err:

PlayMP3 = "播放MP3文件时出错!"

End Function

编写StopMP3函数,发送MCI命令停止正在播放的MP3文件。该函数定义为Public 使其成为类的方法,可供其他模块调用类的功能。

Public Function StopMP3() As String '停止播放

Dim lRet As Long

On Error GoTo err

lRet = mciSendString("STOP " & m_sAlias, 0, 0, 0) '发送MCI停止命令 If lRet Then 'MCI命令出错

StopMP3 = GetMCIError(lRet) '返回错误信息

Exit Function '退出函数

Else

m_isOpen = True '打开标志为真

m_isPlay = False '播放标志为假

m_isPaused = False '暂停标志为假

End If

StopMP3 = sRet '返回成功字符串

Exit Function '退出函数

err:

StopMP3 = "停止播放MP3时出错!"

End Function

编写PauseMP3函数,发送MCI命令暂停真在播放的MP3文件。该函数定义为Public 使其成为类的方法,可供其他模块调用类的功能。

Public Function PauseMP3() As String '暂停播放

Dim lRet As Long

On Error GoTo err

lRet = mciSendString("PAUSE " & m_sAlias, 0, 0, 0) '发送MCI指令

If lRet Then 'MCI指令出错

PauseMP3 = GetMCIError(lRet) '返回出错信息

Exit Function '退出函数

Else

m_isOpen = True '打开标志为真

m_isPlay = True '播放标志为真

m_isPaused = True '暂停标志为真

End If

PauseMP3 = sRet '返回成功字符串

Exit Function '退出函数

err:

PauseMP3 = "暂停播放MP3时出错!"

End Function

函数GetPosition获取MP3文件的播放位置,该函数定义为Public,作为类的方法提供给外部程序使用。

Public Function GetPosition() As String '获取MP3文件位置

On Error GoTo err

Dim lRet As Long

Dim sReturn As String

DefBUF sReturn

lRet = mciSendString("STATUS " & m_sAlias & " POSITION", sReturn, Len(sReturn), 0)

'发送MCI指令获取MP3文件位置

CheckBUF sReturn

If lRet Then 'MCI指令出错

GetPosition = GetMCIError(lRet) '返回错误信息

Exit Function '退出函数

Else

GetPosition = sReturn '返回缓冲区内容

End If

Exit Function '退出函数

err:

GetPosition = "获取MP3播放位置时出错!"

End Function

与打开MP3文件函数OpenFile对应,关闭文件函数CloseFile用来关闭打开的MP3文件

Private Function CloseFile() As String '关闭文件

On Error GoTo err

Close #iFileNo '关闭文件

CloseFile = sRet '返回成功字符串

Exit Function '退出函数

err:

CloseFile = err.Description '返回错误信息

End Function

Public Function GetLength() As String '获取文件长度

On Error GoTo err

Dim lRet As Long

Dim sReturn As String

DefBUF sReturn '设置缓冲区

lRet = mciSendString("STATUS " & m_sAlias & " LENGTH", sReturn, Len(sReturn), 0)

'发送MCI指令获取长度

CheckBUF sReturn

If lRet Then 'MCI指令出错

GetLength = GetMCIError(lRet) '返回错误信息

Exit Function '退出函数

Else

GetLength = sReturn '返回长度字符串

End If

Exit Function '退出函数

err:

GetLength = "获取MP3长度时出错!"

End Function

Option Explicit

'定义局部变量用来保存播放文件的各种信息

Dim lLastIndex As Long '最后播放的序号

Dim bPosUpdate As Boolean '更新进度条标志

Dim lPlayIndex As Long '正在播放的序号

Dim bRand As Boolean '随机播放标志

Dim bCYC As Boolean '循环播放

'设置初始状态

Private Sub Form_Load()

bCYC = True '选中“循环”

LoadPlayList '从播放列表中装入文件

objPlay.sAlias = "MP3" '设置别名

End Sub

'将列表文件中的mp3文件添加到隐藏列表中调用addtoplay 将文件添加到播放列表lstplay中

Private Sub LoadPlayList()

Dim str1 As String

If Dir(App.Path & "\playlist.inf") = "" Then '查找播放列表

Exit Sub '退出过程

End If

Open App.Path & "\playlist.inf" For Input As #1 '打开播放列表

Do Until EOF(1) '直到文件结束

Input #1, str1 '从文件中读取一行

If Trim(str1) <> "" Then

lstMP3File.AddItem str1 '添加到列表中

End If

Loop

Close #1 '关闭播放列表文件

AddToPlay '添加播放列表文件到列表框

End Sub

Private Sub AddToPlay() '从隐藏列表框中获取每个MP3文件的标记信息,添加到播放列表框中

Dim i As Long, str1 As String, str2 As String

With objList

lstPlay.Clear '清空列表框

For i = 0 To lstMP3File.ListCount - 1 '循环处理隐藏列表框

.sFileName = lstMP3File.List(i) '获取MP3播放文件名

str2 = ""

If .isHasTag Then

str2 = Trim(.strTitle)

If str2 <> "" Then '若MP3有标记

If Trim(.strAuthor) <> "" Then

str1 = str2 & " - " & Trim(.strAuthor) '显示作者和标题

Else

str1 = str2

End If

Else

str1 = GetFileName(lstMP3File.List(i)) '显示文件名

End If

Else

str1 = GetFileName(lstMP3File.List(i)) '显示文件名

End If

str1 = CStr(i + 1) & ". " & str1 '添加序号

lstPlay.AddItem str1 '添加到播放列表框中

DoEvents '事件处理

Next

End With

End Sub

Private Function GetFileName(sFile As String) As String '获取文件名(去掉路径名)

Dim i As Long, str1 As String

str1 = StrReverse(sFile)

i = InStr(1, str1, "\")

If i > 0 Then str1 = Left(str1, i - 1)

GetFileName = StrReverse(str1)

End Function

'打开mp3文件对话框,将选中的mp3文件添加到列表框中

Private Sub AddMP3(bPlay As Boolean) '添加播放文件

Dim i As Long

i = lstPlay.ListIndex '保存播放列表中原选中项

cd1.FileName = "" '设置对话框参数

cd1.ShowOpen '打开对话框

If cd1.FileName = "" Then Exit Sub '若未选择文件

lstMP3File.AddItem cd1.FileName '添加文件到列表框

AddToPlay '将文件添加到播放列表

lstPlay.SetFocus '选中播放列表框

If bPlay Then '立即播放

lstPlay.ListIndex = lstPlay.NewIndex '选中新加入的文件

MP3Play '调用过程播放MP3

Else

lstPlay.ListIndex = i '选中原来的选中项

End If

End Sub

Public Sub DelMP3() '删除文件

On Error GoTo err

Dim i As Long

If lstPlay.ListIndex > -1 Then '选中有效列表

i = lstPlay.ListIndex '保存选中项

lstMP3File.RemoveItem lstPlay.ListIndex '删除隐藏列表中对应项

AddToPlay '重新在播放列表中显示播放内容

lstPlay.ListIndex = i

End If

Exit Sub '退出过程

err:

If lstPlay.ListCount > 1 Then '播放文件数量超过1个

i = i - 1

lstPlay.ListIndex = i '选择上一项

Else

lstPlay.ListIndex = -1 '取消选中

End If

End Sub

'循环和随机是一组单选按钮,可以选择歌曲的播放模式

Private Sub optCYC_Click() '循环播放

bCYC = optCYC.Value

End Sub

Private Sub optRand_Click() '随机播放

bRand = optRand.Value

End Sub

'使播放列表与隐藏列表同步

Private Sub lstPlay_Click() '单击播放列表

lstMP3File.ListIndex = lstPlay.ListIndex '选中隐藏列表框中的对应项End Sub

'双击播放

Private Sub lstPlay_DblClick() '双击列表中的文件

MP3Play '调用过程播放

End Sub

'播放列表选中下一首歌,调用mp3play过程播放音乐

Private Sub cmdNext_Click() '下一首

If lPlayIndex = lstPlay.ListCount - 1 Then '播放的是最后一首lstPlay.ListIndex = 0 '选中第1首

Else '播放的是位于中间的文件

lstPlay.ListIndex = lPlayIndex + 1 '播放下一曲

End If

MP3Play '播放MP3

End Sub

Public Sub MP3Play() '播放过程

If lstMP3File.ListIndex > -1 Then

VB课设报告

沈阳航空航天大学 课程设计任务书 学院:机电工程学院专业:机械设计制造及其自动化班级:94060106 学号:2009040601204 题目:简单的汽车站售票系统 一、课程设计时间 2011年3月14日~20日(第二周),共计一周。 二、课程设计内容 假设每天“沈阳→植物园”有4个班次的汽车,具体的数据如下: 班次发车时间载客量已售票数 1 06:40 50 0 2 09:30 40 0 3 13:00 40 0 4 16:00 40 0 数据保存在文本文件或Access数据库中,请你为售票员开发一个程序,实现每天的“沈阳→植物园”的售票、退票等业务。要求:售票时按旅客要求选择班次,如果某个班次已过了发车时间,则该班次今天不再售票,如果某个班次的票已售完,则也不能再售票。 用户界面中的菜单至少应包括“售票”、“退票”、“显示当前售票情况”、“退出”4项。 三、课程设计要求 程序质量: ?贯彻事件驱动的程序设计思想。 ?用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。 ?代码应适当缩进,并给出必要的注释,以增强程序的可读性。 课程设计说明书: ?课设结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。四、指导教师和学生签字 指导教师:________ 学生签名:________ 五、成绩 六、教师评语

目录 需求分析 (4) 设计分析 (4) 技术要点 (6) 主要界面截图 (7) 总结 (9) 完整的源程序 (10) 参考文献 (15)

需求分析 介于乘客买票十分麻烦,需要开发一套自动的售票系统,实现乘客自主的买票,退票,查询,为乘客创造方便。 设计分析 (1)概述: 本次设计涉及到数据库系统,SQL查询语言,ADO数据控件技术,实现了用户买票,退票,售票查询等功能,并且在售票界面,根据时间判断车次是否已经发车,且在查询系统中可以显示售票情况。 (2)总体设计: 汽车站售票系统应该有一个主界面,在主界面下,应该有售票界面,退票界面和查询界面。 (3)详细设计:

心得体会数据库VB课程设计心得体会

三一文库(https://www.doczj.com/doc/c36069098.html,)/心得体会范文/心得体会数据库VB课程设计心得体会 数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,我开始写这篇*,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹 并期望与大家共勉。 首先,让我的记忆追溯到大二暑假,在老大的指引下(老大劝我学https://www.doczj.com/doc/c36069098.html,),我接触到microsoft公司的.net产品。那个时候我已经学过vc和asp,因为windows程序设计实验的课的关系,接触过vb,但是没有专门去学他,因为习惯了c++里面的class,int,觉得vb的sub,var看着就不是很顺心。我是一个好奇心很强的人,突然看到了一个号称“.net是用于创建下一代应用程序的理想而又现实的开发工具”,而且主推c#语言,由于对c语言的一贯好感,我几乎是立刻对他产生了兴趣。我就开始了对c#的学习,任何语言都不是孤立存在的,所以数据交互是很重要的,暑假的时候我把我们这学期的课本数据库系统概论看了一遍。我记得以前用c语言编程的时候,数据是在内存中申请空间,譬如

使用数组等等。很耗费内存空间。这个时候就是数据库站出来的时候啦,于是我又装上了sqlserverxx,以前学asp的时候用的是access,那个时候只是照着人家做,理论是什么也不是很清楚。 通过一个暑假的学习,基本搞清楚了理论方面的东西,具体怎么用也不是很清楚。但是这为这学期的课程设计打下了铺垫。 来到学校后,随着这学期的数据库课程大赛开始了,我有一个看法就是我自己应该具备的能力不是我会多少,而是我应该具备快速学会东西的能力。遇到什么就学什么。我们有时候很容易被一些专业名词说吓着,包括什么建模,软件工程,数据分析,数据挖掘等等。我身边就有很多同学被这些纸老虎所唬住,而没有勇气去接触他们,总是说这个太难了之类的退堂鼓的话,他们低估了自己的潜力同时也压抑住了他们自己的好奇心。其实都是纸老虎,又不是什么国家科研难题,只是去用一些工具,发明工具是很难,但是用一个工具就容易多了,justdoit!我记得我做这个数据库之前,我们老师说要做好前期分析,我就在网上搜索用什么分析工具好。最后我选择了roseuml建模工具。在此之前,我脑袋里面没有软件建模的思想,什么uml建模对我而言就是一张空白的纸。但是真正接触后并没有想象的那么难,有什么不懂的上网去搜索,这是一个信息横流的世界,有google,baidu就没有不能解决的知识难题。以及后来的数据库分析的时候用到的powerdesigner也是一样。

VB图书管理系统 课程设计报告

VB语言程序设计课程设计报告 系 (部) 专业班级 学生姓名 学号/序号 指导教师 完成时间

图书管理系统 一、功能描述 使用VB6.0中各种控件的常用属性和事件、数组的各种操作以及数据库的相关操作(数据库的建立、编辑、查找、删除等),建立了这个简易的图书管理系统,方便图书管理人员对图书的管理。用户可以通过此系统的添加、删除,还回,借出等功能对书籍信息、书籍流通进行编辑同时也可以通过直接输入想要查询的书籍信息来获得书籍的流通及库存等相关信息。 二、概要设计 1、系统功能模块框图设计 首先程序运行,出现一个MDI主窗体,里面分别有登录,书籍信息管理系统,退出三个菜单选项,登录前,管理按钮不可用,当正确输入用户名以及密码以后,点管理按钮,图书管理窗体显示,用户可对图书信息进行管理。 2、数据库设计 创建一个数据库为mydb.mdb,该数据库共包含3张表,分别为“书籍信息表”、“图书归还表”和“图书借出表”,表结构如下:

书籍信息表:图书编号、图书名、作者、出版社、数量、出版日期、价格 图1. 书籍信息表 图书归还表:图书编号、图书名、作者、出版社、数量、图书是否损坏、借出日期、归还日期; 图2. 图书归还表 图书借出表:图书编号、图书名、作者、出版社、借出数量、借出时间、联系电话、借出期限、借出者姓名。 图3. 图书借出表

三、详细设计 1、MDI主界面 用户登录模块中登录与取消两按钮,单击登录会进入系统进行下一步的操作,用户名文本框与数据库相连接,当在用户名文本框输入用户名后点击登录按钮后,会在数据库中进行查询看数据库中是否会有该用户名,且该用户名的密码是否与密码框中输入的相同,如果相同会进入系统,如果不存在该用户名或密码与用户名不相匹配,则会提示“密码错误”,用户名文本框会得到焦点,让重新输入。 (1)窗体截图(如图5.1) 图1 MDI主界面

VB程序设计课程设计报告完整版

V B程序设计课程设计 报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

《VB程序设计》 课程设计报告(2016 — 2017 学年第 1 学期) 题目:排序演示 学院:经济与管理学院 班级:物流管理1502 学号: 姓名: 指导教师:阮冰 时间:起 2017年1月3日止 1月6日

一、课程设计基本信息 课程代码:05190124 课程名称:计算机基础课程设计 课程英文名称: Computer-based Course Design 课程所属单位(院(系)、教研室):数学与计算机学院计算机基础课程群 课程面向专业:生物科学类、制药工程、制药工程(生物制药)、药物制 剂、物流管理 课程类型:必修课 先修课程:大学计算机基础通识选修课程、Visual Basic程序设计课程学分:1 总学时:16 二、课程设计目标 掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能: 1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 3.系统设计编程简练,可用,功能全面,并有一定的容错能力。用户界面良好,有较好的输出功能。在完成课题基本要求后,具有创新型设计,具有一定的实用价值。 4.根据个人的设计调试过程,撰写设计报告。 三、课程设计内容 利用已掌握的VB程序设计语言基础,以及面向对象的程序设计方法、事件驱动的编程方式,进行应用程序和系统的开发设计。在强化巩固已有编程知识基础之上,训练新的设计与编程思路,通过综合应用所学知识设计、编制、调试实用的Visual Basic程序。 四、课程设计要求 1.要求每个同学都要认真对待,积极参与。 2.课程设计结束时,提交完成的所有源程序、相关文件和可执行文件。同 时填写并完成《课程设计报告册》。 3.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设计 中完全未参与的将作不及格处理。 五、考核方式

Vb课程设计-学生成绩处理

学生成绩处理设计报告 一、设计思路 1.要达到的目的 学习VB程序设计的方法,充分体会VB在程序设计方面的强大功能和特点,培养运用VB解决实际问题的能力。通过本次课程设计,使学生进一步巩固课堂上学到的知识,能利用VB中的基本控件和数组编写一个小的应用软件—学生成绩处理。 2.关键问题的解决 ①设计程序界面 ②选取ProgressBar 控件 ③添加TXT文件 二、模块之间的调用关系,或程序流程图 三、部分程序关键源代码及注释 Dim data(100, 3) As String Dim num As Integer Private Sub Command1_Click(Index As Integer) Close #1 Select Case Index Case 0 Open "d:\成绩.txt" For Append As #1 Dim flag As Boolean For i = 0 To 3 If Text1(i) = "" Then MsgBox "请确认学号,姓名,分数都已输入", vbOKOnly, "提示" flag = True

Next If Not flag Then Write #1, Text1(0).Text; Text1(1).Text; Val(Text1(2).Text); Val(Text1(3).Text) MsgBox "添加成功" End If Case 1 Picture1.Cls Dim StrLine As String, a() As String Dim x As Integer, b As Integer Open "D:\成绩.txt" For Input As #1 i = 0 Do While Not EOF(1) Line Input #1, StrLine If StrLine <> "" Then a() = Split(StrLine, ",") For j = 0 To 3 data(i, j) = a(j) Next End If i = i + 1 Loop num = i For x = 0 To num For j = 0 To 3 Picture1.Print data(x, j) + " "; Next Picture1.Print Next Case 2 Picture2.Cls Open "d:\成绩.txt" For Input As #1 While Not EOF(1) Line Input #1, StrLine ss = ss + StrLine + vbCrLf Wend Picture2.Print ss End Select Close #1 End Sub Private Sub Form_Load() Open "D:\成绩.txt" For Append As #1

排序演示 vb课程设计论文

成绩南京工程学院课程设计报告(论文) 题目排序演示 课程名称程序设计基础---VB 院(系、部、中心)先进制造技术工程中心 专业机械制造及其自动化 班级D机加工091 学生姓名钱丽 学号231090406 设计地点图书馆A307 指导教师黄陈蓉 设计起止时间: 2011 年 1月4 日至 2011 年 1月 6日

目录 一、设计任务 (3) 二、总体设计思路 (4) 三、画出程序总体框图 (4) 四、系统的调试 (6) 五、收获体会 (8) 六、源代码 (9) 七、主要参考资料 (23)

一、设计任务 (1)程序启动后,显示主界面。首先单击“产生10个随机数”按钮来产生10个随机数,并显示在10个文本框中;然后选择一种“演示模式”和“排序方式”,其中演示模式可以直接给出排序结果,也可以通过动画动态演示整个排序过程,排序方式可以按从小到大顺序,也可以按从大到小顺序排序。 (2)在主窗口的空白区单击鼠标右键,弹出快捷菜单。从中选择“排序算法”命令,打开对话框,从中选择一种排序方式,单击不同排序方式时,“算法描述”中简要介绍了这种算法。单击“确定”按钮返回到主窗口,主窗口中最上方框架控件的标题文字显示当前所选的排序算法。 (3)设置完毕,单击“开始排序”按钮(此按钮在生成数据之前是不可用的),启动排序过程。若选择了动画方式,红色背景的文本框表示当前正在比较的元素,黄色的代表已排序的元素,2个运动的文本框表示交换过程。在排序过程中可以调节水平滚动条的位置来控制演示过程的速度。排序结束后程序以消息框的形式报告数据交换的次数。可以使用快捷菜单中的“将数据写入文件”命令将排序后的数据保存到“data.txt”中覆盖原有内容。 (4)选择窗口主菜单中的“颜色设置”命令,主窗口扩大,底部显示“颜色设置”框架,可以对“文本背景色”、“文本前景色”、“已排序元素色”和“交换结点色”进行设置。再选择此命令,窗口恢复到原来的大小。(5)选择主菜单中的“退出”命令可退出本程序,程序显示消息对话

[心得体会]vb程序设计实验心得4篇

[心得体会]vb程序设计实验心得4篇数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,我开始写这篇文章,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹并期望与大家共勉。 首先,让我的记忆追溯到大二暑假,在老大的指引下,我接触到Microsoft 公司的.NET产品。那个时候我已经学过vc和asp,因为windows程序设计实验的课的关系,接触过vb,但是没有专门去学他,因为习惯了c++里面的class,int,觉得vb的sub,var 看着就不是很顺心。我是一个好奇心很强的人,突然看到了一个号称“.网络是用于创建下一代应用程序的理想而又现实的开发工具”,而且主推c#语言,由于对c语言的一贯好感,我几乎是立刻对他产生了兴趣。我就开始了对c#的学习,任何语言都不是孤立存在的,所以数据交互是很重要的,暑假的时候我把我们这学期的课本数据库系统概论看了一遍。我记得以前用c语言编程的时候,数据是在内存中申请空间,譬如使用数组等等。很耗费内存空间。这个时候就是数据库站出来的时候啦,于是我又装上了sql serverXX,以前学asp的时候用的是aess,那个时候只是照着人家做,理论是什么也不是很清楚。

通过一个暑假的学习,基本搞清楚了理论方面的东西,具体怎么 用也不是很清楚。但是这为这学期的课程设计打下了铺垫。 来到学校后,随着这学期的数据库课程大赛开始了,我有一个看 法就是我自己应该具备的能力不是我会多少,而是我应该具备快速学会东西的能力。遇到什么就学什么。我们有时候很容易被一些专业名词说吓着,包括什么建模,软件工程,数据分析,数据挖掘等等。我身边就有很多同学被这些纸老虎所唬住,而没有勇气去接触他们,总是说这个太难了之类的退堂鼓的话,他们低估了自己的潜力同时也压抑住了他们自己的好奇心。其实都是纸老虎,又不是什么国家科研难题,只是去用一些工具,发明工具是很难,但是用一个工具就容易多了,just do it!我记得我做这个数据库之前,我们老师说要做好前期分析,我就在网上搜索用什么分析工具好。最后我选择了roseUML 建模工具。在此之前,我脑袋里面没有软件建模的思想,什么UML建模对我而言就是一张空白的纸。但是真正接触后并没有想象的那么难,有什么不懂的上网去搜索,这是一个信息横流的世界,有google,baidu就没有不能解决的知识难题。以及后来的数据库分析的时候用到的powerdesigner也是一样。 开发的时候我想过用什么架构,c/s模式?模式有很多,怎么选择?我就上网搜索现在最流行的架构是什么。结果搜到了MVC架构,就是你啦。我决定用这个架构,不会,没关系,咱学。Just do it!

vb课程设计心得体会范文

vb课程设计心得体会范文 vb课程设计心得体会范文 vb课程设计心得体会范文1 经过近一个月的设计与制作,我们组的《20xx世界杯观战指南》终于完成了,现将过程中遇到的问题、获得的体会记录如下。 这次数据库课程设计中我主要负责用户登录、注册及数据库维护方面的设计。 1.Delphi是一款功能很强大的软件,其控件之多超出了我的想象,因此在运用时要借助很多资料。要学会查找和利用现有资料来解决问题 2.在设计中用到了很多SQL语句,因此对SQL及程序语句地掌握也是必不可少的。 3.后期的软件制作都是以前期的工作为基础的,因此在前期的需求分析及数据库设计阶段要认真、细致。 4.我们是三个人的小组,在设计过程要互相协调,合作。这样才能充分发挥每个人的作用。 vb课程设计心得体会范文2 首先了解到VB的特点,VB是在原来的Basic语言基础上发展而来的。Visual指的是可视的图形用户界面开发方法。不需编写大量代码去描述界面元素的外观和位置,只要把预先建立的对象添加到屏

幕上的某点即可。如果使用者诸多PAINT之类的绘图程序,则实际上已经掌握了创建用户界面的必要技巧。 BASIC指的是B语言,一种在计算机技术发展历史上应用得最为广泛的语言之一。VB在原来BASIC语言的基础上进一步发展至今包含了数百条语句,函数及关键词,其中很多和WINDOWS GUI有直接关系,VB不仅是可视语言,而且是面向对象的编程语言。其特点是概念多,实践性强,涉及面广。 之后,了解到一些基本的概念,含义。例如类,就是创建对象实例的模板包含了创建的属性描述和行为特征的定义。而此中的对象又是类的一个实例,继承了类的属性,方法,而VB中长用的对象有窗体,控件等。但我们在建立之前必须清楚对象的三要素:属性,方法和事件。而建立程序的步骤大致可分为: (1)启动程序,装载和显示窗体。 (2)窗体等待事件的发生。 (3)事件发生时,执行对应的事件发生过程。 (4)再重复(2)(3)的过程(5)最后直接遇到“END”结束语句结束程序的运行或按“结束”强行停止程序的运行。 再用VB创建一个应用程序,第一步骤是创建窗体,它是用户与应用程序进行交互操作的可视部分,窗体是创建界面的基本构造模块,也是创建应用程序所使用的对象。而后必要设置窗体的属性,从而构出窗体的外观,设置好的窗体,窗体就作为对象,能够对其定义的事件作出响应,这也是所谓的窗体事件,而窗体事件又包括窗体本

VB课程设计实验报告

第1章 统设计的目的与意义: 客房管理系统用于宾馆旅客入住情况登记,包括旅客的姓名及身份证号的登记,以及入住房间信息.当旅客离开时,需要办理退房结帐手续.对于一定时间没的旅客入住情况实现基本查询,报表打印功能.对于宾馆本身也实现了客房增减,入住情况查询等功能. 无论各种等级的宾馆,使用客房管理系统都具有非常实用的价值.使用该系统可以大大节省时间,提高办公效率,而且非常方便的实现旅客信息的查询,以及对宾馆本身客房入住情况及时了解.因此,客房管理系统的开发无疑具有深远的意义. 系统功能设计 系统设计包括数据库设计,主界面设计,菜单设计以及功能设计.而其他功能设计包括系统登录设计,旅客信息登记,旅客信息查询,退房信息处理设计以及报表输入等功能设计,系统功能设计流程图如图所示

第2章 数据库设计 旅客信息表为旅客的个人信息加入住客房信息,数据结构如表 表2.1 客房信息表为客房入住情况的基本信息,数据结构如表 表2.2 旅客退房记录表为旅客退房相关的一些记录信息,数据结构如表 旅客退房记录表设置 表2.3 管理人员信息表存储宾馆管理人员使用该系统的帐号密码,数据结构表 管理人员信息表设置

表2.4 第3章 主体内容 3.1 设计标准模块 本系统设计过程中,创建一个通用函数模块,用于实现数据库连接及按需要打开一个数据表。程序代码如下: Option Explicit Public Sub opentable(pado As Adodc, precordsource As String) With pado .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "/Total.mdb" .CommandType = adCmdUnknown .RecordSource = precordsource .Refresh End With End Sub 3.2 户登录界面设计 用户登录的作用是判断使用本程序的用户是否是合法用户。在程序进入登录界面时要求输入用户名和密码,如果用户名,密码正确程序继续执行。当密码错误输入的次数超过设定次数时,给出提示信息退出程序,这样防止了非法用户对本程序的使用。 3.2.1工作界面设计

VB课程设计总结

通过几周对VB的学习,使我增加了对VB课程的了解. 首先了解到VB的特点,VB是在原来的Basic语言基础上发展而来的.Visual指的是可视的图形用户界面开发方法.不需编写大量代码去描述界面元素的外观和位置,只要把预先建立的对象添加到屏幕上的某点即可.如果使用者诸多PAINT之类的绘图程序,则实际上已经掌握了创建用户界面的必要技巧.BASIC指的是B语言,一种在计算机技术发展历史上应用得最为广泛的语言之一.VB在原来BASIC语言的基础上进一步发展至今包含了数百条语句,函数及关键词,其中很多和WINDOWS GUI有直接关系,VB不仅是可视语言,而且是面向对象的编程语言.其特点是概念多,实践性强,涉及面广. 之后,了解到一些基本的概念,含义.例如类,就是创建对象实例的模板包含了创建的属性描述和行为特征的定义.而此中的对象又是类的一个实例,继承了类的属性,方法,而VB中长用的对象有窗体,控件等.但我们在建立之前必须清楚对象的三要素:属性,方法和事件.而建立程序的步骤大致可分为:(1)启动程序,装载和显示窗体.(2)窗体等待事件的发生.(3)事件发生时,执行对应的事件发生过程.(4)再重复(2)(3)的过程(5)最后直接遇到"END"结束语句结束程序的运行或按"结束"强行停止程序的运行. 再用VB创建一个应用程序,第一步骤是创建窗体,它是用户与应用程序进行交互操作的可视部分,窗体是创建界面的基本构造模块,也是创建应用程序所使用的对象.而后必要设置窗体的属性,从而构出窗体的外观,设置好的窗体,窗体就作为对象,能够对其定义的事件作出响应,这也是所谓的窗体事件,而窗体事件又包括窗体本身事件,键盘事件和鼠标事件.在了解窗体基本知识就还应了解VB的语言基础,其中包括了代码模块(窗体模块,标准模块,类模块),注释,分行和续行,数据类节(字节型,逻辑型,数值型,日期型),变量与常数,运算符与表达式,数组,控制结构,子过程和函数.同时,为了编程,我们还应培养良好的编程习惯,首先是对象,变量及过程的命名约定,然结构化编码约定. 在VB中创建应用程序之际也就是和对象打交道之时,对象是代码和数据的组合,可以作为一个单位来处理,对象可以是应用程序的一部分,比如可以是控件,窗体,或数据访问对象.控件也是对象中的一种,主要用来获取用户的输入信息和显示输出信息.应用程序中可用的控件包括文本框,命令按扭和列表框.而通过另外一些控件可以访问其他应用程序并处理数据. VB程序设计同时可设计出一个更好的菜单系统,这样就可以使用户了解到更大量有关应用程序设计和结构的信息,精心规划菜单与工具栏有助于提高应用程序的可用性.同时在基于WINDOWS的应用程序中,对话框被用来提示应用程序继续运行所需的数据或者用户显示信息.对话框是一种特殊类型的窗体对象,在VB中按对话框的创建有三种类型的对话框,他们是

VB课程设计报告--拼图游戏

VB课程设计报告 —拼图游戏 知识点:控件数组,公共对话框控件,PictureClip控件,多模块程序设计,图片的应用。 1.题目介绍 “拼图”是一种老少皆宜、容易上手的益智类小游戏,本题目要求编制一个拼图游戏程序。使用方法如下: (1)指定一幅图片,将其分割成m × n 个小图块并且打乱顺序后重新排列,其中有一块没有图块的“空挡”。 (2)使用鼠标单击与空挡相邻的图块使该图块与空挡的位置互换。(3)利用空挡位置移动各图块,最终恢复图片原貌,完成拼图。移动的步数越少则说明游戏者的水平越高。游戏过程中,可以打开参考图帮助找到正确的位置。 2.功能要求 (1)运行程序,在进入游戏之前显示一个背景图片。 (2)选择菜单中的“打开图片”命令,显示打开图片对话框,“打开图片”对话框使用公共对话框控件实现,并且只能指定以*.jpg *.bmp 为扩展名的文件。可以在查看菜单中选着“缩略图”进行预览。(3)选择图片之后,程序弹出“指定行列数”对话框,提示将图片分几行几列。使用微调按钮可以调节行数和列数,限制在3-7之间。(4)指定行列数之后,单击确定返回主窗口,程序自动按照指定的

行列数将图片进分割,然后随机排列。 (5)打乱的图片中一空挡位置,用户单击与空挡相邻的图块可以与其互换位置。点击了空挡或者与其不相邻的,程序不做任何操作。原图只少右下角的图块。 (6)图片复原时,程序显示消息框表示祝贺,同时显示游戏共使用的步数。 (7)游戏过程中,如果用户希望参考原图,可以单击“显示原图”按钮,打开“参考图”窗口。 (8)窗体中的背景颜色可以改变,从菜单中选择“背景颜色”命令,弹出“颜色”飞、公共对话框,用户从中选择一颜色即可。 (9)在游戏过程中或在完成后,均可退出程序或选择“打开图片”菜单命令重新开始一个新图片。 (10)“参考图”窗口应是一个非模态窗口,在关闭主窗口时同时卸载,而不是隐藏,否则该程序不会完全关闭,仍会驻留内存。 3.程序设计 概述:(1)PictureClip 控件来管理打开图片并将其分为指定的行列图块,其Picture、Rows、Cols等属性值应在程序中设定。 (2)使用image控件数组来显示图块,设计时只需在窗体上放置一个image控件并将其的index设为0 ,其他的用load语句加载。 (3)“打开图片”和“颜色”对话框commondialog控件实现。设置其filter属性使之只能打开bmp和jpg类型的图片文件。 (4)将image控件的stretch属性设计为TRUE。

vb课程设计报告心得感想模板.doc

vb课程设计报告心得感想 vb课程设计报告心得感想篇1 在课程设计过程中,虽然我对程序设计不是很熟悉,但是通过老师详细的讲解,我按照步骤去做,遇到问题的时候先自己想办法解决,解决不了的就去问同学,问老师,通过这种学习,收获很大,学会了自己解决棘手问题,知道了团结的力量。 刚开始做程序的时候,就是完全按照老师的要求,老师的步骤去做的,结果却发现,怎么运行不了?明明是按照老师的步骤去做的,明明是按照老师的要求去做的,但是就是会遇到一些问题使程序运行不了。开始也没有管那么多,仍然是按照课本上的去做。 第一次,在上机课的时候,我根据老师讲的,在机房里做了一次,但没有做完。于是把东西存在了自己的MP3里面,以便以后上机的时候再来做。但真的没有想到,我的MP3,在一次上电子阅览室的时候,忘了拔了。于是乎,我辛辛苦苦做了一大节课的程序就这样没了。心里真的很不舒服,但是,不舒服归不舒服,这个程序,还是得继续做下去,这么以点点小小的失误不算什么,然后跑到学校机房,继续我的VB程序设计。但由于时间问题,做的还是有点粗糙,还是不免存在一定的问题,比如说开始的时候打开不了文件,总是出现错误,自己总也找不出来,后来请教了一下同学,结果发现时代码的编写出现了错误,把代码改过来之后,程序终于可以打开运行了。然后,检查的时候,又发现查找运行错误,又是代码那里出现的黄色的字样,结果发现,是代码拼写错误,于是,拿着同学的代码对比一下,发现了错误所在之地,然后更正了过来。 经过一番努力,程序终于做完了。 后来,室友看了我的程序,她说运行不了的,就是出现了错误,出现了错误,就应该改过啊,这时的我才恍然大。是错误,那么就要改正的! 于是当天,我就去了学校机房,再一次运行我的程序,仍然出现错误情况,需要调试,我回忆起上课的时候,老师是怎么跟我们讲的,哪里出现了错误,需要怎么样改正。于是,我就耐着性子,一个一个,一个一个得改正,编辑代码,一个一个得检查,终于完成了。完成之后,我在运行一下,一切正常,心里终于舒了一口气。经过这次的VB程序设计,让我知道了更多学习的方法。具体如下:(1)保持良好的学习心态,第一,要有自信,自强,积极主动学习.第二,克服畏难情绪,树立学好程序设计的信心(2)要了解概念:VB程序设计本身并不复杂,变量,函数,条件语句,循环语句等概念较多.要真正能进行程序设计,就要深入理解这些概念.应该重视概念的学习. (3)自己动手编写程序,亲自动手进行程序设计是培养逻辑思维的好方法.因此我们得多动手编写程序,逐渐提高写程序的能力.自己动手,编写一些程

-vb点菜系统-课程设计报告书

基于VB6.0饭店点菜系统设计 单位分院(系) 专业 学号 学生姓名 指导教师 完成日期 2011年 8 月 31日

摘要 进行点菜是饭店为顾客服务的重要环节之一。传统的点菜环节由于是手工操作,工作量大且容易出错。随着计算机和网络技术的迅速发展,越来越多的饭店、酒店都拥有自己的点菜系统,制作一个方便、快捷的点菜系统能使点菜环节显得更加美观且便于操作。 饭店点菜系统技术基础是VB6.0,它有许多优点,例如:“编写一次、随处运行”的特性、方便存取数据的数据库, 使用者只需在窗体上进行操作而不用关心程序代码等等。饭店点菜系统提供给顾客一个用来满足高可用性、高可靠性以及可扩展性的应用需求的软件,给饭店点菜提供了良好的机制、使饭店的工作流程更加顺利。 本文基于VB6.0,采用多窗体结构,设计并实现了顾客在饭店消费时的点菜、结账、抽奖、留言及工作人员管理等多项功能。 本文首先介绍了软件设计涉及的相关技术,围绕VB6.0的相关技术进行软件的解释。其次,介绍了饭店点菜系统的总体分析与设计,包括需求分析、功能模块分析和数据库设计。最后,对于主要功能进行了实现,并作了详细描述,主要采用图片与代码结合的方式详细地叙述了系统功能的实现。 关键词:文件、数据库、控件使用、图片载入

目录 1.选题的意义................................................... 2.系统功能分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 2.1系统概述。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 2.2系统的组成及各模块的功能 ........................................... 2 .3系统运行环境。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3.系统设计 ................................................... 3.1总体结构设计....................................................... 3.2数据库设计......................................................... 4.系统实现 ................................................... 4.1点菜系统的设计与实现 ............................................... 4.2管理系统模块的设计与实现 ........................................... 5.总结....................................................... 5.1总结................................................................ 5.2致谢词 ............................................................. 5.3存在的主要问题...................................................... 参考文献......................................................

VB毕业课程设计实验报告

(此文档为word格式,下载后您可任意编辑修改!) 第1章 系统设计的目的与意义: 客房管理系统用于宾馆旅客入住情况登记,包括旅客的姓名及身份证号的登记,以及入住房间信息.当旅客离开时,需要办理退房结帐手续.对于一定时间没的旅客入住情况实现基本查询,报表打印功能.对于宾馆本身也实现了客房增减,入住情况查询等功能. 无论各种等级的宾馆,使用客房管理系统都具有非常实用的价值.使用该系统可以大大节省时间,提高办公效率,而且非常方便的实现旅客信息的查询,以及对宾馆本身客房入住情况及时了解.因此,客房管理系统的开发无疑具有深远的意义. 系统功能设计 系统设计包括数据库设计,主界面设计,菜单设计以及功能设计.而其他功能设计包括系统登录设计,旅客信息登记,旅客信息查询,退房信息处理设计以及报表输入等功能设计,系统功能设计流程图如图所示 图1.1 错误!

第2章 数据库设计 旅客信息表为旅客的个人信息加入住客房信息,数据结构如表 旅客信息表设置 表2.1 客房信息表为客房入住情况的基本信息,数据结构如表 客房信息表设置

表2.2 旅客退房记录表为旅客退房相关的一些记录信息,数据结构如表 旅客退房记录表设置 表2.3 管理人员信息表存储宾馆管理人员使用该系统的帐号密码,数据结构表第一章主界面的设计(余蕾) 主体内容 3.1 设计标准模块 本系统设计过程中,创建一个通用函数模块,用于实现数据库连接及按需要打开一个数据表。程序代码如下: Option Explicit Public Sub opentable(pado As Adodc, precordsource As String) With pado

背单词程序课程设计报告

(北京)计算机语言课程设计 ——背单词 院系:地球物理与信息工程学院 专业:自动化09 小组成员:常润秀、覃丹丹、周衍彤 陈建龙、黄冬 完成日期: 2011年7月14 日 小组设计成绩:

一、设计目的: 综合运用面向对象开发工具,设计Windows风格的软件。通过此次程序设计题目,使学生熟练掌握Windows应用程序的开发过程,为以后专业课的学习奠定基础。 二、所选编程语言:Visual Basic 6.0 三、系统总体设计思路: 背单词软件是英语学习类软件的分支,是专门针对用户背诵英语单词,掌握词汇量而制作的辅助学习软件。由于媒介为个人电脑,所以背单词软件有着其它背单词工具无法达到的智能化与互动性,但相对应的,过于依赖电脑和较差的便携性成为其缺陷。所以作为背单词的软件的设计思路应该简单为原则。用户操作必须简单、方便为原则。 (1)本题目共提供了“大学英语四级词汇”和“大学英语六级词汇”两个词库文件(分别是grade4.txt和grade6.txt),通过“词库设置”中的“词库”组合框可以选择想要的词库。默认的词库是“大学英语四级词汇”。 (2)为了便于用户使用,程序允许选择想要记忆的单词范围。默认的单词范围是“A至Z”,即全部单词。如果选择的范围是“A至C”,那么程序只显示以A、B和C字母开头的单词。程序应保证“起始字母”在“终止字母”之前,即不会出现类似于“C至A” 的情况。 (3)据需要选择“随机”或“循环”复选框。如果不选择“随机”,则显示单词时是以单词在词库中的顺序(即字母的顺序)显示的,否则以随机顺序显示。如果不选择“循 环”复选框,单词显示一遍之后自动停止回到起始状态。如果选择了“循环”复选 框,显示一遍之后会自动从头开始显示。 在随机方式之下,循环是没有意义的,所以当“随机”复选框选定时,“循环”复选 框应变为无效且呈现未选定状态。 (4)毕后,单击“开始”按钮,窗口最上方显示区域从右向左以字幕方式动态显示所选的单词,包括词性和词义。在显示过程中可以改变字体大小、滚动速度和背景显示 颜色。单击“暂停”按钮可以暂停滚动,这时“暂停”按钮变为“继续”,单击会继续滚动。单击“退出”按钮退出主界面。 设计任务分工安排: 由于小组由五名成员构成,可将界面模块分为五个部分: 1.滚动字幕以及部分相关控制控件。设计人员:陈建龙。 2.字体大小,滚动速度,背景颜色控制。设计人员:常润秀。 3.词库选择。设计人员:覃丹丹,黄冬。 4.显示方式(随机,循环)设计人员:覃丹丹,黄冬。 5.主界面其他相关控件,以及其他弹出界面和进入界面。设计人员:周衍彤。 设计进度安排: 设计时间:2011.7.7~2011.7.8, 2011.7.11~2011.7.13 7、8号找到各部分设计思路,进行初步设计

VB学生信息管理系统课程设计报告

专业实践 课 程 设 计 报 告 班级:08计科一班 姓名:*** 学号:*************

学生信息管理系统 1.需求分析: 随着学校的规模不断扩大,学生人数急剧增加,有关学生的各种信息也成倍增长。面对庞大的信息量需要有学生管理系统来提供学生管理工作的效率。通过这样的系统可以做到信息的规范管理,科学统计和快速查询,修改,增加,删除等,从而减少管理方面的工作量。实现学生信息关系的系统化,规范化,自动化,用计算机对学生各种信息进行日常管理。 本系统主要包括学生信息查询和信息添加等功能,来初步实现学生信息的计算机化管理,更多相关功能有待以后慢慢完善。 2.系统功能: 本学生信息管理系统采用的语言是Visual Basic,用SQL Sever 2000数据库完成,有以下功能: (1)有较好的权限管理; (2) 原始数据修改简单方便,支持多条件修改; (3)方便的数据查询,支持多条件查询. 2.1采用Visual Basic有以下特点: 2.1.1可视化编程 Visual Basic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。Visual Basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。 2.1.2结构化程序设计语言 Visual Basic是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。Visual Basic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。

VB课程设计 文本编辑器

VB课程设计报告 ——文本编辑器 学院名称: 学生姓名: 专业名称: 班级:

一、课程设计题目 用Visual Basic程序设计语言编写一个简易的文本编辑器 要求:有最基本的文本编辑功能,包括复制、剪切、粘贴、字体设置、背景颜色设置、字体颜色设置;同时拥有文本管理功能,包括打开文件、保存文件;以及完整的系统运行退出等功能,所有的操作可选择设定的快捷键。 二、课程设计目的 虽然本学期的Visual Basic课程是自学的,相对于课堂学习有些不足,但通过平时的上机实验,初步掌握了VB程序设计的各种方法,学会了编写最基本的VB程序;对于完整的VB程序设计来讲是很不足的,平时掌握的只是单独的窗体(Form)程序编写,以及各种简单控件的使用,没有做到很好连贯性,所以有必要做一次完整的VB程序设计,结合所学的基本知识,使用多个窗体自成一套系统,加上各种控件的综合运用,初步设计一个合格的VB 应用程序;这样在巩固VB所学的同时,更好地学会程序设计的一些思想和方法,对于以后的编程学习或是工作有重要的实践意义。 三、课程设计说明 题目为文本编辑器,即是最基本的文本编辑程序,首先必须做好文本编辑器本身的功能,然后对其完善,做成一个完整的小程序 功能设计说明:功能是这个文本编辑器的核心内容,也就是程序的作用,它是用来做什么的;本程序就是用来编写文本的,编写过程中要利用到窗体(Form)一个,控件包括:RichTextBox1(超文本框)、CommonDialog(通用对话框),以及InputBox(消息框)、菜单编辑器等,。要做的工作就是编写代码把这些控件和窗体等结合为一体,使得程序能够成为一体,顺畅运行。 本次设计在按照题目要求的前提下,为了完整地展示一个应用程序,在最初就设计为最基本的文本的编辑器,所以取名为“易记本”,就是简易记事本的简称,然后加入图标,在程序完成之后还进行了大包操作,得到应用程序的安装文件,最后安装在电脑上运行使用。四.源代码 Private Sub Command1_Click() Dim i As Integer If Text2.Text<>"123456"Then i=MsgBox("密码错误",5+vbExclamation,"警告") If i<>6Then End Else Text2.Text="" Text2.SetFocus End If End If Form1.Hide Form2.Show End Sub Private Sub Form_Load() Text1.Text="" Text1.MaxLength=6

VB课程设计报告——扫雷游戏

VB课程设计报告 -------扫雷游戏马学清1008260132 指导老师:张小兵 一、题目介绍 在计算机逐步渗入社会生活各个层面的今天,计算机已经成为人们日常生活的一分,越来越多的人使用计算机办公、娱乐等等。 扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里,Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。我利用Turbo C编写了与它功能相仿的扫雷游戏,寓学于乐。 程序功能 二、程序功能 程序的功能是随机生成地雷数,通过鼠标操作玩游戏,不接受键盘,按任意键结束程序。单击屏幕上的“开始”按钮可以重新开始游戏。所有地雷标出后胜利,当鼠标左键单击到地雷时失败。 三、程序设计目的 1.培养综合运用所学知识独立完成课题的能力。 2.更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。 3.提高对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。 4.培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。 5.培养从资料文献、科学实验中获得知识的能力,提高从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。 6.对掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核 四、游戏规则 设计10×10格区域,单击鼠标后,在此格中显示的数字,则表示它周围就有几个空格内含有的地雷数,周围没有地雷的显示空白,则不能再单击了。如果是地雷,则游戏结束。如果判断是地雷,可以单击鼠标右键标出,显示红色,要取消红旗标志则再单击鼠标右键,当所有地雷都标出,每个空格都处理过,那么游戏就胜利结束。 五、程序源代码 '级别 Private Sub Form_Load() '默认初级 dengji = 1 Call nandu(dengji)

相关主题
文本预览
相关文档 最新文档