第一篇:程序编码总结
技术部工作总结
大家好,我是…的...,接下来由我为大家分享我这三个月的收获。
从研讨室培训出来我就被分到了畜牧组,对此我感到特别的幸运。大家一起工作,一起加班,在积极融洽的氛围中共同学习,共同成长。这让我摆脱了初涉职场的迷茫,并且逐渐热爱工作,沉醉工作。下面就是我对这几个月工作的总结:
学习是提升自己、丰富自己的有效途径。刚进组时我对一切还有些陌生,渐渐的我学会了如何使用公司的框架,如何对猪源系统业务进行分析,还学习了有关项目管理的九大知识领域、五大过程。知道了项目的意义,项目管理的价值及项目管理的需求管理。知道了什么是需求开发,业务需求、需求验证以及需求管理和需求调研。在研讨室的几天里,更是让我知道业务是要经过讨论才会变得更加完善,也为我日后的工作指明了方向。最近我也在了解有关TRS网站方面的知识,以及如何使用TRS去开发网站。在这期间让我深刻感觉到自我学习的重要性。
前辈的帮助与教导是我迅速成长的助力。在开发期间,磊哥教会了我很多的有关编码格式,编码技巧以及功能模块的解决方案。他教会我在实际开发中要有整体意识,先想解决方案然后再进行编码,在想解决方案的同时要考虑简化sql语句,减少频繁操作数据库,页面不必要的代码或空格会影响加载效率,当然 也要考虑代码逻辑是否需要简化,怎么样才能减少bug数量。此外有关Echart图表的应用也让我在工作中少走了不少弯路。在此期间,我越来越懂得谦逊,谦虚使人进步,骄傲使人落后。世界之大,有许多东西是我所不知道的,我只有谦逊,不断学习,不断充实自己,才能有一个更好的自己。
实践是检验真理、巩固知识的关键。在这期间我做了一个有关审批系统的功能维护,这让我真切的感受到了代码格式以及代码注释的重要性,代码规范可以为后期维护减少大部分时间。然后我了解了有关统计的功能,让我知道统计最重要的就是sql语句的编写,在做统计模块的时 候要先分析统计图之间是不是有关联,如果有可不可有一条语句全部查出来。还学习了有关打印的功能,套打主要就是进入相关的lodop插件跟js,然后磊出打印样式就可以实现。在这期间还写了有关日报系统的功能,这让我更加确信代码格式的重要性。更让我知道了实现一种功能可以有很多的途径和解决方案。纸上得来终觉浅,绝知此事要躬行。在一个个实际操作中我更加透彻的理解了相关知识,也对自己的知识储备感到不满,日后定会积极汲取知识,学习经验,为日后工作打下扎实基础。
时刻自省以追求进步。在工作中我也发现了自己还有很多地方做的不够好,也有很多地方需要学习,今后我定会刻苦努力,补短板,提质量,工作认真负责,态度积极向上,不让工作有漏洞,不给客户留bug。
以上就是我这三个月的心得体会,谢谢大家。
第二篇:Java_GUI程序设计规范编码方式总结
GUI编程规范总结:
1,一般情况下对话框第一栏都是菜单栏,因此首先就是建立菜单栏。在GUI控件使用时所有的控件都是层层嵌套的,说的意思就是控件依托,并最终整合到面板上,进而在添加事件侦听器,以响应时间的发生;
建立菜单:
private JMenu JSSFMenu=new JMenu(“结算收费(J)”);private JMenuItem DBCZItem=new JMenuItem(“电表出帐/审核(A)”);private JMenuItem DBJFItem=new JMenuItem(“电表缴费(F)”);
* GUI程序设计模式总结:
* GUI框架的设计步骤:
* 1,首先要建立主框架:方法如下: JFrame f=new JFrame();
* 2,取得框架的内容窗格 Container contentPane=f.getContentPane();
* 3,在制作复杂的用户界面时,常常需要使用多个JPanel将复杂的界面分解为相对建大的子界面,然后在对每个JPanel进行布局;
JPanel p=new JPanel();
* 在布局管理器中:
* 对于流式布局则是直接调用add(p);里面的p指的是组件的对象
* 对于边框布局都是调用add的重载函数来实现的;例如边框布局采用的add(new JButton(“North”,BorderLayout.NORTH));
setLayout();
public void setLayout(LayoutManager mgr)设置此容器的布局管理器。
参数:
mgr-指定的布局管理器
例如设置网格布局管理器:p.setLayout(new GridLayout(3,2));
* 对于网格布局则有下面的添加组件的代码框架: JPanel p=new JPanel();
p.setLayout(new GridBagLayout());容器p设置为网格袋布局
/创建约束条件:
GridBagConstraints constraints=new GridBagConstraints();
//按照约束条件constraints将txtField添加到p中;
p.add(txtField,constraints);
* 4,将面板添加到框架的内容窗格中;contentPane.add(p);这里的p就是组件对象;
* 这里的add的添加方法不同就有不同的布局管理:这里的例子是边框布局
2,处理控件的依耐关系,及消息的定义;各种细节的设计(例如快捷键)
消息的处理机制将是以后重点的研究对象,本程序内采用匿名内部类的方法实现;
任何实现了Actionlistner接口的类所生产的对象,均可作为事件的侦听器,并实例化actionformed()这里面有消息处理的方法;
3,控件的逐级加入,JSSFMenu.add(DBJFItem);//将下拉子菜单加入到主菜单中去 menuBar.add(JSSFMenu);//将主菜单加入到主菜单工具条中
4,引入面板对象JPanel,在这之前要定义到要加入到面板的控件,例如标签,Jlable 可以对控件进行必要地显示效果设置,这些都可以调用现有的方法实现,参考说明文档就可以实现;
最后要设置控件的布局模式:
5,将面板加入到框架的内容窗格中; contentPanel.add(P);在制作复杂的用户界面时,常常需要使用多个JPanel将复杂的界面分解为较为简单的子界面,然后再对每个JPanel进行布局。此时我们知道,面板就是一个容器,以此为依托包含各种组件,最后在框架中时并独立设置这些组件的布局方式:contentPane.add(statusPanel,BorderLayout.SOUTH);这里的这个例子就是将statusPanel加入到框架中去,并设置了其在主框架中的布局:south 其实面板对象内部,也是需要设置组件的布局方式,因为面板中还有标签,文本。如下:
LayoutUtil.add(statusPanel,GridBagConstraints.NONE, GridBagConstraints.CENTER,0,0,0,0,1,1,labStatus);这也遵循逐级加入的思想,这种逐级加入的设计思想,使GUI程序设计的由内至外,逐步添加。使程序更加明朗;
代码如下: /* * 主要研究java程序设计的基本步骤与方法,以及程序在设计过程中应注意的问题及原则 * 这是主程序MAINAPP 也就是主程序的入口,是显示框架的模块 * 研究框架的设计模式以及主要的java技术,* 对话框设计的一般模式如下:
* 1,确定所选取的控件,一般情况下,都是在第一行建立菜单栏。* 建立菜单:注意上下菜单的依耐关系;
* 2,主程序界面的显示:获取框架的内容窗格;Container contentPane=f.getContentPanel();* 如下的例子: * * */
import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;import javax.swing.border.*;import java.sql.*;import java.util.*;import edu.njust.cs.*;
class MainApp extends JFrame{ //系统启动时的等待画面
private JFrame splashScreen=null;//收费结算菜单
private JMenu JSSFMenu=new JMenu(“结算收费(J)”);private JMenuItem DBCZItem=new JMenuItem(“电表出帐/审核(A)”);private JMenuItem DBJFItem=new JMenuItem(“电表缴费(F)”);//基础资料菜单
private JMenu JCZLMenu=new JMenu(“基础资料(Z)”);private JMenuItem GYItem=new JMenuItem(“雇员资料(G)”);private JMenuItem CBBItem=new JMenuItem(“抄表班(C)”);private JMenuItem SFBItem=new JMenuItem(“收费班(S)”);private JMenuItem FLItem=new JMenuItem(“费率(F)”);private JMenuItem DBItem=new JMenuItem(“电表资料(D)”);//设置菜单
private JMenu SZMenu=new JMenu(“设置(C)”);private JMenuItem SysConfigItem=new JMenuItem(“系统参数设置...(S)”);//帮助菜单
private JMenu HelpMenu=new JMenu(“帮助(H)”);JMenuItem aboutItem=new JMenuItem(“关于本程序...(A)”);//内容窗格
private Container contentPane;//当前内容窗格中的面板
private JPanel selectedPanel=null;//状态信息
JLabel labStatusContent=null;//登录用户
private JLabel labUserContent=null;//数据库连接
Connection con=null;//参数信息
private Properties prop=null;
public MainApp(){ /*SwingUtilities.invokeLater(new Runnable(){ public void run(){ showSplashScreen();} });*/ //创建菜单
setIconImage(new ImageIcon(“image/title20.jpg”).getImage());this.setTitle(“结算收费演示系统”);contentPane=getContentPane();//创建菜单
constructMenu();//创建状态条
constructStatusPanel();//读入系统参数 } public void constructMenu(){ //创建菜单 //构建菜单
JMenuBar menuBar=new JMenuBar();//收费结算菜单----------------BEGIN JSSFMenu.setMnemonic(KeyEvent.VK_J);//表示助记符的键代码 //电表出帐
DBCZItem.setMnemonic(KeyEvent.VK_A);/*DBCZItem.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ MainApp.this.setSelectedPanel(new DBCZPanel(MainApp.this,con));} });*/ //利用匿名内部类实现消息侦听
JSSFMenu.add(DBCZItem);//将下拉子菜单加入到menuBar中;
//电表缴费
DBJFItem.setMnemonic(KeyEvent.VK_F);
JSSFMenu.add(DBJFItem);menuBar.add(JSSFMenu);//收费结算菜单----------------END
//基础资料菜单----------------BEGIN JCZLMenu.setMnemonic(KeyEvent.VK_Z);//雇员
GYItem.setMnemonic(KeyEvent.VK_G);
JCZLMenu.add(GYItem);//分隔线
JCZLMenu.addSeparator();//抄表班
CBBItem.setMnemonic(KeyEvent.VK_C);
JCZLMenu.add(CBBItem);//收费班
SFBItem.setMnemonic(KeyEvent.VK_S);
JCZLMenu.add(SFBItem);//费率
FLItem.setMnemonic(KeyEvent.VK_F);
JCZLMenu.add(FLItem);//分隔线
JCZLMenu.addSeparator();//电表
DBItem.setMnemonic(KeyEvent.VK_D);
JCZLMenu.add(DBItem);menuBar.add(JCZLMenu);//设置菜单-------------BEGIN SZMenu.setMnemonic(KeyEvent.VK_C);//系统参数设置
SysConfigItem.setMnemonic(KeyEvent.VK_S);SZMenu.add(SysConfigItem);menuBar.add(SZMenu);//设置菜单-------------END //帮助菜单-------------BEGIN HelpMenu.setMnemonic(KeyEvent.VK_H);//关于
aboutItem.setMnemonic(KeyEvent.VK_A);HelpMenu.add(aboutItem);menuBar.add(HelpMenu);//帮助菜单-----------END setJMenuBar(menuBar);}
//创建状态条
public void constructStatusPanel(){ //将控件几种加入框架,并利用合理利用布局模式
JPanel statusPanel=new JPanel();//新建一个面板JPanel,这个面板对象只管下面状态栏的显示;
Border loweredBevelBorder=BorderFactory.createLoweredBevelBorder();//设置边界样式 statusPanel.setLayout(new GridBagLayout());//利用面板对象设置布局模式;为GridBagLayout布局
JLabel labStatus=new JLabel(“ 提示信息 ”);labStatusContent=new JLabel();JLabel labUser=new JLabel(“ 用户名 ”);labUserContent=new JLabel();labUserContent.setPreferredSize(new Dimension(90,3));
labUser.setBorder(loweredBevelBorder);labUserContent.setBorder(loweredBevelBorder);labStatus.setBorder(loweredBevelBorder);labStatusContent.setBorder(loweredBevelBorder);//设置组件边框;
LayoutUtil.add(statusPanel,GridBagConstraints.NONE, GridBagConstraints.CENTER,0,0,0,0,1,1,labStatus);LayoutUtil.add(statusPanel,GridBagConstraints.BOTH, GridBagConstraints.CENTER,100,100,1,0,1,1,labStatusContent);LayoutUtil.add(statusPanel,GridBagConstraints.NONE, GridBagConstraints.CENTER,0,0,2,0,1,1,labUser);LayoutUtil.add(statusPanel,GridBagConstraints.VERTICAL, GridBagConstraints.CENTER,0,100,3,0,1,1,labUserContent);//设置控件的布局,调用自定义包中的方法;
contentPane.add(statusPanel,BorderLayout.SOUTH);}
public static void main(String []args){ Font font=new Font(“微软雅黑”, 0, 12);SetFont.setFont(font);//设置全局字体 MainApp ma=new MainApp();ma.setDefaultCloseOperation(EXIT_ON_CLOSE);ma.setSize(600,400);//设置主画面初始大小 ma.show();//满屏显示
//ma.setExtendedState(MAXIMIZED_BOTH);} }
程序运行结果如下:
第三篇:短信格式(sms)以及编码总结
短信格式(sms)以及编码总结
一、短信猫操作分为三种模式: Block、Pdu 和 Text
1、Block 模式基本已经被 Pdu 模式取代,没有具体研究。
2、Text 模式比较简单,但是支持的设备不是很全,而且不能实现中文。AT + CGMF=1
3、Pdu 模式
Pdu 编码主要包括两个主要的部分,一是 pdu 串的整体数据格式,分别因为发送信息串和接收信息串而有区别,二是 pdu 中文本部分的编码,分别因为字符集而不同。
我们也可以这样来理解这个 pdu 编码的格式,sms 相当于一个协议栈,最简单的协议栈: 根据 gsm03.40 规范,sms 协议包括以下几层:
1、SM-AL :应用层。这个部分就是数据部分。
2、SM-TL :传输层。我们可以清楚的看到这里描述了主要的短信内容,包括发送号码,接收号码,信息类型,编码,数据报长度等等,这也是我们编程主要要面对的问题。
3、SM-RL :中继层。这个指的是短信在网关之间中继需要的协议。
4、SM-LL:链路层。
从上述描述中我们可以清楚的看到,我们编程主要集中于传输层。
二、短信传送有三种编码: 7 位,8 位,UniCode
1、英文 7 位编码 这是 gsm 的默认编码方式
由于这样的移位,我们可以看到我们能发的最多英文字符等于: 140*8/7 = 160。
2、数据 8 位编码
8-bit 编码通常用于发送数据消息,比如图片和铃声等;
3、中文 pdu 编码 发送中文时,必须用 UCS2(utf-16)进行编码,最多可以发 140/2 = 70 个汉字。UniCode 编码转换也比较简单,以中文为例,一个中文字符是两个字节,直接对高位字节和低位字节进行十六进制转换就可以了。如“欢迎”,UniCode 编码是 6B22 8FCE,这同时也就是转换的结果,如果发送的串中有英文字符,那么在前面补全 00,以保证一个字符对应两个字节。
4、PDU 串的用户信息(TP-UD)段最大容量是 140 字节,所以在这三种编码方式下,可以发送的短消息的最大字符数分别是 160、140 和 70。这里,将一个英文字母、一个汉字和一个数据字节都视为一个字符。
三、地址编码
短信发送中都会涉及到短信地址的问题,他们的编码规则是一致的 , 简单来说就是 BCD8421码编码。
如: 08 91 6808501505F0,08 :地址长度,(号码类型 + 号码长度)/2 的十六进制表示 91 :号码类型
683108501505F0 :号码,实际号码应为: +86***,号码处理方法为 , 如果为 +86 开始 , 将 + 号去掉 , 然后判断是否为偶数 , 不是在末尾补 F, 然后将奇数位和偶数位互换
四、编码示例
1、发送信息的 PDU 串:
用手机写一条短信息,发送手机号码为 ***,信息内容为“ Hello World!”。通过执行 AT + CMGL=2 可以读出此条信息。
AT+CMGL=2 {读未发短信息} +CMGL: 1,2,24 {1表示信息个数,2表示未发信息,24表示信息总容量} 08 91 683108501505F0 11 00 0B 81 3106656930F1 0000FF 0B E8329BFD06DDDF723619 OK 下面分析这条信息:
2、接收信息的 PDU 串
读取以上发送出来的短信,可以收到如下信息 , 接受到来自 *** 的“欢迎”PDU 串为: 08 91 683108503705F0 04 0D 91 683106504562F7 00 08 30507080635400 046B228FCE。对以上的 PDU 串分析如下表:
五、接收短消息 一般有两种接收模式.AT+CNMI=2,1,0,0,0 接受并存到 SIM 串口接收到以下信息: +CMTI:“SM”,X AT+CMGR=X回车
(从X存储区读短消息)AT+CMGD=X回车
(从X存储区删除短消息)PDU状态: at+cmgf=0 OK +CMTI: “SM”,1 at+cmgr=1 +CMGR: 0,24 ***5 F0240D91683157805300F***81000462F11804 OK 文本状态: +CMGR: “REC READ”,“+86 ***”,“05/02/28,0:20:18+00” bbc OK 2.AT+CNMI=2,2,0,0,0 接受并直接到串口 串口接受到以下信息: +CMT: “+86***”,“01/09/13,11:04:09+32” AAA 附录:关于PDU模式发送短信:
第一,对模块写入 AT+CMGF=0<回车> 的AT命令(<回车> 要用 r 来实现),之后应该得到一个 OK 响应,才能继续进行下一步;
第二,对模块写入 AT+CMGS=
响应(特别要注意:r是回车,n是换行,>是一个大于号,>后面还有一个空格!),才能继续进行下一步;
第三,可以开始写入要发送的内容了。这一部分只是PDU串中的一部分,并不是完整的PDU串(如前所述,去掉了SMSC地址那一部分),这一部分要以 Ctrl+Z 结尾,但是我们要知道,在字符串中要带上 Ctrl+Z 的话,必须是用ACSII码。Ctrl+Z的ASCII码是16进制的 1A,所以你可以在你的字符串后面用strcat函数附加上 “x1A ” 来实现。这样之后,如果发送成功,你就会收到GSM模块的一个发送成功的响应,形如:
+CMGS: 246
OK 如果只有一个“OK”响应,没有类似于“+CMGS: 246”的部分,则并不能发送成功!所以,当你只收到一个 OK 响应的时候,那肯定是哪里出错了。
第四篇:一、贷款卡(编码)申办程序简介
一、贷款卡(编码)申办程序简介
(一)领表:
一般情况:企业持有效《营业执照》副本原件(事业单位持有效《事业法人登记证》副本原件)和有效代码证副本原件(或代码证电子副本即IC 卡)。向当地人民银行征信管理部门提出申请,并领取《贷款卡申请报告书》。
不具法人资格的分支机构:除上款各文件外,还应提交由上级法人出具并经公证机关公证的授权书,【授权书中应包括:①同意下级分支机构办理贷款卡(编码);②承诺在下级机构无法偿还金融机构债务时承担还债责任等条款。】
其他单位:确需办理贷款卡(编码)的,应提交编制委员会关于批准该机构成立的批文的复印件、经上级主管部门签署意见的申请报告、金融机构信贷意向书以及本单位正式介绍信。
(二)填表:由企业(单位)法人或财务负责人如实填写各有关表格。法定代表人、主管会计、经办填表人分别在指定处签名(不得代签),并加盖企业(单位)公章。有关各表格的填写,应先仔细阅读各表下方有关说明和本《简介》,填写应有根有据,不得凭印象随意从事。
(三)送检:申请人准备好下列应出示文件和应提交文件(材料),送人民银行有关部门审验:
1.有效的《法人企业营业执照》或《营业执照》或《事业法人登记证》等正本复印件,并出示副本原件;
2.有效的《组织机构代码证》正本复印件,并出示副本原件;
3.有效的《国税登记证》、《地税登记证》正本复印件,并出示副本原件;
4.有效的《基本帐户开户许可证》复印件,并出示原件;1
5.法定代表人(负责人)、总经理、财务负责人等高级管理人员的身份证件、学历证明材料复印件;
6.企业最新《注册资本验资报告》或《国有资产产权登记证》或有关注册资本来源的证明材料复印件,并出示原件。
【注意:①验资报告中应载明具体出资人和出资额;②若为增资报告则应同时提交原验资报告;③若《注册资本验资报告》、《国有资产产权登记证》或有关注册资本来源的证明材料等均无法提供原件,可由主管工商行政管理部门出具其有关出资证明文书;④以上证明材料中企业名称若与本企业实际名称不符,需提交工商部门变更证明;股东变更需提交股权转让协议,或者工商部门的出资变更证明。】
7.《企业资本构成情况》表中各出资单位《代码证》复印件和各出资自然人的身份证件复印件。
8.企业对外投资情况证明材料[如被投资单位验资报告、(未验资的)被投资单位公司章程等],以及各被投资单位的《代码证》复印件。
9.上级公司(集团公司/母公司)的《代码证》复印件。
10.法定代表人家族企业各成员身份证件,以及家族企业各成员单位的《营业执照》复印件。
11.法人企业申请贷款卡前的上及最新的季度或半资产负债表、损益表及现金流量表。各报表页须盖企业公章和财务负责人、制表人印章。【事业单位、非法人企业、个体工商户等无须报送财务报表】
12.填写完整的《贷款卡(编码)申领(年审)报告书》。
13.办理贷款卡经办人身份证件复印件;
14.若委托他人申请贷款卡(编码)的,还另需提交具有法律效力的《委托授权书》。
上述各复印件,一律按A4纸规格复印纸复印。
(四)发卡:人民银行根据申请人报送的资料,审查申请人是否具备领卡(编码)的资格。对条件具备者人民银行按有关规定颁给贷款卡(编码)。申请人可对自己的贷款卡(编码)设置密码,以保护本单位信用信息安全。
☆ 特别提请填表注意:本申请书中 “法定代表人”、“财务负责人”、“经办人”等签名须由其本人签署;“单位盖章”不得以“财务专用章”等下属部门公章等替代。
二、贷款卡(编码)要素变更
(一)借款人因名称、法定代表人、注册资本、地址、登记注册类型等变更,需办理新卡或变更手续。
(二)变更资料:
1.与《贷款卡(编码)申领报告书》资料相同;
2.借款人名称变更后,未变更《注册资本验资报告》的,需提供工商行政管理部门出具的借款人名称变更证明;
3.出资人变更后,未变更《注册资本验资报告》的,需提供股权转让协议;
4.经办人的有效身份证原件及复印件;
(三)上述资料审核通过后,原则上三个工作日内可变更贷款卡内容并领取新的贷款卡。
三、贷款卡挂失
(一)借款人发生贷款卡遗失,可凭《贷款卡遗失证明》(需法定代表人签字并加盖企业公章)和经办人有效身份证件向人民银行申请挂失和补发。
(二)补发贷款卡所需资料与“申领贷款卡”相同;
(三)挂失一星期后凭经办人有效身份证原件补领新卡。
第五篇:格力空调遥控器编码分析总结
格力空调遥控器编码分析总结
测试的遥控器型号:视贝 A10 GR
遥控器默认初始状态:24℃
制冷
扫风
三级风速 定时关 所对应的16进制编码:79 08 00 50 02 00
通过逐渐改变温度,其他条件不变的情况下很据编码分析发现: 温度是由编码中的第二个字节的低位控制,16℃对应“0”,30℃对应“E”,依次递增。
25℃下其他条件不变,模式由制冷变为除湿,编码为:5A 08 00 50 02,经过几次实验发现,“除湿”是一个固定编码,不受其他条件限制。“除湿”的默认状态是24℃,一级风速,扫风。
编码的第一个字节的高位控制摆风和风速:一级(摆风):5,二级(摆风):6,三级(摆风):7,自动(摆风):4 从摆风状态变为定风状态时,第一个字节的高位减4 第一个字节的低位控制“模式”:自动:8,制冷:9,除湿:A,送风:B,暖气:C 从任何模式状态下关闭关闭空调时,第一个字节的低位减8 “快冷”键是一个固定编码控制:79 0A 00 50 02 00 “快热” 键是一个固定编码控制:7C 04 00 50 02 00 编码的第二个字节的高位和第三个字节的低位控制“定时关” 第二个字节的高位为“8”时,代表定时开,第三个字节的低位代表时长(前提是定时低于9小时),当定时大于或等于9小时时,第二个字节的高位为“A”,第三个字节的低位显示时长的个位数。目前只有第三个字节的高位功能未知,其他位已确定。