当前位置:文档之家› 利用VB实现FTP基本功能

利用VB实现FTP基本功能

利用VB实现FTP基本功能
利用VB实现FTP基本功能

课程设计任务书

题目: FTP文件传输的实现

初始条件:

理论:学完“操作系统”和“计算机网络”课程,掌握一种高级程序设计语言(C++、C#、Java、Delphi)及集成开发平台的使用。

实践:计算机学院科学系实验中心提供计算机、软件平台和网络环境。如果自己有计算机可以在其上进行设计。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)模仿应用FTP协议。

(2)主要功能:1支持站点目录和文件结构浏览。

2支持断线自动重新连接并自动恢复传输。

3文件列表过滤,远程编辑,整个远端目录删除,目录上传下载。

(3)应用所学计算机网络课程中的知识,利用网络实用程序实现其协议。

(4)编制好网络实用程序后,设计若干用例,上机测试并分析所设计的程序。

(5)设计报告格式按附件要求书写。课程设计报告书正文的容应包括:

设计题目;需求说明(要求、功能简述)或问题描述;

设计说明(简要的分析与概要设计);详细的算法描述;

源程序与执行结果(含测试方法和测试结果);使用说明;

设计心得(设计的特点、不足、收获与体会);

展望(该实用程序进一步改进扩展的设想)。

时间安排:

设计时间一周:周1:查阅相关资料。

周2:系统分析,设计。

周3周4:编程并上机调试

周5:撰写课程设计报告。

设计验收安排:19周星期五8:00起到计算机学院科学系实验中心进行上机验收。

设计报告书收取时间:19周的星期五下午5:00之前。

指导教师签名:年月日

系主任(或责任教师)签名:年月日

FTP文件传输的实现

1设计题目

FTP文件传输的实现

2需求说明(要求、功能简述)或问题描述

2.1 FTP概念和传输原理

FTP是Internet上使用非常广泛的一种通讯协议。它是由支持Internet文件传输的各种规则所组成的集合,这些规则使Internet用户可以把文件从一个主机拷贝到另一个主机上,因而为用户提供了极大的方便和收益。

FTP和其它Internet服务一样,也是采用客户机/服务器方式。使用方法很简单,启动FTP客户端程序先与远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。FTP有一个根本的限制,那就是,如果用户未被某一FTP主机授权,就不能访问该主机,实际上是用户不能远程登录(Remote Login)进入该主机。也就是说,如果用户在某个主机上没有注册获得授权,没有用户名和口令,就不能与该主机进行文件的传输。而Anonymous FTP则取消了这种限制。

FTP支持两种模式,一种方式叫做Standard(也就是PORT方式,主动方式),一种是Passive (也就是PASV,被动方式)。Standard模式FTP的客户端发送PORT命令到FTP服务器。Passive模式FTP的客户端发送PASV命令到FTPServer。Port模式FTP客户端首先和FTP服务器的TCP21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。

FTP可用多种格式传输文件,通常由系统决定,大多数系统(包括UNIX系统)只有两种模式:文本模式(ASCII)和二进制模式(BIN/IMAGE)。

简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为下载文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为上载文件。在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。

FTP(非匿名)必须要有4要素:FTP主机地址,端口号,用户名,密码。

2.2需求说明

完成两台计算机之间的拷贝,实现文件的上传和下载;

支持站点目录和文件结构浏览;

文件列表过滤,远程编辑,整个远端目录删除;

支持断线自动重新连接并自动恢复传输。

3设计说明(简要的分析与概要设计)

采用VB编程,通过建立一系列的窗体模块,程序模块,类模块编制一个小的应用软件。该软件的功能是当程序运行成功后,用户可以选择任意的FTP主机地址进行登陆。当选择是匿名的FTP主机地址时,选择anonymous复选框,这时只需要输入FTP主机地址就可以登陆,此时用户名为anonymous,密码为Emai1地址,以便更好地对用户访问进行跟综。如果不是匿名登陆,则取消选择anonymous复选框,这时要输入用户名和密码,一个用户名对应了一个访问的权限。

通过WINSOCK建立连接,将信息发送到远程的ftp服务器主机上,实现用户的登陆。

当用户成功登陆后,远程FTP主机的文件就全部列在frmMain窗体左侧的TreeView 控件中,当点机TreeView控件中的文件夹时,相应的文件夹中的文件就列在右侧的ListView控件中,并且显示文件的图标,大小和最近的访问日期。显示的方式可以通过点击工具栏中的图标来设置,文件可以以大图标的形式显示,也可以以小图标的形式显示。

当用户选择了远程的某一个文件后,可以点击工具栏上的下载,删除,重命名图标来实现对远程文件的操作。但实际上大多数FTP主机为了安全采取了一些保护措施以保护自己的文件。除非你有特殊的权限,否则不能对文件进行修改和删除。但是大多数匿名FTP 主机都允许用户从其下载文件。

用户也可以在本地选择文件上传到FTP服务器主机,大多数用户不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上载文件,用户也只能将文件上载至某一指定上载目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用

户得到了保护,避免了有人上载有问题的文件,如带病毒的文件。因此要实现文件的上传,还需选择一个特殊的可以用户上传文件的FTP服务器主机地址。

4详细的算法描述

5 源程序与执行结果(含测试方法和测试结果)

5.1原程序部分

5.1.1 frmMain 窗体的部分代码

Const NAME_COLUMN = 0

Const TYPE_COLUMN = 1

Const SIZE_COLUMN = 2

Const DATE_COLUMN = 3

Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long

Dim mbMoving As Boolean '定义是否鼠标按下

Const sglSplitLimit = 500 '定义最小的分割距离

Private m_LastNode As Node

Private WithEvents m_FtpConnection As CFtpConnection

Private m_strFile As String

Private m_lFileSize As Long

Private Sub Check1_Click()

If Check1.Value Then

m_FtpConnection.PassiveMode = True

Else

m_FtpConnection.PassiveMode = False

End If

End Sub

Private Sub CoolBar1_HeightChanged(ByVal NewHeight As Single)

SizeControls picSplitter.Left

End Sub

Private Sub Form_Load()

Me.Left = GetSetting(App.Title, "Settings", "MainLeft", 1000) 'app.title是当前程序的标题

Me.Top = GetSetting(App.Title, "Settings", "MainTop", 1000) '表示读取注册表中关

于App.Title所指的应用程序中Settings注册表目录下的MainTop变量的值,如果没有找到这个注册表变量则,默认为1000

Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 6500)

Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 6500)

Set m_FtpConnection = New CFtpConnection

m_FtpConnection.Timeout = 180

End Sub

Private Sub Form_Unload(Cancel As Integer)

Dim i As Integer

Set m_FtpConnection = Nothing 'close all sub forms

For i = Forms.Count - 1 To 1 Step -1 '卸载所有窗体

Unload Forms(i)

Next

SaveSetting App.Title, "Settings", "ViewMode", lvListView.View

End Sub

Private Sub m_FtpConnection_StateChanged(State As FTP_CONNECTION_STATES) Dim strStatus As String

Select Case State

Case FTP_CONNECTION_RESOLVING_HOST

strStatus = "Resolving host..."

Case FTP_CONNECTION_HOST_RESOLVED

strStatus = "Host resolved"

Case FTP_CONNECTION_CONNECTED

strStatus = "Connected"

Case FTP_CONNECTION_AUTHENTICATION

strStatus = "Authentication..."

Case FTP_USER_LOGGED

strStatus = "You are logged in. Connection ready."

Case FTP_ESTABLISHING_DATA_CONNECTION

strStatus = "Establishing data connection..."

Case FTP_DATA_CONNECTION_ESTABLISHED

strStatus = "Data connection established."

Case FTP_RETRIEVING_DIRECTORY_INFO

strStatus = "Retrieving directory info..."

Case FTP_DIRECTORY_INFO_COMPLETED

strStatus = "Directory listing completed."

Case State = FTP_TRANSFER_STARTING

strStatus = "Transfer in progress..."

Case FTP_TRANSFER_COMLETED

strStatus = "Transfer completed."

ProgressBar1.Value = 0.01

m_lFileSize = 0

End Select

sbStatusBar.Panels(1).Text = strStatus

End Sub

Private Sub imgSplitter_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

With imgSplitter 'imgSplitter为image(图片)控件

picSplitter.Move .Left, .Top, .Width \ 2, .Height - 20

End With

picSplitter.Visible = True

mbMoving = True

LockWindowUpdate Me.hwnd '指将句柄为Handle的窗体锁定,不能更新。

End Sub

Private Sub m_FtpConnection_UploadProgress(lBytes As Long)

On Error Resume Next

sbStatusBar.Panels(1).Text = "Uploading " & m_strFile & " (" & lBytes & " bytes)"

ProgressBar1.Value = lBytes / (m_lFileSize / 100)

VB程序设计的常用算法填空题

VB程序设计的常用算法 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 将程序编写在一个GetTJput过程中,代码如下: Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer '产生100个[0,99]范围内的随机整数,每行10个打印出来 For i = 1 To If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If Then Next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来For i = 1 To 100 p = a(i) Mod 10 ' 求个位上的数字 If p = 0 Then p = 10 Next i Form1.Print "统计结果" For i = 1 To 10 p = i If i = 10 Then p = 0 Form1.Print "个位数为" + Str(p) + "共" + Str(x(i)) + "个" Next i End Sub 二、求两个整数的最大公约数、最小公倍数 m=inputBox("m=") n=inputBox("n=") nm=n*m If m < n Then r=m mod n Do While m=n n=r

VB解析算法及程序实现

3.1解析算法及程序实现 1.计算长方体体积的算法描述如下:(h) (z)、宽(w)、高①输入长方体的长 v = z * w * h ②计算长方形体积③输出结果④结束()上述算法属于 A. 枚举算法 B. 排序算法 C. 解析算法 D. 递归算法 2.下列问题适合用解析算法求解的是() A.将十三张纸牌按从小到大进行排列 B.统计100内偶数的各位数字之和恰好为10的个数 C.计算一辆车行驶100公里的油耗 D.寻找本年级身高最高的同学 3.有如下问题: 12求出此圆锥体的体积。 V=πr ①已知圆锥的半径和高度h,使用公式hr3②已知班级每位同学的其中成绩总分s,按照s的值从大到小进行成绩排名。 ③已知圆的周长s,利用公式r=s/(2*3.14)求出圆的半径。 ④已知“水仙花数”的定义,找出1~10000范围内所有的水仙花数。 用计算机解决上述问题时,适合用解析算法的是() A.①② B.①③ C.③④ D.②④ 4.出租车计价规则:3公里以内,10元;超出3公里每公里增加2元。假定公里数为x,金额为y.解决此问题的公式和流程图如下图所示: 流程图加框处部分的算法属于:() A.解析算法 B.排序算法 C.枚举算法 D.递归算法

程序实现如下功能:分别现要求编写VB5.中输入Text3、和Text1、Text2在文本框Command1单击三条线段的长度,“判断”按钮中显示判断结果。程序后,在标签Label1 运行界面如图:按此要求编写的程序如下:Private Sub Command1_Click() Dim a As Single ,b As Single Dim c As Single ,st As String a=Val(Text1.Text) b=Val(Text2.Text) c=Val(Text3.Text) If Not (a + b > c And b + c > a And c + a > b) Then st = “这三条线不能构成一个三角形” ElseIf a * a + b * b = c * c Or a * a + c * c = b * b Or b * b + c * c = a * a Then “可以构成一个直角三角形” st = Then ① ElseIf “可以构成一个等边三角形” st = Else st = “可以构成一个不等边的斜三角形” End If Label1.Caption = ② End Sub 划线处应填写正确的语句是: (1)划线处① (2)划线处② 6.下列VB程序段实现计算s=1+1/2+2/3+3/4+…+99/100的值。请将下面划线处代码补充完整。 Private Sub Command1_Click() Dim i As Integer Dim s As Double s=1 For i=2 To 100 s= Next i

算法与程序设计复习资料

江苏省高中信息技术算法与程序设计(选修) 复习要点 相关知识点 (一)算法 1.定义 1算法:就是解决问题的方法和步骤。算法是程序设计的“灵魂”,算法+数据结构=程序。单选题 1、下列关于算法说法不正确的是( A ) A、算法独立于任何具体的语言,BASIC算法只能用BASIC语言来实现 B、解决问题的过程就是实现算法的过程 C、算法是程序设计的“灵魂” D、其它三项都正确 2.算法的描述方法: 1算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。 2自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。 3流程图描述:也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。 4伪代码描述法:是介于自然语言和计算机程序语言之间的一种算法描述。是专业软件开发人员常用方法。 相关题解: 单选题 1、图形符号" "在算法流程图描述中表示( B ). A 处理或运算的功能 B 输入输出操作 C 用来判断条件是否满足需求 D 算法的开始或结束 2、图形符号在算法流程图描述中表示( A ). A 处理或运算的功能 B 输入输出操作 C 用来判断条件是否满足需求 D 算法的开始或结束 3、以下哪个是算法的描述方法?( A ) A 流程图描述法 B 枚举法 C 顺序法 D 列表法

4、以下哪个是算法的描述方法?( D ) A 顺序法 B 列表法 C 集合法 D 自然语言描述法 (二)程序设计基础 (1)常用高级编程语言:BASIC、VB、Pascal、C、C++、Java 1面向对象的程序设计语言:其中的对象主要是系统设计好的对象,包括窗体等、控件等2控件:是指工具箱中的工具在窗体中画出的、能实现一定功能的部件,如文本框,命令按钮等。 对象属性=属性值 对象中属性可以在设计界面时通过属性窗中设置,也可以在运行时通过程序代码设置方法如下 例:给文本框“Txt123”的“Text”属性赋值为字符串“20”,代码如下 Txt123.text =”20” 变量=对象.属性 如果要获取对象的状态或特性,这时就要读取对象的属性值,方法如下 例:读取文本框“txt123”的“Text”属性的代码如下 a = txt123.text

Delphi7.0中如何删除文件夹(带子目录和文件)

Delphi7.0中如何删除文件夹(带子目录和文件) 说明:先要在USES中输入:ShellApi; unit Unit1; interface uses Windows, Messages, SysUtils, V ariants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons,ShellApi; type TForm1 = class(TForm) BitBtn1: TBitBtn; procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function DeletePath(mDirName: string): Boolean; { 返回删除指定目录是否成功} var vSearchRec: TSearchRec; vPathName: string; K: Integer; begin Result := True; vPathName := mDirName + '\*.*'; K := FindFirst(vPathName, faAnyFile, vSearchRec); while K = 0 do begin if (vSearchRec.Attr and faDirectory > 0) and (Pos(https://www.doczj.com/doc/a64214656.html,, '..') = 0) then begin FileSetAttr(mDirName + '\' + https://www.doczj.com/doc/a64214656.html,, faDirectory); Result := DeletePath(mDirName + '\' + https://www.doczj.com/doc/a64214656.html,); end else if Pos(https://www.doczj.com/doc/a64214656.html,, '..') = 0 then begin FileSetAttr(mDirName + '\' + https://www.doczj.com/doc/a64214656.html,, 0); Result := DeleteFile(PChar(mDirName + '\' + https://www.doczj.com/doc/a64214656.html,)); end; if not Result then Break; K := FindNext(vSearchRec); end;

VB程序设计的常用算法

VB程序设计的常用算法 算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 本题使用数组来处理,用数组a(1 to 100)存放产生的确100个随机整数,数组x(1 to 10)来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数存放在x(1)中,个位是2的个数存放在x(2)中,……个位是0的个数存放在x(10)。 将程序编写在一个GetTJput过程中,代码如下: Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer '产生100个[0,99]范围内的随机整数,每行10个打印出来 For i = 1 To 100 a(i) = Int(Rnd * 100) If a(i) < 10 Then

Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If i Mod 10 = 0 Then Form1.Print Next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组 x(1),x(2),...,x(10)中,将统计结果打印出来 For i = 1 To 100 p = a(i) Mod 10 ' 求个位上的数 字 If p = 0 Then p = 10 x(p) = x(p) + 1 Next i Form1.Print "统计结果" For i = 1 To 10 p = i If i = 10 Then p = 0 Form1.Print "个位数为" + Str(p) + "共" + Str(x(i)) + "个" Next i End Sub 二、求两个整数的最大公约数、最小公倍数 分析:求最大公约数的算法思想:(最小公倍数=两个整数之积/最大公约数) (1) 对于已知两数m,n,使得m>n; (2) m除以n得余数r; (3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4);

文件和文件夹的操作题

文件和文件夹的操作题 一、文件夹的创建:创建文件或文件夹,要先选好驱动器,如D:、C:(1)请在“我的文档”下新建以下文件夹和文件。 二、重命名文件和文件夹。 (2 )用双击的方法把“班级”这个文件夹改成“期中考试”。 (3)用右击的方法把以自己名字命名的文件夹改为“排版”。 (4)在“期中考试”下再新建一个文件夹,用“文件”―“重命名”改为“打字”。除了这三种之外,还有其他方法吗?_________________________________. 注:右击+M键 三、制、移动文件及文件夹 (5)把文件夹设置成web风格 (6)用“剪切”---“粘贴”把“期中考试”移到桌面上。 (7)用“复制”---“粘贴”把“排版”移到桌面上。 注:比较一下这两种方法有什么不同?_______________________________. (8)用拖动的方法把“打字”文件移到桌面上。 同时操作多个文件夹和文件时: (9)把word1、word3、word5复制到桌面上,(按住Ctrl,选中时) (10)把word1、word2、word3复制到“打字”文件夹下(选中时,按住shift)(11)用鼠标在文件的外围单击并拖动选中所有的文件(word1-word5)。 (12)用“编辑”菜单中的“全选”选定所有的文件。 (13)用“编辑”菜单中的“反向选定”选中除了word3之外的所有文件。 四、查找文件和文件夹 (14)在打字下建5个文本文件wword1、woord2、wwwrd3、wworrd4、wordd5。(15)把打字文件夹中的文件自动排列。 (16)查找以 wordd5命名的这个文件 (17)查找以w*d*命名的文件 (18)查找以w??rd?命名的文件并比较查找到的结果 五、创建快捷方式 (19)把word这个应用程序设置成桌面快捷方式。 (20)用桌面上右击的方法在桌面上创建word2的快捷方式。 (21)设置word2的快捷键为Ctrl+Alt+A (22)把期中考试这个文件夹拖放到“开始”菜单中,设置成开始菜单的快捷方式。

VB程序设计的常用算法4

VB程序设计的常用算法4 十、数制转换 将一个十进制整数m转换成→r(2-16)进制字符串。 方法:将m不断除r 取余数,直到商为零,以反序得到结果。下面写出一转换函数,参数idec为十进制数,ibase为要转换成数的基(如二进制的基是2,八进制的基是8等),函数输出结果是字符串。 Private Function TrDec(idec As Integer, ibase As Integer) As String Dim strDecR$, iDecR% strDecR = "" Do While idec <> 0 iDecR = idec Mod ibase If iDecR >= 10 Then strDecR = Chr$(65 + iDecR - 10) & strDecR Else strDecR = iDecR & strDecR End If idec = idec \ ibase Loop TrDec = strDecR End Function 十一、字符串的一般处理1.简单加密和解密 加密的思想是:将每个字母C加(或减)一序数K,即用它后的第K个字母代替,变换式公式:c=chr(Asc(c)+k) 例如序数k为5,这时"A"→"F","a""f","B""G"…当加序数后的字母超过"Z"或"z"则c=Chr(Asc(c)+k -26) 例如:You are good→ Dtz fwj ltti 解密为加密的逆过程 将每个字母C减(或加)一序数K,即c=chr(Asc(c)-k), 例如序数k为5,这时"Z"→"U","z"→"u","Y"→"T"…当加序数后的字母小于"A"或"a"则c=Chr(Asc(c)-k +26) 下段程序是加密处理: i = 1: strp = "" nL = Len(RTrim(strI)) Do While (i <= nL) strT = Mid$(strI, i, 1) '取第i个字符 If (strT >= "A" And strT <= "Z") Then iA = Asc(strT) + 5 If iA > Asc("Z") Then iA = iA - 26 strp = strp + Chr$(iA) ElseIf (strT >= "a" And strT <= "z") Then iA = Asc(strT) + 5 If iA > Asc("z") Then iA = iA - 26 strp = strp + Chr$(iA) Else strp = strp + strT End If i = i + 1 Loop Print strp

VB程序设计的常用算法教案.doc

VB程序设计的常用算法教案 算法(algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 本题使用数组来处理,用数组a(1 to 100)存放产生的确100个随机整数,数组x(1 to 10)来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数存放在x(1)中,个位是2的个数存放在x(2)中,......个位是0的个数存放在x(10)。 将程序编写在一个gettjput过程中,代码如下: public sub gettjput() dim a(1 to 100) as integer

dim x(1 to 10) as integer dim i as integer, p as integer '产生100个[0,99]范围内的随机整数,每行10个打印出来 for i = 1 to 100 a(i) = int(rnd * 100) if a(i) < 10 then form1.print space(2); a(i); else form1.print space(1); a(i); end if if i mod 10 = 0 then form1.print next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来 for i = 1 to 100 p = a(i) mod 10 ' 求个位上的数字 if p = 0 then p = 10 x(p) = x(p) + 1 next i form1.print "统计结果"

vb《算法与程序的设计》复习题-(1)

《算法与程序设计》复习题 一、选择题部分(100题) 一章一节:了解计算机解决问题的过程 1.用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序答案:B 2.学校要举行运动会,请你设计一个能够对运动员分数自动排序的软件,如果要设计此软件,以下最好的方法和步骤是()。 A、分析问题,编写程序,设计算法,调试程序 B、设计算法,编写程序,提出问题,调试程序 C、提出问题,设计算法,编写程序,调试程序 D、设计算法,提出问题,编写程序,调试程序 答案:C 3.下列步骤不属于软件开发过程的是()。 A、任务分析与系统设计 B、软件的销售 C、代码编写与测试 D、软件测试与维护 答案:B 4.用计算机解决问题的步骤一般为()①编写程序②设计算法③分析问题④调试程序。 A.①②③④ B.③④①② C.②③①④ D.③②①④答案:D 5.以下描述中最适合用计算机编程来处理的是()。 A、确定放学回家的路线 B、计算某个同学期中考试各科成绩总分 C、计算100以的奇数平方和 D、在因特网上查找自己喜欢的歌曲答案:C 6.以下问题中最适合用计算机编程处理的是()。 A、制定本学期的学习计划 B、计算正方形的周长 C、创作一首歌曲 D、求1000以的所有素数 答案:D 7.由“上车—掏钱—投币”所描述的问题是()。 A、无人售票车投币过程 B、乘公交车过程 C、上车过程 D、下车过程答案:A 一章二节:算法和算法描述 8.下面说确的是()。 A、算法+数据结构=程序 B、算法就是程序 C、数据结构就是程序 D、算法包括数据结构 答案:A 9.算法描述可以有多种表达方法,下面哪些方法不可以描述“水仙花数问题”的算法()。 A.自然语言 B.流程图 C.伪代码 D.机器语言答案:D 10.下面关于算法的说法错误的是()。 A、算法必须有输出 B、算法就是程序 C、算法不一定有输入 D、算法必须在有限步执行后能结束 答案:B 11.算法的三种基本控制结构是顺序结构、分支结构和()。 A、模块结构 B、情况结构 C、流程结构 D、循环结构答案:D 12.算法的三种基本控制结构是分支结构、循环结构和() A、模块结构 B、情况结构 C、流程结构 D、顺序结构答案:D 13.算法的三种基本控制结构是顺序结构、分支结构和()。 A、模块结构 B、循环结构 C、流程结构 D、情况结构答案:B 14.下面关于算法的认识正确的是()。 A、算法就是求解“鸡兔同笼问题” B、算法一定没有输出 C、算法就是计算机程序 D、算法的步骤必须是有限的答案:D

删除文件夹时总提示子目录非空,而删不掉

我删除文件夹时总提示子目录非空,而删不掉,怎么办?? 一、常规解决办法: 1.注消或重启电脑,然后再试着删除。 2.进入“安全模式删除”。 3.在纯DOS命令行下使用DEL,DELTREE和RD命令将其删除。 4.如果是文件夹中有比较多的子目录或文件而导致无法删除,可先删除该文件夹中的子目录和文件,再删除文件夹。 5.在任务管理器中结束Explorer.exe进程,然后在命令提示符窗口删除文件。 6.如果你有安装ACDSee,FlashFXP,Nero,Total这几个软件,可以尝试在这几个软件中删除文件夹。 二、高级解决方案: 1.磁盘错误 运行磁盘扫描,并扫描文件所在分区,扫描前确定已选上修复文件和坏扇区,全面扫描所有选项,扫描后再删除文件。 2.预读机制: 某些媒体播放中断或正在预览时会造成无法删除。在“运行”框中输入:REGSVR32 /U SHMEDIA.DLL,注销掉预读功能。或删除注册表中下面这个键值: [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{87D62D94-71B3-4b9a-9489-5 FE6850DC73E}\InProcServer32]。 3.防火墙: 由于反病毒软件在查毒时会占用正在检查的文件,从而导致执行删除时提示文件正在使用,这时可试着暂时关闭它的即时监控程序,或许可以解决。 4.OFFice、WPS系列软件: OFFice的非法关闭也会造成文件无法删除或改名。重新运行该程序,然后正常关闭,再删除文件。 5.借助WinRAR:

右击要删除的文件夹,选择“添加到压缩文件”。在弹出的对话框中选中“压缩后删除源文件,”随便写个压缩包名,点确定。 6.权限问题: 如果是2000和xp系统,请先确定是否有权限删除这个文件或文件夹。 7.可执行文件的删除: 如果可执行文件的映像或程序所调用的DLL动态链接库文件还在内存中未释放,删除时就会提示文件正在使用,解决方法是删除系统的页面文件,Win98中是Win386.SWP, Win2000/XP是pagefile.sys。注意要在DOS下删除。 8.文件粉碎法: 使用文件粉碎机,如File Pulverizer,可以彻底删除一些顽固文件。 三、制作一个无法删除的“文件保险箱” 文件夹无法删除,未必就是不好的事情,如果把一些重要的文件放在这个目录中,不就可以避免误删了吗?一个文件名只包含空格的文件夹在Windows中是不允许创建和删除的,但在DOS下却可以创建文件名包含\的文件夹。 在我们使用Windows的过程中,会遇到各种各样的问题。即使是最简单的删除文件也可能遇到麻烦,要么系统提示“文件正在被另一个人或程序使用”,要么就是报告“访问被拒绝”……如果你也遇到过这种情况,不妨看看本文。 原因一:文件正在使用中 在删除文件时,经常会遇到的一个问题是,文件正在使用,无法删除。如果试图删除以独占访问而不是以共享访问方式打开,并且正在使用中的文件时,系统就会出现错误提示:“无法删除xxx:文件正在被另一个人或程序使用”。而另一种情况则是,能够使用删除命令删除文件,但在打开文件的进程释放该文件之前,文件实际上并未删除。

VB程序设计的常用算法09

Visual Basic常用算法 从逻辑结构上看,应用程序= 算法+ 数据结构。 (1)数据结构(Data-Structure),计算机将数据元素依据某种逻辑联系进行存储和组织的方式。 许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重依赖于是否选择了最优的数据结构。选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。 数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并由计算机程序处理的符号的总称。 (2)算法(Algorithm),由基本运算及规定的运算顺序所构成的完整解题步骤。 一个算法应该具有以下五个重要的特征: ①有穷性,算法必须保证执行有限步之后结束。 ②确切性,算法的每一步骤必须有确切的定义。 ③输入,算法有0个或多个输入,以描述运算量的初始值。0个输入是指算法本身包含了初始值。 ④输出,算法有一个或多个输出,以反映对输入数据加工后的结果。没有结果的算法是毫无意义的。 ⑤可行性,算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。 计算机科学家尼克劳斯-沃思曾著过一本著名的书《数据结构十算法= 程序》,可见算法在计算机科学界与计算机应用界的地位。 算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。 程序(Programme)就是用计算机语言描述的算法。流程图(Flow Charts)就是图形化的算法。解决同一问题可以有多种算法描述。实际问题的算法种类繁多,总体上可以分为两大类:数值算法和非数值法。 对VB程序语言设计的初学者,可能会感到掌握控件的使用不难,难得的是理解和掌握算法。但是,算法是程序的核心、编程的基础,离开算法,一事无成。我们将介绍常用的VB算法。

强制删除文件或文件夹

删除顽固文件(文件夹) 对于顽固的文件,可以新建一个文本文档,把以下内容复制进去: @echo off DEL /F /A /Q \\?\%1 RD /S /Q \\?\%1 echo 清除完成! echo. & pause 然后关闭点击保存,然后把文件的后缀名改为.bat(关键点)然后就可以把想要删除的文件拖入这个文件当中,最后再删除这个文件即可(此方法适用于一些无法读源文件的文件) 如何删除顽固的文件(文件夹) 删除顽固文件的常规方法 方法1:重新启动Windows操作系统后,再按常规方式删除文件。 方法2:在DOS(或命令提示符)界面中用Del、Deltree之类的命令删除。 方法3:利用非Windows资源管理器的第三方工具删除,例如具有浏览文件夹功能的TotalCommander、acdsee、FlashFXP、nero等软件。 方法4:如果你安装了两个以上的操作系统,那么就可以在当前系统中删除其它操作系统的文件。 方法5:在启动时按F8键选择进入安全模式执行删除操作。 最好用的删除方法 很多杀软都有粉碎文件的功能,比如360,卡卡等。以360为例,打开36 0,在高级工具中,选择“文件粉碎机”,添加你要删除的文件,【记得要打上√】执行“粉碎选中文件”即可。 网上介绍了很多方法,我试了很多,只有这个我觉得是最好用的。 试试,最起码不需要再按照其他的软件了。 删除“其它程序正在使用”的文件 问题表现: WindowsXP系统中,准备删除一个大容量的AVI格式文件,但系统却总是提示无法执行删除操作,有别的程序在使用,即使刚开机进入Windows系统时也是如此。 问题解决:

VB程序设计的常用算法

VB 程序设计的常用算法 算法( Algorithm ):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100 个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0 的数的个数并打印出来。 本题使用数组来处理,用数组a(1 to 100)存放产生的确100个随机整数,数组x(1 to 10)来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0 的数的个数。即个位是1 的个数存放在x(1) 中,个位是2 的个数存放在x(2)中,...................... 个位是0的个数存放在x(10)。 将程序编写在一个GetTJput过程中,代码如下: Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer '产生100 个[0,99]范围内的随机整数,每行 1 0个打印出来 For i = 1 To 100 a(i) = Int(Rnd * 100) If a(i) < 10 Then Form1.Print Space(2); a(i);

VB程序的三种基本结构复习课教学案例

《VB程序的三种基本控制结构》 复习课教案 平桂高级中学陀君一、案例背景信息 模块:算法与程序设计 年级:高一年级 所用教材版本:粤教版《算法与程序设计》 学时数:1课时(40分钟) 二、教学设计: 1、教学目标: 知识与技能:能根据流程图正确区分VB程序的三种基本结构,并记住相关语句格式,能编写出简单明了的程序关键代码; 过程与方法:充分认识VB程序中三种基本结构的实用性,体会生活中算法的存在和精彩。 情感态度与价值观:培养学生在学习过程中积极思考、自我探究的能力和学以致用的意识。 2、教学重点:顺序、选择(分支)和循环三种基本结构的区分及其对应的VB 语句的使用。 教学难点:for循环结构,各类语句关键代码的编写。 三、教学实录 1.复习引入 师:我们之前学过VB的基本结构,通常程序有三种最基本的结构,是哪三种结构? 大部分学生在底下小声回答,师让某生回答,说:顺序模式、分支模式、循环模式。

师:分支模式也可称为? 部分学生:选择模式。 师:非常好,接下来看下这三种结构的流程图,然后分别指出这三个流程图是什么结构。(出示三种流程图结构) 2.正题 (1)顺序结构P38: 执行第一条语句后,必然从第二条语句继续,顺序执行所有的语句,直到执行完最后一条语句为止。 例1:例1、 a=1 b=2 c=a+b a=c-a b=c-a

最后,变量b的值是( 1 ) (2)选择结构(分支结构):P42 根据条件判断其是否成立,如果成立执行成立的分支;否则执行另一分支。其一般形式为: If 条件Then 语句序列1 Else 语句序列2 End If 单行形式为: If 条件Then 语句组1 Else 语句组2 例2、a =10 If a>=10 Then a=a+1 Else a=a-1 End If 该程序段运行后,变量a的值是( D ) A. 8 B. 9 C. 10 D. 11 【师读题,学生思考。请同学回答,让同学们思考a=5结果是多少】 (3)循环结构:P51 根据条件判断其是否成立,如果条件成立则重复执行循环体(循环结构中某语句序列),直到条件不成立,退出循环结构为止。 循环结构的常用形式为: for 循环变量= 初值to 终值[step 步长] [循环体] next [循环变量]

VB解析算法及程序实现

3.1解析算法及程序实现 1. 计算长方体体积的算法描述如下: ①输入长方体的长⑵、宽(w)、高(h) ②计算长方形体积v = z * w *h ③输出结果 ④结束 上述算法届丁 () A. 枚举算法 B. 排序算法 C. 解析算法 D. 递归算法 2. 下列问题适合用解析算法求解的是( ) A. 将十三张纸牌按从小到大进行排列 B. 统计100内偶数的各位数字之和恰好为10的个数 C. 计算一辆车行驶100公里的油耗 D. 寻找本年级身高最高的同学 3. 有如下问题: ①已知圆锥的半径r和高度h,使用公式V=1兀r2h求出此圆锥体的体积。 3 ②已知班级每位同学的其中成绩总分s,按照s的值从大到小进行成绩排名。 ③已知圆的周长s,利用公式r=s/(2*3.14)求出圆的半径。 ④已知“水仙花数”的定义,找出1?10000范围内所有的水仙花数。 用计算机解决上述问题时,适合用解析算法的是( ) A.①② B. ①③ C. ③④ D. ②④ 4. 出租车计价规则:3公里以内,10元;超出3公里每公里增加2元。假定公 里数为x,金额为y.解决此问题的公式和流程图如下图所示: J[10+2*(x-3X(x>3) _________ I -- --- --- 1 ---- --- --- 之/ 输曲 I ~『了、 [结虽] 流程图加框处部分的算法届丁:( ) A.解析算法 B. 排序算法 C. 枚举算法 D. 递归算法

5. 现要求编写VB 程序实现如下功能:分别 在文本框 Textl 、Text2、和Text3中输入 三条线段的长度,单击“判断”按钮Comman 后,在标签Labell 中显示判断结果。程序 运行界面如图: 按此要求编写的程序如下: Private Sub Command1_Click() Dim a As Single ,b As Single Dim c As Single ,st As String a=Val(Text1.Text) b=Val(Text2.Text) c=Val(Text3.Text) If Not (a + b > c And b + c > a And c + a > b) Then st ="这三条线不能构成一个三角形" ElseIf a * a + b * b = c * c Or a * a + c * c = b * b Or b * b + c * c = a * a Then st = ElseIf st = Else st = End If Label1.Caption = End Sub 划线处应填写正确的语句是: (1) 划线处① __________ (2) 划线 处② 6. 下列VB 程序段实 现计算s=1+1/2+2/3+3/4+…+99/100的值。请将下面划线处 代码补充完整。 Private Sub Command1_Click() Dim i As Integer Dim s As Double s=1 For i=2 To 100 s= ________________________ Next i Text1.Text=Str(s) End Sub 程序划线处应填入的内容是 ______________________________ “可以构成一个直角三角形” ① Then “可以构成一个等边三角形” “可以构成一个不等边的斜三角形”

高中信息技术算法及程序设计VB(选修)

高息技术《算法与程序设计VB (选修)》 知识要点 相关知识点 (一)算法 1.定义 相关题解: 1算法:就是解决问题的方法和步骤。算法是程序设计的“灵魂”,算法+数据结构=程序。 单选题 1、运用计算机程序解决实际问题时,合理的步骤是(B )。 A 、设计算法→分析问题→编写程序→调试程序 B 、分析问题→设计算法→编写程序→调试程序 C 、分析问题→编写程序→设计算法→调试程序 D 、设计算法→编写程序→分析问题→调试程序 2.算法的描述方法: 1算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。 2自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。 3流程图描述:也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。 4伪代码描述法:是介于自然语言和计算机程序语言之间的一种算法描述。是专业软件开发人员常用方法。 相关题解: 单选题 1、图形符号" "在算法流程图描述中表示( B ). A 处理或运算的功能 B 输入输出操作 C D 算法的开始或结束 2、图形符号在算法流程图描述中表示( A ). A 输入输出操作 C 用来判断条件是否满足需求 D 算法的开始或结束 3、以下哪个是算法的描述方法?( A ) A 流程图描述法 B 枚举法 C 顺序法 D 列表法 4、以下哪个是算法的描述方法?( D ) A 顺序法 B 列表法 C 集合法 D 自然语言描述法

介于自然语言和计算机语言之间的一种算法描述是下列哪个选项?() A、伪代码 B、流程图 C、高级语言 D、VB 程序设计语言 (二)程序设计基础 (1)常用高级编程语言:BASIC、VB、Pascal、C、C++、Java 1面向对象的程序设计语言:其中的对象主要是系统设计好的对象,包括窗体等、控件等 2控件:是指工具箱中的工具在窗体中画出的、能实现一定功能的部件,如文本框,命令按钮等。 对象属性=属性值

怎么批量删除文件夹中的指定文件

怎么批量删除文件夹中的指定文件 [问题] 怎么批量删除文件夹中的指定文件 比如我要删除一个文件夹中的指定文件名和后缀的文件,批处理怎么做?PS:因为文件夹下面的文件时成千上万的。想指定批量删除想要的部分。 [回答] 可以使用以下命令: del /f /s /q *.tmp [解释] 这行命令是强制性,不提示确认,直接删除当前目录及子目录下,所有的以.tmp结尾的文件. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + [命令]详解删除一个或数个文件。 DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] namesERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names names 指定一个或数个文件或目录列表。通配符可被用来

删除多个文件。如果指定了一个目录,目录中的所 有文件都会被删除。 /P 删除每一个文件之前提示确认。 /F 强制删除只读文件。 /S 从所有子目录删除指定文件。 /Q 安静模式。删除全局通配符时,不要求确认。 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 假设要删除的文件位于D盘的abc目录下的以的txt为扩展名的文件, 那么运行:cmd 在命令行提示窗口, 输入D: 回车 就转到了D盘 再输入cd abc 回车 就进入了abc目录 输入del /f /s /q *.txt 回车 就可以看到删除过程了. [问题] 象朋友提到的,里面有文件a.txt,b.txt,c.doc,d.jpg,e.jpg....... 问:删除abc文件夹中的a.txt,c.doc,e.jpg....

VB程序设计的常用算法教案

VB程序设计的常用算法教案 算法(Algrith):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采 取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何 安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条,更要注意用来表示计数、和、阶 乘的变量的初值。 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,,6,7,8,9,0的 数的个数并打印出来。 本题使用数组来处理,用数组a存放产生的确100个随机整数,数组x来存放个位上的数字分 别为1,2,3,4,,6,7,8,9,0的数的个数。即个位是1的个数存放在x中,个位是2的个数存放在x中,……

个位是0的个数存放在x。 将程序编写在一个GetTput过程中,代码如下:PubliSubGetTput DiaAsInteger DixAsInteger DiiAsInteger,pAsInteger '产生100个[0,99]范围内的随机整数,每行10个打印出来 Fri=1T100 a=Int Ifa<10Then Fr1PrintSpae;a;

Else Fr1PrintSpae;a; EndIf Ifid10=0ThenFr1Print Nexti '统计个位上的数字分别为1,2,3,4,,6,7,8,9,0的数的个数,并将统计结果保存在数组x,x,,x中,将统计结果打印出来 Fri=1T100 p=a d '求个位上的数字 Ifp=0Thenp=10

VB程序的基本结构——循环结构之For-Next语句

课题:程序的基本结构——循环结构之For-Next语句第课时课型:新授备课教师授课时间 教学目标 知识与技能 1、了解循环的概念,理解循环结构的基本思想 2、掌握For-Next语句的基本结构的写法循环变量,初值,终值和步长。 3、理解For-Next语句的执行过程 过程与方法 1.通过分析问题,能准确找出循环变量、确定循环结束条件。 2.能利用For-Next语句解决简单的问题。 情感态度与价值观 1.通过编写循环结构的程序,体会循环结构的执行过程。 2.通过利用循环思想解决问题,体会循环思想的重要性。 教学重点1、理解循环结构的基本思想 2、理解For-Next语句的执行过程 教学难点根据需要采用循环结构解决实际问题,并提炼出for语句的基本结构学生理解For-Next语句的执行过程 教学 准备 几个以For-Next语句组成的不同功能的程序 教学过程设计教学 内容师生教学活动设计 备注栏 (学生笔记栏) 一、设疑导入 同学们,请先看这个图形(在窗体左边输出显示 竖行排列的1,2,3,4,5),如果用以前学过的程 序设计语言怎样来编写它的程序呢? 生(稍做思考,然后回答):使用Print语句 P rint“1” Print“2” Print“3” Print“4” Print“5” 师:同学们做得很好,,如果想要显示1-10,或是1-100的数字呢?怎么做,难道就这样顺序写下去吗?这样编写是不是太繁琐了。如果能让计算机去完成这部分重复的内容,而我们只要告诉计算机重复操作的次数就可以了,这个愿望能否实现呢? 通过我们今天学习的FOR—NEXT循环语句,就可以很容易的实现这个想法。

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