
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语言编写一个计算器程序,实现加,减,乘,除,求平方根(正数),倒数等功能.等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)