1、软件设计基础VB课程设计报告书河北联合大学 软件设计基础(VB)课程设计报告设计名称: 简易日历 姓 名: 杨烁 学 号:201004010219 专业班级: 土木工程二班 学 院: 建筑工程学院 设计时间: 2011年5月10号到7月10号 设计地点: 河北联合大学计算机中心 成绩:指导教师评语: 指导教师签字: 年 月 日目 录1.课程设计目的 32.课程设计任务与要求 33.课程设计说明书 44.课程设计成果 135.程序调试过程 146.设计问题的不足和改进方案 157.课程设计心得 168.附录 179.参考文献 171课程设计目的软件设计基础(VB)课程设计是这门课程的实践性教学环
2、节之一,本次设计结合实际应用的要求,使课程设计既覆盖VB的知识点,又接近工程实际需要。目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握VB这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。2课程设计任务与要求:要求:本次课程设计利用软件设计基础(VB)课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。要求:1、对系统进行功能需求分析2、设计合理的数据结构和系统框架3、界面设计美观、清楚、合理4、编程简练,程序功能齐全,
3、能正确运行5、具有一定的创新性6、说明书、流程图要清楚7、课题完成后必须按要求提交课程设计报告任务:1.窗体加载自动提取并显示当前日期2.能选择1960-2060之间的任一年份3.选择某一日期后凹陷显示并在窗体下方显示所选择的日期及其星期4.单击确定后显示所选日期5.节日等在选定日期后以MsgBox形式提示6.单击退出关闭窗体7.根据所选年份和月份,确定显示天数的个数8.年月日及下方的显示只可读不可输入3课程设计说明书功能描述窗体加载自动提取并显示当前日期。能选择1960-2060之间的任一年份。选择某一日期后凹陷显示并在窗体下方显示所选择的日期及其星期。单击确定后显示所选日期。节日等在选定日
4、期后以MsgBox形式提示。根据所选年份和月份,确定显示天数的个数。概要设计模块结构图: 根据功能分析,建立系统的体系结构,即将整个系统分解成若干子模块,用框图表示各功能模块之间的接口关系(如下图)。简易日历当前日期选择日期日期显示退出系统简易日历系统功能框图 详细设计 总体流程图:各功能模块流程图:退出系统日期显示选择日期当前日期简易日历代码实现form1、首页作用:“简易日历主窗体”。所用控件:2个combobox控件,2个textbox,2个commandbutton,1个frame控件,2个label,frame中使用1个label控件数组。设计思路:2个combobox控件供用户选择
5、年份和月份,2个textbox显示所选日期,1个frame控件和其中的1个label控件数组供用户选择日期。详细内容:属性较特殊的需要说明。代码如下:Option ExplicitDim xuanzedate%Private Sub Form_Load()xuanzedate% = CInt(Format$(Now, dd)Call tianchongbn01Call tianchongbn02Call setdateDim r%, week$r% = Weekday(Format$(Now, general date)If r% = 1 Then week$ = 星期日ElseIf r% =
6、 2 Then week = 星期一ElseIf r% = 3 Then week = 星期二ElseIf r% = 4 Then week = 星期三ElseIf r% = 5 Then week = 星期四ElseIf r% = 6 Then week = 星期五Else week = 星期六End Ifbn002.Text = week$bn001.Text = Format$(Now, yyyy & 年 & m & 月 & d & 日)End SubPrivate Sub checkdate(month%, year%)Dim i%, value%, datebn$For i% = 2
7、8 To 32 datebn$ = (Str$(month%) + / + Str$(i%) + / + Str$(year%) If IsDate(datebn$) Then value% = i% Else Call visualnumber(value%) Exit Sub End IfNext i%End SubPrivate Sub setdate()Dim r%, i%r% = CInt(Format$(Now, yyyy)i% = r% - 1960bn02.ListIndex = i%r% = CInt(Format$(Now, mm)bn01.ListIndex = (r%
8、- 1)r% = CInt(Format$(Now, dd)bndate(r% - 1).BorderStyle = 1xuanzedate% = r%End SubPrivate Sub tianchongbn01()bn01.AddItem 一月bn01.AddItem 二月bn01.AddItem 三月bn01.AddItem 四月bn01.AddItem 五月bn01.AddItem 六月bn01.AddItem 七月bn01.AddItem 八月bn01.AddItem 九月bn01.AddItem 十月bn01.AddItem 十一月bn01.AddItem 十二月End SubP
9、rivate Sub tianchongbn02() Dim i% For i% = 1960 To 2060 bn02.AddItem Str$(i%) Next i%End SubPrivate Sub bn01_click()Call setdayCall bndate_click(xuanzedate% - 1)End SubPrivate Sub bn02_Click()Static abc%If Not abc Then abc = True Exit SubEnd IfCall bn01_clickEnd SubPrivate Sub setday() Dim month%, y
10、ear% month% = setmonth() year% = setyear() Call checkdate(month%, year%)End SubPrivate Sub bndate_click(Index As Integer)Dim i%On Error GoTo err1For i% = 0 To 30 bndate(i%).BorderStyle = 0Next i%If bndate(Index).BorderStyle = 1 Then bndate(Index).BorderStyle = 0Else bndate(Index).BorderStyle = 1End
11、Ifxuanzedate% = Index + 1Dim month%, day%, year%, datebn$day% = xuanzedate%month% = bn01.ListIndex + 1year% = bn02.ListIndex + 1960datebn$ = (Str$(month%) + / + Str$(day%) + / + Str$(year%)If bn01.Text = 六月 And bndate(27).BorderStyle = 1 Then MsgBox 老师,欢迎您检阅我的设计。 ElseIf bn01.Text = 九月 And bndate(12)
12、.BorderStyle = 1 Then MsgBox 老师,欢迎您检阅我的设计。End If Dim r%Dim week$r% = Weekday(datebn$)If r% = 1 Then week$ = 星期日ElseIf r% = 2 Then week = 星期一ElseIf r% = 3 Then week = 星期二ElseIf r% = 4 Then week = 星期三ElseIf r% = 5 Then week = 星期四ElseIf r% = 6 Then week = 星期五Else week = 星期六End Ifbn002.Text = week$bn001
13、.Text = Format$(datebn$, long date)err1: If Err = 0 Then Exit Sub If Err = 13 Then xuanzedate% = xuanzedate% - 1 Exit Sub End If End SubPrivate Function setmonth%()Dim i%i% = bn01.ListIndexsetmonth% = i% + 1End FunctionPrivate Function setyear%()Dim i%i% = bn02.ListIndexIf i% = -1 Then Exit Function
14、setyear% = CInt(Trim(bn02.List(i%)End FunctionPrivate Sub visualnumber(number%)Dim i%For i% = 28 To 30 bndate(i%).Visible = FalseNext i%For i% = 28 To number% - 1 bndate(i%).Visible = TrueNext i%End SubPrivate Sub bnyes_Click()Dim month%, day%, year%, datebn$day% = xuanzedate%month% = bn01.ListIndex
15、 + 1year% = bn02.ListIndex + 1960datebn$ = (Str$(month%) + / + Str$(day%) + / + Str$(year%)datebn$ = Format$(datebn$, general date)MsgBox Format$(datebn$, long date), , 您选定的日期为:If bn01.Text = 十月 And bndate(0).BorderStyle = 1 Then MsgBox 国庆节快乐, , 节日/纪念日ElseIf bn01.Text = 二月 And bndate(13).BorderStyle
16、 = 1 Then MsgBox 情人节快乐:, , 节日/纪念日ElseIf bn01.Text = 一月 And bndate(0).BorderStyle = 1 Then MsgBox 元旦快乐,又一年了,加油啊, , 节日/纪念日 ElseIf bn01.Text = 三月 And bndate(11).BorderStyle = 1 Then MsgBox 植树节了,心系环保, , 节日/纪念日ElseIf bn01.Text = 四月 And bndate(0).BorderStyle = 1 Then MsgBox 愚人节的小傻瓜们,今天被骗了没?:-P, , 节日/纪念日 E
17、lseIf bn01.Text = 六月 And bndate(0).BorderStyle = 1 Then MsgBox 儿童节快乐,有颗童心会更加快乐!, , 节日/纪念日 ElseIf bn01.Text = 八月 And bndate(0).BorderStyle = 1 Then MsgBox 建军节快乐, , 节日/纪念日 ElseIf bn01.Text = 十月 And bndate(29).BorderStyle = 1 Then MsgBox 今天我生日,生日快乐!哈哈, , 节日/纪念日 ElseIf bn01.Text = 十一月 And bndate(22).Bor
18、derStyle = 1 Then MsgBox 我的宝贝,生日快乐!, , 节日/纪念日 ElseIf bn01.Text = 十二月 And bndate(24).BorderStyle = 1 Then MsgBox 圣诞节快乐, , 节日/纪念日 ElseIf bn01.Text = 三月 And bndate(7).BorderStyle = 1 Then MsgBox 妇女节快乐, , 节日/纪念日 ElseIf bn01.Text = 八月 And bndate(1).BorderStyle = 1 Then MsgBox 妈,生日快乐!, , 节日/纪念日 End IfEnd
19、SubPrivate Sub bnexit_Click() Unload MeEnd Sub4课程设计成果程序运行后显示当前日期:选择任意日期:点击“确认”:点击“确定”:5.程序调试过程系统在调试过程中存在的主要问题是的错误是变量声明部分,变量声明部分声明本程序所需要的变量和数组,主要是日期变量。另外就是设定当前日期错误,在下拉列表框添加年份和月份。Private Sub lblnumber_click(Index As Integer)最终通过各种调试和查询解决了问题,还有就是预期设想的利用函数和数组来完成日历代码的编写,运行效果不错。6.设计问题的不足和改进方案这个程序的日历比较简单,不
20、美观,而且比较单调。设想可以通过添加背景图片,设置更多的节日和添加记事本功能并且有时间提醒。7.课程设计心得学习VB编程语言是一件很枯躁的事情,需要有强大的爱好,必需要为自己的爱好而学习,这样才能有足够的动力来学习编程这门枯燥的事情,才能在枯燥的事情中找到快乐。在学习中要认认真真的把MSDN中关于VB的内容好好看一看,特别是函数和语句。 遇到问题不要直接去问别人,自己好好想一想,试着解决这个问题。当自己想过好多办法,解决一个问题,可能解决的办法并不是最好的办法,但绝对有利于自己的提高,一个人水平的提高主要是通过独立的解决问题来得到的。即使自己最后没有解决问题,你自己思考过了,然后找别人帮你解决
21、,你也会想和很深入,以后再碰到类似的问题,也就能自己找到方法解决了。学习程序设计要有一定的逻辑思维能力.逻辑思维需要长时间的锻炼,如果你觉得自己在逻辑思维能力上有不足,也没有关系,因为编写程序本身也是对逻辑思维的锻炼.初学程序设计应具备的逻辑基础可以从高中数学中学到.8.附录有些需要说明的部分。如添加ActiveX等非不标准部件,或使用文件操作时对路径有特殊要求等。若没有特殊要求,此处为“无”。1、 无9.参考文献1、 陈明锐.Visual Basic程序设计及应用教程.北京:高等教育出版社,2008.122、龙沛曾、陆慰民、杨志强 Visual Basic 程序设计简明教程高教出版社3、杨克玉 VB6、0程序设计实训教程机械工业出版社4、参考网址
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1