微型小助手课程设计报告.docx
《微型小助手课程设计报告.docx》由会员分享,可在线阅读,更多相关《微型小助手课程设计报告.docx(35页珍藏版)》请在冰豆网上搜索。
![微型小助手课程设计报告.docx](https://file1.bdocx.com/fileroot1/2023-4/21/f1ed36e6-42d1-48e2-8adb-35daa4bf192f/f1ed36e6-42d1-48e2-8adb-35daa4bf192f1.gif)
微型小助手课程设计报告
石家庄铁道学院课程设计
“微型小助手”课程设计报告
单位工程力学分院(系)
专业电气信息类
学号20112288
学生姓名蓝辛波
指导教师王学军
完成日期2012年8月18日
摘要
随着社会的发展,人类生活的节奏越来越快,生活模式也越来越简洁,于是类似小助手的简洁工具也越来越受人们欢迎。
我们这次用到的软件是VisualBasic6.0企业版附sp6补丁,它具有面向对象的可视化设计工具,硬件驱动的编程机制,使用方便简单的集成开发环境,最简单的程序设计语言和强大的数据库与文件系统等多种优点。
本程序采用Command、Picturebox、Listbox、CommonDialog、timer等控件配合程序核心文件系统,设计并实现了时钟,计算器,记事本,电话本,相册,日历的功能。
我们本着方便、实用、简介的设计理念设计,尽量符合大众的习惯与需求。
本程序由刘勇超和蓝辛波共同合作完成,论文首先介绍了总体设计思路和制作过程涉及的相关技术,围绕程序功能是如何实现的,简单介绍程序是如何运行的。
关键词:
程序设计小助手计算器相册
时钟记事本电话本日历
目录
1.选题的意义……………………………………………………………4
2.系统功能需求分析……………………………………………………4
2.1系统概述……………………………………………………………………4
2.2系统的组成及各模块的功能………………………………………………4
2.3系统的运行环境……………………………………………………………4
3.系统设计………………………………………………………………5
3.1总体结构设计…………………………………………………………………5
3.2各界面设计思路………………………………………………………………5
4.系统实现………………………………………………………………6
4.1小助手主窗体设计及实现……………………………………………………6
4.2时钟功能设计和实现………………………………………………………7
4.3计算器功能设计及实现………………………………………………………10
4.4日历功能设计及实现…………………………………………………………14
4.5记事本功能设计及实现……………………………………………………15
4.6电话本功能设计及实现……………………………………………………18
4.7相册功能设计及实现…………………………………………………………21
5.总结…………………………………………………………………26
5.1程序设计总结…………………………………………………………………26
5.2存在的问题……………………………………………………………………27
参考文献………………………………………………………………27
致谢词…………………………………………………………………27
微型小助手
1.选题的意义
随着社会的发展,人类生活的节奏越来越快,生活模式也越来越简洁,所以人们越来越倾向于方便快捷的东西,像小助手里的计算器、记事本等就非常方便的满足人们随手使用的需求,所以我们选择了微型小助手。
在该程序的过程中,文件系统是我们的核心,以Do、for循环,工作函数为辅助,来完成总的程序设计,并采用了Listbox、picturebox、timer、CommonDialog等各种控件,熟练的将其掌握。
2.系统功能需求分析
1系统概述:
本程序由计算器,相册,时钟,记事本,通讯录和日历6部分组成,由一个主窗体将6部分连接起来,结构清晰,画面清新。
2各部分功能:
时钟功能:
显示一个带有时间走针的时钟以及当前的日期、星期、时间;
计算功能:
常见计算器的基本功能;
记事功能:
可记录每天的要事,具有查找与提醒功能;
相册功能:
可对相片进行分类浏览、添加、删除、保存、放大和缩小功能;
电话本功能:
可添加和删除联系人,具有检索功能;
万年历功能:
能查阅任意年月日期的日历。
3运行环境
操作系统:
WindowsXP或windows7
内存要求:
128M以上
Cpu:
1gHz以上
硬盘空间:
200M以上
3.系统设计
1.总体结构设计
总体由小助手主窗体、时钟、计算器、记事本、电话本、相册和日历等窗体组成,主界面应用image控件美化背景,并用菜单将各个窗体连接起来具体如图:
2.各界面设计思路
我们在设计各个界面时,本着简介,清晰,和谐,美观,实用的设计理念设计,例如时钟,以白色为背景,使得整体效果和谐,清新。
我们以文件系统为核心设计理念,以大量函数与循环将程序结构建立起来,使得整个程序完整,连贯。
功能符合一般应用的要求,如电话本与相册的下一个,上一个按钮,非常实用方便,且符合大众思路,使得大众使用时得心应手。
4.系统实现
1.小助手主窗体界面设计及实现
PrivateSubdhb_Click()
Form6.Show
EndSub
PrivateSubForm_Load()
Label1.Caption="微型小助手"
Label1.FontSize=35
Label1.ForeColor=RGB(255,255,0)
EndSub
PrivateSubjsb_Click()
Form5.Show
EndSub
PrivateSubjsq_Click()
Form3.Show
EndSub
PrivateSubrl_Click()
form4.Show
EndSub
PrivateSubsz_Click()
Form2.Show
EndSub
PrivateSubxc_Click()
Form7.Show
EndSub
2.时钟功能的设计和实现
该时钟不仅具有一般时钟的基本功能,而且还具有年月日和星期几的功能,整体画面以白色为背景,干净明了,如图:
具体实现的代码如下:
Dimmlen,hlen,slen,r
Dimprex,prey,x2,y2
Dimxh,xm,xs,hr,mi,se,prehr,premi,prese
DimbsAsBoolean
Constpi=3.141592654
PrivateSubForm_Load()
Timer1.Interval=1000
Scale(-ScaleWidth/2,ScaleHeight/2)-(ScaleWidth/2,-ScaleHeight/2)
EndSub
Subdrawcircle()
Dimx,y,x1,y1,timeh
Form2.DrawMode=13
r=2000
Circle(0,0),r,vbBlue
timeh=-1
Fori=0To60
x=1950*Sin(i*pi/30)
y=1950*Cos(i*pi/30)
x1=1800*Sin(i*pi/30)
y1=1800*Cos(i*pi/30)
IfiMod5=0Then
DrawWidth=5
PSet(x,y)
CurrentX=x1-130
CurrentY=y1+50
timeh=timeh+1
Iftimeh>0ThenPrinttimeh
Else
DrawWidth=2
PSet(x,y)
EndIf
Nexti
DrawWidth=1
Line(0.3*r,100)-(0.65*r,-100),,B
CurrentX=0.35*r
CurrentY=80
PrintWeekdayName(Weekday(now))
CurrentX=-0.32*r+400
CurrentY=0.4*r-100
PrintYear(Date)&"年"
CurrentX=-0.32*r+400
CurrentY=-0.4*r
PrintMonth(Date)&"月"&Day(Date)&"日"
EndSub
PrivateSubTimer1_Timer()
DrawMode=16
DrawWidth=2
drawcircle
hlen=r*0.5
mlen=r*0.7
slen=r*0.8
hr=Hour(now)
hr=hrMod12
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=slen*Sin(se*pi/30)
y2=slen*Cos(se*pi/30)
Ifx2=0Andy2>0Then
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-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
EndIf
prex=x2
prey=y2
EndSub
3.计算器功能的设计和实现
该计算器具有一般计算器的功能,整体效果以按钮为主体,按键设置清晰明了,如图:
代码如下:
PublicyunsuanAsString
PublicnowAsDouble
PublicpreAsDouble
PrivateSubqingchu_Click()
Text1.Text=""
now=pre=0
EndSub
PrivateSubCommand1_Click(IndexAsInteger)
Text1.Text=Text1.Text&Command1(Index).Caption
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=True
ziranduishu.Enabled=True
EndSub
PrivateSubdian_Click()
Ifnow=0Then
Text1.Text="0."
Else
Text1.Text=Text1.Text&"."
EndIf
EndSub
PrivateSubfuhao_Click()
Ifnow<0Then
Text1.Text=-now
now=-now
Else
Text1.Text="-"&Text1.Text
now=-now
EndIf
Ifnow<0Then
genhao.Enabled=False
Else
genhao.Enabled=True
EndIf
EndSub
PrivateSubjia_Click()
Text1.Text=""
yunsuan="+"
pre=now
now=0
EndSub
PrivateSubjian_Click()
Text1.Text=""
yunsuan="-"
pre=now
now=0
EndSub
PrivateSubcheng_Click()
Text1.Text=""
yunsuan="*"
pre=now
now=0
EndSub
PrivateSubchu_Click()
Text1.Text=""
yunsuan="/"
pre=now
now=0
EndSub
PrivateSubdeng_Click()
Ifyunsuan="+"Then
now=pre+now
Text1.Text=now
ElseIfyunsuan="-"Then
now=pre-now
Text1.Text=now
ElseIfyunsuan="*"Then
now=pre*now
Text1.Text=now
ElseIfyunsuan="/"Then
now=pre/now
Text1.Text=now
Else
Text1.Text="pressACtocontinue"
EndIf
Ifnow<0Then
genhao.Enabled=False
Else
genhao.Enabled=True
EndIf
EndSub
PrivateSubgenhao_Click()
Text1.Text=Sqr(now)
now=Sqr(now)
EndSub
PrivateSubchengfang_Click()
DimiAsInteger
DimjAsDouble
j=now
now=1
Fori=1Toj
now=now*10
Nextj
Text1.Text=now
EndSub
PrivateSubyuxuan_Click()
Text1.Text=Cos(now*3.1415926/180)
now=Cos(now*3.1415926/180)
EndSub
PrivateSubzhengqie_Click()
Text1.Text=Tan(now*3.1415926/180)
now=Tan(now*3.1415926/180)
EndSub
PrivateSubzhengxuan_Click()
now=now*3.1415926/180
Text1.Text=Sin(now)
now=Sin(now)
EndSub
PrivateSubduishu_Click()
Text1.Text=Log(now)/Log(10)
now=Log(now)/Log(10)
EndSub
PrivateSubzhishu_Click()
Text1.Text=Exp(now)
now=Exp(now)
EndSub
PrivateSubziranduishu_Click()
Text1.Text=Log(now)
now=Log(now)
EndSub
4.日历功能的设计和实现
该日历不仅具有普通日历的一般功能,而且具有查询日历的功能,供大家是方便使用,如图:
代码如下:
PrivateSubCommand1_Click()
Form8.Show
EndSub
PrivateSubCommand2_Click()
form4.Hide
Form1.Show
EndSub
PrivateSubForm_Load()
Text1.Text=Weekday(Date,vbMonday)
Text2.Text=Year(Date)
Text3.Text=Month(Date)
Text4.Text=Day(Date)
x=Val(Text1.Text)
SelectCasex
Case1
Text1.Text="一"
Case2
Text1.Text="二"
Case3
Text1.Text="三"
Case4
Text1.Text="四"
Case5
Text1.Text="五"
Case6
Text1.Text="六"
Case7
Text1.Text="日"
EndSelect
EndSub
PrivateSubForm_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=27Then
End
EndIf
EndSub
PrivateSubTimer1_Timer()
Text5.Text=Hour(now)&":
"&Minute(now)&":
"&Second(now)
EndSub
查询日历
PrivateSubForm_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=27Then
End
EndIf
EndSub
PrivateSubForm_Load()
Calendar1.Year=Year(Date)
Calendar1.Month=Month(Date)
Calendar1.Day=Day(Date)
EndSub
5.记事本功能的设计和实现
该记事本具有到点提醒功能,还具有保存与查找功能,如图:
代码如下:
PublicqAsString,pAsString
PublicxAsString,mylineAsString
PubliciAsInteger,jAsInteger
PrivateSubCommand1_Click()
IfText2.Text=""OrText3.Text=""OrText4.Text=""OrText5.Text=""OrText6.Text=""Then
MsgBox("请输入提醒时间")
EndIf
Open"e:
\jishiben.txt"ForAppendAs#1
Print#1,Text1.Text&Text2.Text&"年"&Text3.Text&"月"&Text4.Text&"日"&Text5.Text&":
"&Text6.Text
Close#1
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
Text5.Text=""
Text6.Text=""
Text1.SetFocus
EndSub
PrivateSubCommand2_Click()
WithCommonDialog2
.FileName="e:
\jishiben.txt"
.Filter="*.doc:
*.txt"
.ShowOpen
EndWith
EndSub
PrivateSubCommand3_Click()
Form5.Hide
Form1.Show
EndSub
PrivateSubForm_Load()
Timer1.Interval=60000
EndSub
PrivateSubTimer1_Timer()
Open"e:
\jishiben.txt"ForInputAs#1
WhileNotEOF
(1)
LineInput#1,myline
j=Len(myline)
Fori=1Toj
x=Mid(myline,i,1)
IfIsNumeric(x)=TrueThen
ExitFor
EndIf
Nexti
p=Left(myline,i-1)
q=Right(myline,j-i+1)
Ifq=Year(Date)&"年"&Month(Date)&"月"&Day(Date)&"日"&Hour(Time)&":
"&Minute(Time)Then
MsgBoxp&"时间到了"
WithCommonDialog1
.FileName="e:
\快乐星猫.mp3"
.Filter="*.mp3;*.avi;*.wma"
WindowsMediaPlayer1.URL=.FileName
EndWith
WindowsMediaPlayer1.Controls.play
EndIf
Wend
Close#1
EndSub
6.电话本功能的设计和实现
我们设计的电话本具有分类查找功能,和一般电话本记录功能,如图所示:
代码如下:
PrivateTyperecdhb
recdhbxmAsString*10
recdhbhmAsString*