C++语言中多态性的分析

C++语言中多态性的分析
C++语言中多态性的分析

第13卷第1期广州航海高等专科学校学报

Vol .13 No .1

2005年6月

JOURNAL OF G UANGZ HOU MAR I TI M E COLLEGE

Jun .2005

文章编号:1009-8526(2005)01-0055-03

C++语言中多态性的分析

江勇驰

(广州航海高等专科学校交通运输管理系,广东广州510725)

摘 要:通过分析C++语言多态性的各种形式、特征及其在程序设计中的应用,说明多态性是对相似问题求解的有效方法.

关键词:C++;多态性;面向对象;虚函数中图分类号:TP311.1 文献标识码:A

 收稿日期:2005-03-10

 作者简介:江勇驰(1972-),男,助理馆员,主要从事自动化与计算机的实验教学和管理.

C++语言具有数据封装、继承及多态性三大特征[1]

,多态性同时考虑了类的数据封装与继承关系的设计,是C++最重要的特征.在程序中多态性是指同一符号或名字在不同情况下代表不同但相似的功能[2]

,是对相似问题的一种求解方法.本文主要分析C++语言的多态性支持在程序设计中的应用.

1 实现形式及其应用

在C++面向对象程序设计中,实现多态性有两

种基本形式:编译时多态性和运行时多态性[3]

.编译时多态性是指在程序编译阶段即可确定下来的多态性,包括强制多态和重载多态两种形式.运行时多态性是指必须等到程序动态运行时才可确定的多态性,主要通过继承结合动态绑定获得,分别体现在包含多态与类型参数化多态两方面.

1.1 强制多态

当表达式中存在不同类型的操作数时,为对此表达式进行求值,编译程序需要对其中的部分操作数强制进行类型转换,以保证运算符两边的操作数类型一致,但体现出来的却是完成了不同类型操作数间的运算,这就是C++中的强制多态性.C++中,“1+2”表示整数的加法,“1.0+2.0”表示浮点数的相加,而“1.0+2”需要作类型转换,实际进行浮点数加法,但却表示整数与浮点数的相加.这两种运算的内部实现是不同的,而且效率相差很大,不便用不同的符号表达.同一个运算符“+”可以同时具有不

同但相似的运算含义,体现的就是强制多态性

[3]

.

C++中规定了基本数据类型之间的转换规则:如果

运算符两边的操作数类型运算不一致,则总是将取值范围的最大值较小的类型转换为取值范围的最大值较大的类型,取值范围从大到小分别是:l ong double,double,fl oat,unsigned l ong,l ong,unsigned 和int .正是由于这种多态性,才简化了程序设计,可以

按相同的逻辑处理各种数据的加法.不过C ++中,强制多态性是有限的,不能用这一方法去解决许多类似问题.重载多态提供了另外一种途径.

1.2 重载多态

重载多态主要通过使用重载机制获得,包括函数重载和运算符重载两大类.

运算符重载允许重新定义C ++语言已有的运算符,以一种更加自然的方式使用自己定义的类类型.例如,加法运算符“+”表示整数或浮点数的加法,如果用户定义了一个复数类Comp lex,在类定义中对加法运算符“+”进行了重载,定义实现复数相加的操作Co mp lex operat or +(const Comp lex&oth 2er ){...},那么使用复数类声明两个对象Comp lex obj1,obj2;后,就可以直接使用obj1+obj2表示对

复数求和的操作,使得程序语言更接近习惯用法.C++语言中颇具典型的例子就是插入符“<<”和

提取符“>>”的重载.在C 语言中,利用库函数

p rintf ()输出或scanf ()输入时需要用参数指明输出或输入的数据类型方可正确输出或输入,而在C++

56

 广州航海高等专科学校学报第13卷 

中,由于在ostrea m类和istrea m类中大量重载了“< <”和“>>”,C++的内部数据类型编译器能自动判别并正确输入输出,使用起来变得非常方便.如: cout<<"x="<>”的操作,同样可以象上例那样方便地输入输出自定义的数据类型.

函数重载允许程序员用相同的名字定义两个或更多的C++函数,使得语义相似的函数可以用同样的标识符来命名,它是获得多态性的常用途径.例如对构造函数的重载,可使程序对类对象有多种不同的途径进行初始化.C语言不支持函数重载,每一个函数必须具有唯一的名字,不利于处理相似性问题.运用C++提供的函数重载机制,对解决相似问题的函数可使用相同的名字,即进行重载:

int abs(int x){...}

l ong abs(l ong x){...}

double abs(double x){...}

函数重载时使用的是静态绑定,编译程序在编译时根据实际参数的个数与相应位置的类型选择调用相关版本的重载函数.这种多态性尤其便利于大型的程序设计.但函数重载适宜在函数实现的语义非常相近时使用,同时应避免产生无法消解的二义性问题.

1.3 包含多态

在C++中,包含多态性是指相同的函数名出现在不同的类中,而且这样的函数必须是虚函数并以继承为基础的.使用包含多态性必须先设计一个类层次,在类中使用虚函数(这个类叫多态类),结合动态绑定实现[3].根据赋值兼容规则,公有派生类兼容基类,指向基类对象的指针变量可以指向其公有派生类的对象,这就意味着一个公共的消息集既可以被送到基类对象,也可以被送到其公有派生类的对象,那么就可以用一组相同的方法和逻辑来使用这个类层次中不同类中的同名虚函数,而虚函数中定义的具体操作可以是不同的,这是这种多态性的实质.以下是实例:

#include

classMe mber{ //成员基类

public:

virtual v oid showme(){cout<<"I a m a Me m2 ber.\n";return;}};

class Teacher:public Me mber{ //由成员类派生出的教师类

public:

 virtual void showme(){cout<<"I a m a Teacher.\n";return;}};

class Student:public Me mber{ //由成员类派生出的学生类

public:

 virtual void showme(){cout<<"I a m a Student.\n";return;}};

void main()

{Me mber me m;Teacher tch;Student std;

Me mber3who;

who=&me m;who->showme();

who=&tch;who->showme();

who=&std;who->showme()

return;};

运行结果为:

I a m a Me mber.

I a m a Teacher.

I a m a Student.

基类指针who分别指向基类对象和两个不同的派生类对象,运行期间将根据所指对象类型来动态绑定,决定调用哪一个类中定义的showme()虚函数版本.利用虚函数,可在基类和派生类中使用相同的函数名定义函数的不同实现,从而实现“一个接口,多种方式”.

当基类中无法给出虚函数的合理定义或软件设计需要构造更高层次的抽象时,可以利用C++提供的纯虚函数来设计包含多态性,含有纯虚函数的类叫抽象类.例如,设计一个多态数据结构,要能存放三角形、矩形、圆等多种图形数据,并提供计算相应图形面积的功能.可以抽取有关图形的共性设计一个基类F I G URE,用纯虚函数描述共同行为:计算面积,再派生出各种图形类给出具体实现方法,用堆栈存放指向图形对象的指针.基类层次如图1所示

.

图1 基类层次图

class F I G URE{...virtual double get_area()= 0;...};//基类中用纯虚函数表示求图形面积

 第1期江勇驰:C++语言中多态性的分析57

 

class T R I A NG LE:public F I G URE{

 ...virtual double get_area(){...}...};//给出计算三角形面积的定义

class RECT ANG LE:public F I G URE{

 ...virtual double get_area(){...}...};//给出计算矩形面积的定义

class C I RCLE:public F I G URE{

 ...virtual double get_area(){...}...};//给出计算圆面积的定义

class ST ACK{

...struct NODE{F I G URE3ele m;NODE3 link;};...};//堆栈的数据结构

由于在堆栈数据中只定义了指向基类的指针,可以指向各种不同类型的图形对象,因此实现了构造多态数据的结构.多态数据结构中的元素类型必须从共同的基类派生出来,它们之间是有联系的. 1.4 类型参数多态

C++是一种强类型的语言,参与运算的所有变量的类型在编译时便已确定下来,不同类型的变量所能参加的运算由其所属的类型规定,不能交叉使用.对此,编译程序将进行严格的类型检查以保证编写的程序语法、语义的正确性.但这也带来了一些副作用,例如编制一个将两个数进行交换的程序,尽管任何类型的数进行交换的处理逻辑是一样的,但由于参数的类型不同,只好编制很多相似的函数,增加了程序的重复代码.强类型程序设计语言通常采用类属机制解决这个问题,C++提供类型参数的多态性即模板机制实现类属,这种方法可以直接将数据类型作为类的参数或者函数的参数使用.模板分为类模板和函数模板,是一种抽象的描述,不能直接使用,必须先通过实例化创建某种类型的类或函数,方可使用.下面仅就类模板举例说明:

//一个简单链表的类模板定义

te mp late //T为类型参数

class L I ST{

p rivate:

T3vect or;

int size;

public:

L I ST(int length)

{vect or=ne w T[length];

size=length;

return;}

~L I ST(){delete vect or;return;}

};

它定义了一个具有T类型数据的链表类.T是一个抽象的数据类型,既可代表整型、浮点型,也可代表图形元素、记录类型等等.使用这个类必须实例化:如L I ST;L I ST;需要声明对象时: L I STobj(100);这样便定义了长度为100数据类型为整型的链表obj.

2 结束语

多态性是解决相似性问题的有效工具,它简化了繁杂的程序设计逻辑,增强了程序的可读性与可维护性,而且它表明C++语言具有表示和处理更高抽象的能力,使得程序设计可以在更高的层次上进行,为程序的正确性证明和验证提供了方便.在C++语言程序设计中有效地利用多态性,可以提高程序的可扩充性、便捷性以及代码的再用率.

参考文献:

[1] 蔡明志.Borland C++4.0使用与编程指南[M].北京:

清华大学出版社,1994.

[2] 王斌君,葛 玮,王靖亚.C++语言与软件的多态性

[J].计算机工程与应用,1998,34(10):46-49.

[3] 李师贤,李文军,周晓聪.面向对象程序设计基础

[M].北京:高等教育出版社,1998.

ANALY S I S O N POLYMO RPH I S M O F C++

J I AN G Yong2chi

(Depart m ent of Trans portati on Manage ment,Guangzhou Mariti m e College,Guangzhou510725,China)

Abstract:By analyzing the app licati on as well as the f or m and characteristic of poly mor phis m of C++,this paper holds that poly mor phis m is an efficient method in achieving the s oluti on f or the si m ilar p r oblem s.

Key words:C++;poly mor phis m;object2oriented;virtual functi on

【责任编辑 王世杰】

C语言程序设计实验报告(实验大纲+过程)

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分:4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握 C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++6.0编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的? 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; pr intf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序:

单核苷酸多态性(SNP)实验

单核苷酸多态性(SNP)实验 SNP (Single Nucleotide Polymorphism)即单核苷酸多态性,是由于单个核苷酸改变而导致的核酸序列多态性(Polymorphism)。据估计,在人类基因组中,大约每千个碱基中有一个SNP,无论是比较于度多态性(RFLP)分析还是微卫星标记(STR),都要广泛得多。 实验方法原理: SNP (Single Nucleotide Polymorphism)即单核苷酸多态性,是由于单个核苷酸改变而导致的核酸序列多态性(Polymorphism)。据估计,在人类基因组中,大约每千个碱基中有一个SNP,无论是比较于限制性片段长度多态性(RFLP)分析还是微卫星标记(STR),都要广泛得多。SNP是我们考察遗传变异的最小单位,据估计,人类的所有群体中大约存在一千万个SNP位点。一般认为,相邻的SNPs倾向于一起遗传给后代。于是,我们把位于染色体上某一区域的一组相关联的SNP等位位点称作单体型(haplotype)。大多数染色体区域只有少数几个常见的单体型(每个具有至少5%的频率),它们代表了一个群体中人与人之间的大部分多态性。一个染色体区域可以有很多SNP位点,但是我们一旦掌握了这个区域的单体型,就可以只使用少数几个标签SNPs(tagSNP)来进行基因分型,获取大部分的遗传多态模式。 实验材料: 组织样品 试剂、试剂盒: 液氮、PBS、GA缓冲液、GB缓冲液、蛋白酶K、无水乙醇、蛋白液、漂洗液等 仪器、耗材: 离心管、离心机、废液收集管、吸附柱、水浴锅、分光光度计、低温冰箱等 实验步骤:

一、DNA抽提 1. 取新鲜肌肉组织约100 mg,PBS漂洗干净,置于1.5 ml离心管中,加入液氮,迅速磨碎。 2. 加200 μl 缓冲液GA,震荡至彻底悬浮。加入20 μl 蛋白酶K(20 mg/ml)溶液,混匀。 3. 加220 μl 缓冲液GB,充分混匀,37℃消化过夜,溶液变清亮。加220 μl 无水乙醇,充分混匀,此时可能会出现絮状沉淀。 4. 将上述一步所得溶液和絮状沉淀都加入一个吸附柱CB 中,(吸附柱放入废液收集管中)12 000 rpm 离心30 秒,弃掉废液。 5. 加入500 μl 去蛋白液GD(使用前请先检查是否已加入无水乙醇),12 000 rpm 离心30 秒,弃掉废液。 6. 加入700 μl 漂洗液GW(使用前请先检查是否已加入无水乙醇),12 000 rpm离心30 秒,弃掉废液。加入500 μl 漂洗液GW,12 000 rpm 离心30 秒,弃掉废液。将吸附柱CB 放回废液收集管中,12 000 rpm 离心2 分钟,尽量除去漂洗液。 7. 将吸附柱CB 转入一个干净的离心管中,加入100 μl 洗脱缓冲液(洗脱缓冲液应在60-70℃水浴预热),混匀,室温放置15 分钟,12 000 rpm 离心30 秒。洗脱第二次,将洗脱缓冲液50 μl 加入吸附柱中,室温放置15 分钟,12 000 rpm 离心30 秒。 8. 采用Beckman DU 640 spectrophotometer 检测提取到的基因组DNA 浓度,在OD260 处有显著吸收峰。同时检测纯度,OD260/280 的值应为为1.7-1.9。 9. 从原液中取出相应体积DNA 溶液,稀释致50 ng/ul,原液置于-70℃保存,稀释液置于-20℃保存。 二、PCR扩增目的片段

一个内含子长度多态性标记与栽培稻F_1花粉育性基因座连锁

分子植物育种,2006年,第4卷,第3期,第323-328页 MolecularPlantBreeding,2006,Vol.4,No.3,323-328 研究报告 ResearchReport 一个内含子长度多态性标记与栽培稻F 1 花粉育性基因座连锁 吴海滨1,2朱汝财1李迪1赵德刚2*白羊年1* 1海南省热带农业资源开发利用研究所,三亚,572025;2贵州省农业生物工程重点实验室,贵州大学,贵阳,550025 *共同通讯作者,degangzhao@yahoo.com;baiyangnian@hitar.org 摘要本研究利用两份栽培稻(OryzasativaL.)种质HITAR005和IRGC20509杂交建立了含有500个单 株的F 2群体,采用内含子长度多态性标记对F 2 群体中的117株进行了标记基因型分析。研究发现一个内含 子长度多态性标记,RI01594,其标记座位上与父本(IRGC20509)相同基因型的纯合植株完全消失,且母本纯合基因型植株与杂合基因型植株的比率符合1:1(!2 C =0.90,"2C<X20.05),表现出一种明显的偏分离现象。分析该分子标记所在的目的序列,RI01954标记所位于的基因含有3个内含子是一个功能未知的转录因子,粳稻Nipponbare(日本晴)在该基因的第3个内含子序列与籼稻9311的序列相比有24个碱基的缺失。进一步分析RI01954标记的PCR产物表明,发现消失的纯合植株基因型偏向于粳稻Nipponbare(日本晴)。结合供试 的F 2群体的花粉育性检测结果,初步表明RI01594标记与栽培稻F 1 花粉育性基因座连锁,与F 1 花粉不育基 因座连锁的遗传距离小于0.5cM,推测与RI01954标记连锁的栽培稻的F 1 花粉不育性基因座是一个新的杂种不育位点。 关键词栽培稻,内含子长度多态性,F1花粉育性,偏分离 AnILPMarkerCloseLinkingwiththeTentativeNovelF1PollenSterileLocusinCultivatedRice WuHaibin1,2ZhuRucai1LiDi1ZhaoDegang2*BaiYangnian1* 1HainanInstituteofTropicalAgriculturalResources,Sanya,572025;2GuizhouKeyLaboratoryofAgriculturalBioengineering,GuizhouUniversity,Guiyang,550025 *Co-correspondingauthor,degangzhao@yahoo.com;baiyangnian@hitar.org AbstractTheF2populationcontaining500individualswasdevelopedusingtwocultivatedricegermplasms(O-ryzasativaL.),HITAR005asfemaleparentfromHITARandIRGC20509asmaleparentfromIRRI,andtheILP(intronlengthpolymorphism)markerswereemployedtogenotypethe117individualsoftheF2population.RI01954,anILPmarkermappedinthe3rdchromosome,wasfoundthatitshomozygouslocusformaleparentwerecompletelyabsentinthe117individualsandtheratioofRI01954locusbetweenhomozygousoffemaleparentandheterozygouswas1:1(#2C=0.90,$2C<X20.05),whichshowedobviouslydistortedsegregationintheF2population.ThesequenceconferringRI01954wasdeeplyanalyzedthatitisunknownfunctionaltranscriptfactorcontainingthreeintrons.Thereis24bpdeletionofthe3rdintroninJaponicaNipponbarecomparingwithIndica9311.AnalysisofPCRproductsamplifiedbyprimersofRI01954showedthatthebandsformaleparentdisappearedwereidenticaltoJaponicaNipponbare.CombiningtheresultofpollenfertilityanalysisintheF2population,itwasprimarycon-cludedthatRI01954markercloselylinkedtothephenotypeoftheF1pollensterilitylocusandthegeneticdistancesbetweenthemwasestimatedlessthan0.5cM.AndalsoitsuggestedthatthelocuslinkedwithRI01954wasanov-elF1pollensterilelocusinthecultivatedrice. KeywordsCultivatedrice(OryzasativaL.),Intronlengthpolymorphism(ILP),Hybridsterility,Distortedsegregation

基因多态性

基因多态性 多态性(polymorphism)是指在一个生物群体中,同时和经常存在两种或多种不连续的变异型或基因型(genotype)或等位基因(allele),亦称遗传多态性(genetic polymorphism)或基因多态性。从本质上来讲,多态性的产生在于基因水平上的变异,一般发生在基因序列中不编码蛋白的区域和没有重要调节功能的区域。对于一个体而言,基因多态性碱基顺序终生不变,并按孟德尔规律世代相传。 基因多态性分类生物群体基因多态性现象十分普遍,其中,人类基因的结构、表达和功能,研究比较深入。人类基因多态性既来源于基因组中重复序列拷贝数的不同,也来源于单拷贝序列的变异,以及双等位基因的转换或替换。按引起关注和研究的先后,通常分为3大类:DNA片段长度多态性、DNA重复序列多态性、单核苷酸多态性。 DNA片段长度多态性DNA片段长度多态性(FLP),即由于单个碱基的缺失、重复和插入所引起限制性内切酶位点的变化,而导致DNA片段长度的变化。又称限制性片段长度多态性,这是一类比较普遍的多态性。 DNA重复序列多态性DNA重复序列的多态性(RSP),特别是短串联重复序列,如小卫星DNA和微卫星DNA,主要表现于重复序列拷贝数的变异。小卫星(minisatellite)DNA由15~65bp的基本单位串联而成,总长通常不超过20kb,重复次数在人群中是高度变异的。这种可变数目串联重复序列(VNTR)决定了小卫星DNA长度的多态性。微卫星(microsatellite)DNA 的基本序列只有1~8bp,而且通常只重复10~60次。 单核苷酸多态性单核苷酸多态性(SNP),即散在的单个碱基的不同,包括单个碱基的缺失和插入,但更多的是单个碱基的置换,在CG序列上频繁出现。这是目前倍受关注的一类多态性。 SNP通常是一种双等位基因的(biallelic),或二态的变异。SNP大多数为转换,作为一种碱基的替换,在基因组中数量巨大,分布频密,而且其检测易于自动化和批量化,因而被认为是新一代的遗传标记。 遗传背景知识遗传和变异各种生物都能通过生殖产生子代,子代和亲代之间,不论在形态构造或生理功能的特点上都很相似,这种现象称为遗传(heredity)。但是,亲代和子代之间,子代的各个体之间不会完全相同,总会有所差异,这种现象叫变异(variation)。遗传和变异是生命的特征。遗传和变异的现象是多样而复杂的,正因为如此,才导致生物界的多种多样性。

动物DNA限制性片段长度多态性分析

动物DNA限制性片段长度多态性分析 9.1 动物DNA限制性片段长度多态性基本概况 DNA限制性片段长度多态性(restriction fragment length polymorphism,简称RFLP)是进行动物物种分化和群体遗传多样性研究的一项重要经典技术,而线粒体DNA和核糖体DNA 则是动物RFLP研究中最为常用的两种遗传标记(Nei,Tajima 1981)。 动物线粒体DNA是一种共价闭环的环状双链DNA,具有严格的母系遗传方式,每个细胞中有 1 000~10 000个拷贝,容易从组织中分离、提纯(Brown等 1979;Avise等 1983;Lansman 1983)。提取线粒体DNA的实验技术比较简单,且重复性好(王文,施立明 1993)。mtDNA的基因结构比较简单、稳定,分子量小(15.7~19.5kb),处于限制性内切酶分析范围,因此易于进行结果分析(Brown 1979)。在脊椎动物中,mtDNA无组织特异性,即个体内的线粒体DNA具有高度的均一性(Avise等 1983),这就有利于限制性内切酶分析。更为重要的是,mtDNA进化速度快,是单拷贝核DNA的5~10倍,因而是进行近缘种间和种内群体间分化关系研究的良好遗传标记(Brown等 1979,1983;Wilson 1985;Avise 1986;Harrison 1989)。生物多样性研究中基本保护单元----进化显著性单元(evolutionary significant units,简称ESUs)(Ryder 1989)的确定,就极大地依赖于不同动物群体线粒体DNA单倍型的系统发育关系(Moritz 1994)。 ESUs的定义为:在mtDNA单倍型上互为单系群(monophyly)、在核基因座位上等位基因频率有显著差别的群体即称为ESUs。强调mtDNA的互为单系群,不仅因为它在进化上的重要性,而且因为理论上和模拟实验均说明隔离群体在一定时间后能达到这种状态。生物ESUs已被证明是一个在保护中很有用的概念标准。例如,在我们最近的一项研究中,发现广西的白头叶猴(Trachypithecus francoisi leucocephalus)和黑叶猴(T.f.francoisi)在mtDNA序列上严格地互为单系群(Wang等 1996),这明确地说明了白头叶猴是保护中应受到重视的一个ESU S。 核糖体DNA(ribosomal DNA,简称rDNA)是一类中等重复的核内DNA序列,每个重复单元(repetype)由非转录间隔区(non-transcribed spacer,简称 NTS)、转录间隔区(internal transcribed spacer,简称 ITS)和3种RNA(18S RNA,5.8S RNA,28S RNA)基因编码区 组成。这3个区域的DNA序列有不同的进化速率,编码区非常保守,适合于构建生命系统树的基部分枝;转录间隔区则中度保守,适合于推断50×106年前左右的事件;非转录间隔区则进化速度较快,适合于种间和已有隔离的群体间关系的研究(Appels, Honeycutt 1986; Hillis,Davis 1986;Suzuki等 1990)。此外,rDNA以一种协同的方式进化,在个体内和群体内有着较好的均质性(homoplasmy)。因此,有人认为,少量个体的抽样就能有效地代表 本章作者:王 文,陈永久,兰宏

基因多态性分析

. 人基因多态性分析 一、实验目的 1. 了解基因多态性在阐明人体对疾病、毒物的易感性与耐受性、疾病临床表现的多样性以及对药物治疗的反应性中的重要作用。 2. 了解分析基因多态性的基本原理和研究方法。 二、实验原理 基因多态性(gene polymorphism)是指在一个生物群体中,同时存在两种及以上的变异型或基因型或等位基因,也称为遗传多态性(genetic polymorphism)。人类基因多态性对于阐明人体对疾病的易感性、毒物的耐受性、药物代谢差异及遗传性疾病的分子机制有重大意义;与致病基因连锁的多态性位点可作为遗传病的诊断标记,并为分离克隆致病基因提供依据;病因未知的疾病与候选基因多态性的相关性分析,可用于辅助筛选致病易感基因。 聚合酶链反应-限制性片段长度多态性(polymerase chain reaction—Restriction Fragment Length Polymorphism,PCR-RFLP)分析是一种常用的DNA分子标记。原理是通过PCR扩增获得目的基因。若目的基因存在等位变异(多态性),且变异正好发生在某种限制性内切酶识别位点上,使酶切位点增加或者消失,则酶切结果就会产生大小不同的片段,即片段长度多态性,再利用琼脂糖凝胶电泳分离,可呈现出多态性电泳图谱。若将患者与正常的多态性图谱比较,可确定是否变异。应用PCR-RFLP,可检测某一致病基因已知的点突变,进行直接基因诊断,也可以此为遗传标记进行连锁分析进行间接基因诊断。 三、器材与试剂 1. 器材 ⑴离心机。 ⑵DNA扩增仪。 ⑶电泳仪。 ⑷水平电泳槽。 ⑸紫外检测仪。 ⑹移液器。 2. 试剂 . . ⑴口腔拭子DNA抽提试剂盒。 ⑵琼脂糖。 ⑶1×TAE电泳缓冲液:980ml蒸馏水中加入50×TAE母液20ml。 ⑷50×TAE母液:Tris 121g,0.5M EDTA(pH8.0)50ml,冰醋酸28.55ml,定容至500ml。

《C语言程序设计》-综合性实验实验报告(参考格式)

综合性实验报告 课程名称:《C语言程序设计》 实验题目:班级成绩管理系统的设计与实现姓名学号:(组长) 系别: 专业班级: 指导教师: 实验日期:2012年06月01日—06月20日

一、实验目的和要求 实验目的 1、利用所学的三种程序基本结构以及数组、用户自定义函数进行一个小型程序的设计,进一步理解和掌握C语言的语法以及三种基本程序结构的综合应用。 2、通过程序中涉及到的排序、查找、求和等操作加深对算法、程序设计思路、常用程序设计技巧的理解与掌握,逐步培养学生的程序开发能力。 实验要求 1、根据实验内容,认真编写源程序代码、上机调试程序,书写实验报告。 2、分小组协作实验时,要写明每一位学生负责的实验内容。 二、设计要求 (一)学生信息和程序功能 给定的原始数据和程序应实现的功能是该C程序开发的依据,此实验只处理一个班级学生信息,最多学生数为120人。 1、学生信息和数据类型 最多学生人数和最多课程数定义为全局符号常量: #define Mmax 120 #define Nmax 3 (1)学生信息 学生信息包含:学号,姓名,三门课(语文,数学,英语)成绩和总分。 (2)数据类型 学号、姓名、课程三个信息为char型,课程分数和总分为float型,其余为int型。其中,假设学号有10位数字字符(注意此时要求存储空间要11个字节),例如2011023102表示入学年份为2011年,023是专业编码,102是学生在班级中的排号。 2、测试数据 测试数据在定义数组时以初值形式提供,其中学生总成绩通过程序计算。 学号姓名语文数学英语 2011023001 Zhang 73.5 85 67 2011023002 Li 83 91.5 87 2011023003 Cheng 65 82 78 2011023004 Wang 71 83 80.5 但是,在用单链表处理学生信息时,要求直接从键盘上接收数据。 3、程序功能 (1)学生信息(学号、姓名、成绩等)的显示(数据结构要求用数组); (2)按姓名查找学生(数据结构要求用数组); (3)计算各门课程的平均分(数据结构要求用数组);

特发性卵巢早衰患者AMH,AMHR—Ⅱ基因多态性分析

特发性卵巢早衰患者AMH,AMHR—Ⅱ基因多态性分析 目的探讨特发性卵巢早衰与AMH,AMHR-Ⅱ的基因多态性。方法选择2015年6月~2017年3月在我院诊断的特发性卵巢早衰患者50例为POF组。另选择健康体检者100例为对照组。PCR方法测定两组AMH,AMHR-Ⅱ基因多态性。结果POF组AMH基因突变位点基因型及等位基因频率与对照组比较差异无统计学意义(P>0.05)。POF组AMHR-Ⅱ c.49+10T>G 基因位点GG基因型比例显著高于对照组,G等位基因频率显著高于对照组,c.622-2C>T基因位点TT基因型比例显著高于对照组,T等位基因频率显著高于对照组,c.622-24C>A 基因位点AA基因型比例显著高于对照组,A等位基因频率显著高于对照组,c.1038G>T基因位点TT基因型比例显著高于对照组,T等位基因频率显著高于对照组,差异均有统计学意义(P<0.05)。结论AMHR-Ⅱ基因多态性可能是特发性卵巢早衰的重要的发病机制。 [Abstract] Objective To discuss polymorphism analysis of AMH,AMHR-Ⅱgene in patients with idiopathic premature ovarian failure. Methods 50 cases with idiopathic premature ovarian failure from Jun 2015 to Mar 2017 were selected as POF group. And 100 cases for physical examination were selected as control group. Polymorphismof AMH,AMHR- II gene of two groups was detected by PCR. Results Genotype and allele frequency of AMH gene mutation sites of POF group showed no significant difference with the control group(P>0.05). The proportion of GG genotype in AMHR- loci II,c.49+10T>G of POF group was higher than that of the control group,and G allele frequency was higher than that of the control group;The proportion ofTTgenotype inc.622-2C>Tof POF group was higher than that of the control group,and Tallele frequency was higher than that of the control group;The proportion ofAAgenotype inc.622-24C>Aof POF group was higher than that of the control group,and Aallele frequency was higher than that of the control group;The proportion ofTTgenotype inc.1038G>Tof POF group was higher than that of the control group,and Tallele frequency was higher than that of the control group;The difference showed significant difference(P<0.05). Conclusion Polymorphism of AMHR-Ⅱgene may be an important pathogenesis of idiopathic premature ovarian failure. [Key words] Idiopathic premature ovarian failure;AMH;AMHR-Ⅱ;Gene polymorphism 特發性卵巢早衰是指無精确原因的,自身免疫抗体正常的,染色体核型正常的女性在40周岁之前出现的性器官萎缩、持续性闭经,伴有卵泡雌激素、黄体生成素升高,雌激素下降的一种综合征[1-2]。我国卵巢早衰的发病率相对较高,而其中有80%为特发性卵巢早衰,患者主要表现为月经紊乱,血管 舒缩功能不稳定,容易出汗、潮热、情绪波动等。目前特发性卵巢早衰的发病机制还不十分明确,可能与遗传、自身免疫因素、感染、代谢异常、环境等有

限制性片段长度多态性

限制性片段长度多态性 (Restriction Fragment of Length Polymorphism,RFLP) 一基本原理 各种限制性酶能识别特定的碱基序列,并将其切开。碱基的变异可能导致切点的消失或新切点的出现,从而引起DNA片段长度和数量的差异。用特定的限制性内切酶消化目标DNA并通过电泳将长度不同的片断分开,并印记于硝酸纤维滤膜上,再与相应的探针杂交,就可以检测限制性片段长度多态性(RFLP). 二主要材料 DNA抽提用试剂,限制性内切酶,dNTP及Taq聚合酶电泳用琼脂糖或聚丙烯酰胺配制试剂,PCR扩增仪,水浴锅,电泳仪和电泳槽,硝酸纤维素滤膜或尼龙膜,探针标记物等。 三方法步骤(图1) 图1

(一) 样本DNA制备 采用常规DNA抽提的方法或DNA抽提试剂盒提取样本DNA,置低温下保存。对大多数样本而言,用于分析的样本DNA片段须先从总DNA中分离获取,并制备足够的量。为此,RFLP分析常先用PCR方法扩增目标片段。无论怎么做,必须保证DNA样本的纯度,这一点是非常重要的。 (二) 限制性内切酶降解样本DNA 根据不同的目标DAN,选择合适的限制性内切酶。目前常用的限制性内切酶有EcoRⅠ和HindⅢ等。该步骤必须保证酶解完全。如果有必要,可以用琼脂糖凝胶电泳溴化乙锭分析酶解结果。酶解的时间根据实际情况而定。 (三) 电泳 电泳的主要目的是把DNA片段按大小(长短)分离开来,得到一个根据分子量排列的连续带谱。电泳可采用琼脂糖凝胶电泳,也可采用聚丙烯酰胺凝胶电泳。时间由几小时到24小时不等。 (四) 转印 所谓转印,就是将已经电泳的DNA片段通过一定的方法转到固相支持物上。常用的固相支持物有硝酸纤维素滤膜或尼龙膜。转印前需经过碱变性溶液处理,将双链DNA变性为单链DNA。转印的方法一般有三种。根据DNA分子的复杂度转移2―12小时。 1 盐桥法;也叫毛细管转移法。先把硝酸纤维素滤膜放在20×SSC 溶液中浸透,然后把滤膜平铺在凝胶上,再在滤膜上放上浸过20×

如何用PCR法检测基因的多态性

如何用PCR法检测基因的多态性 多态性(polymorphism)是指处于随机婚配的群体中,同一基因位点可存在2种以上的基因型。在人群中,个体间基因的核苷酸序列存在着差异性称为基因(DNA)的多态性(gene polymorphism)。这种多态性可以分为两类,即DNA 位点多态性(site polymorphism)和长度多态性(longth polymorphism)。 基因多态性的主要检测方法简述如下: 1.限制性片段长度多态性(Restriction Fragment Length Polymorphism,RFLP):由DNA 的多态性,致使DNA 分子的限制酶切位点及数目发生改变, 用限制酶切割基因组时, 钠 问 亢兔扛銎 蔚某ざ染筒煌 此 降南拗菩云 纬ざ榷嗵 裕 贾孪拗破 纬ざ确⑸ 谋涞拿盖形坏悖 殖莆 嗵 晕坏恪W钤缡怯肧outhern Blot/RFLP方法检测,后来采用聚合酶链反应(PCR)与限制酶酶切相结合的方法。现在多采用PCR-RFLP法进行研究基因的限制性片段长度多态性。 2.单链构象多态性(SSCP):是一种基于单链DNA构象差别的点突变检测方法。相同长度的单链DNA如果顺序不同,甚至单个碱基不同,就会形成不同的构象。在电泳时泳动的速度不同。将PCR产物经变性后,进行单链DNA凝胶电泳时,靶DNA中若发生单个碱基替换等改变时,就会出现泳动变位(mobility shift),多用于鉴定是否存在突变及诊断未知突变。 3.PCR-ASO探针法(PCR-allele specific oligonucleotide, ASO):即等位基因特异性寡核苷酸探针法。在PCR扩增DNA片段后,直接与相应的寡核苷酸探杂交,即可明确诊断是否有突变及突变是纯合子还是杂合子。其原理是:用PCR扩增后,产物进行斑点杂交或狭缝杂交,针对每种突变分别合成一对寡核苷酸片段作为探针,其中一个具有正常序列,另一个则具有突变碱基。突变碱基及对应的正常碱基匀位于寡核苷酸片段的中央,严格控制杂交及洗脱条件,使只有与探针序列完全互补的等位基因片段才显示杂交信号,而与探针中央碱基不同的等位基因片段不显示杂交信号,如果正常和突变探针都可杂交,说明突变基因是杂合子,如只有突变探针可以杂交,说明突变基因为纯合子,若不能与含有突变序列的寡核苷探针杂交,但能与相应的正常的寡核苷探针杂交,则表示受检者不存在这种突变基因。若与已知的突变基因的寡核苷探针匀不能杂交,提示可能为一种新的突变类型。 4. PCR-SSO法:SSO技术即是顺序特异寡核苷酸法(Sequence Specific Oligonucleotide, SSO)。原理是PCR基因片段扩增后利用序列特异性寡核苷酸探针,通过杂交的方法进行扩增片段的分析鉴定。探针与PCR产物在一定条件下杂交具有高度的特异性,严格遵循碱基互补的原则。探针可用放射性同位素

扩增片段长度多态性

扩增片段长度多态性(AFLP,Amplified restriction fragment polymorphism),是1993年荷兰科学家Zabeau和Vos发展起来的一种检测DNA多态性的分子标记技术。文章主要讲述该技术的原理、流程及特点,并从以下三个方面讲述该技术的应用情况:动物学方面,讲述其在动物遗传学,动物系统学,性别鉴定与繁殖行为研究上的应用;植物学方面,讲述其在种质资源鉴定,作物育种上的应用;医学方面,讲述其在肿瘤,遗传病,流行病学方面的进展。文章还分析了AFLP技术的优缺点并展望了其应用前景。 关键词:AFLP,分子标记技术,应用 目前遗传标记主要有4种类型,即形态标记(Morphological Markers)、细胞标记(Cytological Markers)、生化标记(Biochemical Markers)和分子标记(Mo1ecular Markers) [1]。分子标记一般指DNA标记。分子标记依据所用的分子生物学技术,大致分为三大类:(Ⅰ)以电泳技术 (Ⅱ)和分子杂交技术为核心,其代表性技术有RFLP和DNA指纹技术(DNA Fingerprinting) 。 以电泳技术和PCR技术为核心,其代表性技术有RAPD( Random amplified polymorphism DNA) 、SSLP(Simple sequence length polymorphism ,或称Sequence-tagged microsatellitesite, STMS)和AFLP。(Ⅲ)基于DNA芯片技术的分子标记,即SNP[ 2-4 ]。其中,扩增片段长度多态性(AFLP,Amplified restriction fragment polymorphism),是1993年荷兰科学家Zabeau和Vos发展起来的一种检测DNA多态性的方法,已获欧洲专利局的发明专利。该技术具有多态性丰富、灵敏度高、稳定性好、可靠性高、不易受环境影响等优点,近年来广泛应用于生命科学各项研究中。 1. AFLP分子标记技术原理、流程及特点 1.1. AFLP分子标记技术原理 AFLP技术是基于PCR反应的一种选择性扩增限制性片段的方法。由于不同物种的基因组DNA大小不同,基因组DNA经限制性内切酶酶切后,产生分子量大小不同的限制性片段。使用特定的双链接头与酶切DNA片段连接作为扩增反应的模板,用含有选择性碱基的引物对模板DNA进行扩增,选择性碱基的种类、数目和顺序决定了扩增片段的特殊性,只有那些限制性位点侧翼的核苷酸与引物的选择性碱基相匹配的限制性片段才可被扩增。扩增产物经放射性同位素标记、聚丙烯酰胺凝胶电泳分离,然后根据凝胶上DNA指纹的有无来检验多态性[5]。Vos等(1995)曾对AFLP的反应原理进行了验证,结果检测到的酶切片段数与预测到的酶切片段数完全一致,充分证明了AFLP技术原理的可靠性。

基因多态性分析

人基因多态性分析 一、实验目的 1. 了解基因多态性在阐明人体对疾病、毒物的易感性与耐受性、疾病临床表现的多样性以及对药物治疗的反应性中的重要作用。 2. 了解分析基因多态性的基本原理和研究方法。 二、实验原理 基因多态性(gene polymorphism)是指在一个生物群体中,同时存在两种及以上的变异型或基因型或等位基因,也称为遗传多态性(genetic polymorphism)。人类基因多态性对于阐明人体对疾病的易感性、毒物的耐受性、药物代谢差异及遗传性疾病的分子机制有重大意义;与致病基因连锁的多态性位点可作为遗传病的诊断标记,并为分离克隆致病基因提供依据;病因未知的疾病与候选基因多态性的相关性分析,可用于辅助筛选致病易感基因。 聚合酶链反应-限制性片段长度多态性(polymerase chain reaction—Restriction Fragment Length Polymorphism,PCR-RFLP)分析是一种常用的DNA分子标记。原理是通过PCR扩增获得目的基因。若目的基因存在等位变异(多态性),且变异正好发生在某种限制性内切酶识别位点上,使酶切位点增加或者消失,则酶切结果就会产生大小不同的片段,即片段长度多态性,再利用琼脂糖凝胶电泳分离,可呈现出多态性电泳图谱。若将患者与正常的多态性图谱比较,可确定是否变异。应用PCR-RFLP,可检测某一致病基因已知的点突变,进行直接基因诊断,也可以此为遗传标记进行连锁分析进行间接基因诊断。 三、器材与试剂 1. 器材 ⑴离心机。 ⑵DNA扩增仪。 ⑶电泳仪。 ⑷水平电泳槽。 ⑸紫外检测仪。 ⑹移液器。 2. 试剂

哈工大(威海)c语言实验报告册答案

实验1简单判定性问题求解 一、实验学时 完成本实验需4学时。 二、实验目的 1、阅读程序题 (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法; (2)掌握不同的类型数据之间赋值的规律; (3)掌握数据在内存中的存储方式; (4)学会输入、输出函数的基本格式和使用方法; (5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。 2、编程题 (1)如何运用if-else判定性结构进行程序设计; (2)如何运用switch判定性结构进行程序设计。 3、调试题 (1)熟悉C程序的编辑、编译、连接和运行的过程。 三、实验指导 为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。 1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。 2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。要注意简单判定性问题的结构选择。 3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

四、实验内容 1、阅读程序题 (1)main( ) { /*定义字符型变量*/ char c1,c2; /*向字符变量赋以整数*/ c1=97; c2=98; printf("%c %c\n",c1,c2); /*以字符形式输出*/ printf("%d %d\n",c1,c2); /*以整数形式输出*/ } 思考:可否改成int c1,c2;输出结果是?相同 (2)main() { int a=7,b=5; printf("%d\n",b=b/a); } 思考:若将printf语句中%d变为%f,可否输出分式的值?可以(3)main() { int a=9; a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/ printf("%d\n",a); } 思考:赋值表达式a+=a-=a+a的求解步骤? 第一步:a=a-(a+a)=-9 第二步a=a+a=18 (4)main() { int k=-1; printf("%d,%u\n",k,k);

末端限制性酶切片段长度多态性分析技术进展_李红

末端限制性酶切片段长度多态性分析技术进展 李 红 (安庆市卫生学校,安徽安庆 246011) 摘 要:末端限制性酶切片段长度多态性分析(T erminal Restriction Frag ment Leng th Polymorphism,T -RFLP)是近年来发展起来的、不依赖于培养的微生物群落分析方法之一.由于 其在微生物群落结构分析方面的特点,包括分辨率高、易于实现自动化及互联网海量数据共享等优 势,自1997年最先被报道以来得到了广泛的应用,成为环境微生物群落分析的最强有力的工具之 一.类似于其他的分子微生物生态学技术,T -RFLP 也有自身的缺陷,本文详细介绍了T -RFLP 技术的原理及其解析环境微生物群落的基本流程,简述了近年来T -RFLP 技术在群落分析中的 研究进展,重点讨论了该技术的局限性及相应的解决办法. 关键词:微生物群落;末端限制性片段长度多态性分析;分子微生物生态学;生物多样性 中图分类号:O657.1 文献标识码:A 文章编号:1001-2443(2006)06-0582-04 引 言 环境中的微生物都不是单独存在的,总是通过各种作用形成微生物群落.分析微生物的群落结构,了解其与环境相互作用关系,有助于从种群和群落水平上深入理解环境中的微生物;了解环境污染物迁移转化的微生物学基础;更深刻地认识各种生物处理工艺的微观机理,从而为调控和优化微生物群落、提高处理效果提供理论指导. 传统的微生物群落分析方法建立在微生物纯种培养分离的基础上.而环境中微生物群落结构非常复杂、多样性极高,因此传统方法存在致命缺陷:无法培养自然界中所有微生物[1],也无法反映自然条件下微生物群落的真实情况[2].所以,有必要研究不依赖微生物培养的环境微生物群落分析方法.1986年Pace 等人利用核酸序列分析技术研究微生物的生态和进化以来,分子生物学技术已被广泛地应用于微生物群落分析,研究方法也层出不穷,包括荧光原位杂交法(Fluorescence In Situ Hybridization ,FISH )[3]、限制性酶切片段长度多态性分析法(Restriction Fragment Length Polymorphism,RFLP) [4]、变性梯度凝胶电泳法(Denaturing Gradient Gel Electrophoresis,DGGE)[5]等. 末端限制性酶切片段长度多态性分析(Terminal Restriction Fragment Length Polymorphism,T -RFLP)是RFLP 基础上发展起来的新技术,相对于其它分子生物学技术具有分辨率高、易于实现自动化等特点,是分析复杂环境微生物群落的强有力的工具之一[6,7]. 1 T-RFLP 技术的基本原理 T -RFLP 技术以分子系统学原理为基础,综合运用了PCR 、限制性酶切、荧光标记和DNA 序列分析等技术,通过对特定核酸片段长度多态性的测定来分析微生物群落结构和功能.首先根据比较基因组学原理选取一段具有系统进化标记特征的DNA 序列作为目标分析序列.从原理上讲,微生物群落中任何具有特异性的DNA 片段都可以作为目标分析序列,包括微生物核糖体小亚基(SSU)16S rRNA(原核生物)和18S rRNA (真核生物)的基因序列[8] ,以及一些保守的功能基因序列等.之后根据目标基因序列的保守区设计引物,荧光标记.提取总DNA,PCR 扩增片段一端带有荧光标记.限制性内切酶对扩增的DNA 消化,产生长度不同的片段.电泳分离、荧光检测,检测带荧光标记的片段(Terminal Restriction Fragment,T -RF).通过分析,揭收稿日期:2006-03-16 作者简介:李红(1966-),女,安徽安庆人,讲师,硕士.第29卷6期 2006年12月 安徽师范大学学报(自然科学版)Journal of Anhui Normal University (Natural Science)Vol.29No.6Dec .2006