⑴ c语言超过时间限制
从你的程序可以看出,是在求"从键盘输入一个大于2的整数k,输出不大于k的最大的素数。"你的程序尽管也可找出来,但选择的算法效率太低,你是从小到大逐一判断,然后取其最大的,这种方法需先求出不大于k的所有的素数,效率当然低了。正解是从大到小逐一判断,遇到的第一个素数即为不大于k的最大素数。程序可如下
#include <stdio.h>
#include <math.h>
void main( ) {
int i, k, n, f, s;
scanf("%d", k);
for(n = 0, f = k; !n && (f > 1); f--)
{
for(n = 1, i = 2, s = sqrt(f); n && (i <= s); i++)
if(f % i == 0) n = 0;
}
printf("The max prime number is %d\n", f);
}
⑵ c语言 如何在程序中加上时间限制
定义一个定时器就可以了。
settimer函数。
⑶ C语言写的SDK小程序,该如编写现程序自身限制使用期限(多少天)的功能啊
这个可以肯定要么把记数信息写到文件, 要么写到注册表
写文件的话,直接在一回个什么地方建一个文件,如答果你按次数,则每次启动软件时去更新那个文件内的记数, 如果最后为0了,那么软件提示并退出
如果是按天数,则文件内容可写为起始时间,每次运行计算一下当前时间和起始时间之差,这样看超过天数没
相应的函数有CreateFile, ReadFile, WriteFile等。
当然如果你想加密可以自己搞些加密算法把文件内容加密了,防止别人修改
注册表的方式就是把内容写到注册表,用的函数有RegOpenKey等
⑷ 单片机89C51程序里能否写入使用时间限制程序
你说的是哪种时间限制?是一般的定时,如连续工作1小时后关闭;还是说机器断断续续工作多长时间后不能开机?前一种很容易实现,定时器计时就可以了。后面的这个的话需要需要非易失存储器,如EEPROM。要防止别人轻易破解的话可以选用内部有EEPROM的51,像STC的(片擦除很慢,不太好用的说)。把累计时间放里面就可以掉电不丢失了。
⑸ 如何用vb实现软件使用时间限制
A: 应有的功能:
1) 给定一个试用期限,在系统每次启动时会判断软件已经使用了几天,还有几天可用以及启动的次数.
2) 当系统日期被修改成往日的日期后,系统能自动判别,禁止修改日期,不于正常启动.
3) 当试用期到,显示信息,不于启动程序.B:简单的思路
1) 在系统第一次运行时,在一个隐蔽的地方(如: c:\windows\system)建立一个用以记录系统信息的数据库文件,如date.mdb,使用一张表date,有三个字段first_time,last_time和times.其中first_time为系统第一次启动时的日期,即试用期的第一天.last_time为系统最近一次启动的时间,而times为记录系统启动的次数.
2) 系统每次启动会检测当前的日期同last_time做比较,如果当前的日期(如00/09/30)比last_time(如00/10/01)还旧,说明系统的日期被推后,显示信息,不于启动系统.反之,则转入第三步.
3) 取出数据库中的first_time,同当前的日期做减法运算,看所的的天数是否在使用期限内.如果在,则转入第四步,否则显示信息,不于启动系统.
4) 修改数据库的last_time字段为当前的日期,显示系统已经使用的情况,正常启动系统.
好了,罗罗嗦嗦讲了一大统,我想,大家一定都明白了,怎么样,我说不难吧,根本不用修改系统的注册表.只要大家把date.mdb藏好了,不被发现就万事大吉了.而且你可以给这个数据库加上密码,然后把first_time,last_time,times的字段名改个面目全非,就算有高手发现了数据库,破解了密码,他也不知道这三个字段的含义和这个数据库是那个软件所带的文件,呵呵,不说了,还是看看我的源码吧:
在您的工程中,请以SUB MAIN()启动程序.(什么,怎么设置,呵呵,"工程"==>"工程属性"==>"启动窗体")
Sub main()
On Error GoTo error
'系统检测是否有date.mdb文件,如果没有,则是系统第一次启动,则建立之
If Dir("c:\windows\system\date.mdb") = "" Then
'注意在开始,您要确定您的工程引用了Microsoft 2.5/3.5 compatibility library 在"工程"==>"引用"中.
Dim WS As Workspace
Dim DB As Database
Dim TD As Tabledef
Dim FLD As Field
Dim IDX As Index
Dim rd As Recordset
Set WS = DBEngine.Workspaces(0)
Set DB = WS.CreateDatabase("c:\windows\system\date.mdb", dbLangGeneral)
DB.Connect = ";pwd=andy"
Set TD = DB.CreateTableDef("date")
TD.Attributes = 0
TD.Connect = ""
TD.SourceTableName = ""
TD.ValidationRule = ""
TD.ValidationText = ""
' Field first_time
Set FLD = TD.CreateField("first_time", 8, 8)
FLD.Attributes = 1
FLD.DefaultValue = ""
FLD.OrdinalPosition = 0
FLD.Required = False
FLD.ValidationRule = ""
FLD.ValidationText = ""
TD.Fields.Append FLD
' Field last_time
Set FLD = TD.CreateField("last_time", 8, 8)
FLD.Attributes = 1
FLD.DefaultValue = ""
FLD.OrdinalPosition = 1
FLD.Required = False
FLD.ValidationRule = ""
FLD.ValidationText = ""
TD.Fields.Append FLD
' Field times
Set FLD = TD.CreateField("times", 3, 2)
FLD.Attributes = 1
FLD.DefaultValue = ""
FLD.OrdinalPosition = 2
FLD.Required = False
FLD.ValidationRule = ""
FLD.ValidationText = ""
TD.Fields.Append FLD
DB.TableDefs.Append TD
DB.Close
Set DB = WS.OpenDatabase("c:\windows\system\date.mdb")
Set rd = DB.OpenRecordset("date")
With rd
.AddNew
.Fields("first_time") = Date
.Fields("last_time") = Date
.Fields("times") = 1
.Update
End With
DB.Close
MsgBox "这是您第一次启动本系统!您的试用期为30天,今天是第一天.谢谢使用!", 48, "天华电脑艺术创意工作室"
'效果如图1 (见附件1)
mainForm.Show '启动您的主窗体
Else '系统有date.mdb文件,则不是第一次运行,就不用建立数据库文件了.
Dim WS2 As Workspace
Dim DB2 As Database
Dim rd2 As Recordset
Set WS2 = Workspaces(0)
Set DB2 = WS2.OpenDatabase("c:\windows\system\date.mdb", pwd = "springlover")
Set rd2 = DB2.OpenRecordset("date")
'开始检测用户是否修改了系统日期
rd2.MoveFirst
If rd2.Fields("last_time") > Date Then
MsgBox "对不起,您在本软件的试用期内不可以修改系统日期,否则将取消您对不系统的试用权.如果您想继续使用本软件,请您恢复系统日期.谢谢合作!", 48, "天华电脑艺术创意工作室"
'效果如图3 (见附件3)
End
End If
'开始检测是否超期
If Date - rd2.Fields("first_time") >= 30 Then '设定试用期为30天
MsgBox "您已经启动本系统" & rd2.Fields("times") & "次了,而且已经到了30天的试用期,如果您想继续使用本软件,请您到本公司注册并购买正版的软件!", 48, "天华电脑艺术创意工作室"
'效果如图4 (见附件4)
End
Else
'仍在试用期内
num% = rd2.Fields("times")
rd2.Edit
rd2.Fields("last_time") = Date
rd2.Fields("times") = num + 1
rd2.Update
MsgBox "这是您第" & rd2.Fields("times") & "次使用本系统,您还有" & 30 - (Date - rd2.Fields("first_time")) & "天的试用期,祝您今天工作愉快!", 48, "天华电脑艺术创意工作室" '
mainForm.Show '启动您的主窗体
End If
End If
Exit Sub
error:
MsgBox "系统错误!"
End Sub
⑹ 如何让试用程序使用期限限制不被破解
要想试用程序不被破解是不可能的。
试用程序:顾名思义,软件有一定的使用期限。即在固定的时间内可以使用,过了有效期,便不能再用或部分功能不能再使用。
试用版破解:
一般说来,在软件第一次安装时,或者是第一次运行时,它会以当前的日期时间作为基准,作为试用期的开始,记录在案怎么才能知道共享软件的使用次数记录在哪里呢使用Regshot这款软件就可以了运行Regshot程序后,会出现它简洁的界面。首先选择"plainTXT"表示注册表比较结果保存为TXT文件,然后按"lstshot"按钮,在弹出菜单中选择"shot"等到Regshot做完快照之后再运行共享软件.
当软件完全载入后,马上返回到regshot按下"2stshot"按钮,然后选择"shop"待注册表快照完毕以后,按下"compare"按钮,就可以看到软件运行时在注册表所做的改动了.所改动的键值就是软件的使用次数限制,
结果表示如下:
[HKEY_LOCAL_MACHINR\software\abc(软件名称)infomation]
"licemseNumber"="X"[HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion]"programeID"="X"
这里的"X"就是已经使用过的软件的次数,把"X"改为0,就可以再人使用最高次数了,有时由于一些软件把时间以加密的形式存入在注册表中,所以监视到的数据中有一串很奇怪的字符,虽然不知道它具体的加密算法,删除就可以解决问题了。
⑺ 如何给软件程序加使用时间限制
你可以来试试易通电脑锁7软件,源是一款不错的管理上网时间和电脑使用时间软件,它可以按时间段和累计时间来控制上网时间和电脑的使用时间。
软件使用时间管理里有一个禁止上网策略控制,能实现只允许指定程序上网或只禁止指定程序上网。
你可以到天空软件网站或华军软件网上去下载试试
⑻ C语言超出时限怎么改
#include<stdio.h>
int main(){
long n;
while(scanf("%ld",&n)!=EOF){
if(n%2==0||n%5==0||(n-5)%2==0)printf("yes ");
//如果时间要求太紧,这一行也可以改成
////if(n!=1&&n!=3)printf("yes ");
//在程序要求的输入中,既符合要求,又省时间
else printf("no
");
}
return 0;}
//这样改才符合题意,所有能用2元5元支付的价格不是2的倍数(偶数)就是5的倍数(一部分奇数),
//不过还有减去5后能被2整除的数
//(另一些奇数,与前面的5的倍数可以覆盖几乎所有奇数),
//比5小的数与5的差再被2整除只能得负数,一定不为0
//一定要多动脑筋呀,加油楼主
//等等我附个测试结果过来 编译器gcc
尾部的数据计算结果与实际一致
⑼ c语言时间限制
" 运行一个语句一段时间(如3分钟)。" --
这个语句 或程序块 需要 的执行 时间 是多少?
如果 这个 语句 或程序块 执行 需要 的 时间 长于 3 分钟,那么 这个 语句 或程序块 中 需要 嵌入 时间 测定 语句。
如果 时间 短于 3 分钟,你需要 加入 等待。
----------
等待函数:
void wait_ms ( int ms )
{
clock_t endwait;
endwait = clock () + ms;
while (clock() < endwait) {}
}
c 语言 时间:
clock_t t0, t1,t;
int dt;
dt = 3*60*1000; // 3分钟 == 毫秒数
if ( 满足条件了){
t0 = clock (); //开始时刻 毫秒
t1 = t0 + dt; //目标终止 时刻
这里执行语句或程序块,假定 时间 短于 3 分钟
t = t1 - clock (); // 等待时间 毫秒数
wait_ms(t); // 等待
}
===============
执行语句或程序块,假定 时间 长于 3 分钟 , 执行语句或程序块中要 嵌入:
t = clock();
比较 t 与 目标 t1 , if (t>=t1) 终止 程序。
===================================
一般这类程序 要用 c++ . 定时控制 用 timer ( 定时器) 或
运行 线程:
std::thread xc1 (foo,t0,3);
时间控制,到时间则 关闭线程。
⑽ 西门子PLC如何设置使用期限
二复S7-300/400、S1200、S1500系列
这一系列的制PLC日期和时间数据类型主要包括;1日期( Date)、2日时间(Time_Of_ Day)、3长日时间LTOD (LTime_Of_Day)、4日期时间DT( Date_And_Time)、5日期长时间LDT (Date_And_LTime)、6长日期时间DTL。
只要编写程序判断当前的日期,是否大于或等于你设定的停机日期就可以了
如果时间到了,就通过写程序,禁止执行用户程序PLC就停机了。
利用系统始终位来做秒、小时、天累计,时间到,置位一个位,使之关闭一些功能。或者提前输出几个位,用来提示时间到提示。但是,千万不能轻易用来停机,发生事故的话,要承担责任的。
网络1 :一小时计时
LD SM0.0
A SM0.4
LD C1
CTU C1,60
网络2:90天*24小时计时
LD C1
LD C10
CTU C2,2160
在系统块设定密码 禁止修改程序西门子密码破解很难 计数器C2在3个月后动作