DNA操作(数据结构实验报告)要点解析.docVIP

  • 6
  • 0
  • 约4.72千字
  • 约 11页
  • 2016-04-27 发布于湖北
  • 举报
设计性综合性实验 实验课题名称: DNA生物学操作 院系:计算机科学与技术学院 专业:计算机科学与技术 课程: 数据结构 教师: 学号: 姓名: 2013 至 2014 学年度 1 学期 实验名称:生物学操作 实验性质:  设计性(*) 综合性(*) 实验器材:PC机并装有VC++6.0环境 实验目的:解决生物学DNA操作 实验任务:设计函数实现DNA的以下生物学操作: 实验内容、过程及结果: 问题描述 脱氧核糖核酸(DNA)承载着生命的遗传代码,它是由4种核苷酸(又称为碱基)组成:腺嘌呤(A)、胸腺嘧啶(T)、鸟嘌呤(G)和胞嘧啶(C)。 这4种碱基有无穷种组合,形成一条碱基单链,而DNA是由等长的两条相互缠绕的碱基单链所构成,在两条链上位置相同的碱基相互连接,称为碱基对。但是构成碱基对必须遵循一定的原则,其中A只能连接T,G只能和C连接,这称为WC兼容性。 设计思路 实行生物学上DNA的操作,要涉及到DNA的混合,溶合,匹配,输出。我们可以通过链表来形成一个DNA,利用DNA的碱基互补配对来完成相应的操作。 解决问题 碱基的互补配对如下: 腺嘌呤(A)——胸腺嘧啶(T) 鸟嘌呤(G)和胞嘧啶(C) 混合:互为WC补体的2条单链横向配对连接,形成一条完整的DNA双链。 溶合:一条DNA双链,通过加热使得碱基对断裂,形成2条DNA单链。 匹配:输入任何一条DNA单链,输出其匹配的WC补体单链。 输出:输出任何一条DNA单链或双链。 四.实现 功能函数设计 dna *chuangjian() 此函数的作用是常见一个DNA单链,通过输入来确定DNA的长度与DNA的碱基 void xianshia(dna *head) 此函数的作用是用来显示DNA的第一条链 void xianshib(dna *head) 此函数的作用是用来显示DNA的另外一条链 void pd(dna *head) 此函数的作用是用来通过碱基互补配对利用第一条链生成另外一条互补链 void bijiao(dna *head,dna *b[max],int i) 此函数的作用是用来比较两个DNA单链是否互补形成一个DNA单链 void menu() 此函数的作用是打印出用户操作菜单 void main() 此函数是该程序的主函数 下面是源代码: #include stdio.h #include stdlib.h #include memory.h #includestring.h #includeconio.h #define max 200 typedef struct DNA { char a,b; int len; struct DNA*next; }dna; dna *head; dna *L[max]; dna *chuangjian()//初始化链表 { dna *r,*t; int j,a; char i; r=head=(dna *)malloc(sizeof(dna)); printf( 待创建DNA的长度:); scanf(%d,a); for(j=1;j=a;j++) { printf( 第%d个核苷酸:,j); getchar(); scanf(%c,i); if(i==A || i==C || i==T || i==G) { t=(dna *)malloc(sizeof(dna)); t-a=i; r-next=t; r=t; } else { printf(输入错误!\n); j--; } } head-len=a; r-next=NULL; return head; }//chuangjian void xianshia(dna *head)//遍历链表 { dna *p; p=head-next; while(p) { printf(%c ,p-a); p=p-next; } printf(\n); }//xianshi void pd(dna *head) { dna *p; p=head-next; while(p) { switch(p-a) { case A: p-b=T; break; case T: p-b=A

文档评论(0)

1亿VIP精品文档

相关文档