【vb精品源码栏目提醒】:网学会员在vb精品源码频道为大家收集整理了“微型小助手-课程设计报告 - 大学课件“提供大家参考,希望对大家有所帮助!
石家庄铁道学院课程设计 —课程设计报告 单 位 机械工程 学院系 专 业 机械设计制造及其自动化 学 号 20110908 学生姓名 刘洋 指导教师 李静 完成日期 2012 年 9 月 13 日 摘要 计算机技术的发展促进了程序设计语言的发展, 特别是面向对象的程序设计语言的出现,极大地改进了传统的程序设计方法。
在众多程序设计语言中,VisualBasic 得到了广泛的应用。
Visual Basic 是一个功能强大的应用程序开发工具,它具有可视化的界面设计技术、面向对象的程序设计方法、事件驱动的变成机制、支持动态的数据交换技术和对象的链接与嵌入技术、支持数据库的访问、支持多媒体和网络开发等特点。
通过一学期对
VB 的了解,让我对
VB 产生了很大的兴趣。
希望能通过这次课程设计的机会展示给老师 我组(刘洋、刘云龙、黄辉)利用
VB 这个软件,实现了“微型小助手”这 “个程序中相册、记事本、计算器、日历等功能。
微型小助手” 不仅能为使用者提供方便,同时也能为初学
VB 的同学提供一个参考,有助于大家互相交流学习,提高自身运用
VB 的水平。
本文主要运用代码和图片的结合来详细描述该软件各个功能的实现, 以及设计者的设计思路。
我在组中所负责的是主界面设计,时钟显示功能,简易计算器以及相册中放大缩小添加图片功能的实现。
我们通过不懈努力,达到了题目的要求,并且在这基础上增加了一些功能。
关键字:微型小助手,电话本,计算器,相册,记事本,时钟 目 录第一章.选题的意义.....................................................3 2.1 系统概述...............................................................3 2.2 系统的组成及各模块的功能…………………………………………………………3 2.3 系统的运行环境........................................................4第三章.系统设计 … … … … … … … … … … … … … … … … … … … … … … … … 4 3.1 总体结构设计……………………………………………………………………………4 3.2 部分功能设计的心得体会……………………………………………………………4 3.2.1 窗体的隐藏与出现………………………………………………………4 3.2.2 相册添加文件功能………………………………………………………5 3.2.3 图片的扩大缩小以及滚动条功能………………………………………5 3.2.4 计算器多次开方乘方以及加减乘除的运算……………………………8 3.2.5 计算器小数点……………………………………………………………9第四章.系统实现………………………………………………………………………10 4.1 总体界面设计(时钟功能)………………………………………………………10 4.2 记事本…………………………………………………………………………………15 4.3 计算器…………………………………………………………………………………22 4.4 相册……………………………………………………………………………………28 4.5 电话本功能……………………………………………………………………………34 4.6 日历功能………………………………………………………………………………41第五章.运行界面演示………………………………………………………………45第六章.总结 … … … … … … … … … … … … … … … … … … … … … … … … … … 4 8 6.1 总结 6.2 存在的主要问题参考文献……………………………………………………………………………………48 第一章.选题的意义 通过这次的课程设计,我对 visual basic 进行进一步的深入学习,并且 能够自己独立完成一些程序的编制和应用。
每当完成一部分目标,就会有很大 的成就感。
之所以选择微型小助手就是因为其工作量大而且应用了更多的知识,让我 可以在完成设计的过程中充实自己以利于进一步的学习。
并且随着与组员之间 的讨论、学习,增强了我的团队意识,和学习能力。
第二章.系统功能需求分析2.1 系统概述 微型小助手主要是应用 visual basic 设计了一些日常的常用程序,利用这些程序可以方便我们日常的生活。
2.2 系统的组成及各模块的功能 微型小助手由记事本、数字时钟、电话本、日历、计算器、电子相册六个部分组成。
2.2.1 主界面包括 6 个按钮以及时钟功能(可以用指针的形式显示当前时间, )当前日期星期等。
。
,同时具有提醒功能。
2.2.2 记事本功能:可以记录要事、 计算器功能:可以进行简单的运算,其中包括开方,平方,开 N 次方,乘 N 次方等。
2.2.3 数字时钟功能:可以用指针的形式显示当前时间,当前日期星期等。
2.2.4 相册功能:可以添加、删除、放大、缩小相片。
2.2.5 电话本功能:可以浏览、查阅、删除、添加、修改通讯信息。
2.2.6 日历功能:可以显示任意一年的日期以及对应的星期。
主界面 (时钟) 记事本 计算器 相册 电话本 日历2.3 系统的运行环境 操作系统:Window xp/2000/me/98 系统支持:Visual Basic 6.0 以上版本 第三章.系统设计3.1 总体结构设计 微型小助手包括时钟、记事本、计算器、日历、相册、电话本,这六个功能组成。
时钟设计放在主界面上,其余功能分别由 5 个按钮点击进入。
子界面之间可以互相切换,点击子界面上的返回,能够返回到主界面。
能够打开多个功能。
人性化的设计能为使用者提供很大的方便。
3.2 部分功能设计的心得体会 3.2.1 窗体的隐藏与出现 例如: 点击 command1 命令按钮 Form1 隐藏,Form4 出现 Private Sub command1_Click Form1.Hide Form4.Show End Sub 3.2.2 相册添加文件功能 其核心即是利用 CommonDialog 控件配合 filecopy,完成将其他文件夹中文件复制粘贴到当前文件夹(filelistbox)中。
核心代码:Private Sub Command8_ClickCommonDialog1.ShowOpenFileCopy CommonDialog1.fileName Form3.File1.Path CommonDialog1.FileTitleFile1.RefreshEnd SubPs: CommonDialog1.fileName 是被复制文件的路径 File1.path 是当前文件夹(filelistbox)的路径 CommonDialog1.FileTitle 是被复制文件的文件名 File1.Refresh 表示 Filelistbox 列表刷新3.2.3 图片的扩大缩小以及滚动条功能在设计此功能时我遇到了很大的问题。
我用的是 ImageBox 控件。
当我把 Image1.Stretch true 即 image 不能按照原比例播放图片,虽然能够自由放大缩小图片,但是图片不是按照原图片比例,看着很别扭。
当我把 Image1.Stretch false 即 image 能按照原比例播放图片,这时放大缩小图片就出现了很大的问题。
图片大小没变,仅仅是 image 的大小改变。
扩大时图片不变,缩小时,图片只显示一部分。
这个矛盾让我纠结了好几天,查资料还没有,于是我就用了一个讨巧的方法。
核心代码: 点击加载图片 Private Sub File1_Click 显示图片路径 Text1.Text File1.Path File1 Image1.Stretch False 将 image 设置成自动大小,能够显示原比例图片 Image1.Picture LoadPictureFile1.Path File1 HScroll1.Max Image1.Width - Picture1.Width VScroll1.Max Image1.Height - Picture1.Height VScroll1.Visible Picture1.Height Image1.Height HScroll1.Visible Picture1.Width Image1.Width HScroll1.Value 0 VScroll1.Value 0 End Sub图片放大功能:Private Sub Command1_Click 扩大图片功能 Image1.Stretch True 将 image 设置成不能自动大小,以实现图片能够按照原比例扩大的功能 Image1.Width Image1.Width 1.1 Image1.Height Image1.Height 1.1 HScroll1.Max Image1.Width - Picture1.Width VScroll1.Max Image1.Height - Picture1.Height VScroll1.Visible Picture1.Height Image1.Height HScroll1.Visible Picture1.Width Image1.WidthEnd Sub点击下一张:Private Sub Command3_Click Image1.Stretch False n File1.ListIndex n n 1 If n File1.ListCount Then File1.ListIndex n Image1.Picture LoadPictureFile1.Path File1.Listn Else MsgBox 已经是最后一张! End If VScroll1.Visible Picture1.Height Image1.Height HScroll1.Visible Picture1.Width Image1.Width HScroll1.Value 0 VScroll1.Value 0End SubPs:1. 我的想法就是在每当加载图片时都是把 Image1.Stretch 设置成 true,每当 点击扩大缩小图片时,把 Image1.Stretch 设置成 false。
这样就解决了不能 按照原比例播放图片或者不能完好的放大缩小图片的问题。
2. VScroll1.Visible Picture1.Height Image1.Height HScroll1.Visible Picture1.Width Image1.Width 表示当图片大于 Picturebox 时,滚动条才会出现,否则隐藏。
3. HScroll1.Value 0 VScroll1.Value 0 每次点击上一张下一张的时候,滚动条都恢复到初始位置。
3.2.4 计算器多次开方乘方以及加减乘除的运算核心代码:Private Sub Command2_ClickIndex As Integer 输 入 -/ 时 当 前 数 字 消 失 s1 ValText1.Text sf Command2Index.Caption Text1.Text End SubPrivate Sub Command5_Clicks2 ValText1.Text Select Case sf Case Text1.Text s1 s2 Case - Text1.Text s1 - s2 Case Text1.Text s1 s2 Case / If s2 0 Then 分母不能为零 MsgBox 分母不能为零 1 32 0 错误 Text1.Text Else Text1.Text s1 / s2 End If Case xy 乘 y 次方 Text1.Text s1 s2 Case sqrtn 开 y 次方 Text1.Text s1 1 / s2 End Select If ValText1.Text 1 And ValText1.Text -1 Then Text1.Text 0 Text1.Text End IfEnd SubPs: If ValText1.Text 1 And ValText1.Text -1 Then Text1.Text 0 Text1.Text End if当数字小于 1 大于负 1的情况,防止小数点前面没有零 3.2.5 计算器小数点 核心代码:Private Sub Command4_ClickText1.Text Text1.Text .If InStrText1.Text . LenText1.Text Then 小数点只能有一个Text1.Text LeftText1.Text LenText1.Text - 1End IfIf InStrText1.Text . 1 Then 不能在文本框里没有数字的情况下加入小数点Text1.Text End IfEnd Sub 第四章.系统实现4.1 主界面设计(时钟功能)源代码:Const pi 3.1415926Private Sub Form_LoadCommand7.Cancel True 按 Esc 相当于单机返回键 指针初始位置定位 L1.Tag L1.Y2 - L1.Y1 L2.Tag L2.Y2 - L2.Y1 L3.Tag L3.Y2 - L3.Y1s SecondTimeL1.X1 L1.X2 L1.Tag Sinpi s / 30L1.Y1 L1.Y2 - L1.Tag Cospi s / 30m MinuteTimeL2.X1 L2.X2 L2.Tag Sinpi m / 30L2.Y1 L2.Y2 - L2.Tag Cospi m / 30H HourTimes IIfH 12 H - 12 H m / 60L3.X1 L3.X2 L3.Tag Sinpi s / 6L3.Y1 L3.Y2 - L3.Tag Cospi s / 6将星期以大写方式显示Dim n As Integern WeekdayNowSelect Case n Case 1 m 星期日 Case 2 m 星期一 Case 3 m 星期二 Case 4 m 星期三 Case 5 m 星期四 Case 6 m 星期五 Case 7 m 星期六 End Select Label14.Caption 今天是 YearNow 年 MonthNow 月 DayNow 日 m 显示日期End Sub字幕滚动Private Sub Timer1_Timer If Label1.Left Label1.Width 0 Then Label1.Move Label1.Left - 50 Else Label1.Left Form1.ScaleWidth End IfEnd SubPrivate Sub Timer2_Timer 指针单位时间转动代码s SecondTimeL1.X1 L1.X2 L1.Tag Sinpi s / 30L1.Y1 L1.Y2 - L1.Tag Cospi s / 30If s 0 Then Frmmain.Caption FormatTime medium time m MinuteTime L2.X1 L2.X2 L2.Tag Sinpi m / 30 L2.Y1 L2.Y2 - L2.Tag Cospi m / 30 H HourTime s IIfH 12 H - 12 H m / 60 L3.X1 L3.X2 L3.Tag Sinpi s / 6 L3.Y1 L3.Y2 - L3.Tag Cospi s / 6 End IfEnd SubPrivate Sub Command1_Click 窗口的隐藏与显示 Form1.ShowEnd SubPrivate Sub Command2_Click Form2.ShowEnd SubPrivate Sub Command3_Click Form3.ShowEnd SubPrivate Sub Command4_Click Form4.ShowEnd SubPrivate Sub Command6_Click Form6.ShowEnd SubPrivate Sub Command7_Click Dim tuichu As String tuichu MsgBox您真的想退出吗? vbYesNo vbQuestion vbDefaultButton1 确认 If tuichu vbYes Then End End IfEnd SubPrivate Sub Timer3_Timer 显示当前时间 Label15 TimeEnd SubPrivate Sub Form_UnloadCancel As Integer 关闭主窗口的同时关闭所有子窗口 Dim i As Integer On Error Resume Next For i Forms.Count - 1 To 0 Step -1 Unload Formsi Next EndEnd Sub 4.2 记事本功能 源代码:Private Declare Function PlaySound Lib winmm.dll Alias PlaySoundA _ ByVal IpszName As String ByVal hModule As Long ByVal dwflags As Long AsLongPrivate Sub Command1_Click 如果年月日时分的哪一个文本框输入的范围出现错误,则出现提示信息If ValText1 1 Or ValText1 24 Then MsgBox 小时数输入错误! vbExclamation 提示信息 Text1 Text1.SetFocus Command1.Enabled True End If If ValText3 1 Or ValText3 5555555555 Then MsgBox 小时数输入错误! vbExclamation 提示信息 Text3 Text3.SetFocus 定时.Enabled True End If If ValText4 1 Or ValText4 12 Then MsgBox 小时数输入错误! vbExclamation 提示信息 Text4 Text4.SetFocus Command1.Enabled True End If If ValText5 1 Or ValText5 31 Then MsgBox 小时数输入错误! vbExclamation 提示信息 Text5 Text5.SetFocus Command1.Enabled True End If If ValText2 1 Or ValText2 60 Then MsgBox 分钟数输入错误! vbExclamation 提示信息 Text2 Text2.SetFocusCommand1.Enabled True End If Timer1.Enabled TrueEnd SubPrivate Sub Command3_ClickForm1.HideFrmmain.ShowEnd SubPrivate Sub Form_LoadCommand3.Cancel True 按 Esc 相当于单机返回键End SubPrivate Sub menucopy_Click 复制的单击事件 Clipboard.Clear Clipboard.SetText RichTextBox1.SelText End SubPrivate Sub menucut_Click 剪切的单击事件 Clipboard.Clear Clipboard.SetText RichTextBox1.SelText RichTextBox1.SelText End SubPrivate Sub menunew_Click 新建的单击事件RichTextBox1.Text 注释:清空文本框 fileName 未命名 Me.Caption fileNameEnd SubPrivate Sub menuopen_Click 打开的单击事件 CommonDialog1.Filter 文本文档.txt.txtRTF 文档.rtf.rtf所有文件.. CommonDialog1.ShowOpen RichTextBox1.Text 注释:清空文本框 fileName CommonDialog1.fileName RichTextBox1.LoadFile fileName Me.Caption 超级记事本: fileNameEnd SubPrivate Sub menupaste_Click 粘贴的单击事件 RichTextBox1.SelText Clipboard.GetTextEnd SubPrivate Sub menusave_Click 保存的单击事件 CommonDialog1.Filter 文本文档.txt.txtRTF 文档.rtf.rtf所有文件.. 保存格式的选择 CommonDialog1.ShowSave FileType CommonDialog1.FileTitle FiType LCaseRightFileType 3 fileName CommonDialog1.fileName Select Case FiType Case txt RichTextBox1.SaveFile fileName rtfText Case rtf RichTextBox1.SaveFile fileName rtfRTF Case . RichTextBox1.SaveFile fileName End Select Me.Caption 超级记事本: fileNameEnd SubPrivate Sub menuselectall_Click 全选的单击事件RichTextBox1.SelStart 0RichTextBox1.SelLength LenRichTextBox1.TextEnd SubPrivate Sub Timer1_TimerLabel1.FontSize 24Label1.FontName 宋体Label1.Caption 当前时间 Time 标签 1 显示“当前时间为“当前时间””If ValText3.Text YearNow And ValText4.Text MonthNow And Text5.Text DayNowThen 文本框如果年月日时分秒与当前时间相同,则闹钟响 If ValText1.Text HourTime Then If ValText2.Text MinuteTime Then Call PlaySoundApp.Path Bilp.wav 0 H0 响铃的调用 End If End IfEnd If