《软件设计基础VB》课程设计报告书.docx
《《软件设计基础VB》课程设计报告书.docx》由会员分享,可在线阅读,更多相关《《软件设计基础VB》课程设计报告书.docx(14页珍藏版)》请在冰豆网上搜索。
《软件设计基础VB》课程设计报告书
河北联合大学
《软件设计基础(VB)》
课程设计报告
设计名称:
简易日历
姓名:
杨烁学号:
201004010219
专业班级:
土木工程二班
学院:
建筑工程学院
设计时间:
2011年5月10号到7月10号
设计地点:
河北联合大学计算机中心
成绩:
指导教师评语:
指导教师签字:
年月日
目录
1.课程设计目的3
2.课程设计任务与要求3
3.课程设计说明书4
4.课程设计成果13
5.程序调试过程14
6.设计问题的不足和改进方案15
7.课程设计心得16
8.附录17
9.参考文献17
1.课程设计目的
《软件设计基础(VB)》课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖VB的知识点,又接近工程实际需要。
目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握VB这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。
2.课程设计任务与要求:
要求:
本次课程设计利用《软件设计基础(VB)》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。
要求:
1、对系统进行功能需求分析
2、设计合理的数据结构和系统框架
3、界面设计美观、清楚、合理
4、编程简练,程序功能齐全,能正确运行
5、具有一定的创新性
6、说明书、流程图要清楚
7、课题完成后必须按要求提交课程设计报告
任务:
1.窗体加载自动提取并显示当前日期
2.能选择1960-2060之间的任一年份
3.选择某一日期后凹陷显示并在窗体下方显示所选择的日期及其星期
4.单击确定后显示所选日期
5.节日等在选定日期后以MsgBox形式提示
6.单击退出关闭窗体
7.根据所选年份和月份,确定显示天数的个数
8.年月日及下方的显示只可读不可输入
3.课程设计说明书
功能描述
窗体加载自动提取并显示当前日期。
能选择1960-2060之间的任一年份。
选择某一日期后凹陷显示并在窗体下方显示所选择的日期及其星期。
单击确定后显示所选日期。
节日等在选定日期后以MsgBox形式提示。
根据所选年份和月份,确定显示天数的个数。
⑵概要设计
模块结构图:
根据功能分析,建立系统的体系结构,即将整个系统分解成若干子模块,用框图表示各功能模块之间的接口关系(如下图)。
简易日历
当前日期
选择日期
日期显示
退出系统
简易日历系统功能框图
⑶详细设计
总体流程图:
各功能模块流程图:
退出系统
日期显示
选择日期
当前日期
简易日历
⑷代码实现
form1、首页
作用:
“简易日历主窗体”。
所用控件:
2个combobox控件,2个textbox,2个commandbutton,1个frame控件,2个label,frame中使用1个label控件数组。
设计思路:
2个combobox控件供用户选择年份和月份,2个textbox显示所选日期,1个frame控件和其中的1个label控件数组供用户选择日期。
详细内容:
属性较特殊的需要说明。
代码如下:
OptionExplicit
Dimxuanzedate%
PrivateSubForm_Load()
xuanzedate%=CInt(Format$(Now,"dd"))
Calltianchongbn01
Calltianchongbn02
Callsetdate
Dimr%,week$
r%=Weekday(Format$(Now,"generaldate"))
Ifr%=1Then
week$="星期日"
ElseIfr%=2Then
week="星期一"
ElseIfr%=3Then
week="星期二"
ElseIfr%=4Then
week="星期三"
ElseIfr%=5Then
week="星期四"
ElseIfr%=6Then
week="星期五"
Else
week="星期六"
EndIf
bn002.Text=week$
bn001.Text=Format$(Now,"yyyy"&"年"&"m"&"月"&"d"&"日")
EndSub
PrivateSubcheckdate(month%,year%)
Dimi%,value%,datebn$
Fori%=28To32
datebn$=(Str$(month%)+"/"+Str$(i%)+"/"+Str$(year%))
IfIsDate(datebn$)Then
value%=i%
Else
Callvisualnumber(value%)
ExitSub
EndIf
Nexti%
EndSub
PrivateSubsetdate()
Dimr%,i%
r%=CInt(Format$(Now,"yyyy"))
i%=r%-1960
bn02.ListIndex=i%
r%=CInt(Format$(Now,"mm"))
bn01.ListIndex=(r%-1)
r%=CInt(Format$(Now,"dd"))
bndate(r%-1).BorderStyle=1
xuanzedate%=r%
EndSub
PrivateSubtianchongbn01()
bn01.AddItem"一月"
bn01.AddItem"二月"
bn01.AddItem"三月"
bn01.AddItem"四月"
bn01.AddItem"五月"
bn01.AddItem"六月"
bn01.AddItem"七月"
bn01.AddItem"八月"
bn01.AddItem"九月"
bn01.AddItem"十月"
bn01.AddItem"十一月"
bn01.AddItem"十二月"
EndSub
PrivateSubtianchongbn02()
Dimi%
Fori%=1960To2060
bn02.AddItemStr$(i%)
Nexti%
EndSub
PrivateSubbn01_click()
Callsetday
Callbndate_click(xuanzedate%-1)
EndSub
PrivateSubbn02_Click()
Staticabc%
IfNotabcThen
abc=True
ExitSub
EndIf
Callbn01_click
EndSub
PrivateSubsetday()
Dimmonth%,year%
month%=setmonth()
year%=setyear()
Callcheckdate(month%,year%)
EndSub
PrivateSubbndate_click(IndexAsInteger)
Dimi%
OnErrorGoToerr1
Fori%=0To30
bndate(i%).BorderStyle=0
Nexti%
Ifbndate(Index).BorderStyle=1Then
bndate(Index).BorderStyle=0
Else
bndate(Index).BorderStyle=1
EndIf
xuanzedate%=Index+1
Dimmonth%,day%,year%,datebn$
day%=xuanzedate%
month%=bn01.ListIndex+1
year%=bn02.ListIndex+1960
datebn$=(Str$(month%)+"/"+Str$(day%)+"/"+Str$(year%))
Ifbn01.Text="六月"Andbndate(27).BorderStyle=1Then
MsgBox"老师,欢迎您检阅我的设计。
ElseIfbn01.Text="九月"Andbndate(12).BorderStyle=1Then
MsgBox"老师,欢迎您检阅我的设计。
EndIf
Dimr%
Dimweek$
r%=Weekday(datebn$)
Ifr%=1Then
week$="星期日"
ElseIfr%=2Then
week="星期一"
ElseIfr%=3Then
week="星期二"
ElseIfr%=4Then
week="星期三"
ElseIfr%=5Then
week="星期四"
ElseIfr%=6Then
week="星期五"
Else
week="星期六"
EndIf
bn002.Text=week$
bn001.Text=Format$(datebn$,"longdate")
err1:
IfErr=0ThenExitSub
IfErr=13Then
xuanzedate%=xuanzedate%-1
ExitSub
EndIf
EndSub
PrivateFunctionsetmonth%()
Dimi%
i%=bn01.ListIndex
setmonth%=i%+1
EndFunction
PrivateFunctionsetyear%()
Dimi%
i%=bn02.ListIndex
Ifi%=-1ThenExitFunction
setyear%=CInt(Trim(bn02.List(i%)))
EndFunction
PrivateSubvisualnumber(number%)
Dimi%
Fori%=28To30
bndate(i%).Visible=False
Nexti%
Fori%=28Tonumber%-1
bndate(i%).Visible=True
Nexti%
EndSub
PrivateSubbnyes_Click()
Dimmonth%,day%,year%,datebn$
day%=xuanzedate%
month%=bn01.ListIndex+1
year%=bn02.ListIndex+1960
datebn$=(Str$(month%)+"/"+Str$(day%)+"/"+Str$(year%))
datebn$=Format$(datebn$,"generaldate")
MsgBoxFormat$(datebn$,"longdate"),,"您选定的日期为:
"
Ifbn01.Text="十月"Andbndate(0).BorderStyle=1Then
MsgBox"国庆节快乐",,"节日/纪念日"
ElseIfbn01.Text="二月"Andbndate(13).BorderStyle=1Then
MsgBox"情人节快乐:
>",,"节日/纪念日"
ElseIfbn01.Text="一月"Andbndate(0).BorderStyle=1Then
MsgBox"元旦快乐,又一年了,加油啊",,"节日/纪念日"
ElseIfbn01.Text="三月"Andbndate(11).BorderStyle=1Then
MsgBox"植树节了,心系环保",,"节日/纪念日"
ElseIfbn01.Text="四月"Andbndate(0).BorderStyle=1Then
MsgBox"愚人节的小傻瓜们,今天被骗了没?
:
-P",,"节日/纪念日"
ElseIfbn01.Text="六月"Andbndate(0).BorderStyle=1Then
MsgBox"儿童节快乐,有颗童心会更加快乐!
",,"节日/纪念日"
ElseIfbn01.Text="八月"Andbndate(0).BorderStyle=1Then
MsgBox"建军节快乐",,"节日/纪念日"
ElseIfbn01.Text="十月"Andbndate(29).BorderStyle=1Then
MsgBox"今天我生日,生日快乐!
哈哈",,"节日/纪念日"
ElseIfbn01.Text="十一月"Andbndate(22).BorderStyle=1Then
MsgBox"我的宝贝,生日快乐!
",,"节日/纪念日"
ElseIfbn01.Text="十二月"Andbndate(24).BorderStyle=1Then
MsgBox"圣诞节快乐",,"节日/纪念日"
ElseIfbn01.Text="三月"Andbndate(7).BorderStyle=1Then
MsgBox"妇女节快乐",,"节日/纪念日"
ElseIfbn01.Text="八月"Andbndate
(1).BorderStyle=1Then
MsgBox"妈,生日快乐!
",,"节日/纪念日"
EndIf
EndSub
PrivateSubbnexit_Click()
UnloadMe
EndSub
4.课程设计成果
程序运行后显示当前日期:
选择任意日期:
点击“确认”:
点击“确定”:
5.程序调试过程
系统在调试过程中存在的主要问题是的错误是变量声明部分,变量声明部分声明本程序所需要的变量和数组,主要是日期变量。
另外就是设定当前日期错误,在下拉列表框添加年份和月份。
PrivateSublblnumber_click(IndexAsInteger)最终通过各种调试和查询解决了问题,还有就是预期设想的利用函数和数组来完成日历代码的编写,运行效果不错。
6.设计问题的不足和改进方案
这个程序的日历比较简单,不美观,而且比较单调。
设想可以通过添加背景图片,设置更多的节日和添加记事本功能并且有时间提醒。
7.课程设计心得
学习VB编程语言是一件很枯躁的事情,需要有强大的爱好,必需要为自己的爱好而学习,这样才能有足够的动力来学习编程这门枯燥的事情,才能在枯燥的事情中找到快乐。
在学习中要认认真真的把MSDN中关于VB的内容好好看一看,特别是函数和语句。
遇到问题不要直接去问别人,自己好好想一想,试着解决这个问题。
当自己想过好多办法,解决一个问题,可能解决的办法并不是最好的办法,但绝对有利于自己的提高,一个人水平的提高主要是通过独立的解决问题来得到的。
即使自己最后没有解决问题,你自己思考过了,然后找别人帮你解决,你也会想和很深入,以后再碰到类似的问题,也就能自己找到方法解决了。
学习程序设计要有一定的逻辑思维能力.逻辑思维需要长时间的锻炼,如果你觉得自己在逻辑思维能力上有不足,也没有关系,因为编写程序本身也是对逻辑思维的锻炼.初学程序设计应具备的逻辑基础可以从高中数学中学到.
8.附录
有些需要说明的部分。
如添加ActiveX等非不标准部件,或使用文件操作时对路径有特殊要求等。
若没有特殊要求,此处为“无”。
1、无
9.参考文献
1、陈明锐.VisualBasic程序设计及应用教程.北京:
高等教育出版社,2008.12
2、龙沛曾、陆慰民、杨志强《VisualBasic程序设计简明教程》高教出版社
3、杨克玉《VB6、0程序设计实训教程》机械工业出版社
4、参考网址