“微型小助手”课程设计报告_第1页
“微型小助手”课程设计报告_第2页
“微型小助手”课程设计报告_第3页
“微型小助手”课程设计报告_第4页
“微型小助手”课程设计报告_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、石家庄铁道学院课程设计“微型小助手”课程设计报告单 位 工程力学 分院(系)专 业 电气信息类 学 号 20112288 学生姓名 蓝辛波 指导教师 王学军 完成日期 2012 年 8月 18日摘 要随着社会的发展,人类生活的节奏越来越快,生活模式也越来越简洁,于是类似小助手的简洁工具也越来越受人们欢迎。 我们这次用到的软件是Visual Basic 6.0 企业版附sp6补丁,它具有面向对象的可视化设计工具,硬件驱动的编程机制,使用方便简单的集成开发环境,最简单的程序设计语言和强大的数据库与文件系统等多种优点。本程序采用Command、Picturebox、Listbox、CommonDia

2、log、timer等控件配合程序核心文件系统, 设计并实现了时钟,计算器,记事本,电话本,相册,日历的功能。我们本着方便、实用、简介的设计理念设计,尽量符合大众的习惯与需求。本程序由刘勇超和蓝辛波共同合作完成,论文首先介绍了总体设计思路和制作过程涉及的相关技术,围绕程序功能是如何实现的,简单介绍程序是如何运行的。关键词:程序设计 小助手 计算器 相册 时 钟 记事本 电话本 日历目 录1.选题的意义42.系统功能需求分析42.1系统概述42.2系统的组成及各模块的功能42.3系统的运行环境43.系统设计53.1总体结构设计53.2各界面设计思路54.系统实现64.1小助手主窗体设计及实现64.

3、2时钟功能设计和实现74.3计算器功能设计及实现104.4日历功能设计及实现144.5记事本功能设计及实现154.6电话本功能设计及实现184.7相册功能设计及实现215.总结265.1程序设计总结265.2存在的问题27参考文献27致谢词27微型小助手1选题的意义随着社会的发展,人类生活的节奏越来越快,生活模式也越来越简洁,所以人们越来越倾向于方便快捷的东西,像小助手里的计算器、记事本等就非常方便的满足人们随手使用的需求,所以我们选择了微型小助手。 在该程序的过程中,文件系统是我们的核心,以Do、for循环,工作函数为辅助,来完成总的程序设计,并采用了Listbox、picturebox、t

4、imer、CommonDialog等各种控件,熟练的将其掌握。2系统功能需求分析1 系统概述:本程序由计算器,相册,时钟,记事本,通讯录和日历6部分组成,由一个主窗体将6部分连接起来,结构清晰,画面清新。2 各部分功能:时钟功能:显示一个带有时间走针的时钟以及当前的日期、星期、时间;计算功能:常见计算器的基本功能;记事功能:可记录每天的要事,具有查找与提醒功能;相册功能:可对相片进行分类浏览、添加、删除、保存、放大和缩小功能;电话本功能:可添加和删除联系人,具有检索功能;万年历功能:能查阅任意年月日期的日历。3 运行环境 操作系统:WindowsXP或windows7内存要求:128M以上Cp

5、u:1gHz以上硬盘空间:200M以上3. 系统设计 1.总体结构设计总体由小助手主窗体、时钟、计算器、记事本、电话本、相册和日历等窗体组成,主界面应用image控件美化背景,并用菜单将各个窗体连接起来具体如图: 2.各界面设计思路我们在设计各个界面时,本着简介,清晰,和谐,美观,实用的设计理念设计,例如时钟,以白色为背景,使得整体效果和谐,清新。我们以文件系统为核心设计理念,以大量函数与循环将程序结构建立起来,使得整个程序完整,连贯。功能符合一般应用的要求,如电话本与相册的下一个,上一个按钮,非常实用方便,且符合大众思路,使得大众使用时得心应手。4.系统实现1.小助手主窗体界面设计及实现Pr

6、ivate Sub dhb_Click()Form6.ShowEnd SubPrivate Sub Form_Load() Label1.Caption = 微型小助手 Label1.FontSize = 35 Label1.ForeColor = RGB(255, 255, 0) End SubPrivate Sub jsb_Click() Form5.ShowEnd SubPrivate Sub jsq_Click()Form3.ShowEnd SubPrivate Sub rl_Click() form4.ShowEnd SubPrivate Sub sz_Click() Form2.S

7、howEnd SubPrivate Sub xc_Click()Form7.ShowEnd Sub2.时钟功能的设计和实现该时钟不仅具有一般时钟的基本功能,而且还具有年月日和星期几的功能,整体画面以白色为背景,干净明了,如图:具体实现的代码如下:Dim mlen, hlen, slen, rDim prex, prey, x2, y2Dim xh, xm, xs, hr, mi, se, prehr, premi, preseDim bs As BooleanConst pi = 3.141592654Private Sub Form_Load() Timer1.Interval = 1000

8、 Scale (-ScaleWidth / 2, ScaleHeight / 2)-(ScaleWidth / 2, -ScaleHeight / 2)End SubSub drawcircle() Dim x, y, x1, y1, timeh Form2.DrawMode = 13 r = 2000 Circle (0, 0), r, vbBlue timeh = -1 For i = 0 To 60 x = 1950 * Sin(i * pi / 30) y = 1950 * Cos(i * pi / 30) x1 = 1800 * Sin(i * pi / 30) y1 = 1800

9、* Cos(i * pi / 30) If i Mod 5 = 0 Then DrawWidth = 5 PSet (x, y) CurrentX = x1 - 130 CurrentY = y1 + 50 timeh = timeh + 1 If timeh 0 Then Print timeh Else DrawWidth = 2 PSet (x, y) End If Next i DrawWidth = 1 Line (0.3 * r, 100)-(0.65 * r, -100), , B CurrentX = 0.35 * r CurrentY = 80 Print WeekdayNa

10、me(Weekday(now) CurrentX = -0.32 * r + 400 CurrentY = 0.4 * r - 100 Print Year(Date) & 年 CurrentX = -0.32 * r + 400 CurrentY = -0.4 * r Print Month(Date) & 月 & Day(Date) & 日 End SubPrivate Sub Timer1_Timer() DrawMode = 16 DrawWidth = 2 drawcircle hlen = r * 0.5 mlen = r * 0.7 slen = r * 0.8 hr = Hou

11、r(now) hr = hr Mod 12 mi = Minute(now) DrawWidth = 2 DrawMode = 13 xh = hr * 5 + mi / 12 x2 = hlen * Sin(xh * pi / 30) y2 = hlen * Cos(xh * pi / 30) prehr = hr Line (0, 0)-(x2, y2), vbBlue x2 = mlen * Sin(mi * pi / 30) y2 = mlen * Cos(mi * pi / 30) Line (0, 0)-(x2, y2), vbBlue se = Second(now) x2 =

12、slen * Sin(se * pi / 30) y2 = slen * Cos(se * pi / 30) If x2 = 0 And y2 0 Then DrawMode = 10 DrawWidth = 2 xh = prehr * 5 + (mi - 1) / 12 x2 = mlen * Sin(xh * pi / 30) y2 = mlen * Cos(xh * pi / 30) Line (0, 0)-(x2, y2), Me.BackColor DrawMode = 13 x2 = mlen * Sin(mi - 1) * pi / 30) y2 = mlen * Cos(mi

13、 - 1) * pi / 30) Line (0, 0)-(x2, y2), Me.BackColor x2 = slen * Sin(se * pi / 30) y2 = slen * Cos(se * pi / 30) DrawWidth = 1 DrawMode = 10 Line (0, 0)-(prex, prey), vbBlue Line (0, 0)-(x2, y2), vbBlue Else DrawWidth = 1 DrawMode = 10 Line (0, 0)-(prex, prey), vbBlue Line (0, 0)-(x2, y2), vbBlue End

14、 If prex = x2 prey = y2End Sub3.计算器功能的设计和实现该计算器具有一般计算器的功能,整体效果以按钮为主体,按键设置清晰明了,如图:代码如下:Public yunsuan As StringPublic now As DoublePublic pre As DoublePrivate Sub qingchu_Click() Text1.Text = now = pre = 0End SubPrivate Sub Command1_Click(Index As Integer) Text1.Text = Text1.Text & Command1(Index).Ca

15、ption now = Text1.Text jia.Enabled = True jian.Enabled = True cheng.Enabled = True chu.Enabled = True fuhao.Enabled = True genhao.Enabled = True chengfang.Enabled = True deng.Enabled = True zhengxuan.Enabled = True yuxuan.Enabled = True zhengqie.Enabled = True duishu.Enabled = True zhishu.Enabled =

16、True ziranduishu.Enabled = TrueEnd SubPrivate Sub dian_Click() If now = 0 Then Text1.Text = 0. Else Text1.Text = Text1.Text & . End IfEnd SubPrivate Sub fuhao_Click() If now 0 Then Text1.Text = -now now = -now Else Text1.Text = - & Text1.Text now = -now End If If now 0 Then genhao.Enabled = False El

17、se genhao.Enabled = True End IfEnd SubPrivate Sub jia_Click() Text1.Text = yunsuan = + pre = now now = 0End SubPrivate Sub jian_Click() Text1.Text = yunsuan = - pre = now now = 0End SubPrivate Sub cheng_Click() Text1.Text = yunsuan = * pre = now now = 0End SubPrivate Sub chu_Click() Text1.Text = yun

18、suan = / pre = now now = 0End SubPrivate Sub deng_Click() If yunsuan = + Then now = pre + now Text1.Text = now ElseIf yunsuan = - Then now = pre - now Text1.Text = now ElseIf yunsuan = * Then now = pre * now Text1.Text = now ElseIf yunsuan = / Then now = pre / now Text1.Text = now Else Text1.Text =

19、press AC to continue End If If now 0 Then genhao.Enabled = False Else genhao.Enabled = True End IfEnd SubPrivate Sub genhao_Click() Text1.Text = Sqr(now) now = Sqr(now)End SubPrivate Sub chengfang_Click() Dim i As Integer Dim j As Double j = now now = 1 For i = 1 To j now = now * 10 Next j Text1.Tex

20、t = nowEnd SubPrivate Sub yuxuan_Click() Text1.Text = Cos(now * 3.1415926 / 180) now = Cos(now * 3.1415926 / 180)End SubPrivate Sub zhengqie_Click() Text1.Text = Tan(now * 3.1415926 / 180) now = Tan(now * 3.1415926 / 180)End SubPrivate Sub zhengxuan_Click() now = now * 3.1415926 / 180 Text1.Text = S

21、in(now) now = Sin(now)End SubPrivate Sub duishu_Click() Text1.Text = Log(now) / Log(10) now = Log(now) / Log(10)End SubPrivate Sub zhishu_Click() Text1.Text = Exp(now) now = Exp(now)End SubPrivate Sub ziranduishu_Click() Text1.Text = Log(now) now = Log(now)End Sub4.日历功能的设计和实现该日历不仅具有普通日历的一般功能,而且具有查询日

22、历的功能,供大家是方便使用,如图:代码如下:Private Sub Command1_Click() Form8.ShowEnd SubPrivate Sub Command2_Click() form4.Hide Form1.ShowEnd SubPrivate Sub Form_Load() Text1.Text = Weekday(Date, vbMonday) Text2.Text = Year(Date) Text3.Text = Month(Date) Text4.Text = Day(Date) x = Val(Text1.Text) Select Case x Case 1 T

23、ext1.Text = 一 Case 2 Text1.Text = 二 Case 3 Text1.Text = 三 Case 4 Text1.Text = 四 Case 5 Text1.Text = 五 Case 6 Text1.Text = 六 Case 7 Text1.Text = 日 End SelectEnd Sub Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 27 Then End End IfEnd SubPrivate Sub Timer1_Timer() Text5.Text = Hour(now)

24、& : & Minute(now) & : & Second(now)End Sub查询日历Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 27 Then End End IfEnd SubPrivate Sub Form_Load() Calendar1.Year = Year(Date) Calendar1.Month = Month(Date) Calendar1.Day = Day(Date)End Sub5.记事本功能的设计和实现该记事本具有到点提醒功能,还具有保存与查找功能,如图:代码如下:Public q

25、As String, p As StringPublic x As String, myline As StringPublic i As Integer, j As IntegerPrivate Sub Command1_Click() If Text2.Text = Or Text3.Text = Or Text4.Text = Or Text5.Text = Or Text6.Text = Then MsgBox (请输入提醒时间) End If Open e:jishiben.txt For Append As #1 Print #1, Text1.Text & Text2.Text

26、& 年 & Text3.Text & 月 & Text4.Text & 日 & Text5.Text & : & Text6.Text Close #1 Text1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = Text6.Text = Text1.SetFocusEnd SubPrivate Sub Command2_Click() With CommonDialog2 .FileName = e:jishiben.txt .Filter = *.doc:*.txt .ShowOpen End WithEnd SubPr

27、ivate Sub Command3_Click() Form5.Hide Form1.ShowEnd SubPrivate Sub Form_Load() Timer1.Interval = 60000 End SubPrivate Sub Timer1_Timer() Open e:jishiben.txt For Input As #1While Not EOF(1) Line Input #1, myline j = Len(myline) For i = 1 To j x = Mid(myline, i, 1) If IsNumeric(x) = True Then Exit For

28、 End If Next i p = Left(myline, i - 1) q = Right(myline, j - i + 1) If q = Year(Date) & 年 & Month(Date) & 月 & Day(Date) & 日 & Hour(Time) & : & Minute(Time) Then MsgBox p & 时间到了 With CommonDialog1 .FileName = e:快乐星猫.mp3 .Filter = *.mp3;*.avi;*.wma WindowsMediaPlayer1.URL = .FileName End With WindowsM

29、ediaPlayer1.Controls.play End IfWend Close #1End Sub6.电话本功能的设计和实现我们设计的电话本具有分类查找功能,和一般电话本记录功能,如图所示:代码如下:Private Type recdhb recdhbxm As String * 10 recdhbhm As String * 13End TypeDim dhb As recdhbDim num As IntegerPrivate Sub Command1_Click() Dim xm, hm xm = Text1.Text hm = Text2.Text If IsNumeric(xm

30、) = True Then MsgBox 请输入正确的姓名, vbOKOnly, 提示 Text1.SetFocus ElseIf Text1.Text = Then MsgBox 请输入姓名, vbOKOnly, 提示 Text1.SetFocus ElseIf Text2.Text = Then MsgBox 请输入电话号码, vbOKOnly, 提示 Text2.SetFocus ElseIf IsNumeric(hm) = False Then MsgBox 请输入正确的电话号码, vbOKOnly, 提示 Text2.SetFocus Else dhb.recdhbxm = Text

31、1.Text dhb.recdhbhm = Text2.Text Open dhb.text.dat For Append As #1 Write #1, dhb.recdhbxm; dhb.recdhbhm Close #1 If Len(xm) = 2 Then List1.AddItem Left(xm, 1) & Space(2) & Right(xm, 1) & Space(5) & hm ElseIf Len(xm) = 1 Then List1.AddItem xm & Space(9) & hm ElseIf Len(xm) = 4 Then List1.AddItem xm

32、& Space(3) & hm ElseIf Len(xm) = 3 Then List1.AddItem xm & Space(5) & hm End If End If Text1.Text = Text2.Text = Text1.SetFocusEnd SubPrivate Sub Command10_Click() num = 0 List1.ListIndex = -1 If Text3.Text Then Open dhb.text.dat For Input As #1 Do While Not EOF(1) num = num + 1 Line Input #1, mylin

33、e If Trim(Text3.Text) = Trim(Mid(myline, 15, 11) Then List1.ListIndex = List1.ListIndex + num + 2 End If Loop Close #1 End IfEnd SubPrivate Sub Command2_Click() Dim t If List1.ListIndex = 2 Then Open dhb.text.dat For Input As #1 Open dhb2.text.dat For Append As #2 Do Until EOF(1) Line Input #1, myli

34、ne If Trim(Mid(List1.Text, 2, 5) = Trim(Mid(myline, 2, 5) Then myline = vbNullString End If Print #2, myline Loop Close #2: Close #1 Kill dhb.text.dat Name dhb2.text.dat As dhb.text.dat t = List1.ListIndex List1.RemoveItem t End If End SubPrivate Sub Command3_Click() If List1.ListIndex = 2 Then List

35、1.ListIndex = List1.ListIndex - 1 If List1.ListIndex = 1 Then List1.ListIndex = List1.ListCount - 1 End If End IfEnd SubPrivate Sub Command4_Click() If List1.ListIndex = 2 Then If List1.ListIndex = List1.ListCount - 1 Then List1.ListIndex = 2 Else List1.ListIndex = List1.ListIndex + 1 End If End IfE

36、nd SubPrivate Sub Command5_Click() an = MsgBox(确认要全部删除吗?, vbYesNo, 提示) If an = 6 Then i = List1.ListIndex Kill dhb.text.dat Open dhb.text.dat For Append As #1 Close #1 For i = List1.ListCount - 1 To 2 Step -1 List1.RemoveItem (i) Next i End IfEnd SubPrivate Sub Command8_Click() If Text3.Text Then Li

37、st1.ListIndex = -1 num = 0 Open dhb.text.dat For Input As #1 Do While Not EOF(1) num = num + 1 Line Input #1, myline If Trim(Text3.Text) = Trim(Mid(myline, 2, 4) Then List1.ListIndex = List1.ListIndex + num + 2 End If Loop Close #1 End IfEnd SubPrivate Sub Form_Load() Open dhb.text.dat For Input As

38、#1 Do While Not EOF(1) Line Input #1, myline List1.AddItem myline Loop Close #1End Sub7.相册功能的设计和实现本相册具有分类保存和其他常用图片浏览功能,且能够删除图片,具体实现画面如下:代码:Private Type recxc lx As String * 5 lj As String * 50 xm As String * 10End TypeDim xc As recxcDim num As IntegerDim myline As VariantPrivate Sub Combo1_Click() L

39、ist1.Clear Open Combo1.Text.dat For Input As #1 Do While Not EOF(1) Line Input #1, myline If Trim(Combo1.Text) = Trim(Mid(myline, 2, 2) Then a = Mid(myline, 63, 10) List1.AddItem a End If Loop Close #1End SubPrivate Sub Command1_Click() If File1.ListIndex = 0 Then Image1.Picture = LoadPicture(File1.

40、Path & & File1.List(File1.ListIndex) End IfEnd SubPrivate Sub Command2_Click() If File1.ListIndex = 0 Then Command2.Enabled = False Command6.Enabled = False Command3.Enabled = True Command7.Enabled = True ElseIf File1.ListIndex 0 Then Image1.Picture = LoadPicture(File1.Path & & File1.List(File1.List

41、Index - 1) File1.ListIndex = File1.ListIndex - 1 End IfEnd SubPrivate Sub Command3_Click() If File1.ListIndex = 0 Then Command2.Enabled = True Command6.Enabled = True If File1.ListIndex = File1.ListCount - 1 Then Command7.Enabled = False Command3.Enabled = False Else Image1.Picture = LoadPicture(Fil

42、e1.Path & & File1.List(File1.ListIndex + 1) File1.ListIndex = File1.ListIndex + 1 End If End IfEnd SubPrivate Sub Command4_Click() xc.lx = Combo1.Text If Combo1.Text Then Open combo1.text.dat For Append As #1 CommonDialog1.ShowSave zplj = CommonDialog1.FileName If zplj Then SavePicture Image1.Pictur

43、e, CommonDialog1.FileName End If xc.lj = zplj xc.xm = CommonDialog1.FileTitle Write #1, xc.lx, xc.lj, xc.xm Close #1 End IfEnd SubPrivate Sub Command6_Click() If File1.ListIndex = 0 Then Image1.Picture = LoadPicture(File1.Path & & File1.List(File1.ListIndex = 0) File1.ListIndex = 0 Command2.Enabled

44、= False Command6.Enabled = False Command3.Enabled = True Command7.Enabled = True End IfEnd SubPrivate Sub Command7_Click() If File1.ListIndex = 0 Then Image1.Picture = LoadPicture(File1.Path & & File1.List(File1.ListCount - 1) File1.ListIndex = File1.ListCount - 1 Command2.Enabled = True Command6.Enabled = True Command7.Enabled = False Command3.Enabled = False End IfEnd SubPrivate Sub Command8_Click() If List1.Text Then Kill App.Path + + List1.Text Open combo1.text.dat For Input As #1 Open combo2.text.dat For Append As #

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论