虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

GET-next

  • 用于锂 - 硫电池的纳米结构金属氧化物和硫化物(1)

    Lithium–sulfur (Li–S) batteries with high energy density and long cycle life are considered to be one of the most promising next-generation energy-storage systems beyond routine lithium-ion batteries. Various approaches have been proposed to break down technical barriers in Li–S battery systems. The use of nanostructured metal oxides and sulfides for high sulfur utilization and long life span of Li–S batteries is reviewed here. The relationships between the intrinsic properties of metal oxide/sulfide hosts and electrochemical performances of Li–S batteries are discussed. Nanostructured metal oxides/ sulfides hosts used in solid sulfur cathodes, separators/interlayers, lithium- metal-anode protection, and lithium polysulfides batteries are discussed respectively. Prospects for the future developments of Li–S batteries with nanostructured metal oxides/sulfides are also discussed.

    标签: 电池 纳米结构 硫化物 金属氧化物

    上传时间: 2017-11-23

    上传用户:653357637

  • 数据结构实验

    #include <stdio.h>   #include <stdlib.h> ///链式栈      typedef struct node   {       int data;       struct node *next;   }Node,*Linklist;      Linklist Createlist()   {       Linklist p;       Linklist h;       int data1;       scanf("%d",&data1);       if(data1 != 0)       {           h = (Node *)malloc(sizeof(Node));           h->data = data1;           h->next = NULL;       }       else if(data1 == 0)       return NULL;       scanf("%d",&data1);       while(data1 != 0)       {           p = (Node *)malloc(sizeof(Node));           p -> data = data1;           p -> next = h;           h = p;           scanf("%d",&data1);       }       return h;   }      void Outputlist(Node *head)   {       Linklist p;       p = head;       while(p != NULL )       {           printf("%d ",p->data);           p = p->next;       }       printf("\n");   }      void Freelist(Node *head)   {       Node *p;       Node *q = NULL;       p = head;       while(p != NULL)       {           q = p;           p = p->next;           free(q);       }   }      int main()   {       Node *head;       head = Createlist();          Outputlist(head);          Freelist(head);          return 0;   }   2.顺序栈 [cpp] view plain copy #include <iostream>   #include <stdio.h>   #include <stdlib.h> ///顺序栈   #define MaxSize 100      using namespace std;      typedef

    标签: 数据结构 实验

    上传时间: 2018-05-09

    上传用户:123456..

  • 数据结构实验

    #include <iostream> #include <stdio.head> #include <stdlib.head> #include <string.head> #define ElemType int #define max 100 using namespace std; typedef struct node1 { ElemType data; struct node1 *next; }Node1,*LinkList;//链栈 typedef struct { ElemType *base; int top; }SqStack;//顺序栈 typedef struct node2 { ElemType data; struct node2 *next; }Node2,*LinkQueue; typedef struct node22 { LinkQueue front; LinkQueue rear; }*LinkList;//链队列 typedef struct { ElemType *base; int front,rear; }SqQueue;//顺序队列 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 //1.采用链式存储实现栈的初始化、入栈、出栈操作。 LinkList CreateStack()//创建栈 { LinkList top; top=NULL; return top; } bool StackEmpty(LinkList s)//判断栈是否为空,0代表空 { if(s==NULL) return 0; else return 1; } LinkList Pushead(LinkList s,int x)//入栈 { LinkList q,top=s; q=(LinkList)malloc(sizeof(Node1)); q->data=x; q->next=top; top=q; return top; } LinkList Pop(LinkList s,int &e)//出栈 { if(!StackEmpty(s)) { printf("栈为空。"); } else { e=s->data; LinkList p=s; s=s->next; free(p); } return s; } void DisplayStack(LinkList s)//遍历输出栈中元素 { if(!StackEmpty(s)) printf("栈为空。"); else { wheadile(s!=NULL) { cout<<s->data<<" "; s=s->next; } cout<<endl; } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 //2.采用顺序存储实现栈的初始化、入栈、出栈操作。 int StackEmpty(int t)//判断栈S是否为空 { SqStack.top=t; if (SqStack.top==0) return 0; else return 1; } int InitStack() { SqStack.top=0; return SqStack.top; } int pushead(int t,int e) { SqStack.top=t; SqStack.base[++SqStack.top]=e; return SqStack.top; } int pop(int t,int *e)//出栈 { SqStack.top=t; if(!StackEmpty(SqStack.top)) { printf("栈为空."); return SqStack.top; } *e=SqStack.base[s.top]; SqStack.top--; return SqStack.top; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 //3.采用链式存储实现队列的初始化、入队、出队操作。 LinkList InitQueue()//创建 { LinkList head; head->rear=(LinkQueue)malloc(sizeof(Node)); head->front=head->rear; head->front->next=NULL; return head; } void deleteEle(LinkList head,int &e)//出队 { LinkQueue p; p=head->front->next; e=p->data; head->front->next=p->next; if(head->rear==p) head->rear=head->front; free(p); } void EnQueue(LinkList head,int e)//入队 { LinkQueue p=(LinkQueue)malloc(sizeof(Node)); p->data=e; p->next=NULL; head->rear->next=p; head->rear=p; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 //4.采用顺序存储实现循环队列的初始化、入队、出队操作。 bool InitQueue(SqQueue &head)//创建队列 { head.data=(int *)malloc(sizeof(int)); head.front=head.rear=0; return 1; } bool EnQueue(SqQueue &head,int e)//入队 { if((head.rear+1)%MAXQSIZE==head.front) { printf("队列已满\n"); return 0; } head.data[head.rear]=e; head.rear=(head.rear+1)%MAXQSIZE; return 1; } int QueueLengthead(SqQueue &head)//返回队列长度 { return (head.rear-head.front+MAXQSIZE)%MAXQSIZE; } bool deleteEle(SqQueue &head,int &e)//出队 { if(head.front==head.rear) { cout<<"队列为空!"<<endl; return 0; } e=head.data[head.front]; head.front=(head.front+1)%MAXQSIZE; return 1; } int gethead(SqQueue head)//得到队列头元素 { return head.data[head.front]; } int QueueEmpty(SqQueue head)//判断队列是否为空 { if (head.front==head.rear) return 1; else return 0; } void travelQueue(SqQueue head)//遍历输出 { wheadile(head.front!=head.rear) { printf("%d ",head.data[head.front]); head.front=(head.front+1)%MAXQSIZE; } cout<<endl; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 //5.在主函数中设计一个简单的菜单,分别测试上述算法。 int main() { LinkList top=CreateStack(); int x; wheadile(scanf("%d",&x)!=-1) { top=Pushead(top,x); } int e; wheadile(StackEmpty(top)) { top=Pop(top,e); printf("%d ",e); }//以上是链栈的测试 int top=InitStack(); int x; wheadile(cin>>x) top=pushead(top,x); int e; wheadile(StackEmpty(top)) { top=pop(top,&e); printf("%d ",e); }//以上是顺序栈的测试 LinkList Q; Q=InitQueue(); int x; wheadile(scanf("%d",&x)!=-1) { EnQueue(Q,x); } int e; wheadile(Q) { deleteEle(Q,e); printf("%d ",e); }//以上是链队列的测试 SqQueue Q1; InitQueue(Q1); int x; wheadile(scanf("%d",&x)!=-1) { EnQueue(Q1,x); } int e; wheadile(QueueEmpty(Q1)) { deleteEle(Q1,e); printf("%d ",e); } return 0; }

    标签: 数据结构 实验

    上传时间: 2018-05-09

    上传用户:123456..

  • JAVA SMPP 源码

    Introduction jSMPP is a java implementation (SMPP API) of the SMPP protocol (currently supports SMPP v3.4). It provides interfaces to communicate with a Message Center or an ESME (External Short Message Entity) and is able to handle traffic of 3000-5000 messages per second. jSMPP is not a high-level library. People looking for a quick way to get started with SMPP may be better of using an abstraction layer such as the Apache Camel SMPP component: http://camel.apache.org/smpp.html Travis-CI status: History The project started on Google Code: http://code.google.com/p/jsmpp/ It was maintained by uudashr on Github until 2013. It is now a community project maintained at http://jsmpp.org Release procedure mvn deploy -DperformRelease=true -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dgpg.passphrase=<yourpassphrase> log in here: https://oss.sonatype.org click the 'Staging Repositories' link select the repository and click close select the repository and click release License Copyright (C) 2007-2013, Nuruddin Ashr uudashr@gmail.com Copyright (C) 2012-2013, Denis Kostousov denis.kostousov@gmail.com Copyright (C) 2014, Daniel Pocock http://danielpocock.com Copyright (C) 2016, Pim Moerenhout pim.moerenhout@gmail.com This project is licensed under the Apache Software License 2.0.

    标签: JAVA SMPP 源码

    上传时间: 2019-01-25

    上传用户:dragon_longer

  • 单片机工具集

    用于开发单片机的!!!超级单片机开发工具!!!   单片机开发过程中用到的多功能工具,包括热敏电阻RT值--HEX数据转换;3种LED编码;色环电阻计算器;HEX/BIN 文件互相转换;eeprom数据到C/ASM源码转换;CRC校验生成;串口调试,带简单而实用的数据分析功能;串口/并口通讯监视等功能. 用C++ Builder开发,无须安装,直接运行,不对注册表进行操作。纯绿色软件。 详细说明: 1、RT转换:支持两种电路,8/10位转换精度,生成C/ASM源代码格式的数据,可手工输入数据或从文件中读取,输入的数据可以保存到文件中。文件格式为逗号分隔符: 温度,阻值 2、LED编码信息:可以支持 7段/14段/16段 LED,支持 C/ASM 语法,可生成 4/8 位编码,4位编码主要用于某些 LCD 驱动芯片。其中 7  段码包括:0 -- F (Hex) 14 段码包括:A -- Z, 0 -- F 16 段码包括:A -- Z, 0 -- F     编码方案可以保存供将来使用。     使用方法请点帮助。 3、色环电阻计算器功能。 4、HEX/BIN 文件相互转换;    HEX/BIN 转换成 C/ASM 源代码格式,适用于eeprom数据等处理。    加入CRC校验码生成功能。其中生成BIN文件时自动生成校验码,Get CRC 可生成任意文件的CRC码。    另外还有相关知识、资料等。 5、串口调试具有 a. 基本通讯功能; b. 数据分析功能,可自定义通讯数据中的变量,包括变量名、变量类型(长度),显示方式等; 内存映射功能中自定义变量的起始地址即内存起始地址,可自定义; 由map文件自动读取内存变量(因条件所限,目前只支持由 ImageCraft C(ICC) 编译器产生的map文件,欢迎提供其他编译器的map文件样本); 可自定义内存块的起始/结束标志; 历史数据保存功能; c. 交互式通讯, 主发时可自定义多命令自动循环发送; 从发时可定义接收到相应命令后的应答数据并自动应答; 6、串口监视功能 目前具有本功能的多为共享软件,本软件中没有任何限制。 实时监视串口操作而不占用串口资源,可保存历史数据,2k下测试通过,98下使用捕捉时可能会有点问题,没有进行调试。 并口监视应该可以使用,没有调试。 各种工具

    标签: 单片机

    上传时间: 2019-05-27

    上传用户:小爱心早餐

  • python爬虫获取大量免费有效代理ip--有效防止ip被封

    以后再也不用担心写爬虫ip被封,不用担心没钱买代理ip的烦恼了 在使用python写爬虫时候,你会遇到所要爬取的网站有反爬取技术比如用同一个IP反复爬取同一个网页,很可能会被封。如何有效的解决这个问题呢?我们可以使用代理ip,来设置代理ip池。 现在教大家一个可获取大量免费有效快速的代理ip方法,我们访问西刺免费代理ip网址 这里面提供了许多代理ip,但是我们尝试过后会发现并不是每一个都是有效的。所以我们现在所要做的就是从里面提供的筛选出有效快速稳定的ip。 以下介绍的免费获取代理ip池的方法: 优点:免费、数量多、有效、速度快 缺点:需要定期筛选 主要思路: 从网址上爬取ip地址并存储 验证ip是否能使用-(随机访问网址判断响应码) 格式化ip地址 代码如下: 1.导入包 import requests from lxml import etree import time 1 2 3 2.获取西刺免费代理ip网址上的代理ip def get_all_proxy():     url = 'http://www.xicidaili.com/nn/1'     headers = {         'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',     }     response = requests.get(url, headers=headers)     html_ele = etree.HTML(response.text)     ip_eles = html_ele.xpath('//table[@id="ip_list"]/tr/td[2]/text()')     port_ele = html_ele.xpath('//table[@id="ip_list"]/tr/td[3]/text()')     proxy_list = []     for i in range(0,len(ip_eles)):         proxy_str = 'http://' + ip_eles[i] + ':' + port_ele[i]         proxy_list.append(proxy_str)     return proxy_list 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3.验证获取的ip def check_all_proxy(proxy_list):     valid_proxy_list = []     for proxy in proxy_list:         url = 'http://www.baidu.com/'         proxy_dict = {             'http': proxy         }         try:             start_time = time.time()             response = requests.get(url, proxies=proxy_dict, timeout=5)             if response.status_code == 200:                 end_time = time.time()                 print('代理可用:' + proxy)                 print('耗时:' + str(end_time - start_time))                 valid_proxy_list.append(proxy)             else:                 print('代理超时')         except:             print('代理不可用--------------->'+proxy)     return valid_proxy_list 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 4.输出获取ip池 if __name__ == '__main__':     proxy_list = get_all_proxy()     valid_proxy_list = check_all_proxy(proxy_list)     print('--'*30)     print(valid_proxy_list) 1 2 3 4 5 技术能力有限欢迎提出意见,保证积极向上不断学习 ———————————————— 版权声明:本文为CSDN博主「彬小二」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_39884947/article/details/86609930

    标签: python ip 代理 防止

    上传时间: 2019-11-15

    上传用户:fygwz1982

  • MATLAB_Simulink系统仿真课件及代码

    带你学习S函数、Simulink建模与仿真,PPT以及相符的源代码,帮你快速get知识。

    标签: MATLAB_Simulink 系统仿真 代码

    上传时间: 2019-12-05

    上传用户:ni952777

  • keilc51v6.12

      keil C51 v6.12 完全解密版的安装说明      安装方法是先将V6.12安装程序复制到某个目录下,如复制到D:\keilC51  然后执行D:\keilC51\setup\setup.exe 安装程序,选择安装Eval Version版进  行安装。  注册码:K199U-20071-12A9U      当出现Please insert the add-on disk的提示画面,可按next按钮(不用  插入软盘)。      安装好之后就可以使用,没有代码大小的限制,这是完全版,比 Eval版增  加浮点库等内容。

    标签: keilc 51 12 v6

    上传时间: 2020-03-20

    上传用户:mimeme

  • 6LoWPAN+The+Wireless+Embedded+Internet

    The Internet of Things is considered to be the next big opportunity, and challenge, for the Internet engineering community, users of technology, companies and society as a whole. It involves connecting embedded devices such as sensors, home appliances, weather stations and even toys to Internet Protocol (IP) based networks. The number of IP-enabled embedded devices is increasing rapidly, and although hard to estimate, will surely outnumber the number of personal computers (PCs) and servers in the future. With the advances made over the past decade in microcontroller,low-power radio, battery and microelectronic technology, the trend in the industry is for smart embedded devices (called smart objects) to become IP-enabled, and an integral part of the latest services on the Internet. These services are no longer cyber, just including data created by humans, but are to become very connected to the physical world around us by including sensor data, the monitoring and control of machines, and other kinds of physical context. We call this latest frontier of the Internet, consisting of wireless low-power embedded devices, the Wireless Embedded Internet. Applications that this new frontier of the Internet enable are critical to the sustainability, efficiency and safety of society and include home and building automation, healthcare, energy efficiency, smart grids and environmental monitoring to name just a few.

    标签: Embedded Internet Wireless 6LoWPAN The

    上传时间: 2020-05-26

    上传用户:shancjb

  • 802.11n A Survival Guide

    A decade ago, I first wrote that people moved, and networks needed to adapt to the reality that people worked on the go. Of course, in those days, wireless LANs came with a trade-off. Yes, you could use them while moving, but you had to trade a great deal of throughput to get the mobility. Although it was possible to get bits anywhere, even while in motion, those bits came slower. As one of the network engineers I worked with put it, “We’ve installed switched gigabit Ethernet everywhere on campus, so I don’t understand why you’d want to go back to what is a 25-megabit hub.” He un- derestimated the allure of working on the go.

    标签: Survival 802.11 Guide

    上传时间: 2020-05-26

    上传用户:shancjb