第一篇:《中文Linux应用编程界面(API)规范》
《中文Linux应用编程界面(API)规范》
编制说明
一、任务来源
根据国家863计划信息技术领域,软件重大专项,中文Linux和办公软件相关标准与规范课题研究开发任务的规定,和根据国家质检总局和信息产业部2003年放国家标准和行业标准制、修订计划安排,制订《中文Linux应用编程界面(API)规范》。该项目由中软网络技术股份有限公司负责起草,项目计划代号为
二、工作过程
在国家任务下达后,中软网络技术股份有限公司就组织了工作组,在前期工作的基础上,收集与翻译了国际上有关Linux的主要标准的最新版本LSB 1.3(目前的最新版本为 LSB 2.0)和OpenI13N 1.3。总结了多年来在Linux开发工作和标准制订工作的经验。在“非典”肆虐期间,编写了制订《中文Linux应用编程界面(API)规范》的计划和大纲。
在“四所”的组织下成立了“中文Linux标准”工作组。在工作组的统一安排下,确定了编写工作的计划与大纲。于2003年9月初,编写了《中文Linux应用编程界面(API)规范》初稿,提交工作组讨论。工作组前后经过了近10次讨论,几经修改,先后提交了三次修改稿,才形成了《征求意见稿》。《征求意见稿》通过在网上和有关单位广泛征求意见,收集了许多很好的意见。工作组又组织了有FSG和OpenI18N有关人员和国内的Linux厂商、专家及有关人员参加的“Linux标准研讨会”。
2004年4月信息产业部成立Linux标准工作组,组织更大范围的企业参与标准的制定工作。在此基础上工作组对“意见汇众”进行了深入的整理、分析和讨论,确定了修改意见。根据这些意见,经过修改,我们提交了《中文Linux应用编程界面(API)规范》的《送审稿》。
2006年在发展基金及国家十五项目的支持下,中国电子技术标准化研究所组织国内主要Linux操作系统发布商,对标准的符合性测试展开研究,并根据测试研究的结果对标准做中描述不够严谨的地方做出相应调整。
三、主要说明
1、标准的目的Linux以其源代码的开放性已成为操作系统市场上的一支生力军,并成为促进我国信息化建设和发展的新生力量。“以Linux为契机,发展我国自主的操作系统和应用软件”已成为我国信息产业内的一个共识。Linux真正能够大规模地应用还面临着标准化、兼容性以及应用软件支持等诸多问题考验。坚决做好Linux的标准化和产业化工作,只有通过标准和规范来确保Linux各版本间的兼容和相对统一。要使Linux真正成为一个开放系统,必须吸收POSIX标准和国际Linux相关组织的研究成果,结合Linux的特点及中文信息处理的特殊性
对Linux操作系统中涉及中文信息处理的应用编程接口进行约定,以提高各Linux系统对中文应用程序的兼容性。该规范将使我国市场上基于Linux系统开发的中文应用程序具有源码级的可移植性,从根本上避免重复开发。
2、本标准制订的依据
1)多年来ISO/IEC和IEEE对开放系统的标准进行了大量的研究和制订工
作,已经形成了POSIX标准体系。各种开发厂商和组织也都声称以POSIX标准为依据进行开发。Linux也是按POSIX的规定进行开发的开放系统。这些都为本规范的制订打下了基础。
2)为了规范Linux发行版本,尽可能地实现各种Linux的兼容性,Linux
国际正在大力进行Linux Base Specification(LSB)的制订工作。已由2001年7月发布的LSB 1.0,发展到2003年初发布的LSB 1.3。而且,已经有若干重要的Linux版本提供商通过了LSB 1.3的符合性测试。2004年月正式发布了 LSB 2.0。LSB 2.0是一个重大事件,它比LSB 1.x系列有重大的发展、提高和变化。
3)为了使Linux能适用于各个国家和各种文字,Linux国际也在制订Linux
国际化标准。从LI18NUX 2000,到现在的OpenI18N 1.3。为各国语言文字在国际化的基础上实现本地化提供了依据。多年来我国中文信息处理技术有了巨大的发展。在各种系统上(包括Linux)在国际化的基础上实现中文信息处理的本地化,已经有了丰富的经验。而且我国已经制订了国标《开放系统中文界面规范》(于1996年制订,2003年修订)。这些都为本规范的制订打下了基础。
3、标准中的几个重要问题
1)关于LSB的遵循性问题。国际标准化组织在制订开放系统的标准时,首
先提出的是应用程序源码级的可移植性。POSIX标准也是以保证应用程序源码级的可移植性为目标进行制订的。源码级可移植性也是应用程序目标码级可移植性的基础。本规范的任务就是制订中文Linux应用编程界面(API)规范。目标是实现进行中文信息处理的Linux应用程序在遵
循本规范的Linux系统上的源码级的可移植性。但是,在制订的过程中发现,国际上许多重要的UNIX版本,都是声称遵循POSIX标准。而这些版本往往互不兼容,很难真正实现源码级的可移植性,更不要说实现目标码级的可移植性了。为了防止Linux走上UNIX版本不一致、不兼容,使用户很难使用的老路。Linux国际决定制订LSB,实现目标码级的可移植性。Linux国际这样做是有依据的。这是由于对于UNIX来说,先有UNIX的开发、后有标准。当标准制订时,已经有了各种UNIX的商业标准,虽然厂商宣称遵循POSIX标准,但为了厂商的利益,这些版本确实很难统一。而Linux是自由软件,而且核心的开发由Linus控制和发布。并且gcc等技术的发展也为实现目标码级的可移植性提供了可能。而且,LSB的符合性测试也日趋成熟。我们没有必要另搞源码级可移植性的符合性测试。经过反复讨论,工作组决定,整个中文Linux标准应遵循LSB 2.0。遵循本规范的实现应通过LSB 2.0的符合性测试。LSB 2.0 在制订过程中发现,针对不同的需要,LSB 除了分为LSB 规格说明的公共部分-gLSB和 LSB 规格说明的体系结构部分 – archLSB 两大部分外,就是 gLSB 也分为:LSB – generic 和 LSB – Graphics等。本规范虽然是API,但为了不割裂 LSB 文档,决定完整引用 LSB – generic 和 LSB – Graphics 这两部分。关于如何引用有几种不同意见,有在正文中引用 LSB 的主要内容、在正文中只提引用哪些内容,把LSB 2.0的译文放在附录中等等。我们也提供了几种版本。最后确定,只在正文中指出引用 LSB 2.0 的哪些内容。不在附录中放进 LSB 2.0 的参考译文(LSB 2.0 译稿初稿已完成)。
2)在制订国标《开放系统中文界面规范》时,当时的工作组曾邀请两岸三
地(大陆、香港和台湾)的有关中文信息处理的专家开了几次会。结果是在上述标准中规定了中文所需要而在别的标准中尚未提供的有关半角、全角转换、注音等6个函数。在制订本规范时考虑到《开放系统中文界面规范》中规定的字符界面和图形界面的有关函数在 LSB 2.0 中已包含,而这6个函数是独特的,故把它们包含在本规范中。但有的意见认为:这6个函数尚未在产品中实现,有的可以用别的 C 库函数替代。是否不需要了。在本送审稿中尚保留,请专家门审定。
3)关于输入方法服务器。中文输入方法是比较复杂的,可以说是各件语言
文件中最复杂的一种输入方法。而且中文输入方法又非常多。为方便与各种输入方法接口,能实现主流的中文输入方法,系统中必须提供输入方法服务器。输入方法服务器为应用程序编写者提供接口,这主要由协
议规定。由于中文输入方法复杂又有众多不同的输入方法,即使是最常用的也有若干种输入方法。为此,输入方法服务器也需要为输入方法编写者提供接口。使用此接口编写的输入方法都能挂接至系统上。目前,最流行的输入方法服务器是X window输入方法服务器(XIM)。但是,广泛使用的XIM协议也存在一些问题,最突出的是:首先,XIM是X Window系统的一部分,其结构也跟X Window紧密相连。故使用XIM的系统必须拥有X Window。而X Window系统规模厖大,不太适用于一些嵌入式系统。其次,它不支持多种语言。虽然,X Window能使用Unidode的UTF-8编码,也即整个GB18030的多民族语言文字库都可以使用。可是,输入法服务器不能通知客户端用户输入的是何种语言。此问题导致采用XIM协议,会阻碍应用软件支持多民族文字和多国语言。创造XIM协议的同一组人员,觉察到这些问题,设计出一套新的协议,称为互联网-企业内部网输入法协议-IIIM(Internet-Intranet Input Method Protocol)协议。此协议已有实现者,且有日益扩展的趋势。故在本规范中同时提供这两种协议。
4)中文输入方法很多,为了使主流的中文输入方法能用于或移植到遵循本
规范的Linux系统上来,本规范规定了中文输入方法与中文输入服务器的接口。
5)Linux上的支撑软件很多,特别是桌面系统。这些软件各有特色且都在发展。因而,Linux上的打印很复杂,很难统一。但为了使应用程序能正确打印出中文。本标准对系统配置的主要中文字库规定了规范名称,也规定了字库的存放目录。
四、验证情况
从2006年8月启动对相关Linux产品的规范符合性测试,主要目标是验证规范的合理性和测试方法的可行性。目前已经进行的本规范符合性测试产品包括:中标服务器操作系统3.0、红旗服务器操作系统5.0、中标桌面操作系统3.0、红旗桌面操作系统5.0,通过这些测试证明了规范要求全面、合理,符合性测试方法可行。
Linux标准工作组
2007年6月11日
第二篇:界面功能规范
界面功能规范
安装及卸载
用户按照User Guide就可以自行完成安装或卸载,无需技术人员的支持。
安装或卸载的过程,有“cancel”按钮,可以中断操作。中断后,系统可以回到初始状态。
系统卸载后在用户的计算机中不应该留下垃圾文件。取消安装后,重新再次安装可以成功。
根据用户需求,在不同的OS下,可以安装成功。
自动升级
自动升级完成后,系统中的数据和各项用户设置不能发生改变。
自动升级过程中需要为用户提供进度条。
若在自动升级中提供了取消的功能,则中途取消后,系统需要回到升级之前的状态。
Login界面控件
至少应包含Login Name、Password输入框,login,找回密码这几项。------(我去掉了cancel,因为参考外国很多网站的登录页,都没有cancel按钮)“Login Name”、“Password”及对应的输入框应左右对齐,宽度一致。找回密码功能必须提供。如下图所示,但Login按钮需要移动到左边。
可以有Remember Me和验证码。若有验证码,则需提供刷新验证码的功能。
Login界面功能与键盘操作
Login界面的所有控件之间可以使用Tab键来移动焦点。
若用户输入了Login Name和Password,按下Enter键时,应该让用户登录。
若是在C/S模式下,用户按下ESC键时应直接关闭登录窗口。
常见问题:
没有找回密码功能。用户输入超长的字符串到Login Name和Password中,点击登录按钮后,系统应给出错误提示。
表格
列表表格需要固定长度。
当文本以正常形式输入并保存,列表中显示的时候,超过了默认表格宽度,应该要自动换行。
Full Name、Email、日期、电话号码属性列,应该固定足够的长度。
表格中的内容应该按照某种规则排序。
表格的表头应所有文字居中。
表格中的内容应遵循以下原则:若是文字内容应左对齐,若是数字或日期内容应右对齐。
表格内容很多时需要分页。分页应提供页面导航功能,包括:上一页、下一页、跳转到某一页、总页数、当前页码。如下图所示图片中,使用列表的方式显示数据集时,必须在列表的下方显示总记录数。
当表格中的数据为空时,必须显示该表格的表头。若表格的最后一页所有数据被删除后,应自动跳转到前一页上。
文本输入
在多行文本框中,手工输入了回车换行,显示文本的时候,文本不能是一行显示完,要实现回车换行。
当输入的文本达到限制内的最大长度,在保存数据时系统应该给予提示。在不同的页面上相同字段的输入长度限制应该相同。
输入特殊字符时,要做处理。如:<>、等,保存包含特殊字符的字符串时系统要保存正确。
当文本框内有内容时,用户使用Tab键移动光标进入文本框,需要自动将所有内容选中。
若文本输入框的外面有显示该文本框的最大输入长度。那么应该同时显示已经输入的字符长度。
必输项应该在输入框后面标记“*”号。该符号与输入框之间应该有一个空格符的距离。
页面上有多个输入项时,上下的输入项之间应该保持宽度一致。内容相近或相互关联的输入项应该用Group Box框起来。如下图所示:
对输入的合法性进行检查时,要使用统一的方式来显示提示信息。
日期控件
日期控件中内容应默认显示当前系统日期。若非必填的日期内容,须允许用户输入空白值或者删除当前的输入值。
Web页面上的日期控件需要注意不同时区之间的差异。如服务器在美国,中国的用户浏览该页面时会出现如下的问题:
当程序和数据库都安装在美国时区的OS中,在中国时区的OS中用浏览器访问,有以下两种情况的错误:
1)数据库中保存的是正确的时间,但显示出来就是错误的时间
如:在BBS中创建topic后,topic的创建时间是 07/01/2008 16:09,但在topic显示出来的时间是:07/02/2008 00:10 2)数据库中保存的是错误的时间。
如:在浏览器上操作的时候,选择的是 07/01/2008 02:07保存,但查看的时候,时间显示的是06/30/2008 10:07(重现见RFA Internal系统中关于user的birthday的保存)或者在浏览器上操作的时候,选择的是 07/01/2008 02:07保存,查看的时候,时间是正确的:07/01/2008 02:07,但数据库中是:06/30/2008 10:07。日期控件需要在不同的浏览器下正常显示(IE、Firefox、Safari)。如图:
导航栏和页面链接
Web类型的项目中,大的功能模块需要都显示在导航栏上。每一个页面的导航栏都应该和首页的导航栏保持一致。如图:
可以点击的页面链接下应该加上下划线。暂时不能点击的页面链接应该没有下划线。
所有的功能链接都必须保证正确。
提示信息的显示
提示信息的显示应该统一。根据项目类型的不同而定。如C/S模式的系统,应该采用弹出对话框的形式显示信息。
系统中所有提示信息的字体和大小应该统一。对话框的标题上应该显示提示名称。如下图:
不同浏览器下一致性
若Web类项目需要在不同的浏览器下显示。则需要进行相应的测试。确保在IE下的显示效果和其他浏览器相同。
Web类项目需要在不同的浏览器下显示,则需保证web界面、功能与在IE下一致。
文字信息
所有的文字信息,若是英文,需要请Writer审核。
文字应统一按照左对齐的格式显示。文字内容应该与边框有一个空格符的间隔。
在全英文操作系统中,若有中文信息,则该信息不能显示为乱码。
文字的字体类型、大小需一致。
图片上传及显示
包含图片的记录,在用户编辑过图片后应该立即在界面上看到修改的结果。
上传或下载大尺寸图片或多张图片时Performance不能太低。必须提供进度条,并且提供中途取消的功能。如下图:
Web页面上的图片应是GIF或JPG格式,应没有DMP等其他格式的图片。保证所有图片都可以在常用浏览器(IE、Firefox等)下正常显示。
浏览包含图片的记录时应该提供缩略图。缩略图应是原图片按照比例缩小后的图片。不能出现图片的变形或分辨率下降太多。如图所示:
界面控件排布
界面控件的长度和排布应尽量对齐。界面下方的“保存”或“关闭”按钮应该统一居中或左右对齐。不能有的界面居中有的界面又是左右对齐。
Web系统安全性
在未登录的情况下直接访问Web系统的功能页面。系统必须提示用户登录后才可访问。
下拉列表
如下拉列表框等控件。其中的内容若过长,且控件本身的长度不够,那么可能会显示不完整。需要调整控件长度,使其中的内容尽量显示完整。
下拉列表中的内容应该按照首字母排序。应该根据用户的输入自动定位到相应的内容上。如图所示:
搜索功能
在搜索条件输入框中应该有缺省值。若搜索的字段不是必填字段,应该允许用户输入空白值(包括日期格式的字段)。
应该提供Search Within Result功能,即在查找的结果集中继续查找。搜索结果应该提供用户选择排序的方式。如:按名称排序或者按日期排序。
搜索结果,默认某种排序方式。
显示搜索结果的同时应该把搜索条件显示在页面上。如图所示:
用户管理:
必须为系统管理员提供更改用户密码的功能。
应该为系统管理员提供更改用户基本资料的功能。
用户的基本资料应该有一定的逻辑判断。例如:雇佣日期不能早于出生日期等。
用户的地址和电话号码需要按照美国用户的习惯设计。如图:
电话号码的输入应该依照以下的输入规范:
如果是Web页面,则在用户登录后应该在页面的上方显示当前登录用户的用户名。如果是Windows窗体界面,则在用户登录后应该在Status bar中显示当前用户的用户名。
键盘操作
在C/S模式的系统中,用户应该可以使用键盘操作到系统的所有功能。
一些常用的快捷键应该符合普通用户的习惯。例如:按下ESC键即退出当前界面。按下Enter键即相当于鼠标左键的点击。
可以使用Tab键移动焦点到任何一个输入框和按钮上,并且从第一个控件到最后一个控件之间可以循环往复。
Tab键移动焦点的顺序应该按照从上到下,从左到右。
列表中的选中焦点应该可以用上下方向键浏览。如图:
第三篇:java GUI图形化界面编程总结
GUI(Graphical User Interface)图形化界面编程总结 Java.Awt:Abstract Window ToolKit(抽象窗口工具包)Javax.Swing:
图形化界面基本设置:
设置窗体大小:setSize(长,宽);
设置窗体位置:setLocation(距离左,距离上);setBounds(长,宽,距离左,距离上);设置布局:setLayout(new FlowLayout()); 使窗体可见:setVisible(true); 事件监听机制:
事件监听机制的特点: 1,事件源。2,事件。3,监听器。4,事件处理。
事件源:就是awt包或者swing包中的那些图形界面组件。事件:每一个事件源都有自己特有的对应事件和共性事件。
监听器:将可以触发某一个事件的动作(不只一个动作)都已经封装到了监听器中。
以上三者,在java中都已经定义好了。直接获取其对象来用就可以了。
我们要做的事情是,就是对产生的动作进行处理
Eg:编写程序,练习图形化界面编程!import java.awt.*;import java.awt.event.*;import java.io.*;class MyWindowDemo { private Frame f;private TextField tf;private Button but;private TextArea ta;
private Dialog d;private Label lab;private Button okBut;
MyWindowDemo(){ init();} public void init(){ f = new Frame(“my window”);f.setBounds(300,100,600,500);f.setLayout(new FlowLayout());tf = new TextField(60);but = new Button(“转到”);ta = new TextArea(25,70);d = new Dialog(f,“提示信息-self”,true);d.setBounds(400,200,240,150);d.setLayout(new FlowLayout());lab = new Label();okBut = new Button(“确定”);d.add(lab);d.add(okBut);f.add(tf);f.add(but);f.add(ta);myEvent();f.setVisible(true);} private void myEvent(){
okBut.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){
d.setVisible(false);} });d.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){
d.setVisible(false);} });
tf.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_ENTER)
showDir();} });
} but.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){
showDir();
} });f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){
System.exit(0);
} });private void showDir(){ String dirPath = tf.getText();
File dir = new File(dirPath);
if(dir.exists()&& dir.isDirectory()){ ta.setText(“");String[] names = dir.list();for(String name : names){
ta.append(name+”rn“);} } else
{
String info = ”您输入的信息:“+dirPath+”是错误的。请重输“;
lab.setText(info);
d.setVisible(true);
} }
public static void main(String[] args){
new MyWindowDemo();} }
菜单:
MenuBar 菜单整体;Menu 包含于MenuBar中;MenuItem包含于Menu中!以上3个关系添加用add();
将MenuBar放进Frame中用setMenuBar();
FileDialog.LOAD:打开的mode FileDialog.Save:保存的mode 练习:一个简易的记事本 /** 写一个关于记事本的小程序 @author田建 @version v1.1 */
import java.awt.*;import java.awt.event.*;import java.io.*;class MyMenuDemo { private Frame f;private TextArea ta;private MenuBar mb;private Menu me;private MenuItem miNew,miSave,miLoad;private File file;
private FileDialog openDia,saveDia;
MyMenuDemo(){
init();}
public void init(){
f=new Frame(”田建--记事本“);
f.setBounds(300,100,650,600);
ta=new TextArea();
//ta.setBounds(302,105,400,300);//f.setLayout(new FlowLayout());//为什么设置成了流式布局之后再设置文本区域没有效果
mb=new MenuBar();
me=new Menu(”文件(F)“);
miNew=new MenuItem(”新建“);
miSave=new MenuItem(”保存(S)“);
miLoad=new MenuItem(”打开(O)“);
mb.add(me);
me.add(miNew);
me.add(miLoad);
me.add(miSave);
f.setMenuBar(mb);
f.add(ta);
openDia=new FileDialog(f,”打开文件“,FileDialog.LOAD);
saveDia=new FileDialog(f,”保存文件“,FileDialog.SAVE);
myEvent();
f.setVisible(true);
}
public void myEvent(){
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
miLoad.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
openDia.setVisible(true);
String dirPath=openDia.getDirectory();
String fileName=openDia.getFile();
if(dirPath==null||fileName==null)
return;
ta.setText(”“);
file=new File(dirPath,fileName);
try
{
BufferedReader bufr=new BufferedReader(new FileReader(file));
String line=null;
while((line=bufr.readLine())!=null)
{
ta.append(line+”rn“);
}
bufr.close();
}
catch(IOException ex)
{
throw new RuntimeException(”读取失败“);
}
}
});
miSave.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(file==null)
{
saveDia.setVisible(true);
String dirPath=saveDia.getDirectory();
String fileName=saveDia.getFile();
if(dirPath==null||fileName==null)
return;
file=new File(dirPath,fileName);
}
try
{
BufferedWriter bufw=new BufferedWriter(new FileWriter(file));
String text=ta.getText();
bufw.write(text);
bufw.close();
}
catch(IOException ex)
{
throw new RuntimeException(”");
}
} });
} public static void main(String[] args){
new MyMenuDemo();}
} 打jar包的过程:
1、编译包 jar –cvf jar名 包名
2、写一个文件main-class: 包名.类名【加个回车】
3、jar –cvfm jar名 文件名 包名
配置jar执行的过程:
工具---文件夹选项---文件类型---新建---文件扩展名jar 然后确定----高级----修改图标-----open------javaw的路径—jar即可!
第四篇:应用中文复习资料
应用中文写作期末复习资料
第三章事务文书
3、启事
(1)概念:启事是单位或个人有事情,需要向社会、群众公开说明,或希望获得关心、理解、支持、协助办理时,所写的一种应用文。
(2)特点:公开性、知照性
(3)分类:1.寻领类:2.征招类启事
3.告知类启事4.声明类启事
(4)写作:①结构:标题+正文+落款
②标题:一般是事由加文种的形式
③正文:简洁语言说明启事的目的、原因、具体事项、要求、联系方式和联系人。
④落款:一般写启事单位或个人姓名及日期。
(5)写作要求: ①内容真实具体
②标题要醒目、简短
③评议简洁,通俗易懂、准确达意
4、计划
(1)概念:計畫是黨政機關、社會團體、企事業單位或個人在一定時間內,為做好某項工作或完成某項任務,依上級指示、政策、方針,或個人目標,結合本地區、本單位、本部門或自身的實際情況所做出的科學安排和合理部署的應用文書。
(2)特点:①明确的目的性
②科学的预见性
③很强的可行性
④一定的约束性
(3)种类:規劃、綱要、要點、方案、設想、打算、安排等,都属于计划。长期计划、短期计划、详细计划、粗略计划
(4)写作:①结构:标题+正文+落款
②标题:完整式标题OR省略式标题
③正文:
A前言:交代目标、分析完成计划的主、客观条件等
B主体:目标任务、措施办法、步骤时限
C结尾:执行计划要求、提出希望、号召
④落款:制定计划的单位、制定日期
(5)写作要求:①符合政策,切合实际
②集思广益、走群众路线
③语言精炼、明确具体
5、总结
(1)概念:總結是黨政機關、社會團體、企事業單位和個人在自身的某一時期、某一項或某些工作告一段落或全部完成後進行回顧檢查、分析評價,從而肯定成績,得到經驗,找出差距,得出教訓和一些規律性認識的一種書面材料。
(2)特点:①客观性
②理论性
(3)种类:略
(4)写作:①结构:标题+正文+落款
②标题:A公文式标题B文章式标题C双标题
③正文:A开头:通常簡述工作或任務的背景、指導思想、概貌和歷程等。
B主体:回答“做了什么”“怎么做”“为什么这样做”
C结尾:指出尚未解決或尚未完全解決的問題,今後的設想,努力的方向,或者表明決心。也可不寫。
(5)写作要求:①实事求是
②找出规律
③语言表达准确、朴实简洁
6、演讲稿
(1)概念:也叫演說辭,它是在較為隆重的儀式上和某些公眾場所發表的講話文稿。演講
稿是進行演講的依據,是對演講內容和形式的規範和提示,它體現著演講的目的和手段、演講的內容和形式。
(2)特点: ①针对性
②鼓动性
③通俗性
(3)写作: ①结构:开头+主体+结尾
②开头:A直入式 B提问式 C引用式 D抒情式
③主体:A主題必須集中,一篇演講稿只應有一個主題 B要有一定的靈活性④结尾:再次點題,為全篇增色昇華,簡明有力,不拖泥带水
(4)写作要求:①抓住听众的特点
② 观点鲜明、语言通俗生动
③情感相通、产生共鸣
7、会议记录
(1)概念:會議記錄是指當事人如實、準確地記載會議的基本情況、會議報告、討論發言、會議決議等內容的書面材料。會議記錄一般用於比較重要或正式的會議,它要
求真實、全面地反映會議的本來面貌。
(2)特点:①真實性
②原始形態性
③完整性
(3)写作:①组织情况:时间、地点、人数、主持人、记录人
②内容:会议议题的顺序、记录会议发言、报告、讨论和决议
(4)方法:①详细具体记录
②摘要记录
(5)写作要求:①真实记录会议过程的每一步骤
② 准确完成反应会议情况
③记录速度快
第四章:新闻文体
概述:
1、消息
(1)概念:以最直接、最简练的方式报道新闻事实的一种新闻文体,是最经常、最大量运用的报道载体。
(2)特点: ①新:時間、內容、角度
②短:文字簡短,內容明確when where who what why how
③快:搶新聞
④活:趣味性、生動性、深刻性
(3)写作:①结构:標題+導語+主體+背景+結尾
②标题:A分類:多行標題(包括引题、正标题和副标题)、單行標題
③导语:A叙述式 B描写式 C评议式 D提问式 E引语式
④主题:消息的主幹、中心部分,圍繞導語,具體展開,闡述事情的來龍去脈(5W1H)
⑤背景:與新聞事件、新聞人物有密切關係的條件與環境(简略)
⑥结尾:概括小結、篇末點題、啟發激勵等
(4)结构:倒金字塔式結構是一種頭重腳輕,虎頭蛇尾式的結構,它把最重要的材料放在篇首,最不重要的材料放在篇末,從導語至結尾按重要性程度遞減的順序來組織安排新聞材料。它的主要特點是:總體性倒敍、局部性倒敍、總體性順敘。它的導語常是直敘型,它按重要性程度來安排材料、對事件過程的敍述往往較簡略。
(5)写作要求:①用事实说话
②叙事要具体,内容要充实
③宜求生动、行文善兴波澜
2、通讯
(1)概念:通讯是运用叙述、描写、抒情、议论等多种手法,具体、生动、形象地反映新闻事情或典型人物的一种新闻报道形式。它是记叙文的一种。
(2)特点:①严格的真实性
②较强的时间性
③描写的形象性
(3)写作:①结构:标题+开头+主题+结尾
②标题:多数为单行式
③开头:一般不需要消息的导语那样概括事实或揭示主题,而是要尽快引出全篇线索。
④主题:对事件和事实报道的核心。
一般采用三种结构方式。A纵式结构(时间顺序)B横式结构(空间顺序、性质并列式)。
(4)写作要求:①选好典型、确立主题
②写好人物
③安排好结构
第五章:书信
概述:
1、书信
(1)概念:书信是一种向特定对象传递信息、交流思想情感的应用文书。
(2)种类:一般书信OR专用书信
(3)特点:①双向性
②距离性
2、申请书
(1)概念:申请书是个人或集体向组织、有关部门或社会团体表达愿望、提出某种请求的一种专用书信。
(2)写作:①结构:标题+称谓+正文+结语+签署
②正文:A阐述缘由 B提出请求 C表明态度 D结语 E签署
(3)写作要领:①实事求是
②语言要朴实
③感情要充实
3、求职信
(1)概念:求职信是求职者或他人为帮助求职者谋求职业而使用的一种社交礼仪信函。
(2)写作:①结构:称呼+正文+结尾+签名+日期+附录
②正文:A写出信息来源渠道 B简明扼要地介绍自己的主要情况 C说明能胜任职位的各种能力
③附录:一般是学历证、职称证等等。
(3)写作要求:①自我介绍要针对用人单位的招聘条件写
②自我推荐要有特色
③内容要真实可靠
4、简历
(1)概念:简历是找工作的重要工具之一,简历和求职信是走向同雇主面谈的第一步。
(2)写作:①姓名、地址和电话号码
②职业(工作)目标
③其他可能的项目或技能
④按时间顺序排列表格
⑤职能表格
⑥证明人
⑦推荐信
(3)写作要求:简历要尽可能简短
简历应集中在一个特定领域或行业
使用强势语言(如:计划、选择、监督、预算等)
展示工作成果(数字、效果、拓展)
第六章 经济文书
概述:
1、合同
(1)概念:合同也叫合約、契約、協議書。它是平等主題的自然人、法人和其他組織之間為實現一定的經濟目的,明確相互的權利和義務而依法訂立的書面協議。
(2)特点:①合法性
②协商性
③公平性
(3)作用:①作為合作雙方交易的法律依據
②便於合同雙方互相監督,有利於很好的執行合同
(4)写作:①结构:标题+当事人姓名+正文+结尾
②正文:一般包括合同的主要条款和双方自愿协议的内容
解決爭議的方法
違約責任
履行的期限、地點和方式
價款或報酬
品質
數量
標的----雙方權利或義務所指對象
③结尾:一般包括双方公章、法定代表人或委托代理人签章,还应写明地址、电话、开户银行和账号。还有加上签订的时间和地点。
(5)写作要求:①必须符合国家的政策、法令,遵循一定的原则
②内容要具体明确,条款要齐全完备
③要严肃合同纪律
④理清写作思路
⑤掌握语言要求
2、广告
(1)概念:①廣義:包括以贏利為目的的商業性廣告和不以贏利為目的的非商業性廣告。②狹義:專指以營利為目的的商業性廣告
(2)特点:①传播性
②简明性
③形象性
(3)作用:①传播信息
②指导消费
③使人获得美感的享受
(4)写作:①组成部分:标题+正文+广告标语+随文
②标题:直接标题、简洁标题、复合标题
③正文:A产品介绍 B对消费者的责任保证 C出售或收购的方式
④广告标语:例子:“三星技术,为生命服务”(韩国三星集团企业形象广告)⑤附在正文后对商品或企业相关的附加信息的必要说明,包括企业名称、地址、联系方式、购买方式、价格表等等)
(5)写作要求:可使用任何题材,允许一定程度的艺术渲染和夸张,但必须以事实为基础。由于传播媒体的限制,广告文必须把突出商品或劳务最重要的功能。特点作为诉求点。
抓住顾客的兴趣、需求、动机、情感等因素。
广告词要准确、生动、精炼、通俗、易记。
第五篇:编程规范(程序员必看)
编程规范(程序员必看)
作者:
评价:
上站日期:
内容说明:
来源:
.基本要求
1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。1.2 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。1.3 尽量使用标准库函数和公共函数。
1.4 不要随意定义全局变量,尽量使用局部变量。1.5 使用括号以避免二义性。
2.可读性要求
2.1 可读性第一,效率第二。2.2 保持注释与代码完全一致。
2.3 每个源程序文件,都有文件头说明,说明规格见规范。2.4 每个函数,都有函数头说明,说明规格见规范。
2.5 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。2.7 常量定义(DEFINE)有相应说明。2.8 处理过程的每个阶段都有相关注释说明。2.9 在典型算法前都有注释。
2.10 利用缩进来显示程序的逻辑结构,缩进量一致并以Tab键为单位,定义Tab为 6个字节。
2.11 循环、分支层次不要超过五层。
2.12 注释可以与语句在同一行,也可以在上行。2.13 空行和空白字符也是一种特殊注释。2.14 一目了然的语句不加注释。
2.15 注释的作用范围可以为:定义、引用、条件分支以及一段代码。2.16 注释行数(不包括程序头和函数头说明部份)应占总行数的 1/5 到 1/3。
3.结构化要求
3.1 禁止出现两条等价的支路。3.2 禁止GOTO语句。
3.3 用 IF 语句来强调只执行两组语句中的一组。禁止 ELSE GOTO 和 ELSE RETURN。3.4 用 CASE 实现多路分支。3.5 避免从循环引出多个出口。3.6 函数只有一个出口。3.7 不使用条件赋值语句。3.8 避免不必要的分支。
3.9 不要轻易用条件分支去替换逻辑表达式。
4.正确性与容错性要求
4.1 程序首先是正确,其次是优美
4.2 无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。4.3 改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。4.4 所有变量在调用前必须被初始化。4.5 对所有的用户输入,必须进行合法性检查。4.6 不要比较浮点数的相等,如: 10.0 * 0.1 == 1.0,不可靠
4.7 程序与环境或状态发生关系时,必须主动去处理发生的意外事件,如文件能否 逻辑锁定、打印机是否联机等。
4.8 单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。
5.可重用性要求
5.1 重复使用的完成相对独立功能的算法或代码应抽象为公共控件或类。5.2 公共控件或类应考虑OO思想,减少外界联系,考虑独立性或封装性。5.3 公共控件或类应建立使用模板。
附:C++ 编程规范,delphi作相应的参考
.1适用范围
本标准适用于利用Visul C++ ,Borland C++进行软件程序开发的人员.。
.2变量命名
命名必须具有一定的实际意义,形式为xAbcFgh,x由变量类型确定,Abc、Fgh表示连续意 义字符串,如果连续意义字符串仅两个,可都大写.如OK.具体例程:
BOOL类型
bEnable;
ch
*
char
chText c
*
类对象
cMain(对象实例)h
*
Handle(句柄)
hWnd i
*
int n
*
无符号整型 p
*
指针 sz,str *
字符串 w
WORD x,y
坐标
Char或者TCHAR类型
与Windows API有直接联系的用szAppName[10]形式否则用
FileName[10]形式,单个字符也可用小写字母表示;
Int类型
nCmdShow;
LONG类型
lParam;UINT类型
uNotify;
DWORD类型
dwStart;
PSTR类型
pszTip;
LPSTR类型
LPTSTR类型
LPVOID类型
WPARAM类型
LPARAM类型
HWND类型
HDC类型
HINSTANCE类型
HANDLE类型
HICON类型
int
float
DWORD
lpszClassName;lpReserved wParam, lParam hDlg;hDC;hInstance hInstance, hIcon;iTmp fTmp dw* 4
lpCmdLine
String , AnsiString
str *
m_
类成员变量
m_nVal, m_bFlag g_
全局变量
g_nMsg, g_bFlag
局部变量中可采用如下几个通用变量:nTemp,nResult,I,J(一般用于循环变量)。
其他资源句柄同上
.3常量命名和宏定义
常量和宏定义必须具有一定的实际意义;
常量和宏定义在#include和函数定义之间;
常量和宏定义必须全部以大写字母来撰写,中间可根据意义的连续性用下划线连接,每一 条定义的右侧必须有一简单的注释,说明其作用;
资源名字定义格式:
菜单:IDM_XX或者CM_XX
位图:IDB_XX
对话框:IDD_XX
字符串:IDS_XX
DLGINIT:DIALOG_XX
ICON:IDR_XX
.4函数命名 函数原型说明包括引用外来函数及内部函数,外部引用必须在右侧注明函数来源: 模 块名及文件名, 如是内部函数,只要注释其定义文件名;
第一个字母必须使用大写字母,要求用大小写字母组合规范函数命名,必要时可用下划线 间隔,示例如下:
void UpdateDB_Tfgd(TRACK_NAME);
//Module Name :r01/sdw.c
void PrintTrackData(TRACK_NAME);//Module Name :r04/tern.c
void ImportantPoint(void);
//Module Name :r01/sdw.c
void ShowChar(int , int , chtype);
//Local Module
void ScrollUp_V(int , int);
//Local Module
.5结构体命名
结构体类型命名必须全部用大写字母,原则上前面以下划线开始;结构体变量命名必须用 大小写字母组合,第一个字母必须使用大写字母,必要时可用下划线间隔。对于私有数 据区,必须注明其所属的进程。全局数据定义只需注意其用途。
示例如下:
typedef struct
{
char
szProductName[20];
char
szAuthor[20];
char
szReleaseDate[16];
char
szVersion[10];
unsigned long
MaxTables;
unsigned long
UsedTables;
}DBS_DATABASE;
DBS_DATABASE GdataBase;
控件的命名: 用小写前缀表示类别
用小写前缀表示类别: fm
窗口 cmd
按钮
cob
combo,下拉式列表框 txt
文本输入框 lab
labal,标签 img
image,图象 pic
picture grd
Grid,网格 scr
滚动条 lst
列表框 frm
fram
7注释
原则上注释要求使用中文;
文件开始注释内容包括:公司名称、版权、作者名称、时间、模块用途、背景介绍等,复 杂的算法需要加上流程说明;
函数注释包括:输入、输出、函数描述、流程处理、全局变量、调用样例等,复杂的函数 需要加上变量用途说明;
程序中注释包括:修改时间和作者、方便理解的注释等;
引用一: 文件开头的注释模板
/******************************************************************
** 文件名:
** Copyright(c)1998-1999 *********公司技术开发部
** 创建人:
** 日 期:
** 修改人:
** 日 期:
** 描 述: ** ** 版 本:
**---------------
******************************************************************/
引用二: 函数开头的注释模板
/*****************************************************************
** 函数名:
** 输 入: a,b,c
**
a---
**
b---
**
c---
** 输 出: x---
**
x 为 1, 表示...**
x 为 0, 表示...** 功能描述:
** 全局变量:
** 调用模块:
** 作 者:
** 日 期:
** 修 改:
** 日 期: ** 版本
****************************************************************/
引用三: 程序中的注释模板
/*---------------------------*/
/* 注释内容
*/
/*---------------------------*/ 8 程序
a.程序编码力求简洁,结构清晰,避免太多的分支结构及太过于技巧性的程序,尽量不采用递归模式。
b.编写程序时,亦必须想好测试的方法,换句话说,”单元测试” 的测试方案应 在程序编写时一并拟好。
c.注释一定要与程序一致。
d.版本封存以后的修改一定要将老语句用/* */ 封闭,不能自行删除或修改,并要 在文件及函数的修改记录中加以记录。
e.程序中每个block 的开头 ”{“ 及 ”}” 必须对齐,嵌套的block 每进一套,缩进一个tab,TAB 为4个空格,block类型包括if、for、while、do等关键字引出的。
f.对于比较大的函数,每个block 和特殊的函数调用,都必须注明其功能,举例如下
:
count.divisor = 1193280 / freq;
// compute the proper count
OutByte((unsigned short)67,(unsigned char)182);// tell 8253 that a count is coming
OutByte((unsigned short)66, count.c[0]);
// send low-order byte
OutByte((unsigned short)66, count.c[1]);
// send high-order byte
×××××××××××××××××××××××××××××××××××××××
bcb,delphi中的变量命名:
遵循匈牙利命名法,命 名必须有意义,制定如下规定
窗体: 以大写的W开始,如About版权窗体,命名为WAbout
文件:以大写的F开始,如About版权窗体,文件命名为FAbout.cpp
按钮(Button):如退出按钮,命名为btnExit ……
基类: 加base标记,如报表基类,窗体命名为:WBaseRep, 文件命名为FBaseRep.cpp