当前位置:文档之家› 数据结构上机实习报告

数据结构上机实习报告

数据结构上机实习报告
数据结构上机实习报告

数据结构

上机实习报告

实验题目:一元多项式

班级:193121

姓名:邹冠宏

学号:20121002758

指导老师:郭艳

完成日期:2013/9/30

一问题分析

1. 问题描述

设计一个n元多项式程序,并完成多项式的加法,乘法运算。从实际的角度出发,这里设计的程序是基于一元n次多项式的数学模型。

2、功能需求

1)构造一个空的多项式。

2)多项式插入新的一项。

3)计算多项式的值。

4)打印多项式。

5)多项式合并同类项。

6)多项式加法。

7)多项式乘法。

8)多项式减法

二、概要设计

1问题分析

在数学上,一个一元多项式Pn(x)可按升幂写成:Pn(x)=a 0+a1 x+a2 x^2 +…+a n x^n-1 .它由n+1个系数惟一确定,因此,在计算机里,它可用一个线性表P来表示:Pn=(a0,a1,a2,…,an)每一项的指数i 隐含在其系数ai的序号里。

2数据模型

设计一个单链表模型,动态分配空间,刻意随时插入新的一项

多项式加法规则:两个具有相同指数的项合并,系数为0时把这一项省去,也就是删除了这一节点。

多项式的乘法规则:多次运用单项式与多项式相乘的法则得到的.计算时(a+b)(c+d),把(c+d)看成一个单项式,(a+b) 是一个多项式,运用单项式与多项式相乘的法则,得到(a+b)(c+d)=a(c+d)+b(c+d),然后再次运用单项式与多项式相乘的法则。

3 构造数据结构

通过分析多项式的特征,不难看出多项式是由单项式构成的,而每个单项式都具有系数和指数,当系数为0时,该项就失去了意义,在计算机内要表示一个多项式,至少以下数据信息:系数信息、指数信息和指向下一个单项式的指针。通过指针,我们就可以把多个单项式连接起来,形式一个多项式,基于以上的分析,我们定义多项式的数据结构为如下结构体形式:

typedef struct Polynomial{

float coef;//系数

int expn;//指数

struct Polynomial *next;//指向下一个结点

}*Polyn,Polynomial; //Polyn为结点指针类型三、详细设计

1一元多项式运算程序具有以下基本功能:

1).界面输出,提示如何输入数据。要求先输入多项式的项数。

2).创建多项式。接收输入的数据,并保存到链表中。

3).显示程序的功能表,允许使用者选择运算类型。

4).打印多项式。

5).实现加法运算。

7).实现乘法运算。

6).清除内存内容,销毁创建的链表,退出程序。

2功能算法描述与数据结构说明

该多项式程序除了main()函数外,主要有以下函数:

Polyn CreatePolyn(Polyn head,int m)

void Insert(Polyn p,Polyn h)

void PrintPolyn(Polyn P)

int compare(Polyn a,Polyn b)

Polyn AddPolyn(Polyn pa,Polyn pb)

Polyn MultiplyPolyn(Polyn pa,Polyn pb)

void DestroyPolyn(Polyn p)

void CountPolyn(Polyn P,int k)

3. 主要功能函数的详细设计

1).main()函数

main函数是用来实现提示使用者输入、显示功能列表、调用其他运算函数实现运算功能。

在main()函数中,定义m、n用来保存两个多项式的项数,pa、pb、pc、pd、pf定义程序所需链表的头指针。在程序开始要求输入两个多项式的项数,随后根据项数创建两个链表以保存多项式,再显示出功能列表后通过输入数字来选择来实现功能的选择,从而达到对整个程序流程进行控制。

2). Polyn CreatePolyn(Polyn head,int m)

该函数功能是创建新的多项式链表。int m保存的多项式的项数,使用for语句,控制输入多项式的每一项。若创建的链表长度为m时,将不再提示用户继续输入多项式的系数和指数。因为是从0项开始计算的。

在该函数中要用到分配空间的函数malloc()为新建链表分配空间。而

空间的长度要用sizeof()。

3). void Insert(Polyn p,Polyn h)

该函数功能:将新的节点p插入到现有链表的后面,并确保多项式的指数exp是升序。将s节点插入到head所指向的链表。在该函数的操作中,要注意指针是如何移动的。对插入的位置要分情况讨论。在头,中,尾三处的插入。

4). int compare(Polyn a,Polyn b)

该函数功能:判断两个多项式在同一指数下是否有其中一个为系数为0。根据不同情况来讨论多项式的指数,用来辅助加法和乘法运算。

5). Polyn AddPolyn(Polyn pa,Polyn pb)

该函数功能:实现两个多项式pa、pb相加,并将计算结果存储于新建立的pc中,它的原理是将指数相同的单项式相加,系数相加后为0,则pa、pb的指针都后移。在加法计算中要求pa,与pb的幂次序都是升序,否则可能得到错误的结果。

该函数调用了int compare(Polyn a,Polyn b)的结果,用来判断多项式在同一指数下a、b是否有为系数为0。同样也使用了malloc()关键字,为新链表创建分配空间。

6). void PrintPolyn(Polyn P)

该函数功能:显示多项式链表。在该函数中较复杂的是如何控制链表的输出,尤其是第一项的输出,同时还有符号的控制。在输出第

一项时要判断是不是常数项,若是,则不要输出字符x。还有对系数的正负的判断,若是正就输出+,负则直接输出。

7). Polyn MultiplyPolyn(Polyn pa,Polyn pb)

函数功能:实现两个多项式相乘,F(X) * H(x) 。计算时运用单项式与多项式相乘的法则,然后再次运用单项式与多项式相乘的法则。对得到多项式进行合并。

8)Polyn CountPolyn(Polyn p,int x)

此函数是用来输出多项式的计算结果,要给x赋值,当*next==Null时结束运算,输出结果

9). void DestroyPolyn(Polyn p)

该函数的功能是销毁掉创建的两个链表,释放内存。以辅助退出程序。有利于空间空域,如果不释放没用的内存空间的话,内存会被占用,最后导致内存不足,甚至系统崩溃。

4各函数的详细设计

该程序实现了多项式的创建、多项式的加法、、乘法运算以及多项式的清除。为完成这些功能,必须用到一些辅助函数。

下面讨论一些重要函数具体实现过程及其参数的含义:

1). Polyn CreatePolyn(Polyn head,int m)该函数的两个参数,head

表示为创建的链表的头指针,m表示为链表的长度,即多项式的项数。定义int i计数,当i

Polyn CreatePolyn(Polyn head,int m){

int i;//用来计数

Polyn p;//定义一个p链表

p=head=(Polyn)malloc(sizeof(struct Polynomial));

head->next=NULL;

for(i=0;i

p=(Polyn)malloc(sizeof(struct Polynomial));//建立新结点接收数据

printf("请输入第%d项的系数与指数:",i+1);

scanf("%f %d",&p->coef,&p->expn);

Insert(p,head); //调用Insert函数插入结点}

return head;

}//CreatePolyn

2). void Insert(Polyn p,Polyn h) 该函数具有两个参数,用来实现链表的顺序排列和合并相同的项。以下是实现插入的关键代码:void Insert(Polyn p,Polyn h){

if(p->coef==0) free(p); //系数为0的话释放结点

else{//如果系数不为0

Polyn q1,q2;

q1=h;q2=h->next;

while(q2&&p->expnexpn){ //查找插入位置

q1=q2;

q2=q2->next; }

if(q2&&p->expn==q2->expn){ //将指数相同相合并

q2->coef+=p->coef;

free(p);

if(!q2->coef){ //系数为0的话释放结点

q1->next=q2->next;

free(q2); }

}

else{ //指数为新时将结点插入

p->next=q2;

q1->next=p;

}

}

}//Insert

3). int compare(Polyn a,Polyn b)此函数是用来比较两个多项式之间的系数大小。

int compare(Polyn a,Polyn b){

if(a&&b){

if(!b||a->expn>b->expn) return 1;

else if(!a||a->expnexpn) return -1;

else return 0;

}

else if(!a&&b) return -1;//a多项式已空,但b多项式非空

else return 1;//b多项式已空,但a多项式非空

}//compare

4). Polyn AddPolyn(Polyn pa,Polyn pb) 该函数有两个参数,其类型均为polyn,分别表示要相加的两个不同的多项式。其计算的结果存放在新建的pc所指向的链表中。函数中调用了int compare(Polyn a,Polyn b)的结果。下面是实现加法的关键代码:

Polyn AddPolyn(Polyn pa,Polyn pb){//求解并建立多项式a+b,返回其头指针

Polyn qa=pa->next;

Polyn qb=pb->next;

Polyn headc,hc,qc;

hc=(Polyn)malloc(sizeof(struct Polynomial));//建立头结点

hc->next=NULL;

headc=hc;

while(qa||qb){

qc=(Polyn)malloc(sizeof(struct Polynomial));

switch(compare(qa,qb)){

case 1: {

qc->coef=qa->coef;

qc->expn=qa->expn;

qa=qa->next;

break;

}

case 0: {

qc->coef=qa->coef+qb->coef; qc->expn=qa->expn;

qa=qa->next;

qb=qb->next;

break;

}

case -1:{

qc->coef=qb->coef;

qc->expn=qb->expn;

qb=qb->next;

break;

}

}//switch

if(qc->coef!=0){

qc->next=hc->next;

hc->next=qc;

hc=qc;

}

else free(qc);//当相加系数为0时,释放该结点

}//while

return headc;

}//AddPolyn

5). Polyn MultiplyPolyn(Polyn pa,Polyn pb) 该函数同加法一样,拥有相同的参数并且同样将新建立的链表pf的指针返回,用来实现输出乘法结果。下面给出关键代码:

Polyn MultiplyPolyn(Polyn pa,Polyn pb){

Polyn hf,pf;

Polyn qa=pa->next;

Polyn qb=pb->next;

hf=(Polyn)malloc(sizeof(struct Polynomial));//建立头结点

hf->next=NULL;

for(;qa;qa=qa->next){

for(qb=pb->next;qb;qb=qb->next){

pf=(Polyn)malloc(sizeof(struct Polynomial));

pf->coef=qa->coef*qb->coef;

pf->expn=qa->expn+qb->expn;

Insert(pf,hf);//调用Insert函数以合并指数相同的项

}

}

return hf;

}//MultiplyPolyn

6). void PrintPolyn(Polyn P)从升序依次输出多项式,void PrintPolyn(Polyn P){

Polyn q=P->next;

int flag=1;//项数计数器

if(!q) { //若多项式为空,输出0

putchar('0');

printf("\n");

return;

}

while (q){

if(q->coef>0&&flag!=1) putchar('+'); //系数大于0且不是第一项if(q->coef!=1&&q->coef!=-1){//系数非1或-1的普通情况

printf("%g",q->coef);

if(q->expn==1) putchar('X');

else if(q->expn) printf("X^%d",q->expn);

}

else{

if(q->coef==1){

if(!q->expn) putchar('1');

else if(q->expn==1) putchar('X');

else printf("X^%d",q->expn);

}

if(q->coef==-1){

if(!q->expn) printf("-1");

else if(q->expn==1) printf("-X");

else printf("-X^%d",q->expn);

}

}

q=q->next;

flag++;

}//while

printf("\n");

}//PrintPolyn

7)void CountPolyn(Polyn p)

{

float num=0;

int x;

int i;

float k=1;

Polyn q=p->next;

printf("输入你对x赋的值");

scanf("%d",&x);

printf("a");

if(q==NULL)

{return;}

while (q!=NULL)

{

k=k*(q->coef);

for(i=0;i<(q->expn);i++)

{

k=k*x;

num=num+k;}

q=q->next;

}

return num;

}

四程序调试1界面显示

2功能测试

五收获和体会

通过这次课程设计练习,我更深刻地理解了C语言的精髓-----指针的使用。完成整个程序设计有,对指针掌握的更加熟练。

同时通过直接对链表的操作,加深了对数据结构的理解和认识。并在完成课程设计的过程作主动查阅了相关资料,学到了不少课本上没有的技术知识。

编程是一件枯燥乏味工作,但是只要认真专研,我们会从中学到很多在课本上学不到或者无法在课堂上掌握的知识,同时也能从中感受到编程的乐趣。兴趣是可以培养的,只要坚持下去,面对困难我们总能够找到解决问题的方法。

计算多项式的加、乘法运算和计算结果。该程序虽然不是很大,这次我还是由请教了几位同学和参考了网上的类似的题目另外也需要提出的是在这次程序设计的过程中,非常感谢老师对我们的耐心指导。老师在教学过程中表现出来的对学术专研一丝不苟的精神让我非常有收获。

六附录

#include

#include

/******************************************************/ typedef struct Polynomial{

float coef;//系数

int expn;//指数

struct Polynomial *next;//指向下一个结点

}*Polyn,Polynomial; //Polyn为结点指针类型

/**********************************************************/ void Insert(Polyn p,Polyn h){

if(p->coef==0) free(p); //系数为0的话释放结点

else{//如果系数不为0

Polyn q1,q2;

q1=h;q2=h->next;

while(q2&&p->expnexpn){ //查找插入位置

q1=q2;

q2=q2->next;

}

if(q2&&p->expn==q2->expn){ //将指数相同相合并

q2->coef+=p->coef;

free(p);

if(!q2->coef){ //系数为0的话释放结点

q1->next=q2->next;

free(q2);

}

}

else{ //指数为新时将结点插入

p->next=q2;

q1->next=p;

}

}

}//Insert

/*********************以下函数实现建立一个多项式****************/

Polyn CreatePolyn(Polyn head,int m){//建立一个头指针为head、项数为m的一元多项式

//在主程序初始时,先输入的多项式中的项数m、n 在这里为m。主程序中的pa、pb在此为head

int i;//用来计数

Polyn p;//定义一个p链表

p=head=(Polyn)malloc(sizeof(struct Polynomial));

head->next=NULL;

for(i=0;i

结构力学求解器求解示例

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

实验三、计算结构的影响线 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

《结构力学》作业答案

[0729]《结构力学》 1、桁架计算的结点法所选分离体包含几个结点 A. 单个 2、固定铰支座有几个约束反力分量 B. 2个 3、从一个无多余约束的几何不变体系上去除二元体后得到的新体系是 A. 无多余约束的几何不变体系 4、两刚片用三根延长线交于一点的链杆相连组成 A. 瞬变体系 5、定向滑动支座有几个约束反力分量 B. 2个 6、结构的刚度是指 C. 结构抵抗变形的能力 7、桁架计算的截面法所选分离体包含几个结点 B. 最少两个 8、对结构进行强度计算的目的,是为了保证结构 A. 既经济又安全 9、可动铰支座有几个约束反力分量 A. 1个 10、固定支座(固定端)有几个约束反力分量 C. 3个 11、改变荷载值的大小,三铰拱的合理拱轴线不变。 A.√ 12、多余约束是体系中不需要的约束。 B.× 13、复铰是连接三个或三个以上刚片的铰 A.√ 14、结构发生了变形必然会引起位移,结构有位移必然有变形发生。 B.×

15、如果梁的截面刚度是截面位置的函数,则它的位移不能用图乘法计算。 A.√ 16、一根连杆相当于一个约束。 A.√ 17、单铰是联接两个刚片的铰。 A.√ 18、连接四个刚片的复铰相当于四个约束。 B.× 19、虚功原理中的力状态和位移状态都是虚设的。 B.× 20、带拉杆三铰拱中拉杆的拉力等于无拉杆三铰拱的水平推力。 A.√ 21、瞬变体系在很小的荷载作用下会产生很大的内力,所以不能作为结构使用。 A.√ 22、一个无铰封闭框有三个多余约束。 A.√ 23、三铰拱的水平推力不仅与三铰的位置有关,还与拱轴线的形状有关。 B.× 24、三铰拱的主要受力特点是:在竖向荷载作用下产生水平反力。 A.√ 25、两根链杆的约束作用相当于一个单铰。 B.× 26、不能用图乘法求三铰拱的位移。 A.√ 27、零杆不受力,所以它是桁架中不需要的杆,可以撤除。 B.× 28、用图乘法可以求等刚度直杆体系的位移。 A.√ 29、连接四个刚片的复铰相当于四个约束。

数据结构课程设计报告模板

《数据结构I》三级项目报告 大连东软信息学院 电子工程系 ××××年××月

三级项目报告注意事项 1. 按照项目要求书写项目报告,条理清晰,数据准确; 2. 项目报告严禁抄袭,如发现抄袭的情况,则抄袭者与被抄袭者均 以0分计; 3. 课程结束后报告上交教师,并进行考核与存档。 三级项目报告格式规范 1. 正文:宋体,小四号,首行缩进2字符,1.5倍行距,段前段后 各0行; 2. 图表:居中,图名用五号字,中文用宋体,英文用“Times New Roman”,位于图表下方,须全文统一。

目录 一项目设计方案 (3) 二项目设计分析 (4) 三项目设计成果 (4) 四项目创新创业 (5) 五项目展望 (6) 附录一:项目成员 (6) 附录二:相关代码、电路图等 (6)

一项目设计方案 1、项目名称: 垃圾回收 2、项目要求及系统基本功能: 1)利用数据结构的知识独立完成一个应用系统设计 2)程序正常运行,能够实现基本的数据增加、删除、修改、查询等功能3)体现程序实现算法复杂度优化 4)体现程序的健壮性 二项目设计分析 1、系统预期实现基本功能: (结合本系统预期具体实现,描述出对应基本要求(增、删、改、查等)的具体功能) 1. 2. 3. 4. 5. 6. 7. 2、项目模块功能描述 (基本分为组织实施组织、程序功能模块编写、系统说明撰写等。其中程序功能子模块实现) 模块一: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块二: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块n: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

结构力学上机考试答案

中国矿业大学力学与建筑工程学院 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

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

结构力学求解器(使用指南)

结构力学求解器(使用指南) 结构力学求解器(SM Solver of Win dows)是一个关于结构力学分 析计算的计算机软件, 其功能包括求解平面杆件结构(体系)的几何组成、静定和超静定 结构的内力、位移,影响 线.口出掘动的口振频率和张型,以及弹性稳定等结构力学课程中 所涉及的绝大部分问题. 对几何可变休系可作静态或动态显示机构模态;能绘制结构内力 图和位移图;能静态或动态 显小结构口由振动的各阶振型和弹性稳是分析的失稳模态;能绘 制结构的影响线图. 该软件的版本为V1.5.清华大学土木系研制.高教出版社发行. 」.运行环境 Windows 98/NT. 8M 内存.2M 硬盘空间. —.装机与运行 将软件光盘置入光驱,在Windows环境下运行光盘上的 SMsetup.exe,然后按提示操作 即可完成装机.装机完成后,桌面上将出现一个名为”求解器"的 图标.双击桌面上的 "求解器"图标,再单击软件的封面,便可使用该求解器.

-.输入数据 先对结构的结点及单元进行编码,然后按以下诸项输入数据: 1.结点定义 N,Nn,x,y Nn---结点编码; x---结点的x坐标; y---结点的y坐标. 结构整体坐标系为xoy, 一般取结构左下支座结点为坐标原点 (0,0). 2.结点生成(即成批输入结点坐标) NGEN,Nge n,Ni ncr,N1,N2,N12i ncr,Dx,D Y Ngen---结点生成的次数; Nincr---每次生成的结点码增量; N1、N2---基础结点范围; N12incr---基础结点的编码增量; Dx,DY---生成结点的x ,y坐标增量. 3.单元定义 E,N1,N2[,DOF11,DOF12,DOF13,DOF21,DOF22,DOF23]

数据结构课程设计报告

山东建筑大学 课程设计成果报告 题目: 1.数组实现两个矩阵的相乘运算 2.成绩分析问题 课程:数据结构A课程设计 院(部):管理工程学院 专业:信息管理与信息系统 班级:信管*** 学生姓名:*** 学号:******** 指导教师:******* 完成日期:2016年12月29日

目录 目录 (2) 一、课程设计概述 (3) 二、课程设计题目一 (3) 用数组实现两个矩阵的相乘运算 (3) 2.1[问题描述] (3) 2.2[要求及提示]: (3) 2.3[详细设计] (4) 2.4[调试分析] (5) 2.5[运行结果及分析] (5) 三、课程设计题目二 (6) 成绩分析问题 (6) 3.1[问题描述] (6) 3.2[概要设计] (6) 3.3[存储结构] (7) 3.4[流程图] (7) 3.5[详细设计] (8) 3.6[调试分析] (8) 3.7[运行结果及分析] (22) 四、参考文献: (25)

一、课程设计概述 本次数据结构课程设计共完成两个题:用数组实现两个矩阵相乘运算、成绩分析问题。使用语言:C 编译环境:vc6.0 二、课程设计题目一 用数组实现两个矩阵的相乘运算 2.1[问题描述] #include “stdio.h” int r[6][6]; void mult(int a[6][6] , int b[6][6]){ } main(){ int i,j; int num1[6][6],num2[6][6]; printf(“请输入第一个矩阵的值:”,); for(i=1;i<=6;i++) for(j=1;j<=6;j++) scanf(“%d”,&num1[i][j]); printf(“请输入第二个矩阵的值:”,); for(i=1;i<=6;i++) for(j=1;j<=6;j++) scanf(“%d”,&num2[i][j]); mult(num1,num2); printf(“\n两个矩阵相乘后的结果为:”); for(i=1;i<=6;i++) {for(j=1;j<=6;j++) printf(“%4d”,r[i][j]); printf(“\n”); } } 2.2[要求及提示]: 1、要求完善函数mult( ),

数据结构课程设计报告

《数据结构课程设计》报告 题目:课程设计题目2教学计划编制 班级:700 学号:09070026 姓名:尹煜 完成日期:2011年11月7日

一.需求分析 本课设的任务是根据课程之间的先后的顺序,利用拓扑排序算法,设计出教学计划,在七个学期中合理安排所需修的所有课程。 (一)输入形式:文件 文件中存储课程信息,包括课程名称、课程属性、课程学分以及课程之间先修关系。 格式:第一行给出课程数量。大于等于0的整形,无上限。 之后每行按如下格式“高等数学公共基础必修6.0”将每门课程的具体信息存入文件。 课程基本信息存储完毕后,接着给出各门课程之间的关系,把每门课程看成顶点,则关系即为边。 先给出边的数量。大于等于0的整形。 默认课程编号从0开始依次增加。之后每行按如下格式“1 3”存储。此例即为编号为1的课程与编号为3的课程之间有一条边,而1为3的前驱,即修完1课程才能修3课程。 例: (二)输出形式:1.以图形方式显示有向无环图

2.以文本文件形式存储课程安排 (三)课设的功能 1.根据文本文件中存储的课程信息(课程名称、课程属性、课程学分、课程之间关系) 以图形方式输出课程的有向无环图。 拓展:其显示的有向无环图可进行拖拽、拉伸、修改课程名称等操作。 2.对课程进行拓扑排序。 3.根据拓扑排序结果以及课程的学分安排七个学期的课程。 4.安排好的教学计划可以按图形方式显示也可存储在文本文件里供用户查看。 5.点击信息菜单项可显示本人的学好及姓名“09070026 尹煜” (四)测试数据(见六测设结果)

二.概要设计 数据类型的定义: 1.Class Graph即图类采用邻接矩阵的存储结构。类中定义两个二维数组int[][] matrix 和Object[][] adjMat。第一个用来标记两个顶点之间是否有边,为画图服务。第二个 是为了实现核心算法拓扑排序。 2.ArrayList list用来存储课程信息。DrawInfo类是一个辅助画图的类,其中 包括成员变量num、name、shuxing、xuefen分别代表课程的编号、名称、属性、 学分。ArrayList是一个DrawInfo类型的数组,主要用来在ReadFile、DrawG、DrawC、SaveFile、Window这些类之间辅助参数传递,传递课程信息。 3.Class DrawInfo, 包括int num;String name;String shuxing;float xuefen;四个成员变量。 4.Class Edge包括int from;int to;double weight;三个成员变量。 5.Class Vertex包括int value一个成员变量。 主要程序的流程图: //ReadFile.java

数据结构课程设计报告模板

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

目录 1.引言 (1) 2.课题分析 (4) 3.具体设计过程 (5) 3.1设计思路 (5) 3.2程序设计流程图 (5) 3.3.函数实现说明 (10) 4.程序运行结果 (12) 5.软件使用说明 (16) 6.结论 (19) 参考文献 (20) 附录:源代码 (21)

1.引言 数据结构在计算机科学界至今没有标准的定义。个人根据各自的理解的不同而有不同的表述方法: Sartaj Sahni在他的《数据结构、算法与应用》一书中称:“数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”他将数据对象(data object)定义为“一个数据对象是实例或值的集合”。Clifford A.Shaffer在《数据结构与算法分析》一书中的定义是:“数据结构是ADT(抽象数据类型Abstract Data Type)的物理实现。” Lobert L.Kruse在《数据结构与程序设计》一书中,将一个数据结构的设计过程分成抽象层、数据结构层和实现层。其中,抽象层是指抽象数据类型层,它讨论数据的逻辑结构及其运算,数据结构层和实现层讨论一个数据结构的表示和在计算机内的存储细节以及运算的实现。数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。 1.1. 重要意义 一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。 在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。 选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。 1.2. 研究内容

结构力学实验指导书

结构力学实验指导书(土木、力学等专业) 上海大学力学系 2009 - 3

实验一刚架(桁架)多点应力应变测量 一、实验目的 直观地了解钢架、桁架、多杆系、超静定、装配应力模拟等系统的实际工作状况,掌握实验应力分析的方法,提高工程应用的能力,并能自行设计实验方案并实施实验,从而达到掌握力学实验的基本原理与基本操作方法,提高综合分析问题与解决问题的能力。 二、实验装置及介绍 1.刚架(桁架)多功能组合试验台(拱式和三角式,见图1-1)。 2.DH3818静态电阻应变仪、GGD-B载荷显示器、计算机(参见图1-2)。 3.电阻应变计安装用材料及工具。 本实验装置“刚架(桁架)多功能组合试验台”(拱式和三角式),设计成钢架和桁架二者可转换的结构,使学生通过实验能直观地了解这二种结构的差别和受力状态的不同。利用本实验装置可以进行包括钢架静态应力分析系统、桁架静应力分析系统、不同支撑的钢架(桁架)应力分析系统、多杆系应力分析系统、超静定系统、装配应力模拟系统等多个力学实验的项目。数据处理部分采用国内先进的计算机多点自动数据采集与分析系统。此实验装置能根据学生的教学需要将各种实验内容分成几个相互独立的实验,也可将其组合成多种受力状态的综合性实验。

(a) 拱式刚架(b) 三角式刚架 图1-1 刚架(桁架)多功能组合试验装置 图1-2 多功能组合测试系统 (a) (b) (c) ( (b) (b)(c) 图1-3 刚架(桁架)的正视图上部(a)、节点局部(b)和侧视图(c)

三、实验原理 刚架及桁架是工程上最常见的结构之一,刚架及桁架模拟实验装置的结构形式如图1-15-3(a)所示,其节点局部如图1-15-3(b)所示,调节螺栓可以实现刚架和桁架结构的转换。刚架(桁架)的侧视图如图1-15-3(c)所示,调节下部的螺栓可以改变刚架(桁架)的支撑条件,同时侧面结构还具有超静定系统、装配应力模拟等实验功能。 四、实验方法及步骤 1.确定试验方案:根据需要确定要做的试验内容,进行刚架或桁架结构的组合,并设置边界条件。2.选择并确定需要测量的位置,测量尺寸和角度。 3.按照电阻应变计的粘贴工艺将电阻应变计安装在被测点上,选取合适的桥路组合。 4.连接并调试电阻应变仪:打开DH3818静态测试系统控制软件,软件的操作界面如图1-15-4所示,系统自动由“手动控制”状态切换到“自动控制”;查找机箱:选择合适的串行口COM1或COM2。5.平衡操作:输入自定义文件名,单击“平衡”按钮。若需要显示平衡结果,点击“显示平衡结果”选框;若存在不平衡点,在“未平衡测点数”下拉式列表框中显示不平衡点,找出不平衡原因。 6.进行参数设置(具体操作见仪器使用说明书),参数设置的弹出框如图1-15-5所示;选择采样方式:单次采样或定时采样。 7.打开GGD-B载荷显示器,调零;转动手柄等差加载,应变仪记录实验数据。 8.整理试验数据,并与有限元的计算结果进行比较,分析误差原因。 图1-4 DH3818静态测试系统软件的操作界面

数据结构课程设计报告范例

Guangxi University of Science and Technology 课程设计报告 课程名称:算法与编程综合实习 课题名称: 姓名: 学号: 院系:计算机学院 专业班级:通信121 指导教师: 完成日期:2012年12月15日

目录 第1部分课程设计报告 (3) 第1章课程设计目的 (3) 第2章课程设计内容和要求 (4) 2.1 问题描述 (4) 2.2 设计要求 (4) 第3章课程设计总体方案及分析 (4) 3.1 问题分析 (4) 3.2 概要设计 (7) 3.3 详细设计 (7) 3.4 调试分析 (10) 3.5 测试结果 (10) 3.6 参考文献 (12) 第2部分课程设计总结 (13) 附录(源代码) (14)

第1部分课程设计报告 第1章课程设计目的 仅仅认识到队列是一种特殊的线性表是远远不够的,本次实习的目的在于使学生深入了解队列的特征,以便在实际问题背景下灵活运用它,同时还将巩固这种数据结构的构造方………………………………………………………………………………………………………………………………………………………………………………………..(省略)

第2章课程设计内容和要求 2.1问题描述: 迷宫问题是取自心理学的一个古典实验。在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒子中设置了许多墙,对行进方向形成了多处阻挡。盒子仅有一个出口,在出口处放置一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。对同一只老鼠重复进行上述实验,一直到老鼠从入口走到出口,而不走错一步。老鼠经过多次试验最终学会走通迷宫的路线。设计一个计算机程序对任意设定的矩形迷宫如下图A所示,求出一条从入口到出口的通路,或得出没有通路的结论。 图A 2.2设计要求: 要求设计程序输出如下: (1) 建立一个大小为m×n的任意迷宫(迷宫数据可由用户输入或由程序自动生成),并在屏 幕上显示出来; (2)找出一条通路的二元组(i,j)数据序列,(i,j)表示通路上某一点的坐标。 (3)用一种标志(如数字8)在迷宫中标出该条通路; (4)在屏幕上输出迷宫和通路; (5)上述功能可用菜单选择。

数据结构实验报告模板

数据结构实验报告 顺序表实验 1.实验目标 a.熟练掌握线性表的顺序存储结构。 b.熟练掌握顺序表的有关算法设计。 c.根据具体问题的需要,设计出合理的表示数据的顺序结构,并设计相关算法。 2.实验内容和要求 a.顺序表结构和运算定义,算法的实现以库文件方式实现,不得在测试主程序中直接实现; b.实验程序有较好可读性,各运算和变量的命名直观易懂,符合软件工程要求; c.程序有适当的注释。 3.数据结构设计 顺序表 4.算法设计 1.i表示要在顺序表中查找的位置,x表示查找到后返回的值。 int search(seqlist A,int i,elementType &x) { if(i<1||i>A.Len)//查找的范围不在顺序表中 return 0; else { x=A.data[i-1];//复制要查找的值 return 1; } } 2.i表示要在顺序表中插入的位置,x表示要插入的元素。 void insert(seqlist &A,int i,elementType x) { if(i<1||i>A.Len)//超出顺序表范围 cout<<"error"<=i;j--)//找到第i-1个结点擦,并后移元素 A.data[j]=A.data[j-1]; A.data[i-1]=x;//插入元素数据 A.Len++;//改变顺序表长度 }

} 3.先利用循环找到顺序表中第i个结点,然后进行删除操作。 void del(seqlist *L,int i) { int j; if(i<1||i>L->Len+1)//超顺序表范围 cout<<"超出表范围"<Len;j++) L->data[j]=L->data[j+1];//删除第i个结点 L->Len--; cout<<"删除元素后的表为:"; for(int k=0;kLen;k++)//输出顺序表 cout<data[k]<<" "; cout<Len==MAXLEN) return 0; else { int i=L->Len-1; L->Len++; while(x<=L->data[i]) { L->data[i+1]=L->data[i];//查找待插入的位置 i--; } L->data[i+1]=x;//插入元素 return 1; } } 5.申请两个新的顺序表,然后对原表进行遍历,由 A.data[i]%2进行及奇偶的分离,并分别存入顺序表B,C中。 void separatelist(seqlist A,seqlist *B,seqlist *C) { int b(0),c(0); for(int i=0;i

结构力学实验

结构力学 桁架结构受力性能实验报告 学号: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所示。

数据结构课程设计报告,含菜单

算法与数据结构课程设计 报告 系(院):计算机科学学院 专业班级:计科11005 姓名:张林峰 学号: 201003784 指导教师:詹泽梅 设计时间:2012.6.11 - 2012.6.18 设计地点:12教机房

目录 一、课程设计目的 (2) 二、设计任务及要求 (2) 三、需求分析 (2) 四、总体设计 .............. 错误!未定义书签。 五、详细设计与实现[含代码和实现界面].. 8 六、课程设计小结 (15)

一.设计目的 1.能根据实际问题的具体情况,结合数据结构课程中的基本理论和基本算法,分析并正确确定数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法。 2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。 3.初步掌握软件开发过程中问题分析、系统设计、程序编码、测试等基本方法和技能。 4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。 5.培养根据选题需要选择学习书籍,查阅文献资料的自学能力。二.设计任务及要求 根据《算法与数据结构》课程的结构体系,设计一个基于DOS菜单的应用程序。要利用多级菜单实现各种功能。比如,主界面是大项,主要是学过的各章的名字诸如线性表、栈与队列、串与数组及广义表等,子菜单这些章中的节或者子节。要求所有子菜单退出到他的父菜单。编程实现时,要用到C++的面向对象的功能。 三.需求分析 菜单运用极其广泛,应用于各行各业。菜单运用起来极其方便。随着社会的发展,社会的行业出现多样化,也就需要各式

数据结构实验报告模板

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);//重载赋

结构力学求解器上机报告

结构力学求解器上机报告

————————————————————————————————作者: ————————————————————————————————日期:

结构力学求解器上机报告 班级:道桥11201 学号:201205592 姓名:袁霄雷

结构力学求解器上机实习心得 在紧张的复习周里学院为了加强我们对专业课程的深入体会并在掌握理论基础的同时让我们能熟练的学习掌握一门实际的工作技能,我们开始了为期一周的结构力学上机实验——学习使用结构力学求解器。纸上得来终觉浅,绝知此事要躬行。在短暂的实习过程中,我深深的感觉到自己所学知识的肤浅和在实际运用中的专业知识的匮乏,刚开始的一段时间里,对一些命令感到无从下手,茫然不知所措,这让我感到非常的难过。在班级总以为自己学得不错,一旦接触到实际,才发现自己知道的是多么少,这时才真正领悟到“学无止境”的含义。接到这个通知的时候我正在忙碌于考试的紧张复习,得知从第19周星期一到星期五的每天18:00--21:00时间段是我们班级的上机讲解时间。这让我本来就很忙碌的复习生活变得更加“拮据”。当时的我也许还没有理解学院的这一让我们广大学生烦恼的决定,把我们一天里的时间从中间给掐断,上午做不了事下午也不能专心的学习,不过当我接触到了《结构力学求解器》这一我们土木工程的“利器”时,我觉得我们的老师们没有做错决定,这是一个让我们将书本的知识给应用于实际中的一次大好机会。第一天的我们接到了老师给我们的实习任务,望着这一张试卷上秘密麻麻的题目,以自己学习的结构力学知识去手算出这些结构的弯矩、轴力、剪力图,也许这要花掉我一天的时间,最后的结果也未必能够让自己、让老师满意。庆幸的我在见识了老师给我们演示结构力学求解器的功能后,我对这个“给力”的软件产生了浓厚的兴趣。如果学好了这个软件加上我所学的混凝土结构、结构力学、以及材料方面的知识我应该就可以大致的设计出一个简单的房子了。因此,在老师讲解的过程中我听得非常仔细,在把软件的一些常用键给熟悉了一遍后,我跟着老师的步伐做完了一个例题,开始对这个软件有了一定的了解。这个软件成为我当天晚上的任务,我对照着试卷上得每一步来完成我的作业。遇到的困难:一,第一次使用在有些构造问题上拿不定注意,不知道是钢节点还是铰节点。二,对于有些命令不能很明确的知道其用法致使在使用时容易出错。三,第一次接触这个软件,在使用过程中没有很好的组织好个步骤之间的关系,容易出现不够细心的情况,不能高效率的完成结构的解答,出来的结果没有次序,比较杂乱。在之后的几天里学会了使用这个软件后,慢慢的熟悉慢慢的去摸索。解决了以上的问题,并且将作业独立的完成了。这次实习虽然时间比较但是交给我们的东西是我们一辈子都适用的。并让我懂得了细心也是获得成果的一个必不可少的品质。这次实习我体会到,如果将我们在大学里所学的知识与更多的实践结合在一起,用实践来检验真理,使一个本科生具备较强的处理基本实务的能力与比较系统的专业知识,这才是我们学习与实习的真正目的。此次实习,受益匪浅。

结构力学专升本作业题参考答案

结构力学专升本作业题参考答案 一、选择题 1、图示结构中,A 支座的反力矩A M 为( )。 A. 0 B. 1kN.m (右侧受拉) C. 2kN.m (右侧受拉) D. 1kN.m (左侧受拉) 答案:C 2、图示组合结构中,杆1的轴力1N F 为( )。 A. 0 B. 2 ql - C. ql - D. q 2- q 答案:B 3、图示结构的超静定次数为( )。 A. 1 B. 5 C. 6 D. 7 答案:D 4、图示对称结构的半边结构应为( )。

答案:A 5、图示结构中, BA M(设左侧受拉为正)为()。 A. a F P 2 B. a F P C. a F P 3 D. a F P 3 - 答案:C 6、图示桁架中,B支座的反力 HB F等于()。 A. 0 B. P F 3 - C. P F 5.3 D. P F 5 答案:D 7、图示结构的超静定次数为()。 A. 1 B. 3 C. 4 D. 5

答案:B 8、图示对称结构的半边结构应为( )。 答案:C 二、填空题 1、图示桁架中,有 根零杆。 答案:10 2、图示为虚设的力状态,用于求C 、D 两结点间的 。 答案:相对水平位移 3、超静定刚架结构在荷载作用下采用力法求解时,当各杆EI 值增加到原来的n 倍时,则力法方程中的系数和自由项变为原来的 倍;各杆的内力变为原来的 倍。 答案: n 1 ;1 4、写出下列条件下,等截面直杆传递系数的数值:远端固定=C ,远端铰支=C ,远端滑动 =C 。 答案:2/1;0;1- 5、图示桁架中,有 根零杆。

数据结构课程设计报告书

数据结构课程设计 学院名称:计算机工程学院 专业:信息管理与信息系统班级: 姓名: 年月日

《数据结构》课程设计任务书 学院计算机工程学院系部信息与软件工程系 年月日

《数据结构课程设计》报告 一、第一类题目 1.问题陈述 约瑟夫环问题:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数),一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。请设计一个程序求出出列顺序。 2.程序代码 #include #include int n,m; typedef struct LNode{ int num,data; struct LNode *next; }LNode,*LinkList; void List(LinkList &L,int n){ LinkList p,q; int i; L=(LinkList)malloc(sizeof(LNode)); L->next=NULL; for(i=0;inum=i+1; printf("输入编号为%d的人的密码:",i+1); scanf("%d",&p->data); if(L->next==NULL) L->next=p;//头结点L else q->next=p;//前后节点关系建立 q=p;} //q为前节点 p->next=L->next;} void input(){ printf("输入总人数n:"); scanf("%d",&n); printf("输入报数上限值m:"); scanf("%d",&m); } void output(LinkList L,LinkList p,int m){ int i; LinkList q; for(i=1;;i++){ q=p; p=p->next;

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