【VB开源代码栏目提醒】:网学会员鉴于大家对VB开源代码十分关注,论文会员在此为大家搜集整理了“农历公历转换 - 其它论文”一文,供大家参考学习
目 录摘 要关键字前 言第一章
VB 语言概述1.1、
VB 简介1.2、
VB 语言的基本特点及
VB 应用程序的基本持点1.3、为何我选择
VB 作为开发语言1.4、
VB6.0 应用的基本开发方法第二章 用
VB 开发多功能日历程序2.1、本程序运行界面简介2.2、本程序部分控件的设置2.3、主程序部分
代码第三章 毕业设计总结第四章 主要参考文献附录摘 要: 在日常生活和工作中经常有人用到农历和公历的查询问题。
因此,我借这次
毕业设计之机,在辅导老师的指导下,编写了一个可以在
VB6 下正常运行的日历、计算器多功能应用程序,编程的思路是:先把公、农历的数据用数组查询设置好,再通过算法转换成具体应用。
程序应用了不规则窗体技术,使得窗体比较美观。
单击属相标志可以退出程序。
单击时钟数字将返回到今天。
单击查询控制面板开关将向下拉出查询控制面板。
.关键字:农历公历转换及计算器、查询控制面板、
VB6。
多功能电子日历的开发 前 言 电脑已经成为挂在我们嘴角的一句口头禅,它已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。
Windows系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。
然而,虽然现在世界上已经充满了多如牛毛的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。
以前开发 Windows 下软件是专业人员的
工作,需要掌握许多专业知识和经过特殊的培训才能胜任。
现在不同了,即使你没有接受过严格的程序设计训练,使用 Visual Basic也一样能够开发出功能强大、适合自己特殊需求的应用程序了。
Visual Basic 继承了 Basic语言易学易用的特点,特别适合于初学者学习 Windows 系统编程。
我作为一名中央电大的学生,对从事计算机操作和编程工作有着特殊的爱好,在工作和
学习之余,我时常钻研专业课基础理论,经
常用 VB 搞一些小程序,在工作中经常有人问到农历和公历的
查询问题。
网页上有一些这方面的介绍,但是关于
VB 方面的编程资料却比较少。
因此,借这次
毕业设计之机,我编写了一个可以在
VB6 下正常运行的日历、计算器多功能应用程序,欢迎各位老师提出批评改进意见。
第一章
VB 语言概述 一、
VB 简介
VB 是微软公司出品的一个快速可视化程序开发工具
软件,借助微软在操作系统和办公软件的垄断地位,
VB 在短短的几年内风靡全球。
VB 是极有和功能强大的软件,主要表现在:所见即所得的界面设计,基于对象的设计方法,极短的软件开发周期,较易维护的生成
代码。
美国微软公司在 1991 年推出
VB1.0 至今已经经历了 6 个版本,
VB6.0 运行在 win9x 或winme,win2000,winxp,windowsNT 等操作系统下,是一个 32 位的应用程序开发工具。
二、
VB 语言的基本特点及
VB 应用程序的基本持点
VB 程序语言具有许多优秀的特性用其设计应用程序时有两个基本特点:可视化设计和事件驱动编程.1、可视化设计 同其他的一些可视化程序开发工具一样
VB 具有可视化设计的特点微软的 Word 在刚刚进入市场时同 WPS 竞争的一个重要的功能砝码就是quot所见即所得quot的字处理功能
VB 在
设计应用程序界面时也可以说是quot所见即所得quot.在设计时头脑中所想象的应用程序界面完全可以通过键盘鼠标以及徒手画出来而不是编制大量的
代码然后再编译生成如果需要修改也是利用键盘鼠标和手画而底层的一些程序
代码由
VB 自动生成或修改。
VB 为用户提供大量的界面元素在
VB 中称为控件对象这些控件对象对于熟悉 Windows应用程序的用户而言是一点也不陌生如quot窗体quot、quot菜单quot、quot命令按钮quot、quot工具按钮quot、quot检查框quot等等用户只需要利用鼠标、键盘把这些控件对象拖动到适当的位置设置它们的大小、形状、属性等就可以设计出所需的应用程序界面。
2 事件驱动编程 Windows 操作
系统出现以来图形化的用户界面和多任务多进程的应用程序要求程序设计不能是单一性的在使用
VB 设计应用程序时必须首先确定应用程序如何同用户进行交互.例如发生鼠标单击、键盘输入等事件时由用户编写的
代码控制这些事件的响应这就是所谓的事件驱动编程。
前面已经谈到在
VB 中把窗体以及quot菜单quot、quot按钮quot等控件称为对象如果设计出了应用程序那么与应用程序的用户直接进行交互的就是这些对象组成的图形界面也称为用户接口或用户界面在设计应用
程序时就必须考虑到用户如何与程序进行交户.更进一步甚至程序和程序之间也会有通讯和交户基本上用户是通过鼠标、键盘与应用程序进行交互的这时那些对象就必须对鼠标和键盘操作所引发的事件做出响应.响应就是指执行一段应用程序它不沿预定的路径执行而是在响应不同事件时执行不同的
代码.因此应用程序
代码的路径在每次响应而执行时可能都是不形同的。
三、为何选择
VB 作为开发语言 除了
VB 之外当前能够编制 Windows 应用程序的可视化编程工具还有很多所针对的编 程 领 域 也 各 有 侧 重 就 微 软 系 列 的 可 视 化 开 发 工 具 而 言 就 有VBVisualCVisualJVisual Foxpro 等其中 Visual Foxpro 是针对数据库编程的开发工具Visual C是为专业程序设计员提供的开发工具变量声明和定义严密功能强大灵活必须经过相当的努力才能掌握而
VB 不支持虚类、多态性和类的继承相对而言
VB 简单易学变量定义不太严密对于非专业程序员而言功能足够强大同 Visual C一样也支持
网络编程和数据库编程。
除了微软之外其他公司也在为 Windows 操作系统平台制作应用程序开发工具例如前Borland 的公司出品的
DelphiCBulider JBulider 等其他一些公司出品的针对数据库编程的 PowerBulider PowerDesigner 等不可否认这些产品相当出色如果能够熟练掌握将是编程者能力的体现但是必须承认对 Windows 操作系统最熟悉的还是微软而且微软本身 Windows 操作系统的源
代码采取不公开的策略使得其他公司出品的产品在实现相同功能时多少都要走些弯路用户在使用这些产品设计应用程序时程序的效率将会受到影响。
在选择所需要的应用程序开发工具时不但要考虑开发工具的功能是否强大还要考虑所花费的时间和效果单纯地追求功能的强大也许会事倍功半。
中央电大陈明主编的《Visual Basic 程序设计》是
计算机应用专业采用的一本难得的教材使我受益匪浅。
通过这门
课程的学习,我已能用
VB 编写简单的程序,为了搞好这次毕业设计,我决定使用
VB 作为编程语言。
四、
VB6.0 应用的基本开发方法 1、交互式开发 传统的应用程序开发过程可以分为三个明显的步骤:编码、编译和测试。
但是
VB 与传统的语言不同它使用交互式方法开发应用程序使三个步骤之间不再有明显的界限。
在大多数语言里如果编写
代码时发生了错误则在开始编译应用程序时该错误就会被编译器捕获。
此时必须查找并改正该错误然后再次进行编译对每一个发现的错误都要重复这样的过程。
VB 在编程者输入
代码时便进行解释即时捕获并突出显示大多数语法或拼写错误。
看起来就像一位专家在监视
代码的输入。
除即时捕获错误以外
VB 也在输入
代码时部分地编译该
代码。
当准备运行和测试应用程序时只需极短时间即可完成编译。
如果编译器发现了错误、则将错误突出显示于
代码中。
这时可以更正错误并继续编译、而不需从头开始。
由于
VB 的交互特性因此在开发应用程序时系统频繁地运行着应用程序。
通过这种方式
代码运行的效果可以在开发时进行测试而不必等到编译完成以后。
第二章 用
VB 开发多功能日历程序 一、本程序运行界面简介 编程的主导思想是:先把公、农历的数据用数组查询设置好,再通过算法转换成具体应用。
程序的运行界面见图 1, 查询控制面 属相标志单击 计算器面板 板开关 退出本程序 开关 图1 程序应用了不规则窗体技术,使得窗体比较美观。
单击属相标志可以退出程序。
单击时钟数字将返回到今天。
单击计算器面板开关将向下拉出计算器面板单击查询控制面板开关将向下拉出查询控制面板见图 2。
图2 二、本程序部分控件的设置 G_y 下面两个 C_clock n_y 下 面 两 个 Gz Picture1 为 g_mg_d 为 n_mn_d 该时钟是画 出来的还 有 L1L2L3 三个 line 控Pt : picturebox 件控件 Lable4 Picture2 cmdt Picture5 图中我们看到的一个个小按钮是用 photoshop 画出来的实际上在每个按钮 上面我都加上了透明的 lable 控件 Updown1 Text1:textbox 控件三、主程序部分
代码:Option Explicit拖动无标题窗体Const HTCAPTION 2Const WM_NCLBUTTONDOWN ampHA1Private Declare Function ReleaseCapture Lib quotuser32quot As LongPrivate Declare Function SendMessage Lib quotuser32quot Alias quotSendMessageAquot ByVal hwndAs Long ByVal wMsg As Long ByVal wParam As Long lParam As Long As LongPrivate Declare Function GetObjectAPI Lib quotgdi32quot Alias quotGetObjectAquot ByVal hObjectAs Long ByVal nCount As Long lpObject As Any As LongPrivate Declare Function DeleteObject Lib quotgdi32quot ByVal hObject As Long As LongPrivate Declare Function SetWindowRgn Lib quotuser32quot ByVal hwnd As Long ByVal hRgnAs Long ByVal bRedraw As Boolean As LongPrivate Declare Function CreateRectRgn Lib quotgdi32quot ByVal X1 As Long ByVal Y1 AsLong ByVal X2 As Long ByVal Y2 As Long As LongPrivate Declare Function CombineRgn Lib quotgdi32quot ByVal hDestRgn As Long ByValhSrcRgn1 As Long ByVal hSrcRgn2 As Long ByVal nCombineMode As Long As LongPrivate Declare Function GetBitmapBits Lib quotgdi32quot ByVal hBitmap As Long ByValdwCount As Long lpBits As Any As LongPrivate Type BITMAP bmType As Long bmWidth As Long bmHeight As Long bmWidthBytes As Long bmPlanes As Integer bmBitsPixel As Integer bmBits As LongEnd TypePrivate Const RGN_OR 2Dim bmByte As Byte滚动字幕Private Declare Function DrawText Lib quotuser32quot Alias quotDrawTextAquot ByVal hdc As LongByVal lpStr As String ByVal nCount As Long lpRect As RECT ByVal wFormat As LongAs LongPrivate Declare Function GetTickCount Lib quotkernel32quot As LongConst DT_BOTTOM As Long ampH8Const DT_CALCRECT As Long ampH400Const DT_CENTER As Long ampH1Const DT_EXPANDTABS As Long ampH40Const DT_EXTERNALLEADING As Long ampH200Const DT_LEFT As Long ampH0Const DT_NOCLIP As Long ampH100Const DT_NOPREFIX As Long ampH800Const DT_RIGHT As Long ampH2Const DT_SINGLELINE As Long ampH20Const DT_TABSTOP As Long ampH80Const DT_TOP As Long ampH0Const DT_VCENTER As Long ampH4Const DT_WORDBREAK As Long ampH10Private Type RECT Left As Long Top As Long Right As Long Bottom As LongEnd TypeConst ScrollText As String quot1901-2049quot amp vbCrLf amp _ quot多功能电子日历 quotDim EndingFlag As Boolean jS As IntegerDim e As StringDim f As StringDim g As DoubleDim S_mem As DoubleDim op As StringDim chk As IntegerConst Pi 3.14Private Const SWP_NOMOVE 2Private Const SWP_NOSIZE 1Private Const FLAGS SWP_NOMOVE Or SWP_NOSIZEPrivate Const HWND_TOPMOST -1Private Const HWND_NOTOPMOST -2Dim flAge As Boolean color_index As Integer tiAo As Boolean jiSuan As BooleanDim s_mem_B As Boolean tip As Integer ziShi As String 数字按下、松开Private Sub cmdNum_MouseDownIndex As Integer Button As Integer Shift As Integerx As Single y As Single Show_b Picture5 P8 cmdNumIndexEnd SubPrivate Sub cmdNum_MouseUpIndex As Integer Button As Integer Shift As Integerx As Single y As Single Show_b Picture5 P9 cmdNumIndexEnd Sub 角度、弧度Private Sub cmdOp_1_ClickIndex As Integer MPl.Play Select Case Index Case 0 If g 1 Then If op quotquot Then e StrVale 180 / Pi txtDisp.Text e Else f StrVale 180 / Pi txtDisp.Text f End If chk 1 g Pi / 180 End If ShowNumARG Pt wPw13 19 Case 1 If g ltgt 1 Then If op quotquot Then e StrVale Pi / 180 txtDisp.Text e Else f StrVale Pi / 180 txtDisp.Text f End If chk 1 g 1 End If ShowNumARG Pt wPw13 20 Case 2 g 1 ShowNumARG Pt wPw13 21 End SelectEnd SubPrivate Sub cmdOp_1_MouseUpIndex As Integer Button As Integer Shift As Integerx As Single y As Single Show_b Picture5 P9 cmdOp_1IndexEnd SubPrivate Sub cmdOp_1_MouseDownIndex As Integer Button As Integer Shift As Integerx As Single y As Single Show_b Picture5 P8 cmdOp_1IndexEnd Sub 单一功能键按下、松开Private Sub cmdops_MouseDownIndex As Integer Button As Integer Shift As Integerx As Single y As Single Show_b Picture5 P8 cmdOpsIndexEnd SubPrivate Sub cmdops_MouseUpIndex As Integer Button As Integer Shift As Integerx As Single y As Single Show_b Picture5 P9 cmdOpsIndexEnd Sub 单一功能键按下、松开Private Sub cmdOps_ClickIndex As Integer Dim sum As Double i As IntegerOn Error GoTo eh1 MPl.Play Select Case Index Case 0 e StrSqrVale ShowNumFun Pt wPw13 10 Ji_suan Case 1 If e ltgt 0 Then e -ValtxtDisp Else e 0 End If Ji_suan Case 2 e StrSinVale g ShowNumFun Pt wPw13 Index - 1 Ji_suan Case 3 e StrCosVale g ShowNumFun Pt wPw13 Index - 1 Ji_suan Case 4 e StrTanVale g ShowNumFun Pt wPw13 Index - 1 Ji_suan Case 5 e StrAtnVale ShowNumFun Pt wPw13 Index - 1 Ji_suan Case 6 e Str1 / SinVale g ShowNumFun Pt wPw13 Index - 1 Ji_suan Case 7 e Str1 / CosVale g ShowNumFun Pt wPw13 Index - 1 Ji_suan Case 8 e StrExpVale ShowNumFun Pt wPw13 Index - 1 Ji_suan Case 9 e StrLogVale ShowNumFun Pt wPw13 Index - 1 Ji_suan Case 10 Randomize If op quotquot Then e Str9999999999 Rnd txtDisp.Text e f quotquot Else f Str99999999 Rnd txtDisp.Text f End If ShowNumFun Pt wPw13 Index - 1 Case 11 e Str1 / Vale Ji_suan 第 11-23 种情况略 Case 24 If s_mem_B False Then If op quotquot Then e StrS_mem txtDisp.Text e f quotquot Else f StrS_mem txtDisp.Text f End If s_mem_B True Else S_mem 0 s_mem_B False End If End SelectExit Subeh1:txtDisp.Text quot-E-quote quotquotf quotquotop quotquotEnd SubPrivate Sub cmdAC_Click MPl.Play g 1 ShowNumFun Pt wPw23 1 ShowNumARG Pt wPw13 20 e quotquot f quotquot op quotquot txtDisp.Text quot0quotEnd SubPrivate Sub cmdAC_MouseDownButton As Integer Shift As Integer x As Single y AsSingle Show_b Picture5 P8 cmdACEnd SubPrivate Sub cmdAC_MouseUpButton As Integer Shift As Integer x As Single y AsSingle Show_b Picture5 P9 cmdACEnd SubPrivate Sub cmdEq_Click MPl.Play If op quotquot Then e Str-Vale txtDisp.Text e Else f Str-Vale txtDisp.Text f End If chk 1End SubPrivate Sub cmdEq_MouseDownButton As Integer Shift As Integer x As Single y AsSingle Show_b Picture5 P8 cmdEqEnd SubPrivate Sub cmdEq_MouseUpButton As Integer Shift As Integer x As Single y AsSingle Show_b Picture5 P9 cmdEqEnd SubPrivate Sub cmdNum_ClickIndex As Integer On Error GoTo eh2 MPl.Play If chk 1 Then e quotquot f quotquot op quotquot chk 0 End If If op quotquot Then e e amp TrimStrIndex txtDisp.Text e Else f f amp TrimStrIndex txtDisp.Text f End If Exit Subeh2: txtDisp.Text quot-E-quot e quotquot f quotquot op quotquotEnd SubPrivate Sub cmdOp_MouseDownIndex As Integer Button As Integer Shift As Integerx As Single y As Single Show_b Picture5 P8 cmdOpIndexEnd SubPrivate Sub cmdOp_MouseUpIndex As Integer Button As Integer Shift As Integerx As Single y As Single Show_b Picture5 P9 cmdOpIndexEnd SubPrivate Sub cmdOp_ClickIndex .