文档库 最新最全的文档下载
当前位置:文档库 › 医院选址问题(数据结构)大作业

医院选址问题(数据结构)大作业

医院选址问题(数据结构)大作业
医院选址问题(数据结构)大作业

一、实验内容概述

n个村庄之间的交通图用有向加权图表示,图中的有向边表示第i个村庄和第j 个村庄之间有道路,边上的权表示这条道路的长度。现在要从这n个村庄中选择一个村庄建一所医院,问这所医院应建在哪个村庄,才能使离医院最远的村庄到医院最近。

图1 医院选址加权有向图

测试数据:针对图1,输入以下数据:

输入顶点数:5

输入顶点对和弧的权值:

1 2 1

2 3 2

3 4 2

3 5 4

4 2 1

4 3 3

5 4 5

0 0 0

二、实验目的概述

“数据结构”是计算机科学与技术专业一门十分重要的专业技术基础课,计算机科学各领域及有关的应用软件都要使用到各种数据结构。在我国,“数据结构与算法”已经作为理工科非计算机专业必修的信息技术基础课程之一。世界上许多科技人员对学习、研究数据结构和算法都非常重视,对于从是计算机科学及其应用的科技工作者来说,数据结构与算法更是必须透彻的掌握的重要基础。

学习数据结构与算法的最终目的是解决实际的应用问题,特别是非数值计算类型的应用问题,课程设计是加强学生实践能力的一个强有力的手段。作为一名计算机专业的学生,通过对计算机课程两年的学习,掌握C++和数据结构,在完成课程设计和变成过程中,要深化对数据结构与算法课程中的基本概念、理论和方法的理解,训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念,在老师的指导下完成最少换车次数问题,把自己所学的理论用具体的问题来解决,更加直接,易懂。提高程序设计与调试水平。

在通过学习数据结构,我们要掌握数据结构的各个算法,运用学过的算法去解决实际中的问题,将数据结构用用武之地,也能提高我们的运用能力和编写程序的能力,对我们的技能也有进一步的提高,对我们的未来之路铺路搭桥。

在这个实验中,我主要是类的成员函数去解决问题,除了学习到C语言的知识外,同样还学习到C++的知识,对我的知识也有很大扩展,将C和C++相结合,达到共同解决问题的目的。

在这个运用中,主要是学会类的定义以及使用,还有类的成员函数的定义和使用,通过用类的对象去调用类的成员函数,最后达到目的,这能够体现出面向对象的编程方法,与以往的面向过程的编程方法有很大的层次性的提高,达到提高思维能力。

三、数据结构和算法的设计

该实验是通过计算得出在几个村庄中的其中一个村庄建立一个距离合适医院,使得附近各个村庄到这个医院的距离最短,很容易让我们想到用Floyd或者Dijkstra算法去解决问题。

但是用C++同样也可以实现,在C++中的类类似于C语言中的结构体,我们正好可以用C++中的类去解决问题,因此我们需要知道类中的一些基本成员,包括私有成员和公有成员,私有成员在类外是不允许访问的,只能通过类中的函数去访问,因此我们需要设置类内

成员,然后通过类内函数去访问类中的私有成员。

除了要明白类内的私有成员和公有成员外,同意还是要明白类内函数怎样在类外编写,这也是极其重要的,通过把类内函数在类外编写可以使类内代码大大的简短,更有利于读写。

最后还要明白构造函数的定义和用法,构造函数的函数名必须和类名一样。

本程序主要采用带权图来实现医院选址实现总体最优的一些功能。首先在main函数之前定义了一个类,然后在main函数运行时,根据相关的信息提示,分别输入村庄的个数,村庄名称,边数(各个村庄间是否有通路),各个道路的起点和终点,以及各个点间的距离。在main()函数中,通过调用类的构造函数和类中的成员函数,使成员函数和构造函数相配合,最后算出相对的最短距离从而确定超市的最优地址,得出各个村庄到医院的距离。

首先,构造一个类的对象,然后再调用类的构造函数将数据初始化,其中包括将邻接矩阵初始化为最大值,输入顶点名称,再调用InsertVertex()函数插入顶点,边数、头顶点、尾顶点以及权值,再调用InsertEdge()插入权值。

再就是通过类对象调用类的Hospital()函数(医院选址函数),就是在以邻接带权矩阵表示n个村庄中,求医院建在何处,使离医院最远的村庄到医院最近。在这个函数中,首先求出任意两顶点间的最短路径,求各村庄离医院最近的医院选址,输出要建医院的村庄号及离医院最远的村庄到医院的距离,最后结束算法,完成医院选址问题,使离医院最远的村庄到医院最近。

四、源程序清单

#include

#define MaxInt 10000//最大数

const int MaxNumEdges=50;

const int MaxNumVertices=10; //最大顶点数

class Graph

{

private:

int vNum;//当前顶点数

int eNum;//当前边数

int Vertex[MaxNumVertices];//顶点数组

int Edge[MaxNumV ertices][MaxNumVertices];//边数组

bool GetVertexPos(const int &vertex,int &i);//给出顶点vertex在图中的位置public:

Graph(const int sz= MaxNumEdges);//构造函数

bool FindVertex(const int &vertex);

bool InsertVertex(const int & vertex);//插入一个顶点vertex

bool InsertEdge(const int v1,const int v2,const int weight);//插入一条边(v1,v2),该边上的权值为weight

void Hospital();//医院选址函数

};

Graph::Graph(const int sz): vNum(0), eNum(0)

//构造函数

{

int n,e;

int name,tail,head;

int weight;

for(int i=0;i

for(int j=0;j

{

if(i==j)

Edge[i][j]=0;//顶点到自身权值为0

else

Edge[i][j]=10000;//邻接矩阵初始化为最大值

}

printf("请输入顶点数,注意本程序最多为10个!\n");

scanf("%d",&n);

printf("请依次输入顶点名称:\n");

for(int i=0;i

{

scanf("%d",&name);

InsertVertex(name);

vNum++;

}

printf("请输入边数:\n");

scanf("%d",&e);

printf("以下输入边信息:\n");

for(int i=0;i

{

printf("请输入第%d边头顶点:\n",i+1);

scanf("%d",&head);

printf("请输入该边尾顶点:\n");

scanf("%d",&tail);

printf("请输入该边权值:\n");

scanf("%d",&weight);

if(!InsertEdge(head,tail,weight))

{

printf("不存在该边,请重输!\n");

continue;

}

}

}

bool Graph::FindVertex(const int& vertex)

//给出顶点vertex在图中的位置

{

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

if (vertex == Vertex[i])

return true;

return false;

}

bool Graph:: GetVertexPos(const int &vertex,int &i)

//给出顶点vertex在图中的位置

{

for (i = 0; i < vNum; i++)

if (vertex == Vertex[i])

return true;

return false;

}

bool Graph::InsertVertex(const int & vertex)

//插入一个顶点vertex

{

if (FindVertex(vertex))

return false;

V ertex[vNum] = vertex;

return true;

}

bool Graph::InsertEdge(const int v1,const int v2,const int weight)

//插入一条边(v1,v2),该边上的权值为weight

{

int k=0,j=0;

if(GetVertexPos(v1,k) && GetVertexPos(v2,j))

{

Edge[k][j]=weight;

eNum++;

Edge[j][k]=weight;

eNum++;

return true;

}

else

return false;

}

void Graph::Hospital()

//在以邻接带权矩阵表示的n个村庄中,求医院建在何处,使离医院最远的村庄到医院的路径最短。

{

int k,i,j,s;

for (k=0;k

for (i=0;i

for (j=0;j

if (Edge[i][k]+Edge[k][j]

Edge[i][j]=Edge[i][k]+Edge[k][j];

int m=MaxInt; //设定m为机器内最大整数。

printf("********************************************\n");

//以下为求各村离医院最近的医院选址

int min=MaxInt ; //设定机器最大数作村庄间距离之和的初值。

k=0; //k设医院位置。

for (j=0;j

{

m=0 ;

for (i=0;im)

{

min=m;

k=j;

} //取顶点间的距离之和的最小值。

}//for

printf("各村离医院最近的医院选址,要建医院的村庄号:%d\n",k+1); //输出要建医院的村庄号

//输出要建医院的村庄号及离医院最远的村庄到医院的距离

for(j=0;j

if(j!=k)

printf("该村庄离%d村庄最短距离为:%d\n",j+1,Edge[k][j]);

}//算法结束

int main()

{

Graph Town(MaxNumVertices);

Town.Hospital();

return 0;

}

五、程序调试及测试结果

请输入顶点数,注意本程序最多为10个!

5

请输入顶点名称:

1 2 3 4 5

以下输入边信息:

7

请输入第1边顶点:1

请输入该边尾顶点:2

请输入该边权值:1

请输入第2边头顶点:2

请输入该边尾顶点:3

请输入该边权值:1

请输入第3边顶点:3

请输入该边尾顶点:4

请输入该边权值:2

请输入第边4边顶点:4

请输入该边尾顶点:3

请输入该边权值:3

请输入第边5边顶点:4

请输入该边尾顶点:2

请输入该边权值:1

请输入第边6边顶点:3

请输入该边尾顶点:5

请输入该边权值:4

请输入第边7边顶点:5

请输入该边尾顶点:5

请输入该边权值:4

****************************

各村离医院最近的医院选址,要建医院的村庄号:2

该村庄离1村庄最短距离为:1

该村庄离3村庄最短距离是:2

该村庄离4村庄最短距离是:1

该村庄离5村庄最短距离是:6

六、结论

计算机科学是一门研究数据表示和数据处理的科学。数据是计算机化的信息,它是计算机可以直接处理的最基本和最重要的对象。无论是进行科学计算或数据处理、过程控制以及对文件的存储和检索及数据库技术等计算机应用领域中,都是对数据进行加工处理的过程。因此,要设计出一个结构好效率高的程序,必须研究数据的特性及数据间的相互关系及其对应的存储表示,并利用这些特性和关系设计出相应的算法和程序。数据结构是计算机科学与技术专业的专业基础课,是十分重要的核心课程。所有的计算机系统软件和应用软件都要用到各种类型的数据结构。因此,要想更好地运用计算机来解决实际问题,仅掌握几种计算机程序设计语言是难以应付众多复杂的课题的。要想有效地使用计算机、充分发挥计算机的性能,还必须学习和掌握好数据结构的有关知识。打好“数据结构”这门课程的扎实基础。

通过大型作业,让我们可以运用结合以前学过的知识去解决现实中的问题,该实验不仅是运用到C语言的知识,还运用了C++的只是,把C语言和C++相结合,很大的提高了我们的编程能力,同时也让我们学会互相结合各种编程语言去解决问题,还能够实验提高我们的实践能力,对我们个人能力的培养也具有很大的作用。

计算机对我们的现实世界、现实生活具有很大的作用,人们能够通过计算机去解决现实的问题,我们正好通过编程去解决,对现在来说也是很大的帮助。

在数据结构的学习过程中,我们的能力有很大的提高,对我们的未来是一个很大的帮助,对我们的编程积累很大的经验。

我感受最深的一点是:以前用C编程,只是注重如何编写函数能够完成所需要的功能,似乎没有明确的战术,只是凭单纯的意识和简单的语句来堆砌出一段程序。感觉有点像张飞打仗,有勇无谋,只要能完成任务就行。但现在编程感觉完全不同了。在编写一个程序之前,自己能够综合考虑各种因素,首先选取自己需要的数据结构,是树还是图或是别的什么?然后选定一种或几种存储结构来具体的决定后面的函数的主要风格。最后在编写每一个函数之前,可以仔细斟酌比对,挑选出最适合当前状况的算法。这样,即使在完整的程序还没有写出来之前,自己心中已经有了明确的原图了。这样无形中就提高了自己编写的程序的能力。

另外,我还体会到深刻理解数据结构的重要性。只有真正理解这样定义数据类型的好处,才能用好这样一种数据结构。了解典型数据结构的性质是非常有用的,它往往是编写程序的关键。

七、参考文献

【1】赵文静祁飞等编著《数据结构与算法》,科学出版社,2005.08 .

【2】赵文静编著《数据结C++语言描述》,西安交通大学出版社,1999 .

【3】Clifford A.Shaffer编著《数据结构与算法分析》(C++版),电子工业出版社,2002.7 【4】严蔚敏等编著,数据结构(C语言版),清华大学出版社,1997.4

【5】王国均主编,唐国民、苏晓萍、马渝副主编,《数据结构—C语言描述》,科学出版社,2005.08.

【6】谭浩强编著,《C++程序设计》,清华大学出版社,2004.06.

【7】唐国民、沈尔云编著,《C语言程序设计》,中国铁道出版社,2006.10.

【8】唐浩强主编,《C程序设计(第三版)》,清华大学出版社,2005.07

指导教师:日期:实验成绩:

四川大学《结构设计原理1643》在线作业答案

川大15秋《结构设计原理1643》在线作业答案 一、单选题: 1.题面如下: (满分:2) A. a B. b C. c D. d 2.预应力混凝土构件,当采用钢绞线、钢丝、热处理钢筋做预应力钢筋时,混凝土强度等级不宜低于( )。 (满分:2) A. C25 B. C30 C. C40 D. C45 3.适筋梁在逐渐加载过程中,当受拉钢筋刚刚屈服后,则( )。 (满分:2) A. 该梁达到最大承载力而立即破坏 B. 该梁达到最大承载力,一直维持到受压区边缘混凝土达到极限压应变而破坏 C. 该梁达到最大承载力,随后承载力缓慢下降,直至破坏 D. 该梁承载力略有增加,待受压区边缘混凝土达到极限压应变而破坏 4.题面如下: (满分:2) A. a B. b C. c D. d 5.提高截面刚度的最有效措施是( )。 (满分:2) A. 提高混凝土强度等级 B. 增大构件截面高度 C. 增加钢筋配筋量 D. 改变截面形状 6.钢筋混凝土大偏压构件的破坏特征是( )。 (满分:2) A. 远离纵向力作用一侧的钢筋拉屈,随后另一侧钢筋压屈,混凝土亦压碎 B. 靠近纵向力作用一侧的钢筋拉屈,随后另一侧钢筋压屈,混凝土亦压碎 C. 靠近纵向力作用一侧的钢筋和混凝土应力不定,而另一侧受拉钢筋拉屈 D. 远离纵向力作用一侧的钢筋和混凝土应力不定,而另一侧受拉钢筋拉屈 7.热轧钢筋冷拉后,( )。 (满分:2) A. 可提高抗拉强度和抗压强度 B. 只能提高抗拉强度 C. 可提高塑性,强度提高不多 D. 只能提高抗压强度 8.题面如下: (满分:2) A. a B. b C. c D. d

数据结构大作业含源代码

数据结构大作业 作业题目:职工信息管理系统 姓名: 学号: 班级: 指导教师: 日期:

一、主要功能: 这个职工信息管理系统是由C语言编写的程序,它用起来很方便又很灵活。它由输入职工信息,输出职工信息,按职工号,部门号,工资排序,按职工号,部门号,工资来输出职工的所有信息。删除有关职工的所有信息,保存职工的所有信息并退出等11个模块儿组成。 二、实验环境:C语言、C++、C# 等等。 三、功能说明: 下面按步骤来介绍一下,职工信息管理系统的基本操作。 这是运行程序以后出现的主界面。如图(1)所示: 图(1)主界面 1.输入职工的信息 该模块儿的功能是分别输入职工的姓名,职工号,部门号,工资等信息。每次输入职工的所有信息以后,界面上会显示出《输入完成!》的命令。如图(2)所示:

图(2)输入职工信息 2.输出所有的职工信息 该模块儿的功能是显示出有关职工的所有信息。操作如图(3)所示: 图(3)输出所有的职工信息 3.按职工号排序 该模块儿的功能是按职工号排序所有的职工。我们按3的时候,界面上会显示出《排序完成!》的命令。如图(4)所示:

图(4)按职工号排序 4.输出所有的职工号码 该模块儿的功能是显示出已排序好的所有职工的号码。操作如图(5)所示: 图(5)输出所有的职工号 5.按部门号排序 该模块儿的功能是按部门号排序所有职工的部门号。我们按5的时候,界面上会显示出《排序完成!》的命令。如图(6)所示:

图(6)按部门号排序 6.输出所有的部门号 该模块儿的功能是显示出已排序好的所有部门号。操作如图(7)所示: 图(7)输出所有的部门号 7.按职工的工资排序 该模块儿的功能是按工资排序所有职工的工资。我们按7的时候,界面上会显示出《排序完成!》的命令。如图(8)所示:

数据结构习题及参考答案

习题1 一、单项选择题 A1.数据结构是指()。 A.数据元素的组织形式 B.数据类型 C.数据存储结构 D.数据定义 C2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。 A.存储结构 B.逻辑结构 C.链式存储结构 D.顺序存储结构 D3.树形结构是数据元素之间存在一种()。 A.一对一关系 B.多对多关系 C.多对一关系 D.一对多关系 B4.设语句x++的时间是单位时间,则以下语句的时间复杂度为()。 for(i=1; i<=n; i++) for(j=i; j<=n; j++) x++; A.O(1) B.O(2n) C.O(n) D.O(3n) CA5.算法分析的目的是(1),算法分析的两个主要方面是(2)。 (1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 (2) A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 6.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。 (1) A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法 (2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性,稳定性和安全性 7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()。 A.低 B.高 C.相同 D.不好说 8.数据结构作为一门独立的课程出现是在()年。 A.1946 B.1953 C.1964 D.1968 9.数据结构只是研究数据的逻辑结构和物理结构,这种观点()。 A.正确 B.错误 C.前半句对,后半句错 D.前半句错,后半句对

四川大学网络教育学院《结构设计原理》第二次作业答案

四川大学网络教育学院《结构设计原理》第二次作业答案 你的得分: 90.0 完成日期:2014年09月09日 16点03分 说明:每道小题括号里的答案是您最高分那次所选的答案,标准答案将在本次作业结束(即2014年09月11日)后显示在题目旁边。 一、单项选择题。本大题共25个小题,每小题 2.0 分,共50.0分。在每小题给出的选项中,只有一项是符合题目要求的。 1. ( D ) A. a B. b C. c D. d 2.下列说法正确的是()。 ( D ) A.加载速度越快,则得的混凝土立方体抗压强度越低 B.棱柱体试件的高宽比越大,测得的抗压强度越高 C.混凝土立方体试件比棱柱体试件能更好地反映混凝土的实际受压 情况 D.混凝土试件与压力机垫板间的摩擦力使得混凝土的抗压强度提高 3. ( B ) A. a B. b C. c D. d 4.在保持不变的长期荷载作用下,钢筋混凝土轴心受压构件中,()。 ( C )

A.徐变使混凝土压应力减小 B.混凝土及钢筋的压应力均不变 C.徐变使混凝土压应力减小,钢筋压应力增大 D.徐变使混凝土压应力增大,钢筋压应力减小 5.适筋梁在逐渐加载过程中,当受拉钢筋刚刚屈服后,则()。 ( D ) A.该梁达到最大承载力而立即破坏 B.该梁达到最大承载力,一直维持到受压区边缘混凝土达到极限压应 变而破坏 C.该梁达到最大承载力,随后承载力缓慢下降,直至破坏 D.该梁承载力略有增加,待受压区边缘混凝土达到极限压应变而破坏 6. ( B ) A. a B. b C. c D. d 7.提高受弯构件正截面受弯能力最有效的方法是()。 ( C ) A.提高混凝土强度等级 B.增加保护层厚度 C.增加截面高度 D.增加截面宽度 8.在T形截面梁的正截面承载力计算中,假定在受压区翼缘计算宽度b′ f 内,()。 ( A ) A.压应力均匀分布 B.压应力按抛物线型分布

数据结构大作业

浙江大学城市学院实验报告 课程名称数据结构基础 实验项目名称实验九栈的应用 学生姓名丁汀专业班级信管1006 学号31001444 实验成绩指导老师(签名)日期 一.实验目的和要求 1、学会通过对问题的分析,设计一种合理的数据结构,并进行定义及操作的实现。 2、掌握利用栈各种操作来进行具体的实际应用。 3、加强综合程序的分析、设计能力。 二.实验内容 1、共享栈的设置,问题描述如下: 在一个数组空间stack[MaxSize]中可以同时存放两个顺序栈,栈底分别处在数组的两端,当第1个栈的栈顶指针top1等于-1时则栈1为空,当第2个栈的栈顶指针top2等于MaxSize时则栈2为空。两个栈均向中间增长,当有元素向栈1进栈时,使top1增1得到新的栈顶位置,当有元素向栈2进栈时,使top2减1得到新的栈顶位置。当top1==top2-1或top1+1==top2时,存储空间用完,无法再向任一栈做进栈操作,此时可考虑给出错误信息并停止运行。 要求: ⑴给出共享栈的顺序存储类型定义。 ⑵给出共享栈的抽象数据类型定义。 ⑶建立头文件test9_stack.h,包含共享栈的基本操作实现函数;建立主程序文件test9.cpp,在主函数中对共享栈的各个操作进行测试。 2、利用上述共享栈,实现火车车厢的调度模拟 设火车车厢分为三类:硬座、硬卧、软卧,分别用A、B、C表示。下图描述车厢调度的示意图,图中右端为排列无序的车厢,左端为调度后的车厢排列,使得所有软卧车厢在最前面、所有硬卧车厢在中间、所有硬座车厢在最后。 编程模拟上述车厢调度过程。 提示:两个辅助铁轨相当于两个栈,右端车厢进入用相应字符串给出,如“BBACBCAABBCAA”,左端车厢的用新生成的字符串给出。在test9_stack.h 给出模拟函数,并在主函数中进行调用测试。

数据结构作业题及参考答案

东北农业大学网络教育学院 数据结构作业题(一) 一、选择题(每题2分,共20分) 1.在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为()。 A、O(n) B、O (n/2) C、O (1) D、O (n2) 2.带头结点的单链表first为空的判定条件是()。 A、first == NULL; B、first->link == NULL; C、first->link == first; D、first != NULL; 3.在一棵树中,()没有前驱结点。 A、分支结点 B、叶结点 C、树根结点 D、空结点 4.在有向图中每个顶点的度等于该顶点的()。 A、入度 B、出度 C、入度与出度之和 D、入度与出度之差 5.对于长度为9的有序顺序表,若采用折半搜索,在等概率情况下搜索成功的平均搜索长度为()的值除以9。 A、20 B、18 C、25 D、22 6.下列程序段的时间复杂度为()。 s=0; for(i=1;i

数据结构大作业报告

数据结构大作业报告 数据结构大作业实验报告课程名称:数据结构设计题目:客户去银行储蓄模拟程序一( 实验题目 (1)内容描述:编写一个程序反映客户到银行储蓄的过程。 (2)基本要求:要实现以下功能:1:排队 2:储蓄 3:查看排队4.:删除自己所排的队 5.不再排队,剩下的客户依次储蓄 6:下班 二( 实验的工程组成图和程序结构图 main bank 本工程的组成结构如左图所示,程序结构图如右图所示。三( 工程所包含的函数的功能描述 Bank():模拟客户到银行去储蓄的过程。客户排队储蓄,所以要用到一个队列, 这里设计了一个不带头结点的单链表作为队列。 四( 实验工程的算法描述及流程图 //客户排队去银行储蓄,用到了队列的知识,这里设计了一个不带头结点的单链表作为队列来完成排队储蓄过程 #include

#include typedef struct qnode { int data; struct qnode *next; } QNode; //定义链队结点类型 typedef struct { QNode *front,*rear; } QType; //定义链队类型 void bank() //模拟客户储蓄的过程 { int cho,onwork=1,no,find; QType *q; //定义链队类型的指针 QNode *p,*r; //定义链队结点的指针 q=(QType *)malloc(sizeof(QType)); //申请链队的空间 q->front=q->rear=NULL; //创建空队 while (onwork==1) //循环执行 { printf("1:排队 2:储蓄 3:查看排队4:删除自己所排的队 5:不再排队,剩下的客户依次储蓄 6:下班请选择:"); scanf("%d",&cho); switch(cho) { case 1://排队

新编机械结构设计大作业

《结构设计》课程大作业 、课程大作业的目的: 1、课程大作业属于机械专业设计类课程的延续,是机械系统设计的一次全面训练,可以为毕业设计打下良好基础。通过课程大作业,进一步学习掌握机械系统设计的一般方法,培养学生综合运用机械制图、机械设计、机械原理、公差与配合、金属工艺学、材料热处理及结构工艺等相关知识,联系实际并运用所学过的知识,提高进行工程设计的能力。 2、加强学生运用有关设计资料、设计手册、标准、规范及经验数据的能力,提高技术总结及编制技术文件的能力,培养和提高学生独立的分析问题、解决问题的能力,也是毕业设计教学环节实施的前期技术准备。 二、课程大作业的基本要求: 1 、分组与选题: ①自由组合,每组原则上三人(最少2人);每组的同学统一提交、共同答辩。 ②具体课题题目(由指导教师给出),同组同学集体研讨后完成。 2、大作业的基本要求: ①大作业的论述必须合理; ②大作业中的内容要注明出处,注明资料来源(参考文献及资料); ③总的文字(含图、表)不少于2万字,使用标准A4纸打印成稿(文字选用宋体小四号,页边距均为2cm,单倍行距),封面需要注明课题详细名称、参加学生姓名、班级学号、指导教师等。 三、课程大作业题目及其要点 举例说明在下列的机械结构设计中,如何提高机械结构性能的途径或措施有那些?(围绕题目和要点) 机自082-28吴铁健、-29张明、-14张钦亮:

(1)便于退刀准则 (2)最小加工量准则 (3)可靠夹紧准则 (4)一次夹紧成形准则 (5)便利切削准则 (6)减少缺口效应准则 (7)避免斜面开孔准则 (8)贯通空优先准则 (9)孔周边条件相近准则 机自083 -06焦文、-36张浩然、-14 丁世洋: (一)提高强度和刚度的结构设计 1、载荷分担 2、载荷均布 3、减少机器零件的应力集中 4、利用设置肋板的措施提高刚度 (二)提高耐磨性的结构设计

数据结构大作业要求

数据结构实验讲义 一实验步骤 随之计算机性能的提高,它所面临的软件开发的复杂度也日趋增加。然而,编制一个10,000行的程序的难度绝不仅仅是一个5,000行的程序两倍,因此软件开发需要系统的方法。一种常用的软件开发方法,是将软件开发过程划分为分析、设计、实现和维护四个阶段。虽然数据结构课程中的实习题的复杂度远不如(从实际问题中提出来的)一个“真正的,,软件,但为了培养一个软件工作者所应具备的科学工作的方法和作风,我们制订了如下所述完成实习的五个步骤:’ (一)问题分析和任务定义 通常,实习题目的陈述比较简洁,或者说是有模棱两可的含义。因此,在进行设计之前,首先应该充分地分析和理解问题,明确问题要求做什么?限制条件是什么。注意:本步骤强调的是做什么?而不是怎么做。对问题的描述应避开算法和所涉及的数据类型,而是对所需完成的任务作出明确的回答。例如:输入数据的类型、值的范围以及输入的形式;输出数据的类型、值的范围及输出的形式;若是会话式的输入,则结束标志是什么?是否接受非法的输入?对非法输入的回答方式是什么等。这一步还应该为调试程序准备好测试数据,包括合法的输入数据和非法形式的输入数据。 (二)数据类型和系统设计 在设计这一步骤中需分逻辑设计和详细设计两步实现。逻辑设计指的是,对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型;详细设计则为定义相应的存储结构并写出各函数的伪码算法。在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。作为逻辑设计的结果,应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的规格说明),各个主要模块的算法,并画出模块之间的调用关系图。详细设计的结果是对数据结构和基本操作的规格说明作出进一步的求精,写出数据存储结构的类型定义,按照算法书写规范用类c语言写出函数形式的算法框架。在求精的过程中,应尽量避免陷入语言细节,不必过早表述辅助数据结构和局部变量。 (三)编码实现和静态检查 编码是把详细设计的结果进一步求精为程序设计语言程序。程序的每行不要超过60个字符。每个函数体,即不计首部和规格说明部分,一般不要超过40行,最长不得超过60行,否则应该分割成较小的函数。要控制if语句连续嵌套的深度。其他要求参见第一篇的

《数据结构》填空作业题(答案)

《数据结构》填空作业题答案 第 1 章绪论(已校对无误) 1.数据结构包括数据的逻辑结构、数据的存储结构和数据的运算三方面的内容。 2.程序包括两个内容:数据结构和算法。 3.数据结构的形式定义为:数据结构是一个二元组:Data Structure =( D, S)。 4.数据的逻辑结构在计算机存储器内的表示,称为数据的存储结构。 5.数据的逻辑结构可以分类为线性结构和非线性结构两大类。 6.在图状结构中,每个结点的前驱结点数和后继结点数可以有多个。 7.在树形结构中,数据元素之间存在一对多的关系。 8.数据的物理结构,指数据元素在计算机中的标识(映象),也即存储结构。 9.数据的逻辑结构包括线性结构、树形结构和图形结构 3 种类型,树型结构和有向 图结构合称为非线性结构。 10. 顺序存储结构是把逻辑上相邻的结点存储在物理上连续的存储单元里,结点之间的逻辑 关系由存储单元位置的邻接关系来体现。 11. 链式存储结构是把逻辑上相邻的结点存储在物理上任意的存储单元里,节点之间的逻辑 关系由附加的指针域来体现。 12.数据的存储结构可用 4 种基本的存储方法表示,它们分别是顺序存储、链式存储、索引存储和散列存储。 13. 线性结构反映结点间的逻辑关系是一对一的,非线性结构反映结点间的逻辑关系是一对多或多对多。 14.数据结构在物理上可分为顺序存储结构和链式存储结构。 15. 我们把每种数据结构均视为抽象类型,它不但定义了数据的表示方式,还给出了处理数 据的实现方法。 16.数据元素可由若干个数据项组成。 17.算法分析的两个主要方面是时间复杂度和空间复杂度。 18.一个算法的时间复杂度是用该算法所消耗的时间的多少来度量的,一个算法的空间复杂 度是用该算法在运行过程中所占用的存储空间的大小来度量的。 19.算法具有如下特点:有穷性、确定性、可行性、输入、输出。 20. 对于某一类特定的问题,算法给出了解决问题的一系列操作,每一操作都有它的确切 的定义,并在有穷时间内计算出结果。 21. 下面程序段的时间复杂度为㏒ 3n 。 1

结构设计原理第一次作业答案

首页-我的作业列表-《结构设计原理》第一次作业答案 欢迎你,刘晓星(DI4131R6009 '你的得分:100.0 完成日期:2014年07月02日10点04分 一、单项选择题。本大题共25个小题,每小题2.0 分,共50.0分。在每小题给出的选项中,只有一 项是符合题目要求的。 若用S表示结构或构件截面上的荷载效应,用R表示结构或构件截面的抗力,结构或构件截面处于极限状态时,对应于()式。 (B ) R> S R= S R v S R WS 对所有钢筋混凝土结构构件都应进行()。 (D ) 抗裂度验算 裂缝宽度验算 变形验算 承载能力计算混凝土各项强度指标的基本代表值是()。 (B ) 轴心抗压强度标准值立方体抗压强度标准值 轴心抗压强度平均值立方体抗压强度平均值 工程结构的可靠指标3与失效概率P f之间存在下列()关系。 (D ) 3愈大,P f愈大 3与P f呈反比关系 3与P f呈正比关系 3与P f存在一一对应关系,3 愈大,P f愈小

(B ) a b c d 热轧钢筋冷拉后,()。 (A ) 可提高抗拉强度和抗压强度只能提高抗拉强度 可提高塑性,强度提高不多 只能提高抗压强度 无明显流幅钢筋的强度设计值是按()确定的。 (C ) 材料强度标准值x材料分布系数 材料强度标准值/材料分项系数 0.85 x材料强度标准值/材料分项系数 材料强度标准值/ (0.85 x材料分项系数) 钢筋混凝土梁的受拉区边缘混凝土达到下述哪一种情况时,开始出现裂缝?( ) (A ) 达到混凝土实际的轴心抗拉强度 达到混凝土轴心抗拉强度标准值 达到混凝土轴心抗拉强度设计值 达到混凝土弯曲受拉时的极限拉应变值 (D ) a b c d

家谱管理系统 -数据结构大作业

/* 家谱管理系统 任务:实现具有下列功能的家谱管理系统 功能要求: 1). 输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容: 姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。 2). 实现数据的存盘和读盘。 3). 以图形方式显示家谱。 4). 显示第n 代所有人的信息。 5). 按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。 6). 按照出生日期查询成员名单。 7). 输入两人姓名,确定其关系。 8). 某成员添加孩子。 9). 删除某成员(若其还有后代,则一并删除)。 10).修改某成员信息。 11).按出生日期对家谱中所有人排序。 12).打开一家谱时,提示当天生日的健在成员。 要求:建立至少30个成员的数据,以较为直观的方式显示结果,并提供文稿形式以便检查。界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求相关数据要存储在数据文件中。测试数据:要求使用1、全部合法数据;2、局部非法数据。进行程序测试,以保证程序的稳定。 测试数据及测试结果请在上交的资料中写明; */ #include #include #include #include #include"map.h" #define MAXN 100 #define MAXMEM 100 #define Elemtype char ============================== //树 typedef struct BiTNode { int mark;//标记 int level; char name[50];//姓名 char birthday[50];//生日

数据结构习题及参考答案 .

习题1 一、单项选择题 1.数据结构是指()。 A.数据元素的组织形式 B.数据类型 C.数据存储结构 D.数据定义 2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。 A.存储结构 B.逻辑结构 C.链式存储结构 D.顺序存储结构 3.树形结构是数据元素之间存在一种()。 A.一对一关系 B.多对多关系 C.多对一关系 D.一对多关系 4.设语句x++的时间是单位时间,则以下语句的时间复杂度为()。 for(i=1; i<=n; i++) for(j=i; j<=n; j++) x++; A.O(1) B.O(2n) C.O(n) D.O(3n) 5.算法分析的目的是(1),算法分析的两个主要方面是(2)。 (1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 (2) A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 6.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。 (1) A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法 (2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性,稳定性和安全性 7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()。 A.低 B.高 C.相同 D.不好说 8.数据结构作为一门独立的课程出现是在()年。 A.1946 B.1953 C.1964 D.1968 9.数据结构只是研究数据的逻辑结构和物理结构,这种观点()。 A.正确 B.错误 C.前半句对,后半句错 D.前半句错,后半句对

大数据结构大作业报告材料

数据结构课程设计课题名称 专业名称 学生姓名 学号+电话 指导教师

评分细则

目录 评分细则----------------------------------------------------------------------------------------------------------------- 2 一、课题描述 ---------------------------------------------------------------------------------------------------------- 4 二、需求分析 ---------------------------------------------------------------------------------------------------------- 4 2.1 ------------------------------------------------------------------------------------------------------------------ 4 2.2- ------------------------------------------------------------------------------------------------------------------4 2.3--------------------------------------------------------------------------------------------------------------------4 三、概要设计 ---------------------------------------------------------------------------------------------------------- 4 3.1 结构分析 ----------------------------------------------------------------------------------------------------------- 4 3.2函数------------------------------------------------------------------------------------------------------------ 4 3.2.1 malloc() --------------------------------------------------------------------------------------------- 4 3.2.2getchar() ----------------------------------------------------------------------------------------------------- 5 3.2.3 list_create() ------------------------------------------------------------------------------------------------ 5 3.2.4 list_disp() --------------------------------------------------------------------------------------------------- 5 3.2.5 list_sort() --------------------------------------------------------------------------------------------------- 5 四、详细设计 ---------------------------------------------------------------------------------------------------------- 5 4.1课题分析 ----------------------------------------------------------------------------------------------------- 5 4.1.1选择 ------------------------------------------------------------------------------------------------- 5 4.1.2冒泡 --------------------------------------------------------------------------------------------------------- 5 4.1.3 堆------------------------------------------------------------------------------------------------------------ 6 4.1.4 快速--------------------------------------------------------------------------------------------------------- 6 4.1.5 基数--------------------------------------------------------------------------------------------------6 4.1.6 希尔--------------------------------------------------------------------------------------------------------- 6 4.1.7 归并--------------------------------------------------------------------------------------------------6 4.2课题实现 ----------------------------------------------------------------------------------------------------- 7 五、测试数据及结果------------------------------------------------------------------------------------------------- 9 六、调试分析及总结----------------------------------------------------------------------------------------------- 10

结构优化设计大作业(北航)

《结构优化设计》 大作业报告 实验名称: 拓扑优化计算与分析 1、引言 大型的复杂结构诸如飞机、汽车中的复杂部件及桥梁等大型工程的设计问题,依靠传统的经验和模拟实验的优化设计方法已难以胜任,拓扑优化方法成为解决该问题的关键手段。近年来拓扑优化的研究的热点集中在其工程应用上,如: 用拓扑优化方法进行微型柔性机构的设计,车门设计,飞机加强框设计,机翼前缘肋设计,卫星结构设计等。在其具体的操作实现上有两种方法,一是采用计算机语言编程计算,该方法的优点是能最大限度的控制优化过程,改善优化过程中出现的诸如棋盘格现象等数值不稳定现象,得到较理想的优化结果,其缺点是计算规模过于庞大,计算效率太低;二是借助于商用有限元软件平台。本文基于matlab软件编程研究了不同边界条件平面薄板结构的在各种受力情况下拓扑优化,给出了几种典型结构的算例,并探讨了在实际优化中优化效果随各参数的变化,有助于初学者初涉拓扑优化的读者对拓扑优化有个基础的认识。

2、拓扑优化研究现状 结构拓扑优化是近20年来从结构优化研究中派生出来的新分支,它在计算结构力学中已经被认为是最富挑战性的一类研究工作。目前有关结构拓扑优化的工程应用研究还很不成熟,在国外处在发展的初期,尤其在国内尚属于起步阶段。1904 年Michell在桁架理论中首次提出了拓扑优化的概念。自1964 年Dorn等人提出基结构法,将数值方法引入拓扑优化领域,拓扑优化研究开始活跃。20 世纪80 年代初,程耿东和N. Olhoff在弹性板的最优厚度分布研究中首次将最优拓扑问题转化为尺寸优化问题,他们开创性的工作引起了众多学者的研究兴趣。1988年Bendsoe和Kikuchi发表的基于均匀化理论的结构拓扑优化设计,开创了连续体结构拓扑优化设计研究的新局面。1993年Xie.Y.M和Steven.G.P 提出了渐进结构优化法。1999年Bendsoe和Sigmund证实了变密度法物理意义的存在性。2002 年罗鹰等提出三角网格进化法,该方法在优化过程中实现了退化和进化的统一,提高了优化效率。目前常使用的拓扑优化设计方法可以分为两大类:退化法和进化法。结构拓扑优化设计研究,已被广泛应用于建筑、航天航空、机械、海洋工程、生物医学及船舶制造等领域。 3、拓扑优化建模(SIMP) 结构拓扑优化目前的主要研究对象是连续体结构。优化的基本方法是将设计区域划分为有限单元,依据一定的算法删除部分区域,形成带孔的连续体,实现连续体的拓扑优化。连续体结构拓扑优化方法目前比较成熟的是均匀化方法、变密度方法和渐进结构优化方法。 变密度法以连续变量的密度函数形式显式地表达单元相对密度与材料弹性模量之间的对应关系,这种方法基于各向同性材料,不需要引入微结构和附加的均匀化过程,它以每个单元的相对密度作为设计变量,人为假定相对密度和材料弹性模量之间的某种对应关系,程序实现简单,计算效率高。变密度法中常用的插值模型主要有:固体各向同性惩罚微结构模型(solidisotropic microstructures with penalization,简称SIMP)和材料属性的合理近似模型(rational approximation ofmaterial properties,简称RAMP)。而本文所用即为SIMP插值模型。

数据结构作业(附答案)

1.数据的最小单位是( A )。 (A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量 2.下面关于线性表的叙述错误的是(D)。 (A) 线性表采用顺序存储必须占用一片连续的存储空间 (B) 线性表采用链式存储不必占用一片连续的存储空间 (C) 线性表采用链式存储便于插入和删除操作的实现 (D) 线性表采用顺序存储便于插入和删除操作的实现 3.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为(C)。 (A) R-F (B) F-R (C) (R-F+M)%M (D) (F-R+M)%M 4.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为(A)。 (A) BADC(B)BCDA (C) CDAB (D) CBDA 5.设某棵二叉树中有2000个结点,则该二叉树的最小高度为(C)。 (A) 9 (B) 10 (C) 11(D) 12 6.下面程序的时间复杂为(B) for(i=1,s=0;i<=n;i++){t=1;for(j=1;j<=i;j++) t=t*j;s=s+t;} (A) O(n) (B) O(n2)(C) O(n3) (D) O(n4) 7.设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为(C)。 (A) q=p->next;p->data=q->data;p->next=q->next;free(q); (B) q=p->next;q->data=p->data;p->next=q->next;free(q); (C) q=p->next;p->next=q->next;free(q); (D) q=p->next;p->data=q->data;free(q); 8.设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为(C )。 (A)O(n) (B) O(nlog2n) (C) O(1)(D) O(n2) 9.设一棵二叉树的深度为k,则该二叉树中最多有(D )个结点。 (A) 2k-1 (B) 2k(C) 2k-1(D) 2k-1 10.设用链表作为栈的存储结构则退栈操作( B )。 (A) 必须判别栈是否为满(B) 必须判别栈是否为空 (C) 判别栈元素的类型(D) 对栈不作任何判别 11.函数substr(“DATASTRUCTURE”,5,9)的返回值为(A )。 (A) “STRUCTURE”(B) “DATA” (C) “ASTRUCTUR”(D) “DATASTRUCTURE” 12.设某二叉树中度数为0的结点数为N0,度数为1的结点数为N l,度数为2的结点数为N2,则下列等式成立的是( C)。 (A) N0=N1+1 (B) N0=N l+N2(C) N0=N2+1(D) N0=2N1+l 13.设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是(B )。 (A) 空或只有一个结点(B) 高度等于其结点数 (C) 任一结点无左孩子(D) 任一结点无右孩子 14. 深度为k的完全二叉树中最少有( B )个结点。 (A) 2k-1-1 (B) 2k-1(C) 2k-1+1(D) 2k-1

10路桥 结构设计原理大作业

某装配式钢筋混凝土简支T形梁设计 一、设计资料 (一)桥梁基本概况 1.桥面净空:净-7m+2×1.5m 2.设计荷载:公路-Ⅱ级汽车荷载,人群3.5KN/m2,结构安全等级为二级,内力计算结果见(二)3.材料规格: Ⅰ类环境条件,钢筋及混凝土材料规格由学生根据相关规定自选 4.结构尺寸: T形主梁:标准跨径L b=20.00m,计算跨径L j=19.50m,主梁全长L=19.96m 横断面及尺寸如图所示: 图1 桥面剖面示意图 图2 T梁横断面尺寸(mm) (二)内力计算(结果摘抄) 表1:弯矩标准值M d汇总表KN·m

表2 剪力标准值V d汇总表KN 二、设计依据 中华人民共和国行业标准《公路钢筋混凝土及预应力混凝土桥涵设计规范》JTG D62-2004 中华人民共和国行业标准《公路桥涵设计通用规范》JTG D60-2004 三、提交成果及要求 1.设计说明书一份 要求:内容完整,设计合理,引用公式正确,计算准确,书写工整; 2.一片主梁配筋图一张 内容:主梁配筋图、钢筋大样图 要求:用白绘图纸,绘3号图(可加长),作图规范,有图框、有标题栏,用铅笔绘图,写工程字; 3.必须自己独立完成设计,不得抄袭,一经发现抄袭者按零分处理。 四、参考文献 1.叶见曙主编,《结构设计原理》人民交通出版社第二版2005; 2.赵顺波主编:《混凝土结构设计原理》,同济大学出版社,2004.8; 3.张树仁等,《钢筋混凝土及预应力混凝土桥梁结构设计原理》,人民交通出版社,200 4.9 4.中华人民共和国行业标准:《公路钢筋混凝土及预应力混凝土桥涵设计规范》,人民交通出版社, 2004.10。 注:提交成果可用计算机完成,但必须打印规范,作图正确。

数据结构大作业

数据结构课程设计 题目:长整数四则运算 班级:信管12-1 学号:1201050642 姓名:庄术洁 指导老师:刘晓庆 2014年5月22日

一、需求分析 1、利用双向循环链表实现长整数的存储,每个结点含一个整数变量。任何整形变量的范围是—(2^15—1)~(2^15—1)。输入和输出形式:按中国对于长证书的表示习惯,每四位一组,组间用逗号隔开。 2、测试数据 (1) 0; 0;应输出“0” (2)—2345,6789;—7654,3211;应输出“—1,0000,0000”。 (3)—9999,9999;1,0000,0000,0000;应输出“9999,0000,0001”。 (4)1,0001,0001;—1,0001,0001;应输出“0”。 (5)1,0001,0001;—1,0001,0000;应输入“1”。 (6)—9999,9999,9999;—9999,9999,9999;应输出“—1,9999,9999,9998”。 (7)1,0000,9999,9999;1应输出“1,0001,0000,0000”。 二、概要设计 为上述程序功能,应以有序表实现长整数的存储,为此,需要抽象数据类型:有序表

(8)有序表的抽象数据类型定义为: ADT Dulinklist{ 数据对象: D={ai|ai为带符号整数,1,2,…,n,n>=0} 数据关系:R1={|ai-1,ai属于集合D,ai-1

相关文档