如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
设计性综合性实验实验课题名称:DNA生物学操作院系:计算机科学与技术学院专业:计算机科学与技术课程:数据结构教师:戴文华学号:123821028姓名:王亚操学号:123821041姓名:卢亮学号:123821002姓名:何斌学号:124821020姓名:危佳乐学号:123821064姓名:沈豪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的碱基voidxianshia(dna*head)此函数的作用是用来显示DNA的第一条链voidxianshib(dna*head)此函数的作用是用来显示DNA的另外一条链voidpd(dna*head)此函数的作用是用来通过碱基互补配对利用第一条链生成另外一条互补链voidbijiao(dna*head,dna*b[max],inti)此函数的作用是用来比较两个DNA单链是否互补形成一个DNA单链voidmenu()此函数的作用是打印出用户操作菜单voidmain()此函数是该程序的主函数下面是源代码:#include<stdio.h>#include<stdlib.h>#include<memory.h>#include<string.h>#include<conio.h>#definemax200typedefstructDNA{chara,b;intlen;structDNA*next;}dna;dna*head;dna*L[max];dna*chuangjian()//初始化链表{dna*r,*t;intj,a;chari;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;returnhead;}//chuangjianvoidxianshia(dna*head)//遍历链表{dna*p;p=head->next;while(p){printf("%c",p->a);p=p->next;}printf("\n");}//xianshivoidpd(dna*head){dna*p;p=head->next;while(p){switch(p->a){case'A':p->b='T';break;case'T':p->b='A';break;case'C':p->b='G';break;case'G':p->b='C';