中国地质大学 C语言实习报告 (1500字)

时间:2019-05-14 17:00:28下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《中国地质大学 C语言实习报告 (1500字)》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《中国地质大学 C语言实习报告 (1500字)》。

第一篇:中国地质大学 C语言实习报告 (1500字)

中国地质大学(武汉)

计算机高级语言课程设计(实习报告

姓名: 实习题目: 班级: 学号:学院:专业:资源勘查工程(油气方向)

指导老师:2012年1月15日 c)目录

一、题目名称、要求----------------------5

五、程序运行过程截图及分析---12

六、总结---------------19

一、题目名称、要求

歌星大奖赛

(1)在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分,选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。

(2)同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接近平均分)和最不公平(即与平均分差距最大)的评委。

提示:这个问题的第一个要求算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。第二个要求为了考虑效率,要用到排序技术。

二、需求分析

根据题目要求,程序中所求为分数的平均值(去掉最大最小值)及所有分数中和平均值差距最大和最小的数的顺位。易知需要用到比较数据大小,并在一组数据中求得最大、最小值。第二问要求得出与平均分差距最大、最小的数据,也可以理解为求第一问中各数据与平均值差的绝对值的最大、最小值。并提供提示、输入、输出、显示、纠错等操作。根据情况的不同,还应该提供可以使数据多次录入的循环部分。

三、程序总体设计思路

一、总体设计:

整个程序最开始是数据输入,可用scanf函数实现,输入的数据可存放在数组中,然后解决题目中的第一问,即求平均值,先寻找所输入的数据的最大值和最小值,这一步通过设的变量max及变量min的逐渐变动即可实现,接着减去max和min的值之后平均数aver就可得到。然后是寻找数据中和平均值差距最大和最小的数,同样是通过max和min变量(此时max和min重新赋值,出于阅读性考虑变量尽可能减少),数据与平均值的差距大小可通过差值的平均值体现,然后求得差值平均值的最大、最小值及其相应的位置,就可解决第二问。

整个程序中的输入模块负责接收数据,数据处理模块(1)和数据处理模块(2)分别负责第一问求平均值和第二问求最公平和最不公平的评委,最后输出模块输出处理后的结果。

二、程序各部分功能划分

程序可以划分为5个部分,通过各个部分的合作即可完成要求:

1、成绩输入部分。

2、求得最大、最小值部分。

3、求平均值部分。

4、求得最公平、最不公平数据及其位次部分。

5、结果输出部分。

图示:

四、程序各模块作用及详细设计

一、程序各功能模块设计:

(1)开始部分:

#include #include void main(){ do{ float a[10],max=0.0,min=100.0,aver=0.0;int i,m,n;/*定义需要使用的变量*/ 该部分是程序的开头,说明了需要调用的系统文件,stdio.h和math.h均是使程序可顺利运算必需的内容。而max、min均为定义的

变量,定义为float型是考虑到评分或平均分不一定是整数。其中为了程序的简洁,max、min及aver会赋两次值,实际上可以不这样做而多定义两个变量。其中的do while语句使得程序可以重复执行,也即多组数据的录入和处理得以实现,do while语句的执行条件在main函数的末尾,条件为1,即无限循环,当需要跳出程序时直接关闭对话框即可。

(2)数据输入模块: for(i=0;i<10;i++){ printf(请输入第%d个分数n,i+1);scanf(%f,&a[i]);将预定输入的10个分数均放在数组a[10]里,便于调用和比较。由于在数组中a[0]代表的是第一个数,即方括号内的数字i并不代表输入数据的顺位,所以在printf函数里输出的是i+1而不是i。

图示:

(3)数据处理模块1 if(a[i]<1.0 || a[i]>100.0){ printf(error!n);/*数据只能在1到100之间*/ i--;} if(maxa[i])min=a[i];aver+=a[i];/*此时aver为所有数据之和*/ } aver=(aver-max-min)/8;/*第一个循环结束,aver重新赋值,此时aver为平均值*/ 第一个数据处理模块解决了第一问的要求,即求得去掉一个最高分和去掉一个最低分后其余8个分数的平均值。由于题目要求分数为1~100分,程序中添加了一个判定部分,只有当分数处于1到100之间时循环才能继续,否则提示“error!”。此处的aver赋了两次值,是出于程序可读性的原因,尽量减少变量的数量。图示:

(4)数据处理模块 2 max=fabs(a[0]-aver);/*max此时为a[0]与平均值之差的绝对值*/ m=0;min=fabs(a[0]-aver);/*min此时为a[0]与平均值之差的绝对值*/ n=0;for(i=1;i<10;i++)/*程序中的第二次循环*/ { if(max

值差距最大的分数*/ m=i;/*max对应的数据在数组中的位置*/ } if(min>fabs(a[i]-aver)){ min=fabs(a[i]-aver);/*逐一比较得出当前与

平均值差距最小的分数*/ n=i;/* min对应的数据在数组中的位置*/ } } 第二个数据处理模块解决的是题目的第二问,即在10个评委中找出最公平(即评分最接近平均分)和最不公平(即与平均分的差距最大)的评委。首先对max和min重新赋值,使两者均等于第一个分数与平均数之差的绝对值,然后开始循环。因为本质上求最公平与最不公平的分数等价于求平均值差值最大与最小的数,将分数转化为其余平均值之差的绝对值(如a[i]转为fabs(a[i]-aver)),然后求最值,其余步骤与第一个数据处理模块一样。需要注意的是此模块中m和n的赋值均为当前i值,而数组中i的数值并不等于实际上分数的排序,所以最后输出时不能直接输出m和n。

图示:

(5)结束部分

printf(average=%fn,aver);printf(最公平的评委是第%d位,分数为%fn,n+1,a[n]);/*n为该数据在数组中的位置,n+1是该评委的顺次*/ printf(最不公平的评委是%d位,分数为%fn,m+1,a[m]);/*m为该数据在数组中的位置,m+1是该评委的顺次*/ } while(1); } 此为程序的结尾,printf函数输出所需的结果,分别为去掉一个最高分和一个最低分后的其余分数的平均值,及最公平和最不公平的评委的顺位和分数。分数可能不是整数,所以均以float输出,评委的顺位则以整形输出,输出n+1和m+1的原因是数组中的位置并不是实际上的位次。while(1)为do语句的判定句,使得程序无限循环,由此可以无限次输入分数并处理,实现多组分数的录入。

图示:

五、程序运行过程截图及分析

一、程序运行各阶段截图及分析

(1)程序开始阶段:

出现提示“请输入第1个分数”,此时输入分数并回车即输入第一个数据。

(2)数据输入阶段:

阶段(1)时输入98并回车,程序即可录入第一个数据并出现“请输入第二个分数”,以此类推:

输入第2个分数为75并回车,出现提示“请输入第3个分数”。继续输入85、100、65、87、94、86、82,此时一共输入了9个分数,程序依次出现提示并录入数据,最后出现提示“请输入第10个分数”。

第10个数据键入85,此时所有分数都已输入,但第10个数据计算机还没有接收,数据处理模块还没有开始。

(3)数据处理阶段

数据输入完毕后截图如下:

然后按下回车键,数据即可处理完毕:

答案直接出现在分数列的下方,依次是平均分86.5、最公平评委的位次6和分数87、最不公平的评委位次5及分数65。

一次处理后的截图为:

此时可以继续输入下一组数据,第一个分数为

如果数据输入错误,则会提示error!并提醒重新输入该数据

程序两次运行完整截图:

运算完成后,计算机会继续循环,直到关闭对话框为止。

六、总结

一、程序现有优点

(1)算法简单有效

程序中所有的循环体均使用for语句,for语句较while和do while语句更加简洁灵活,完全可以替代上述语句是程序简单有效地进行。

(2)程序精炼,可读性强

由于各个变量在程序中都多次赋值,有效地减少了程序中的变量数量,非常精炼而且通俗易懂,采用的语句和编排方式也都增强了这一特点。最终使程序维持在一个非常短而又有效的水平上。

(3)有效防止数据错误

程序中有专门的模块来防止输入错误,当输入的数据小于1或大于100时,会提示error!并再次提示输入该数据,避免了由于一次输错而导致整个程序终止的情况。

(4)菜单简单明了,提示语言人性化

程序中的菜单均为中文输出,且多为祈使句,具有较强的指导作用。层次分明并且通俗易懂,没有操作上的困难。有利于用户顺利、准确地看懂程序并进行操作,提高了管理效率。

(2)考虑了多组数据输入的情况

程序考虑了多组10个分数的输入和处理,不仅足以满足题目要求,而且考虑到了有多组分数等待处理的情况,处理完一组后不需要重新运行程序。

二、程序现有缺点

(1)程序依然不够精炼

程序虽然已经足够短小,但是只是表面上小范围精简,并没有在本质上提高效率和减小资源占用。

(2)操作界面太单调

虽然提示语言非常人性化,但是由于dos界面本身的问题导致菜单太单调,表达方式很单一。

三、程序改进思路

(1)算法的精炼以及界面的优化

限于c语言的功能和面向dos的特性,两点都不太可能有大的改进,可以将程序移植到vc++等平台以实现优化。

四、c语言实习心得体会

c语言实习的数天里,我们在专业老师的带领下进行了c语言程序实习。在这之前,我们已经学习了c语言这门课程将近一个学期,通过学习和复习已经有了一定程度的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,比如文件、指针等等,运用起来的时候还是感到很棘手。由于时间的关系,实习老师并没有太详细地讲解,只是在不懂的时候单个辅导,这样也更有效率一些。

上机是学习程序设计语言必不可少的实习环节,特别是c语言灵活多变的特点,更需要通过编程的实习来真正掌握它。通过这次实习,我们主要收获了:

(1)熟悉程序开发、学习c语言相关软件的操作方法

平时的学习我们只是简单了解了c语言的阅读,并且大多集中在最简单的基础问题上,设计大量操作和编译的部分几乎不会接触。通过这次实习我们大大熟悉了编写一个程序所需要的经过和步骤,在亲身编写的过程中,大大加深了诸如数组、指针等等的实际应用。虽然在以往也有上机实习课,但是往往不足以熟悉整本书的内容,这次的实习课也很好的弥补了这一点,我们基本都已经很好地掌握了c语言相关软件的使用方法。

(2)在编译过程中磨练了心性

完成程序的编写,决不意味着万事大吉。很多情况下自认为编写好的程序在实际操作过程中会出现很多这样那样的问题,error和warning动辄十几甚至几十。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试有时非常的枯燥,长期调试却没有效果,像个无头苍蝇一样乱撞,对于我们这些初学者来说,有时候一个消耗几个小时时间的小小错误,老师一眼就看出错误所在,这无疑是锻炼人耐心的事情。

通过这次为数不多的几天计算机实习学习,我们了解了一些很多c语言的知识,理解巩固了我们c语言的认识,从长远来说,这对我们将来到社会工作都将会有莫大的帮助。同时它让我知道,只要有足够的耐心,牢固的基础知识,任何东西都不会太难。

七、附录(完整程序)

#include #include void main(){ do{ float a[10],max=0.0,min=100.0,aver=0.0;int i,m,n;for(i=0;i<10;i++){ printf(请输入第%d个分数n,i+1);scanf(%f,&a[i]);if(a[i]<1.0 || a[i]>100.0){ printf(error!n);i--;} if(maxa[i])min=a[i];aver+=a[i];} aver=(aver-max-min)/8;max=fabs(a[0]-aver);m=0;min=fabs(a[0]-aver);n=0;for(i=1;i<10;i++){ if(maxfabs(a[i]-aver)){ min=fabs(a[i]-aver);n=i;} } printf(average=%fn,aver);printf(最公平的评委是第%d位,分数为%fn,n+1,a[n]);printf(第%d位,分数为%fn,m+1,a[m]);}

最不公平的评委是 while(1);}

第二篇:中国地质大学数据结构实习报告

Practice Report for Data Structures and Algorithm Analysis

Data Structures Course Report

Candidate: Student Number:

Major:

Communication Engineering Supervisor:

Wu rangzhong

China University of Geosciences(Wuhan)Wuhan, Hubei 430074, P.R.China

May 18, 2013

China University of Geosciences, Faculty of Mechanics and Electronic Information

删除程序代码

void DeletekTh(int position, pNode L){

pNode Tmp=L, TmpPre=NULL;

int i=0;

for(i=0;i

{

if(Tmp->next!=NULL)

{

TmpPre = Tmp;

Tmp=Tmp->next;

}

else if(Tmp->next==NULL && i

{

printf(“The Deletion position is invalid!n”);

return;

}

}

TmpPre->next=Tmp->next;

free(Tmp);}

这是程序主函数,以此来完成以上子函数的功能

#include #include #include “lianbiao.h”

int main(){

int i,x,position;pNode m;

pNode LinkLists;

{

printf(“输入元素来建立链表,0为结束输入的标志”);

LinkLists = CreateLinkLists();

printf(“链表为:”);

PrintLists(LinkLists);

}

printf(“选择你需要的操作,输入序号:n”);

printf(“

1.建立一个链表

n”);

printf(“

2.输出链表

n”);

}

2.数组实现线性表

用数组实现的功能和用链表表示的相同 部分子函数如下

//初始化顺序表:给出初始化长度

int initialArray(arrayList arrLst,int len)

{

arrLst->length=0;

arrLst->size=len;

arrLst->Array=(ElemType*)malloc(len*sizeof(ElemType));

if(arrlst->Array==NULL)

return 0;

else

return 1;

}

//删除顺序表

void deleteArray(arrayList arrLst)

{

arrLst->length=0;

arrLst->size=0;

free(arrLst->Array);

arrLst->Array=NULL;

}

//清空顺序表

void clearArray(arrayList arrLst)

{

}

printf(“n”);

}

//判断某个元素的位置

int locateElem(arrayList arrLst,ElemType e)

{

int i;

for(i=0;i

{

if(e==arrLst->Array[i])

return i;

}

return-1;

}

堆栈

主要是实现元素的进栈、出栈、判断栈中元素个数

堆栈的源函数 #include #include #include“duizhan.h”

STACK CreatStack(){

STACK S;

S=(STACK)malloc(sizeof(struct Stack));

if(S==NULL)

{

printf(“无法建立堆栈!”);

return 0;

}

S->top=-1;

return S;}

int IsFull(STACK S){

return(S->top==MAX-1);}

int IsEmpty(STACK S){

int StackLen(STACK S){

if(!IsEmpty(S))

return S->top;else

return 0;}

堆栈的主函数 #include #include #include“duizhan.h”

void main(){

STACK liliS;

liliS=CreatStack();

Push(1,liliS);

Push(2,liliS);

Push(3,liliS);

Pop(liliS);

Pop(liliS);

DisposeStack(liliS);} 设置断点可以看到栈中的元素

主函数 void main(){ STRING *Str, *Pat;int position=0;Str=(STRING *)malloc(sizeof(STRING));Pat=(STRING *)malloc(sizeof(STRING));char S_str[20]=“ababcabcacbab”;char P_str[20]=“abcac”;

Str->p_str = S_str;Str->length = strlen(S_str);Pat->p_str = P_str;Pat->length = strlen(P_str);

int *next=(int *)malloc(sizeof(int)*(Pat->length +1));

GetNext(Pat, next);position=IndexKMP(Str, Pat, next);

printf(“%dn”,position);}

显示两个字符串是在第6个元素开匹配的。

}

//插入新元素

M->data[p].i=row;

M->data[p].j=col;

M->data[p].e=e;

M->tu++;

return OK;

}

稀疏矩阵的的转置

Status TransposeSMatrix(const TSMatrix *M,TSMatrix *T){

int col,p,q;

T->mu=M->nu;

T->nu=M->mu;T->tu=M->tu;

if(T->tu){

q=1;

for(col=1;col<=M->mu;col++)

for(p=1;p<=M->tu;p++)

if(M->data[p].j==col){

T->data[q].i=M->data[p].j;

T->data[q].j=M->data[p].i;

T->data[q].e=M->data[p].e;

q++;

}

}

return OK;

}

稀疏矩阵的乘法

Status MultSMatrix(const TSMatrix *M,const TSMatrix *T,TSMatrix *Q){

int i,j,k,p;

ElemType m,t,s;

if(M->nu!=T->mu){

printf(“Sorry,these two matrice can't multiply.n”);

return ERROR;

}

Q->mu=M->mu;

Q->nu=T->nu;

Q->tu=0;

p=1;

for(i=1;i<=Q->mu;i++){

for(j=1;j<=Q->nu;j++){

s=0;

for(k=1;k<=M->nu;k++){

if(FALSE==FindElem(M,i,k,&m))

查找

采用的是快速查找法 源程序

#include #include “chazhao.h”

int SequenceSearch(int array[],int n,int x){

int i=0;

while(i

i++;

if(i==n)

return-1;

else

return i;} 建立一个数组后查找元素,输入元素后,返回元素所在数组的下标。

5用数组储存数据,在用冒泡法排序后将排序好的数组输出。

AVL树

程序主要是在向二叉树插入节点后,最终生成AVL树

AVL树中的单旋转

static Position SRL(Position K2)

{

Position K1 = NULL;

K1 = K2->left;

K2->left = K1->right;

K1->right = K2;

K2->height = MAX(Height(K2->left), Height(K2->right))+ 1;

K1->height = MAX(Height(K1->left), Height(K2))+ 1;

return K1;}

static Position SRR(Position K2)

{

Position K1 = NULL;

#else

Position K1 = NULL;

Position K2 = NULL;

K1 = K3->right;

K2 = K1->left;

K1->left = K2->right;

K2->right = K1;

K3->right = K2->left;

K2->left = K3;

return K2;

#endif

}

主程序

#include #include “avlTree.h”

void PrintTree(AvlTree T)

{

if(T!= NULL)

{

PrintTree(T->left);

printf(“h=%d, e=%dn”, T->height, T->ele);

PrintTree(T->right);

}

}

int main(void)

{

AvlTree T = NULL;

T = MakeEmpty(T);

T = Insert(3, T);

T = Insert(2, T);

T = Insert(1, T);

T = Insert(4, T);

T = Insert(5, T);

T = Insert(6, T);

T = Insert(7, T);

T = Insert(16, T);

T = Insert(15, T);

T = Insert(14, T);

T = Insert(13, T);

s->bottom=0;

s->top=0;

memset(s->printout,0,sizeof(int)*MAX_LEN);}

void push(mstack *s,int m){

s->printout[s->top++]=m;}

int pop(mstack *s){

return s->printout[--s->top];}

void InitGraph(Graph *g,int n){

int i,j;

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

{

if(i==j)g->matrix[i][j]=0;

else g->matrix[i][j]=INFINITE;

}

for(i=1;i<=n;i++)

{

in[i]=0;

Len[i]=INFINITE;

path[i]=0;

} }

第三篇:中国地质大学《生产实习报告》

生产实习目的测量学实习是测量学教学的重要组成部分,其目的使学生巩固、扩大和加深从课堂学到的理论知识,获得实际测量工作的初步经验和基本技能,进一步掌握测量仪器的操作方法,提高计算和绘图能力,对测绘小区域大比例尺地形图的全过程有一个全面和系统的认识,会认识地形图,能够根据给定的地形图在实际中寻找到图上所示的点,并在实习的过程中增强其独立工作与团队协作意识,为今后解决实际工作中的有关测量问题打下坚实的基础。学生通过本次实习应达到如下要求:

1.掌握经纬仪、视距尺等测量仪器的操作方法;

2.掌握地形测图的基本方法,能够具有初步测绘小区域大比例尺地形图的工作能力;

3.能够根据给定的地形图在实际中寻找到图上所示的点;

4.各小组分工明确、通过合作完成测量任务,增强独立工作能力与团队协

生产实习时间及地点

1.地形图测绘实习地点:中国地质大学北区南望山 时间:2011年10月15日至2011年10月16日.2.地形图识图实习地点:九峰山 时间:2011年10月19日

实习小组信息

组别:地空学院061113班 测量3组

指导老师:XX

组员:XX、XX、XX、XX、XX组员分工:

选点与跑尺:XX

记录与计算:XX/XX

描点与绘图:XX

实习内容

(一)大比例尺地形图的测绘:

1.地点:中国地质大学北区南望山

2.任务:通过两天的地形图测绘实习,每小组要取得200个左右的测点数据,并根据得到的数据完成一幅比例尺1:500,等高距1m的30cmx30cm的地形图

3.内容:(1)2011年10月14日下午,刘甜甜、鲁凯跟老师去踩点.我和其他组员到学校出版社领仪器(经纬仪),工具及用品的准备(包括测量记录手簿、2H绘图铅笔、三棱尺、半圆仪、图板、计算器、直尺等基本物品);

(2)2011年10月14日晚上,我、XX/XX按照使测绘更加方便、有效、快捷的原则,根据测区位置,在图板上布设控制点;我先按图纸对角画两条对角线,然后等距量取四条对角边,连线,各取每10cm每条边取点连线得到30cmx30cm的图根,然后XX按比例尺计算出控制点的位置,最后XX在图上找出对应坐标位置点出控制点,最后完成了全部展点工作。

(3)过程:

测区面积有150mx 150m,中间有一座小山丘,山丘上面有一个房子、毕业墙、一个圆柱体。控制点是已知高程(海拔)的点,我们需要在这些控制点上架设经纬仪,以它们为基准来测它与其他位置点的高差,进而推算位置点的高程(海拔)。因为控制点的个数有限,尤其是位置好的控制点更是稀少,所以我们必须要有抢占有利控制点的意识与冲动。只有如此,我们的测绘才会更加高效。实习的前一天,所有人都在抢占有利控制点上做了充分准备。2011年10月15早上因为运动会耽误了一点时间所以到中午我们组才这全部到达南望山,因此有利的控制点基本被占领了!但是为期两天的测量实习就这样开始了!

第一天大家都没有一点经验,我们找到了山上的房子旁边的一个控制点——43号点,XX用

他新的对中、整平方法快速对中整平了可是他说要用直尺测量房子的边长,我认为不妥!因为这就是和用经纬仪测距违背了!我提出了疑义,我们去看书不断的摸索,最后提出一个到后面才知道是错的方法!就是用两个控制点定出一个点!一天到下午测不了几个碎步点,分工也很乱!有时后我们队员都不知道做什么,后来,我们换到离43号点较近的21号点,准备测量,可是从早上到现在我们的测量方法一直在变,一直有争议,在这两个点测到得数据也不懂怎么用!到这时天色准备暗下来了!

老师看到我们组的进度缓慢就叫一个测得快的组的一名组员来帮忙,听着这名同学讲解,我们明白了整个测量的基本过程:

1:将架设好的经纬仪对准另一个控制点,调节水平度盘使读数为零。

2:让选点跑尺的组员选好碎步点,是山坡的,一般应该在大概认为同一高度选出若干个碎步点,立尺。

3:让观察者将经纬仪转向标尺读出上丝读数、中丝读数、下丝读数、水平度盘读数、竖直度盘读数,让记录员记录

4:计算者计算出上丝读数减下丝读数、用公式计算出实际距离、高程、根据比例尺算出图上距离,填入手簿,同时告诉绘图者角度、图上距离和高程。

5:绘图者根据所得到的数据用半圆仪、直尺、铅笔绘出碎步点标出高程。

明白整个过程之后我们知道之前的数据都作废了!太阳开始落山,我们赶快行动,天色真的已经很黑了,连看度盘读数都只能用手机照明才能看清!就这样在天完全黑之后我们只完成两个控制点的测量,我们托着疲惫的身体回来了,我们组设最后一组回来的,但是我们已经完全清楚明天我们该做什么、该怎么做,相信我们明天一定能完成任务!

经过昨天的教训2011年10月16日这天早上6点我们就起床,早早的到达了北区南望山,这一天我们是第一组到达的!我们有明确的分工,明确的测量步骤,明确的测量路。我们的效率很高,第一个地点是上山的路口阶梯从6号点到22号点选择拐点....。就这样一片片山坡、山谷、低地....被我们选点、观察、记录、计算、绘图描绘出来了。

就这样到了两点我们因为早上都只吃了一个饼而体力不支了!个个脸色惨白,又不能休息,因为我们还有很多点没测。这时食堂只有面食了!我们只好轮流去吃,去了两个组员,就在这时我们发现39号点的数据全部有误,原来是所标的39号点本来就是有误的!我们很气愤,但是我们必须坚持,我们继续测到35号点终于测完了!这时我们已经累得趴在山坡上了!看看表离交仪器的时间还有一个小时,强忍着疲惫、饥饿、困意我们扛着感觉比以前重了很多的仪器到学校出版社交了,让我们感到欣慰的是还有许多组还没测完!

心得体会

1.经过这次实习让我感受到学会理论和实际的结合是很重要且是一个循序渐进的过程。要达到实践贯通,把课本知识很好的运用到实际中是会受到许多挫折的,比如我们组在实习第一天基本没什么收获。我作为计算员我用到的公式有:....., 式中Hi是碎步点高程,Da1是测站至碎步点的水平距离,k 视距乘常数;t为(尺间距)上丝、下丝读数之差;l为中丝读数;i为仪器高;a为竖直角。可是在实际计算时不能死搬硬套公式,比如a角是竖直角当这角是90度是用计算器算时是输入0度,当这角大于90度时用这角减去90度所得的角度加上负号在输入,小于是用90度减去所得读数直接输入,还有一些简便一点的计算方法也是实际操作后才慢慢摸索出来的,同样绘图员、记录员、观察员、跑尺选点员都会遇到不一样的实际问题。所以说实习是把我们从课本学到的知识用到实际的一个过程。

2.通过这次实习也让我感受到以前的艰苦条件下做一幅全国地形图是多么的困难和来之不易啊!也为我们作为地大人能为人们作出的贡献而感到自豪和敬佩!

(二)持图实地跑点实习:

1.地点:九峰山

2.任务:到达图上表示的指定地点中的至少5个,将实地编号标注到地图上.3.内容:

(1)全组成员集中分析地图,确定初始路线;

(2)按照初始路线寻找指定点;

(3)过程:

2011年10月19日晨,我们从中国地质大学出版社拿到的不再是经纬仪、三角架和视距尺,而是一张九峰山地区的地图。是一张已经泛黄的,1973年绘成的地图,上面采用的最接近成图时间的数据是1969年的。图上画了许多个框框,它们标注的就是我们组今天要到的地方。虽然每个小组的地图是一样的,但上面被标注的点却是不一样的。也就是说,我们的目的地可能有重合,但不会是每个目的地都一样。因此,各组之间几乎独立的,合作被限定在了组内。老师告诉我们,图上表示的一个池塘已经填掉了,变成了农田,有座桥已经不存在了,图上表示的湖北省林业科学研究所已经更改了地址。这加重了我们对这张地图的怀疑,其他的地方就没有变化吗?我们要找的点在实地被标注在电线杆、石板桥、池塘壁等地方,而且这些点上是有编号的,我们只有真正到过这些点才能知道它们的编号。按照要求,我们要把这些编号标注在地图上,我们要至少找到5个。

今天我们从地大出版社坐车出发到一个加油站下,这里就是潜力村也就是出发点。组员们捧着这张地图走向了一片未知区域。地图成了我们不会迷路的唯一保障。跟着大部队,我们翻过了第一座山,山的背后是公墓。很快我们到了第一个路口,我们要找的一个点在向东的方向,其他点在向西的方向,而且那个独立的点要翻过一座高山才会到达。分析了利弊后,我们决定放弃它。放弃它就意味着放弃大部队,我们组成了少数走向西道路的小组。对比了图上池塘的位置,我们终于找到了它,地图告诉我们,这里有地大的点。在一个田边的电线杆上,我们看到了“地大78”。这是我们的第一个成果。但是这次我们又犯了一个错误:我们把图上的点当作我们要找的点!费了很多时间在这附近找等到后来的一组来了问明之后才知道这本来就是我们要找的点!

沿着池塘边的公路,我们继续前行,过了1个比较大的村子。重新看了一遍地图,对比了实地,我们还问了当地的老乡,我们要找到一个祠堂然后找到一个村子,我们很快看到了远方我们要找的祠堂和村子。为了抄近路,我们进了稻田。秋天的稻田已是十分空旷,但湖北多湖的特点注定这里是泥泞的。选择了走农田,那么可能出现的点就只能在电线杆上。直到走出稻田,我们也没有发现要找的点。我们又经过了一个村子来到这村后一座小山,用地形图所给的正北方向结合刚升起不久的太阳代表的东边找到了有一个点就在这座村子旁的另一个村子里,确定之后我们飞奔去哪里,在途中碰上了另一个小组,我们就和并成一个组,在这个村我们顺利的找到了21号点,这点非常隐蔽而且也被破坏得很厉害.这时我们遇到一个艰难的选择,该是北走去曹家村,还是向西走去下刘村?去了下刘村就过了几个点,可是到了下刘村就接近目的地了!经过讨论我们决定还是去了下刘村,经过下刘村是我们问水库在哪里!老乡说要经过涵洞,我们就经过了涵洞,到了一片山林,我们非常艰难的穿过这片充满荆棘的山林又到了一片长满杂草的田野,过了这片田野,我们每个人的衣服、鞋带都插有许多不知名的刺!

我们到达水库时所有的组员又累又饿,在这里即找不到点也为往哪里走而迷茫,本来一个点找不到十几分钟就应该放弃,但是由于这个错我们一直以问当地的老乡为判断所走的方向是否正确,当我们找到100号点时,已经没有时间停留了,我们奔跑在途中找到145号点,往前走就是上山的小路,这就是老师说的通往老林科所的捷径!我们继续奔跑!体力好的跑在前面但也带着重物,同时不忘告诉后面的队员往哪里走,就这样看到一条马路上标有地大CUG字符,向下走看到一只锁着的狗一直在叫,最终看到了在老林科所等待的邹蓉老师,能看到

她真的很高兴!随后队员们全部到齐!然后跟随老师到达土桥村的一个已经废弃的大加油站,在这里能看到其他组,在这里和他们交流,等了十几分钟等到学校派来的车,坐上车,大家都累了,已经没有刚来时在车上的喧闹、许多人已经在这回校的车上进入梦乡!持图实地跑点实习就这样落下帷幕。

心得体会

1.经过这次跑点实习,是我认识到要准确看懂一幅地形图并能把它和实际地形正确符合起来确实是一件不容易的事

2.在跑点过程中队员之间一定要团结协作,不能有争执

3.在这次实习中我们除了感到累,更重要的是我们同时也感受到了运用智慧的乐趣、团结协作的快乐、成功在规定时间之内到达目的地欢喜。

误我们组失去了许多时间,最后我们终于决定往蚂蚁峰走,这时得到另一些组已经到达使我们不免有一些丧气,经过一个十字路口时,往前就有一个点,可是这是一座挖空的山,我们想碰碰运气可是终究找不到,回到十字路口,这时我们这个合并组分别往相反的方向走!当我们感觉我们走的方向是对的时,我们跑步前进,不,可以说是狂奔!过往的山中美景、田园风光都被我们忽略了,我们的目标只有一个——老林科所。

第四篇:数据结构实习报告(中国地质大学)

1、需求规格说明

【问题描述】

利用哈夫曼编码进行对已有文件进行重新编码可以大大提高减小文件大小,减少存储空间。但是,这要求在首先对一个现有文件进行编码行成新的文件,也就是压缩。在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件。试为完成此功能,写一个压缩解压缩软件。

【基本要求】

(1)压缩准备。读取指定被压缩文件,对文件进行分析,建立哈夫曼树,并给出分析结果(包括数据集大小,每个数据的权值,压缩前后文件的大小),在屏幕上输出。

(2)压缩。利用已建好的哈夫曼树,对文件进行编码,并将哈夫曼编码及文件编码后的数据一起写入文件中,形成压缩文件。

(3)解压缩。打开已有压缩文件,读取其中的哈夫曼编码,构建哈夫曼树,读取其中的数据,进行译码后,写入文件,完成解压缩。

2.总体分析与设计

【设计思想】

将一待压缩的文件以二进制形式进行读写。压缩过程中,将待压缩文件一次性读入内存,随后对其中出现的字符进行判断和统计,将所得的字符频率创建HuffMan树,并对其进行编码,将源文件的字符用其HuffMan编码代替,组合成满字节写入压缩文件。【详细设计表示】

变 量 数据类型 Maxsize int *Key input_char KeyNum int *Huffman_node huffmantree 成员函数说明: char_judge 功能:判断字符出现的函数;

原型:bool char_judge(char c);//判断字符出现的函数; 返回类型:bool型 参数:c char型 [in] char_add

功能:添加新出现字符的函数; 原型:void char_add(char c);返回类型:无

参数:c char型 [in] CreateHuffTree 功能:创建哈夫曼树

原型:void CreateHuffTree();返回类型:无 参数:无

CreateHuffCode

功能:创建哈夫曼编码

原型:void CreateHuffCode();返回类型:无 参数:无

其它函数说明: ArrayOpp 功能:将一个字符数组中的1 字符顺序颠倒 原型:void ArrayOpp(char a[],int n)返回类型:无

参数:数组 a char型 [in&out] n int型

CompressFile 功能:压缩文件

原型:void CompressFile(FILE *ifp,FILE *ofp);//压缩 返回类型:无

参数:指针ifp FILE型 [in&out]

指针ofp FILE型 [in&out]

DecompressionFile 功能:解压文件

原型:void DecompressionFile(FILE *ifp,FILE *ofp);//解压 返回类型:无

参数:指针ifp FILE型 [in&out]

指针ofp FILE型 [in&out]

FindMax

功能:寻找数组中最大元素下标 原型:void FindMax(int index[],int n,int &flag);//寻找数组中最大元素下标 返回类型:无

参数:数组index int型 [in&out] n 数组长度 [in] flag int型 [in&out] 3. 编码

【遇到的问题及解决方法】(1)选取合适的数据结构

对于一个工程的实现,到底采用怎样的数据结构,应该考虑到程序的性能和代码的可读性。由于起初对工程的不熟,对于用什么样的数据结构来存储我一直都处在试探中,缺乏一种长久的考虑,这也使得后面的编码过程效率不高。最终冷静下来,自定义了一个文件类和两个辅助结构体,大体的实现框架在总体设计中已给出。

(2)哈夫曼树该如何建立

首先,字符的频率作为关键值,用一个循环,每次找出关键值最小的两个字符,将其组合加入到哈夫曼树中,同时将每个哈夫曼树节点用结构体huffman_node数组存放,每个节点都有其左右孩子和父节点的下标,这有便于后面的哈夫曼编码。(3)哈夫曼编码的具体实现

哈夫曼编码的具体实现方法:由于哈夫曼树的建立过程中为每个哈夫曼节点标明了左右孩子和父节点,可以从关键值开始,从下往上通过父节点与子节点的关系为子节点进行编码,如果父节点的左孩子是当前子节点,则子节点(含关键值)的哈夫曼编码标为0否则标为1,如此循环下去。这样得到每个叶节点对应的哈夫曼编码的逆序表示,且存放在数组bits中。然后用一个函数ArrayOpp将其逆序过来,从而真正得到哈夫曼编码。(4)文件的二进制形式读写操作及其压缩的实现

最主要的还是怎样实现文件的压缩,由于压缩文件中的字符是用其相应的哈夫曼编码代替的,如果只是把字符的哈夫曼编码(也使字符型的数组存放的)写入,将会适得其反,只有将相邻字符的编码组合成一个一个的字节数字写入才能达到节省空间的效果,例如:某字符哈夫曼编码为bits 1 1 1 1 1 1 1 这字符数组内容通过移位可转化为char型数128,如果满一个字节就写入,若未满则继续组合。

4.程序及算法分析

【压缩】

1、先整体扫描文本,统计文本的字符个数,种类,以及频率记录下来。

2、根据字符的频率生成相应的huffman树,生成huffman树之后再根据树的结构生成huffman编码。

3、生成压缩文件,文件头部分写入待压缩文件的字符个数,字符种类以及相应的频率,分别用int型,char型数组以及int型数组写入。

4、写入带压缩文件中每个字符对应的huffman编码,按位写入。

按位写入采用移位思想,满8位一写。如源文件中一段字符“ABC”,A的huffman编码为001,B的huffman编码为010,C的为11,刚好满8位。则定义一个unsigned char型变量如c_out(初值为0),用移位将c_out赋值使其机器编码为00101011,刚好8位,再将其作为一个字符写入压缩文件中,直至将带压缩文件的最后一个字符写满。要注意的是:若带压缩文件最后一个字符的huffman编码赋值给c_out后c_out不满8位,则将c_out的其余位都补0。

【解压】

1、读压缩文件的头部分,定义几个变量记录字符个数,种类以及对应的频率。

2、根据字符种类及频率生成huffman树。

3.继续循环读压缩文件每次读一个字符,每读一个字符根据其8位机器码来遍历huffman树,当遇到huffman树的叶子节点时终止,将叶子节点的字符写入解压后的新文件中。当读完最后一个字符后终止循环。

解压正文时每读一个字符,利用移位将该字符的8位机器码取出存入链表中,方便huffman树的遍历。【分析】

主要的程序集中在两个函数中:CompressFile和DecompressionFile考虑到程序的性能,在对文件的读写过程中,我选择在内存中对文件进行操作,在压缩时,将待压缩文件一次性读入内存,在解压文件时,将待解压文件一次性读入内存,而不是一个字节一个字节地读写文件。

5.小结

通过这次课题实验的程序实践,我实在获益匪浅!数据结构是上个学期开展的一门学科,学习这门学科也是艰辛的,因为它比较难懂,但是这门学科是非常重要的,在以后的程序设计方面这门学科能给我们很大的帮助。

这次的程序设计对我来说无疑是一个具大的考验,从接起课题后,我就一直为实现程序而努力,翻阅相关书籍、在网上查找资料。因为课本上的基础知识掌握不好,过程中遇到了不少的阻碍,编写程序的进度也比较慢。虽然如此,但是通过自己的努力与老师的指导,我对这次实验的原理有了一定的理解,通过参照从网上找到的源程序,终于在其它源程序的基础下写出了本次实验的核心算法,并使其能够正常的运行。

近两周的程序设计,让我体会到了作为一个编程人员的艰难,一个算法到具体实现,再到应用层面的开发是需要有一段较长的路要走的,不是一朝一夕就可以实现的,而且在编好程序后,编程人员还要花很多的时间去完善它,其中包含的心酸,外人是不会明白的。

这次课程设计涉及对大量数据的处理,要做到精益求精,不能忽略任何一处,否则结果将会有很大的不同,总之,最大的感受就是完美源于细节!编程不仅要有一定的理论基础和实践经验,还需要一定的毅力和关注细节的习惯。这次对文件的压缩和解压的实习,使我的调试有了进一步的提高。同时也使我在编程中对文件的存储形式的采取有了一定的了解。希望在以后的实习中,我会有有进一步的提高。

6.附录

【部分核心代码】

void CompressFile(FILE *ifp,FILE *ofp){

if(!ifp){

cout<<“InPutFile cannot be

opened!”<

fseek(ifp, 0, SEEK_END);//定位到文件结尾处

int orignflen = ftell(ifp);char *orignfile=new char [orignflen+1];fseek(ifp,0,SEEK_SET);//定位到文件起始处

fread(orignfile,1,orignflen,ifp);//将文件内容一次性读到内存中

orignfile[orignflen]=0;

C_file file(512);char c;for(int i=0;i

c=orignfile[i];

if(!file.char_judge(c))//对原文件字符进行判断和统计

file.char_add(c);}

for(int i=1;i

cout<

} file.CreateHuffTree();//创建HuffMan树

file.CreateHuffCode();//创建HuffMan编码

//*******************************************************************// //写入文件信息

fseek(ifp,0,SEEK_SET);fwrite(&orignflen,sizeof(int),1,ofp);fwrite(&file.MaxSize,sizeof(int),1,ofp);fwrite(&file.KeyNum,sizeof(int),1,ofp);for(int i=1;i

fwrite(&file.Key[i].data,sizeof(char),1,ofp);

fwrite(&file.Key[i].count,sizeof(int),1,ofp);}

//*******************************************************************//

unsigned char o_c=0;//o_c中存入二进制的位数

int bitnum=0;

char x;

for(int k=0;k

c=orignfile[k];//从内存中取出源文件内容

for(int

i=1;i

{//在文件类对象中检索出相应的关键码

if

(c!=file.Key[i].data)continue;

else

{//将哈夫曼编码组合成char型数字

for(int

j=0;j

{

if(bitnum==8)

{//若满8位则构成一字节写入

fwrite(&o_c,1,1,ofp);

bitnum=0;

o_c=0;

}

x=file.huffman_node[i].bits[j];

if(x=='1')o_c=(o_c<<1)+1;

else o_c=o_c<<1;

bitnum++;

}

break;

}

} } while(bitnum<8)//最后一个字节未写满则补

{

o_c=o_c<<1;

bitnum++;} fwrite(&o_c,1,1,ofp);//将最后一个字节写入文件

fclose(ifp);fclose(ofp);cout<<“Already Compressed!”<

} void FindMax(int index[],int n,int &flag){//找出数组中最大值的下标 由flag返回

for(int i=1;i<=n;i++){

if(index[i]>=index[i+1])

{

flag=i;

}

else

flag=i+1;} }

void DecompressionFile(FILE *ifp,FILE *ofp){ unsigned char i_c=' ';char o_c=' ';

//**************************************************************// //读取压缩文件信息

fseek(ifp,0,SEEK_SET);int orignflen=0;int MaxSize=0;int KeyNum=0;

fread(&orignflen,sizeof(int),1,ifp);

char *depressfile;depressfile=new char[orignflen+1];

fread(&MaxSize,sizeof(int),1,ifp);

C_file file(MaxSize);

fread(&file.KeyNum,sizeof(int),1,ifp);

for(int i=1;i

fread(&file.Key[i].data,sizeof(char),1,ifp);

fread(&file.Key[i].count,sizeof(int),1,ifp);}

//**************************************************************// //重构HuffMan树和编码

file.CreateHuffTree();file.CreateHuffCode();

fseek(ifp, 12+((file.KeyNum-1)*5), SEEK_END);

long flen = ftell(ifp);char *compressfile=new char [flen+1];

fseek(ifp,0,SEEK_SET);fseek(ifp, 12+((file.KeyNum-1)*5), SEEK_SET);

char t_buff[255],z_buff[255];t_buff[0]=0;z_buff[0]=0;

//获取最长编码的长度

int *index;index=new int [file.KeyNum-1];int flag=0;for(int i=1;i

index[i]=file.huffman_node[i].count;} FindMax(index,file.KeyNum-1,flag);

int

p=file.huffman_node[flag].count;int curr_index=0;int l=0;while(true){

int i;

while(strlen(z_buff)

{//保证能够取到最长编码的全部内容

fread(&i_c,1,1,ifp);

itoa(i_c,t_buff,2);//将读取的一个(字符型)字节的内容转换为char型字符数组

strcat(z_buff,t_buff);

【参考资料】

}

for(i=1;i

if(memcmp(file.huffman_nod

e[i].bits,z_buff,file.huffman_node[i].count)==0)

break;

}

strcpy(z_buff,z_buff+file.huffman_node[i].count);

//获得目标字符并存入目标数组

o_c=file.Key[i].data;

depressfile[l++]=o_c;

if(l==orignflen)

{

break;

}

}

fseek(ofp,0,SEEK_SET);

fwrite(depressfile,1,l,ofp);//将解压后的文件一次性地写入文件

fclose(ifp);fclose(ofp);cout<<“Already DeCompressed!”<

}

《数据结构(用面向对象方法与C++语言描述)》 殷人昆 等编著,清华大学出版社 《数据结构题集》严蔚敏,吴伟民 编著,清华大学出版社 《数据结构及应用算法》严蔚敏,陈文博 编著,清华大学出版社

第五篇:中国地质大学博物馆实习报告

土木工程地质实习报告

专业:_ _土木工程_________ 班级:__土木1005班______ 姓名:__蔡兴学__________ 学号:__U201015175______ 日期:__2012年9月14日__

(一).实习时间:2012年9月14日

(二).实习地点:中国地质大学逸夫博物馆

(三).实习目的:对自然地理学中所涉及的相关概念有真实的认识了解

(四).实习安排:组队达到博物馆,在讲解员的讲解下进行参观最后进行自由参观

(五).实习内容及过程:

1. 地球的奥秘展厅

①太阳系是我们现在所在的恒星系统。它是以太阳为中心,和所有受到太阳引力约束的天体的集合体:8颗行星、至少165颗已知的卫星,和数以亿计的太阳系小天体。这些小天体包括小行星、柯伊伯带的天体、彗星和星际尘埃。广义上,太阳系的领域包括太阳、4颗像地球的内行星、由许多小岩石组成的小行星带、4颗充满气体的巨大外行星、充满冰冻小岩石、被称为柯伊伯带的第二个小天体区。在柯伊伯带之外还有黄道离散盘面、太阳圈和依然属于假设的奥尔特云。

②太阳系八大星系位置:依照至太阳的距离,行星序是水星、金星、地球、火星、木星、土星、天王星、海王星。

③地球内部结构:由内到外:地核-地幔-地壳。地壳与地幔之间由莫霍面界开,地幔于地核之间由古登堡面界开。

④六大板块:全球岩石圈可分成六大板块,即太平洋板块、印度洋板块、亚欧板块、非洲板块、美洲板块和南极洲板块,其中只有太平洋板块几乎完全在海洋,其余板块均包括大陆和海洋,板块与板块之间的分界线是海岭、海沟、大的褶皱山脉和大断裂带。

⑤全球火山分布版图:1)西太平洋火山活动区,主要与太平洋板块向北西西方向的俯冲活动有关。环太平洋火山链集中了全球大部分火山,中国东部就被这条火山链包围着(2)东太平洋火山活动区,主要与太平洋东面的小板块(胡安德富卡板块、科科斯、纳斯卡板块)向美洲板块的俯冲有关(3)大西洋火山活动区,与大西洋和非洲的裂开,以及地中海带的活动有关,⑥冰川地貌:由冰川作用塑造的地貌。属于气候地貌范畴。地球陆地表面有11%的面积为现代冰川覆盖,主要分布在极地、中低纬的高山和高原地区。第四纪冰期,欧、亚、北美的大陆冰盖连绵分布,曾波及比今日更为宽广的地域,给地表留下了大量冰川遗迹。

⑦喀斯特地貌:是具有溶蚀力的水对可溶性岩石进行溶蚀等作用所形成的地表和地下形态的总称,又称岩溶地貌。除溶蚀作用以外,还包括流水的冲蚀、潜蚀,以及坍陷等机械侵蚀过程。喀斯特(Krast)一词源自前南斯拉夫西北部伊斯特拉半岛碳酸盐岩高原的名称,当地称为,意为岩石裸露的地方,“喀斯特地貌”因近代喀斯特研究发轫于该地而得名。

⑧磁悬浮地球: 磁悬浮地球仪运用磁悬浮的科学原理,将地球仪在无任何支撑的及触点电的空中自转,展示地球的真实状态,具有独特的视觉效果,给人以奇特新颖的感觉和精神享受。同时具有很高的欣赏和使用性,地球球面为标准的世界地图,七大洲,四大洋,世界各国疆域,版图及重要城市尽收眼底,寓教娱乐,融知识与趣味于一体感受高科技产品的神气魅力。

2.生命起源与进化展厅

①生命起源与进化:第一个过程是生命起源的化学进化过程(发生在地球形成后的十多亿年之间),即由非生命物质经一系列复杂的变化,逐步变成原始生命的过程。第二个过程是生物进化过程(发生在三十亿年以前原始生命产生到现在),即由原始生命继续演化,从简单到复杂,从低等到高等,从水生到陆生,经过漫长的过程直到发展为现今丰富多彩的生物界,并且继续发展变化的过程。

无机小分子物质→有机小分子物质 →有机高分子物质→多分子体系→原始生命 低等→高等 水生→陆生

雪球事件:新元古代是一个非常时代,大量的多细胞生物在此时产生,尤其是动物。人类的进化:早期猿人→晚期猿人→早期智人→晚期智人。进化主要表现下颌骨后退,脑容量上升。

②地质时代:可分为太古代、元古代、古生代、中生代和新生代5个时期。

太古代:在太古代的最初期,地球上尚无生命出现。生命元素,如C,H,O,N等在强烈的宇宙射线、雷电轰击下首先形成简单有机分子,后发展为复杂有机分子,再形成准生命的凝聚体,进而由凝聚体进化成原始生命。在距今约33亿年前,形成了地球上最古老的沉积岩,大气圈中已含有一定的二氧化碳,并出现了最早的、与生物活动相关的叠层石;到 31亿年前,地球上开始出现比较原始的藻类和细菌。在29亿年前,地球上出现了大量蓝绿藻形成叠层石,这表明这一时期地球上已经出现了游离氧以及行光合作用的原核生物。

藻类和细菌开始繁盛,到晚期无脊椎动物偶有发现。

元古代:早期火山活动仍相当频繁,生物界仍处于缓慢,低水平进化阶段,生物主要是叠层石以及其中分离得到的生物成因有机碳和球状、丝状蓝藻化石,由于这些光合生物的发展,大气圈已有更多的氧气。

在19亿年前,大陆地壳不断增厚,开始发育有盖层沉积,地球表面始终保持着一种十分有利于生命发展的环境。蓝藻和细菌继续发展,到距今13亿年前,已有最低等的真核生物—绿藻出现。在元古代晚期,盖层沉积继续增厚,火山活动大为减弱,并出现广泛的冰川,从此地球具有明显的分带性气候环境,为生物发展的多样性提供了自然条件,著名的后生动物群—澳大利亚埃迪卡拉动物群就出现这个时期。

古生代:约开始于5.7亿年前,结束于2.45亿年前。古生代共有6个纪(Period),一般分为早、晚古生代。早古生代包括寒武纪(Cambrian 5.4亿年前)、奥陶纪(Ordovician 5亿年前)和志留纪(Silurian 4.35亿年前),晚古生代包括泥盆纪(Devonian 4.05亿年前)、石炭纪(Carboniferous 3.55亿年前)和二叠纪(Permian 2.95亿年前)。

中生代:爬行动物(恐龙类、色龙类、翼龙类等)空前繁盛,故有爬行动物时代之称,或称恐龙时代。中生代时出现鸟类和哺乳类动物。海生无脊椎动物以菊石类繁盛为特征,故也称菊石时代。淡水无脊椎动物,随着陆地的不断扩大,河湖遍布的有利条件,双壳类、腹足类、叶肢介、介形虫等大量发展,这些门类对陆相地层的划分、对比非常重要。中生代植物,以真蕨类和裸子植物最繁盛。到中生代末,被子植物取代了裸子植物而居重要地位。中生代末发生著名的生物绝灭事件,特别是恐龙类绝灭,菊石类全部绝灭。有人认为生物绝灭事件与地外小天体撞击地球有关,但真正原因有待进一步研究确定。

新生代(距今6500万年~,Cenozoic Era)是地球历史上最新的一个地质时代,它从6400万年前开始一直持续到今天。随着恐龙的灭绝,中生代结束,新生代开始。新生代被分为三个纪:古近纪和新近纪和第四纪。总共包括七个世:古新世、始新世、渐新世、中新世、上新世、更新世和全新世。古近纪占了前三个世,古新世、始新世和渐新世。时间大约是6500万年前~2300万年前。新近纪占了中间两个世,中新世和上新世。时间大约是2300万年前~160万年前。第四纪占了最后两个世,更新世和全新世。时间大约是160万年前~今天。所以,第四纪也叫做人类纪或灵生纪。这一时期形成的地层称新生界。新生代以哺乳动物和被子植物的高度繁盛为特征,由于生物界逐渐呈现了现代的面貌,故名新生。

③化石:由于自然作用在地层中保存下来的地史时期生物的遗体、遗迹,以及生物体分解后的有机物残余等统称为化石。分为实体化石、遗迹化石、模铸化石、化学化石、分子化石等不同的保存类型。

④梁氏关岭鱼龙化石:地大逸夫博物馆的梁氏关岭鱼龙属于大型鱼龙,体长8米多,形似鱼雷。该鱼龙化石产于我国贵州关岭,生活于2.2亿年前的三叠纪晚期,其长度和完整程度在世界上位居第一。更为奇特的是,在这条鱼龙化石上还发现了它的皮肤化石,这在世界上极其罕见。

⑤黄果树安顺龙化石:黄果树安顺龙是海龙的一种,属

于海洋爬行动物。该化石长5米左右,体态修长,当年的游泳姿势一目了然。化石产于我国贵州关岭,生活在2亿年前的三叠纪晚期。从化石的长度和完整程度来说,该海龙化石在世界上位居第一。

⑥海百合化石:海百合化石因其外形似“百合花”而得名,是棘皮动物大家庭中的一员。化石产自贵州关岭,距今2.3亿年,特征清晰,保存完整,面积达15平方米,为世界之最。而且整个造型如花似画,令人叹为观止。

⑦黑龙江满州龙化石:黑龙江满州龙是一类大型的鸭嘴龙,体长10.50m,体高6.1m。该恐龙骨架产于黑龙江省嘉阴县,生活在6500万年前的白垩纪末期。因其含有50%的真化石,在世界恐龙化石中占有重要地位,构成了地大逸夫博物馆的显著标志。

⑧埃迪卡拉动物群:距今6亿~5.43 亿年期间广泛分布于世界各地的一个独特生物群,有关它们的分类位置争议颇多。通常保存于砂岩中,其中包括有真正的动物化石。

3.珠宝玉石展厅

①争奇斗艳的名贵宝石——五皇一后:在绚丽的天然宝石家族中,最为婀娜多姿、光彩夺目的是钻石、红宝石、蓝宝石、祖母绿、金绿宝石和珍珠,它们被誉为珠宝玉石界的“五皇一后”。在地大逸夫博物馆的珠宝玉石展厅,以“五皇一后”为代表的名贵宝石陈列,在国内处于一流水平,它们流光溢彩,争奇斗艳,令人流连忘返。

②岩石的基本概念及分类: 岩石是一定地质条件下,天然产出的具有一定结构、构造的矿物集合体。根据其成因可分为岩浆岩(火成岩)、沉积岩、和变质岩三大类。

1.岩浆岩

岩浆岩是岩浆在地下或地表冷凝后形成的岩石。岩浆岩占地壳总体积的89%。岩浆岩根据岩浆的产状可分为侵入岩和喷出岩(火山岩)。侵入岩是岩浆在地下冷凝后形成的;在地下较浅处的侵入岩为浅成岩,如花岗斑岩;在地下较深处(一般指3km以下)的侵入岩为深成岩,如橄榄岩。

岩浆岩根据其化学成分,特别是SiO2含量可将岩浆岩分为四类:超基性(SiO2<45%)、基性岩(SiO2:45%~53%)、中性岩(SiO2:53%~66%)、酸性岩(SiO2>66%)。组成岩浆岩的主要矿物有:石英、正长石、斜长石、黑云母、角闪石、辉石和橄榄石。

2.沉积岩

沉积岩是在地表或接近地表条件下,由母岩(岩浆岩、变质岩和早期形成的沉积岩)风化剥蚀的产物,经外力地质作用(搬运、沉积、淋滤等)以及成岩作用而形成的岩石。沉积岩占地表面积的75%,占地壳总体积的5%。

组成沉积岩的物质成分主要有:矿物、各类岩屑、化学沉淀物、生物碎屑、有机质、杂基和胶结物。

3.变质岩

变质岩是原岩(岩浆岩、沉积岩或早期形成的变质岩),在新的特定环境中,由于高温、高压和化学流体作用,在固态状态下使原岩发生物理化学变化而形成的岩石。变质岩占地壳总体积的6%,如大理岩、蛇纹岩均为变质岩。

4.三大类岩石之间的转化:三大类岩石具有不同的形成条件和环境,而岩石形成所需的环境条件又会随着地质作用的进行不断地发生变化。沉积岩和岩浆岩可以通过变质作用形成变质岩。在地表常温、常压条件下,岩浆岩和变质岩又可以通过母岩的风、剥蚀和一系列的沉积作用而形成沉积岩。变质岩和沉积岩当进入地下深处后,在高温高压条件下又会发生熔融形成岩浆,经结晶作用而变成岩浆岩。因此,在地球的岩石圈内,三大岩类处于不断演化过程之中。

③矿物:矿物是地质作用形成的单质或化合物,它具有一定的化学成分、内部结构和物理性质。

绝大多数矿物是固体,也有少数呈液态或气体状态,如石油、天然气等。固体矿物按其内部构造可分为结晶质矿物和非晶质矿物。结晶质矿物不仅具有一定的化学成分而且具有一定的结晶结构和一定的几何外形。如钻石。非晶质矿物没有一定的结晶构造和几何外形,如欧泊。自然界中绝大多数矿物是结晶质的。非晶质随着时间增长可自发转变为结晶质。

④ 辉锑矿晶簇;辉锑矿是一种金属硫化物矿物,是提炼锑的最重要的矿物原料,造型美观的辉锑矿晶簇可作观赏石。在地大逸夫博物馆的矿物岩石展厅,有一块产自我国江西德辉锑矿晶簇标本,造型优美,针状或柱状晶体长而完整,可谓神态天成,在世界上位居首位。

⑤孔雀石:孔雀石是一种含铜的碳酸盐矿物,翠绿色。大量产出时可炼铜,质纯色美者可作工艺雕刻品的材料及装饰品,粉末可作绿色颜料。在地大逸夫博物馆的地球奥秘展厅,有一块产于我国广东阳春石碌的珍贵的孔雀石标本,块大色美,造型奇特,令人惊叹不已,在我国排名第一。⑥变成砾岩: 在地大逸夫博物馆的地球奥秘展厅,有一块年龄达43亿年的岩石,叫变成砾岩,产自澳大利亚,是目前世界上最古老的岩石。它保存了地球形成初期极为宝贵的信息,见证了地球幼年时期惊天动地的变化,因而非常珍贵。

⑦硅化木:硅化了的植物次生木质部,原物质成分已被氧化硅交代,是最为常见的木化石类型。硅化木是真正的木化石,是几百万年或更早以前的树木被迅速埋葬地下后,被地下水中的SiO2(二氧化硅)交代而成的树木化石。它保留了树木的木质结构和纹理。颜色为土黄、淡黄、黄褐、红褐、灰白、灰黑等,抛光面可具玻璃光泽,不透明或微透明。

(七)实习感想

①收获

真切的看到了书本中提到的多种岩石;

通过立体模型的展示,大脑中对行星运动岩石转化等有更深刻的印象; 见到许多另人惊叹的东西,比如恐龙骨架,磁悬浮地球,水晶晶洞等。

②不足之处

去之前没有做足功课,很多的岩石看到了却记不清; 参观的时候光顾着自己照照片,没有仔细听讲解员解说。

下载中国地质大学 C语言实习报告 (1500字)word格式文档
下载中国地质大学 C语言实习报告 (1500字).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    C语言实习报告123

    C语言课程设计报告 第1章 目的任务 1.1实训目的 (1) 巩固C语言所学基本课程; (2) 提高C语言编程的综合应用能力; (3) 学会C语言程序的编译、调试方法。 1.2实训任务 (1) 掌握C语言中的......

    c语言实习报告

    目 录 一、前言„„„„„„„„„„„„„„„„„„„„„„„„„2 二、引言„„„„„„„„„„„„„„„„„„„„„„„„„2 2.1系统开发工具„„„„„„„„„......

    c语言实习报告

    西安科技大学 《C/C++语言程序设计》 课程设计报告 题 目 院、系(部) 专业及班级 姓 名 日 期 1设计目的 设计一个职工信息管理系统,使之能提供以下功能: 1)录入职工信息......

    C语言实习报告

    新疆昌吉学院 《C语言程序设计》 教学实习报告 部门:信息技术分院专业:计算机应用技术 班级:2010高职应用姓名: 指导教师: 《C语言程序设计》教学实习报告 2010高职应用班 一、......

    C语言实习报告

    C 语 言 课 程 实习报 告 所 在 院 系 :经济管理学院 班 级 学 号 :083081 学 序 号 : 20081003628 姓 名 :胡雅雯 程序 已存档 : 指 导 老 师 :__赵 曼____ 评 分 :____________ 二零一零年一月十......

    中国地质大学博物馆实习报告5篇范文

    中国地质大学博物馆 参观实习报告 指导教师:姓名:班级: 学号北方工业大学建筑工程学院工程地质 2011年6月 0 中国地质大学(北京)博物馆的历史悠久、馆藏标本系统齐全。现馆藏标......

    C语言上机实习报告

    一、实验目的 1.能够描述VC++6.0开发平台的使用过程,学会运行一个C程序的基本步骤,包括编辑、编译、链接和运行。 2.能够使用算术表达式和赋值表达式书写正确的语句。 3.能够使用......

    c语言上机实习报告

    苏州科技大学上机实习报告 程序设计语言(C语言) 实验一: Visual C++实验环境 一、实验任务 实验一 二、实验目的 1. 了解C程序结构,熟悉VC++ 6.0开发环境。 2. 熟悉在VC++ 6.......