当前位置:文档之家› 中国矿业大学 空间数据结构上机实验报告

中国矿业大学 空间数据结构上机实验报告

中国矿业大学 空间数据结构上机实验报告
中国矿业大学 空间数据结构上机实验报告

《空间数据结构基础》上机实验报告(2010级)

姓名

班级

学号

环境与测绘学院

1.顺序表的定义与应用(课本P85习题)

【实验目的】

熟练掌握顺序表的定义与应用,通过上机实践加深对顺序表概念的理解。

【实验内容】

设有两个整数类型的顺序表A(有m个元素)和B(有n个元素),其元素均从小到大排列。试编写一个函数,将这两个顺序表合并成一个顺序表C,要求C的元素也从小到大排列。【主要代码】

#include//定义在头文件“SeqList.h”中

#include

const int defaultSize=100;

template

class SeqList{

protected:

T *data;//存放数组

int maxSize;//最大可容纳表象的项数

int Last;//当前已存表象的项数

void reSize(int newSize);//改变data数组空间大小

public:

SeqList(int sz=defaultSize);

SeqList(SeqList& L);

~SeqList(){delete[]data;}

int Size() const{return maxSize;}

int Length()const{return Last+1;}

int Search(T& x)const;

int Locate(int i) const;

T getData(int i) const;

bool setData(int i,T& x)

{if(i>0&&i<=Last+1) data[i-1]=x;}

bool Insert(int i,T& x);

bool Remove(int i,T& x);

bool IsEmpty()

{return (Last==-1)?true:false;}

bool IsFull()

{return(Last==maxSize-1)?true:false;}

void input();

void output();

SeqList operator=(SeqList& L);

friend void rank(SeqList& L);

friend void hebing(SeqList& LA,SeqList& LB);

};

//构造函数,通过指定参数sz定义数组的长度

template

SeqList::SeqList(int sz){

if(sz>0){

maxSize=sz;

Last=-1;

data=new T[maxSize];

if(data==NULL)

{cerr<<"存储分配错误"<

}

}

//复制构造函数,用参数表中给出的已有顺序表初始化新建的顺序表template

SeqList::SeqList(SeqList& L){

maxSize=L.Size();

Last=L.Length()-1;

data=new T[maxSize];

if(data==NULL)

{cerr<<"存储分配错误"<

for(int i=1;i<=Last+1;i++)

data[i-1]=L.getData(i);

}

//用于取第i个表项的值

template

T SeqList::getData(int i) const{

if (i<1 || i>Last+1){cerr<<"存储分配错误"<

else return data[i-1];

}

//私有函数,扩充顺序表的存储空间大小,新数组的元素个数为newsize template

void SeqList::reSize (int newSize)

{

if (newSize<=0)

{cerr<<"无效的数组大小"<

if(newSize!=maxSize)

{T*newarray=new T[newarray];

if(newarray=NULL)

{cerr<<"存储分配错误"<

int n=Last+1;

T*srcptr=data;

T*destptr=newarray;

while(n--)*destptr++=*srcptr++;

delete []data;

data=newarray;maxSize=newSize;

}

}

//搜索函数

template

int SeqList::Search(T& x)const

{

for(int i=0;i<=Last;i++)

if(data[i]==x)return i+1;

return 0;

}

//定位函数

template

int SeqList::Locate(int i)const{

if(i>=1&&i<=Last+1)return i;

else return 0;

}

//插入函数

template

bool SeqList::Insert(int i,T& x){

if(Last==maxSize-1) return false;

if(i<0||i>Last+1) return false;

for(int j=Last;j>=i;j--)

data[j]=data[j-1];

data[i]=x;

Last++;

return true;

}

//删除函数

template

bool SeqList::Remove(int i,T&x){

if(Last==-1)return false;

if(i<1||i>Last+1)return false;

x=data[i-1];

for(int j=i;j<=Last;j++)

data[j-1]=data[j];

Last--;

return true;

}

//输入函数

template

void SeqList::input(){

cout<<"开始建立顺序表,请输入表中元素的最后位置:";

while(1){

cin>>Last;Last--;

if(Last<=maxSize-1) break;

cout<<"表元素个数有误,个数不能超过"<

}

for(int i=0;i<=Last;i++)

{cin>>data[i];}

}

//输出函数

template

void SeqList::output(){

cout<<"顺序表中当前元素的最后位置为:"<

for(int i=0;i<=Last;i++)

cout<

}

//重载操作,顺序表整体赋值

template

SeqList SeqList::operator=(SeqList& L){

maxSize=L.Size();

Last=L.Length()-1;

data=new T[maxSize];

if(data==NULL)

{cerr<<"存储分配错误"<

for(int i=1;i<=Last+1;i++)

data[i-1]=L.getData(i);

}

//合并函数,用于合并顺序表LA,LB。结果存于LA。重复元素只留一个。void hebing(SeqList& LA,SeqList& LB){

int n=LA.Length(),m=LB.Length(),k,x;

for(int i=1;i<=m;i++)

{

x=LB.getData(i);

k=LA.Search(x);

if(k==0)

{LA.Insert(n,x);n++;}

}

}

//对合并后的顺序表进行排序

void rank(SeqList& L)

{

int i,j,temp;

for(i=1;i

for(j=0;j

{

if(L.data[j]>L.data[j+1])

{

temp=L.data[j];

L.data[j]=L.data[j+1];

L.data[j+1]=temp;

}

}

}

void main()

{

SeqListLA;//定义顺序表类对象LA

SeqListLB;//定义顺序表类对象LB

LA.input();

LB.input();

hebing(LA,LB);

SeqListLC(LA);

rank(LC);

LC.output();

}

运行结果:

【实验体会】

通过本次试验,我熟练掌握顺序表的定义与应用。

此次实验通过对顺序表的类定义,进行两顺序表的合并,并在合并后删除相同的元素,然后对新数组进行从小到大的排序。因为顺序表是基于一维数组的储存,所以可以选择冒泡法进行排序。类代码中包含三个数据成员,多个作为外部接口的成员函数,完成顺序表的搜索,定位,插入和删除等操作。运用类模板,Seqlist的数据成员不使用固定的类型定义,而是用class说明的虚拟类型名T作为变量的类型,在定义Seqlist类的对象时,再用C++的基

本类型将对象的数据成员的类型实例化。这样做的好处是可以使用同一个类来定义不同数据类型的对象,提高代码的利用率。

本次试验,受益匪浅。

2.单链表的使用(书P86习题)

【实验简介】

学会用算法语言C++描述抽象数据类型,使用模板建立数据结构。能够使用链表类的定义和部分函数的使用。掌握其数据结构的构建方式并实现相关成员函数。

【实验内容】

设有一个表头指针为h的单链表。试设计一个算法,通过遍历一趟链表,将链表中所有结点的链接方向逆转。要求逆转结果链表的表头指针h指向原链表的最后一个结点。

【主要代码】

#include

using namespace std;

template

struct LinkNode{//链表结点类的定义

T data;//数据域

LinkNode*link;//链指针域

LinkNode(LinkNode*ptr=NULL){link=ptr;}//仅初始化指针成员的构造函数

LinkNode(const T &item,LinkNode*ptr=NULL)//初始化数据与指针成员的构造函数,为item分配一个结点的空间

{data=item;link=ptr;}//将数据成员初始化

};

template

class List{//链表类的定义,直接使用链表结点类的操作

protected:

LinkNode*first;//链表头指针

public:

List(){first=new LinkNode;}//链表类不带参数的构造函数

List(const T&x){first=new LinkNode(x);}//链表类带参数的构造函数

void InputRear(int endTag);//后插法建立单链表函数,以endTag为结束标识符

void output();//用于转置前和转置后链表的输出

void reverse();//转置函数

};

template

void List::InputRear(int endTag){//后插法建立单链表,保证插入的数的顺序与链表一致

LinkNode*newnode,*last;T val;//定义两个指针,一个指向头,一个指向结尾

cin>>val;last=first;

while(val!=endTag){

newnode=new LinkNode(val);//为插入的数分配内存空间

if(newnode==NULL){cerr<<"分配内存出错"<

last->link=newnode;last=newnode;//插入到表末端

cin>>val;//再输入下一个数

}

last->link=NULL;//表收尾,将最后一个数的link域为NULL

};

//下面输出函数是用于输出链表

template

void List::output(){

LinkNode* current=first->link;//初始化,current指向first的link域

while(current!=NULL){

cout<data<

current=current->link;

}

}

//下面为对链表实现转置的函数

template

void List:: reverse(){

//转置函数的实现

LinkNode*h=first,*p,*q;

p=h->link;

h->link=NULL;

while(p!=NULL)

{

q=p;

p=p->link;

q->link=h->link;

h->link=q;

}

}

void main(){

List L;//定义类的对象L

cout<<"请输入若干数,以0作为结尾"<

L.InputRear(0); //调用后插法建立单链表函数

cout<<"链表转置前为"<

L.output();//输出未转置的链表

L.reverse();//调用转置函数,实现转置

cout<<"链表转置后为"<

L.output(); //输出转置后的链表

}

【实验过程】

①首先通过结构体和类建立接点和链表。

②然后,分别对实现功能所需要的函数进行定义

③然后,对定义的各部分函数,进行具体分布实施。

运行如图:

【实验体会】

通过本次试验,我熟悉并掌握了链表的使用。链表适用于插入和删除频繁,存储空间需求不定的情形,有效的克服了顺序表的效率低和时间开销大缺点。带附加头结点的单链表,能够方便的进行链表的插入和删除等各类操作的实现。建立链表时使用后插法建立,使得链表的物理顺序和逻辑顺序一致,符合人们的使用习惯。

在函数的实现的过程中,采用自顶向下分解的方法。受益匪浅。

3.队列和栈的相关应用(书P134习题)

【实验简介】

学会用算法语言C++描述抽象数据类型,使用模板建立数据结构。能够对栈和队列的理解和相关函数的应用。

【实验内容】

设用链表表示一个双端队列,要求可以从表的两端插入,但限制只能在表的一端删,试编写基于此的队列的插入和删除算法,并给出队空的的条件。

【主要代码】

#include

using namespace std;

template

struct LinkNode{//链表结点类的定义

T data;//数据域

LinkNode*link;//链指针域

LinkNode(LinkNode*ptr=NULL){link=ptr;}//仅初始化指针成员的构造函数

LinkNode(const T &item,LinkNode*ptr=NULL)//初始化数据与指针成员的构造函数,为item分配一个结点的空间

{data=item;link=ptr;}//将数据成员初始化

};

template

class Deque{//Deque类

protected:

LinkNode*front,*rear;//定义两个指针,分别指向链表的两端

public:

Deque()//Deque的构造函数

{front=rear=new LinkNode;}

void Enqueue(T &x,int Dir);//插入函数,x为插入的数,tag为插入的方向void Dequeue();//删除函数

bool Isempty(){return (rear==front)?true:false;}//判断是否为空

void output();//输出函数

};

template

void Deque::Enqueue(T &x,int Dir){//插入函数的实现

if(Dir==0){//规定tag=0为从前端插入

LinkNode* newnode;

newnode=new LinkNode(x); //建立一个新结点

if(newnode==NULL){cerr<<"分配内存出错"<

newnode->link=front->link;//插入的实现

front->link=newnode;

if(rear->link!=NULL)//保证rear指针是指向最后的接点

{rear=rear->link;}

}

else{//从后端插入

LinkNode* newnode;

newnode=new LinkNode(x);

if(newnode==NULL){cerr<<"分配内存出错"<

newnode->link=rear->link;

rear->link=newnode;

rear=rear->link;//在后端插入

}

}

template

void Deque::Dequeue(){//删除函数的实现,从后端删除

LinkNode* p;//声明一个p指针

p=front;//从front开始历遍到rear前一个

if(Isempty()==true)//判断链表是否为空

{cout<<"队列为空,无法删除"<

else

while(p->link!=rear){p=p->link;}//p指针历遍到rear前一个接点

rear=p;

p=p->link;

delete p;//删除最后一个接点

rear->link=NULL;//将rear的link域为NULL

}

template

void Deque::output(){//输出函数的实现

LinkNode* current;

current=front->link;

while(current!=NULL){

cout<data<

current=current->link;

}

cout<

}

void main(){

Deque L;//声明一个对象

int temp;//插入的数

int Dir;//插入的方向

int count=1;//计数

while(true){

cout<<"请输入第"<

cin>>temp;

cout<<"请在输入插入的方向,0代表从前插入,1代表从后面插入"<

cin>>Dir;

if(temp==0000)//判断是否结束

break;

else

L.Enqueue(temp,Dir);//插入

count++;

}

cout<<"插入后链表的数为"<

L.output();//调用输出函数

L.Dequeue();//调用删除函数

cout<<"从后端删除后,链表中的数为"<

L.output();//输出

}

【实验过程】

①首先定义结接点结构体和队列类

②插入函数,定义两个指针,并用Dir确定插入的方向,实现从不同方向的输入。

③删除函数,仅定义为在队列的末端删除。

④定于输出函数,实现函数输出。

运行如图:

【实验体会】

通过本次试验,掌握了双端队列使用方法,并能按照要求,从表的两端插入,在表的一端删除。此次试验,基于单链表基础上完成的,难度不大。

通过本次试验,熟悉了队列的使用方法,同时巩固了单链表的使用。

数据结构实验报告

2013-2014-1学期 《数据结构》实验报告 专业:信息管理与信息系统 班级: 姓名: 学号: 完成日期:2013.12.01

实验名称:二叉树的创建与遍历 一、实验目的 建立一棵二叉树,并对其进行遍历(先序、中序、后序),打印输出遍历结果。 二、实验要求 1、建立一棵用二叉链表方式存储的二叉树,并对其进行遍历(先序、中序和后序),打印输出遍历结果。 2、从键盘接受扩展先序序列,以二叉链表作为存储结构,建立二叉树,并将遍历结果打印输出。 三、实验步骤(包括所选择的二叉树的创建算法和常用三种遍 历算法的说明、完整的程序代码及必要的注释。) 1、用二叉链表创建二叉树: ①输入根结点值;②若左子树不空,则输入左子树,否则输入一个结束符‘#’;③若右子树不空,则输入右子树,否则输入一个结束符‘#’。 2、遍历该二叉树 (1) 先序遍历(DLR) 若二叉树为空,则结束返回。否则:①访问根结点;②先序遍历左子树;③先序遍历右子树。 (2) 中序遍历(LDR) 若二叉树为空,则结束返回。否则:①中序遍历左子树;②访问根结点;③中序遍历右子树。 (3) 后序遍历(LRD) 若二叉树为空,则结束返回。否则:①后序遍历

左子树;②后序遍历右子树;③访问根结点。 3、程序代码: #include #include #include #define NULL 0 typedef struct BiTNode { char data; struct BiTNode *Lchild,*Rchild; }BiTNode,*BiTree; BiTree Create(BiTree T) { char ch; ch=getchar(); if(ch=='#') T=NULL; else { if(!(T=(BiTNode *)malloc(sizeof(BiTNode)))) printf("Error!"); T->data=ch; T->Lchild=Create(T->Lchild); T->Rchild=Create(T->Rchild); } return T; } void Preorder(BiTree T) { if(T) { printf("%c",T->data); Preorder(T->Lchild); Preorder(T->Rchild); } } void zhongxu(BiTree T) { if(T) { zhongxu(T->Lchild); printf("%c",T->data);

数据结构实验报告格式

《数据结构课程实验》大纲 一、《数据结构课程实验》的地位与作用 “数据结构”是计算机专业一门重要的专业技术基础课程,是计算机专业的一门核心的关键性课程。本课程较系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术,并做了性能分析和比较,内容非常丰富。本课程的学习将为后续课程的学习以及软件设计水平的提高打下良好的基础。 由于以下原因,使得掌握这门课程具有较大的难度: (1)内容丰富,学习量大,给学习带来困难; (2)贯穿全书的动态链表存储结构和递归技术是学习中的重点也是难点; (3)所用到的技术多,而在此之前的各门课程中所介绍的专业性知识又不多,因而加大了学习难度; (4)隐含在各部分的技术和方法丰富,也是学习的重点和难点。 根据《数据结构课程》课程本身的技术特性,设置《数据结构课程实验》实践环节十分重要。通过实验实践内容的训练,突出构造性思维训练的特征, 目的是提高学生组织数据及编写大型程序的能力。实验学时为18。 二、《数据结构课程实验》的目的和要求 不少学生在解答习题尤其是算法设计题时,觉得无从下手,做起来特别费劲。实验中的内容和教科书的内容是密切相关的,解决题目要求所需的各种技术大多可从教科书中找到,只不过其出现的形式呈多样化,因此需要仔细体会,在反复实践的过程中才能掌握。 为了帮助学生更好地学习本课程,理解和掌握算法设计所需的技术,为整个专业学习打好基础,要求运用所学知识,上机解决一些典型问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握所用到的一些技术。数据结构中稍微复杂一些的算法设计中可能同时要用到多种技术和方法,如算法设计的构思方法,动态链表,算法的编码,递归技术,与特定问题相关的技术等,要求重点掌握线性链表、二叉树和树、图结构、数组结构相关算法的设计。在掌握基本算法的基础上,掌握分析、解决实际问题的能力。 三、《数据结构课程实验》内容 课程实验共18学时,要求完成以下六个题目: 实习一约瑟夫环问题(2学时)

结构力学求解器求解示例

结构力学(二)上机试验结构力学求解器的使用 上机报告 班级: 姓名: 学号: 日期:

实验三、计算结构的影响线 1.实验任务 (1)作以下图示梁中截面D 的内力D M 、QD F 的影响线。 观览器:D M 的影响线 观览器:QD F 的影响线 D |F=1 3 365

编辑器: 结点,1,0,0 结点,2,3,0 结点,3,6,0 结点,4,12,0 结点,6,6,1 结点,5,17,1 单元,1,2,1,1,0,1,1,1 单元,2,3,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,0 单元,3,6,1,1,0,1,1,0 单元,6,5,1,1,0,1,1,0 结点支承,1,3,0,0,0 结点支承,4,1,0,0 结点支承,5,3,0,0,0 影响线参数,-2,1,1,3 影响线参数,-2,1,1,2 End

作以下图示梁中截面D 的内力D M 、QD F 的影响线。 观览器: D M 的影响线 QD F 的影响线

编辑器: 结点,1,0,0 结点,2,2,0 结点,3,4,0 结点,4,6,0 结点,5,8,0 结点,6,0,1 结点,7,8,1 结点,8,2,1 结点,9,4,1 结点,10,6,1 单元,1,2,1,1,0,1,1,1 单元,2,3,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,1 单元,4,5,1,1,1,1,1,0 单元,1,6,1,1,1,1,1,0 单元,6,8,1,1,0,1,1,0 单元,8,9,1,1,0,1,1,0 单元,9,10,1,1,0,1,1,0 单元,10,7,1,1,0,1,1,0 单元,7,5,1,1,0,1,1,0

实验空间数据库管理及属性编辑实验报告

实验报告 一、实验名称 二、实验目的 三、实验准备 四、实验内容及步骤 五、实验后思考题 班级:资工(基)10901 姓名:魏文风 序号:28 实验二、空间数据库管理及属性编辑 一、实验目的 1.利用ArcCatalog管理地理空间数据库,理解Personal Geodatabse空间数据库模型的有关概念。 2.掌握在ArcMap中编辑属性数据的基本操作。 3.掌握根据GPS数据文件生成矢量图层的方法和过程。 4.理解图层属性表间的连接(Join)或关联(Link)关系。 二、实验准备 预备知识: ArcCatalog 用于组织和管理所有GIS 数据。它包含一组工具用于浏览和查找地理数据、记录和浏览元数据、快速显示数据集及为地理数据定义数据结构。 ArcCatalog 应用模块帮助你组织和管理你所有的GIS 信息,比如地图,数据集,模型,元数据,服务等。它包括了下面的工具: ●浏览和查找地理信息。 ●记录、查看和管理元数据。 ●创建、编辑图层和数据库 ●导入和导出geodatabase 结构和设计。 ●在局域网和广域网上搜索和查找的GIS 数据。

管理ArcGIS Server。 ArcGIS 具有表达要素、栅格等空间信息的高级地理数据模型,ArcGIS支持基于文件和DBMS(数据库管理系统)的两种数据模型。基于文件的数据模型包括Coverage、Shape文件、Grids、影像、不规则三角网(TIN)等GIS数据集。 Geodatabase 数据模型实现矢量数据和栅格数据的一体化存储,有两种格式,一种是基于Access文件的格式-称为Personal Geodatabase,另一种是基于Oracle或SQL Server等RDBMS关系数据库管理系统的数据模型。 GeoDatabase是geographic database 的简写,Geodatabase 是一种采用标准关系数据库技术来表现地理信息的数据模型。Geodatabase是ArcGIS软件中最主要的数据库模型。 Geodatabase 支持在标准的数据库管理系统(DBMS)表中存储和管理地理信息。 在Geodatabase数据库模型中,可以将图形数据和属性数据同时存储在一个数据表中,每一个图层对应这样一个数据表。 Geodatabase可以表达复杂的地理要素(如,河流网络、电线杆等)。比如:水系可以同时表示线状和面状的水系。 基本概念:要素数据集、要素类 数据准备: 数据文件:National.mdb ,GPS.txt (GPS野外采集数据)。 软件准备: ArcGIS Desktop 9.x ---ArcCatalog 三、实验内容及步骤 第1步启动ArcCatalog打开一个地理数据库 当ArcCatalog打开后,点击, 按钮(连接到文件夹). 建立到包含练习数据的连接(比如 “E:\ARCGIS\EXEC2”), 在ArcCatalog窗口左边的目录树中, 点击上面创建的文件夹的连接图标旁的(+)号,双击个人空间数据库-National.mdb。打开它。. 在National.mdb中包含有2个要素数据集、1个关系类和1个属性表第2步预览地理数据库中的要素类 在ArcCatalog窗口右边的数据显示区内,点击“预览”选项页切换到“预览”视图界面。在目录树中,双击数据集要素集-“WorldContainer”,点击要素类-“Countries94”激活它。 在此窗口的下方,“预览”下拉列表中,选择“表格”。现在,你可以看到Countries94的属性表。查看它的属性字段信息。 花几分钟,以同样的方法查看一下National.mdb地理数据库中的其它数据。

数据结构实验报告

数据结构实验报告 一.题目要求 1)编程实现二叉排序树,包括生成、插入,删除; 2)对二叉排序树进行先根、中根、和后根非递归遍历; 3)每次对树的修改操作和遍历操作的显示结果都需要在屏幕上用树的形状表示出来。 4)分别用二叉排序树和数组去存储一个班(50人以上)的成员信息(至少包括学号、姓名、成绩3项),对比查找效率,并说明在什么情况下二叉排序树效率高,为什么? 二.解决方案 对于前三个题目要求,我们用一个程序实现代码如下 #include #include #include #include "Stack.h"//栈的头文件,没有用上 typedefintElemType; //数据类型 typedefint Status; //返回值类型 //定义二叉树结构 typedefstructBiTNode{ ElemType data; //数据域 structBiTNode *lChild, *rChild;//左右子树域 }BiTNode, *BiTree; intInsertBST(BiTree&T,int key){//插入二叉树函数 if(T==NULL) { T = (BiTree)malloc(sizeof(BiTNode)); T->data=key; T->lChild=T->rChild=NULL; return 1; } else if(keydata){ InsertBST(T->lChild,key); } else if(key>T->data){ InsertBST(T->rChild,key); } else return 0; } BiTreeCreateBST(int a[],int n){//创建二叉树函数 BiTreebst=NULL; inti=0; while(i

结构力学求解器学习报告

结构力学求解器学习报告 一、实习目的 结构力学上机实习使训练学生使用计算机进行结构计算的重要环节。通过实习,学生可以掌握如何使用计算机程序进行杆系结构的分析计算,进一步掌握结构力学课程的基本理论和基本概念。在此基础上,通过阅读有关程序设计框图,编写、调试结构力学程序,学生进一步提高运用计算机进行计算的能力,为后续课程的学习、毕业设计及今后工作中使用计算机进行计算打下良好的基础。 二、实习时间 大三上学期第19周星期一至星期五。 三、实习内容 本次实习以自学为主,学习如何使用结构力学求解器进行结构力学问题的求解,包括:二维平面结构(体系)的几何组成、静定、超静定、位移、内力、影响线、自由振动、弹性稳定、极限荷载等。对所有这些问题,求解器全部采用精确算法给出精确解答。 四、心得体会 第一天上机时,张老师对结构力学求解器的使用方法进行了简单的介绍,然后就是学生自己自学的时间了。每个学生都有自己对应的题目要完成,在完成这些题目的同时,我也逐渐对结构力学求解器的运用更加自如。 从刚开始的生疏到最后的熟练运用,我遇到了不少问题:①第一次使用在有些问题上拿不定注意,例如,在材料性质那一栏,我不知

道是EA和EI的取值②第一次接触这个软件,在使用过程中不知道该如何下手,题目条件的输入顺序也很模糊。③经常会忘记添加荷载的单位,导致计算结果出现问题。④对于有些命令不能很明确的知道其用法,致使在使用时经常出错。在面对这些问题时,我一般都会向同学和老师寻求帮助,直到最终将问题解决。 通过这几天的上机实习,不仅让我进一步掌握了结构力学的知识,同时,还使我对结构力学求解器有了更深入的了解: 1. 结构力学求解器首先是一个计算求解的强有效的工具。对于任意平面的结构,只要将参数输进求解器,就可以得到变形图和内力图,甚至还可以求得临界荷载等问题。 2.即便是结构力学的初学者,只要会用求解器,也可以用求解器来方便地求解许多结构的各类问题,以增强对结构受力特性的直观感受和切实体验。 3.书本中的方法并非所有类型的问题都可以解决,例如,不规则分布的荷载以及超静定结构用传统方法比较困难,但用求解器就较为简单。而且,用求解器求解问题时可以不忽略轴向变形等书本中忽略的条件,与实际更加相符。 4.求解器可以用静态图形显示结构简图、变形图、内力图,还可以用动画显示机构模态、振型等动态图形。利用复制到剪贴板的功能,可以将结构简图、变形图、内力图以点阵图或矢量图的形式粘贴到word文档中,并可以方便地进行再编辑。

数据库原理实验报告(2)

南京晓庄学院 《数据库原理与应用》 课程实验报告 实验二数据库的创建、管理、备份及还原实验 所在院(系):数学与信息技术学院 班级:11软工转本2 学号: 1130708 11130710 姓名:马琦乔凌杰

1.实验目的 (1)掌握分别使用SQL Server Management Studio图形界面和Transact-SQL语句创建和修改 数据库的基本方法; (2)学习使用SQL Server查询分析窗口接收Transact-SQL语句和进行结果分析。 (3)了解SQL Server的数据库备份和恢复机制,掌握SQL Server中数据库备份与还原的方 法。 2.实验要求 (1)使用SQL Server Management Studio创建“教学管理”数据库。 (2)使用SQL Server Management Studio修改和删除“教学管理”数据库。 (3)使用Transact-SQL语句创建“教学管理”数据库。 (4)使用Transact-SQL语句修改和删除“教学管理”数据库。 (5)使用SQL Server Management Studio创建“备份设备”;使用SQL Server Management Studio对数据库“教学管理”进行备份和还原。 (6)SQL Server 2005数据库文件的分离与附加。 (7)按要求完成实验报告 3.实验步骤、结果和总结实验步骤/结果 (1) 总结使用SQL Server Management Studio创建、修改和册除“TM”(教学管理)数据库的过程。 新建数据库如下图所示: 进入sql server management studio 主界面,选择数据库右击新建数据库。 如何修改数据库 进入sql server management studio 主界面,选择数据库右击属性即可看到数据库信息,可更改数据库基本信息。

数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 1.实验目的 (1)掌握使用Visual C++ 6.0上机调试程序的基本方法; (2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)认真阅读和掌握本章相关内容的程序。 (3)上机运行程序。 (4)保存和打印出程序的运行结果,并结合程序进行分析。 (5)按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果 实验代码: 1)头文件模块 #include iostream.h>//头文件 #include//库头文件-----动态分配内存空间 typedef int elemtype;//定义数据域的类型 typedef struct linknode//定义结点类型 { elemtype data;//定义数据域 struct linknode *next;//定义结点指针 }nodetype; 2)创建单链表

nodetype *create()//建立单链表,由用户输入各结点data域之值,//以0表示输入结束 { elemtype d;//定义数据元素d nodetype *h=NULL,*s,*t;//定义结点指针 int i=1; cout<<"建立一个单链表"<> d; if(d==0) break;//以0表示输入结束 if(i==1)//建立第一个结点 { h=(nodetype*)malloc(sizeof(nodetype));//表示指针h h->data=d;h->next=NULL;t=h;//h是头指针 } else//建立其余结点 { s=(nodetype*) malloc(sizeof(nodetype)); s->data=d;s->next=NULL;t->next=s; t=s;//t始终指向生成的单链表的最后一个节点

结构力学实验报告模板1

结构力学实验报告 班级12土木2班 姓名 学号

实验报告一 实验名称 在求解器中输入平面结构体系 一实验目的 1、了解如何在求解器中输入结构体系 2、学习并掌握计算模型的交互式输入方法; 3、建立任意体系的计算模型并做几何组成分析; 4、计算平面静定结构的内力。 二实验仪器 计算机,软件:结构力学求解器 三实验步骤 图2-4-3 是刚结点的连接示例,其中图2-4-3a 中定义了一个虚拟刚结点和杆端的连接码;各个杆端与虚拟刚结点连接后成为图2-4-3b 的形式,去除虚拟刚结点后的效果为图2-4-3c 所示的刚结点;求解器中显示的是最后的图2-4-3c。图2-4-4 是组合结点的连接示例,同理,无需重复。铰结点是最常见的结点之一,其连接示例在图2-4-5 中给出。这里,共有四种连接方式,都等效于图2-4-5e 中的铰结点,通常采用图2-4-5a 所示方式即可。值得一提的是,如果将三个杆件固定住,图2-4-5b~d 中的虚拟刚结点也随之被固定不动,而图2-4-5a 中的虚拟刚结点仍然存在一个转动自由度,可以绕结点自由转动。这是一种结点转动机构,在求解器中会自动将其排除不计①。结点机构实际上也潜存于经典的结构力学之中,如将一个集中力矩加在铰结点上,便可以理解为加在了结点机构上(犹如加在可自由转动的销钉上),是无意义的。 综上所述,求解器中单元对话框中的“连接方式”是指各杆端与虚拟刚结点的连接方式,而不是杆件之间的连接方式。这样,各杆件通过虚拟刚结点这一中介再和其他杆件间接地连接。这种处理的好处是可以避免结点的重复编码(如本书中矩阵位移法中所介绍的),同时可以方便地构造各种

空间数据库报告

武汉理工大学 《空间数据库》实验报告 班级:地理1502班姓名:xx 学号:xxx 第1章需求分析 1.1需求概述 图书管理系统主要是适用于学校的,通过oracle数据库进行逻辑处理,实现对图书、读者(学生)、出版社信息的增删改查,核心功能是实现借书和还书操作,亮点是增添了学生可以挂失和修改密码的功能。下面设计的图书管理信息系统,这些功能均已实现。 1.2功能需求 图1.1

第2章概念设计 2.1 实体与属性 根据需求建立五个实体(admin,book,publisher,reader,booktype),并赋予其各自的属性,如图2.1 图2.1 2.2 初步E-R图 将各个局部E-R图合并,消除属性冲突、命名冲突、结构冲突,然后再用分析的方法或者规范化理论来消除冗余,生成基本E-R图,流程如图2.2,合并后的初步E-R图如图2.3所示。 图2.2

图2.3 第3章逻辑设计 3.1 逻辑结构设计 逻辑结构设计的流程图如图3.1所示,主要包括三个部分:1、将基本E-R图根据七条转化原则转化为一般数据模型;2、根据所选用的DBMS(Oracle)的功能及限制,将数据模型转换为Oracle 规定的模型。 图3.1

3.2 优化后的模型 管理员(职工号,姓名,性别,年龄,密码) 借阅者(卡号,姓名,年龄,性别,密码,专业,学院,最大借阅量)书籍(索书号,书名,作者,出版社号,类型号,价格,是否被借阅)出版社(出版社号,出版社名,电话,地址) 类型(类型号,类型名,所在楼层) 借阅(借阅号,借阅时间,归还时间,是否过期,卡号,索书号) 第4章物理设计 4.1 设计数据表 管理员表(admin) 图书表(book) 图书类型表(bookType)

数据结构实验报告模板

2009级数据结构实验报告 实验名称:约瑟夫问题 学生姓名:李凯 班级:21班 班内序号:06 学号:09210609 日期:2010年11月5日 1.实验要求 1)功能描述:有n个人围城一个圆圈,给任意一个正整数m,从第一个人开始依次报数,数到m时则第m个人出列,重复进行,直到所有人均出列为止。请输出n个人的出列顺序。 2)输入描述:从源文件中读取。 输出描述:依次从显示屏上输出出列顺序。 2. 程序分析 1)存储结构的选择 单循环链表 2)链表的ADT定义 ADT List{ 数据对象:D={a i|a i∈ElemSet,i=1,2,3,…n,n≧0} 数据关系:R={< a i-1, a i>| a i-1 ,a i∈D,i=1,2,3,4….,n} 基本操作: ListInit(&L);//构造一个空的单链表表L ListEmpty(L); //判断单链表L是否是空表,若是,则返回1,否则返回0. ListLength(L); //求单链表L的长度 GetElem(L,i);//返回链表L中第i个数据元素的值; ListSort(LinkList&List) //单链表排序 ListClear(&L); //将单链表L中的所有元素删除,使单链表变为空表 ListDestroy(&L);//将单链表销毁 }ADT List 其他函数: 主函数; 结点类; 约瑟夫函数 2.1 存储结构

[内容要求] 1、存储结构:顺序表、单链表或其他存储结构,需要画示意图,可参考书上P59 页图2-9 2.2 关键算法分析 结点类: template class CirList;//声明单链表类 template class ListNode{//结点类定义; friend class CirList;//声明链表类LinkList为友元类; Type data;//结点的数据域; ListNode*next;//结点的指针域; public: ListNode():next(NULL){}//默认构造函数; ListNode(const Type &e):data(e),next(NULL){}//构造函数 Type & GetNodeData(){return data;}//返回结点的数据值; ListNode*GetNodePtr(){return next;}//返回结点的指针域的值; void SetNodeData(Type&e){data=e;}//设置结点的数据值; void SetNodePtr(ListNode*ptr){next=ptr;} //设置结点的指针值; }; 单循环链表类: templateclass CirList { ListNode*head;//循环链表头指针 public: CirList(){head=new ListNode();head->next=head;}//构造函数,建立带头节点的空循环链表 ~CirList(){CirListClear();delete head;}//析构函数,删除循环链表 void Clear();//将线性链表置为空表 void AddElem(Type &e);//添加元素 ListNode *GetElem(int i)const;//返回单链表第i个结点的地址 void CirListClear();//将循环链表置为空表 int Length()const;//求线性链表的长度 ListNode*ListNextElem(ListNode*p=NULL);//返回循环链表p指针指向节点的直接后继,若不输入参数,则返回头指针 ListNode*CirListRemove(ListNode*p);//在循环链表中删除p指针指向节点的直接后继,且将其地址通过函数值返回 CirList&operator=(CirList&List);//重载赋

结构力学上机考试答案

中国矿业大学力学与建筑工程学院 2013~2014学年度第二学期 《结构力学A1》上机实验报告 学号 班级 姓名 2014年5月26日

一、单跨超静定梁计算(50分) 1. 计算并绘制下面单跨超静定梁的弯矩图和剪力图。(20分) q =12N/m q =8N/m q =8N/m q=?8m 1 2 3 2. 如果按照梁跨中弯矩相等的原则,将梁上的荷载换算成均布荷载,则均布荷载应为多少?(10分) 2m 1m 1m 1m 1m 1m q=? 8m 3. 如果按照梁端部弯矩相等的原则,将梁上的荷载换算成均布荷载,则均布荷载应为多少?(10分) 4. 如果按照梁端部剪力相等的原则,将梁上的荷载换算成均布荷载,则均布荷载应为多少?(10分) 二、超静定刚架计算(50分) 1.刚架各杆EI 如图所示,计算刚架的弯矩图,剪力图和轴力图。(30分)

2. 若EI=106 (Nm 2 ),计算刚架一层梁和二层梁的水平位移。(20分)

弯矩图: y x 12345678 ( 1 )( 2 )( 3 )( 4 )( 5 )( 6 )( 7 ) -40.96 -16.29 3.04 19.04 25.04 19.04 3.04 -16.29 -40.96 剪力图: y x 12345678 ( 1 )( 2 )( 3 )( 4 )( 5 )( 6 )( 7 ) 26.00 22.00 18.00 12.00 -12.00 -18.00 -22.00 -26.00

解:跨中弯矩M1=25.04Nm(下部受拉)均布荷载q作用在梁上时,跨中弯矩为 M2=1/24*q*(l^2)(下部受拉) ∵M1=M2, ∴q=9.39N/m 如图所示: y x 12 ( 1 ) -50.08-50.08

电子科技大学-空间数据库上机实验报告

一、建立Geodatabase数据文件 1、新建一个Geodatabase: 如图1.1所示:在ArcCatalog环境下新建一个名为“Personal Geodatabase”的数据文件。 1.1 建好的Geodatabase 数据文件 2、新建要素集: 在Personal Geodatabase下,新建一个shanghai要素集,定义坐标系统为高斯投影(如图 1.2所示),单位为米,精度为1。

1.2 创建要素数据集 3、新建要素类: 在shanghai要素集中,新建一个parcel和pole要素类,parcle的Shape字段类型为polygon,新增字段parcel_name(文本型)、owner_name (文本型);pole的Shape 字段类型为点类型,新增三个字段:类型(短整型)、高度(短整型)和管理部门(文本型)。 1.3 创建parcel要素类 1.4 创建pole要素类 4、新建表:

如图1.5所示,在Personal Geodatabase下,新建一个owner表,新增字段name (文本型)、age (短整型) 1.5 创建owner表 二、创建子类 1、新建子类: 单击鼠标右键,打开pole要素类的属性表,选择子类选项卡,根据type字段创建pole类型子类,包括Wood、Steel和Cement。 图2.1 pole要素类新建子类 2、对子类赋值: 如图2.2所示,在ArcMap环境下通过列表框选择对要素子类进行赋值。

图2.2 pole要素类赋值 三、按子类定义pole要素类的域: 1、打开Geodatabase的属性表,定义三个域:Wood_pole高度域(短整型),20—30ft;Steel_pole的高度域(短整型),30—50ft;pole的管理部门域(文本),市管,区县管。 图3.1 按子类定义pole要素类的域

数据结构实验报告

《用哈夫曼编码实现文件压缩》 实验报告 课程名称数据结构 实验学期2015至2016学年第一学期 学生所在系部计算机学院 年级2014专业班级物联B142班 学生姓名杨文铎学号201407054201 任课教师白磊 实验成绩

用哈夫曼编码实现文件压缩 1、了解文件的概念。 2、掌握线性表的插入、删除的算法。 3、掌握Huffman树的概念及构造方法。 4、掌握二叉树的存储结构及遍历算法。 5、利用Haffman树及Haffman编码,掌握实现文件压缩的一般原理。 微型计算机、Windows系列操作系统、Visual C++6.0软件 根据ascii码文件中各ascii字符出现的频率情况创建Haffman树,再将各字符对应的哈夫曼编码写入文件中,实现文件压缩。 本次实验采用将字符用长度尽可能短的二进制数位表示的方法,即对于文件中出现的字符,无须全部都用S为的ascii码进行存储,根据他们在文件中出现的频率不同,我们利用Haffman算法使每个字符能以最短的二进制数字符进行存储,已达到节省存储空间,压缩文件的目的,解决了压缩需要采用的算法,程序的思路已然清晰: 1、统计需压缩文件中的每个字符出现的频率 2、将每个字符的出现频率作为叶子节点构建Haffman树,然后将树中结点引向 其左孩子的分支标“0”,引向其右孩子的分支标“1”;每个字符的编码 即为从根到每个叶子的路径上得到的0、1序列,这样便完成了Haffman 编码,将每个字符用最短的二进制字符表示。 3、打开需压缩文件,再将需压缩文件中的每个ascii码对应的haffman编码按bit 单位输出。 4、文件压缩结束。 (1)构造haffman树的方法一haffman算法 构造haffman树步骤: I.根据给定的n个权值{w1,w2,w3…….wn},构造n棵只有根结点的二叉 树,令起权值为wj。 II.在森林中选取两棵根结点权值最小的树作左右子树,构造一棵新的二叉树,置新二叉树根结点权值为其左右子树根结点权值之和。 III.在森林中删除这两棵树,同时将得到的二叉树加入森林中。 IV.重复上述两步,知道只含一棵树为止,这棵树即哈夫曼树。 对于haffman的创建算法,有以下几点说明: a)这里的Haffman树采用的是基于数组的带左右儿子结点及父结点下标作为

结构力学 上机实验报告

实验报告一 平面刚架内力计算程序APF 实验目的:(1)分析构件刚度与外界温度对结构位移的影响,如各杆刚度改变对内力分布的影响、温度因数对内力分布的影响。 (2)观察并分析刚架在静力荷载及温度作用下的内力和变形规律,包括刚度的变化,结构形式的改变,荷载的作用位置变化等因素对内力及变形的影响。对结构静力分析的矩阵位移法的计算机应用有直观的了解 (3)掌握杆系结构计算的《结构力学求解器》的使用方法。通过实验加深对静定、超静定结构特性的认识。 实验设计1: 计算图示刚架当梁柱刚度12I I 分别为15、11、15、1 10时结构的内力和位移,由此分析当刚架在水平荷 载作用下横梁的水平位移与刚架梁柱 比(1 2I I )之间的关系。(计算时忽略轴向变形)。 数据文件: (1)变量定义,EI1=1,EI2=0.2(1,5,10) 结点,1,0,0 结点,2,0,4 结点,3,6,4 结点,4,6,0 单元,1,2,1,1,1,1,1,1 单元,2,3,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,1 结点支承,1,6,0,0,0,0 结点支承,4,6,0,0,0,0 结点荷载,2,1,100,0 单元材料性质,1,1,-1,EI1,0,0,-1 单元材料性质,2,2,-1,EI2,0,0,-1 单元材料性质,3,3,-1,EI1,0,0,-1 (2)变量定义,EI1=5(1,0.2,0.1),EI2=1 结点,1,0,0 结点,2,0,4 结点,3,6,4 结点,4,6,0 单元,1,2,1,1,1,1,1,1 单元,2,3,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,1 结点支承,1,6,0,0,0,0 结点支承,4,6,0,0,0,0 结点荷载,2,1,100,0 单元材料性质,1,1,-1,EI1,0,0,-1 单元材料性质,2,2,-1,EI2,0,0,-1 单元材料性质,3,3,-1,EI1,0,0,-1 主要计算结果: 位移:

数据结构实验报告及心得体会

2011~2012第一学期数据结构实验报告 班级:信管一班 学号:201051018 姓名:史孟晨

实验报告题目及要求 一、实验题目 设某班级有M(6)名学生,本学期共开设N(3)门课程,要求实现并修改如下程序(算法)。 1. 输入学生的学号、姓名和 N 门课程的成绩(输入提示和输出显示使用汉字系统), 输出实验结果。(15分) 2. 计算每个学生本学期 N 门课程的总分,输出总分和N门课程成绩排在前 3 名学 生的学号、姓名和成绩。 3. 按学生总分和 N 门课程成绩关键字升序排列名次,总分相同者同名次。 二、实验要求 1.修改算法。将奇偶排序算法升序改为降序。(15分) 2.用选择排序、冒泡排序、插入排序分别替换奇偶排序算法,并将升序算法修改为降序算法;。(45分)) 3.编译、链接以上算法,按要求写出实验报告(25)。 4. 修改后算法的所有语句必须加下划线,没做修改语句保持按原样不动。 5.用A4纸打印输出实验报告。 三、实验报告说明 实验数据可自定义,每种排序算法数据要求均不重复。 (1) 实验题目:《N门课程学生成绩名次排序算法实现》; (2) 实验目的:掌握各种排序算法的基本思想、实验方法和验证算法的准确性; (3) 实验要求:对算法进行上机编译、链接、运行; (4) 实验环境(Windows XP-sp3,Visual c++); (5) 实验算法(给出四种排序算法修改后的全部清单); (6) 实验结果(四种排序算法模拟运行后的实验结果); (7) 实验体会(文字说明本实验成功或不足之处)。

三、实验源程序(算法) Score.c #include "stdio.h" #include "string.h" #define M 6 #define N 3 struct student { char name[10]; int number; int score[N+1]; /*score[N]为总分,score[0]-score[2]为学科成绩*/ }stu[M]; void changesort(struct student a[],int n,int j) {int flag=1,i; struct student temp; while(flag) { flag=0; for(i=1;ia[i+1].score[j]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; flag=1; } for(i=0;ia[i+1].score[j]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; flag=1;

结构力学实验

结构力学 桁架结构受力性能实验报告 学号:1153377 姓名:周璇 专业:土木工程 实验时间:2016年05月04日周三,中午12:30-13:30 实验指导教师:陈涛 理论课任课教师:陈涛

一、实验目的 (1)参加并完成规定的实验项目内容,理解和掌握结构的实验方法和实验结果,通过 实践掌握试件的设计、实验结果整理的方法。 (2)进行静定、超静定结构受力的测定和影响线的绘制。 二、结构实验 (一)空间桁架受力性能概述 桁架在受结点荷载时,两边支座处产生反力,桁架中各杆件产生轴力,如图1.1为在抛物线桁架结点分别加载时结构示意图。用Q235钢材,桁架跨度6?260=1560mm ,最大高度260mm 。杆件之间为铰接相连。杆件直径为8mm 。 图1.1 (二)实验装置 图1.2为框架结构侧向受力实验采用的加载装置,25kg 挂钩和25kg 砝码。采用单结点集中力加载,由砝码、挂钩施加拉力,应变片测算待测杆件应变。结构尺寸如图1.2所示。 图1.2 (三)加载方式 简单多次加载,将挂钩和砝码依次施加在各个结点,待应变片返回数据稳定后,进行采集。采集结束后卸下重物,等待应变片数值降回初始值后再向下一节点施加荷载,重复采集操作。 (四)量测内容 需要量测桁架待测杆件的应变值在前后四对桁架杆布置单向应变片,具体布置位置如图 1.2 所示,即加粗杆件上黏贴应变片。 三、实验原理 对桁架上的5个位置分别施加相同荷载,记录不同条件下各杆件的应变值。 由公式 2 4 F A E d A σσεπ? ?=? =???=?

可以得到 24 d E F πε = 其中: F ——杆件轴力 E ——Q235钢弹性模量 d ——杆件直径 ε ——杆件应变值 σ ——杆件应力 A ——杆件横截面积 因而可以求得各杆件轴力,进而得到不同杆件的轴力影响线。 四、实验步骤 (1)将载荷挂在加载位置1,待应变片返回数据稳定后,采集相应应变数据。 (2)待应变片数值降回初始值后,重复(1)中操作,将荷载分别挂在加载位置2,3,4,5,分别采集记录各自对应的各杆件应变数据。 五、实验结果与整理 将对应位置杆件应变值取平均值,得到所示一榀桁架四根杆件的应变值如表2.2所示。

数据库实验报告(一)

滨江学院 题目数据库实验报告(一) 学生姓名 学号 系部电子工程系 专业通信工程 指导教师林美华 二O一三年十二月十八日

实验一数据库的定义实验 本实验需要2学时。 一、实验目的 要求学生熟练掌握和使用SQL、SQL Server企业管理器创建数据库、表、索引和修改表结构,并学会使用SQL Server 查询分析器接收语句和进行结果分析。 二、实验内容 1 创建数据库和查看数据库属性。 2 创建表、确定表的主码和约束条件。为主码建索引。 3 查看和修改表结构。 4 熟悉SQL Server企业管理器和查询分析器工具的使用方法。 三、实验步骤 1 基本操作实验 (1) 使用企业管理器按教材中的内容建立图书读者数据库。 (2)在企业管理器中查看图书读者数据库的属性,并进行修改,使之符合要求。 (3)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为; 图书(书号,类别,,作者,书名,定价,作者). 读者(编号,,单位,性别,). 借阅(书号,读者编号,借阅日期) 要求为属性选择合适的数据类型,定义每个表的主码.是否允许空值和默认值等列级数据约束。 (4)在企业管理器中建立图书、读者和借阅3个表的表级约束.每个表的主码约束.借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式.再通过操作予以实现.实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。 2 提高操作实验 (一) 将教材中用SQL描述的建立学生--课程操作.在SQL Server企业管理器中实现。库中表结构为: 学生(学号,,年龄,性别,所在系). 课程(课程号,课程名,先行课). 选课(学号,课程号,成绩) 要求: 1)建库、建表和建立表间联系。, 2)选择合适的数据类型。 3)定义必要的索引、列级约束和表级约束. 四、实验方法 l创建数据库 (1)使用企业管理器创建数据库的步骤 1)从“开始”菜单中选择;“程序”“Microsoft SQL2000”“企业管理器”.

结构力学实验报告

实验报告一 平面刚架内力计算程序APF 日期: 2013.4.19 实验地点: 综合楼503 实验目的: 1、通过实验加深对静定、超静定结构特性的认识。如各杆刚度改变对内力分布的影响、温度和沉陷变形因数的影响等。 2、观察并分析刚架在静力荷载及温度作用下的内力和变形规律,包括刚度的变化,结构形式的改变,荷载的作用位置变化等因素对内力及变形的影响。对结构静力分析的矩阵位移法的计算机应用有直观的了解。 3、掌握杆系结构计算的《求解器》的使用方法。 实验设计1: 别为15 、11、15、110 时结构的内力和位移,由此 分析当刚架在水平荷载作用下横梁的水平位移与刚架梁柱比(1 2I I )之间的关系。(计算时忽略轴 向变形)。 一、 数据文件: (1)TITLE, 实验一 变量定义,EI1=1 变量定义,EI2=0.2(1, 5, 10) 结点,1,0,0 结点,2,0,4 结点,3,6,0 结点,4,6,4 单元,1,2,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,1 单元,2,4,1,1,1,1,1,1 结点支承,1,6,0,0,0,0 结点支承,3,6,0,0,0,0 结点荷载,2,1,100,0 单元材料性质,1,2,-1,EI1,0,0,-1 单元材料性质,3,3,-1,EI2,0,0,-1 END

二、主要计算结果: 位移: (2)令I2=1时,I1=5,1,0.2,0.1 弯矩: (1) 令I1=1时,I2=0.2,1,5,10 ①梁柱刚度比I2:I1为1:5时的刚架弯矩图如下②梁柱刚度比I2:I1为1:1时的刚架弯矩图如下

③梁柱刚度比I2:I1为5:1时的刚架弯矩图如下④梁柱刚度比I2:I1为10:1时的刚架弯矩图如下

相关主题
文本预览
相关文档 最新文档