VB课程设计报告

课程设计报告书

课程设计名称:   VB程序设计报告书                     

         (部)                     

专业班级                       

学生姓名XXX               

    号:                  

指导教师:                       

完成日期:      20##年1月6日                 

山东科技大学泰山科技学院



一 前  言

Visual Basic是可视化程序设计语言,具有简单易学、功能强大、软件费用支出低、见效快等诸多特点,而且是Windows应用程序最迅速最简洁的开发工具,易于初学者和非专业人员掌握使用。目前,全世界数以百万计的程序设计人员正在用Visual Basic开发各种类型的各种软件。

本课程是一门面向全国高校各个专业大学生的公共必修课,它以microsoft可视化编程工具Visual Basic6.0为例主要介绍高级程序设计方法。Visual Basic6.0由于其具有界面友好,操作方便面等优点,是从事计算机设计的最佳编程工具之一,同时也是学习Windows编程设计的极好语言。通过本课程的学习,使学生掌握用Windows编程解决实际问题的一般办法,包括语句、函数、控件等 概念的掌握,以及从基本控件的使用到高级控件的应用,从图形编程、文件使用到多媒体程序开发,从数据库编程到定制Activex控件等内容,为培养学生结合专业进行软件开发的能力打好基础。

二、课程设计的性质和目的

学生应通过接触客观实际,了解和认识所学的专业知识,掌握所学知识在客观实际中的应用,并能亲自动手完成相关题目设计。把所学的理论知识与实际能力紧密的结合在一起。

三、课程设计的基本内容和要求

本次课程设计要求学生熟练掌握《VB程序设计》课程的基础知识,独立完成设计任务,并完成课程设计报告,主要要求学生掌握以下内容:

理解系统开发的必要步骤,绘制流程图、根据流程图编写程序、并自主进行必要的测试与维护。最后形成规范的设计报告。


四 课程设计必要性

     随着社会的不断变革和发展,以计算机为依托的信息技术高速发展。因此,人们除掌握自然语言外,还需掌握另一种语言——VB计算机程序设计语言。从这点出发,现代计算机教育应对程序设计语言给与更多的关注,使其充分发挥更多的作用。

     Visual Basic  不仅是 Visual Basic 编程语言。Visual Basic 编程系统,MicrosoftExcel 的Applications Edition,Microsoft Access和Windows的许多其他应用程序都使用这一语言。Visual Basic Scripting Edition (VBScript) 是广泛使用的脚本语言,它是 Visual Basic 语言的子集。这样,在学习 Visual Basic 中得到的经验可应用到所有这些领域中。
    从开发个人使用或小组使用的小工具,到大型企业应用系统,甚至通过Internet 的遍及全球分布式应用程序,都可在 Visual Basic 提供的工具中各取所需。

   Visual Basic作为一门当代大学生学习普遍学习的必修课,我们更有理由去学好Visual Basic。这对我们将来的学习和工作很重要,小到个人,达到工作、社会我们都有可能用到Visual Basic。因此学好这门课的程序设计是非常有必要的。

 

 

五 工程概况

一 项目名称

1.设计(四则运算)窗体文件(必做)

2.使用vb制作一个指针式时钟

3.编写一个程序,使得输入一个数字,当点击按钮后转换为中文大写的货币表示。

六 具体过程

一 设计(四则运算)窗体文件(必做)

题目要求:基本设计(必做):按下列运行界面,设计(四则运算)窗体文件。

1要完成此设计,首先我们需要先建立:4个label、3个text、1个组合框、3个command控件。并在建立工程中通过右侧的属性窗口将建立的控件名称改为如图所示。

2编写代码,在打开的代码编写窗口按照如下代码编写

Private Sub Command1_Click()

Da1 = Val(Text1.Text)

da2 = Val(Text2.Text)

Select Case Combo1.ListIndex

       Case 0

da3 = Da1 + da2

   Case 1

da3 = Da1 - da2

  Case 2

da3 = Da1 * da2

   Case 3

da3 = Da1 / da2

End Select

Text3.Text = da3

End Sub

Private Sub Command2_Click()

Text1.Text = ""

Text2.Text = ""

Text3.Text = ""

Text1.SetFocus

End Sub

Private Sub Command3_Click()

End

End Sub

Private Sub Form_Load()

Combo1.List(0) = "+"

Combo1.List(1) = "-"

Combo1.List(2) = "*"

Combo1.List(3) = "/"

End Sub

3 然后进行程序调试并运行(经验证运行无误)。

二 使用vb制作一个指针式时钟,本课题使用直线控件作为时钟的指针,再使用定时器控件控制直线控件的位置,从而使得直线控件能向时钟中的指针一样顺时针转动。

1要完成此设计,我们需要建立一个timer控件,然后按照如下代码编写:

Const PI = 3.1415926

Private Sub Form_Load()

  Scale (-100, 100)-(100, -100)

  Timer1.Interval = 1000

  Form1.BackColor = &HFFFFFF

  Timer1_Timer

  Form1.Show

  Form1.Refresh

  Call Timer1_Timer

End Sub

Private Sub Form_Paint()

  Call MyDraw

End Sub

Public Sub MyDraw()

  Cls

  Scale (-100, 100)-(100, -100)

  For i = 0 To 2 * PI Step PI / 30

      Form1.DrawWidth = 3

      PSet (60 * Cos(-i), 60 * Sin(-i)), vbGreen

  Next i

  For i = 0 To 2 * PI Step PI / 6

      Form1.DrawWidth = 6

      PSet (60 * Cos(-i), 60 * Sin(-i)), vbRed

  Next i

End Sub

Private Sub Form_Resize()

    Form1.Refresh

End Sub

Private Sub Timer1_Timer()

Form1.Refresh

  Form1.Caption = Time

  s = Second(Time) * PI / 30

  DrawWidth = 2

  Line (0, 0)-(55 * Cos(-Second(Time) * (PI / 30) + PI / 2), 55 * Sin(-Second(Time) * (PI / 30) + PI / 2)), vbBlue

  m = Minute(Time)

  m1 = (m + s / 60) * (PI / 30) - PI / 2

  DrawWidth = 3

  Line (0, 0)-(45 * Cos(-m1), 45 * Sin(-m1)), vbBlack

  h = Hour(Time)

  h1 = (h + (m * 60 + s) / 3600) * PI / 6 - PI / 2

  DrawWidth = 3.5

  Line (0, 0)-(25 * Cos(-h1), 35 * Sin(-h1)), vbGreen

End Sub

2运行并调试程序(经验证运行无误)。

三 编写一个程序,使得输入一个数字,当点击按钮后转换为中文大写的货币表示。

  1要完成此设计,我们需要建立一个一个文本框和一个命令框并且按如下代码编写:Private Sub Command1_Click()

MsgBox GetChinaMoney(Text1.Text)

End Sub

Private Sub Form_Load()

Text1.MaxLength = 16

Text1.Text = ""

Text1.Text = ""

End Sub

Public Function GetChinaMoney(ByVal strNumber) As String

Dim a() As String

Dim s1 As String, s2 As String

Dim l1 As String

Dim s3 As String

Dim strEng As String

strEng2Ch = "零壹贰叁肆伍陆柒捌玖"

If Not IsNumeric(strNumber) Then

If Trim(strNumber) <> "" Then MsgBox "无效的数字"

GetChinaMoney = ""

Exit Function

End If

l1 = InStr(strNumber, ".")

If l1 <> 0 Then

s1 = Left(strNumber, l1 - 1)

s2 = Mid(strNumber, l1 + 1)

Else

s1 = strNumber

s2 = "0"

End If

s1 = Dig2Chinese_pb(s1)

s3 = ""

If s2 <> 0 Then

For i = 1 To Len(s2)

If i = 1 Then s3 = s3 & Mid(strEng2Ch, Val(Mid(s2, i, 1)) + 1, 1) & "角"

If i = 2 Then s3 = s3 & Mid(strEng2Ch, Val(Mid(s2, i, 1)) + 1, 1) & "分"

If i = 3 Then s3 = s3 & Mid(strEng2Ch, Val(Mid(s2, i, 1)) + 1, 1) & "厘"

If i = 4 Then s3 = s3 & Mid(strEng2Ch, Val(Mid(s2, i, 1)) + 1, 1) & "毫"

Next

End If

GetChinaMoney = s1 & "元" & s3

End Function

Public Function Dig2Chinese_pb(strEng As String) As String

Dim intLen As Integer, intCounter As Integer

Dim strCh As String, strtempCh As String

Dim strSeqCh1 As String, strSeqCh2 As String

Dim strEng2Ch As String

Dim sTemp As String

Dim i As Integer

Dim iWanBit As Integer

Dim iYiBit As Integer

Dim iWanYiBit As Integer

Dim sFoward As String

iWanBit = 0: iYiBit = 0: iWanYiBit = 0

sFoward = StrReverse(strEng)

For i = 1 To Len(sFoward)

Dim val1 As Long

val1 = Val(Mid(sFoward, i, 1))

If i >= 5 And i <= 8 Then

If iWanBit = 0 Then

If val1 <> 0 Then iWanBit = i

End If

End If

If i >= 9 And i <= 12 Then

If iYiBit = 0 Then

If val1 <> 0 Then iYiBit = i

End If

End If

If i >= 13 And i <= 16 Then

If iWanYiBit = 0 Then

If val1 <> 0 Then iWanYiBit = i

End If

End If

Next

If Not IsNumeric(strEng) Then

If Trim(strEng) <> "" Then MsgBox "无效的数字"

Dig2Chinese_pb = ""

Exit Function

End If

If Len(strEng) > 15 Then

MsgBox "数字位数太长"

Dig2Chinese_pb = ""

Exit Function

End If

strEng2Ch = "零壹贰叁肆伍陆柒捌玖"

strSeqCh1 = " 拾佰仟 拾佰仟 拾佰仟 拾佰仟"

strSeqCh2 = " 万亿兆"

'转换为表示数值的字符串

strEng = CStr(CDec(strEng))

'len

intLen = Len(strEng)

'change to chinese

For intCounter = 1 To intLen

strtempCh = Mid(strEng2Ch, Val(Mid(strEng, intCounter, 1)) + 1, 1)

If strtempCh = "零" And intLen <> 1 Then

' If Mid(strEng, intCounter + 1, 1) = "0" Or (intLen - intCounter + 1) Mod 4 = 1 Then

'若之后一个也是零,或在最后,则不显示"零"

If Mid(strEng, intCounter + 1, 1) = "0" Or intCounter = intLen Then

strtempCh = ""

End If

Else

'添加位 拾佰仟

If strtempCh <> "零" Then strtempCh = strtempCh & Trim(Mid(strSeqCh1, intLen - intCounter + 1, 1))

End If

'添加位 "万"(5-8),"亿"(9-12),"万亿"(13-16)

' iWanBit = 0: iYiBit = 0: iWanYiBit = 0

If intCounter = Len(strEng) + 1 - iWanBit Then strtempCh = strtempCh & "万"

If intCounter = Len(strEng) + 1 - iYiBit Then strtempCh = strtempCh & "亿"

If intCounter = Len(strEng) + 1 - iWanYiBit Then strtempCh = strtempCh & "万亿"

'组成汉字

strCh = strCh & Trim(strtempCh)

Next

Dig2Chinese_pb = strCh

End Function

2 运行并调试(经调试运行无误)。

致谢

在本次课程设计中,我从指导老师和同学们身上学到了很多东西。老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。

同学们学习热情高涨,对问题肯钻研,敢挑战,让我受到很大的鼓舞。大家耐心细心的研究学习,最终解决问题,让人很高兴。

参考文献:

Visual Basic6.0程序设计教程 西北工业大学出版社。

龚沛曾,陆慰民,杨志强.Vsual Basic 程序设计教程.高等教育出版社出版。

刘新民,蔡琼,白糠生.Vsual Basic 6.0程序设计.清华大学出版社出版。

赵欣胜,亢慧娟,刘晟宏.Vsual Basic 经典范例50讲.科学出版社出版。

卢毅.Vsual Basic实例教程.科学出版社出版。

唐凯军,汤惠莉.VB6编程80例上手.山东电子音像出版社。

百度知道贴吧

爱问知识人网站

相关推荐