




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录摘要:11.C#语言简介22.实现目标23.主要方法34.实验过程中的难点35.实验过程46.总结6附录(源程序):7用C#实现时钟模拟摘要:我们日常生活中有各种各样的时钟。随着计算机的普及和计算机科学的飞速发展人们开始越来越多的利用计算机解决实际问题,开发一个易于查看的时钟有较大的现实意义。VisualStudiio 2008是面向Windows Vista、Office 2007、Web 2.0的下一代开发工具,其强大的兼容性以及高速处理能力帮助程序人员轻松应对研究、测试、开发过程中的各种问题。对于 Web,ASP NET AJAX 及其他新技术使开发人员能够迅速创建更高效、交互式更强和更个性化的新一代 Web 体验。本文基于VisualStudiio 2008采用C#语言,应用GDI+应用程序编程借口(API)实现时钟模拟。关键词:C#开发 时钟模拟 GDI+ VisualStudio20081. C#语言简介C#是一种安全的、稳定的、简单的、优雅的,由C和C+衍生出来的面向对象的编程语言。它在继承C和C+强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C+的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。C#旨在设计成为一种“简单、现代、通用”,以及面向对象的程序设计语言,此种语言的实现,应提供对于以下软件工程要素的支持:强类型检查、数组维度检查、未初始化的变量引用检测、自动垃圾收集(Garbage Collection,指一种自动内存释放技术)。软件必须做到强大、持久,并具有较强的编程生产力。此种语言为在分布式环境中的开发提供适用的组件开发应用。为使程序员容易迁移到这种语言,源代码的可移植性十分重要,尤其是对于那些已熟悉C和C+的程序员而言。对国际化的支持非常重要。C#适合为独立和嵌入式的系统编写程序,从使用复杂操作系统的大型系统到特定应用的小型系统均适用。C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。本文主要应用GDI+应用程序编程借口(API)实现时钟模拟。采用Form_Paint()方法。2. 实现目标钟对我们来说非常熟悉,它有很多种类:摆钟、石英钟、机械闹钟、电摆钟、电子钟表等等。以前做过一个计时的钟表,而现在要做一个能读取当前时间的时钟,有时针、分针和秒针,与之相比,还是有很大的不同。(1) 表盘背景设置对界面背景的设置,选择颜色设置或选择图片设置。(2) 指针设置对界面上时针、分针、秒针以及各自的边框进行各自的颜色设置。(3) 数字时钟设置设置调整设置系统时间,选择数字时钟在表盘上的位置,以及数字时钟的颜色设置。3. 主要方法采用Datatime获取时间,DateTime.Now获取系统当前时间投影到数字时钟和指针上,Form_Paint()方法描绘时钟指针, 采用Invalidate()每隔1秒重绘窗口,Image()导入图片(按一定比例缩小)。注:图片重心位置和指针原点重合。4. 实验过程中的难点1) 导入钟表盘图片Image类为源自Bitmap和Metafile的类提供功能的抽象基类。Image类的公共成员:RawFormat获取此Image的文件格式。Size获取此图像的以像素为单位的宽度和高度。Tag获取或设置提供有关图像附加数据的对象。VerticalResolution获取此Image的垂直分辨率(以“像素/英寸”为单位)。Width获取此Image的宽度(以像素为单位)。解决方法:Image newImage1 = Image.FromFile(4.png);/图片放在bin文件Debug里 Rectangle r3 = new Rectangle(50, 50, 200, 200); g.DrawImage(newImage1, r3);/按指定大小绘制图形,图形大小为r12) 重绘窗口,出现闪烁现象解决方法: Graphics g = this.CreateGraphics();替换为: Graphics g = e.Graphics;3) 确定时针位置从圆上的某一点开始,依次旋转360度,满足从不同方向描绘指针,秒针间的间隔为6度。时针和分针类似,只是时间隔略有不同。描绘表针用到的方法:ResetTransform()方法将此Graphics的世界变换矩阵重置为单位矩阵。TranslateTransform(single,single)方法通过使此Graphics的变换矩阵左乘指定的平移来更改坐标系统的原点。RotateTransform(angle)将指定旋转应用于此Graphics的变换矩阵。旋转角度(以度为单位)。DrawLine()绘制一条连接由坐标对指定的两个点的线条。 解决方法:/画出秒针 int i = DateTime.Now.Second; /获取当前时间的秒数 g.ResetTransform(); g.TranslateTransform(center.X + r, center.Y + r); g.RotateTransform(i * 6 + 270 ); Pen secPen = new Pen(Color.Red, 3); secPen.StartCap = System.Drawing.Drawing2D.LineCap.RoundAnchor; secPen.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor; g.DrawLine(secPen, r - 100, 0, r - 23, 0);5. 实验过程Image()插入钟表图片采用Image()方法,首先载入一个图片,图片大小设置为表盘大小,图片圆心与表盘圆心重合。刚开始使用TextureBrush刷入图片,但是无法控制图片位置所以改用Image(),实验证明该方法有很强大的控制能力,方便实用,实现对图片的多种操作。绘制数字时钟和指针根据时针、分针、秒针每秒转的不同角度,计算他们在RotateTransform(angle)中角度的不同设置,然后DrawLine()方法绘制指针。最终实验效果图数字钟表通过DateTime()方法获取系统当前时间,DrawString()方法表达出来,调整数字钟表和指针表盘的位置,最后得到最终效果图如上所示。然后根据VS2008自带的打包程序,将程序打包为可安装程序exe,只需将该exe程序拷贝即可安装时钟。6. 总结在一个星期的课程设计之后,我们普遍感到不仅实际动手能力有所提高,更重要的是通过对编写程序流程的了解,进一步激发了我们对专业知识的兴趣,并能够结合实际存在的问题在专业领域内进行更深入的学习。通过这次课程设计,我们拓宽了知识面,锻炼了能力,综合素质得到较大提高。同时我们也都认识到了自身的不足,几天实训下来,我们小组遇到了许多困难:1、一开始我们都是无从下手,不知道如何写代码显示表盘,绘制指针,后来根据老师的提示,通过修改最终解决了这个问题;2、我们小组希望能够在表盘内添加4个刻度,但是没能实现。虽然这次实训我们遇到过不少困难,有的解决了,有的不能解决,但是我们真的从中学到了很多,了解到了组员间合作的重要性,了解到自身的不足,同时也学到了许多在课堂上没能涉及到的知识。这次的课程设计为我们将来走向工作岗位、走向社会提供了一个很好的参照。在以后的学习工作中,我们会以坚持不懈的精神去努力提高自己的编程能力,在各方面都不放弃。在此,我们组衷心感谢帮助过我的老师和同学们。附录(源程序):using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace ClockApp public partial class Form5 : Form public Form5() InitializeComponent(); private void Form5_Paint(object sender, PaintEventArgs e) / Graphics g = this.CreateGraphics(); Graphics g = e.Graphics; Point center = new Point(50, 50); int r = 100; /数字时钟,这个时钟固定不动 Rectangle r1 = new Rectangle(50, 10, 200, 20); g.FillRectangle(Brushes.Chocolate, r1); String m = Convert.ToString(DateTime.Now.Minute); String s = Convert.ToString(DateTime.Now.Second); String h = Convert.ToString(DateTime.Now.Hour); Font f1 = new Font(宋体, 12, FontStyle.Bold); StringFormat sf1 = new StringFormat(); sf1.Alignment = StringAlignment.Center; SolidBrush s1 = new SolidBrush(Color.White); g.DrawString(当前时间 + h + : + m + : + s, f1, s1, r1,sf1); /画出秒针 int i = DateTime.Now.Second; g.ResetTransform(); g.TranslateTransform(center.X + r, center.Y + r); g.RotateTransform(i * 6 + 270 ); Pen secPen = new Pen(Color.Red, 3); secPen.StartCap = System.Drawing.Drawing2D.LineCap.RoundAnchor; secPen.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor; g.DrawLine(secPen, r - 100, 0, r - 23, 0); /画出分针 int j = DateTime.Now.Minute; g.ResetTransform(); g.TranslateTransform(center.X + r, center.Y + r); g.RotateTransform(j * 6 + 270 ); Pen minPen = new Pen(Color.White, 4); /minPen.StartCap = System.Drawing.Drawing2D.LineCap.RoundAnchor; minPen.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor; g.DrawLine(minPen, r - 100, 0, r - 37, 0); /画出时针 int k = DateTime.Now.Hour; g.ResetTransform(); g.TranslateTransform(center.X + r, center.Y + r); g.RotateTransform(k * 30 + j * 1 / 2 + 270 ); Pen hourPen = new Pen(Color.Black, 4); hourPen.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor; g.DrawLine(hourPen, r - 100, 0, r - 47, 0); /刷新当前页面 if (i 60) Invalidate(); System.Threading.Thread.Sleep(1000); protected
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成都市青羊区教育局2025年“蓉漂人才荟”赴高校公开考核招聘240名教师备考考试题库附答案解析
- 2025武汉市砺志中学专项招聘教师4人备考考试题库附答案解析
- 2025上海奉贤区社会化工会工作者招聘8人备考考试题库附答案解析
- 黑龙江省商务厅2025年下半年事业单位公开招聘工作人员备考考试题库附答案解析
- 2025广西桂林市临桂区两江镇初级中学秋季学期顶岗教师招聘1人备考考试题库附答案解析
- 2025年大庆市贸促会公益性岗位招聘1人备考考试题库附答案解析
- 2025湖北孝感云梦县事业单位考核聘用服务期满“三支一扶”高校毕业生14人考试参考试题及答案解析
- 2025福建三明学院招聘4人备考考试题库附答案解析
- 深海热液生物组学-洞察及研究
- 乳酸溶液在土壤修复中的应用-洞察及研究
- 产品研发流程管理指南
- 《车刀与切削原理》课件
- 2024高考物理全国二卷
- 2024-2030年中国猎头公司市场发展前景调研及投资战略分析报告
- 注塑检验员培训
- 消防安全操作员培训合同范本
- 肿瘤登记资料的统计分析-生存分析
- 消防控制室操作规程培训
- 国庆节磨豆腐活动方案
- 运输供应商管理制度
- 七年级上册生命、生态、安全教案全册
评论
0/150
提交评论