用vs2005编写的《闹钟》程序
手机闹钟代码
手机闹钟代码介绍手机闹钟代码是一种在手机上实现闹钟功能的编程代码。
该代码可以通过手机应用程序或者手机操作系统的设置进行实现。
手机闹钟功能对于提醒用户特定时间或者进行定时提醒非常有用。
本文档将介绍实现手机闹钟功能的基本步骤和代码示例。
实现步骤1.获取当前时间:首先,代码需要获取当前的手机系统时间。
这个步骤可以通过调用系统提供的时间函数来实现。
获取当前时间的代码示例如下:import timecurrent_time = time.strftime("%H:%M:%S"。
___())print("当前时间:"。
current_time)2.设置闹钟时间:接下来,代码需要确定用户希望设置的闹钟时间。
用户可以通过手机应用程序或者手机操作系统的设置功能来设置闹钟时间。
设置闹钟时间的代码示例如下:alarm_time = input("请输入闹钟时间(格式:")print("闹钟时间已设置为:"。
alarm_time)3.判断闹钟时间:代码需要根据当前时间和设置的闹钟时间来判断是否触发闹钟功能。
可以使用条件判断语句来比较当前时间和闹钟时间。
判断闹钟时间的代码示例如下:if current_time == alarm_time:print("时间到!该起床了!")___:print("还没有到闹钟时间。
")4.重复步骤:为了让闹钟功能在设定的时间内一直运行,可以使用循环语句来重复执行以上步骤。
当闹钟时间到达时,可以选择显示提醒信息、播放声音或者触发其他任何需要的操作。
5.停止闹钟:用户可以选择手动停止闹钟功能。
可以通过手机应用程序或者手机操作系统的设置功能来停止闹钟。
停止闹钟的代码示例如下:_alarm = input("输入任意字符停止闹钟:")print("闹钟已停止!")总结通过编程实现手机闹钟功能可以很方便地提醒用户在指定时间进行特定活动。
闹钟程序
void delay1ms(int i)//1毫秒延时{int j,k;while(i--)for(j=76;j>1;j--);for(k=29;k>1;k--);}void delaynus(unsigned char n) //延时若干微秒{unsigned char i;for(i=0;i<n;i++);}/***********蜂鸣器模块************/sbit beep=P3^7; //位定义,定义P.6位fmp void dely500(void){unsigned char i;for(i=250;i>0;i--){_nop_();}}void baojing(unsigned char n){unsigned char x,i;while(n--){for(i=0;i<5;i++){for(x=0;x<200;x++){beep=~beep;dely500();}}for(i=0;i<3;i++){for(x=0;x<200;x++){beep=~beep;dely500();dely500();}}}}void display_houra(unsigned char x) //闹钟小时部分显示{unsigned char i,j;i=x/10;j=x%10;Write_Address(0x44);Write_Date(digit[i]);Write_Date(digit[j]);}void display_minutea(unsigned char x)//闹钟分钟部分显示{unsigned char i,j;i=x/10;j=x%10;Write_Address(0x47);Write_Date(digit[i]);Write_Date(digit[j]);}void main(){IE=0X82; //打开定时中断TMOD=0X01; //选择定时器0工作在方式1TR0=0; //启动定时器0IntDS1302(); //初始化DS1302delay1ms(1);Lcd_Int(); //1602液晶初始化led=0; //打开LCD的背光电源delay1ms(2);displaystar(); //显示欢迎界面displaymainpart(); //显示主要部分(不变化)while(1){display_Time( );Set( );if(ADD==0){Write_com(0x01);delay1ms(5);Temperature();Write_com(0x01);displaymainpart();}if((hours==houra)&&(minutes==minutea)&&(seconds==0)){if(alarmmode==1){Write_com(0x01);delay1ms(5);Write_Address(0x03);Write_Date('T');Write_Date('I');Write_Date('M');Write_Date('E');Write_Address(0x08);Write_Date('U');Write_Date('P');Write_Date('!');delay1ms(5);while(1){baojing(1);if(CANL==0){Write_com(0x01);delay1ms(5);displaymainpart();break;}}}}}}/***********蜂鸣器模块************/void delay1ms(int i)//1毫秒延时{int j,k;while(i--)for(j=76;j>1;j--);for(k=29;k>1;k--);}sbit beep=P3^7; //位定义,定义P.6位fmpvoid dely500(void){unsigned char i;for(i=250;i>0;i--){_nop_();}}void baojing(unsigned char n){unsigned char x,i;while(n--){for(i=0;i<5;i++){for(x=0;x<200;x++){beep=~beep;dely500();}}for(i=0;i<3;i++){for(x=0;x<200;x++){beep=~beep;dely500();dely500();}}}}void display_houra(unsigned char x) //闹钟小时部分显示{unsigned char i,j;i=x/10;j=x%10;GotoXY(4, 1);LCD_Write(LCD_DATA, digit[i]);LCD_Write(LCD_DATA, digit[j]);}void display_minutea(unsigned char x)//闹钟分钟部分显示{unsigned char i,j;i=x/10;j=x%10;GotoXY(4, 1);LCD_Write(LCD_DATA, digit[i]);LCD_Write(LCD_DATA, digit[j]);}void alarmhourset(void) //闹钟小时调整{unsigned char value;value=houra;while(1){if(Up==0){delay1ms(20);if(Up==0){LCD_Write(LCD_COMMAND, 0x0c);delay1ms(5);value++;if(value>23) value=0;while(Up==0);}}if(Down==0){delay1ms(20);if(Down==0){value--;if(value==0) value=23;while(Down==0);}houra=value;display_houra(houra);GotoXY(5, 1);delay1ms(5);LCD_SetDisplay(0x07);delay1ms(5);if(Out==0){delay1ms(500);break;}}}void alarmminuteset(void) //闹钟分钟调整{while(1){if(Up==0){delay1ms(20);if(Up==0){minutea++;if(minutea>59) minutea=0;while(Up==0) ;}}if(Down==0){delay1ms(20);if(Down==0){minutea--;if(minutea==0) minutea=59;while(Down==0) ;}}display_minutea(minutea);GotoXY(8, 1);delay1ms(5);LCD_SetDisplay(0x07);delay1ms(5);if(Out==0)delay1ms(500);break;}}}void alarmswitchset(void){while(1){if(Up==0){delay1ms(100);if(Up==0){alarmmode=1;GotoXY(12, 1);Print("ON");}}if(Down==0){alarmmode=0;GotoXY(12, 1);Print("OFF");}if(Out==0){delay1ms(500);break;}}}/**************** 设置模块******************/ void Set_zhi (void){if(Set==0){delay1ms(10);if(Set==0){GotoXY(0, 1);Print("T") ;LCD_Write(LCD_COMMAND, 0x0f);delay1ms(1000);LCD_Write(LCD_COMMAND, 0x0c);while(1){keydone();if(Down==0){delay1ms(20);if(Down==0){LCD_Write(LCD_CLEAR_SCREEN, 0x01);//清屏delay1ms(5);GotoXY(2, 0);Print("ALARM SET");GotoXY(6, 1);Print("-");display_houra(houra);display_minutea(minutea);if(alarmmode==1){GotoXY(12, 1);Print("ON ");}if(alarmmode==0){GotoXY(12, 1);Print("OFF");}while(1){if(Set==0){delay1ms(100);if(Set==0){amode++;switch(amode){case(1):{ GotoXY(5, 1);delay1ms(5);LCD_SetDisplay(0x07);delay1ms(5);alarmhourset();LCD_Write(LCD_COMMAND, 0x0c);delay1ms(500);} break;case(2):{ GotoXY(8, 1);delay1ms(5);LCD_SetDisplay(0x07);delay1ms(5);alarmminuteset();LCD_Write(LCD_COMMAND, 0x0c);delay1ms(500);} break;case(3):{ GotoXY(12, 1);delay1ms(5);LCD_SetDisplay(0x07);delay1ms(5);alarmswitchset();LCD_Write(LCD_COMMAND, 0x0c);delay1ms(500);} break;}if(amode==4) amode=0;}}if(Out==0){LCD_Write(LCD_CLEAR_SCREEN,0x01);delay1ms(5);show_time() ;break;}}}}if(Out==0){GotoXY(0, 1);Print(" ");LCD_Write(LCD_COMMAND, 0x0c);break;}}}}}void main (){flag=1; //时钟停止标志LCD_Initial(); //液晶初始化Init_DS18B20( ) ; //DS18B20初始化Initial_DS1302(); //时钟芯片初始化up_flag=0;down_flag=0;done=0; //进入默认液晶显示//wireless_1=0;//wireless_2=0;//wireless_3=0;//wireless_4=0P3=0;displaystar(); //显示欢迎界面while(1){while(done==1)keydone(); //进入调整模式while(done==0){show_time(); //液晶显示数据Set_zhi( );if((hide_hour==houra)&&(hide_min==minutea)&&(hide_sec==0)){if(alarmmode==1){LCD_Write(LCD_CLEAR_SCREEN, 0x01);//清屏delay1ms(5);GotoXY(3, 0);Print("TTME");GotoXY(8, 0);Print("UP!");delay1ms(5);while(1){baojing(1);if(Out==0){LCD_Write(LCD_CLEAR_SCREEN, 0x01);//清屏delay1ms(5);show_time();break;}}}}//flag=0;Setkey(); //扫描各功能键}}}。
一个简单的闹钟程序
头文件:// stdafx.h : include file for standard system include files,// or project specific include files that are used frequently, but// are changed infrequently//#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDE D_)#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers #include <windows.h>// TODO: reference additional headers your program requires here//{{AFX_INSERT_LOCA TION}}// Microsoft V isual C++ will insert additional declarations immediately before the previous line.#endif// !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED _)源文件:#include "stdafx.h"#include "mmsystem.h"POINTdy[60]={200,18,218,20,234,22,252,28,270,34,288,42,304,51,318,62,334,78,344,90,356,108,362,1 20,368,135,373,152,378,175,380,200,379,221,375,242,370,260,364,276,356,289,346,306,336,318,320,334,306,345,290,356,272,366,25 4,373,236,377,220,379,200,380,182,379,166,377,148,373,130,366,112,358,96,347,82,336,66,320,54,306,44,289,36,276,30,260,23 ,240,21,219,20,200,21,177,24,158,29,141,35,126,44,112,54,94,66,80,80,66,96,53,110,44,130,33,146,27,164,22,180,2POINTzy[60]={200,39,216,40,231,42,247,46,263,52,279,60,293,69,305,78,319,92,329,102,339,118,345, 128,350,143,355,157,360,178,360,200,359,218,357,239,352,252,346,268,342,280,332,294,321,306,309,319,295,331,280,340,263,348,24 8,353,232,357,218,359,200,360,184,360,170,359,154,355,138,348,123,341,110,332,96,323,82,307,71,296,61,282,55,269,48,254,4 2,236,40,218,40,200,41,180,45,162,49,148,53,136,58,122,68,106,78,93,91,81,106,70,120,60,136,52,152,46,168,42,182 ,40};POINTxy[60]={200,60,214,61,227,63,241,66,253,70,268,77,280,84,292,94,304,106,312,116,320,128,32 4,138,330,148,334,160,338,178,340,200,339,214,336,232,332,246,326,259,320,270,314,282,306,290,294,304,284,312,270,322,254,330,24 2,334,228,338,216,340,200,340,186,340,174,338,160,334,146,330,132,324,120,316,110,308,96,294,86,284,78,272,72,260,68,248, 62,232,60,216,60,200,61,182,62,167,66,154,72,142,78,130,86,118,94,106,104,96,116,86,128,78,144,70,158,64,170,62,1 82,60};static SYSTEMTIME sys;void fenzheng(HDC hdc);void shizheng(HDC hdc);void miaozheng(HDC hdc);void huakj(HDC hdc);void shuzi(HDC hdc);void CALLBACK timer(HWND hwnd,UINT message,UINT timerid,DWORD timer);void CALLBACK yidong(HWND hwnd,UINT message,UINT timerid,DWORD timer); LRESULT CALLBACK wndproc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR szCmdLine,int iCmdShow)// TODO: Place code here.HWND hwnd;MSG msg;static TCHAR szappname[]=TEXT("聊天工具");WNDCLASS wndclass;wndclass.cbClsExtra=0;wndclass.cbWndExtra=0;wndclass.style=CS_VREDRA W|CS_HREDRAW;wndclass.lpfnWndProc=wndproc;wndclass.hInstance=hInstance;wndclass.hIcon=LoadIcon(NULL,IDI_APPLICA TION);wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);wndclass.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);wndclass.lpszClassName=szappname;wndclass.lpszMenuName=NULL;RegisterClass(&wndclass);hwnd=CreateWindow(szappname,TEXT("闹钟加时间表"),WS_OVERLAPPEDWINDOW,500,100,400,500,NULL,NULL,hInstance,NULL);ShowWindow(hwnd,iCmdShow);UpdateWindow(hwnd);while(GetMessage(&msg,NULL,NULL,NULL)){TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam;}LRESULT CALLBACK wndproc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){HWND hwndedit,hwndstatic;static HINSTANCE hInstance;HDC hdc;PAINTSTRUCT ps;switch(message){case WM_CREA TE:{hwndstatic=CreateWindow(TEXT("STA TIC"),TEXT("北京时间:"),WS_CHILD|WS_VISIBLE,100,400,160,20,hwnd,(HMENU)1,hInstance,NULL);hwndedit=CreateWindow(TEXT("EDIT"),TEXT(""),WS_CHILD|WS_VISIBLE|ES_READ ONLY,190,400,140,20,hwnd,(HMENU)2,hInstance,NULL);SetTimer(hwnd,0,1000,timer);SetTimer(hwnd,1,1000,yidong);return 0;}case WM_PAINT:{hdc=BeginPaint(hwnd,&ps);huakj(hdc);EndPaint(hwnd,&ps);return 0;}case WM_DESTROY:{PostQuitMessage(0);return 0;}}return DefWindowProc(hwnd,message,wParam,lParam);}void huakj(HDC hdc){HPEN hPen,hPen1;HBRUSH hBrush,hBrush1,hBrush2;hBrush=CreateSolidBrush(RGB(0,0,255));hBrush1=CreateSolidBrush(RGB(0,255,0));hBrush2=CreateSolidBrush(RGB(255,0,0));hPen=CreatePen(PS_SOLID,0,RGB(255,0,0));hPen1=CreatePen(PS_SOLID,0,RGB(0,0,0));SelectObject(hdc,hBrush);SelectObject(hdc,hPen);Ellipse(hdc,20,20,380,380);for(int i=0;i<60;i++){SelectObject(hdc,hBrush);Ellipse(hdc,dy[i].x-10,dy[i].y-10,dy[i].x+10,dy[i].y+10);if(i%5==0){SelectObject(hdc,hBrush2);Ellipse(hdc,dy[i].x-5,dy[i].y-5,dy[i].x+5,dy[i].y+5);Ellipse(hdc,190,190,208,208);}else{SelectObject(hdc,hBrush1);Ellipse(hdc,dy[i].x-3,dy[i].y-3,dy[i].x+3,dy[i].y+3);}}}void CALLBACK timer(HWND hwnd,UINT message,UINT timerid,DWORD timer){GetLocalTime(&sys);TCHAR time[256];wsprintf(time,"%02d-%02d-%02d %02d:%02d:%02d",sys.wY ear,sys.wMonth,sys.wDay,sys.wHo ur,sys.wMinute,sys.wSecond);SetDlgItemText(hwnd,2,time);}void CALLBACK yidong(HWND hwnd,UINT message,UINT timerid,DWORD timer){HDC hdc;HBRUSH hBrush,hBrush1,hBrush2;hdc=GetDC(hwnd);huakj(hdc);hBrush=CreateSolidBrush(RGB(0,0,255));hBrush1=CreateSolidBrush(RGB(255,0,0));hBrush2=CreateSolidBrush(RGB(0,0,0));SelectObject(hdc,hBrush);Ellipse(hdc,20,20,380,380);SelectObject(hdc,hBrush2);Ellipse(hdc,180,180,218,218);SelectObject(hdc,hBrush1);miaozheng(hdc);fenzheng(hdc);shuzi(hdc);shizheng(hdc);ReleaseDC(hwnd,hdc);}void miaozheng(HDC hdc){static int i;Ellipse(hdc,190,190,208,208);MoveToEx(hdc,200,200,NULL);i=sys.wSecond;++i%=60;LineTo(hdc,dy[i].x,dy[i].y);Ellipse(hdc,dy[i].x-10,dy[i].y-10,dy[i].x+10,dy[i].y+10);}void fenzheng(HDC hdc){for(int i=0;i<60;i++){static int j;Ellipse(hdc,zy[i].x-2,zy[i].y-2,zy[i].x+2,zy[i].y+2);j=sys.wMinute;MoveToEx(hdc,200,200,NULL);LineTo(hdc,zy[j].x,zy[j].y);Rectangle(hdc,zy[j].x-5,zy[j].y-5,zy[j].x+5,zy[j].y+5);if(sys.wSecond==0){++j%=60;//PlaySound(TEXT("1/xuanzhuan.wav"),NULL,SND_FILENAME|SND_ASYNC); }}}void shuzi(HDC hdc){SetBkColor(hdc,RGB(0,0,255));SetTextColor(hdc,RGB(255,0,0));TextOut(hdc,344,190,TEXT("3"),1);TextOut(hdc,195,340,TEXT("6"),1);TextOut(hdc,50,192,TEXT("9"),1);TextOut(hdc,193,46,TEXT("12"),2);}void shizheng(HDC hdc){HBRUSH hBrush;hBrush=CreateSolidBrush(RGB(255,255,255));SelectObject(hdc,hBrush);static int i,j=0;i=(sys.wHour-12)*5;//Ellipse(hdc,60,60,340,340);for(int k=0;k<60;k++){Ellipse(hdc,xy[k].x-1,xy[k].y-1,xy[k].x+2,xy[k].y+2);}if(sys.wMinute==0){j=i;}if(sys.wMinute>=12){j=i+1;}if(sys.wMinute>=24){j=i+2;}if(sys.wMinute>=36){j=i+3;}if(sys.wMinute>=48){j=i+4;}MoveToEx(hdc,200,200,NULL); LineTo(hdc,xy[j].x,xy[j].y);}。
C_Sharp_2005简单操作例子
C# 2005 简单操作小例子一、新建应用程序项目1、打开VS 2005后,文件》新建》项目》Visual C#》Windows应用程序,如下图所示。
例如:名称:WinApp_CX;2、建立一个工具菜单,在“工具栏”选“MenuStrip”点击一下Form1,依据需要建立菜单名称。
如下图。
3、菜单命名。
如“退出(E)”菜单,默认“退出EToolStripMenuItem”,我们进行重新命名,“Exit_ToolStripMenuItem”4、退出程序事件代码:在关闭程序时,提示信息,让用户确认是否退出程序。
我们在FromClosing 事件已经使用确认动作,因此,在“退出”菜单中的代码就不需再次使用确认,如果使用的话也可,只是经过两确认。
详细代码:private void Exit_ToolStripMenuItem_Click(object sender, EventArgs e){ // 退出程序// if (DialogResult.OK == MessageBox.Show("你确定要关闭应用程序吗?", "关闭提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)){Application.Exit();}}private void Form1_FormClosing(object sender, FormClosingEventArgs e){ // 退出程序// if (DialogResult.OK == MessageBox.Show("你确定要关闭应用程序吗?", "关闭提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question))if(MessageBox.Show("是否要退出本系统?", "关闭提示", MessageBoxButtons.YesNo, rmation) == DialogResult.Yes){Application.Exit();}}。
Visual C++基于对话框的MFC应用程序---简单的时钟实例实验一
1.1 创建对话框的应用程序1.使用AppWizard创建应用程序框架首先,创建一个对话框应用程序,其工程文件名为:ch1.dsp。
具体步骤如下:(1)启动Visual C++ 6.0,在File菜单中选择new菜单项;(2)在new对话框的Project页中选择 MFC AppWizard(exe)选项,在Project name框中输入:ch1,并在Location 框中指定希望的目录路径,编译系统生成的各种文件将会存放在该目录下,然后点击[OK]按钮(3)MFC AppWizard-Step1 中选择Dialog based 选项,MFC AppWizard-Step2 到MFC AppWizard-Step4中取默认选项;(4)进入VC对话框设计界面后,选中 [TODO:在这里设置对话控制。
]静态框并按del键删除该框,选中[取消]按钮并按del键删除该按钮; (5)将[确认]按钮拖曳到对话框的下方中间。
生成的对话框设计窗口(如图1-1所示)。
图1-12.向类中添加系统消息响应函数Windows应用程序的采用事件触发、消息驱动机制和大量的消息响应函数构成了应用程序的主体。
本示例需要用到两个消息响应函数OnCtlColor()和OnTimer(),前者响应窗口消息:WM_CTLCOLOR,后者响应窗口消息:WM_TIMER。
关于这两个函数的功能和用法暂且略过,留待后面小节再叙。
这里先介绍响应函数加载的方法。
在CCh1Dlg类中添加OnCtlColor( )函数的操作方法如下:(1)打开类向导(MFC ClassWizard)窗口,选择Message Maps 页;(2)选择工程、类和对象标识。
在Message Maps页的Project、Class name、Object Ids框中分别选择:ch1、CCh1Dlg、CCh1Dlg;(3)添加响应函数。
在Message Maps页的Messages框中选中并双击窗口消息:WM_CTLCOLOR,此时,消息WM_CTLCOLOR 的响应函数OnCtlColor( )被添加到类向导底部Member Functions框中。
在VS2005上编写、运行、调试C语言程序
在VS2005上编写、运行、调试C语言程序目录前言:关于C/C++编译器的简单介绍.............................- 2 - 1.编辑、编译与运行.........................................- 3 - 2.调试技术.................................................- 8 - 设置断点.................................................- 9 - 调试运行.................................................- 9 - 快速监视................................................- 10 - 3.小结....................................................- 13 - 附:VS2005快捷键大全期.....................................- 13 -前言:关于C/C++编译器的简单介绍Turbo C 2.0发布于1989年,对历史并不太长而发展却神速的IT业来说,确实是古董级的软件了。
但它几乎是最后一个专门为C语言设计的开发环境,具备学习C语言的一切条件,没有任何非C语言的东西干扰初学者,所以一直被各大高校的C语言课堂采用。
C++的发展使C++的开发环境大行其道。
因为C++几乎完全兼容C语言,两者无论编译器还是编辑器、调试器都可以用同一套程序实现,而且C++共享C的库函数,很多软件还是用两者混合编程实现,所以基本所有的C++环境都同时支持C语言。
Dev-c++是Windows平台下C++ IDE开发环境,属于共享软件。
界面亲切优雅,size也不大,其后续版有中文语言支持,无需汉化。
c语言课程设计闹钟
c语言课程设计闹钟一、教学目标本课程旨在通过学习C语言编程,使学生掌握编写简单的闹钟程序的基本技能。
具体目标如下:1.理解C语言的基本语法和数据结构。
2.掌握函数的定义和调用。
3.了解操作系统中时间相关的函数和概念。
4.能够使用C语言编写简单的程序。
5.能够通过编程实现闹钟的基本功能,如设定时间、响起闹铃等。
6.能够对程序进行调试和优化。
情感态度价值观目标:1.培养学生的逻辑思维能力和解决问题的能力。
2.培养学生对编程和计算机科学的兴趣。
3.培养学生遵守时间和纪律的良好习惯。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数的定义和调用,以及操作系统中时间相关的函数和概念。
具体安排如下:1.C语言的基本语法和数据结构(2课时)2.函数的定义和调用(2课时)3.闹钟程序的设计和实现(4课时)4.程序调试和优化(2课时)三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:用于讲解C语言的基本语法、数据结构和函数的定义和调用。
2.案例分析法:通过分析实际案例,使学生理解和掌握闹钟程序的设计和实现。
3.实验法:让学生通过动手实践,加深对C语言编程的理解和掌握。
四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用《C程序设计语言》作为主教材,辅助以相关参考书。
2.多媒体资料:提供相关的教学视频和PPT,帮助学生更好地理解和掌握知识。
3.实验设备:提供计算机和相关的编程环境,让学生能够进行实际的编程实践。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以保证评估的客观性和公正性。
1.平时表现(20%):通过课堂参与、提问和小组讨论等方式评估学生的学习态度和参与程度。
2.作业(30%):布置相关的编程作业,评估学生对课程内容的掌握程度和编程能力。
3.考试(50%):期末进行闭卷考试,评估学生对课程知识的全面理解和应用能力。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节顺序进行教学,确保学生系统地掌握C语言编程的知识。
闹钟提醒的程序设计及代码示例
闹钟提醒的程序设计及代码示例闹钟提醒是人们日常生活中常用的功能之一,它可以帮助我们准时起床、提醒重要事件等。
在计算机编程中,我们可以通过程序设计实现一个闹钟提醒系统。
下面,将介绍闹钟提醒程序的设计原理、流程以及代码示例。
一、程序设计原理闹钟提醒程序的设计原理主要包括以下几个步骤:1. 用户输入设定的闹钟时间;2. 程序获取当前时间;3. 比较当前时间和设定的闹钟时间;4. 如果当前时间等于设定的闹钟时间,则触发提醒;5. 如果当前时间不等于设定的闹钟时间,则等待一段时间后重新执行第2步。
二、程序设计流程根据上述原理,我们可以设计出如下的闹钟提醒程序流程:1. 用户输入设定的闹钟时间,并保存到变量alarm_time中;2. 进入循环,不断执行以下步骤:1) 获取当前时间,并保存到变量current_time中;2) 比较current_time和alarm_time;3) 如果current_time等于alarm_time,则触发提醒,提示用户;4) 如果current_time不等于alarm_time,则等待一段时间后再次执行循环。
三、代码示例下面是一个使用Python语言编写的闹钟提醒程序代码示例:```pythonimport datetimeimport timedef alarm_clock(alarm_time):while True:current_time = datetime.datetime.now().strftime("%H:%M")if current_time == alarm_time:print("时间到了!该起床啦!")breakelse:print("当前时间:", current_time, "闹钟时间:", alarm_time)time.sleep(60) # 每隔60秒检查一次alarm_time = input("请输入设定的闹钟时间(如08:00):")alarm_clock(alarm_time)```在这个示例代码中,我们使用了Python内置的`datetime`和`time`模块来获取当前时间和控制程序等待的时间。
vs2005制作安装程序
本演练演示为启动记事本的 Windows 应用程序创建一个安装程序的过程。
在本演练中,您将首先创建一个 Windows 应用程序,然后创建一个安装程序;以便在安装过程中设置快捷方式和文件关联、添加注册表项、显示自定义对话框以及检查 Internet Explorer 的版本。
注意创建自己的安装程序时,不一定需要执行下面的所有步骤。
本演练的目的是介绍部署中可能会用到的一些可选功能。
若只是创建一个基本的安装程序,则只需完成此过程中的前四个部分。
创建 Windows 应用程序1.在“文件”菜单上指向“新建”,然后选择“项目”。
2.在“新建项目”对话框中,选择“项目类型”窗格中的“VisualBasic 项目”,然后选择“模板”窗格中的“Windows 应用程序”。
在“名称”框中,键入“我的记事本”。
3.单击“确定”关闭对话框。
项目即被添加到解决方案资源管理器中,并且打开 Windows 窗体设计器。
4.在“工具箱”中选择“Windows 窗体”选项卡,并将“按钮”控件拖到窗体中。
5.双击 Button 控件为该按钮添加事件处理程序。
在事件处理程序中添加下面的代码:Shell("Notepad.exe", AppWinStyle.NormalFocus)这将启动 Notepad.exe 并将焦点对准它。
6.在“生成”菜单上,选择“生成我的记事本”该应用程序。
创建部署项目1.在“文件”菜单上指向“添加项目”,然后选择“新建项目”。
2.在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。
在“名称”框中,键入“我的记事本安装程序”。
3.单击“确定”关闭对话框。
项目被添加到解决方案资源管理器中,并且文件系统编辑器打开。
4.在解决方案资源管理器中选择“我的记事本安装程序”项目。
在“属性”窗口中,选择ProductName属性,并键入“我的记事本”。
VB小闹钟
VB小闹钟今天,我们将制作可以实现“计划任务管理器”功能的应用程序。
当到达指定时间时,程序能够自动出现提示信息和播放背景音乐。
程序运行结果如图所示。
运行结果技术要点●Time函数●使用MMControl控件●使用CommonDialog控件实现过程■新建项目打开Visual ,选择“新建项目”,在项目类型窗口中选择“Visual Basic项目”,在模板窗口中选择“Windows应用程序”,在名称域中输入“SimpleClock”,然后选择保存路径。
单击“确认”。
■添加控件向窗体添加三个Label控件,三个TextBox控件,三个Button控件,一个MMControl 控件、一个CommonDialog控件和一个Timer控件。
■设置属性根据运行时的界面,将Label控件和Button控件的Text属性改为和界面一致。
其余见下表。
窗体各控件的属性值■添加代码Private Sub Button1_Click(ByVal eventSender As System.Object, ByVal eventArgs AsSystem.EventArgs) Handles Button1.ClickMe.WindowState = System.Windows.Forms.FormWindowState.MinimizedEnd SubPrivate Sub Button3_Click(ByVal eventSender As System.Object, ByVal eventArgs AsSystem.EventArgs) Handles Button3.Click'打开要播放的声音文件AXCommonDialog1.ShowOpen()Text3.Text = AXCommonDialog1.FileNameEnd SubPrivate Sub Timer1_Tick(ByVal eventSender As System.Object, ByVal eventArgs AsSystem.EventArgs) Handles Timer1.TickDim temptime As String'将前12个小时和后12个小时分开If Hour(TimeOfDay) > 12 Thentemptime = VB.Left(CStr(TimeOfDay), 5)Elsetemptime = VB.Left(CStr(TimeOfDay), 4)End If'如果时间相同,则显示提示信息If Text1.Text = temptime ThenMMControl1.FileName = Text3.Textmand = "open"mand = "play"Timer1.Enabled = FalseMsgBox(Text2.Text, , "小闹钟")End IfEnd Sub■运行程序单击菜单“调试|启动”或单击图标运行程序。
用 C 语言编写一个闹钟程序
要用C 语言编写一个闹钟程序,你需要按照以下步骤进行:
包含必要的头文件:首先,你需要包含<time.h> 和<unistd.h> 两个头文件。
这两个头文件将为你提供时间和睡眠函数,这些函数是实现闹钟功能所必需的。
输入闹钟时间:接下来,你需要让用户输入闹钟的触发时间。
你可以使用scanf() 函数来获取用户输入。
计算睡眠时间:接下来,你需要计算出当前时间和闹钟触发时间之间的时间差,并使用睡眠函数等待该时间差。
你可以使用time() 函数获取当前时间,并使用difftime() 函数计算时间差。
你还可以使用sleep() 函数来等待相应的时间。
播放提醒声音:最后,你需要在闹钟触发时向用户播放一个提醒声音。
你可以使用system() 函数来执行一个系统命令,播放提醒声音。
示例代码如下:
#include <time.h>
#include <unistd.h>
#include <stdio.h>
int main() {
// 输入闹钟时间
int hour, minute;
printf("请输入闹钟时间(小时。
面向对象程序设计——闹钟
(2)各方法Clock() 能 执行main函数 Clock类的构造函数, 用于对时钟界面的初 始化
Run()
用于对时钟的动态显 示的执行,并判断是 否设定了闹钟时间, 若当前时间与设定的 时间相等则播放选定 的音乐
(3)主要模块描述算法
① 当前动态时间的显示的设计与实现。 功能:可以实时的更新显示系统完整的时间 算法:引入java.util.Date用while循环更新时间 代码如下: public void run() { while (true) { Date now = new Date();//设置一个新的当前时间对象。 dangqian.setText("当前时间: " + now.toString());//显示 当前的时间 … }
3、设计思想与步骤
(1)画出类的UML简图 Clock类: Clock类中的变量 ri, shi, fen, miao, dangqian, guanji: JLabel queding, dakai : JButton music, RI, SHI, FEN, MIAO : JTextField h = 0, f = 0, m = 0, r = 0 : int Fo, foo : boolean soumd1 : public AudioClip Clock类中的函数 public clock() public static void main(String agrs[]) public void run()
②音乐文件的选择。
功能:用打开按钮实现对本地音乐文件的选择 算法:引入java.io.File和.MalformedURLException 来实现对音乐本地音乐文件的选择。 代码如下: dakai.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { JFileChooser fileChooser = new JFileChooser(); // 实例化文件选择器 fileChooser .setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); // 设置文 件选择模式,此处为文件和目录均可 fileChooser.setCurrentDirectory(new File(".")); // 设置文件选择器当前目录 fileChooser .setFileFilter(new javax.swing.filechooser.FileFilter() { public boolean accept(File file) { // 可接受的文件类型 String name = file.getName().toLowerCase(); return name.endsWith(".wav") || name.endsWith(".au") || file.isDirectory(); } public String getDescription() { // 文件描述 return "音乐文件(*.wav,*.au)"; } });
闹钟程序
#include <reg51.h>#define uchar unsigned char#define uint unsigned intuchar hour=23,min=59,sec=45; //定义小时、分钟和秒变量uchar count_10ms; //定义10ms计数器sbit K1 = P3^2; //定义K1键sbit K2 = P3^3; //定义K2键sbit K3 = P3^4; //定义K3键sbit K4 = P3^5; //定义K4键sbit BEEP=P3^7; //定义蜂鸣器bit K1_FLAG=0; //定义按键标志位,当按下K1键时,该位置1,K1键未按下时,该位为0。
bit K2_FLAG=0; //定义按键标志位,当按下K2键时,该位置1,K2键未按下时,该位为0。
uchar code bit_tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位选表,用来选择哪一只数码管进行显示uchar code seg_data[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x 8e,0xff,0xbf};//0~F、熄灭符和字符"-"的显示码(字形码)uchar disp_buf[8]; //定义显示缓冲单元bit alarm=0; //设置闹铃标志位,为1,闹铃功能打开;为0,闹铃功能关闭uchar hour_a=11,min_a=59; //闹铃小时、分钟缓冲区/********以下是延时函数********/void Delay_ms(uint xms){uint i,j;for(i=xms;i>0;i--) //i=xms即延时约xms毫秒for(j=110;j>0;j--);}/*********以下是蜂鸣器响一声函数********/void beep(){BEEP=0; //蜂鸣器响Delay_ms(100);BEEP=1; //关闭蜂鸣器Delay_ms(100);}/********以下是闹铃转换函数,负责将闹铃数据转换为适合数码管显示的数据********/void conv_a(uchar in1,in2) //形参in1、in2接收实参hour_a、min_a传来的数据{disp_buf[0] = in1 /10; // 闹铃小时十位disp_buf[1] = in1 %10; // 闹铃小时个位disp_buf[3] = in2 /10; // 闹铃分钟十位disp_buf[4] = in2 %10; // 闹铃分钟个位disp_buf[6] = 0; // 闹铃秒十位disp_buf[7] = 0; // 闹铃秒个位disp_buf[2] = 17; // 第3只数码管显示"-"(在seg_data表的第17位)disp_buf[5] = 17; // 第6只数码管显示"-"}/********以下是走时转换函数,负责将走时数据转换为适合数码管显示的数据********/void conv(uchar in1,in2,in3) //形参in1、in2、in3接收实参hour、min、sec传来的数据{disp_buf[0] =in1/10; // 小时十位disp_buf[1] = in1%10; // 小时个位disp_buf[3] = in2/10; // 分钟十位disp_buf[4] = in2%10; // 分钟个位disp_buf[6] = in3/10; // 秒十位disp_buf[7] = in3%10; // 秒个位disp_buf[2] = 17; // 第3只数码管显示"-"(在seg_data表的第17位)disp_buf[5] = 17; // 第6只数码管显示"-"}/********以下是闹铃检查函数********/void AlarmCheck(){if(alarm) //若闹铃标志位为1{if((hour==hour_a)&&(min==min_a)) //若走时的小时、分钟与闹铃的小时、分钟相等,则执行{while(K4){beep();} //未按下K4键,闹铃始终响while(!K4); //等待K4键释放alarm=0; //闹铃标志位清0}}}/********以下是闹铃设置函数********/void AlarmSet(){conv_a(hour_a,min_a); //调闹铃转换函数if((K2==0)&&(K2_FLAG==1)) //若K2键按下后(K2_FLAG为1),再按下K2键{Delay_ms(10); //延时去抖if((K2==0)&&(K2_FLAG==1)){while(!K2); //等待K2键释放beep();hour_a++; //小时调整if(hour_a==24){hour_a = 0;}}}if((K3==0)&&(K2_FLAG==1)) //若按下K2键后(K2_FLAG为1),再按下K3键{Delay_ms(10);if((K3==0)&&(K2_FLAG==1)){while(!K3); //等待K3键释放beep();min_a++; //分钟调整if(min_a==60){min_a = 0;}}}if((K4==0)&&(K2_FLAG==1)) //若按下K2键后(K2_FLAG为1),再按下K4键{Delay_ms(10);if((K4==0)&&(K2_FLAG==1)){while(!K4); //等待K4键释放alarm=~ alarm; //闹铃标志位取反,使K4键具有打开和关闭闹铃的功能K2_FLAG=0; //闹铃调整后将K2_FLAG清0if(alarm==1){beep();beep();beep();}//若闹铃开启(闹铃标志位为1),则响三声else beep(); //否则,若闹铃关闭(闹铃标志位为0),则响一声conv(hour,min,sec); //闹铃设置完成后,调走时转换函数,显示走时时钟}}}/********以下是显示函数********/void Display(){uchar tmp; //定义显示暂存static uchar disp_sel=0; //显示位选计数器,显示程序通过它得知现正显示哪个数码管,初始值为0tmp=bit_tab[disp_sel]; //根据当前的位选计数值决定显示哪只数码管P2=tmp; //送P2控制被选取的数码管点亮tmp=disp_buf[disp_sel]; //根据当前的位选计数值查的数字的显示码tmp=seg_data[tmp]; //取显示码P0=tmp; //送到P0口显示出相应的数字disp_sel++; //位选计数值加1,指向下一个数码管if(disp_sel==8)disp_sel=0; //如果8个数码管显示了一遍,则让其回0,重新再扫描}/********以下是定时器T0中断函数, 用于数码管的动态扫描********/void timer0() interrupt 1{TH0 = 0xf8;TL0 = 0xcc; //重装计数初值,定时时间为2msDisplay(); //调显示函数}/********以下是定时器T1中断函数, 用于产生用于产生秒、分钟和小时信号********/ void timer1() interrupt 3{TH1 = 0xdc;TL0 = 0x00; //重装计数初值,定时时间为10mscount_10ms++; //10ms计数器加1if(count_10ms >= 100){count_10ms = 0; //计数100次后恰好为1s,此时10ms计数器清0sec++; //秒加1if(sec == 60){sec = 0;min++; //若到60秒,分钟加1if(min ==60){min = 0;hour++; //若到60分钟,小时加1if(hour ==24){hour = 0;min=0;sec=0; //若到24小时,小时、分钟和秒单元清0 }}}}}/********以下是按键处理函数,用来对按键进行处理********/void KeyProcess(){TR1=0; //若按下K1键,则定时器T1关闭,时钟暂停if(K2==0) //若按下K2键{Delay_ms(10); //延时去抖if(K2==0){while(!K2); //等待K2键释放beep();hour++; //小时调整if(hour==24){hour = 0;}}}if(K3==0) //若按下K3键{Delay_ms(10);if(K3==0){while(!K3); //等待K3键释放beep();min++; //分钟调整if(min==60){min = 0;}}}if(K4==0) //若按下K4键{Delay_ms(10);if(K4==0){while(!K4); //等待K4键释放beep();TR1=1; //调整完毕后,时钟恢复走时K1_FLAG=0; //将K1键按下标志位清0}}}/*********以下是定时器T0/T1初始化函数********/void timer_init(){ TMOD = 0x11; // 定时器0, 1工作模式1, 16位定时方式TH0 = 0xf8;TL0 = 0xcc; //装定时器T0计数初值,定时时间为2msTH1 = 0xdc;TL1 = 0x00; // 装定时器T1计数初值,定时时间为10ms EA=1;ET0=1;ET1=1; //开总中断和定时器T0、T1中断TR0 = 1;TR1 = 1; //启动定时器T0、T1}/********以下是主函数********/void main(void){P0 = 0xff;P2 = 0xff;timer_init(); //调定时器T0、T1初始化函数while(1){if((K1==0)&&(K2_FLAG==0)) //若K1键按下时,只进行时钟调整,使闹铃设置功能失效{Delay_ms(10); //延时10ms去抖if((K1==0)&&(K2_FLAG==0)){while(!K1); //等待K1键释放beep(); //蜂鸣器响一声K1_FLAG=1; //K1键标志位置1,以便进行时钟调整}}if((K2==0)&&(K1_FLAG==0)) //若按下K2键时,只进行闹铃调整,使走时调整失效{Delay_ms(10);if((K2==0)&&(K1_FLAG==0)){while(!K2); //等待K2键释放beep();K2_FLAG=1; //K2键标志位置1,以便进行闹铃调整}}if(K1_FLAG==1)KeyProcess(); //若K1_FLAG为1,则进行走时调整if(K2_FLAG==1){AlarmSet(); continue;} //若K2_FLAG为1,则进行闹铃调整AlarmCheck(); //调闹铃检查函数conv(hour,min,sec); //调走时转换函数}}。
Alarm闹钟程序
;R6,R7:延时程序用于计数
;R3,R4,R5终端中使用
;R2:KEY_SCAN子程序:键扫描计数
;****************************************************************
CALL Write_instruction
MOV DPTR,#ALARM_SET
CALL PR_STRING
SJMP RET_ALARM
ALARM_SET_OVER: CLR ALARM_FLAG
;*****************************************************************
;PM7:k7按下,闹铃设定开启
;*****************************************************************
SJMP RET_PM3
ALARM_HOU_SET: MOV A,ALARM_HOU
CJNE A,#23,ALARM_HOU_UP
MOV ALARM_HOU,#0
SJMP RET_PM3
HOU_UP: INC HOUR
ALARM BIT P3.2 ;闹钟指示
TIME_GO_FLAG BIT 00H ;标志位,1表示定时1秒钟到
ALARM_FLAG BIT 01H ;闹铃标志,1设定状态,0设定结束
DB0_DB7 DATA P1
MOV SECOND,#0
LJMP MAIN_LOOP
VS2005编写的计时器程序
lblremainder.Text = ""; //清空标签
txtnumber.Text = ""; //清空输入文本框
txtnumber.Focus(); //输入文本框获得焦点
lbltimestart.Text = "开始时间:"; //更换标签标题
}
}
private void timer2_Tick(object sender, EventArgs e)
{
{
txttimeend.Text = DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString() + ":" + DateTime.Now.Second.ToString(); //在文本框中显示时间
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void Form1_Activated(object sender, EventArgs e)
{
}
private void label2_Click(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
timer2.Enabled = true; //计时器2开始工作
lbltimeend.Visible = false; //隐藏标签
vs2005使用教程
VS2005使用教程简介Visual Studio 2005(简称VS2005)是由微软公司开发的集成开发环境(IDE),广泛用于Windows应用程序开发。
本教程将为您介绍如何使用VS2005进行开发工作,包括项目创建、调试、发布等方面的内容。
安装与配置在开始使用VS2005之前,首先需要进行安装与配置工作。
1.下载安装程序:您可以从微软官方网站上下载VS2005的安装程序。
确保下载的版本与您的操作系统兼容。
2.运行安装程序:双击下载的安装程序,按照提示完成安装过程。
3.安装更新:安装完成后,打开VS2005,选择“帮助”菜单下的“检查更新”选项,确保您安装了最新的补丁和更新程序。
4.配置环境:在VS2005编辑器中,选择“工具”菜单下的“选项”选项,您可以根据自己的需求设置编辑器的外观和行为。
项目创建与管理VS2005可以帮助您快速创建各种类型的项目,包括控制台应用程序、Windows桌面应用程序、Web应用程序等。
下面是一个项目创建的简要步骤:1.打开VS2005,选择“文件”菜单下的“新建”选项,然后选择您要创建的项目类型。
2.在弹出的对话框中,输入项目的名称和位置。
3.点击“确定”按钮,VS2005将为您创建一个新的项目,并打开相应的编辑器。
除了创建项目外,VS2005还提供了项目管理的工具,您可以在“解决方案资源管理器”中管理项目的文件和依赖关系。
代码编写与调试VS2005具有强大的代码编辑功能,支持多种编程语言,如C#、C++、VB等。
以下是一些代码编写和调试的常用技巧:1.代码编辑:在VS2005中,可以使用智能感知、代码自动完成等功能来加速代码编写。
您可以通过键入关键词的一部分,并按下“Tab”键来自动完成代码。
同时,VS2005还具有代码格式化、代码导航等功能,可帮助您提高编码效率。
2.代码调试:VS2005内置了强大的调试器,您可以使用断点、变量监视窗口等工具来调试程序。
在调试过程中,您可以逐行执行程序,查看变量的值等。
MBL321使用VS2005开发移动设备应用-Microsoft
企业计算 vs 移动计算
移动应用场景
仓库管理 医院移动办公系统 工业控制 邮件跟踪 智能遥控 支付 交通工具与个人身份 验证 户外查询
巡视与测量 长途货运管理 交通管理系统 自动销售 快递 零售管理 ATM 系统 铁路控制系统
选择正确的设备
在线与离线的比率 数据是推还是拉的方式 用户体验 数据查询还是数据采集 可携带 电池能工作多久 坚固性 平台、语言、易开发、安全等等
4.2
选择目标平台
Visual Studio supports Pocket PC and Smartphone 2003 and Windows CE 5.0-based platforms by default. Windows Mobile 5.0 requires separate SDKs.
.NET Compact Framework 2.0 控件
Pocket PC Phone
Smartphone
设备屏幕比例
Pocket PC
Ratio == 3 : 4
Ratio == 4 : 3
Ratio == 1 : 1
SmartPhone
Ratio == 4 : 5
Ratio == 3 : 4
Microsoft. .
Win32.Registry
Http*
Windows. Forms
mscorlib System.Xml
System.IO. .
File
Sockets
System. Drawing
CLR
Debugger
JIT Compiler & GC
相同的
先进的,托管运行环境。 大大提高了开发效率 支技和C#等开发语言 与Visual Studio一起发布
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
倒计时提醒程序设计时实用vs2005编写的界面截图Vs2005设计《倒计时提醒》程序时新建有3个form窗体文件:界面截图如下:Form1:主界面在Form1界面上点击“设置倒计时”菜单,就会弹出form2Form2:设置倒计时界面在form1界面上点击“音乐路径”菜单,就会弹出form3设置音乐路径界面Form3:音乐路径界面弹窗提醒截图:第三章详细设计3.1控件功能及属性Form1控件3.2模块程序代码Module1.vb模块代码:Module Module1' 这是在模块中添加的代码Public hours As ShortPublic minutes As ShortPublic seconds As ShortPublic revtime As Date'此API函数用来使某个窗口位于所有窗口之上Public Declare Function SetWindowPos Lib "user32" (ByV al hwnd As Integer, ByV alhWndInsertAfter As Integer, ByV al X As Integer, ByV al Y As Integer, ByV al cx As Integer, ByV al cy As Integer, ByV al wFlags As Integer) As IntegerEnd ModuleForm1窗体代码:Public Class Form1Private Sub Form1_DoubleClick(ByV al sender As Object, ByV al e As System.EventArgs) Handles Me.DoubleClickMe.Close() ’双击窗体关闭End SubPrivate Sub Form1_Load(ByV al sender As Object, ByV al e As System.EventArgs) Handles Me.LoadMe.TopMost = True ’打开窗体时,位于所有窗体的最前面End SubPrivate Sub Timer1_Tick(ByV al sender As Object, ByV al e As System.EventArgs) Handles Timer1.Tick ’设置时间空间If seconds > 0 Then '当秒钟大于时seconds = seconds – 1 '秒钟做减法End IfIf seconds < 1 And minutes > 0 Then '当秒钟<1和分钟>0minutes = minutes –1’分钟做减法seconds = 60'秒钟重新计数End IfIf m inutes < 1 And seconds = 0 And hours > 0 Then’当秒钟<1和分钟=0并且时钟=0 hours = hours – 1 '小时做一次减法minutes = 60 ’分钟重新计数End IfIf hours < 0 Then ’ 不能让小时小于零,所以当小时<0hours = 0 ’小时重新赋值为0End IfIf minutes < 0 Then ’不能让分钟小于零,所以当分钟<0minutes = 0 ’分钟重新赋值为0End If’下面一行为显示倒计时时间Label2.Text = CStr(hours) + ":" + CStr(minutes) + ":" + CStr(seconds)If seconds = 0 And minutes = 0 And hours = 0 Then’如果时钟、分钟、秒钟同时等于0 Timer1.Enabled = False ’那倒计时停止PlaySound(Form3.TextBox1.Text, 0, SND_LOOP Or SND_ASYNC)’开始播放提醒音乐End IfEnd Sub’下面一行为菜单栏中点击弹出《设置倒计时》窗体Private Sub MenuItem1_Click1(ByV al sender As Object, ByV al e As System.EventArgs) Handles MenuItem1.ClickForm2.ShowDialog() ’弹出Form2窗体End SubPrivate Sub MenuItem2_Click(ByV al sender As Object, ByV al e As System.EventArgs) Handles MenuItem2.ClickMe.Close() ’“退出”菜单End SubPrivate Sub Button1_Click(ByV al sender As System.Object, ByV al e As System.EventArgs) Handles Button1.ClickTimer1.Enabled = False ’Button控件,属性为停止MsgBox("当前倒计时为:" & Label2.Text) ’自动弹窗显示当前倒计时End SubPrivate Sub Button2_Click(ByV al sender As System.Object, ByV al e As System.EventArgs) Handles Button2.ClickMsgBox("请先设置倒计时!") ’当开始单击button2时,弹出提示“请先设置倒计时”Form2.ShowDialog() ’弹出form2窗体End Sub’下面几行为播放音乐功能的代码Public Declare Function PlaySound Lib "winmm.dll" (ByV al lpszSoundName As String, ByV al hModule As Integer, ByV al dwFlags As Integer) As IntegerConst SND_FILENAME As Integer = &H20000Const SND_ALIAS As Integer = &H10000Const SND_SYNC As Integer = &H0Const SND_ASYNC As Integer = &H1Const SND_LOOP As Integer = &H8Private Sub Button3_Click(ByV al sender As System.Object, ByV al e As System.EventArgs) Handles Button3.ClickTimer1.Enabled = True ’开始End SubPrivate Sub 音乐路径ToolStripMenuItem_Click(ByV al sender As System.Object, ByV al e As System.EventArgs) Handles 音乐路径ToolStripMenuItem.ClickForm3.ShowDialog() ’form3窗体弹出,设置音乐路径End SubEnd ClassForm2窗体代码:’下面是form2窗体的代码Public Class Form2Private Sub Form2_Load(ByV al sender As System.Object, ByV al e As System.EventArgs) Handles MyBase.LoadMe.TopMost = True ’当打开此窗体时,位于所有窗体最前面End SubPrivate Sub Button1_Click(ByV al sender As System.Object, ByV al e As System.EventArgs) Handles Button1.Clickhours = CInt(TextBox1.Text) '这里是将分隔的小时赋给变量“hour s”minutes = CInt(TextBox2.Text) '这里是将分隔的分钟赋给变量“minute s”seconds = CInt(TextBox3.Text) '这里是将分隔的秒钟赋给变量“second s”bel2.Text = CStr(hours) + ":" + CStr(minutes) + ":" + CStr(seconds)Form1.Timer1.Enabled = TrueMe.Hide() ’完成上面命令时,隐藏窗体End SubPrivate Sub Button2_Click(ByV al sender As Object, ByV al e As System.EventArgs) Handles Button2.ClickMe.Close() ’窗体关闭End SubEnd ClassForm3窗体代码:Public Class Form3Private Sub Button1_Click(ByV al sender As System.Object, ByV al e As System.EventArgs) Handles Button1.ClickMe.Hide() ’窗体隐藏End SubPrivate Sub Form3_Load(ByV al sender As System.Object, ByV al e As System.EventArgs) Handles MyBase.LoadMe.TopMost = True ’处于所有窗体最前面End SubEnd Class生成安装程序步骤使用vs2005来生成安装程序:第一步:在“解决方案资源管理器”中单击“倒计时”项目。
第二步:单击“文件”菜单---“添加”---“新建项目”在弹出的“添加新建项目”中选择“其他项目类型”---“安装与部署”,设置要安装程序的“名称”及“位置”,单击“确定”。
第三步:在“解决方案资源管理器”中选择“倒计时”项目。
在“文件系统编辑器”中,选择“应用程序文件夹”节点。
第四步:在“操作”菜单上指向“添加”,然后单击“项目输出”。