公历农历转换 vb课程设计Word文档格式.docx
- 文档编号:5802528
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:23
- 大小:216.67KB
公历农历转换 vb课程设计Word文档格式.docx
《公历农历转换 vb课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《公历农历转换 vb课程设计Word文档格式.docx(23页珍藏版)》请在冰点文库上搜索。
检查框"
等等,用户只需要利用鼠标、键盘把这些控件对象拖动到适当的位置,设置它们的大小、形状、属性等,就可以设计出所需的应用程序界面。
2)事件驱动编程
Windows操作系统出现以来,图形化的用户界面和多任务多进程的应用程序要求程序设计不能是单一性的,在使用VB设计应用程序时,必须首先确定应用程序如何同用户进行交互.例如发生鼠标单击、键盘输入等事件时,由用户编写的代码控制这些事件的响应,这就是所谓的事件驱动编程。
在VB中把窗体以及"
按钮"
等控件称为对象,如果设计出了应用程序,那么与应用程序的用户直接进行交互的就是这些对象组成的图形界面,也称为用户接口或用户界面,在设计应用程序时就必须考虑到用户如何与程序进行交户.更进一步,甚至程序和程序之间也会有通讯和交户,基本上用户是通过鼠标、键盘与应用程序进行交互的,这时那些对象就必须对鼠标和键盘操作所引发的事件做出响应.响应就是指执行一段应用程序,它不沿预定的路径执行,而是在响应不同事件时执行不同的代码.因此,应用程序代码的路径在每次响应而执行时可能都是不形同的。
2.1系统运行环境
(1)硬件环境
处理器:
InterPentium166MX或更高
内存:
32MB以上
硬盘空间:
1GB以上
显卡:
SVGA显示适配器
(2)软件环境
操作系统:
Windows98/2000/XP
开发工具:
Visualbasic6.0
数据库:
2.2总体设计
2.2.1VB简介
2.2.2VB语言的基本特点及VB应用程序的基本持点
VB程序语言具有许多优秀的特性,用其设计应用程序时有两个基本特点:
可视化设计和事件驱动编程.
同其他的一些可视化程序开发工具一样,VB具有可视化设计的特点,微软的Word在刚刚进入市场时,同WPS竞争的一个重要的功能砝码就是"
VB为用户提供大量的界面元素(在VB中称为控件对象),这些控件对象对于熟悉Windows应用程序的用户而言是一点也不陌生,如"
前面已经谈到,在VB中把窗体以及"
2.2.3为何选择VB作为开发语言
除了VB之外,当前能够编制Windows应用程序的可视化编程工具还有很多,所针对的编程领域也各有侧重,就微软系列的可视化开发工具而言,就有VB,VisualC++,VisualJ++,VisualFoxpro等,其中VisualFoxpro是针对数据库编程的开发工具;
VisualC++是为专业程序设计员提供的开发工具,变量声明和定义严密,功能强大灵活,必须经过相当的努力才能掌握;
而VB不支持虚类、多态性和类的继承,相对而言VB简单易学,变量定义不太严密,对于非专业程序员而言功能足够强大,同VisualC++一样也支持网络编程和数据库编程。
除了微软之外,其他公司也在为Windows操作系统平台制作应用程序开发工具,例如前Borland的公司出品的Delphi,C++Bulider,J++Bulider等,其他一些公司出品的针对数据库编程的PowerBulider,PowerDesigner等,不可否认,这些产品相当出色,如果能够熟练掌握将是编程者能力的体现,但是必须承认,对Windows操作系统最熟悉的还是微软,而且微软本身Windows操作系统的源代码采取不公开的策略,使得其他公司出品的产品在实现相同功能时多少都要走些弯路,用户在使用这些产品设计应用程序时,程序的效率将会受到影响。
在选择所需要的应用程序开发工具时,不但要考虑开发工具的功能是否强大,还要考虑所花费的时间和效果,单纯地追求功能的强大,也许会事倍功半。
中央电大陈明主编的《VisualBasic程序设计》是计算机应用专业采用的一本难得的教材,使我受益匪浅。
通过这门课程的学习,我已能用VB编写简单的程序,为了搞好这次毕业设计,我决定使用VB作为编程语言。
2.2.4VB6.0应用的基本开发方法
传统的应用程序开发过程可以分为三个明显的步骤:
编码、编译和测试。
但是VB与传统的语言不同,它使用交互式方法开发应用程序,使三个步骤之间不再有明显的界限。
在大多数语言里,如果编写代码时发生了错误,则在开始编译应用程序时该错误就会被编译器捕获。
此时必须查找并改正该错误,然后再次进行编译,对每一个发现的错误都要重复这样的过程。
VB在编程者输入代码时便进行解释,即时捕获并突出显示大多数语法或拼写错误。
看起来就像一位专家在监视代码的输入。
除即时捕获错误以外,VB也在输入代码时部分地编译该代码。
当准备运行和测试应用程序时,只需极短时间即可完成编译。
如果编译器发现了错误、则将错误突出显示于代码中。
这时可以更正错误并继续编译、而不需从头开始。
由于VB的交互特性,因此在开发应用程序时,系统频繁地运行着应用程序。
通过这种方式,代码运行的效果可以在开发时进行测试,而不必等到编译完成以后。
3.设计结果与分析
为完成要完成的功能,采用如下的界面来完成相应的操作。
3.1本程序运行界面简介
编程的主导思想是:
先把公、农历的数据用数组查询设置好,再通过算法转换成具体应用。
程序的运行界面见图1,
图1运行界面
程序应用了不规则窗体技术,使得窗体比较美观。
单击属相标志可以退出程序。
单击时钟数字将返回到今天。
单击计算器面板开关将向下拉出计算器面板,单击查询控制面板开关将向下拉出查询控制面板,见图2。
图2控制界面
3.2本程序部分控件的设置
图3窗口截图
图4时钟控件
图5输入界面
图6显示界面
4.设计体会
历时近一个礼拜的课程设计终于快到了尾声,通过这次课程设计,在老师的指导下,我初步掌握了用VB开发软件的方法,使我意识到在开发一个应用软件的同时,搞好准备工作的重要性,特别是各种素材的准备,尤其是对数据结构算法要心中有数。
感谢指导老师对我的悉心指导与帮助。
由于时间仓促,这个软件还很不完善,比如农历的转换我还没能设计成功,计算器功能也有错误。
这些有待我以后继续完善。
5.参考文献
[1]徐孝凯.数据结构(c++描述)[M]北京:
中央电大出版2000.1237-51
[2]陈明.VisualBasic程序设计[M].中央电大出版2000.1221-34
[3]李大友.VisualBasic程序设计[M].清华大学出版2002.740-45
[4]EricBrierley.VisualBasic开发人员指南[M].机械工业出版社1999.130-41
[5]刘韬.VisualBasic6.0实效编程百例[M].人民邮电出版社2002.751-58
附录
OptionExplicit
'
***************************************
拖动无标题窗体
ConstHTCAPTION=2
ConstWM_NCLBUTTONDOWN=&
HA1
PrivateDeclareFunctionReleaseCaptureLib"
user32"
()AsLong
PrivateDeclareFunctionSendMessageLib"
Alias"
SendMessageA"
(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,lParamAsLong)AsLong
=============================================================================
PrivateDeclareFunctionGetObjectAPILib"
gdi32"
GetObjectA"
(ByValhObjectAsLong,ByValnCountAsLong,lpObjectAsAny)AsLong
PrivateDeclareFunctionDeleteObjectLib"
(ByValhObjectAsLong)AsLong
PrivateDeclareFunctionSetWindowRgnLib"
(ByValhwndAsLong,ByValhRgnAsLong,ByValbRedrawAsBoolean)AsLong
PrivateDeclareFunctionCreateRectRgnLib"
(ByValX1AsLong,ByValY1AsLong,ByValX2AsLong,ByValY2AsLong)AsLong
PrivateDeclareFunctionCombineRgnLib"
(ByValhDestRgnAsLong,ByValhSrcRgn1AsLong,ByValhSrcRgn2AsLong,ByValnCombineModeAsLong)AsLong
PrivateDeclareFunctionGetBitmapBitsLib"
(ByValhBitmapAsLong,ByValdwCountAsLong,lpBitsAsAny)AsLong
PrivateTypeBITMAP
bmTypeAsLong
bmWidthAsLong
bmHeightAsLong
bmWidthBytesAsLong
bmPlanesAsInteger
bmBitsPixelAsInteger
bmBitsAsLong
EndType
PrivateConstRGN_OR=2
DimbmByte()AsByte
滚动字幕
PrivateDeclareFunctionDrawTextLib"
DrawTextA"
(ByValhdcAsLong,ByVallpStrAsString,ByValnCountAsLong,lpRectAsRECT,ByValwFormatAsLong)AsLong
PrivateDeclareFunctionGetTickCountLib"
kernel32"
ConstDT_BOTTOMAsLong=&
H8
ConstDT_CALCRECTAsLong=&
H400
ConstDT_CENTERAsLong=&
H1
ConstDT_EXPANDTABSAsLong=&
H40
ConstDT_EXTERNALLEADINGAsLong=&
H200
ConstDT_LEFTAsLong=&
H0
ConstDT_NOCLIPAsLong=&
H100
ConstDT_NOPREFIXAsLong=&
H800
ConstDT_RIGHTAsLong=&
H2
ConstDT_SINGLELINEAsLong=&
H20
ConstDT_TABSTOPAsLong=&
H80
ConstDT_TOPAsLong=&
ConstDT_VCENTERAsLong=&
H4
ConstDT_WORDBREAKAsLong=&
H10
PrivateTypeRECT
LeftAsLong
TopAsLong
RightAsLong
BottomAsLong
ConstScrollTextAsString="
1901-2049"
&
vbCrLf&
_
"
多功能电子日历"
***********************************************
DimEndingFlagAsBoolean,jSAsInteger
DimeAsString
DimfAsString
DimgAsDouble
DimS_memAsDouble
DimopAsString
DimchkAsInteger
ConstPi=3.14159265358979
PrivateConstSWP_NOMOVE=2
PrivateConstSWP_NOSIZE=1
PrivateConstFLAGS=SWP_NOMOVEOrSWP_NOSIZE
PrivateConstHWND_TOPMOST=-1
PrivateConstHWND_NOTOPMOST=-2
DimflAgeAsBoolean,color_indexAsInteger,tiAoAsBoolean,jiSuanAsBoolean
Dims_mem_BAsBoolean,tipAsInteger,ziShiAsString
**************************************************
'
数字按下、松开
PrivateSubcmdNum_MouseDown(IndexAsInteger,ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
Show_bPicture5,P8,cmdNum(Index)
EndSub
PrivateSubcmdNum_MouseUp(IndexAsInteger,ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
Show_bPicture5,P9,cmdNum(Index)
角度、弧度
PrivateSubcmdOp_1_Click(IndexAsInteger)
MPl.Play
SelectCaseIndex
Case0
Ifg=1Then
Ifop="
"
Then
e=Str((Val(e)*180/Pi))
txtDisp.Text=e
Else
f=Str((Val(e)*180/Pi))
txtDisp.Text=f
EndIf
chk=1
g=Pi/180
ShowNumARGPt,wPw1(3),19
Case1
Ifg<
>
1Then
e=Str((Val(e)*Pi/180))
f=Str((Val(e)*Pi/180))
g=1
ShowNumARGPt,wPw1(3),20
Case2
ShowNumARGPt,wPw1(3),21
EndSelect
PrivateSubcmdOp_1_MouseUp(IndexAsInteger,ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
Show_bPicture5,P9,cmdOp_1(Index)
PrivateSubcmdOp_1_MouseDown(IndexAsInteger,ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
Show_bPicture5,P8,cmdOp_1(Index)
单一功能键按下、松开
PrivateSubcmdops_MouseDown(IndexAsInteger,ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
Show_bPicture5,P8,cmdOps(Index)
PrivateSubcmdops_MouseUp(IndexAsInteger,ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
Show_bPicture5,P9,cmdOps(Index)
PrivateSubcmdT_Click()
显示查询面板
IftiAoThen
Timer4.Enabled=False
Timer3.Enabled=True
Timer4.Enabled=True
Timer3.Enabled=False
Label4.Enabled=False
Picture4.Visible=True
Picture5.Visible=False
PrivateSubLabel4_Click()
Pt.Visible=True
cmdT.Enabled=False
Picture5.Visible=True
Picture4.Visible=False
IfjiSuanThen
Timer6.Enabled=True
Timer5.Enabled=False
Timer1.Enabled=True
Timer8.Enabled=False
Timer6.Enabled=False
Timer5.Enabled=True
Timer8.Enabled=True
Timer1.Enabled=F
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 公历农历转换 vb课程设计 公历 农历 转换 vb 课程设计