作业帮 > 体裁作文 > 教育资讯

桌面时钟

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/14 06:20:55 体裁作文
桌面时钟体裁作文

篇一:桌面时钟代码

动态数字时钟

篇二:用QT实现桌面时钟设计.doc

附件二 【学生用】

西北农林科技大学信息工程学院

面向对象实习实习报告

题 学 号 姓 名 专业班级 指导教师 实践日期

目:桌面时钟设计与实现

目 录

一、综合训练目的与要求 ..................................................................................................................... 1 二、综合训练任务 ................................................................................................................................. 1 三、总体设计 ......................................................................................................................................... 2 四、详细设计说明 ................................................................................................................................. 4 五、调试与测试 ..................................................................................................................................... 5 六、实习日志 ......................................................................................................................................... 9 七、实习总结 ......................................................................................................................................... 9 八、附录:核心代码清单 ..................................................................................................................... 9

一、综合训练目的与要求

正文这次面向对象实习实践活动是在C++面向对象程序设计之后进行的实践环节旨在加深对面向对象编程的设计思想(类的设计,抽象,封装,包含与继承,多态性,UML图)的理解,掌握使用C++编程的基本的技能,从而能通过小型的团队开发一些小软件的实现与设计,并能够解决一定的实际问题。以及掌握撰写规范程序设计文档的能力,还有训练语言组织与表达能力,提高综合能力。

二、综合训练任务 1、需求分析

随着科学技术的不断发展,计算机已经成为了我们日常工作生活和学习中不可缺少的工具,很多人每天都使用计算机与外界进行交互,为了让用户对计算机有更舒心的体验,桌面的个性化是必不可少,因此很有必要设计美观使用的桌面的小软件,来让计算机更加人性化,二当今社会是信息时代,生活节奏也随即加快,而一个美观的能提示显示时间和日历的小软件能让人们合理安排自己的行程,避免不必要的损失,因此桌面时钟有一定的需求性。

2、任务实现

(1)良好的人机交互界面是用户所亲睐的。 (2)使用QT Creater 来开发该界面程序。

(3)采用面向对象的思想实现时钟类、设置类的封装和与实现 (4)实现软件界面的布局

(5)为了实现不同类之间的联系提供类的接口。

(6)实现对代码的编写和调试工作,每天记录实习日志 (7)独立完成论文并进行答辩。

三、总体设计 1、整体功能设计

图3-1-1

图3-1-1 是整体功能的设计,为了界面的整洁性和强化界面的显示采取以上的功能模型组合。增强可视化和人性化,用户可以自己更改时间和更改日历的显示的样式以及一些其他的操作。

2、各部件介绍:

(1)主窗口实现窗口布局包含了数字时钟部件、日历部件、时间部件、和菜单。 (2)日历设置窗口实现窗口布局包含了日历样式设置和常规设置部件。

(3)时间设置窗口实现窗口的布局包含了时间Edit和刻度时钟动态实现更改时间设置。

3、整体UML图:

图3-3-1

图3-3-1是程序整体的UML图由于属性太多因此省略掉了属性和操作。以程序中每个类之间的联系进行组合,反映出程序中结构和整体的框架。便于后期编程。

篇三:桌面钟表

桌面钟表小软件设计

一、桌面钟表小软件设计的开发环境: 开发平台:vs2005;

开发形式:c#.net,winform应用程序窗口; 开发语言:c#高级程序语言;

二、桌面钟表小软件设计特点: 该软件主要实现在桌面上显示个性化钟表;

钟表设计精巧灵活,用户可以根据自己的喜好进行钟表皮肤和样式的设定。

三、具体设计

该软件主要设计了两个winform窗体,分别用于软件主界面和功能设置窗口。

1、桌面钟表主界面设计

该软件运行效果如图右上角:

图1 运行效果截图

该界面的设计布局由winform窗体,菜单ContextMenuStrip控

件,

notifyIcon控件和时间控件timer等五个控件组成。

具体设计布局如图所示:

图2主窗口设计界面

该界面功能主要是在桌面上显示当前日期和时间,主要包括显示当前日期和时间,软件隐藏,软件自启动,更新刷新时间,边框显示和隐藏,软件窗口置顶,透明度设置,关于软件的介绍等基本功能。

(1)钟表设计由C#代码实现

public struct Clock_Style

{

public String ClockName; // 方案内部名称

public String dial_plate_Name; // 表盘文件名称

public String ClockCenterLocation; // 中心点位置,值"center"或"custom",大小写敏感 public PointF ClockCenterPoint; // 默认设置到窗体中心;

public Color TransparentColor; // 透明色

public Color OpacityColor; // 窗体不透明色

// 时针,分针,秒针 长度

public int HourHardLong;

public int MinuteHardLong;

public int SecondHandLong;

// 时针,分针,秒针 颜色

public Color HourHardColor;

public Color MinuteHardColor;

public Color SecondHardColor;

public Color CenterPointColor; // 中心点颜色

public Color DigitalDateColor; // 数字式日期的显示颜色

}

public Clock_Style DefaultClock; // 默认钟表样式

public void InitClockStyle() // 初始化钟表样式

{

XmlDocument XmlDoc = new XmlDocument(); // 通过xml装载xml文档

XmlDoc.Load(Application.StartupPath + "\\Clock.xml");// 从当前文档获取钟表xml文档

XmlNode xn = XmlDoc.SelectSingleNode("ClockStyle");

XmlNodeList xnl = xn.ChildNodes;

foreach (XmlNode xnf in xnl) // 循环构造钟表样式

{

XmlElement xe = (XmlElement)xnf;

if (xe.GetAttribute("DefaultStyle") == "Use")

{

DefaultClock.ClockName = xe.GetAttribute("name");

foreach (XmlNode xn2 in xnf)

{

// 遍历所有子节点 xn2.InnerText;

switch (xn2.Name)

{

case "ClockCenterLocation":

DefaultClock.ClockCenterLocation = xn2.InnerText;

break;

case "ClockCenterPointX":

DefaultClock.ClockCenterPoint.X =Convert.ToSingle(xn2.InnerText); break;

case "ClockCenterPointY":

DefaultClock.ClockCenterPoint.Y = Convert.ToSingle(xn2.InnerText); break;

case "TransparentColor":

DefaultClock.TransparentColor

=System.Drawing.ColorTranslator.FromHtml(xn2.InnerText);

break;

case "OpacityColor":

DefaultClock.OpacityColor =

System.Drawing.ColorTranslator.FromHtml(xn2.InnerText);

break;

case "HourHardLong":

DefaultClock.HourHardLong = Convert.ToInt16(xn2.InnerText);

break;

case "MinuteHardLong":

DefaultClock.MinuteHardLong = Convert.ToInt16(xn2.InnerText);

break;

case "SecondHandLong":

DefaultClock.SecondHandLong = Convert.ToInt16(xn2.InnerText);

break;

桌面时钟

case "HourHardColor":

DefaultClock.HourHardColor =

System.Drawing.ColorTranslator.FromHtml(xn2.InnerText);

break;

case "MinuteHardColor":

DefaultClock.MinuteHardColor =

System.Drawing.ColorTranslator.FromHtml(xn2.InnerText);

break;

case "SecondHardColor":

DefaultClock.SecondHardColor =

System.Drawing.ColorTranslator.FromHtml(xn2.InnerText);

break;

case "CenterPointColor":

DefaultClock.CenterPointColor =

System.Drawing.ColorTranslator.FromHtml(xn2.InnerText);

break;

case "DigitalDateColor":

DefaultClock.DigitalDateColor =

System.Drawing.ColorTranslator.FromHtml(xn2.InnerText);

break;

default:

break;

}

}

}

}

}

运行后的效果如图所示:

图3钟表设计图

(2)隐藏功能实现:

private void 显示隐藏ToolStripMenuItem_Click(object sender, EventArgs e)

{

bool HS;

HS = 显示隐藏ToolStripMenuItem.Checked;

if

(!HS)

{ // 隐藏

timer1.Enabled = false;

刷新ToolStripMenuItem.Enabled = false;

this.Hide();

}

else

{ // 显示

timer1.Enabled = true;

刷新ToolStripMenuItem.Enabled = true;

this.Show();

}

显示隐藏ToolStripMenuItem.Checked = !HS;

}

(3)自启动功能设计

自启动功能主要实现该软件在计算机中安装成功后,可以设置开机自启动。

private void 自启动ToolStripMenuItem_Click(object sender, EventArgs e)

{

自启动ToolStripMenuItem.Checked = !自启动ToolStripMenuItem.Checked;

AutoStartSwitch("MyClock", 自启动ToolStripMenuItem.Checked);

}

(4)刷新功能设计

刷新功能主要实现,当样式修改后,可以刷新下界面进行系统重新装载。

public void 刷新ToolStripMenuItem_Click(object sender, EventArgs e)

{

timer1.Enabled = false;

this.Hide();

InitClockStyle();

//重新装入图片

image = new Bitmap(Application.StartupPath + "\\skin\\" + DefaultClock.ClockName + ".bmp");

this.ClientSize = new Size(image.Width, image.Height);

this.MinimumSize = this.ClientSize;

this.MaximumSize = new Size(image.Width + 20, image.Height + 40);

this.BackgroundImage = image;

EPGraphics = this.CreateGraphics();

EPGraphics.ResetTransform();

//重新设置窗体透明色

this.BackColor = DefaultClock.TransparentColor;

篇四:桌面时钟设计与实现

桌面时钟设计与实现

成员:李睿江秀伟许艺韬

专业班级 :通信11401

实践日期: 2014年月6日-2014年1月17日

一、综合训练目的与要求

本次面向对象编程实践是学习了C++面向对象程序设计之后进行的必要的实践性环节。由于各种原因,信息管理与信息系统专业是在学习了一年之后才安排了这个实习,因为就在考试周,任务有点繁重。本课综合训练的目的和任务:

1. 重温和加深对 C++面向对象编程语言的基本知识的理解和掌握; 2. 掌握 C++语言编程和程序调试的基本技能;

3. 利用网络资源,自己学习MFC或者Qt等相关软件对页面进行布局;

4. 学会与他人协作进行小软件的设计,遇到分歧时,能够处理得当,共同完成实践要求。

二、综合训练任务

(1)需求分析

随着计算机的普及,人们对计算机的要求远不是当初的进行大型数据运算和复杂数据分析了,人与人之间的日常交流,交易等等也都通过计算机来完成了。因为是“日常用品”,当然想让它看起来舒服一些了,因此,人们对电脑桌面美观实用的需求也达到了一定的程度,现在的生活节奏也快了,都希望在最短的时间内完成最多的事,获取最大的信息量。人们为了在用计算机工作的同时,随时了解时间,不错过自己的行程安排。都会在电脑桌面安装一个显示时间日历的小工具,所以桌面时钟的需求还是挺大的。

(2)任务

●桌面时钟是日常小工具,所以良好的人机界面应该做到

●采用面向对象思想设计实现各种类

●因为涉及界面,所以要运用界面设计,我们选择采用QT做界面设计

●能够通过自学习运用自带函数来实现功能

●在实习期间,完成自己负责部分代码的编写和调试,并完成规范的实习论文

三、总体设计

(1)主要模块划分

图 1 主要模块

(2)模块说明

圆盘时钟:指的是圆盘时钟,也就是说,有时针分针秒针显示的时钟,这一模块中,需要绘制各个时针。

电子时钟:我们把它定义为向电子表那样显示的时钟部分,每秒更新一次,并显示出来。 日历:日历就是显示当前日历,并能查询前后的日历。

整体布局:整体布局时,分为水平布局和垂直布局,水平布局用来布局圆盘时钟和电子时钟并行排列,组合之后,和日历的布局用垂直布局完成。圆盘时钟和电子时钟的单布局也是用垂直布局完成的。

四、详细设计说明

(1)类图

(2)设计说明

圆盘时钟:指的是圆盘时钟,也就是说,有时针分针秒针显示的时钟,这一模块中,需要绘制各个时针,有我的同伴完成,具体实现过程我也限于了解,是先把默认原点坐标移动到中心处,然后分别画刷填充等,定义好指针的形状颜色后,分别画出时针分针秒针,读取当前时间,将各指针每段时间应该旋转的角度计算并设定好,就构成了圆盘时钟了。

电子时钟:我们把它定义为向电子表那样显示的时钟部分,每秒更新一次,并显示出来。默认状态下,显示的数字位数(包括他们之间的冒号)为5为,这时候,显示的只有小时和分钟。所以要先将它改为8位的格式,让它把小时、分钟、秒钟都显示出来。

日历:日历就是显示当前日历,并能查询前后的日历。首先要为日历创建一个表格布局,并将其设置成布局尺寸不变,就是说,日历的布局不会随着窗口的拉大而改变大小。用setGridVisible(true)将表格线设置为显示,这样就能在日历版面看到网格线,比较适合大家的审美习惯。把日历表添加到表格布局中,这就算初步完成了日历表格的显示了。

当然了,总体模块除了以上三个主要部分,还有对整体的布局也是不可或缺的。因此,还有一个重要的模块便是整体布局,整体布局时,分为水平布局和垂直布局,水平布局用来布局圆盘时钟和电子时钟并行排列,组合之后,和日历的布局用垂直布局完成。圆盘时钟和电子时钟的单布局也是用垂直布局完成的。

(3)具体类说明

/*因为前面已经提到过同伴负责的部分,在这一块就不做说明*/

①calender类

Calender类用来实现日历的显示,继承了QT里的基类QWidget,定义了一个public成员变量calender(),用来声明日历的构造函数。Private成员变量createPreviewGroupBox() 声明日历框中的函数。设计的两个函数:

1.calender(),设计日历类,实现创建日历表格、创建表格布局对象,还有一些基本设置。

2.createPreviewGroupBox(),设计日历表格框里的布局,将日历导入表格布局中,再将表格布局添加到窗口部件“日历查询”分组框中。

②mainclock类

Mainclock类用来实现总体布局,将圆盘时钟、电子时钟、日历有机结合起来,使得人机界面友好美观。在继承基类情况下,定义了一个public成员变量mainclock.在源文件中进行详细设计说明。首先是窗口类,设计窗口的标题,用库函数中的Qdate获取当前时间,以便程序进行。然后,创建圆盘时钟对象,对圆盘时钟在总布局中的位置怎么显示进行具体设置,并设置分组框标题。其次,设置当前日期(年月日),创建电子时钟对象,电子时钟和当前日期设为垂直布局,他们组合后,与圆盘时钟的布局为水平布局。最后,创建日历对象,将日历添加到布局当中。详细设计见代码。这就算完成了总体布局了。

③main类

主类,用来将所有的类组合起来,为总程序服务,控制整个桌面时钟的运行。

#include

#include

#include

#include

#include

#define pi 3.1415926

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, intnCmdShow)

{

MSG Message;

WNDCLASS WndClass;

WndClass.cbClsExtra=0;

WndClass.cbWndExtra=0;

WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));

WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);

WndClass.hIcon=LoadIcon(NULL,"END");

WndClass.hInstance=hInstance;

WndClass.lpfnWndProc=WndProc;

WndClass.lpszClassName="WinFill";

WndClass.lpszMenuName=NULL;

WndClass.style=CS_HREDRAW|CS_VREDRAW;

RegisterClass(&WndClass);

HWND hWnd;

hWnd=CreateWindow("WinFill", //生成窗口

"时钟 ",

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,

0,

CW_USEDEFAULT,

0,

NULL,

NULL,

hInstance,

NULL);

ShowWindow(hWnd,nCmdShow); //显示窗口

UpdateWindow(hWnd);

while(GetMessage(&Message,0,0,0)) //消息循环

{

TranslateMessage(&Message);

DispatchMessage(&Message);

}

returnMessage.wParam;

}

int m=1,n=60;

intp,q=12;

//VOID WINAPI GetLocalTime(LPSYSTEMTIME lpSystemTime); //获取当前系统时间函

LRESULT CALLBACK WndProc(HWND hwnd,UINTmessage,WPARAMwParam,LPARAMlParam) {

HDC hdc;

PAINTSTRUCT ps;

SYSTEMTIME lpSystemTime;

HPEN hpen,HourPen,MinutePen,SecondPen;

switch(message)

{

case WM_PAINT:

GetLocalTime(&lpSystemTime);

hdc=BeginPaint(hwnd,&ps);

hpen=CreatePen(PS_SOLID,4,RGB(0,255,255));

SelectObject(hdc,hpen);

Ellipse(hdc,200,200,400,400);

Ellipse(hdc,295,295,305,305);

doubleRad,RadS;

//RadS=2*pi*m/n;

hpen=CreatePen(PS_SOLID,3,RGB(255,0,0));

SelectObject(hdc,hpen);

for(p=0;p<=q;p++)

{

Rad=2*pi*p/q;

MoveToEx(hdc,(int)(300+100*sin(Rad)),(int)(300-100*cos(Rad)),NULL);

LineTo(hdc,(int)(300+80*sin(Rad)),(int)(300-80*cos(Rad)));

}

篇五:职称计算机真题win7:在桌面上的时钟?a href="http://www.zw2.cn/zhuanti/guanyuluzuowen/" target="_blank" class="keylink">路较允救绽」ぞ摺?/font>

考无忧全国职称计算机考试试题解析系列(Windows7模块)

题目要求:

在桌面上的时钟下方显示"日历"小工具。

操作步骤:

第1步:方法1:在“时钟”上点击鼠标右键,选择“添加小工具”。方法2:在“桌面”上点击鼠标右键,选择:小工具

第2步:方法1:双击“日历”。方法2:在“日历”上点击鼠标右键,选择“添加”。方法3:在红框处点击鼠标左键,拖动到黑框。

第3步:点击“关闭”按钮

第4步:答题完成

以上内容由考无忧职称计算机考试官网提供:www.k51.com.cn

体裁作文