从txt读取数据时系统自动多读取了一部分零碎的数据,希望大佬们能帮忙解决一下。

本人c++萌新,对c++还不太熟悉。(已解决,谢谢大家)

参考信息:【mie haha 的博客】转载请注明出处(万分感谢!):
https://blog.csdn.net/qq_40315080/article/details/88176331

图片说明(调试照片以及txt文档)

(修改如下,具体原因可见我转载的文章)图片说明

读取函数如下:


void Class::class_Read()    //从文件读入数据
{
    Date *p;
    p = ClassHead;
    ifstream in("class.txt");
    if (!in) { cout << "没有课程信息,请先录入课程信息!" << endl; return; }
    while (1)
    {
        string n,e;
        int s;
        double N,t;
        in >> N >> n >> t >> s >> e;
        class_insert(N,n,t,s,e);
        if(in.fail())
        {
            break;
        }
    }
    in.close();
}   



#endif;
c++

2个回答

in >> N >> n >> t >> s >> e;
之后马上检测fail();

xuese_luochen
xuese_luochen 就是这样的,谢了
大约 2 个月之前 回复
    while (1)
    {
        string n, e;
        int s;
        double N, t;
        in >> N >> n >> t >> s >> e;
        if (in.fail()) {
            break;
        } else {
            class_insert(N, n, t, s, e);
        }
    }
xuese_luochen
xuese_luochen 这里出什么问题了?
大约 2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何用python读取txt文件中的科学计数表示的数据并绘图?
import matplotlib.pylab as pylab def loaddata(filename): infile = open(filename, 'r') #定义两个list,用于存放数据 x = [] y = [] for line in infile: trainingset = line.split()#对于每一行按照空格分开,将数据分为两部分。若用‘,’分隔,则写为line.split(',') x.append(trainingset[0])#第一部分,即文件中的第一列数据逐一添加到list x中 y.append(trainingset[1])#第二部分,即文件中的第二列数据逐一添加到list y中 return(x, y) #x,y组成一个元组,通过函数一次性返回 def plotdata(x, y): length = len(y) pylab.figure(1) pylab.plot(x, y, 'rx') pylab.xlabel('time') pylab.ylabel('amplitude') pylab.show()#让绘制的图形在屏幕上显示 (x, y) = loaddata('test.txt') plotdata(x, y) 用这个程序读取文件后绘图结果科学计数表示的数字无法自动分辨大小 ![图片说明](https://img-ask.csdn.net/upload/201810/29/1540792031_60721.png)
这个项目需要多少钱才能开发?
我是基层气象局的工作人员,我希望找公司开发底层数据库。但是我真的搞不懂,现在的软件开发项目到底需要多少钱! 我把自己想的东西列了一下,有没有人可以指点下,需要多少钱。如果可能的话,还想知道需要多少时间。 我自己99年毕业的通信工程专业,数据库还懂一点,应当可以配合开发人员的。 # XX县数据共享平台任务书 ## 一、 数据的汇集 a) 实现从省市自动站数据库自动获取、归集XX县所有测站的实时观测资料 b) 从省局数据库导入XX县本站及中尺度站的历史资料(资料来源由XX县气象局提供) c) 对部分指定的观测数据表,转存部分资料到一个新的表。(用于共享访问) d) 编程实现从XX办服务器上自动获取、归集XX办测站的数据(该服务器可通过公网访问) e) 编程实现从XX局服务器上自动获取、归集XX局测站的数据(该服务器可通过公网访问) f) 编程实现防汛XX办和XX局数据向省局数据库的自动实时推送。 g) 从市业务数据库自动获取、归集XX县气象局发布的各类天气预报和预警信息 h) 从内网网页上读取省局分析产品(网页形式,解析为图片和文字),保存到数据库内 i) 从内网网页上读取台风分析资料,包括路径、风雨预测,保存到数据库 j) 从内网网页上读取雷达资料,保存到数据库 k) 导入影响市级地区的历史台风资料库,包括路径、灾情 l) 设计人员数据库,存储气象工作者、气象协理员、气象用户、决策用户等不同类型用户的资料。 ## 二、 设计提交数据库一个,内含第一点内所有数据 a) 各数据应当分表、分时间段存放。 b) 表的设计应当便于理解和读取 c) XX县气象局提供人员协助,表的设计必须得到XX县气象局协助人员的认可。为此,要求指派至少一名数据库设计人员在XX县气象局实地开发设计1个月。 d) 数据设计中须实现双机自动备份,增量备份到外部介质和远程备份到温州服务器的功能。 ## 三、 接口开发 a) 接口的形式包括通过网页调用和命令行调用,接口应当返回JSON格式数据以便后继程序调用,接口应当同时支持返回文本、图片等其他格式的数据进行直接发布。 b) 下图举例需要设计的接口,实际开发应当根据数据库资料内容增加接口。要求无特殊原因,数据库的内容均能通过接口调用。 ![图片说明](https://img-ask.csdn.net/upload/201509/01/1441119569_639744.jpg) c) 提供接口API,可以通过该接口向数据库添加资料。 d) 提供通过FTP向数据库添加资料的功能。 e) f) 提供第三方直接读取数据库指定表的设计,以及相应的权限设计 ## 四、 权限设计 a) 接口的调用受到权限和次数的限制,通过类似微信的公钥进行调用和限制。 b) 权限设计应当能区分气象工作者、气象协理员、气象用户、决策用户。 c) 允许某些用户远程直接访问数据库的指定表。 d) 提供权限管理的后台界面,能够在界面上增加、修改用户,指定用户权限。 ## 五、 显示 a) 开发资料显示功能,提供各表资料在GIS地图上的叠加显示功能,包括数值显示和色图显示功能,GIS系统由开发者和XX县气象局协商选择,必须能够提供显示结果的图示导出功能。 b) 简单的数据查询功能。即指定一定参数,能从数据库返回数据。并能修改指定值后返回数据库。
一个难倒三线城市所有开发人员,主要在数据库方面的项目,就等给各位大侠发路费了
俺生在、活在伟大祖国的一个三线小城市,畴划了一个难倒三线城市所有开发人员,主要在数据库构架,您认为是我的方案行的通吗,还是他们没修炼?到家呢?俺也迷茫了,路过的大侠能给俺点指点吗,发表您的看法,您就说您认为可行不可行,俺将不胜感激!!! ![图片说明](https://img-ask.csdn.net/upload/201807/23/1532329333_341082.jpg) 开发项目: 全球线缆管理专家 开发思路: 目前,全世界对管线缆的管理水平普遍还处在一个相对较低的水平上! 至少有95%企业回答不了以下几个问题:企业到目前为止总共铺设了多少条电缆,每条电缆是哪一年铺设的,已经使用了多少年,最大安全使用年限是多少?是否进行了正常的巡检?今年具体是哪条电缆需要更换吗?您公司布设了多少打数据线,它们起点端口和相对应终点端口分别在哪里?3、您家里水、电、暖具体埋设在墙壁、地板的哪个位置? 然而,企业要达到良好的管理水平就必须持续投入大量的人力、物力和财力。但是这个投入收益效率显然太低了;当企业真正大力投入的时候就会发现这些新电缆老是不坏,旧电缆坏了又不好查;所以大多数企业不愿意去做,准确的说是不愿花大力气去做这个事情。 所以要提高全社会的线缆管理水平最好的办法就是走社会化的道路。就比如每个企业都有通讯要求,但是如果因此要求每个企业都去建一个通迅公司的话,显然是不可能的。同样,要解决这个问题最好方法是,能有一家企业专注的去做这件事,并在这方面提供社会化的服务。 技术方案: 概述: 基于无线网络和地理位置定位,运用服务器数据的区块分割管理法对管、线、缆进行系统编码(指出物品在数据库表中的第几条记录)、条形码标识,免查询直接读取数据的管理方法。 简单说就是:一条线缆被记录在表中是第N条,保持永远是第N条不变,然后把数字“N”,生成条形码贴在线缆上,用手机扫描条形码就能知道,我们要查第几条记录了,直接把指针移过支读取。 项目要成功的关键就是 要解决两个难题:1、能存下天量数据;2,能快速读取 具体实施方案: 一种基于无线网络和地理位置定位,运用数据的区块分割管理法,对管、线、缆进行系统编码、条形码标识的管理方法。共分两个大的部分: (1)一种数据的区块分割管理法:首先把一个大的数据集合,根据某一特征人为的分成若干个“区块”,作为服务器管理的最小单元;由于“区块分割”从理论上,在边界上误差和错误必然发生,于是“区块分割管理法”要求把每一个区块和与它所有相邻的区块动态的作为一个相对较大的区域来管理:当在查询某一个区块内的数据的时候与他所有相邻的区块内的数据会根据需要进行协作查询;同时要求当向某一个区块增加一个新的数据时不能与其所有相邻的区块内的已有的数据出现某一特定属性的共同特征;用这个方法来进行系统“容错、纠错”,保证即便真的出现了错误,也能正确的还原输出正确信息。如图1所示,如果我们先定一个规则:假定数字“1“先被一个区块记录了,那它相邻的区块都不能再出现“1”这个数字;数字“2”被一个区块记录了,数字“2"所在区块相邻的区块都不能再出现"2"这个数字了;假如有一天我们想找到“1”,但我们只能确定“1”有90%可能性在某一区域,但是,同时能确定100%不会超出这个区块和他相邻区块构成的这个总体的区域,所以我只要在这个区块和他相邻区块构成的这个总体的区域里找到了“1“,那么这个“1”就一定是我想要找的那个“1“。显然,这个“1”和在这个区域以外出现的“1”是不一样的。所以,区块分割使同一编码,会因其所在区块不同而代表的含义不同。使编码可以在整个数据集的非相邻区块内重复使用。 (2)一种基于无线网络和地理位置定位,运用数据的区块分割管理法,对管、线、缆进行系统编码、条形码标识的管理方法。 过去有很多事情,由于数据量庞大而很难解决。现在,运用数据的区块分割管理法可以方便解决很多问题,尤其是在智慧城市和数字化城市、数字化地球建设方面将来一定会得到广泛的运用。例如,如果要把所有的管、线、缆全部管理起来,甚至同一条管、线、缆根据所处的地域不同还要分为好多段来管理,整体上必然是一个巨大的数据量。但是,单条记录占用空间并不大,他们的位置(经纬度坐标)却还是相对固定的。根据这一特征,运用本发明所提供的基于无线网络和地理位置定位,运用数据的区块分割管理法,对管、线、缆进行系统编码、条形码标识的管理方法用来解决这一难题。统一管、线、缆编码标准,建设、维护一个能长期保存,方便随时可查、全社会可用的管、线、缆数据的信息系统;在这个信息系统里,服务器就如同所有用户共同使用(共享)的一个“云账本”,大家都在这个帐本上“记账”;在这里又如同给每一条线缆上了一个“户口”。每一个“户口”都记录了管、线、缆日常管理的必要信息。对于“建设单位、负责人联系方式、目前在用还是弃用、弃用,是否允许他人使用”等非涉密的信息,用户可以有选择的向全社会公开,并使全社会的人都有办法方便的了解这些。 “经度”、“纬度”、“编码”共同确定了每一个“户口”的唯一性。由于,强制要求在两条经度线和两条纬度线所围成的每一个“区块”及其相邻的“区块”构成的这个“大区块”内,授予用户的“编码”部分都要保持唯一性;这就等于为把大型数据集合进行了有效分割,并为保障能准确查询打下了坚实的基础。所以,用户只要使用了带有自动定位功能的终端,在一般情况下只需要在目标物上制作条形“编码”和读取条形“编码”部分就足够了,而不需要人工输入所在位置的经纬度信息;即使在自动定位失败的情况下,也只需指定出用户所在“区块”内的任何一个点的位置就可以了,而无需关心具体的经纬度数据,整个过程中系统会根据需要将终端设备所在位置的具体的经纬度自动上传服务器。 本发明所提供的方法便于多个服务器时之间以“区块”作为最小单元进行工作量分配,以方便运营商配置合理的服务器数量,保障恰当的服务响应时间和运营成本的。又因为管、线、缆具有细、长的共同外形特点,所以通过条形码进行标识更具有普遍的易制作和易读取性。 本发明提供的一种基于无线网络和地理位置定位,运用数据的集合区块分割管理法,对管、线、缆进行系统编码、条形码标识的管理方法,使条形码标识在人、机、目标物之间“接口”的准确对接及提高信息交换效率上起了关键性的作用;而地理位置定位的信息系统通过“后台”自动调取、终端设备自动发送方式,为这一过程的顺利进行提供了保障。 实施例1:一用户A正在某处铺设光缆,他通过安装了App的手机向远端服务器发出了要编码请求;服务器收到了请求和用户A所在的位置的经纬度数据,检查用户A所在“区块”的数据库,选出一个编码,确认这个编码不仅用户所在“区块”没有占用,且紧邻的几个“区块”内也没有使用,然后服务器将这个号码发到用户A手机的APP上并将这个编码设为临时占用(24小时);用户手机通过蓝牙传到了用户的条形码喷枪上,用户A操作喷枪把转换成条形码的编码喷在了光缆上;然后用户用手机扫描该条形码,编码被识别后,给这段光缆填写了“通讯工程1号线、起始于机房、终点红星小区9号中继站、线长1672CM、管理单位:通讯公司、电话:123”等信息后,向服务器发送了保存指令;服务器收到指令后保存了信息,并将编码由临时占用(24小时)改为70年保存期。半年后,该用户巡查了这段线路,扫描条形码后,又在信息上增加了“状态正常、巡线员甲、2018年12月8日”的信息后,指令服务器作了保存。10年后,该用户认为60年占用期太短,又申请将这段线路编码的占用期修改为70年。
关于用poi实现对word文档的读写功能
# 探讨用poi实现对word文档的读写功能 在java语言,window系统下用poi怎么实现自动从系统中获取doc格式的文件并读取其中数据, 用户在页面填入数据后,点击设定好的按钮会自动把部分数据插入到抓取到的word文档中并生成一个新的word文档,在生成新的文档时弹出对话框,用户选择要保存的位置。 由于操作word文档的学习文件实在太少,有知道的大神还请指教!急!
C语言有谁编过一个简单的系统吗?学生信息管理系统 求助!用C++编程
各项功能说明 # (1)学生基本信息的录入和保存: 这部分的功能主要包括信息的录入和保存和总分、平均分的计算,首先按程序提示输入所要输入的学生人数,接着是分别输入有关学生的相关信息包括学号、姓名、年龄、性别以及学生各科成绩的分数等。在录入数据的同时,系统将对信息的合法性进行检验(学号范围为100~200、姓名不限、年龄为15~50岁、性别可输入m或f、各科成绩均限定在0~100之间),若用户录入了不合法的数据系统将会作出提示,并且要求重新输入。如果合法性成立则录入完毕后系统将显示全部学生相关信息,信息中已包含对学生成绩总分的计算和其平均分的计算结果。最后按平均分的高低输出学生的成绩和相关信息后按照提示信息存盘,选择存盘后,系统则自动将学生信息存入电脑。 # (2)读取学生信息: 此功能是将原录入并保存的学生信息读出,并在屏幕上显示出来。 # (3)删除学生信息: 进入该项功能界面后,用户可以通过学生的学号对某个学生信息进行删除。 # (4)追加学生信息: 进入插入界面,系统将提示输入新学生的相关信息,程序则会将新的信息插入原学生信息清单中,并将新的学生信息列表输出,以方便用户的确认。 # (5)修改学生信息: 进入修改界面,系统将提示输入新学生的相关信息,程序则会将新的信息插入原学生信息清单中,并将新的学生信息列表输出,以方便用户的确认。 # (6)统计各分数段人数并输出学生信息清单。 进入界面,系统将提示输入新学生的相关信息,程序则会将新的信息插入原学生信息清单中,并将新的学生信息列表输出,以方便用户的确认。 # (7)按学号查找学生信息: 此项功能可以根据拥护输入的学生学号查出该学生的所有信息。 # (8)按照平均分输出学生信息清单。 选择次项功能后,系统将自动在屏幕上显示出所有学生按照平均成绩的高低排序后的清单。 # (9)退出系统,结束任务。 3.软件功能的验收标准 (1)有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。 (2)有严密正确的数据验证功能和数据处理功能,能够求和、求平均成绩,对总成绩进行排序,对数据进行保存和读取,能按学号查找学生信息,以及插入和删除学生信息。 (3)系统要有一定的可靠性。
JAVA程序URL屏蔽及重定向
在用JAVA做一个非法URL屏蔽系统。想在JAVA程序中实现类似JSP页面中response.sendredirect("");功能。即假设浏览器打开网页http://bbs.tianya.cn/,自动将该网页跳转为http://www.baidu.com/ 该怎么实现? 或者,如何用JAVA实现拦截特定URL网页的功能? 补充: 目前我已经可以用JAVA实现监控数据流,实时读取正在访问网页的URL并存入数据库了。 想问下如何实现屏蔽特定URL呢?怎样在已读取该网页URL的基础上,使该网页无法显示,或者使该网页自动重定向另一个网址? 我看了一些资料,大部分是VC++环境下基于BHO的实现,可是C++的代码我实在读不懂。。 而且目前我已经进展到最后一步了,实在不想换成C++从头再来。 如果必须用C++的话,有什么封装好的,适合JAVA调用的代码可以参考呢?
objectinputstream readobject 为何只能读取第一次写入的值
public class TransEntity implements Serializable//传输信息实体封装类 { private static final long serialVersionUID = 1L; private String operaType;//用户操作类型;如发送文本消息,发送语音消息,发送音频消息 private String responseTags;//网络响应状态;如“登录成功”、“登录失败”、“注册成功”、“注册失败” private String requestTags;//网络请求标记;请求发送文本消息,语音消息,音频消息 private User sender;//发送方; private User receiver;//接收方; private ArrayList<HashMap<String,Object>> buddylist;//好友列表信息; private String time;//系统时间; private ArrayList<HashMap<String,String>> inputGeneralMsgList;//通用信息 private HashMap<String,Object> outGeneralMsgMap; private String path; public String getUserOperaType() { return operaType; } public void setUserOperaType(String operaType) { this.operaType = operaType; } public String getResponseTags() { return responseTags; } public String setResponseTags(String responseTags) { return this.responseTags = responseTags; } public void setRequestTags(String requestTags) { this.requestTags = requestTags; } public String getRequestTags() { return requestTags; } public User getSender() { return sender; } public void setSender(User sender) { this.sender = sender; } public User getReceiver() { return receiver; } public void setReceiver(User receiver) { this.receiver = receiver; } public ArrayList<HashMap<String,Object>> getList() { return buddylist; } public void setList(ArrayList<HashMap<String,Object>> buddylist) { this.buddylist = buddylist; } public String getImagePath() { return path; } public void setImagePath(String path) { this.path = path; } public void setGeneralMessagefrom(ArrayList<HashMap<String,String>> inputGeneralMsgList) { this.inputGeneralMsgList = inputGeneralMsgList; } public ArrayList<HashMap<String,String>> getGeneralMessagefrom() { return inputGeneralMsgList; } public void setGeneralMessageto(HashMap<String,Object> outGeneralMsgMap) { this.outGeneralMsgMap = outGeneralMsgMap; } public HashMap<String,Object> getGeneralMessageto() { return outGeneralMsgMap; } public void setSysTime(String time) { this.time = SysTime.getDateTime(); } public String getSysTime() { return time; } } 服务端核心代码 public class ServerThread extends Thread { private static ObjectInputStream ois = null; private static ObjectOutputStream oos = null; private ArrayList<HashMap<String,Object>> list = null; private ArrayList<HashMap<String,String>> outgeneralMsgList = null; private Socket socket = null; private TransEntity trans = null; private boolean FLAGS_IsFirstLogin = true; private boolean FLAGS_LoginSucess = false; private boolean FLAGS_RegisterSucess = false; private boolean FLAGS_OnLine = false; private User user = null; private User receiver = null; private Timer timer = new Timer(); public ServerThread(Socket socket) { this.socket = socket; try { oos = new ObjectOutputStream(socket.getOutputStream()); ois = new ObjectInputStream(socket.getInputStream()); } catch (IOException e) { e.printStackTrace(); } } public void run() { try { while(true) { if(socket.isClosed() == false && socket.isConnected() == true) { try { if(ois!=null) { trans = (TransEntity) ois.readObject(); } } catch(java.net.SocketException e) { System.out.println("客户端已经关闭。。。。。。。"); break; } catch(ClassNotFoundException e) { System.out.println("--------空指针异常---------"); } catch(java.io.EOFException e) { System.out.println("客户端已经关闭。。。。。。。"); } } if(trans!=null) { user = trans.getSender(); receiver = trans.getReceiver(); if(trans.getUserOperaType()!=null) { System.out.println("----------trans.getUserOperaType() :------------"+(trans.getUserOperaType())); if(FLAGS_IsFirstLogin == true&&(UserOperaType.LOGIN.equals(trans.getUserOperaType()))) { //首次登录,一般情形下的客户端发过来的登录操作请求做处理,非掉线后的自动登录; System.out.println("--------server---socket :------"+(socket)); FLAGS_LoginSucess = setLogin(); } if(FLAGS_LoginSucess) { FLAGS_IsFirstLogin = false; System.out.println("----------trans.getUserOperaType() :------------"+(trans.getUserOperaType())); ......为何此次只能输出第一次读入的数据 if(UserOperaType.SEND_MESSAGE.equals(trans.getUserOperaType())) { System.out.println("-------UserOperaType.SEND_MESSAGE ---------"); System.out.println(trans.getGeneralMessageto().get("outMsg").toString()); if(trans.getGeneralMessageto()!=null)//若getGeneralMessageto()返回值不为空,则可以向数据库写入信息; { System.out.println("-------服务端:---发送方 写入普通信息到数据库,如文字消息;-----------"); SysCtlVar.dbBasicOperation.writeGeneralMessage(trans);// 发送方 写入普通信息到数据库,如文字消息; //trans.setGeneralMessageto(null); } trans.setUserOperaType(null); } oos.writeObject(trans); oos.flush(); } } } } } catch (Exception e) { e.printStackTrace(); } finally { } } } 客户端核心代码 while(SysCtlVar.FlAGS_LoginSuccess) { // System.out.println("--------------while SysCtlVar.FlAGS_LoginSuccess -------------"); try { try { SysCtlVar.trans = (TransEntity)SysCtlVar.ois.readObject(); if(SysCtlVar.inputGeneralMsgList!=null) synchronized(SysCtlVar.inputGeneralMsgList) { SysCtlVar.inputGeneralMsgList = SysCtlVar.trans.getGeneralMessagefrom(); SysCtlVar.inputGeneralMsgList.notify(); } synchronized(SysCtlVar.outGeneralMsgMap) { try { System.out.println("------- SysCtlVar.outGeneralMsgMap.wait----------"); SysCtlVar.outGeneralMsgMap.wait(); //等待直到有输入的时候,才把消息发送出去 System.out.println("---------------客户端: 正在发送消息。。。。。。------------------"); System.out.println("------- SysCtlVar.outGeneralMsgMap:----------"+(SysCtlVar.outGeneralMsgMap.get("outMsg").toString())); SysCtlVar.trans.setUserOperaType(UserOperaType.SEND_MESSAGE); SysCtlVar.trans.setGeneralMessageto(SysCtlVar.outGeneralMsgMap); System.out.println("------- SysCtlVar.trans.getGeneralMessageto():----------"+(SysCtlVar.trans.getGeneralMessageto().get("outMsg").toString())); try { SysCtlVar.oos.writeObject(SysCtlVar.trans); SysCtlVar.oos.flush(); } catch (IOException e) { e.printStackTrace(); } } catch (InterruptedException e) { e.printStackTrace(); } } } catch (ClassNotFoundException e) { e.printStackTrace(); } } catch (StreamCorruptedException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } } } 客户端 数据输入部分 /** 调试过程中,你将看到客户端输入的消息为h(第一条消息),www(第二条消息),a(第三条消息) 但是服务端只有第二条消息的值; */ //------------------发送消息 ---------- //客户端当前会话任务中,选中的消息接收者; new Thread() { public void run() { synchronized(SysCtlVar.outGeneralMsgMap) { System.out.println("------- 客户端:正在输入要发送的消息----------"); SysCtlVar.outGeneralMsgMap.clear(); SysCtlVar.outGeneralMsgMap.put("outMsg",outMsg); SysCtlVar.outGeneralMsgMap.put("msgRecver", selectedAccount); SysCtlVar.outGeneralMsgMap.put("dateTime",SysTime.getDateTime().toString()); SysCtlVar.outGeneralMsgMap.notify(); //输入完毕,通知发送任务执行 } } }.start(); 调试信息(服务器端) 服务器已启动,正在监听1345端口 ----------trans.getUserOperaType() :------------0 --------server---socket :------Socket[addr=/127.0.0.1,port=38516,localport=1345] ------- list!=null : ---------true [qq]上线了! ----------qq---------- ----------trans.getUserOperaType() :------------0 ----------trans.getUserOperaType() :------------6 ----------trans.getUserOperaType() :------------6 -------------UserOperaType.GET_AVATARS------------6 我想从服务器获取头像 ----------trans.getUserOperaType() :------------7 ----------trans.getUserOperaType() :------------7 -------UserOperaType.SEND_MESSAGE --------- www -------服务端:---发送方 写入普通信息到数据库,如文字消息;----------- insert into chat(sender,recver,message,sendtime) values('qq','在水一方','www','2015-04-24 16:15:13') ----------trans.getUserOperaType() :------------7 ----------trans.getUserOperaType() :------------7 -------UserOperaType.SEND_MESSAGE --------- www -------服务端:---发送方 写入普通信息到数据库,如文字消息;----------- insert into chat(sender,recver,message,sendtime) values('qq','在水一方','www','2015-04-24 16:15:13') ----------trans.getUserOperaType() :------------7 ----------trans.getUserOperaType() :------------7 -------UserOperaType.SEND_MESSAGE --------- www -------服务端:---发送方 写入普通信息到数据库,如文字消息;----------- insert into chat(sender,recver,message,sendtime) values('qq','在水一方','www','2015-04-24 16:15:13') ----------trans.getUserOperaType() :------------7 ----------trans.getUserOperaType() :------------7 -------UserOperaType.SEND_MESSAGE --------- www -------服务端:---发送方 写入普通信息到数据库,如文字消息;----------- insert into chat(sender,recver,message,sendtime) values('qq','在水一方','www','2015-04-24 16:15:13') ---------------问题补充--------------- 单步调试,客户端的输出流正确发送了每一次的客户端输入数据(36分钟前)删除 对于单步调试追踪的结果:客户端每一次发送的trans(它是TransEntity的实例,被序列化的消息实体对象)都是正确的(即,与客户端输入值相同)。但是服务端有ObjectInputStream读入的trans(它也是TransEntity的实例,被序列化的消息实体对象)却没有改变始终是第一次的值
如何移植批处理文件到linux服务器
现在有这样的需求,每天上午9点linux服务器自动将最近两天的数据导入到数据库,比如今天就是要动态读取20130723.txt,20130722.txt(昨天和今天)这两个文件,在windows服务器下已经实现了, **现在要求转移到linux服务器下,linux零基础,时间也很紧,第一次发帖求各位大神答复** 之前windows的.bat文件部分代码如下(rem表示注释): rem将最近产生的文件比如20130723.txt的内容copy到ATT_CLOCK_DATA.TXT中 **copy %date:~0,4%%date:~5,2%%date:~8,2%.txt ATT_CLOCK_DATA.TXT** rem加载控制文件ATT_CLOCK_DATA.utl读取刚刚生成的ATT_CLOCK_DATA.TXT,插入到数据库 **sqlldr url control=D:\sqlloader\ATT_CLOCK_DATA.utl parallel=true** **del ATT_CLOCK_DATA.TXT** rem 另外调用sql文件执行sql语句 **sqlplus url @D:\sqlloader\ATT_CLOCK_DATA.sql** **exit;** ps:本人一向膜拜各位大牛,奈何成不了大牛
extjs的grid渲染数据出现空白段
有个grid需要加载一百多条数据,但是显示的时候,数据总条数和数据都是正确的,但是向下滑动滚动条,每隔47行就会出现一段空白,向下滑过空白段之后,再向上滑动滚动条时,空白段又会出现在36行。。。网上搜不到资料,有没有人遇到过相同的问题?或者能给我一些提示的?在线等,谢谢! ![图片说明](https://img-ask.csdn.net/upload/201611/14/1479104443_960218.png) 补充代码: //grid定义 xtype: 'grid', id:'thirdPartyOrderListGrid', width: '100%', height: 415, viewConfig:{ enableTextSelection : true, getRowClass:function(record, index, rowParams, store){ return record.get('flag')=='1'?"child-row":""; } }, listeners:{ itemdblclick:function(dataview,record, item, index, e){ var win = Ext.widget("thirdPartyOrderHandEditWin"); win.down("form").loadRecord(record); win.show(); } }, autoRender:true, columnLines: true, loadMask: true, //读取数据时的遮罩和提示功能即加载loding... resizable: true, forceFit: false, collapsible:false, titleCollapse:false, selModel : new Ext.selection.CheckboxModel(), plugins:[ Ext.create('Ext.grid.plugin.CellEditing',{ clicksToEdit:2 //设置单击单元格双击编辑 }) ], store: Ext.create('Ext.data.Store', { fields:[{ name : 'flag' },{ name : 'errorMsg' },{ name : 'orderId' },{ name : 'skuId' },{ name : 'iid' } ··· ] }), columns : { items:[ { text:'序号',xtype: 'rownumberer',width: 50}, { text: 'flag',dataIndex: 'flag',width: 150,align: 'center',hidden:true}, { text: '错误信息',dataIndex: 'errorMsg',width: 150,align: 'center', renderer: function(value, meta, record) {//超长自动换行 meta.style = 'overflow:auto;padding: 3px 6px;text-overflow: ellipsis;white-space: nowrap;white-space:normal;line-height:20px;'; return value; } }, { text: '订单编号',dataIndex: 'orderId',width: 150,align: 'center'}, { text: '平台商品码',dataIndex: 'skuId',width: 150,align: 'center'}, { text: '平台商品款码',dataIndex: 'iid',width: 150,align: 'center'}, ··· ], defaults: { align: 'center', sortable:false, menuDisabled : true } }, dockedItems : [{ ··· }] }] //grid的赋值 form.submit( { waitMsg : '请稍等.....', url : basePath + '···.spmvc', method : 'post', timeout:600000, params : formValues, success : function(form,action) { win.close(); result = action.result; var batchList = result.batchList; console.dir(batchList); var store = Ext.getCmp('thirdPartyOrderListGrid').store; store.add(batchList); }, failure : function(form,action) { Ext.Msg.alert('执行结果', action.result.msg); } }); 部分用省略号代替了,从代码上看不出什么问题···
基于单片机STC15W401AS的nRF24L01无线通信无法调通
# 这是发送部分的程序和接收部分 ``` #include<STC15F2K60S2.h> #include"global_define.h" #include"NRF24L01.h" #include"Delay.h" sbit CE=P5^5; //RX/TX模式选择端 sbit IRQ=P3^7; //可屏蔽中断端 sbit CSN=P5^4; //SPI片选端//就是SS sbit MOSI=P1^3; //SPI主机输出从机输入端 sbit MISO=P1^4; //SPI主机输出从机输出端 sbit SCLK=P1^5; //SPI时钟端 uchar code TxAddr[]={0x34,0x43,0x10,0x10,0x01};//发送地址 /*****************状态标志*****************************************/ uchar bdata sta; //状态标志 sbit RX_DR=sta^6; sbit TX_DS=sta^5; sbit MAX_RT=sta^4; /*****************SPI时序函数******************************************/ uchar NRFSPI(uchar date) { uchar i; for(i=0;i<8;i++) // 循环8次 { if(date&0x80) MOSI=1; else MOSI=0; // byte最高位输出到MOSI date<<=1; // 低一位移位到最高位 SCLK=1; if(MISO) // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据 date|=0x01; // 读MISO到byte最低位 SCLK=0; // SCK置低 } return(date); // 返回读出的一字节 } /**********************NRF24L01初始化函数*******************************/ void NRF24L01Int() { Delay(2);//让系统什么都不干 CE=0; //待机模式1 CSN=1; SCLK=0; IRQ=1; } /*****************SPI读寄存器一字节函数*********************************/ uchar NRFReadReg(uchar RegAddr) { uchar BackDate; CSN=0;//启动时序 NRFSPI(RegAddr);//写寄存器地址 BackDate=NRFSPI(0x00);//写入读寄存器指令 CSN=1; return(BackDate); //返回状态 } /*****************SPI写寄存器一字节函数*********************************/ uchar NRFWriteReg(uchar RegAddr,uchar date) { uchar BackDate; CSN=0;//启动时序 BackDate=NRFSPI(RegAddr);//写入地址 NRFSPI(date);//写入值 CSN=1; return(BackDate); } /*****************SPI读取RXFIFO寄存器的值********************************/ uchar NRFReadRxDate(uchar RegAddr,uchar *RxDate,uchar DateLen) { //寄存器地址//读取数据存放变量//读取数据长度//用于接收 uchar BackDate,i; CSN=0;//启动时序 BackDate=NRFSPI(RegAddr);//写入要读取的寄存器地址 for(i=0;i<DateLen;i++) //读取数据 { RxDate[i]=NRFSPI(0); } CSN=1; return(BackDate); } /*****************SPI写入TXFIFO寄存器的值**********************************/ uchar NRFWriteTxDate(uchar RegAddr,uchar *TxDate,uchar DateLen) { //寄存器地址//写入数据存放变量//读取数据长度//用于发送 uchar BackDate,i; CSN=0; BackDate=NRFSPI(RegAddr);//写入要写入寄存器的地址 for(i=0;i<DateLen;i++)//写入数据 { NRFSPI(*TxDate++); } CSN=1; return(BackDate); } /*****************NRF设置为发送模式并发送数据******************************/ void NRFSetTxMode(uchar *TxDate) {//发送模式 CE=0; NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITDH);//写寄存器指令+接收地址使能指令+接收地址+地址宽度 NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);//为了应答接收设备,接收通道0地址和发送地址相同 NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_WITDH);//写入数据 /******下面有关寄存器配置**************/ NRFWriteReg(W_REGISTER+EN_AA,0x01); // 使能接收通道0自动应答 NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); // 使能接收通道0 NRFWriteReg(W_REGISTER+SETUP_RETR,0x0a); // 自动重发延时等待250us+86us,自动重发10次 NRFWriteReg(W_REGISTER+RF_CH,0x40); // 选择射频通道0x40 NRFWriteReg(W_REGISTER+RF_SETUP,0x07); // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益 NRFWriteReg(W_REGISTER+CONFIG,0x0e); // CRC使能,16位CRC校验,上电 CE=1; Delay(5);//保持10us秒以上 } /*****************NRF设置为接收模式并接收数据******************************/ //主要接收模式 void NRFSetRXMode() { CE=0; NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH); // 接收设备接收通道0使用和发送设备相同的发送地址 NRFWriteReg(W_REGISTER+EN_AA,0x01); // 使能接收通道0自动应答 NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); // 使能接收通道0 NRFWriteReg(W_REGISTER+RF_CH,0x40); // 选择射频通道0x40 NRFWriteReg(W_REGISTER+RX_PW_P0,TX_DATA_WITDH); // 接收通道0选择和发送通道相同有效数据宽度 NRFWriteReg(W_REGISTER+RF_SETUP,0x07); // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益*/ NRFWriteReg(W_REGISTER+CONFIG,0x0f); // CRC使能,16位CRC校验,上电,接收模式 CE = 1; Delay(5);//保持10us秒以上 } /****************************检测应答信号******************************/ uchar CheckACK() { //用于发射 sta=NRFReadReg(R_REGISTER+STATUS); // 返回状态寄存器 if(TX_DS||MAX_RT) //发送完毕中断 { NRFWriteReg(W_REGISTER+STATUS,0xff); // 清除TX_DS或MAX_RT中断标志 CSN=0; NRFSPI(FLUSH_TX);//用于清空FIFO !!关键!!不然会出现意想不到的后果!!!大家记住!! CSN=1; return(0); } else return(1); } /******************判断是否接收收到数据,接到就从RX取出*********************/ //用于接收模式 /*uchar NRFRevDate(uchar *RevDate) { uchar RevFlags=0; sta=NRFReadReg(R_REGISTER+STATUS);//发送数据后读取状态寄存器 if(RX_DR) // 判断是否接收到数据 { CE=0; //SPI使能 NRFReadRxDate(R_RX_PAYLOAD,RevDate,RX_DATA_WITDH);// 从RXFIFO读取数据 RevFlags=1; //读取数据完成标志 } NRFWriteReg(W_REGISTER+STATUS,0xff); //接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标 return(RevFlags); }*/ # 下面是接收部分 #include<STC15F2K60S2.h> #include"global_define.h" #include"NRF24L01.h" #include"Delay.h" sbit CE=P5^5; //RX/TX模式选择端 sbit IRQ=P3^7; //可屏蔽中断端 sbit CSN=P5^4; //SPI片选端//就是SS sbit MOSI=P1^3; //SPI主机输出从机输入端 sbit MISO=P1^4; //SPI主机输出从机输出端 sbit SCLK=P1^5; //SPI时钟端 uchar RevTempDate[32]; //最后一位用来存放结束标志 uchar code TxAddr[]={0x34,0x43,0x10,0x10,0x01};//发送地址 /*****************状态标志*****************************************/ uchar bdata sta; //状态标志 sbit RX_DR=sta^6; sbit TX_DS=sta^5; sbit MAX_RT=sta^4; /*****************SPI时序函数******************************************/ uchar NRFSPI(uchar date) { uchar i; for(i=0;i<8;i++) // 循环8次 { if(date&0x80) MOSI=1; else MOSI=0; // byte最高位输出到MOSI date<<=1; // 低一位移位到最高位 SCLK=1; if(MISO) // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据 date|=0x01; // 读MISO到byte最低位 SCLK=0; // SCK置低 } return(date); // 返回读出的一字节 } /**********************NRF24L01初始化函数*******************************/ void NRF24L01Int() { Delay(2);//让系统什么都不干 CE=0; //待机模式1 CSN=1; SCLK=0; IRQ=1; } /*****************SPI读寄存器一字节函数*********************************/ uchar NRFReadReg(uchar RegAddr) { uchar BackDate; CSN=0;//启动时序 NRFSPI(RegAddr);//写寄存器地址 BackDate=NRFSPI(0x00);//写入读寄存器指令 CSN=1; return(BackDate); //返回状态 } /*****************SPI写寄存器一字节函数*********************************/ uchar NRFWriteReg(uchar RegAddr,uchar date) { uchar BackDate; CSN=0;//启动时序 BackDate=NRFSPI(RegAddr);//写入地址 NRFSPI(date);//写入值 CSN=1; return(BackDate); } /*****************SPI读取RXFIFO寄存器的值********************************/ uchar NRFReadRxDate(uchar RegAddr,uchar *RxDate,uchar DateLen) { //寄存器地址//读取数据存放变量//读取数据长度//用于接收 uchar BackDate,i; CSN=0;//启动时序 BackDate=NRFSPI(RegAddr);//写入要读取的寄存器地址 for(i=0;i<DateLen;i++) //读取数据 { RxDate[i]=NRFSPI(0); } CSN=1; return(BackDate); } /*****************SPI写入TXFIFO寄存器的值**********************************/ uchar NRFWriteTxDate(uchar RegAddr,uchar *TxDate,uchar DateLen) { //寄存器地址//写入数据存放变量//读取数据长度//用于发送 uchar BackDate,i; CSN=0; BackDate=NRFSPI(RegAddr);//写入要写入寄存器的地址 for(i=0;i<DateLen;i++)//写入数据 { NRFSPI(*TxDate++); } CSN=1; return(BackDate); } /*****************NRF设置为发送模式并发送数据******************************/ void NRFSetTxMode(uchar *TxDate) {//发送模式 CE=0; NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITDH);//写寄存器指令+接收地址使能指令+接收地址+地址宽度 NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);//为了应答接收设备,接收通道0地址和发送地址相同 NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_WITDH);//写入数据 /******下面有关寄存器配置**************/ NRFWriteReg(W_REGISTER+EN_AA,0x01); // 使能接收通道0自动应答 NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); // 使能接收通道0 NRFWriteReg(W_REGISTER+SETUP_RETR,0x0a); // 自动重发延时等待250us+86us,自动重发10次 NRFWriteReg(W_REGISTER+RF_CH,0x40); // 选择射频通道0x40 NRFWriteReg(W_REGISTER+RF_SETUP,0x07); // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益 NRFWriteReg(W_REGISTER+CONFIG,0x0e); // CRC使能,16位CRC校验,上电 CE=1; Delay(5);//保持10us秒以上 } /*****************NRF设置为接收模式并接收数据******************************/ //主要接收模式 void NRFSetRXMode() { CE=0; NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH); // 接收设备接收通道0使用和发送设备相同的发送地址 NRFWriteReg(W_REGISTER+EN_AA,0x01); // 使能接收通道0自动应答 NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); // 使能接收通道0 NRFWriteReg(W_REGISTER+RF_CH,0x40); // 选择射频通道0x40 NRFWriteReg(W_REGISTER+RX_PW_P0,TX_DATA_WITDH); // 接收通道0选择和发送通道相同有效数据宽度 NRFWriteReg(W_REGISTER+RF_SETUP,0x07); // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益*/ NRFWriteReg(W_REGISTER+CONFIG,0x0f); // CRC使能,16位CRC校验,上电,接收模式 CE = 1; Delay(5);//保持10us秒以上 } /****************************检测是否有接收到数据******************************/ void CheckACK() { //用于发射模式接收应答信号 sta=NRFReadReg(R_REGISTER+STATUS); // 返回状态寄存器 if(TX_DS) NRFWriteReg(W_REGISTER+STATUS,0xff); // 清除TX_DS或MAX_RT中断标志 } /*************************接收数据*********************************************/ void GetDate() { sta=NRFReadReg(R_REGISTER+STATUS);//发送数据后读取状态寄存器 if(RX_DR) // 判断是否接收到数据 { CE=0;//待机 NRFReadRxDate(R_RX_PAYLOAD,RevTempDate,RX_DATA_WITDH);// 从RXFIFO读取数据 接收4位即可,后一位位结束位 // LcdWriteChStr(2,65,RevTempDate);//LCD12864液晶显示 // MAX232SendDate();//发送数据到上位机 NRFWriteReg(W_REGISTER+STATUS,0xff); //接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标 CSN=0; NRFSPI(FLUSH_RX);//用于清空FIFO !!关键!!不然会出现意想不到的后果!!!大家记住!! CSN=1; } //NRFWriteReg(W_REGISTER+STATUS,0xff); //接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标 } # keil运行时没有错误的,接收端与单片机串口也是通的,波特率115200, # IRC18.432MHz,可是在接收端的串口始终读不到数,搞了好久了还是没办法 # 技术小白求大神指点 ```
c语言数据结构 表达式求值
**目的:1)掌握栈的概念与基本操作; 2)掌握文本文件的读写操作。 要求:实现任意加、减、乘、除与括号的表达式求值; 输入输出格式要求如下: 输入文件input.txt内容: 2*(4-100)= 3*5+9/3= 100-20*(4*6/3)= 输出文件output.txt内容(output.txt文件为自动生成,若已存在则覆盖): 2*(4-100)=-192 3*5+9/3=18 100-20*(4*6/3)=-60** 求大神帮帮咯 代码如下,就是不会写文件那部分: #include <stdio.h> #include <stdlib.h> #define MAX 20 //定义第一个栈---作为存放运算数的操作符 struct SNode_Num { int datas[MAX]; int top; }; typedef struct SNode_Num OperateNum; //定义第二个栈---作为存放运算符号的栈 struct SNode_Symbol { char symbol[MAX]; int top; }; typedef struct SNode_Symbol OperateSymbol; /******************************************************************** 描述:定义函数:InitOperandNum,并且初始化运算数栈顶 参数:OperateNum *StackNum 返回值:void ********************************************************************/ void InitOperateNum(OperateNum *StackNum) { StackNum->top = -1; } /******************************************************************** 描述:定义函数: InitOperateSymbol,并且初始化运算符栈顶 参数:OperateSymbol *StackSymbol 返回值:void ********************************************************************/ void InitOperateSymbol(OperateSymbol *StackSymbol) { StackSymbol->top = -1; } /******************************************************************** 描述:定义函数:PushOperateNum, 压一个数到栈顶 参数:OperateNum *StackNum, int x 返回值:void ********************************************************************/ void PushOperateNum(OperateNum *StackNum, int x) { StackNum->top++; StackNum->datas[StackNum->top] = x; } /******************************************************************** 描述:定义函数:PushOperateSymbol,压一个运算符到栈顶 参数:OperateSymbol *StackSymbol, char ch 返回值:void ********************************************************************/ void PushOperateSymbol(OperateSymbol *StackSymbol, char ch) { StackSymbol->top++; StackSymbol->symbol[StackSymbol->top] = ch; } /******************************************************************** 描述:定义函数:PopOperateNum,将运算数从栈中读取出来 参数:OperateNum *StackNum 返回值:返回取出来的数 ********************************************************************/ int PopOperateNum(OperateNum *StackNum) { int num; num = StackNum->datas[StackNum->top]; StackNum->top--; return num; } /******************************************************************** 描述:定义函数:PopOperateSymbol,将运算符从栈中取出来 参数:OperateSymbol *StackSymbol 返回值:返回取出来的符号 ********************************************************************/ char PopOperateSymbol(OperateSymbol *StackSymbol) { char ch; ch = StackSymbol->symbol[StackSymbol->top]; StackSymbol->top--; return ch; } //取出相应的数 int GetOperateNum(OperateNum *StackNum) { return StackNum->datas[StackNum->top]; } //取出相应运算符 char GetOperateSymbol(OperateSymbol *StackSymbol) { return StackSymbol->symbol[StackSymbol->top]; } /******************************************************************** 描述:定义函数, IsOperateSymbolOrNum,判断输入的符号是那些符号 参数:char ch 返回值:有符号返回1,无符号返回0 ********************************************************************/ short IsOperateSymbolOrNum(char ch) { //判断所有需要用的操作符 包括 + - * / ( ) \n if(ch == '+' || ch == '-' || ch == '*' || ch == '/' || ch == '(' || ch == ')' || ch == '\n') return 1; else return 0; } /******************************************************************** 描述:定义函数: Priority,用于判断符号优先级运算 参数:char inputnum, char ch 返回值:符号的大小的字符 ********************************************************************/ char Priority(char inputnum, char ch) { switch(inputnum) { //加减在同一个优先级上 case '+': case '-': { if(ch == '+' || ch == '-') return '>'; else if(ch == '*' || ch == '/') return '<'; else if(ch == '(') return '<'; else if(ch == ')') return '>'; else return '>'; } break; //乘除在同一优先级 case '*': case '/': { if(ch == '+' || ch == '-') return '>'; else if(ch == '*' || ch == '/') return '>'; else if(ch == '(') return '<'; else if(ch == ')') return '>'; else return '>'; } break; //括号在所有优先级以上 case '(': { if(ch == ')') return '='; else return '<'; } break; case ')': { return '>'; } break; case '\n': { if(ch == '\n') return '='; else return '<'; } break; } } /******************************************************************** 描述:定义函数: Calculate,计算结果 参数:int num1, char ch, int num2 返回值:返回两个数计算的结果result ********************************************************************/ int Calculate(int num1, char ch, int num2) { int result; switch(ch) { case '+': result = num1 + num2; break; case '-': result = num1 - num2; break; case '*': result = num1 * num2; break; case '/': result = num1 / num2; } return result; } /******************************************************************** 描述:定义函数:MainCalc,主要用于获取用户输入,并且进行计算 参数:void 返回值:result ********************************************************************/ int MainCalc() { //主函数进行计算 OperateNum datas; OperateSymbol symbol; int num1, num2, result, num; char ch, sign; InitOperateNum(&datas); InitOperateSymbol(&symbol); //把回车计算的操作符放在栈中 PushOperateSymbol(&symbol, '\n'); ch = getchar(); while((ch != '\n') || (GetOperateSymbol(&symbol) != '\n')) { if(!IsOperateSymbolOrNum(ch)) { num = atoi(&ch); //将字符转换为整数 ch = getchar(); //获取输入 while(!IsOperateSymbolOrNum(ch)) { num = num * 10 + atoi(&ch); ch = getchar(); //当没有输入回车时,继续获取输入 } PushOperateNum(&datas, num); } else { switch(Priority(GetOperateSymbol(&symbol), ch)) { //判断优先级后进行计算 case '<': PushOperateSymbol(&symbol, ch); ch = getchar(); break; case '=': sign = PopOperateSymbol(&symbol); ch = getchar(); //获取输入 break; case '>': sign = PopOperateSymbol(&symbol); num2 = PopOperateNum(&datas); num1 = PopOperateNum(&datas); result = Calculate(num1, sign, num2); PushOperateNum(&datas, result); break; } } } result = GetOperateNum(&datas); return result; } int main(int argc, char *argv[]) { int result; printf("请输入运算式:\n"); result = MainCalc(); printf("结果为:\n"); printf("%d\n", result); //输出结果 return 0; }
0xC0000005: 写入位置 0x0000001C 时发生访问冲突。越界错误但是找不到在哪里
断点调试停在switch语句的p1部分,显示p1内存无法读取 ``` 插入不了图片。。。。 请大佬帮忙看看 #include<stdio.h> #include<string.h> #include<stdlib.h> /*定义单向链表类型StuLink,链表结点包含xh、xm、cj、dj、mc、nxet六个数据项 分别代表学生的学号、姓名、成绩、等级、名次和指向下一个结点的指针, 其中:学号、姓名、成绩是输入项,等级、名次是计算项*/ ``` ``` struct StuLink { int xh; char xm[20]; int cj; char dj; int mc; struct StuLink*next; }; ``` ``` /* Creat_Link函数(10分):建立一个StuLink类型的学生链表,返回链表头指针 每个链表结点代表一个学生信息,要求输入学号、姓名和成绩 其中:学号从1开始按递增1自动生成,成绩必须在[0,100]区间的整数,当输入成绩为-1时,表示输入结束*/ struct StuLink*Creat_Link() { struct StuLink*list=0,*p1=0,*p2;int i=1; int score;char name[20]; //list->xh =0;p2=list; printf("\n输入成绩为-1,结束输入!\n"); printf("请输入学生姓名\n"); scanf("%s",name); printf("请输入学生成绩\n"); scanf("%d",&score ); while(score!=-1) { if(score<0||score>100) { printf("输入成绩格式错误,请重新输入正确的学生成绩\n"); scanf("%d",&score ); if( (p1=(struct StuLink*)malloc(sizeof(struct StuLink))) ==0) { printf("动态内存空间分配失败\n"); exit(0); } } else { switch(score/10) { case 9:p1->dj='A';break; //计算等级 case 8:p1->dj='B';break; case 7:p1->dj='C';break; case 6:p1->dj='D';break; default:p1->dj='E'; } i++; p1->xh =i; p1->cj =score; strcpy(p1->xm,name); if(list==0) list=p1; else p2->next=p1; p2=p1; printf("请输入学生姓名 "); scanf("%s",name); printf("请输入学生成绩 "); scanf("%d",&score); } } return list; } ``` ```int main() { menu1(); Creat_Link (); }
BluetoothGattCallback重复回调
这是概率很低的问题,每次复现这个问题的情况都不太一样,我也还没搞清楚为什么会出现这种问题。 上一次出现这个问题的情况是: 在这次连接之前也有重复连接/断开其他蓝牙设备,最后一次连接蓝牙设备时,蓝牙端显示已连接上,但app端还没收到回调,过了一阵子,onConnectionStateChange才收到回调,接着又自动断开重连,于是,问题就出现了。 当出现这个问题时,BluetoothGattCallback里面的每一个方法断开、连接、发现服务、接收数据等都会重复接收,所以判断是BluetoothGattCallback重复了,但我看了后台服务,确实是只有一个服务; 排除是蓝牙端的问题,因为换蓝牙或者蓝牙关机等都只要APP不重启这个问题依旧在。 所以,应该是还有一个BluetoothGattCallback的对象存在。 那么,有哪些原因可能会导致这种情况呢?如果出现这种情况该怎么解决?比如有没有什么方法可以列出所有的BluetoothGattCallback,然后close其他的BluetoothGattCallback对象,只保留一个? 这是连接部分的代码,这些都是在后台service中执行的 ``` public boolean connect(final String address) { if (mBluetoothAdapter == null) { return false; } if (address == null) { return false; } connectAdress = address; if (mBluetoothDeviceAddress != null && address.equals(mBluetoothDeviceAddress) && mBluetoothGatt!=null) { if (mBluetoothGatt.connect()) { mConnectionState = STATE_CONNECTING; return true; } else { return false; } } final BluetoothDevice deivce = mBluetoothAdapter.getRemoteDevice(address); if (deivce == null) { Log.e(TAG, "connect: Device not found. unable to connect." ); return false; } mBluetoothGatt = deivce.connectGatt(this, true, mGattCallback); mBluetoothDeviceAddress = address; mConnectionState = STATE_CONNECTING; return true; } // @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2) public void disconnect() { if (mBluetoothAdapter == null || mBluetoothGatt == null) { Log.e(TAG, "disconnect: BluetoothAdapter not initialized" ); return; } is_click_disconnect = true; VERTICAL_DISCOVER_FLAG = 0; LEVEL_DISCOVER_FLAG = 0; current_connecting_mac_address = ""; mBluetoothGatt.disconnect(); stopSelf(); } ``` 然后这是回调部分的代码, ``` private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() { /** * 连接状态改变 * @param gatt * @param status * @param newState */ // @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2) @Override public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) { // super.onConnectionStateChange(gatt, status, newState); String intentAction; if (newState == BluetoothProfile.STATE_CONNECTED) { intentAction = ACTION_GATT_CONNECTED; mConnectionState = STATE_CONNECTED; broadcastUpdate(intentAction); BleMessage message = new BleMessage(); message.setAction(ACTION_GATT_CONNECTED); message.setConnectState(STATE_CONNECTED); // 连接成功 } else if (newState == BluetoothProfile.STATE_DISCONNECTED) { intentAction = ACTION_GATT_DISCONNECTED; mConnectionState = STAAE_DISCONNECTED; VERTICAL_DISCOVER_FLAG = 0; LEVEL_DISCOVER_FLAG = 0; Log.e(TAG, "vitec 蓝牙断开连接onConnectionStateChange: Disconnect from gatt server" ); broadcastUpdate(intentAction); textToSpeechHelper.speakChinese("蓝牙连接断开"); //当手动断开连接,关闭mBluetoothGatt if (is_click_disconnect) { mBluetoothGatt.close(); mBluetoothGatt = null; is_click_disconnect = false; } } } /** * 发现服务 * @param gatt * @param status */ @Override public void onServicesDiscovered(BluetoothGatt gatt, int status) { broadcastUpdate(ACTION_GATT_SERVICES_DISCOVERED); enableTXNotification(SYSTEM_RX_SERVICE_UUID, SYSTEM_TX_CHAR_UUID); } /** * 读取特征值 * @param gatt * @param characteristic * @param status */ // @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2) @Override public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { if (status == BluetoothGatt.GATT_SUCCESS) { broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic); Log.e(TAG, "onCharacteristicRead: 当前读取到的特征值为:"+ new String(characteristic.getValue())); } } /** * 写入特征值 * @param gatt * @param characteristic * @param status */ @Override public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { super.onCharacteristicWrite(gatt, characteristic, status); } /** * * @param gatt * @param characteristic */ // @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2) @Override public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) { broadcastUpdate(ACTION_DATA_AVAILABLE,characteristic); } }; ```
maven构建多模块SSH项目配置文件的问题
<p>1、使用maven做为项目构建工具,创建studio、common、oa、system四个模块项目,其中studio为父模块,common为数据库操作模块、Oa 和system为业务模块。common 配置了spring 集成hibernate的基本配置文件common-spring.xml。现在需要在oa模块中建立一个实体类user和user.hbm.xml,请问oa中的oa_spring如何配置,common中如何读取user.hbm.xml?</p> <p>我的common_spring.xml内容如下:</p> <p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>&lt;beans xmlns="http://www.springframework.org/schema/beans"<br>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"<br>    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"<br>    xmlns:context="http://www.springframework.org/schema/context"<br>    xsi:schemaLocation="<br>     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd<br>     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd<br>     http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd<br>     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd<br>     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"<br>    default-autowire="byName"&gt;<br>    &lt;!-- enable component scanning (beware that this does not enable mapper <br>        scanning!) --&gt;<br>    &lt;context:component-scan base-package="com.huadainfo.com.dao" /&gt;<br>    &lt;context:component-scan base-package="com.huadainfo.com.dao.impl" /&gt;<br>    &lt;bean<br>        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt;<br>        &lt;property name="locations" value="classpath:datasource.properties" /&gt;<br>    &lt;/bean&gt;<br><br>    &lt;!-- 数据源配置 --&gt;<br>    &lt;bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"<br>        destroy-method="close"&gt;<br>        &lt;property name="driverClassName" value="${jdbc.driverClassName}"&gt;&lt;/property&gt;<br>        &lt;property name="url" value="${jdbc.url}"&gt;&lt;/property&gt;<br>        &lt;property name="username" value="${jdbc.username}"&gt;&lt;/property&gt;<br>        &lt;property name="password" value="${jdbc.password}"&gt;&lt;/property&gt;<br>        &lt;property name="initialSize" value="10"&gt;&lt;/property&gt;<br>        &lt;property name="maxActive" value="1000"&gt;&lt;/property&gt;<br>        &lt;property name="maxIdle" value="300"&gt;&lt;/property&gt;<br>        &lt;property name="minIdle" value="10"&gt;&lt;/property&gt;<br>        &lt;property name="maxWait" value="10000"&gt;&lt;/property&gt;<br>        &lt;property name="removeAbandoned" value="true" /&gt;<br>        &lt;property name="removeAbandonedTimeout" value="60"/&gt;<br>        &lt;property name="logAbandoned" value="true" /&gt;<br>        &lt;property name="testOnBorrow" value="true"/&gt; <br>           &lt;property name="testWhileIdle" value="true"/&gt; <br>           &lt;property name="validationQuery" value="select getdate()"/&gt; <br>    &lt;/bean&gt;<br><br>    &lt;bean id="sessionFactory"<br>        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"&gt;<br>        &lt;property name="dataSource" ref="dataSource" /&gt;<br>        &lt;property name="hibernateProperties"&gt;<br>            &lt;props&gt;<br>                &lt;!-- 指定Hibernate的连接方言 --&gt;<br>                &lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.Oracle10gDialect&lt;/prop&gt;<br>                &lt;!-- 配置启动应用时,是否根据Hibernate映射自动创建数据表 --&gt;<br>                &lt;prop key="hibernate.show_sql"&gt;true&lt;/prop&gt;<br>                &lt;prop key="hibernate.format_sql"&gt;true&lt;/prop&gt;<br>                &lt;prop key="hibernate.current_session_context_class"&gt;org.springframework.orm.hibernate4.SpringSessionContext<br>                &lt;/prop&gt;<br>                &lt;prop key="hibernate.cache.provider_class"&gt;net.sf.ehcache.hibernate.EhCacheProvider&lt;/prop&gt;<br>                &lt;prop key="hibernate.cache.region.factory_class"&gt;org.hibernate.cache.ehcache.EhCacheRegionFactory<br>                &lt;/prop&gt;<br>            &lt;/props&gt;<br>            <br>        &lt;/property&gt;<br>       <span style="text-decoration: underline;"><span style="background-color: #ff0000;"> &lt;property name="mappingResources"&gt;<br>            &lt;list&gt;<br>                &lt;value&gt;classpath*:com/huadainfo/entity/*.hbm.xml&lt;/value&gt;<br>            &lt;/list&gt;<br>        &lt;/property&gt;</span></span>这部分该怎么写<br>        <br>    &lt;/bean&gt;<br>        &lt;!-- A transaction manager for working with Hibernate SessionFactories --&gt;<br>    &lt;bean id="transactionManager"<br>        class="org.springframework.orm.hibernate4.HibernateTransactionManager"&gt;<br>        &lt;property name="sessionFactory" ref="sessionFactory" /&gt;<br>    &lt;/bean&gt;<br>    &lt;!-- 配置事务的传播特性 --&gt;<br>    &lt;tx:advice id="txAdvice" transaction-manager="transactionManager"&gt;<br>        &lt;tx:attributes&gt;<br>            &lt;tx:method name="add*" propagation="REQUIRED" read-only="false" /&gt;<br>            &lt;tx:method name="delete*" propagation="REQUIRED" read-only="false" /&gt;<br>            &lt;tx:method name="update*" propagation="REQUIRED" read-only="false" /&gt;<br>            &lt;tx:method name="save*" propagation="REQUIRED" read-only="false" /&gt;<br>            &lt;tx:method name="*" read-only="true" /&gt;<br>        &lt;/tx:attributes&gt;<br>    &lt;/tx:advice&gt;<br>    &lt;!-- 那些类的哪些方法参与事务 --&gt;<br>    &lt;aop:config&gt;<br>        &lt;aop:pointcut id="allManagerMethod"<br>            expression="execution(public * com.huadainfo.common.dao.impl.*.*(..))" /&gt;<br>        &lt;aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice" /&gt;<br>    &lt;/aop:config&gt;<br>    &lt;context:component-scan base-package="com.huadainfo.common.dao" /&gt;<br>    &lt;context:component-scan base-package="com.huadainfo.common.dao.impl" /&gt;<br>    &lt;bean id="hiberDao" class="com.huadainfo.common.dao.impl.HibernateDaoImpl"&gt;<br>        &lt;property name="sessionFactory" ref="sessionFactory"&gt;&lt;/property&gt;<br>    &lt;/bean&gt;<br>&lt;/beans&gt;</p> <p>oa_spring.xml的内容&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>&lt;beans xmlns="http://www.springframework.org/schema/beans"<br>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"<br>    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"<br>    xmlns:context="http://www.springframework.org/schema/context"<br>    xsi:schemaLocation="<br>     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd<br>     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd<br>     http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd<br>     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd<br>     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"&gt;<br>    &lt;!-- enable component scanning (beware that this does not enable mapper <br>        scanning!) --&gt;<br>   <span style="text-decoration: underline;"><span style="background-color: #ff0000;"> &lt;import resource="classpath*:common_spring.xml"/&gt;</span></span>(引入不到文件)<br>    &lt;bean id="tset" class="com.huadainfo.oa.service.impl.TestNameimpl"&gt;<br>        &lt;property name="hiberDao" ref="hiberDao"&gt;&lt;/property&gt;<br>    &lt;/bean&gt;<br>    <br>&lt;/beans&gt;</p> <p> </p>
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
MyBatis研习录(01)——MyBatis概述与入门
C语言自学完备手册(33篇) Android多分辨率适配框架 JavaWeb核心技术系列教程 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往——自定义View系列教程(10篇) 走出思维困境,踏上精进之路——Android开发进阶精华录 讲给Android程序员看的前端系列教程(40集免费视频教程+源码) 版权声明 本文原创作者:谷哥的小弟 作者博客
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
web前端javascript+jquery知识点总结
Javascript javascript 在前端网页中占有非常重要的地位,可以用于验证表单,制作特效等功能,它是一种描述语言,也是一种基于对象(Object)和事件驱动并具有安全性的脚本语言 ,语法同java类似,是一种解释性语言,边执行边解释。 JavaScript的组成: ECMAScipt 用于描述: 语法,变量和数据类型,运算符,逻辑控制语句,关键字保留字,对象。 浏览器对象模型(Br
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
文章目录1. 前言2. 数据下载3. 数据处理4. 数据可视化 1. 前言 今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。 2月6日追记:本文发布后,腾讯的数据源多次变更u
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
渗透测试-灰鸽子远控木马
木马概述 灰鸽子( Huigezi),原本该软件适用于公司和家庭管理,其功能十分强大,不但能监视摄像头、键盘记录、监控桌面、文件操作等。还提供了黑客专用功能,如:伪装系统图标、随意更换启动项名称和表述、随意更换端口、运行后自删除、毫无提示安装等,并采用反弹链接这种缺陷设计,使得使用者拥有最高权限,一经破解即无法控制。最终导致被黑客恶意使用。原作者的灰鸽子被定义为是一款集多种控制方式于一体的木马程序
Python:爬取疫情每日数据
前言 有部分同学留言说为什么412,这是因为我代码里全国的cookies需要你自己打开浏览器更新好后替换,而且这个cookies大概只能持续20秒左右! 另外全国卫健委的数据格式一直在变,也有可能会导致爬取失败! 我现在已根据2月14日最新通报稿的格式修正了! 目前每天各大平台,如腾讯、今日头条都会更新疫情每日数据,他们的数据源都是一样的,主要都是通过各地的卫健委官网通报。 为什么已经有大量平台做
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧...... 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升
粒子群算法求解物流配送路线问题(python)
粒子群算法求解物流配送路线问题(python) 1.查找论文文献 找一篇物流配送路径优化+粒子群算法求解的论文 参考文献:基于混沌粒子群算法的物流配送路径优化 2.了解粒子群算法的原理 讲解通俗易懂,有数学实例的博文:https://blog.csdn.net/daaikuaichuan/article/details/81382794 3.确定编码方式和解码策略 3.1编码方式 物流配送路线的
教你如何编写第一个简单的爬虫
很多人知道爬虫,也很想利用爬虫去爬取自己想要的数据,那么爬虫到底怎么用呢?今天就教大家编写一个简单的爬虫。 下面以爬取笔者的个人博客网站为例获取第一篇文章的标题名称,教大家学会一个简单的爬虫。 第一步:获取页面 #!/usr/bin/python # coding: utf-8 import requests #引入包requests link = "http://www.santostang.
前端JS初级面试题二 (。•ˇ‸ˇ•。)老铁们!快来瞧瞧自己都会了么
1. 传统事件绑定和符合W3C标准的事件绑定有什么区别? 传统事件绑定 &lt;div onclick=""&gt;123&lt;/div&gt; div1.onclick = function(){}; &lt;button onmouseover=""&gt;&lt;/button&gt; 注意: 如果给同一个元素绑定了两次或多次相同类型的事件,那么后面的绑定会覆盖前面的绑定 (不支持DOM事...
情人节来了,教你个用 Python 表白的技巧
作者:@明哥 公众号:Python编程时光 2020年,这个看起来如此浪漫的年份,你还是一个人吗? 难不成我还能是一条狗? 18年的时候,写过一篇介绍如何使用 Python 来表白的文章。 虽然创意和使用效果都不错,但有一缺点,这是那个exe文件,女神需要打开电脑,才有可能参与进来,进而被你成功"调戏”。 由于是很早期的文章了,应该有很多人没有看过。 没有看过的,你可以点击这里查看:用Pyt...
用Python开发实用程序 – 计算器
作者:隋顺意 一段时间前,自己制作了一个库 “sui-math”。这其实是math的翻版。做完后,python既然可以轻易的完成任何的数学计算,何不用python开发一个小程序专门用以计算呢? 现在我们越来越依赖于计算器,很多复杂的计算都离不开它。我们使用过各式各样的计算器,无论是电脑自带的,还是网也上的计算器,却都没有自己动手编写属于自己计算器。今天就让我们走进计算器的世界,用python来编写...
经典算法(19)教你两分钟学会【选择排序】
这篇博客使用图文并茂的方式讲解选择排序算法,并有完整的算法逻辑以及代码实现。
Python学习笔记(语法篇)
本篇博客大部分内容摘自埃里克·马瑟斯所著的《Python编程:从入门到实战》(入门类书籍),采用举例的方式进行知识点提要 关于Python学习书籍推荐文章 《学习Python必备的8本书》 Python语法特点: 通过缩进进行语句组织 不需要变量或参数的声明 冒号 1 变量和简单数据结构 1.1 变量命名 只能包含字母、数字和下划线,且不能以数字打头。 1.2 字符串 在Python中,用引号...
用Python打造你的专属情人节贺卡,赶快发给TA浪漫一下吧
明天就是情人节了。这个情人节,注定是一个不能约会的情人节,但不能约会不代表不能浪漫。古人比我们出生早,那些浪漫的诗词早都被他们挖掘一空,比诗词我们肯定没有机会了。好在我们还有Python,不然都不知道该如何表达浪漫。接下来,浪导教你制作一个浪漫的情人节专属贺卡。
相关热词 c# 识别回车 c#生成条形码ean13 c#子控制器调用父控制器 c# 写大文件 c# 浏览pdf c#获取桌面图标的句柄 c# list反射 c# 句柄 进程 c# 倒计时 线程 c# 窗体背景色
立即提问

相似问题

2
Python读取txt文本文件数据插入到数据库中,数据库中只有txt中最后一行数据
0
matlab读取多个数据存储格式相同的TXT文件中指定行的内容
1
用r的RODBC包中读取mysql中的数据时,读到r中后其中一列的数据发生了变化,请教各位大神是什么原因呢 ?
1
python读取txt文件里面的数据怎么处理?
1
matlab中如何读取csv文件中的数据,除了直接读取对应的区域,还有别的什么办法来读取这些数据?
4
读取多个Mpu9250数据出错
1
VAB 读取excel的第一行数据
1
c# 如何从数据库格式(eg: .db , .sqlite)文件流中读取数据信息显示界面中,而不是直接从文件中读取
1
c#mongodb如何从第一个数据开始一直往后读取数据?
1
数据以树形格式关联 N级树的读取权限问题
0
java读取access数据库时,报错[Microsoft][ODBC 驱动程序管理器] 无效的字符串或缓冲区长度
2
如何读取txt文件中的单词?
1
C#怎么读取含有多个空格的一串字符串中的某一个数据?
0
C#中如何读取byte数据的某一位数值?
1
QT怎么实现一个包一个包的读取串口数据
1
【问题描述】 本题要求实现一个拆分实数的整数与小数部分的简单函数。在main里完成数据读取和结果输出。 函数原型为 void splitfloat( float x, int *intpart, float *fracpart );
0
Qt从数据库读取数据写入文件时内存溢出
1
NPOI读取和写入Excel数据时候,怎么可以按照单元格数据的样式,存取和写入数据到Excel表格中呢?
0
mongodb 读取不到数据
3
当数据量很大的时候,GetPrivateProfileSection()为什么获取的数据只有少一半。