援用usingXfrog.Net;用法如:JsonObjectnewObj=newJsonObject("json字符串");StringerrorCode=newObj["error_code"].Value;//获取其中的属性值。
2016/2/17 1:29:36 6KB JsonObject
1
操作系统课的实验(银里手算法)#include"malloc.h"  #include"stdio.h"  #include"stdlib.h"  #definealloclensizeof(structallocation)  #definemaxlensizeof(structmax)  #defineavalensizeof(structavailable)  #defineneedlensizeof(structneed)  #definefinilensizeof(structfinish)  #definepathlensizeof(structpath)  structallocation  {  intvalue;  structallocation*next;  };  structmax  {  intvalue;  structmax*next;  };  structavailable/*可用资源数*/  {  intvalue;  structavailable*next;  };  structneed/*需求资源数*/  {  intvalue;  structneed*next;  };  structpath  {  intvalue;  structpath*next;  };  structfinish  {  intstat;  structfinish*next;  };  intmain()  {  introw,colum,status=0,i,j,t,temp,processtest;  structallocation*allochead,*alloc1,*alloc2,*alloctemp;  structmax*maxhead,*maxium1,*maxium2,*maxtemp;  structavailable*avahead,*available1,*available2,*workhead,*work1,*work2,*worktemp,*worktemp1;  structneed*needhead,*need1,*need2,*needtemp;  structfinish*finihead,*finish1,*finish2,*finishtemp;  structpath*pathhead,*path1,*path2;  printf("\n请输入系统资源的种类数:");  scanf("%d",&colum);  printf("请输入现时内存中的进程数:");  scanf("%d",&row);  printf("请输入已分配资源矩阵:\n");  for(i=0;inext=alloc2->next=NULL;  scanf("%d",&allochead->value);  status++;  }  else  {  alloc2=(structallocation*)malloc(alloclen);  scanf("%d,%d",&alloc2->value);  if(status==1)  {  allochead->next=alloc2;  status++;  }  alloc1->next=alloc2;  alloc1=alloc2;  }  }  }  alloc2->next=NULL;  status=0;  printf("请输入最大需求矩阵:\n");  for(i=0;inext=maxium2->next=NULL;  scanf("%d",&maxium1->value);  status++;  }  else  {  maxium2=(structmax*)malloc(maxlen);  scanf("%d,%d",&maxium2->value);  if(status==1)  {  maxhead->next=maxium2;  status++;  }  maxium1->next=maxium2;  maxium1=maxium2;  }  }  }  maxium2->next=NULL;  status=0;  printf("请输入现时系统剩余的资源矩阵:\n");  for(j=0;jnext=available2->next=NULL;  work1->next=work2->next=NULL;  scanf("%d",&available1->value);  work1->value=available1->value;  status++;  }  else  {  available2=(structavailable*)malloc(avalen);  work2=(structavailable*)malloc(avalen);  scanf("%d,%d",&available2->value);  work2->value=available2->value;  if(status==1)  {  avahead->next=available2;  workhead->next=work2;  status++;  }  available1->next=available2;  available1=available2;  work1->next=work2;  work1=work2;  }  }  available2->next=NULL;  work2->next=NULL;  status=0;  alloctemp=allochead;  maxtemp=maxhead;  for(i=0;inext=need2->next=NULL;  need1->value=maxtemp->value-alloctemp->value;  status++;  }  else  {  need2=(structneed*)malloc(needlen);  need2->value=(maxtemp->value)-(alloctemp->value);  if(status==1)  {  needhead->next=need2;  status++;  }  need1->next=need2;  need1=need2;  }  maxtemp=maxtemp->next;  alloctemp=alloctemp->next;  }  need2->next=NULL;  status=0;  for(i=0;inext=finish2->next=NULL;  finish1->stat=0;  status++;  }  else  {  finish2=(structfinish*)malloc(finilen);  finish2->stat=0;  if(status==1)  {  finihead->next=finish2;  status++;  }  finish1->next=finish2;  finish1=finish2;  }  }  finish2->next=NULL;/*Initializationcompleated*/  status=0;  processtest=0;  for(temp=0;tempstat==0)  {  for(j=0;jnext,worktemp=worktemp->next)  if(needtemp->valuevalue)  processtest++;  if(processtest==colum)  {  for(j=0;jvalue+=alloctemp->value;  worktemp1=worktemp1->next;  alloctemp=alloctemp->next;  }  if(status==0)  {  pathhead=path1=path2=(structpath*)malloc(pathlen);  path1->next=path2->next=NULL;  path1->value=i;  status++;  }  else  {  path2=(structpath*)malloc(pathlen);  path2->value=i;  if(status==1)  {  pathhead->next=path2;  status++;  }  path1->next=path2;  path1=path2;  }  finishtemp->stat=1;  }  else  {  for(t=0;tnext;  finishtemp->stat=0;  }  }  else  for(t=0;tnext;  alloctemp=alloctemp->next;  }  processtest=0;  worktemp=workhead;  finishtemp=finishtemp->next;  }  }  path2->next=NULL;  finishtemp=finihead;  for(temp=0;tempstat==0)  {  printf("\n系统处于非安全状态!\n");  exit(0);  }  finishtemp=finishtemp->next;  }  printf("\n系统处于安全状态.\n");  printf("\n安全序列为:\n");  do  {  printf("p%d",pathhead->value);  }  while(pathhead=pathhead->next);  printf("\n");  return0;  }#include"string.h"#include#include#defineM5#defineN3#defineFALSE0#defineTRUE1/*M个进程对N类资源最大资源需求量*/intMAX[M][N]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}};/*系统可用资源数*/intAVAILABLE[N]={10,5,7};/*M个进程对N类资源最大资源需求量*/intALLOCATION[M][N]={{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}};/*M个进程已经得到N类资源的资源量*/intNEED[M][N]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}};/*M个进程还需要N类资源的资源量*/intRequest[N]={0,0,0};voidmain(){inti=0,j=0;charflag='Y';voidshowdata();voidchangdata(int);voidrstordata(int);intchkerr(int);showdata();while(flag=='Y'||flag=='y'){i=-1;while(i=M){printf("请输入需申请资源的进程号(从0到");printf("%d",M-1);printf(",否则重输入!):");scanf("%d",&i);if(i=M)printf("输入的进程号不存在,重新输入!\n");}printf("请输入进程");printf("%d",i);printf("申请的资源数\n");for(j=0;jNEED[i][j]){printf("进程");printf("%d",i);printf("申请的资源数大于进程");printf("%d",i);printf("还需要");printf("%d",j);printf("类资源的资源量!申请不合理,出错!请重新选择!\n");/*printf("申请不合理,出错!请重新选择!\n");*/flag='N';break;}else{if(Request[j]>AVAILABLE[j]){printf("进程");printf("%d",i);printf("申请的资源数大于系统可用");printf("%d",j);printf("类资源的资源量!申请不合理,出错!请重新选择!\n");/*printf("申请不合理,出错!请重新选择!\n");*/flag='N';break;}}}if(flag=='Y'||flag=='y'){changdata(i);if(chkerr(i)){rstordata(i);showdata();}elseshowdata();}elseshowdata();printf("\n");printf("是否继续银里手算法演示,按'Y'或'y'键继续,按'N'或'n'键退出演示:");scanf("%c",&flag);}}voidshowdata(){inti,j;printf("系统可用的资源数为:\n");printf("");for(j=0;j");}printf("\n");return0;}
2015/11/20 3:54:43 883KB 算法 银行家
1
CSerialPortFirstVersionbyRemonSpekreijseon2000-02-08http://www.codeguru.com/cpp/i-n/network/serialcommunications/article.php/c2483/A-communication-class-for-serial-port.htmSecondVersionbymrlongon2007-12-25https://code.google.com/p/mycom/增加ClosePort增加WriteToPort两个方法增加SendData与RecvData方法byliquanhaion2011-11-04http://blog.csdn.net/liquanhai/article/details/4955253增加ClosePort中交出控制权,防止死锁问题byliquanhaion2011-11-06http://blog.csdn.net/liquanhai/article/details/6941574增加ReceiveChar中防止线程死锁byviruscampon2013-12-04https://github.com/viruscamp/CSerialPort增加IsOpen判断能否打开修正InitPort中parityOddEven参数取值错误修改InitPort中portnr取值范围,portnr>9时特殊处理取消对MFC的依赖,使用HWND替代CWnd,使用win32thread函数而不是MFC的增加用户消息编号自定义,方法来自CnCommbyitas109on2014-01-10http://blog.csdn.net/itas109/article/details/18358297解决COM10以上端口无法显示的问题扩展可选择端口,最大值MaxSerialPortNum可以自定义添加QueryKey()和Hkey2ComboBox两个方法,用于自动查询当前有效的串口号。
byliquanhaion2014-12-18增加一些处理措施,主要是对减少CPU占用率byitas109on2016-05-07http://blog.csdn.net/itas109修复每次打开串口发送一次,当串口无应答时,需要关闭再打开或者接收完数据才能发送的问题。
解决办法:在m_hEventArray中调整m_hWriteEvent的优先级高于读的优先级。
CommThread(LPVOIDpParam)函数中读写的位置也调换。
参考:http://zhidao.baidu.com/link?url=RSrbPcfTZRULFFd2ziHZPBwnoXv1iCSu_Nmycb_yEw1mklT8gkoNZAkWpl3UDhk8L35DtRPo5VV5kEGpOx-Gea修复停止位在头文件中定义成1导致SetCommState报错的问题,应为1对应的停止位是1.5。
UINTstopsbits=ONESTOPBITswitch(stopbits)和switch(parity)增加默认情况,增强程序健壮性byitas109on2016-06-22http://blog.csdn.net/itas109增加ReceiveStr方法,用于接收字符串(接收缓冲区有多少字符就接收多少字符)。
解决ReceiveChar只能接收单个字符的问题。
byitas109on2016-06-29http://blog.csdn.net/itas109解决RestartMonitoring方法和StopMonitoring方法命令不准确引起的歧义,根据实际作用。
将RestartMonitoring更改为ResumeMonitoring,将StopMonitoring更改为SuspendMonitoring。
增加IsThreadSuspend方法,用于判断线程能否挂起。
改进ClosePort方法,增加线程挂起判断,解决由于线程挂起导致串口关闭死锁的问题。
增加IsReceiveString宏定义,用于接收时采用单字节接收还是多字节接收byitas109on2016-08-02http://blog.csdn.net/itas109https://github.com/itas109改进IsOpen方法,m_hComm增加INVALID_HANDLE_VALUE的情况,因为CreateFile
2021/9/12 2:07:30 19KB CSerialPort 串口类 串口
1
verilogPLIhandbookexample例子chapter.01\build_vpi_XL.mak..........\hello_test.log..........\hello_test.v..........\hello_vpi.c..........\show_value_test.log..........\show_value_test.v..........\show_value_vpi.c..........\vpi_user_XL.c.........2\build_vpi_XL.mak.......
2015/6/22 16:22:01 364KB verilog PLI handbook example
1
Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。
它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。
Spring.NET以Java版的Spring框架为基础,将Spring.Java的核心概念与思想移植到了.NET平台上。
第一章序言第二章简介2.1.概述2.2.背景2.3.模块2.4.许可证信息2.5.支持第三章背景3.1.控制反转第一部分核心技术第四章对象、对象工厂和应用程序上下文4.1.简介4.2.IObjectFactory,IApplicationContext和IObjectDefinition接口引见4.2.1.TheIObjectFactory和IApplicationContext4.2.2.对象定义4.2.3.对象的创建4.2.3.1.通过构造器创建对象4.2.3.2.通过静态工厂方法创建对象4.2.3.3.通过实例工厂方法创建对象4.2.4.泛型类的对象创建4.2.4.1.通过构造器创建泛型类的对象4.2.4.2.通过静态工厂方法创建泛型类的对象4.2.4.3.通过实例工厂方法创建泛型类的对象4.2.5.对象标识符(id和name)4.2.6.Singleton和Prototype4.3.属性,协作对象,自动装配和依赖检查4.3.1.设置对象的属性和协作对象4.3.2.构造器参数解析4.3.2.1.根据参数类型匹配构造器参数4.3.2.2.根据参数索引匹配构造器参数4.3.2.3.根据名称匹配构造器参数4.3.3.详细讨论对象属性和构造器参数4.3.3.1.设置空值4.3.3.2.设置集合值4.3.3.3.设置泛型集合的值4.3.3.4.设置索引器属性4.3.3.5.内联对象定义4.3.3.6.idref节点4.3.3.7.引用协作对象4.3.3.8.value和ref节点的简短格式4.3.3.9.复合属性名4.3.4.方法注入4.3.4.1.查询方法注入4.3.4.2.替换任意方法4.3.5.引用其他对象或类型的成员4.3.5.1.使用对象或类的属性值进行注入4.3.5.2.使用字段值进行注入4.3.5.3.使用方法的返回值进行注入4.3.6.IFactoryObject接口的其它实现4.3.6.1.Log4Net4.3.7.使用depends-on4.3.8.自动装配协作对象4.3.9.检查依赖项4.4.类型转换4.4.1.枚举类型的转换4.4.2.内置的类型转换器4.4.3.自定义类型转换器4.4.3.1.使用CustomConverterConfigurer类4.5.自定义对象的行为4.5.生命周期接口4.5.1.1.IInitializingObject接口和init-method属性4.5.1.2.IDisposable接口和destroy-method属性4.5.2.让对象了解自己的容器4.5.2.1.IObjectFactoryAware接口4.5.2.2.IObjectNameAware接口4.5.3.IFactoryObject接口4.6.抽象与子对象定义4.7.与IObjectFactory接口交互4.7.1.获得IFactoryObject对象本身,而非其产品4.8.使用IObjectPostProcessor接口自定义对象4.9.使用IObjectFactoryPostProcessor定制对象工厂4.9.1.PropertyPlaceholderConfigurer类4.9.1.1.使用环境变量进行替换4.9.2.PropertyOverrideConfigurer类4.10.使用alias节点为对象添加别名4.11.IApplicationContext简介4.12.配置应用程序上下文4.12.1.注册自定义解析器4.12.2.创建自定义资源处理器4.12.3.配置类型别名4.12.4.注册类型转换器4.13.IApplicationContext接口的扩展功能4.13.1.上下文继承4.13.2.使用IMessageSource接口4.13.3.在Spring.NET内部使用资源4.13.4.松耦合事件模型4.13.5.IApplicationContext的事件通知4.14.定制IApplicationContex中对象的行为4.14.1.IApplicationContextAware标识接口4.14.2.IObjectPostProcessor接口4
2018/6/2 6:28:01 1.02MB spring.net 中文手册 在线版
1
MonggoDB教程,MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器功能。
MongoDB旨在为WEB应用提供可扩展的高功能数据存储解决方案。
MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。
MongoDB文档类似于JSON对象。
字段值可以包含其他文档,数组及文档数组。
2019/1/6 8:54:11 1.27MB MonggoDB
1
Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,次要用于在一个工作流内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的key:value对的方式,通过配置中的dependencies来设置依赖关系。
Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
2016/5/8 15:34:02 1.23MB 大数据——Azkaban
1
googleplayservices总包;
从11.0.0版本开始;
里面包含ads等aar包,eclipse开发如果需要使用,需要将aar包解紧缩,得到Class.jar;
AndroidManifest.xml<meta-dataandroid:name="com.google.android.gms.version"android:value="@integer/google_play_services_version"/>google_play_services_version=版本号比如:version=11.0.4google_play_services_version=11040000xml加入11040000
2018/6/27 4:24:55 44.91MB google play services
1
{"legend":[{"layerModelname":"东城区","layerModelId":"i9nrpwzu1kw11vpucexz2hokcbo0vs2m","color":"#8B1C62","instruction":"东华门街道","id":"jzx85gtpswpbrj9p2qupjwmpph930wdd","describes":"东华门街道"},{"layerModelname":"东城区","layerModelId":"i9nrpwzu1kw11vpucexz2hokcbo0vs2m","color":"#00868B","instruction":"东四街道","id":"zd9gq4otpvmiputoumwwn8a5jrvondhr","describes":"东四街道"}}{"value":{"layersId":"3Fp5GNEBK3ENPGQymTHvh9mYodLHu","drawinglegendId":"zd9gq4otpvmiputoumwwn8a5jrvondhr","plan":"116.42393733733732,39.930572856169746;116.42392895323428,39.931331910273165;116.42386823059152,39.93221107841911;116.42384413382415,39.93276287417913;116.42382579006845,39.933232945354746;116.42365662758634,39.938096703438816;116.42360451320152,39.939730829305034;116.42359881328315,39.939865739329335;116.42385833617757,39.939864733202874;116.42679465295134,39.93984589154487;116.42926382016613,39.93981045164755;116.43107572715725,39.939784982717036;116.43340461015269,39.939742348058495;116.4352686399846,39.93971737479724;116.43837200130523,39.93966782346968;116.44001926409479,39.93964090167144;116.4406713049977,39.939630101909614;116.44075831904075,39.93708097107278;116.44085194062598,39.93459803333902;116.44091152081104,39.933688263018404;116.44095585281497,39.93282109373771;116.44101473978341,39.931706033133544;116.44104710408965,39.93102029765171;116.44106337735111,39.930377982200675;116.44042145364678,39.930388551781384;116.43939983553172,39.93040194312403;116.43753498761812,39.93041177558564;116.43606561040339,39.93040673618401;116.43483508328924,39.9304192999007;116.43355846727941,39.93044124919523;116.4321501038635,39.930478592557606;116.43057979277104,39.930497714335786;116.42909212049327,39.93051989660546;116.42754251610903,39.93056156253648;116.42608899821994,39.930562473329324;116.424675639158,39.93056935719852"},"key":"3Fp5GNEBK3ENPGQymTHvh9mYodLHu"}
2017/5/25 3:20:51 3.9MB 地图 行政区 街道 北京市
1
redis64-2.8.9.rar64位。
Redis是一个开源的使用ANSIC言语编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种言语的API。
2022/9/8 8:35:30 1.05MB redis
1
共 70 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡