易语言怎么做倒计时

易语言怎么做倒计时,第1张

1个标签,1个编辑框,2个按钮,1个时钟,1个选择列表框 程序集 窗口程序集1

程序集变量 倒计时子程序 __启动窗口_创建完毕选择列表框1加入项目 (“小时”, )

选择列表框1加入项目 (“分钟”, )

选择列表框1加入项目 (“秒”, )

选择列表框1单选 = 真子程序 _按钮1_被单击时钟1时钟周期 = 0子程序 _按钮2_被单击判断开始 (选择列表框1现行选中项 = 0)

标签1标题 = 时间_格式化 (时间_到秒 (到数值 (编辑框1内容), 2))

倒计时 = 时间_到秒 (到数值 (编辑框1内容), 2)

判断 (选择列表框1现行选中项 = 1)

标签1标题 = 时间_格式化 (时间_到秒 (到数值 (编辑框1内容), 1))

倒计时 = 时间_到秒 (到数值 (编辑框1内容), 1)

判断 (选择列表框1现行选中项 = 2)

标签1标题 = 时间_格式化 (到数值 (编辑框1内容))

倒计时 = 到数值 (编辑框1内容)

默认判断结束时钟1时钟周期 = 1000子程序 _时钟1_周期事件倒计时 = 倒计时 - 1

标签1标题 = 时间_格式化 (倒计时)子程序 时间_格式化, 文本型

参数 秒, 整数型

局部变量 分, 整数型

局部变量 时, 整数型

局部变量 天, 整数型

局部变量 初始化格式, 文本型判断循环首 (秒 > 59)

分 = 分 + 1

秒 = 秒 - 60

判断循环尾 ()

判断循环首 (分 > 59)

时 = 时 + 1

分 = 分 - 60

判断循环尾 ()

判断循环首 (时 > 23)

天 = 天 + 1

时 = 时 - 24

判断循环尾 ()

如果 (天 = 0)

初始化格式 = 时间_格式化2 (时) + “小时” + 时间_格式化2 (分) + “分钟” + 时间_格式化2 (秒) + “秒”

否则

初始化格式 = 到文本 (天) + “天 ” + 时间_格式化2 (时) + “小时” + 时间_格式化2 (分) + “分钟” + 时间_格式化2 (秒) + “秒”

如果结束返回 (初始化格式)子程序 时间_格式化2, 文本型

参数 时间, 整数型

局部变量 格式化, 文本型判断开始 (时间 < 10)

格式化 = “0” + 到文本 (时间)

判断 (时间 = 0)

格式化 = “00”

默认

格式化 = 到文本 (时间)

判断结束

返回 (格式化)子程序 时间_到秒, 整数型

参数 时间, 整数型

参数 时间类型, 整数型, , 1:分 2:时 3:天

局部变量 秒, 整数型判断开始 (时间类型 = 1)

秒 = 时间 × 60

判断 (时间类型 = 2)

秒 = 时间 × 3600

判断 (时间类型 = 3)

秒 = 时间 × 24 × 3600

默认判断结束返回 (秒)

'添加 Line1 Line2 Line3 Timer1

Dim xx1%, yy1% '宣告变量xx1,yy1为整型(给圆心用的)

Private Sub Form_Load()

MeAutoRedraw = True '重画为真

'窗体置中

MeMove (ScreenWidth - MeWidth) \ 2, (ScreenHeight - meiheight) \ 2

'计算圆心的x轴 xx1

xx1 = MeWidth \ 2

'计算圆心的y轴 yy1

yy1 = (MeHeight - 405) \ 2

'将下面3根针的起点x1,y1全定位在圆心上

Line1X1 = xx1: Line1Y1 = yy1

Line2X1 = xx1: Line2Y1 = yy1

Line3X1 = xx1: Line3Y1 = yy1

'画钟的外匡让线条粗一点

MeDrawWidth = 5

'画一个圆

MeCircle (xx1, yy1), 950

Line2BorderWidth = 1 '秒针的粗度

Line2BorderColor = QBColor(12) '秒针的颜色

Line1BorderWidth = 2 '分针的粗度

Line1BorderColor = QBColor(14) '分针的颜色

Line3BorderWidth = 3 '时针的粗度

Line3BorderColor = QBColor(10) '时针的颜色

Timer1Interval = 500

End Sub

Private Sub Timer1_Timer()

MeCaption = Time '标题栏显示现在时间

' Second Hand '画秒针

'计算秒针的角度,每一秒是 360度除以60秒=6度, 所以要乘上6

sdeg = Second(Time) 6

'vb是以弧度为单位来计算,所以角度换算弧度是 314/180, 秒针跑了N度就乘上N

srad = (314 / 180) sdeg

'900是秒针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时line2x2在什么位置

Line2X2 = Line2X1 + (900 Sin(srad))

'900是秒针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时line2y2在什么位置

Line2Y2 = Line2Y1 - (900 Cos(srad))

' Minute Hand '画分针

'计算分针的角度,每一分是360度除以60分=6度, 所以要乘上6,秒针动分针也会动,所以还要加上秒针移动所产生的分针移动

'秒针转了1圈360度,分针才会前进1分钟=6度,所以比例是 6/360等于 1/60

Mdeg = Minute(Time) 6 + (sdeg 1 / 60)

'vb是以弧度为单位来计算,所以角度换算弧度是 314/180, 分针跑了N度就乘上N

mrad = (314 / 180) Mdeg 'vb是以弧度为单位来计算,所以角度换算弧度是 314/180, 分针跑了N度就乘上N

'750是分针的长度,以圆心(line1的x1,y1)为准,计算出在这个弧度时line1x2在什么位置

Line1X2 = (750 Sin(mrad)) + Line1X1

'750是分针的长度,以圆心(line1的x1,y1)为准,计算出在这个弧度时line1y2在什么位置

Line1Y2 = Line1Y1 - (750 Cos(mrad))

' Hour Hand '画时针

'计算时针的角度,每一小时时针跑30度,分针动时针也会动,所以还要加上分针移动所产生的时针移动

'分针转了1圈360度,时针才会前进1刻划=30度,所以比例是 30/360等于 1/12

hdeg = Hour(Time) 30 + (Mdeg / 12)

'vb是以弧度为单位来计算,所以角度换算弧度是 314/180, 时针跑了N度就乘上N

hrad = (314 / 180) hdeg

'500是时针的长度,以圆心(line3的x1,y1)为准,计算出在这个弧度时line3x2在什么位置

Line3X2 = (500 Sin(hrad)) + Line3X1

'500是时针的长度,以圆心(line3的x1,y1)为准,计算出在这个弧度时line3y2在什么位置

Line3Y2 = Line3Y1 - (500 Cos(hrad))

End Sub

参考资料:

>

#include<iostream>

#include<cmath>

#include<string>

using

namespace

std;

const

double

pi

=

314159265;

const

double

e

=

2718281828459;

const

int

SIZE

=

1000;

typedef

struct

node//为了处理符号而建立的链表(如:

1+(-2))

{

char

data;

node

next;

}node;

typedef

struct

stack_num//存储

的栈

{

double

top;

double

base;

}stack_num;

typedef

struct

stack_char//存储

运算符号

的栈

{

char

top;

char

base;

}stack_char;

stack_num

S_num;//定义

stack_char

S_char;//定义

char

fu[18]

=

{'\n',

')',

'+',

'-',

'',

'/',

'%',

'^',

'Q',

'L',

'C',

'S',

'T',

'c',

's',

't',

'('};

int

compare[1000];//表现出各运算符号的优先级

double

shu[1000];//存储

"数"

的数组

double

dai_result;//运算的结果,是为了处理

M

运算(简介函数里有M的定义)

int

biao

=

0;//和dia_result

一样,为了处理

M

运算

char

line[SIZE];//输入的所要计算的表达式

void

init()//初始化

{

compare[fu[0]]

=

-2;//用数字的大小表现出符号的优先级

compare[fu[1]]

=

-1;

compare[fu[2]]

=

2;

compare[fu[3]]

=

2;

compare[fu[4]]

=

4;

compare[fu[5]]

=

4;

compare[fu[6]]

=

4;

compare[fu[7]]

=

5;

for(int

i

=

8;

i

<=

15;

i++)

compare[fu[i]]

=

6;

compare[fu[16]]

=

7;

S_numbase

=

(double)malloc(sizeof(double)SIZE);//为栈开辟空间

S_charbase

=

(char)malloc(sizeof(char)SIZE);//同上

S_numtop

=

S_numbase;

S_chartop

=

S_charbase;

}

void

push_num(double

n)//数字进栈

{

++S_numtop

=

n;

}

void

push_char(char

c)//运算符号进栈

{

++S_chartop

=

c;

}

double

pop_num()//数字出栈

{

double

m

=

S_numtop;

S_numtop--;

return

m;

}

char

pop_char()//运算符号出栈

{

char

cc

=

S_chartop;

S_chartop--;

return

cc;

}

char

get_top_char()//得到运算符号的栈中最顶端的运算符号

{

return

S_chartop;

}

double

operate(double

y,

char

c,

double

x)//

对两个数计算

(

含是双目运算符

:

,

/

等等

)

{

double

r;

if(c

==

'-')

r

=

x

-

y;

else

if(c

==

'+')

r

=

x

+

y;

else

if(c

==

'/'

&&

y

!=

0)

r

=

x

/

y;

else

if(c

==

'')

r

=

x

y;

else

if(c

==

'^')

{

r

=

1;

for(int

i

=

1;

i

<=

y;

i++)

r

=

x;

}

else

if(c

==

'%')

{

int

r0

=

(int)x

%

(int)y;

r

=

double(r0);

}

return

r;

}

double

operate_one(double

one,

char

cc)//

对一个数运算

(

含单目运算符

:

log(L),

sin(S)

等等

)

{

double

r;

if(cc

==

'Q')

r

=

sqrt(one);

else

if(cc

==

'C')

r

=

cos(one);

else

if(cc

==

'S')

r

=

sin(one);

else

if(cc

==

'T')

r

=

tan(one);

else

if(cc

==

'c')

i++;

}

i++;

}

if(ge

>=

3)

return

0;

else

return

1;

}

void

output(double

result)//

打出结果

{

printf("

所得结果是

:

");

cout<<result<<endl;

}

void

check()//

检查表达式是否合法

{

void

introduce();

char

cc;//

决定计算器按哪种功能进行计算

double

result;//

结果

void

input();//

定义

if(

check_kuohao()

&&

check_char()

)//

看是否合法

,

合法则计算

{

result

=

compute();

output(result);

cout<<"

输入一个字符

'M'

'D'

'F',

决定是否继续

:

"<<endl;

while(cin>>cc)

{

if(cc

==

'M')

{

system("cls");

introduce();

printf("

您上次所得结果为

:

");

cout<<result<<endl;

cout<<"

在上次计算结果的基础上

,

请继续输入想计算的表达式

"<<endl;

dai_result

=

result;

biao

=

1;

input();//

输入表达式

break;

}

else

if(cc

==

'D')

{

system("cls");

introduce();

cout<<"

计算器已清零

,

请输入您所要计算的表达式

"<<endl;

input();//

输入表达式

break;

}

else

if(cc

==

'F')

{

system("cls");

cout<<"

计算器关闭

,

谢谢使用

!"<<endl;

break;

}

else

{

cout<<"

所输入字符无效

,

请输入一个字符

'M'

'D'

'F'!"<<endl;

continue;

}

}

}

else//

不合法,分两种不合法

{

if(check_kuohao()

==

0

&&

check_char()

==

1)

{

cout<<"

您所输入的表达式括号不匹配

,

请重新输入

:"<<endl;

input();//

输入表达式

}

else

{

cout<<"

您所输入的表达式不合法

,

请重新输入

:"<<endl;

input();//

输入表达式

}

}

}

void

tackle_fuhao()//

处理负号

{

node

root,

head,

p,

q,

p1;

root

=

head

=

new

node;

head->next

=

NULL;

int

i;

for(i

=

0;

line[i]

!=

'\0';

i++)//

建立链表

{

p

=

new

node;

p->data

=

line[i];

p->next

=

head->next;

head->next

=

p;

head

=

p;

}

//

delete

p;

q

=

(node)malloc(sizeof(node));

head

=

root;

if(root->next->data

==

'+'

||

root->next->data

==

'-')//

处理第一个字符

{

p

=

new

node;

p->data

=

'0';

p->next

=

head->next;

head->next

=

p;

}

if(root->next

!=

NULL)

{

for(q

=

root->next;

q;

q

=

q->next)

{

if(q->data

==

'('

&&

(q->next->data

==

'-'

||

q->next->data

==

'+'))

{

p

=

new

node;

p->data

=

'0';

p->next

=

q->next;

q->next

=

p;

}

}

}

//

delete

q;

p1

=

new

node;

int

qi

=

-1;

for(p1

=

root->next;

p1;

p1

=

p1->next)

{

line[++qi]

=

p1->data;

}

line[++qi]

=

'\0';

}

void

input()//

输入

{

cin>>line;

if(biao

==

0)

tackle_fuhao();//

处理负号

check();//

检查表达式是否合法

}

void

introduce()//

对计算器的符号功能的简要介绍

{

cout<<"

计算器简要介绍

"<<endl;

cout<<"C(cos)

S(sin)

T(tan)

a(arccos)

c(arcsin)

"<<endl;

cout<<"7

8

9

/

on

t(arctan)

"<<endl;

cout<<"4

5

6

%

L(log)"<<endl;

cout<<"1

2

3

-

M(M+)

Q(sqrt)

"<<endl;

cout<<"0

+

^(

乘方

)

F(off)

Enter(=)

"<<endl;

cout<<"

对于对数输入

L2_5

表示以

2

为底

5

的对数

"<<endl;

cout<<"M(

在前面结果的基础上继续计算,

如:

上次结果为

10

现输入

+1052)"<<endl;

cout<<"D(

清零并继续输入

)"<<endl;

cout<<"F(

计算机关闭

)"<<endl;

cout<<"

输入

P

就代表输入圆周率

,

输入

E

代表输入自然对数

"<<endl<<endl;

}

void

print()

{

system("color

2");

cout<<"

欢迎使用本计算器

"<<endl;

cout<<"

输入一个字符串

on,

计算器开始启动

"<<endl;

}

void

if_start()//

是否启动计算器

{

string

start;

print();

while(cin>>start)

{

if(start

!=

"on")

{

cout<<"

您所输入的字符无效

,

请按照介绍的继续输入

:"<<endl;

continue;

}

else

break;

}

if(start

==

"on")

{

system("color

5");//

颜色的处理

system("cls");//

刷屏

}

introduce();//

对计算器的简要介绍

cout<<"

现在

,

请输入您所要计算的表达式

"<<endl;

input();//

输入所要计算的表达式

}

int

main()

{

if_start();//

调用是否启动计算器函数

return

0;

}

r

=

acos(one);

else

if(cc

==

's')

r

=

asin(one);

else

if(cc

==

't')

r

=

atan(one);

#include <reg51h>

sbit lred=P2^0;

sbit lyellow=P2^1;

sbit lgreen=P2^2;

sbit hred=P2^4;

sbit hyellow=P2^5;

sbit hgreen=P2^6;

unsigned char n;

unsigned char m;

void main()

{ P2=0;

n=0;

m=0;

IE=0x82;

TH0=(65535-50000)/256;

TL0=(65535-50000)%256;

TR0=1;

while(1)

{ if(80==n)

{m++;

m=m%4;

n=0; }

if(0==m)

{ lred=1;

lyellow=0;

lgreen=0;

hred=0;

hyellow=0;

hgreen=1;

}

if(1==m)

{ lred=1;

lyellow=0;

lgreen=0;

hred=0;

hyellow=1;

hgreen=0; }

if(2==m)

{ lred=0;

lyellow=0;

lgreen=1;

hred=1;

hyellow=0;

hgreen=0; }

if(3==m)

{ lred=1;

lyellow=1;

lgreen=0;

hred=1;

hyellow=0;

hgreen=0; } }}

void time0() interrupt 1 using 2

{ TH0=(65535-50000)/256;

TL0=(65535-50000)%256;

n++;

}

以上就是关于易语言怎么做倒计时全部的内容,包括:易语言怎么做倒计时、vb 如何编个倒数几个小时的程序、用C语言编写一个计算器程序,实现加,减,乘,除,求平方根(正数),倒数等功能.等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10107936.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存