当前位置:首页 » 编程软件 » 编程闹钟算法

编程闹钟算法

发布时间: 2022-08-09 19:02:01

⑴ 用C#事件按钮做一个数字时钟 最好带闹钟效果的 求代码

求代码~~
您说笑了
思路:
1.如果是圆形的钟,需要在picturebox中用DRAW画,用timer控件隔一秒画一次也就是1000ms
如果只是个时间,那么直接获取系统时间,用timer控件隔一秒刷新一次即可,不涉及控件图画,很简单。

2.但如果是控件怎么画?既然是个图形,围绕中心旋转,那么这是个方程,每秒刷新一次,重画这个方程
3.闹钟~我的思路是把信息写入xml或ini中,每隔一分钟读取一次,判断是否到时间,是否做相应操作

所以表面上看功能很少,其实涉及c#的许多控件操作和编程方法
您自己试试能学到很多东西

⑵ 编写一个C语言闹钟程序

2楼说的创建一个线程查询系统时间 ,就是一个查询算法,时间本来就是1~60秒排好序的,那就用2分法排序吧,快又简单,然后当系统时间==闹钟事件【i】,就开始闹
就这样,2分算法要是还不会就用冒泡法吧,嘿嘿

⑶ 用单片机做闹钟你是什么思路

用单片机做闹钟,选一时钟芯片,如DS1302,单片机用51或pic或其它系列都可,单片机和时钟芯片用i/o连接好。显示选LED,LCD都运行,加蜂鸣器用单片机控制。功能要求,编程序实现了。

⑷ 单片机设置两次闹铃的闹钟编程怎么写

闹钟是根据时间来判断的
所以
你先要在定时器中断里设置
他的初值来判断时间,然后在主程序中判断
闹钟时间的标志
来使能蜂鸣器的动作

⑸ 用C语言编程数码闹钟

这个应该是在dos下实现的吧。需要在dos上绘制。数字到数码管的用查表法就可以了(很多讲单片机的书里都有这个表的)。 然后多个闹钟,应该是用数据结构封装,这样才方便多个。等到定时时间到后,遍历所有闹钟,将其时间显示出来。菜单应该就是printf之类的dos菜单吧。 如果你的是用单片机实现,就当上面我没说。这种程序一般网上能搜索到的,大同但是有小异。别指望别人能给出完整程序。没那个功夫。

⑹ 图形化编程闹钟怎么编

文件选择器, 自定义光标, HTML浏览器, 抖动文字, 阴影文字, 波浪文字, 飞行文字, 控件的相互控制与消息传递, 伸展文字, 用Applet显示图片, 图片火焰效果, 图片百叶窗, 图片倒影, 图片翻折, 闹钟, 万年历, 计算器。
报时小闹钟汇编程序设计 基本功能:显示一个精致的图形时钟,时钟表显示的时间为本机系统的时间。并模拟出时针,分针,秒针的走动。按b键可扩大画面 ;按s键可缩小画面;按c键可改变颜色;按e键可听音乐;按q键退出本程序。

⑺ 要做一个用C语言编程的数字钟有闹钟和计时功能,求大神讲解一下它的工作原理

一楼的说法有误,C、C++都不支持多线程,
我之前写过C#的,在csdn 搜 solief ,
C最好的方式像一楼说的,获取时间和设置睡眠 可以实现闹钟功能,不过不能暂停或者取消
如果要实现计时,开始和结束获取时间做差即可,与睡眠有冲突

或者你采用一直获取系统时间,再和目标时间比较的方法,就不会有上面的缺点,不过效率差,系统消耗大

C入门不错,但如果真想发展,学 python 、C++、C# 这类的吧

⑻ vb制作闹钟要怎么做代码(会响和的可以设置时间的)

闹钟在编程思维上有两部分:计时和报警
大体思路如下:
用一个timer,每秒钟检测系统时间,用now()。(如果你只想精确到分钟就每分钟检测一次,看你需要了)
当系统时间等于设定值时,用msgbox提醒用户时间已到
如果msgbox不够明显,可以用“Shell App.Path & "\程序名1.EXE"启动一个音乐播放器,播放事先设置好的音乐,或实现你自己想要的效果。

⑼ 求一个VC++关于定时闹钟的编程~~

这是我以前做的自动关机的程序,要闹钟的话把if (CurrentTime == SetTime)里边的语句修改下就可以了。
void CAutoShutdown1Dlg::OnTimer(UINT nIDEvent)
{
CTime t = CTime::GetCurrentTime();
CString str = t.Format("温馨提示:\r\n当前时间为 %Y年%m月%d日 %H:%M:%S");
m_static.SetWindowText(str);

CString str1 = t.Format("%H%M");
int CurrentTime;
int SetTime;
CurrentTime = atoi((LPSTR)(LPCTSTR)str1);
SetTime = atoi((LPSTR)(LPCTSTR)m_TimeSet);

if (CurrentTime == SetTime)
{
ExitWindowsEx(EWX_SHUTDOWN,NULL);
KillTimer(nIDEvent);
}
else
return;
CDialog::OnTimer(nIDEvent);
}

void CAutoShutdown1Dlg::OnButton1()
{

m_edit1.GetWindowText(m_TimeSet);
if (m_TimeSet =="")
{
MessageBox("请输入时间");
}
else
{
int Hour1,Hour2,Minite1,Minite2;
CString i = m_TimeSet.GetAt(0);
CString j = m_TimeSet.GetAt(1);
CString k = m_TimeSet.GetAt(2);
CString l = m_TimeSet.GetAt(3);

Hour1 = atoi((LPSTR)(LPCTSTR)i);
Hour2 = atoi((LPSTR)(LPCTSTR)j);
Minite1 = atoi((LPSTR)(LPCTSTR)k);
Minite2 = atoi((LPSTR)(LPCTSTR)l);

if ((Hour1 < 3) && (Hour1 < 10) && (Minite1 < 6) && (Minite2 < 10))
{
if (MessageBox("确定这个时间关机?","信息提示",MB_YESNO | MB_ICONQUESTION) == IDYES)
{
MessageBox("您以成功设置关机时间!","信息提示",MB_ICONWARNING);
}
}
else
{
if ((MessageBox("输入时间错误,请重新输入!","信息提示",MB_RETRYCANCEL |MB_ICONWARNING)) == IDRETRY)
{
CString str = "";
m_edit1.SetWindowText(str);
}
else
CDialog::OnOK();
}
}
}

⑽ 寻找java编程高手写一个闹钟的程序

自己之前做过的一个:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.Timer;

public class Clock extends JFrame implements ActionListener {
public final int HEIGTH = 200, L0 = 50, T0 = 50,N=8;
public final double RAD = Math.PI / 180.0;
int x, y, old_X, old_Y, r, x0, y0, w, h, ang;
int sdo, mdo, hdo, old_M, old_H, hh, mm, ss;
int delay = 1000;
Calendar now;
String st, alarm, Items1, Items2,str[];
JButton jb;
JComboBox jc1, jc2, jc3;
JLabel jl1, jl2, jl3, jl4;
JMenu jm1, jm2, jm3, jm4;
JMenuBar jmb;
JMenuItem jmi1, jmi2, jmi3, jmi4, jmi5, jmi6, jmi7, jmi8, jmi9,jmi10;
JTextField jtf1, jtf2, time;
JPanel jp1, jp2, jp3;
Timer timer;
TimeZone tz = TimeZone.getTimeZone("JST");
Toolkit toolkit=Toolkit.getDefaultToolkit();;
/**
* <br>
* 方法说明:实现ActionListener类必须过载的方法
*/

public static void main(String[] args) {
Clock cp = new Clock();
cp.setVisible(true);
}

Clock() {
super("Java闹钟!");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(550, 700);
setVisible(true);
Container contentPane = getContentPane();

jp2 = new JPanel();

jmb = new JMenuBar();

jm1 = new JMenu("背景颜色设置 ", true);
jmi1 = new JMenuItem("外圈颜色");
jmi1.addActionListener(this);
jmi1.setActionCommand("color1");
jm1.add(jmi1);
jmi2 = new JMenuItem("闹钟边线颜色");
jmi2.addActionListener(this);
jmi2.setActionCommand("color2");
jm1.add(jmi2);
jmi3=new JMenuItem("底盘颜色");
jmi3.addActionListener(this);
jmi3.setActionCommand("color3");
jm1.add(jmi3);
jmi4=new JMenuItem("系统时间背静颜色");
jmi4.addActionListener(this);
jmi4.setActionCommand("color4");
jm1.add(jmi4);
jmb.add(jm1);

jm2 = new JMenu("指针颜色设置 ", true);
jmi5 = new JMenuItem("秒针颜色");
jmi5.addActionListener(this);
jmi5.setActionCommand("color5");
jm2.add(jmi5);
jmi6 = new JMenuItem("分针颜色");
jmi6.addActionListener(this);
jmi6.setActionCommand("color6");
jm2.add(jmi6);
jmi7 = new JMenuItem("时针颜色");
jmi7.addActionListener(this);
jmi7.setActionCommand("color7");
jm2.add(jmi7);
jmb.add(jm2);

jm3 = new JMenu("闹铃声音设置 ", true);
jmi8 = new JMenuItem("响铃1");
jmi8.addActionListener(this);
jmi8.setActionCommand("ring1");
jm3.add(jmi8);
jmi9 = new JMenuItem("静音");
jmi9.addActionListener(this);
jmi9.setActionCommand("ring2");
jm3.add(jmi9);
jmb.add(jm3);

jm4 = new JMenu("帮助 ", true);
jmi10=new JMenuItem("使用说明");
jmi10.addActionListener(this);
jmi10.setActionCommand("help");
jm4.add(jmi10);
jmb.add(jm4);
jp2.add(jmb);

contentPane.add(jp2, BorderLayout.NORTH);

jp3 = new JPanel();
jl1 = new JLabel("闹铃时间");
jl1.setFont(new Font("楷体_GB2312", Font.BOLD, 18));
time = new JTextField("00:00", 5);
alarm = time.getText();
jb = new JButton("修改闹铃时间");
jb.addActionListener(this);
jb.setActionCommand("CC");
jp3.add(jl1);
jp3.add(time);
jp3.add(jb);
contentPane.add(jp3, BorderLayout.SOUTH);

ClockPanel clock = new ClockPanel();
contentPane.add(clock, BorderLayout.CENTER);

// 窗体添加事件监听,监听秒表的触发
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
repaint();
}
};
new Timer(delay, taskPerformer).start();
}

/**
* <br>
* 方法说明:绘制图形
*/

Color C1 = Color.lightGray;// 外圈颜色
Color C2 = Color.black;// 边线颜色
Color C3 = Color.magenta;// 内盘颜色
Color C4 = Color.blue;// 背景颜色
Color C5 = Color.yellow;// 秒针颜色
Color C6 = Color.green;// 分针颜色
Color C7 = Color.red;//时针颜色
public class ClockPanel extends JPanel {
public void paint(Graphics g) {
h = getSize().height - 200;
// 绘制圆形
g.setColor(C1);
g.fillOval(L0 + 30, T0 + 30, h - 60, h - 60);
g.setColor(C2);
g.drawOval(L0 + 31, T0 + 31, h - 62, h - 62);
g.setColor(C3);
g.fillOval(L0 + 50, T0 + 50, h - 100, h - 100);
g.setColor(C2);
g.drawOval(L0 + 51, T0 + 51, h - 102, h - 102);

r = h / 2 - 30;
x0 = 30 + r - 5 + L0;
y0 = 30 + r - 5 - T0;
ang = 60;
for (int i = 1; i <= 12; i++) {
x = (int) ((r - 10) * Math.cos(RAD * ang) + x0);
y = (int) ((r - 10) * Math.sin(RAD * ang) + y0);
g.drawString("" + i, x, h - y);
ang -= 30;
}
x0 = 30 + r + L0;
y0 = 30 + r + T0;
g.drawString("指针式时钟", 215, 200);

// 获取时间
now = Calendar.getInstance();
hh = now.get(Calendar.HOUR_OF_DAY);// 小时
mm = now.get(Calendar.MINUTE);// 分钟
ss = now.get(Calendar.SECOND);// 秒
g.setColor(C4);
g.fillRect(5, 550, 150, 30);// 填充的矩形
g.setColor(C6);
if (hh < 10)
st = "0" + hh;
else
st = "" + hh;
if (mm < 10)
st = st + ":0" + mm;
else
st = st + ":" + mm;
if(alarm.equals(st))
{
if(toolkit!=null)
toolkit.beep();
else {}
}
if (ss < 10)
st = st + ":0" + ss;
else
st = st + ":" + ss;
{
g.setFont(new Font("华文楷体", Font.BOLD, 16));
g.drawString("系统时间:" + st, 10, 570);
}

// 计算时间和图形的关系
sdo = 90 - ss * 6;
mdo = 90 - mm * 6;
hdo = 90 - hh * 30 - mm / 2;
// 擦除秒针
if (old_X > 0) {
g.setColor(C3);
} else {
old_M = mdo;
old_H = hdo;
}
// 绘制秒针
g.setColor(C5);
x = (int) ((r - 26) * Math.cos(RAD * sdo) + x0);
y = (int) ((r - 26) * Math.sin(RAD * sdo) + y0) - 2 * T0;
g.drawLine(x0, y0, x, (h - y));

old_X = x;
old_Y = y;

// 擦除分针和时针
if (mdo != old_M) {
g.setColor(C3);
old_M = mdo;
}
if (hdo != old_H) {
g.setColor(C3);
old_H = hdo;
}
// 绘制分针
g.setColor(C6);
x = (int) ((r - 50) * Math.cos(RAD * mdo) + x0);
y = (int) ((r - 50) * Math.sin(RAD * mdo) + y0) - 2 * T0;
g.drawLine(x0, y0, x, (h - y));
// 绘制时针
g.setColor(C7);
x = (int) ((r - 90) * Math.cos(RAD * hdo) + x0);
y = (int) ((r - 90) * Math.sin(RAD * hdo) + y0) - 2 * T0;
g.drawLine(x0, y0, x, (h - y));
} // end paint
}

// 闹铃时间的判断及实现
// 闹铃声音的实现

public void actionPerformed(ActionEvent e) {
// JMenuItem m = (JMenuItem) e.getSource();

if (e.getActionCommand() == "CC") {
int newHou, newMin;
char c;

String getTime = JOptionPane.showInputDialog(this, "请输入闹铃时间格式如:", "00:00");
repaint();

//如果撤消设置时间,就什么打印null
if(getTime==null)
System.out.println(getTime);
// dispose();

judge: if (getTime != null) {
//打印输入的设置的时间
System.out.println(getTime);
// 判断输入的是不是5位字符
if (getTime.length() != 5) {
JOptionPane.showMessageDialog(time, "格式错误\n请按格式输入5位数字", "Error",
JOptionPane.ERROR_MESSAGE);
repaint();
break judge;
}

// 判断输入的是不是数字
for (int i = 0; i < (getTime.length()); i++) {
c = getTime.charAt(i);
if (i == 2 && !Character.isDigit(c))
continue;
// 判断当前字符,如果不是数字则跳出该事件
if (i != 2 && !Character.isDigit(c)) {
JOptionPane.showMessageDialog(this, "格式错误\n请按格式输入5位数字",
"Error",JOptionPane.ERROR_MESSAGE);
repaint();
break judge;
}
}
char[] hour = { getTime.charAt(0), getTime.charAt(1) };
char[] minute = { getTime.charAt(3), getTime.charAt(4) };
newHou = Integer.parseInt(String.valueOf(hour));
newMin = Integer.parseInt(String.valueOf(minute));
if (newHou >= 24 || newHou < 0) {
JOptionPane.showMessageDialog(this, "格式错误\n小时应该是不小于0不大于23的正数",
"Error", JOptionPane.ERROR_MESSAGE);
repaint();
break judge;
}
if (newMin >= 60 || newHou < 0) {
JOptionPane.showMessageDialog(this, "格式错误\n分钟应该是小于60的正数", "Error",
JOptionPane.ERROR_MESSAGE);
repaint();
break judge;
}
new SetTime(newHou, newMin);
}
}

if (e.getActionCommand() == "ring1") {
toolkit=Toolkit.getDefaultToolkit();
}
if(e.getActionCommand() == "ring2"){
System.out.println("静音");
toolkit=null;

}

if (e.getActionCommand() == "color1") {
String color;
Color c;
System.out.println("color1");
color = JOptionPane.showInputDialog(this, "请输入喜欢的外圈颜色(0--255)", "128");
if (color == null) {
} else {
if (Integer.parseInt(color) < 0
|| Integer.parseInt(color) > 255)
JOptionPane.showInputDialog(this, "请输入喜欢的外圈颜色(0--255)", "128");
else {
c = new Color(Integer.parseInt(color));
C1 = c;
}
}
}
if(e.getActionCommand() == "color2"){
String color;
Color c;
System.out.println("color2");
color = JOptionPane.showInputDialog(this, "请输入喜欢的边线颜色(0--255)", "128");
if(color==null){}
else{if (Integer.parseInt(color) < 0|| Integer.parseInt(color) > 255)
JOptionPane.showInputDialog(this, "请输入喜欢的边线颜色(0--255)", "128");
else {
c = new Color(Integer.parseInt(color));
C2 = c;
}
}
}
if(e.getActionCommand() == "color3"){
String color;
Color c;
System.out.println("color3");
color = JOptionPane.showInputDialog(this, "请输入喜欢的内盘颜色(0--255)", "128");
if(color==null){}
else{if (Integer.parseInt(color) < 0|| Integer.parseInt(color) > 255)
JOptionPane.showInputDialog(this, "请输入喜欢的内盘颜色(0--255)", "128");
else {
c = new Color(Integer.parseInt(color));
C3 = c;
}
}
}

if(e.getActionCommand() == "color4"){
String color;
Color c;
System.out.println("color4");
color = JOptionPane.showInputDialog(this, "请输入喜欢的背景颜色(0--255)", "128");
if(color==null){}
else{if (Integer.parseInt(color) < 0|| Integer.parseInt(color) > 255)
JOptionPane.showInputDialog(this, "请输入喜欢的背景颜色(0--255)", "128");
else {
c = new Color(Integer.parseInt(color));
C4 = c;
}
}
}
if(e.getActionCommand() == "color5"){
String color;
Color c;
System.out.println("color5");
color = JOptionPane.showInputDialog(this, "请输入喜欢的秒针颜色(0--255)", "128");
if(color==null){}
else{if (Integer.parseInt(color) < 0|| Integer.parseInt(color) > 255)
JOptionPane.showInputDialog(this, "请输入喜欢的秒针颜色(0--255)", "128");
else {
c = new Color(Integer.parseInt(color));
C5 = c;
}
}
}
if(e.getActionCommand() == "color6"){
String color;
Color c;
System.out.println("color6");
color = JOptionPane.showInputDialog(this, "请输入喜欢的分针颜色(0--255)", "128");
if(color==null){}
else{if (Integer.parseInt(color) < 0|| Integer.parseInt(color) > 255)
JOptionPane.showInputDialog(this, "请输入喜欢的分针颜色(0--255)", "128");
else {
c = new Color(Integer.parseInt(color));
C6 = c;
}
}
}

if(e.getActionCommand() == "color7"){
String color;
Color c;
System.out.println("color7");
color = JOptionPane.showInputDialog(this, "请输入喜欢的时针颜色(0--255)", "128");
if(color==null){}
else{if (Integer.parseInt(color) < 0|| Integer.parseInt(color) > 255)
JOptionPane.showInputDialog(this, "请输入喜欢的时针颜色(0--255)", "128");
else {
c = new Color(Integer.parseInt(color));
C7 = c;
}
}
}

if(e.getActionCommand() == "help"){
String help;
help = JOptionPane.showInputDialog(this, "输入quit退出该闹钟的使用", "这是运行在Java中的指针式时钟");
if(help.equals("quit"))
dispose();
else {}
// timer.restart();
}
}

class SetTime {
String Hour;
String Minute;

public SetTime() { }
public SetTime(int hour, int minute) {
// 当时间参数小于10的时候在前面添加字符0
if (hour < 10) {
Hour = "0" + String.valueOf(hour);
} else {
Hour = "" + String.valueOf(hour);
}
if (minute < 10) {
Minute = "0" + String.valueOf(minute);
} else {
Minute = "" + String.valueOf(minute);
}
alarm = Hour + ":" + Minute;
time.setText(alarm);
repaint();
}
}
}

热点内容
淘宝密码账号在哪里看 发布:2025-02-08 04:29:39 浏览:535
描绘四季的美文写一份朗读脚本 发布:2025-02-08 04:29:21 浏览:138
金蝶软件服务器是电脑吗 发布:2025-02-08 04:27:06 浏览:972
linux如何搭建c编译环境 发布:2025-02-08 04:24:49 浏览:819
ps脚本批量处理切图 发布:2025-02-08 04:19:03 浏览:57
iisftp命令 发布:2025-02-08 04:04:39 浏览:455
安卓为什么软件老更新 发布:2025-02-08 03:53:40 浏览:735
算法实际应用 发布:2025-02-08 03:53:07 浏览:535
c语言加密文本 发布:2025-02-08 03:47:50 浏览:681
安卓打字键盘的声音在哪里调 发布:2025-02-08 03:42:27 浏览:32