当前位置:文档之家› 数据结构大作业

数据结构大作业

数据结构大作业
数据结构大作业

数据结构课程设计

题目:长整数四则运算

班级:信管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

基本操作:

InitDulinklist(&)

操作结果:构造一个空的有序表L

DestroyDulinklist(&)

初始条件:有序表L已存在

操作结果:销毁有序表L

DulinklistLength(L)

初始条件:有序表L已存在

操作结果:返回有序表L的长度

DulinklistEmpty(L)

初始条件:有序表L已存在

操作结果:若有序表L为空表,则返回TUER,否则返回FALSE

GetElem(L,pos)

初始条件:有序表L已存在

操作结果:若干1〈=POS〈=LENGTH(L),则返回有序表L 中第POS个数据元素。

Append(&L,e)

初始条件:有序表L已存在

操作结果:在有序表L的末尾插入元素e

}ADT Dulinklist

3.本程序包含三个模块:

1)主程序模块:

2)有序表单元模块——实现有序表的抽象数据类型;

3)结点结构单元模块——定义有序表的结点结构

各模块之间的调用关系如下:

主程序模块

有序表单元模块

结点结构单元模块

typedef struct DoubleNode //定义链表元素

void InitNode(DLNode **head) //初始化链表

int InsertNode(DLNode *head,int n,DataType x) //向链表第N个位置插入元素X

int digit(int n) //判断整数N有几位

void PrintNode(DLNode *head) //打印链表

void DestroyNode(DLNode **head)//销毁链表

void add(DLNode *h1,DLNode *h2) //两数相加

void jian(DLNode *h1,DLNode *h2) //两数相减

int main() //入口函数

四、调试分析

由于在程序设计时,对于指针的不了解,编程时使用双重指针,无形中给自己增添了更多麻烦。老师在检查的过程中指出并教导了这一点

五.用户手册

1.本程序的运行环境为DOS操作系统,执行文件为:

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”

七、附录

#include

#include

#include

#include

#define N 100

typedef int DataType;

typedef struct DoubleNode //定义链表元素

{ DataType data;

struct DoubleNode *prior;

struct DoubleNode *next; }DLNode;

void InitNode(DLNode **head) //初始化链表

{

if((*head=(DLNode*)malloc(sizeof(DLNode)))==NULL)

exit(1);

(*head)->prior=*head;

(*head)->next=*head; }

int InsertNode(DLNode *head,int n,DataType x) //向链表第N个位置插入元素X

{ DLNode *p,*nt;

int i=0;

p=head->next;

while(p!=head&&i

p=p->next; i++; }

if(i!=n) {

printf("插入位置错误\n");

return 0; }

if((nt=(DLNode *)malloc(sizeof(DLNode)))==NULL)

exit(1);

nt->data=x;

nt->prior=p->prior; nt->prior->next=nt;

nt->next=p;

p->prior=nt;

return 1; }

int digit(int n) //判断整数N有几位

{

int i;

for(i=1;;n/=10,i++) {

if(n/10==0) return i; } }

void PrintNode(DLNode *head) //打印链表

{ DLNode *p=head->next; int i;

while(p->data==0) //去掉前面的一串0

{ p=p->next; if(p==head) { printf("0\n"); retu rn; } }

printf("%d",p->data); //最前面的一个数进行特殊处理,不用补零

p=p->next;

while(p!=head) //打印后面的数字

{ printf(",");

if(p->data==0)

{

printf("0000");

p=p->next;

continue; }

for(i=0;i<4-digit(p->data);i++) //补零

printf("0");

printf("%d",p->data); p=p->next; }

printf("\n"); }

void DestroyNode(DLNode **head)

{ DLNode *p,*p1; p=(*head)->next;

while(p!=*head)

{ p1=p;

p=p->next; free(p1); }

free(p); head=NULL; }

void add(DLNode *h1,DLNode *h2) //两数相加{ DLNode *p1=h1->prior,*p2=h2->prior;

while(p1!=h1&&p2!=h2) //每个链表元素相加

{ p1->data+=p2->data

p1=p1->prior; p2=p2->prior; }

p1=h1->prior;

while(p1!=h1->next) //处理链表元素

{ if(p1->data>=10000)

{ p1->prior->data+=p1->data/10000;

p1->data%=10000; } if(p1->data<0) //处理负数{ if(h1->next!=0)

{ p1->prior->data-=1;

p1->data+=10000; } } p1=p1->prior; }

if(h1->next->data>=10000) //处理最前面的数{ InsertNode(h1,0,h1->next->data/10000);

if(h1->data<=-10000)

{ InsertNode(h1,0,h1->next->data/10000);

h1->next->next->data%=-10000; }

PrintNode(h1); }

Void jian(DLNode *h1,DLNode *h2) //两数相减

{ DLNode *p1=h1->prior,*p2=h2->prior;

while(p1!=h1&&p2!=h2) //每个链表元素相减

{ p1->data-=p2->data p1=p1->prior;

p2=p2->prior; } p1=h1->prior;

while(p1!=h1->next) //处理链表元素

{ if(p1->data>=10000)

{ p1->prior->data+=p1->data/10000;

p1->data%=10000; }

if(p1->data<0) //处理负数

{ if(h1->next!=0) { p1->prior->data-=1; p1->da ta+=10000; } } p1=p1->prior; }

if(h1->next->data>=10000) //处理最前面的数

{ InsertNode(h1,0,h1->next->data/10000);

h1->next->next->data%=10000; }

if(h1->data<=-10000)

{ InsertNode(h1,0,h1->next->data/-10000);

PrintNode(h1); }

int main() //入口函数 {

DLNode *head1,*head2;

InitNode(&head1);

InitNode(&head2);

char data1[N],data2[N];

char d1[10],d2[10];

int i,j,k;

int xun; while(1)

{ printf("输入数据:\n");

scanf("%s %s",data1,data2);

InitNode(&head1); InitNode(&head2); i=0;k=0; while(data1[i]!=';') //将数1用链表储存

{

for(j=0;j<10;j++) d1[j]=0; j=0;

while(data1[i]!=';'&&data1[i]!=',')

d1[j++]=data1[i++];

if(data1[i]==',') i++;

if(data1[0]=='-') //处理正负数

j=-(int)fabs(atoi(d1));//将字符串转换成整数

else j=atoi(d1);

InsertNode(head1,k++,j); }

i=0; k=0;

while(data2[i]!=';') //将数2用链表储存

{

for(j=0;j<10;j++) d2[j]=0; j=0;

while(data2[i]!=';'&&data2[i]!=',')

d2[j++]=data2[i++]; if(data2[i]==',') i++;

if(data2[0]=='-') //处理正负数

j=-(int)fabs(atoi(d2));

else j=atoi(d2);

InsertNode(head2,k++,j); }

printf("选择加减法:1—加法,2-减法\n");

scanf("%d",&xun);

switch(xun)

{

case 1:if(strlen(data1)>strlen(data2)) //较长的数作为被加数

add(head1,head2);

else add(head2,head1);

break;

case 2:if(strlen(data1)>strlen(data2)) //较长的数作

为被减数

jian(head1,head2);

else jian(head2,head1); break;

default:break; }

DestroyNode(&head1);

DestroyNode(&head2); } return 0; }

四川大学《结构设计原理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)所示:

数据结构大作业

浙江大学城市学院实验报告 课程名称数据结构基础 实验项目名称实验九栈的应用 学生姓名丁汀专业班级信管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 给出模拟函数,并在主函数中进行调用测试。

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

四川大学网络教育学院《结构设计原理》第二次作业答案 你的得分: 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.压应力按抛物线型分布

数据结构大作业报告

数据结构大作业报告 数据结构大作业实验报告课程名称:数据结构设计题目:客户去银行储蓄模拟程序一( 实验题目 (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语句连续嵌套的深度。其他要求参见第一篇的

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

首页-我的作业列表-《结构设计原理》第一次作业答案 欢迎你,刘晓星(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];//生日

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

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

评分细则

目录 评分细则----------------------------------------------------------------------------------------------------------------- 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插值模型。

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

数据结构大作业-纸牌游戏

数据结构课程设计大作业 题目纸牌游戏 专业计算机科学与技术 学生姓名 __________________ 学号 _____________________ 指导教师 __________________ 完成日期 __________________ 信息与工程学院

目录 一、实验内容概述(设计任务与技术要求) (1) 二、实验目的概述(总体设计方案) (1) 三、解题思路的描述(数据结构和算法的设计): (1) 四、源程序清单(源程序中应该附有必要的注释) (2) 五、程序调试及测试结果 (4) 六、结论 (4) 七、参考文献 (5)

【内容摘要】 编号为1~52的牌,正面向上,从第二张开始,以2为基数,是2的倍数的牌翻一次,直到最 后一张牌;然后,从第三张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后从 第四张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;依次类推,知道所有以52 为基数的牌翻过一次。输出:这时正面向上的牌有哪些? 【关键字】 52张纸牌,倍数,基数,数组 【Abstract 】 Numbered 1 to 52 cards, face up, starting from the second to 2 as the base, is a multiple of 2 cards turning on ce, un til the last card; and the n, begi nning from the third to 3 as the base,is a multiple of 3 cards turning once, un til the last card; and the n start from the fourth to 4 as the base, is a multiple of 4 cards turning once, un til the last card; and so on, that was all of 52base of the card turned over on ce.Output: At this time what the cards face up? 【Key words 】 52 cards, multiple, base, array

大工19秋《结构设计原理》大作业题目及要求参考答案

大连理工大学《结构设计原理》大作业 学习中心: 姓 名: 学 号: 题目二:钢结构题目。 已知钢屋架的端斜杆,截面为双角钢2∟125×80×10,长肢相连,如下图所示,承受的轴心拉力设计值kN 550=N ,两主轴方向计算长度分别为cm 240y 00==l l x ,试验算此截面的整体稳定性。钢材为Q235。 y y x x 122∟125×80×10 解:本题为双角钢轴压构件整体稳定验算,由于截面为单轴对称的构件,因此, 绕非对称轴x 轴的长细比用0x x x l i λ=计算,但绕对称轴y 轴应取计及扭转效应的换算长细比yz λ代替y λ。 (1)计算用数据 由附表可得:2215/f N mm =,239.4A cm =,

3.98x i cm =, 3.39y i cm = (2)计算长细比 024060.303.98 x x x l i λ=== 024070.803.39 y y y l i λ=== 绕y 轴的长细比采用换算长细比yz λ代替y λ, 022824080.480.4814.418 y l b t b ==<=?= 442222201.09 1.098170.80176.292401yz y y b l t λλ?????=+=?+= ? ? ?????? (3)验算整体稳定性 对x 、y 轴均属于b 类截面,且yz λ>x λ,由附表得:0.712yz ?= 3 22255010196.06/215/0.71239.410yz N N mm N mm A ??==

题目四:砌体结构中,高厚比的概念及其影响是? 答:砌体受压构件的计算高度与相应方向边长的比值称为高厚比。 影响砌体高厚比的主要因素有:砂浆强度;构件强度;砌体种类;支撑约束条件、截面形式;墙体开洞、承重和非承重。

西电数据结构大作业

题目:数据结构上机报告学院:电子工程学院 专业:信息对抗技术 学生姓名:甘佳霖 学号:14020310092

西安电子科技大学 数据结构课程实验报告实验名称线性表 电子工程学院 1402031 班Array姓名甘佳霖学号 14020310092 同作者 实验日期 2017 年 3 月 18 日

实验一线性表 一、实验目的 1.熟悉线性表的顺序和链式存储结构 2.掌握线性表的基本运算 3.能够利用线性表的基本运算完成线性表应用的运算 二、实验要求 1.设有一个线性表E={e1, e2, … , e n-1, e n},设计一个算法,将线性表逆置,即使元素排列次序颠倒过来,成为逆线性表E’={ e n, e n-1 , … , e2 , e1 },要求逆线性表占用原线性表空间,并且用顺序表和单链表两种方法表示,分别用两个程序来完成。 2.已知由不具有头结点的单链表表示的线性表中,含有三类字符的数据元素(字母、数字和其他字符),试编写算法构造三个以循环链表表示的线性表,使每个表中只含有同一类的字符,且利用原表中的结点空间,头结点可另辟空间。 三、设计思路 1.顺序表做逆置操作时将对应的首尾元素位置交换,单链表的指针end指向链表的末尾,指针start指向链表头结点,指针s用来找到指向end节点的节点,将指向链表末尾和头结点的存储内容交换,然后头结点指针指向下一节点,s指针从start节点开始遍历寻找指向end 指针的节点,并将end指针赋值为s指针,就完成了单链表的逆置,可以看出单链表和顺序表都可以完成线性表的逆置。 2.分解单链表的实现思路是首先新建3个循环链表,然后顺序遍历单链表,ASCII码判断链表中的元素属于哪一类元素,然后将这个元素添加到对应的循环链表中,从而实现分解单链表的功能。 四、运行结果 1.单链表逆置:

天大2016年12月《数据结构》期末大作业考核要求

数据结构 要求: 1. 独立完成,作答时要按照模版信息....填写完整,写明题型、题号; 2. 作答方式:手写作答或电脑录入,使用学院统一模版(模版详见附件); 3. 提交方式:以下两种方式任选其一, 1) 手写作答的同学可以将作业以图片形式打包压缩上传; 2) 提交电子文档的同学可以将作业以word 文档格式上传; 4. 上传文件命名为“中心-学号-姓名-科目.rar ” 或“中心-学号-姓名-科目.doc ”; 5. 文件容量大小:不得超过10MB 。 请在以下几组题目中,任选一组题目作答,满分100分。 第一组: 一、编程题(每小题30分,共60分) (一) 设顺序表L 是一个递增有序表,试写一算法,将x 插入L 中,并使L 仍是一个有序表。 (二) 用标准C 语言实现Hanoi 塔问题 二、解答题(20分) (一) 对下面的带权无向图采用prim 算法从顶点①开始构造最小生成树。(写出加入生成树顶点集合S 和选择Edge 的顺序) ① 9 10 ② 7 ③ 5 6 7 ④ ⑤ 11 8

三、画图题(20分) (一) 将给定的图简化为最小的生成树,要求从顶点1出发。 第二组: 一、编程题(每小题30分,共60分) (一) 对于二维整数数组A[m][n],对下列三种情况,分别编写相应的函数。 1.求数组所有边缘元素的数值和。 int sum1(int A[M][N],int m ,int n) { 2.求从A[0][0]开始的互不相邻的所有元素的和 注:一个元素的八个方向上的第一个元素均为相邻元素。 int sum2 (int A[M][N] , int m , int n) { 3. 假定m=n ,并为偶数,请分别计算正、反两条对角线上的元素值之和。 int sum3(int A[M][N] , int n) {

川大13年12月3日《结构设计原理(Ⅰ)(上)》第一次网上作业答案

川大13年12月3日《结构设计原理(Ⅰ)(上)》第一次网上作业答案 你的得分: 98.0 完成日期: 说明:每道小题括号里的答案是您最高分那次所选的答案,标准答案将在本次作业结束(即2013年03月14日)后显示在题目旁边。 一、单项选择题。本大题共10个小题,每小题 2.0 分,共20.0分。在每小题给出的选项中,只有一项是符合题目要求的。 1. 1. 结构上的荷载按作用时间的变异可分为三种,下列选项错误的是( B ) A.永久荷载 B.静态荷载 C.可变荷载 D.偶然荷载 2. 2. 以下关于楼面和屋面活荷载的描述,不正确的是( D ) A.屋面均布活荷载不应与雪荷载同时进行组合 B.积灰荷载应与雪荷载或不上人的屋面均布活荷载两者中的较大者同 时考虑 C.楼梯、看台、阳台和上人屋面的栏杆顶部应按规范的相关规定考虑水 平荷载 D.当采用荷载准永久组合时,应考虑施工和检修荷载及栏杆水平荷载。 3.下列描述,错误的是( C ) A. B.风载体型系数主要与建筑物的体型和尺度有关 C.高层建筑的基本风压按50年一遇的风压采用 D.风压高度变化系数不仅与高度有关,还与地面粗糙度有关。 4. 4. 以下关于双向板和单向板的论述,不正确的是( C ) A.双向板沿两个方向受弯 B.当板长短边跨度之比小于2时,应按双向板进行设计 C.当板长短边跨度之比大于2时,应按单向板进行设计 D.双向板的两个正交方向均应配置受力钢筋 5. 5. 下列哪项不是钢筋混凝土塑性铰所具有的特点( A ) A.塑性铰开始于受拉区混凝土开裂 B.塑性铰能承受一定的弯矩 C.塑性铰具有一定的长度 D.塑性铰是单向铰 6.以下关于超静定结构内力重分布的论述,错误的是( B ) A.对于钢筋混凝土超静定结构,塑性铰的出现并不一定表明该结构的承 载能力丧失 B.混凝土强度等级越高,塑性铰的转动能力越强 C.考虑内力重分布方法设计,可降低支座截面弯矩的设计值 D.塑性铰的转动能力虽配筋率的增加而降低 7.下列哪项不是单向板中需配置的构造钢筋( A )

数据结构大作业题目

《数据结构大作业》要求 一、作业目的 1、掌握用数据结构的知识进行Java或者C程序设计。 2、应用所学的数据结构完成一个具有一定实际意义的应用程序的设计、编码、调试,锻炼 实践动手能力,提高编程水平。 二、作业内容 1、图书管理系统 问题描述:实现图书管理系统,主要为图书管理员和借阅者提供管理和查询服务。 基本功能要求: 程序必须采用链表数据结构实现。 图书信息至少包括以下信息:书名,ISBN、作者、出版社、出版时间,入库时间,库存量(图书馆购买此书的数目),借阅数(被借阅的本数)。 图书管理员身份可以完成以下操作: (1)录入:增加一本图书信息; (2)删除:删除某一本图书的信息; (3)修改:修改某一本图书的信息; (4)查询:根据书名或图书ISBN等查询图书信息(可选择:简单条件查询,组合 条件查询等)。 (5)排序:根据书名或入库时间等信息进行排序,尽可能提高查找和维护性能; (6)借书:借出一本书,该书的借阅量增加一本。 (7)还书:还回一本书,该书的借阅量减少一本。 (8)统计:统计所有的借出的图书数目,即:所有图书借阅量之和。 (9)输出:输出所有图书的所有信息,要求格式清晰,方便查看。 扩展功能要求: (1)导出:把用户信息导出到文件中保存; (2)实现图形用户界面与用户进行交互。 2、学生管理系统 必须完成学籍登记表中的下面功能。 登记表中包括:学号、姓名、班级(如:13级软件1班)、性别、手机号码、选修课程等信息。 程序必须采用链表数据结构实现; (1)插入:将某学生的基本信息插入到登记表中; (2)删除:将满足条件的基本信息删除; (3)修改:对基本信息的数据项进行修改;

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