1、 课 程 设 计课 程 设 计 2013 年年 3 月月 18 日日 课 程 设 计 任 务 书课 程 设 计 任 务 书 题目:时钟模拟题目:时钟模拟 一、课程设计时间一、课程设计时间 2013 年 3 月 11 日15 日(第 3 周) ,共计 1 周。 二、课程设计内容二、课程设计内容 在窗体上演示一个正在工作的有时、分、秒指针的时钟,要求:可以对时钟的时间 进行手工修正。 用户界面中的菜单(或命令按钮)至少应包括“运行时钟” 、 “修改时间” 、 “退出” 3 项。 三、课程设计要求三、课程设计要求 程序质量: 贯彻事件驱动的程序设计思想。 用户界面友好,功能明确,操作方便;可以增加其
2、它功能或修饰。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。 课程设计说明书: 课设结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提 供的模板。 四、指导教师和学生签字四、指导教师和学生签字 指导教师:指导教师:_ 学生签名:学生签名:_ 五、成绩五、成绩 六、教师评语六、教师评语 第 3 页,共 13 页 目 录 需求分析 4 设计分析 5 关键技术 6 总结 . 9 完整的源程序 . 10 参考文献. 13 第 4 页,共 13 页 需求分析需求分析 模拟时钟运行,主要要求是设计一个有时针,分针和 秒针的时钟。 其应该具有 “运行时钟” , “修改时钟” 和 “退
3、出程序”3 种功能。 要求: 在窗体上设计一个具有时针,分针和秒针的表盘。 此表盘用户菜单至少应包括“运行时钟” , “修改时 钟”和“退出”3 项。 能够运行时钟。 能够随时对时钟进行修改。 能够随时退出运行程序。 第 5 页,共 13 页 设计分析设计分析 (1) 基本原理: 建立程序设计与图形方法绘制图形的 综合应用。用 Line 方法 For 循环以及 Timer 控 件使时钟能够动态运行 (2)设计: 开始 调节时钟 修改时间 确定修改 暂停或开始 对时钟进行调整 时钟重新运行 退出 结束程序 第 6 页,共 13 页 关键技关键技术术 1 声明变量,定义窗体声明变量,定义窗体 Co
4、nst PI = 3.1415926 Dim BaseX As Integer, BaseY As Integer, R As Integer(对变量进行声明) Private Sub Form_Load() Me.ScaleMode = 3 Me.Width = 5505 Me.Height = 5475 End Sub(定义窗体的高度和宽度) 2 绘制表盘的代码如下绘制表盘的代码如下 Private Sub biaopan() Dim i As Integer BaseX = Me.ScaleWidth / 2 BaseY = Me.ScaleHeight / 2 If BaseX Bas
5、eY Then R = BaseX * 0.6 If BaseX BaseY Then R = BaseX * 0.6 If BaseX 12 Then H = H - 12 End If Me.DrawWidth = 1 DrawLine BaseX, BaseY , BaseX + (R - 10) * Sin(S * PI / 30), BaseY - (R - 10) * Cos(S * PI / 30), 0 DrawLine BaseX, BaseY , BaseX + R * 0.8 * Sin(M * PI / 30), BaseY - R * 0.8 * Cos(M * PI
6、 / 30), 1 DrawLine BaseX, BaseY , BaseX + R * 0.6 * Sin(H + M / 60) * PI / 6), BaseY - R * 0.6 * Cos(H + M / 60) * PI / 6), 2 End Sub Private Sub DrawLine(x1 As Integer, y1 As Integer, x2 As Integer, y2 As Integer, Flag As Integer) Static OldSX1 As Integer, OldSX2 As Integer, OldSY1 As Integer, OldSY2 As Integer Static OldMX1 As Integer, OldMX2 As Integer, OldMY1 As Integer, OldMY2 As Integer 第 12 页,共 13 页 Static OldHX1 As Integer, OldHX2 As Integer, Old