C++程序设计大作业(含源代码)

C++程序设计大作业(含源代码)
C++程序设计大作业(含源代码)

姓名:叶尔凯西

学院(系):计科系

班级:计科系07-1班

学号:

设计本程序的目的:

关于一些并不太复杂的集体来说,一般需要管理集体中的每个人的基本信息的,本程序专门为一些在校学生的基本信息的管理而设计的,主要目的是通过本程序来实现简单的记录和查找学生的基本信息;

程序功能简介:

本程序是通过面向对象的最重要的特点“类”来设计出来的,其功能是实现简单的学生基本信息管理。包括一些要求用户从键盘输入(记录)学生的基本信息、输出学生的基本信息和用学生的学号来查找学生信息表中的某个学生的基本信息等功能;

程序功能的详细介绍:

本人设计程序时考虑到的很所内容,其中输入输出学生的基本信息是最基本的功能。下面来给大家介绍程序的核心类的构建:

①在程序中共建立了两种类,分别是person类和student类。person作为student类的基类,其内部

是如下设计的:

class person

{

public:

void SetPersonAddress(char *AddressFromMain);

void ShowPersonSex();

void ShowPersonAddress();

private:

char Address[25];

char Sex[2];

};

可以看到,在上面分别声明了四个成员函数和两个数据成员。四个成员函数的作用是对私有数据成员进行访问(包括输入和输出)。所以当建立了一个person类之后就可以通过它的对象来访问该类的数据成员。

下面分别说明每一个成员函数的具体定义:

(1)设置(输入)人地址的成员函数:

void person::SetPersonAddress(char *AddressFromMain)

{

strcpy(Address,AddressFromMain);

}

通过strcpy把字符指针的内容送入person类中的数据成员Address。

(2)设置(输入)人性别的成员函数:

void person::SetPersonSex(char *SexFromMain)

{

strcpy(Sex,SexFromMain);

}

通过strcpy把字符指针SexFromMain的内容作为地址的存储单元中的内容送入person类中Sex数据成员。

(3)输出地址成员函数:

void person::ShowPersonAddress()

{

cout<

}

输出person类中的Address数据成员的内容;

(4)输出性别的成员函数:

void person::ShowPersonSex()

{

cout<

}

输出person类中的Sex数据成员的内容;

②接下来就是person基类的派生类student类的内部设计如下:

class student: public person

{

public:

void SetStudentInformation(char*NameFromMain,char *StudentAddressFromMain,char *StudentSexFromMain,char *StudentNumberFromMain, int *score);

void ShowStudentInformation();

friend void FindStudentNumber(student *data);

friend void FindStudentName(student *data);

private:

int

MathResult,EnglishResult,CResult,CompilationLanguageResult,DigitalLogicResult,MarksismResu lt;

char StudentNumber[25];

char Name[25];

float Average;

int total;

};

当设计student派生类的时候,最主要的特点就是利用了“类”的一个特点继承。

(public),下面来给大家介绍student类的内部构造:

①成员函数共有设置(输入)学生信息、输出学生信息等两个。还有一个非成员函数的一个函数,它为

该student类的友元函数,其功能是实现查找。

除此之外还有从基类person类继承下来的一些成员函数;

②数据成员分别为整形变量的学生成绩(包括数学成绩、英语成绩、C++成绩、汇编语言成绩、数字逻

辑成绩、马克思哲学成绩等),字符数组的学生学号和学生姓名以及整型变量的学生的总分和单精度变量的平均分;

下面介绍student派生类中的各个成员函数的定义部分:

设置(输入)学生信息的成员函数:

Void student::SetStudentInformation(char*NameFromMain,char*StudentAddressFromMain,char* StudentSexFromMain,char *StudentNumberFromMain, int *score)

{

strcpy(Name,NameFromMain);

SetPersonAddress(StudentAddressFromMain);

SetPersonSex(StudentSexFromMain);

strcpy(StudentNumber ,StudentNumberFromMain);

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

{

switch(i)

{

case 0:

MathResult=score[0];

case 1:

EnglishResult=score[1];

case 2:

CResult=score[2];

case 3:

CompilationLanguageResult=score[3];

case 4:

DigitalLogicResult=score[4];

case 5:

MarksismResult=score[5];

}

}

total=MathResult+EnglishResult+CResult+CompilationLanguageResult+DigitalLogicResult+Ma rksismResult;

Average=total/6.0;

}

可以看到在设计student类的输入成员函数时其内部同时调用了从基类继承下来的一些成员函数,这就是继承的特点。下面将会详细地介绍该成员函数的功能:

首先是student类的两个字符数组变量学生姓名和学生学号的赋值通过strcpy来直接实现,也就是可通过该类的成员函数来给数据成员赋值。还有两个数据成员是不能够被继承下来的基类的两个字符数组学生性别和家庭地址,它们是通过student派生类的成员函数中调用从基类person中继承下来的成员函数,从而改变对不能被继承下来的基类的数据成员赋值。接着就是对student类中自己的数据成员学生成绩的赋值,它们是通过一个简单的switch case语句来实现的。

输出学生信息的成员函数:

void student::ShowStudentInformation()

{

cout<

cout<<"学生的基本信息如下: "<

cout<<"学生的姓名: "<

cout<<"学生的学号为: "<

cout<<"学生的家庭地址为: ";

ShowPersonAddress();

cout<

cout<<"学生的性别为: ";

ShowPersonSex();

cout<

cout<<"学生的考试课程成绩如下: "<

cout<<"学生的离散数学课程成绩为: "<

cout<<"学生的英语课程成绩为: "<

cout<<"学生的C++课程成绩为: "<

cout<<"学生的汇编语言课程成绩为: "<

cout<<"学生的数字逻辑课程成绩为: "<

cout<<"学生的马克思主义哲学课程成绩为: "<

cout<<"学生的总分为:"<

cout<<"学生的平均分为:"<

}

输出学生信息的成员函数的定义中不难发现输出时不仅会输出student派生类自己的数据成员的值还会同时输出不能被继承下来的基类person中的数据成员的值。这显然只能通过继承下来的成员函数来实现(如ShowPersonAddress()和ShowPersonSex())。

下面来介绍三个非成员函数,其中两个为student类的友元函数。它就是实现查找功能的(分别用学生学号和学生姓名来进行查找),另一个是一个单独的普通函数。其功能是当程序运行时保持一个用户界面的功能。

Student类共有两个友元函数,分别是friend void FindStudentNumber(student *data)和friend void FindStudentName(student *data),它们两个都有查找功能,只是一个用学生的学号另一个用学生的姓名进行查找。

下面详细介绍student类的两个友元函数中的用学号查找的函数是如何的定义:

void FindStudentNumber(student *data)

{

char findnum[25];

cout<<"请输入学号:";

cin>>findnum;

int i=0;

for(i;i

{

if(strcmp(data[i].StudentNumber,findnum)==0)

{

cout<<"在第"<

data[i].ShowStudentInformation();

}

if((strcmp(data[i].StudentNumber,findnum)<0)||(strcmp(data[i].StudentNumber,findnum)>0)) cout<<"在编号"<

}

}

下面详细介绍student类的两个友元函数中的用姓名查找的函数是如何的定义:

{

char findname[25];

cout<<"请输入姓名:";

cin>>findname;

int i=0;

for(i;i

{

if(strcmp(data[i].Name,findname)==0)

{

cout<<"在第"<

data[i].ShowStudentInformation();

}

if((strcmp(data[i].Name,findname)<0)||(strcmp(data[i].Name,findname)>0))

cout<<"在编号"<

}

}

可以看出student类的两个友元函数即查找(分别用学号和姓名)函数的定义都很相似,主要是算法是

一致。因为在student类中数据成员学生姓名和学生学号都是用字符数组来定义的,所以上面的两个分别用

学号和姓名来查找的函数的算法是基本一致的,只是一个是用student类的一个对象中里面的name(姓名)

去查找,另一个是用student类的一个对象中里面的StudentNumber(学生姓名)去查找。在整个查找函数

先是在函数的参数表中声明student类的对象指针,在主函数main中当调用查找函数时把main函数中定义

的student类的数组的首地址传送给查找函数。在查找函数中先定义一个字符数组,再提示用户输入要查找

的学生的姓名或学号,当姓名或学号在相应的学生编号里的相应的name(姓名)和StudentNumber(学生学号)相等时查找便成功并提示用户该学号或姓名为基本信息的学生信息输出在屏幕上,当不相等时查找不成

功并提示用户没有找到学生的记录。

下面介绍非成员函数即普通函数(程序运行时保持一个用户界面功能的函数):

void paint()

{

int i;

cout<<" 学生信息管理系统"<

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

putchar('%');

cout<

cout<<"(1) 输入学生的信息 (3)用学号查找学生基本信息 "<

cout<

cout<<"(2) 输出学生信息 (4)用姓名查找学生基本信息 "<

cout<

cout<<"(0) 退出程序 "<

cout<<" 备注:如果您还没有输入任何信息,请先输入信息再输出!

"<

cout<

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

putchar('%');

cout<

}

上面的普通函数只是一个简单的函数,其功能只是在屏幕上保持如下一个画面:

学生信息管理系统

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

(1) 输入学生的信息 (3)用学号查找学生基本信息

(2) 输出学生信息 (4)用姓名查找学生基本信息

(0) 退出程序

备注:如果您还没有输入任何信息,请先输入信息再输出!

接着给大家介绍主函数main的定义部分:

void main()

{

char StuSex[2],StuName[25] ,StuAddress[25],StuNumber[25];

int StuScore[6],ctrl;

int i=0,j;

student stu[StuNum];

paint();

cout<<"请选择一个序号 "<

cin>>ctrl;

while (ctrl != 0)

{

switch(ctrl)

{

case 1:

for(i; i

{

system("cls");

cout<<"请输入第"<

cout<<"请输入学生的姓名:";

cin>>StuName;

cout<

cout<<"请输入学生的性别: ";

cin>>StuSex;

cout<

cout<<"请输入学生的学号: ";

cin>>StuNumber;

cout<

cout<<"请输入学生的家庭地址: ";

cin>>StuAddress;

cout<

cout<<"请按顺序输入学生的考试成绩"<

cout<

cout<<"离散数学课程成绩: ";

cin>>StuScore[0];

cout<

cout<<"英语课程成绩: ";

cin>>StuScore[1];

cout<

cout<<"C++课程成绩: ";

cin>>StuScore[2];

cout<

cout<<"汇编语言课程成绩: ";

cin>>StuScore[3];

cout<

cout<<"数字逻辑课程成绩: ";

cin>>StuScore[4];

cout<

cout<<"马克思主义哲学课程成绩: ";

cin>>StuScore[5];

cout<

stu[i].SetStudentInformation(StuName,StuAddress,StuSex,StuNumber,StuScore);

break;

case 2:

cout<

system("cls");

for(j=0; j

stu[j].ShowStudentInformation();

system("pause");

break;

case 3:

cout<

system("cls");

FindStudentNumber(stu);

system("pause");

break;

case 4:

cout<

system("cls");

FindStudentName(stu);

system("pause");

break;

}

if (ctrl != '\n')

system("cls");

paint();

cout<<"请选择一个序号"<

cin>>ctrl;

}

}

main主函数的实现比较长,主要是因为在main函数中不仅仅定义了普通变量(基本变量)用来暂时存放从键盘输入的学生基本信息,还定义了student类的对象数组,且使用了while循环和switch case 语句来不停地进行选择,case的每一个分句分别实现不同的功能,case 1主要实现输入,用for循环来把student对象数组的每一个对象本别进行赋值;case 2主要实现输出功能,输出时用for循环调用每一个student数组对象的ShowStudentInformation()函数(输出学生信息的成员函数);case 3和case 4主要就是实现查找功能,只是因为查找函数不是student类的成员函数,所以可以直接调用函数,在实参表里写了student对象数组的首地址,把student对象数组的首地址传递给查找函数;

程序源代码:

#include

#include

using namespace std;

const int StuNum=1;

class person

{

public:

void SetPersonAddress(char *AddressFromMain);

void SetPersonSex(char *SexFromMain);

void ShowPersonSex();

void ShowPersonAddress();

private:

};

void person::SetPersonAddress(char *AddressFromMain)

{

strcpy(Address,AddressFromMain);

}

void person::SetPersonSex(char *SexFromMain)

{

strcpy(Sex,SexFromMain);

}

void person::ShowPersonAddress()

{

cout<

}

void person::ShowPersonSex()

{

cout<

}

class student: public person

{

public:

void SetStudentInformation(char *NameFromMain,char *StudentAddressFromMain,char *StudentSexFromMain,char *StudentNumberFromMain, int *score);

void ShowStudentInformation();

friend void FindStudentNumber(student *data);

friend void FindStudentName(student *data);

private:

int

MathResult,EnglishResult,CResult,CompilationLanguageResult,DigitalLogicResult,MarksismResult;

char StudentNumber[25];

char Name[25];

float Average;

int total;

};

void student::SetStudentInformation(char *NameFromMain,char *StudentAddressFromMain,char* StudentSexFromMain,char *StudentNumberFromMain, int *score)

{

strcpy(Name,NameFromMain);

SetPersonAddress(StudentAddressFromMain);

SetPersonSex(StudentSexFromMain);

strcpy(StudentNumber ,StudentNumberFromMain);

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

{

switch(i)

{

case 0:

MathResult=score[0];

case 1:

EnglishResult=score[1];

case 2:

case 3:

CompilationLanguageResult=score[3];

case 4:

DigitalLogicResult=score[4];

case 5:

MarksismResult=score[5];

}

}

total=MathResult+EnglishResult+CResult+CompilationLanguageResu lt+DigitalLogicResult+MarksismResult;

Average=total/6.0;

}

void student::ShowStudentInformation()

{

cout<

cout<<"学生的基本信息如下: "<

cout<<"学生的姓名: "<

cout<<"学生的学号为: "<

cout<<"学生的家庭地址为: ";

ShowPersonAddress();

cout<

cout<<"学生的性别为: ";

ShowPersonSex();

cout<

cout<<"学生的考试课程成绩如下: "<

cout<<"学生的离散数学课程成绩为: "<

cout<<"学生的英语课程成绩为: "<

cout<<"学生的C++课程成绩为: "<

cout<<"学生的汇编语言课程成绩为: "<

cout<<"学生的数字逻辑课程成绩为: "<

cout<<"学生的马克思主义哲学课程成绩为: "<

cout<<"学生的总分为:"<

cout<<"学生的平均分为:"<

}

void FindStudentNumber(student *data)

{

char findnum[25];

cout<<"请输入学号:";

cin>>findnum;

for(i;i

{

if(strcmp(data[i].StudentNumber,findnum)==0)

{

cout<<"在第"<

data[i].ShowStudentInformation();

}

if((strcmp(data[i].StudentNumber,findnum)<0)||(strcmp(data[i]. StudentNumber,findnum)>0))

cout<<"在编号"<

}

}

void FindStudentName(student *data)

{

char findname[25];

cout<<"请输入姓名:";

cin>>findname;

int i=0;

for(i;i

{

if(strcmp(data[i].Name,findname)==0)

{

cout<<"在第"<

data[i].ShowStudentInformation();

}

if((strcmp(data[i].Name,findname)<0)||(strcmp(data[i].Name,fin dname)>0))

cout<<"在编号"<

}

}

void paint()

{

int i;

cout<<" 学生信息管理系统"<

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

putchar('%');

cout<

cout<<"(1) 输入学生的信息 (3)用学号查找学生基本信息 "<

cout<

cout<<"(2) 输出学生信息 (4)用姓名查找学生基本信息 "<

cout<

cout<<"(0) 退出程序 "<

cout<<" 备注:如果您还没有输入任何信息,请先输入信息再输出!"<

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

putchar('%');

cout<

}

void main()

{

char StuSex[2],StuName[25] ,StuAddress[25],StuNumber[25];

int StuScore[6],ctrl;

student stu[StuNum];

有限元实例分析大作业一

受均匀内压作用的厚壁圆筒: 问题描述: 受均匀内压p=12.5N/mm 2作用的厚壁圆筒。其几何参数为:内径R i =100mm , 外径R e =200mm ,桶壁后h=100mm ,材料参数为:E=8666.67Mpa ,v=0.3, s σ=17.32Mpa ,材料符合Mise 屈服条件。 (a)求理想塑性材料的解,给出应力r σ和θσ沿径向r 的分布曲线,并求完全卸载 后圆筒内的残余应力分布。 (b)求线性强化材料(E 1=0.6E 或E 1=0.6E)的解,即应力r σ和θσ沿径向r 的分布 曲线。 (c)求幂硬化材料的解并绘出当弹塑性比例系数为m=0,1/4,1/2,2/3和m=1.0时, 即应力r σ和θσ沿径向r 的分布曲线。 求解分析: 由于该厚壁筒模型是轴对称模型,所以在求解过程中,我们选取了1/4模型进行了进行建模分析,具体如下图: 建模时取了柱坐标系下厚壁筒从0。~90。范围内的部分,高度取为100mm ,模型完成后进行网格的划分,这里利用了Patran 的Mesh Seed 功能,通过在径向、周向,高度方向撒种生成Mesh 网格,网格划分如上图。 考虑到实体的变形情况,关于模型的边界条件,定义如下: (1)模型的上、下表面为两个平面,在该两平面上限制z 方向的位移为0; (2)对于模型的内外两圆弧面,为了方便定义边界条件,建立了柱坐标,该两平

是延径向变形的,所以ρ坐标是放开的,为了限制模型的刚体移动,这里限制角坐标θ为0。 (3)对于模型两个侧平面,是属于模型的对称面,所以该两平面的单元在垂直于平面的方向上位移为零,这里利用柱坐标,即沿周向的位移为零,所以同样要限制角坐标θ为0。 由于厚壁筒受到均匀内压,所以在施加载荷时选择均布载荷Pressure,大小为p=12.5N/mm2,作用在内圆弧表面上。 对于材料塑性的定义,首先定义样式模量和泊松比,然后在弹塑性对话框里定义屈服载荷和硬化系数或通过在Stress/Strain Curve栏中添加事先定义的材料属性场来表征弹塑性比例系数m。 对于求解分析,求解器选择Nastran进行计算分析,单元属性选择3D Solid 属性,分析类型定义为非线性并设置大变形和跟随力及载荷增量步等,以此来进行弹塑性的非线性求解。 结果分析: (a)对于理性塑性材料,即硬化系数为0,求解结果如下: 该图为100%载荷作用下模型的应力云图及变形情况。观察可知,筒内壁应力较高且首先达到屈服应力发生塑性变形,沿径向方向向外,各层应力逐渐递减,且外层部分属于弹性变形的范畴,模型某一层为弹塑性变形的分界面。

《C程序设计》作业内容

实验一C语言的运行环境的使用 一、目的与要求 1. 了解Windows系统下C语言的运行环境,熟悉C程序调试、运行的基本操作方法。 2. 熟练掌握编辑、编译、连接和运行C程序的方法。 3. 通过运行简单的C程序,初步了解C源程序的特点。 4. 初步理解C语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运 行结果的基本输出方法。 二、实验例题 在C语言运行环境下,按以下例题要求完成程序的编辑、编译、连接和运行,直至取得正确的运行结果。 【例1】编程实现在屏幕上显示如下三行文字 Hello, world ! Wolcome to the C language world! Everyone has been waiting for. (1)输入如下程序: #include int main() { printf("Hello,World!\n"); printf("Wolcome to the C language world!\n"); printf("Everyone has been waiting for.\n"); return 0; } (2)将输入的程序以文件名example.c存盘。 (3)编译:通过“组建”(Build) 下拉菜单中的“编译”(compile)命令,编译example.c,若出现编译错误,则修改程序,重新编译,直至编译成功,系统自动生成目标文件example.obj。 (4)连接:通过“组建”(Build)下拉菜单中的“组建”(Build)命令,生成以.exe为扩展名的可执行文件example.exe。 (5)运行:通过“组建”菜单下的“执行”(Excute)命令运行程序并观察运行结果。 【例2】编写程序,将两个整数相加,并输出结果。 #include int main() { int a,b,sum; a=123;b=456; sum=a+b; printf(“sum is %d\n”,sum); return 0;}

有限元分析大作业报告

有限元分析大作业报告 试题1: 一、问题描述及数学建模 图示无限长刚性地基上的三角形大坝,受齐顶的水压力作用,试用三节点常应变单元和六节点三角形单元对坝体进行有限元分析,并对以下几种计算方案进行比较: (1)分别采用相同单元数目的三节点常应变单元和六节点三角形单元计算; (2)分别采用不同数量的三节点常应变单元计算; (3)当选常应变三角单元时,分别采用不同划分方案计算。 该问题属于平面应变问题,大坝所受的载荷为面载荷,分布情况及方向如图所示。 二、采用相同单元数目的三节点常应变单元和六节点三角形单元计算 1、有限元建模 (1)设置计算类型:两者因几何条件和载荷条件均满足平面应变问题,故均取Preferences 为Structural (2)选择单元类型:三节点常应变单元选择的类型是Solid Quad 4 node182;六节点三角形单元选择的类型是Solid Quad 8 node183。因研究的问题为平面应变问题,故对Element behavior(K3)设置为plane strain。 (3)定义材料参数:弹性模量E=2.1e11,泊松比σ=0.3 (4)建几何模型:生成特征点;生成坝体截面 (5)网格化分:划分网格时,拾取lineAB和lineBC,设定input NDIV 为15;拾取lineAC,设定input NDIV 为20,选择网格划分方式为Tri+Mapped,最后得到600个单元。

(6)模型施加约束:约束采用的是对底面BC 全约束。大坝所受载荷形式为Pressure ,作用在AB 面上,分析时施加在L AB 上,方向水平向右,载荷大小沿L AB 由小到大均匀分布。以B 为坐标原点,BA 方向为纵轴y ,则沿着y 方向的受力大小可表示为: }{*980098000)10(Y y g gh P -=-==ρρ 2、 计算结果及结果分析 (1) 三节点常应变单元 三节点常应变单元的位移分布图 三节点常应变单元的应力分布图

C语言程序设计大作业报告模板

《C语言程序设计》大作业报告 1.目的 掌握所学C语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学C语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能: 1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 2.作业内容

熟练掌握所学语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用等。 3.要求: 1.要求每个同学都要认真对待,积极参与。 2.独立完成,不能抄袭。 3.课程设计结束时每位同学必须完成《大作业报告册》,其中包含设计源 代码和设计思路。 4.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设 计中完全未参与的将作不及格处理。 5.统一格式,A4打印,按时提交。 4.题目:设计要求:编写一个程序,求3x4数组的转置矩阵。要求在main函数里面读数,在change函数里面把矩阵转置。 5.程序设计 设计思路:1是先定义两个数组,一个是a[3][4],另一个是b[4][3]。2是将随便输入的12个数输入到a[3][4]。3是在change函数中将a[3][4]中值通过for循环的镶嵌将数组a[3][4]的值赋值给数组b[4][3]。4在主函数中将数组b[4][3]通过for循环的嵌套输出。 代码

C语言程序设计作业参考答案

《C语言程序设计》作业参考答案 作业一 C语言概述 一、选择题: 1-5 ACDCB 二、编程题: main() { printf(“****************************************\n”); printf(“ Hello,world! \n”); printf(“****************************************\n”); } 作业二程序的灵魂——算法 一、填空题: 1.确定性有效性有零个或多个输入有一个或多个输出 2.顺序结构选择结构循环结构 3.函数 作业三数据类型、运算符与表达式 一、选择题: 1-5 BDDAB 6-10 BCAAB 11-15 BCADC 16-20 DACCA 21-25 ADDBA 26-30 DDDDD 作业四顺序结构 一、选择题: 1-5 BCDDD 6-10 BDADD 二、填空题: 1.【31.415920,3.14159e+01】 2.【c=k】 3.【a=1,b=空格,c=2】 4.【a=12,b=345】 5.【c=A】 作业五选择结构 一、选择题:1-5 ADCBC 6-10 BBBBA 11-15 DBAAC 16-17 CB 二、填空题: 1.【-1】 2.【3】 3.【4】 4.【11】 5.【97或'a'】 作业六循环结构 一、选择题: 1-5 CBAAC 6-10 CBCCB 11-15 DBDDB 16-20 BCAAC 21-25 CDBBB

作业七数组 一、选择题: 1-5 CDDAC 6-10 CCDBC 11-15 DDBCA 16-20 DCBDD 21-23 BDB 二、填空题: 1. LBLMNP 2. SW* 3. mo 4. a=2,b=1 作业八函数 一、选择题: 1-5 AAACA 二、填空题: 1.【编程中的main( )函数】 2.【函数说明部分】和【函数体】 3.【–125= –5*5*5】 4.【void add (float a, float b)】【float add (float a, float b)】 5.【i=7; j=6; x=7 i=2; j=7; x=5】 6.【111】 三、编程题: 1.参考代码 main() { int score,temp,log; char grade; log=1; while (log) { printf(“enter score:”); scanf(“%d”,&score); if ((score>100)||(score<0)) printf(“\n error,try again! \n”); else log=0; } if (score==100)temp=9; else temp=(score-score%10)/10; switch(temp) { case 0:case 1:case2: case 3:case 4:case 5:grade=’E’;break; case 6:grade=’D’;break; case 7:grade=’C’;break; case 8:grade=’B’;break; case 9:grade=’A’; } printf(“score=%d,grade=%c\n”,score,grade); } 2.解:设计以高度n为参数的函数trangle(int n),打印等边三角形。参考程序如下: #include

华科大有限元分析题及大作业题答案——船海专业(DOC)

姓名:学号:班级:

有限元分析及应用作业报告 一、问题描述 图示无限长刚性地基上的三角形大坝,受齐顶的水压力作用,试用三节点常应变单元和六节点三角形单元对坝体进行有限元分析,并对以下几种计算方案进行比较: 1)分别采用相同单元数目的三节点常应变单元和六节点三角形单元计算; 2)分别采用不同数量的三节点常应变单元计算; 3)当选常应变三角单元时,分别采用不同划分方案计算。

二、几何建模与分析 图1-2力学模型 由于大坝长度>>横截面尺寸,且横截面沿长度方向保持不变,因此可将大坝看作无限长的实体模型,满足平面应变问题的几何条件;对截面进行受力分析,作用于大坝上的载荷平行于横截面且沿纵向方向均匀分布,两端面不受力,满足平面应变问题的载荷条件。因此该问题属于平面应变问题,大坝所受的载荷为面载荷,分布情况及方向如图1-2所示,建立几何模型,进行求解。 假设大坝的材料为钢,则其材料参数:弹性模量E=2.1e11,泊松比σ=0.3 三、第1问的有限元建模 本题将分别采用相同单元数目的三节点常应变单元和六节点三角形单元计算。 1)设置计算类型:两者因几何条件和载荷条件均满足平面应变问题,故均取Preferences为Structural 2)选择单元类型:三节点常应变单元选择的类型是PLANE42(Quad 4node42),该单元属于是四节点单元类型,在网格划分时可以对节点数目控制使其蜕化为三节点单元;六节点三角形单元选择的类型是PLANE183(Quad 8node183),该单元属于是八节点单元类型,在网格划分时可以对节点数目控制使其蜕化为六节点单元。因研究的问题为平面应变问题,故对Element behavior(K3)设置为plane strain。 3)定义材料参数 4)生成几何模 a. 生成特征点 b.生成坝体截面 5)网格化分:划分网格时,拾取所有线段设定input NDIV 为10,选择网格划分方式为Tri+Mapped,最后得到200个单元。 6)模型施加约束: 约束采用的是对底面BC全约束。 大坝所受载荷形式为Pressure,作用在AB面上,分析时施加在L AB上,方向水平向右,载荷大小沿L AB由小到大均匀分布(见图1-2)。以B为坐标原点,BA方向为纵轴y,则沿着y方向的受力大小可表示为: ρ(1) = gh P- =ρ g = - 10 {* } 98000 98000 (Y ) y

有限元分析报告大作业

有限元分析》大作业基本要求: 1.以小组为单位完成有限元分析计算,并将计算结果上交; 2.以小组为单位撰写计算分析报告; 3.按下列模板格式完成分析报告; 4.计算结果要求提交电子版,一个算例对应一个文件夹,报告要求提交电子版和纸质版。 有限元分析》大作业 小组成 员: 储成峰李凡张晓东朱臻极高彬月 Job name :banshou 完成日 期: 2016-11-22 一、问题描述 (要求:应结合图对问题进行详细描述,同时应清楚阐述所研究问题的受力状况 和约束情况。图应清楚、明晰,且有必要的尺寸数据。)如图所示,为一内六角螺栓扳手,其轴线形状和尺寸如图,横截面为一外 接圆半径为0.01m的正六边形,拧紧力F为600N,计算扳手拧紧时的应力分布 图1 扳手的几何结构 数学模型

要求:针对问题描述给出相应的数学模型,应包含示意图,示意图中应有必要的尺寸数据;

图 2 数学模型 如图二所示,扳手结构简单,直接按其结构进行有限元分析。 三、有限元建模 3.1 单元选择 要求:给出单元类型, 并结合图对单元类型进行必要阐述, 包括节点、自由度、 实常数等。) 图 3 单元类型 如进行了简化等处理,此处还应给出文字说

扳手截面为六边形,采用4 节点182单元,182 单元可用来对固体结构进行

二维建模。182单元可以当作一个平面单元,或者一个轴对称单元。它由4 个结点组成,每个结点有2 个自由度,分别在x,y 方向。 扳手为规则三维实体,选择8 节点185单元,它由8 个节点组成,每个节点有3 个自由度,分别在x,y,z 方向。 3.2 实常数 (要求:给出实常数的具体数值,如无需定义实常数,需明确指出对于本问题选择的单元类型,无需定义实常数。) 因为该单元类型无实常数,所以无需定义实常数 3.3材料模型 (要求:指出选择的材料模型,包括必要的参数数据。) 对于三维结构静力学,应力主要满足广义虎克定律,因此对应ANSYS中的线性,弹性,各项同性,弹性模量EX:2e11 Pa, 泊松比PRXY=0.3 3.4几何建模由于扳手结构比较简单,所以可以直接在ANSYS软件上直接建模,在ANSYS建 立正六 边形,再创立直线,面沿线挤出体,得到扳手几何模型 图4 几何建模

C程序设计作业样本

第一章作业 答案:一,59,14.4,28.e 二1小题,59 2,15 一、将数89、20.25、40.875用十六进制表达 二、填空 1.在C语言中,数值常量0x3b十进制值是。 2.字母f ASCII码为十进制数___________。 第三章作业 一、选取题: 1、下列变量名中, B 是非法。 A) Tom B) 3n C) little_boy D) c10 2、若有如下类型阐明 char a; int b; float c; double d;则表达式a*b+d-c成果类型是(A ) A)float B)char C)int D)double 3、若x为整型,则逗号表达式(x=4*5,x*5),x+25成果及x值分别是(C )对的答案是100,45 A)45 20 B)125 20 C)125 45 D)100 100 4、假设所有变量均为整型,则表达式(a=3,b=2,b++,a+b)值是 C 。 A) 5 B) 8 C) 6 D)7 5、已知c2为字符型,则执行语句c2=’E’+’8’-‘A’后,c2值为 C 。 A) 12 B) 11 C)不拟定值D) 10

6、设a为double变量,b为int型变量,c为字符型变量,则a+b+c为( C )型 A) int B) float C) double D) char 7、C语言中不可用作标记符字符有( C ) A下划线 B % C数字 D字母 8、下面四个选项中,均是合法整型常量是(D ) A)160 B)- 0xcdf C)- 01 D)0x - 0xffff 01a 0668 2e5 9、设a为字符变量,b为int型变量,c为double型变量,则a*b+c为( C )型 A. int B. float C. double D. char 10.若a是int型变量,则表达式(a=4*5,a*2),a+4值为( C ) A. 20 B.22 C. 24 D. 44 第四章作业 一、选取题 1、若x为int型变量,则执行如下语句后x= C 。 x=5; x-=x-=x+x; A. -10 B. -5 C.0 D.10 2、在printf()函数格式阐明符中,字符型数输出格式阐明符是 D 。

有限元分析大作业试题

有限元分析习题及大作业试题 要求:1)个人按上机指南步骤至少选择习题中3个习题独立完成,并将计算结果上交; 2)以小组为单位完成有限元分析计算; 3)以小组为单位编写计算分析报告; 4)计算分析报告应包括以下部分: A、问题描述及数学建模; B、有限元建模(单元选择、结点布置及规模、网格划分方 案、载荷及边界条件处理、求解控制) C、计算结果及结果分析(位移分析、应力分析、正确性分 析评判) D、多方案计算比较(结点规模增减对精度的影响分析、单 元改变对精度的影响分析、不同网格划分方案对结果的 影响分析等) E、建议与体会 4)11月1日前必须完成,并递交计算分析报告(报告要求打印)。

习题及上机指南:(试题见上机指南) 例题1 坝体的有限元建模与受力分析 例题2 平板的有限元建模与变形分析 例题1:平板的有限元建模与变形分析 计算分析模型如图1-1 所示, 习题文件名: plane 0.5 m 0.5 m 0.5 m 0.5 m 板承受均布载荷:1.0e 5 P a 图1-1 受均布载荷作用的平板计算分析模型 1.1 进入ANSYS 程序 →ANSYSED 6.1 →Interactive →change the working directory into yours →input Initial jobname: plane →Run 1.2设置计算类型 ANSYS Main Menu : Preferences →select Structural → OK 1.3选择单元类型 ANSYS Main Menu : Preprocessor →Element T ype →Add/Edit/Delete →Add →select Solid Quad 4node 42 →OK (back to Element T ypes window) → Options… →select K3: Plane stress w/thk →OK →Close (the Element T ype window) 1.4定义材料参数 ANSYS Main Menu : Preprocessor →Material Props →Material Models →Structural →Linear →Elastic →Isotropic →input EX:2.1e11, PRXY :0.3 → OK 1.5定义实常数 ANSYS Main Menu: Preprocessor →Real Constant s… →Add … →select T ype 1→ OK →input THK:1 →OK →Close (the Real Constants Window)

C语言课程设计大作业62994

郑州大学 课程报告 课程名称:C语言程序设计 专业班级:(15)班 学生姓名:谢* 学号: 20127611*** 任课教师:赵** 学期: 2012-2013-2 课程报告任务书

开发一个通讯录管理系统,基本信息包括:编号、姓名、性别、出生年月、固定电话、手机号、电子邮件等基本信息(也可以根据自己情况进行扩充)。使之能提供以下基本功能: (1)通讯录等信息录入功能(注:数据等要求用文件保存)--输入 (2)通讯录信息的浏览功能--输出 (3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式): ①按电话号码进行查询②按姓名查询等③按照年龄排序④按姓名排序等(4)通讯录条目的删除与修改等 扩展功能:可以按照自己的程度进行扩展。比如(1)简单的权限处理(2)报表打印功能(3)模糊查询,如姓张的人员等;或者给定电子邮件的部分进行查询等(4)给定指定年龄范围之内的查询等等。 总之,可以根据自己需求进行分析功能,成绩评定按照难度进行区分。 成绩评定教师:

一. 需求分析 1,具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 2,数据包括:人名、工作单位、电话号码和E-MAIL地址。 3,可对记录中的姓名和电话号码进行修改。 4,可增加和删除记录。 5,可显示所有的保存记录。 6,可按人名或电话号码进行查询。 分析 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。 二、概要设计 (1).程序的模块组成及各个函数的功能: 程序的模块组成: 主函数:main(); 输出数据函数:printf(); 读取数据函数:scanf(); 显示记录函数:Display(); 删除记录函数:shanchu(); 查找记录函数:chaxun(); 自定义清屏函数:system(“cls”); 自定义输入函数:input(); 字符输入函数:getchar(); 修改数据函数:xiugai(); 保存数据函数:baocun(); 排序数据函数:paixu(); 各函数的主要功能:

(完整版)有限元大作业matlab---课程设计例子

有限元大作业程序设计 学校:天津大学 院系:建筑工程与力学学院 专业:01级工程力学 姓名:刘秀 学号:\\\\\\\\\\\ 指导老师:

连续体平面问题的有限元程序分析 [题目]: 如图所示的正方形薄板四周受均匀载荷的作用,该结构在边界 上受正向分布压力, m kN p 1=,同时在沿对角线y 轴上受一对集中压 力,载荷为2KN ,若取板厚1=t ,泊松比0=v 。 [分析过程]: 由于连续平板的对称性,只需要取其在第一象限的四分之一部分参加分析,然后人为作出一些辅助线将平板“分割”成若干部分,再为每个部分选择分析单元。采用将此模型化分为4个全等的直角三角型单元。利用其对称性,四分之一部分的边界约束,载荷可等效如图所示。

[程序原理及实现]: 用FORTRAN程序的实现。由节点信息文件NODE.IN和单元信息文件ELEMENT.IN,经过计算分析后输出一个一般性的文件DATA.OUT。模型基本信息由文件为BASIC.IN生成。 该程序的特点如下: 问题类型:可用于计算弹性力学平面问题和平面应变问题 单元类型:采用常应变三角形单元 位移模式:用用线性位移模式 载荷类型:节点载荷,非节点载荷应先换算为等效节点载荷 材料性质:弹性体由单一的均匀材料组成 约束方式:为“0”位移固定约束,为保证无刚体位移,弹性体至少应有对三个自由度的独立约束 方程求解:针对半带宽刚度方程的Gauss消元法

输入文件:由手工生成节点信息文件NODE.IN,和单元信息文件ELEMENT.IN 结果文件:输出一般的结果文件DATA.OUT 程序的原理如框图:

c程序设计作业

1、分析下面程序: # include int main() { char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n"c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (1)运行时会输出什么信息?为什么? (2)如果将程序第4,5行改为 c1=197; c2=198; 运行时会输出什么信息?为什么? (3)如果将程序第3行改为 int c1,c2; 运行时会输出什么信息?为什么? 答:(1)程序运行不了,因为程序存在错误。正确的程序为:#include int main() { char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (2)如果将程序第4,5行改为 c1=197; c2=198; 运行时会输出: (3)如果将程序第3行改为 int c1,c2; 运行时会输出:

因为int表示整型,%c是输出字符,a的ASCLL代码是97,b的是98,所以输出 c1=a,c2=b.%d是表示输出十进制整型,所以输出c1=97,c2=98 2、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。 问在键盘上如何输入? #include int main() { int a,b; float x,y; char c1,c2; scanf("a=%db=%d",&a,&b); scanf("%f%e",&a,&y); scanf("%c%c",&c1,&c2); return 0; } 答:输入如图: 输出如图: (此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容, 供参考,感谢您的配合和支持)

ansys有限元分析大作业

ansys有限元分析大作业

有限元大作业 设计题目: 单车的设计及ansys有限元分析 专业班级: 姓名: 学号: 指导老师: 完成日期: 2016.11.23

单车的设计及ansys模拟分析 一、单车实体设计与建模 1、总体设计 单车的总体设计三维图如下,采用pro-e进行实体建模。 在建模时修改proe默认单位为国际主单位(米千克秒 mks) Proe》文件》属性》修改

2、车架 车架是构成单车的基体,联接着单车的其余各个部件并承受骑者的体重及单车在行驶时经受各种震动和冲击力量,因此除了强度以外还应有足够的刚度,这是为了在各种行驶条件下,使固定在车架上的各机构的相对位置应保持不变,充分发挥各部位的功能。车架分为前部和后部,前部为转向部分,后部为驱动部分,由于受力较大,所有要对后半部分进行加固。

二、单车有限元模型 1、材料的选择 单车的车身选用铝合金(6061-T6)T6标志表示经过热处理、时效。 其属性如下: 弹性模量:) .6+ 90E (2 N/m 10 泊松比:0.33 质量密度:) 3 2.70E+ N/m (2 抗剪模量:) 60E .2+ N/m (2 10 屈服强度:) .2+ (2 75E 8 N/m 2、单车模型的简化 为了方便单车的模拟分析,提高电脑的运算

效率,可对单车进行初步的简化;单车受到的力的主要由车架承受,因此必须保证车架能够有足够的强度、刚度,抗振的能力,故分析的时候主要对车架进行分析。简化后的车架如下图所示。 3、单元体的选择 单车车架为实体故定义车架的单元类型为实体单元(solid)。查资料可以知道3D实体常用结构实体单元有下表。 单元名称说明 Solid45 三维结构实体单元,单元由8个节点定义,具有塑性、蠕变、应力刚化、 大变形、大应变功能,其高阶单元是 solid95

ansys有限元分析工程实例大作业

ansys有限元分析工程实例大作业

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

辽宁工程技术大学 有限元软件工程实例分析 题目基于ANSYS钢桁架桥的静力分析专业班级建工研16-1班(结构工程)学号 471620445 姓名 日期 2017年4月15日

基于ANSYS钢桁架桥的静力分析 摘要:本文采用ANSYS分析程序,对下承式钢桁架桥进行了有限元建模;对桁架桥进行了静力分析,作出了桁架桥在静载下的结构变形图、位移云图、以及各个节点处的结构内力图(轴力图、弯矩图、剪切力图),找出了结构的危险截面。 关键词:ANSYS;钢桁架桥;静力分析;结构分析。 引言:随着现代交通运输的快速发展,桥梁兴建的规模在不断的扩大,尤其是现代铁路行业的快速发展更加促进了铁路桥梁的建设,一些新建的高速铁路桥梁可以达到四线甚至是六线,由于桥面和桥身的材料不同导致其受力情况变得复杂,这就需要桥梁需要有足够的承载力,足够的竖向侧向和扭转刚度,同时还应具有良好的稳定性以及较高的减震降噪性,因此对其应用计算机和求解软件快速进行力学分析了解其受力特性具有重要的意义。 1、工程简介 某一下承式简支钢桁架桥由型钢组成,顶梁及侧梁,桥身弦杆,底梁分别采用3种不同型号的型钢,结构参数见表1,材料属性见表2。桥长32米,桥高5.5米,桥身由8段桁架组成,每个节段4米。该桥梁可以通行卡车,若只考虑卡车位于桥梁中间位置,假设卡车的质量为4000kg,若取一半的模型,可以将卡车对桥梁的作用力简化为P1,P2,和P3,其中P1=P3=5000N,P2=10000N,见图2,钢桥的形式见图1,其结构简图见图3。

重庆大学研究生有限元大作业教学内容

重庆大学研究生有限 元大作业

课程研究报告 科目:有限元分析技术教师:阎春平姓名:色学号: 2 专业:机械工程类别:学术 上课时间: 2015 年 11 月至 2016 年 1 月 考生成绩: 阅卷评语: 阅卷教师 (签名)

有限元分析技术作业 姓名: 色序号: 是学号: 2 一、题目描述及要求 钢结构的主梁为高160宽100厚14的方钢管,次梁为直径60厚10的圆钢管(单位为毫米),材料均为碳素结构钢Q235;该结构固定支撑点位于左右两端主梁和最中间。主梁和次梁之间是固接。试对在垂直于玻璃平面方向的2kPa 的面载荷(包括玻璃自重、钢结构自重、活载荷(人员与演出器械载荷)、风载荷等)作用下的舞台进行有限元分析。 二、题目分析 根据序号为069,换算得钢结构框架为11列13行。由于每个格子的大小为1×1(单位米),因此框架的外边框应为11000×13000(单位毫米)。 三、具体操作及分析求解 1、准备工作 执行Utility Menu:File → Clear&start new 清除当前数据库并开始新的分析,更改文件名和文件标题,如图1.1。选择GUI filter,执行 Main Menu: Preferences → Structural → OK,如图1.2所示

图1.1清除当前数据库并开始新的分析 图1.2 设置GUI filter 2、选择单元类型。 执行Main Menu: Preprocessor →Element Type →Add/Edit/Delete →Add→ select→ BEAM188,如图2.1。之后点击OK(回到Element Types window) →Close

有限元大作业matlab课程设计例子

有 限 元 大 作 业 程 序 设 计 学校:天津大学 院系:建筑工程与力学学院 专业:01级工程力学 姓名:刘秀 学号:\\\\\\\\\\\ 指导老师: 连续体平面问题的有限元程序分析 [题目]: 如图所示的正方形薄板四周受均匀载荷的作用,该结构在边界 上受正向分布压力, m kN p 1=,同时在沿对角线y 轴上受一对集中压 力,载荷为2KN ,若取板厚1=t ,泊松比0=v 。 [分析过程]: 由于连续平板的对称性, 只需要取其在第一象限的四分之一部分

参加分析,然后人为作出一些辅助线将平板“分割”成若干部分,再为每个部分选择分析单元。采用将此模型化分为4个全等的直角三角型单元。利用其对称性,四分之一部分的边界约束,载荷可等效如图所示。 [ 用和单元信息文件DATA.OUT。 位移模式:用用线性位移模式 载荷类型:节点载荷,非节点载荷应先换算为等效节点载荷 材料性质:弹性体由单一的均匀材料组成 约束方式:为“0”位移固定约束,为保证无刚体位移,弹性体至少应有对三个自由度的独立约束 方程求解:针对半带宽刚度方程的Gauss消元法 输入文件:由手工生成节点信息文件NODE.IN,和单元信息文件ELEMENT.IN 结果文件:输出一般的结果文件DATA.OUT 程序的原理如框图:

(1) ID : ID=2时为平面应变问题 (平面问题) ,LJK_ELE(I,1),LJK_ELE(I,2), X(I),Y(I)分别存放节点I 的x ,y 表示第I 个作用有节点载荷的节点x,y 方向的节点载荷数值 存放节点载荷向量,解方程后该矩 (2 READ_IN : 读入数据 BAND_K : 形成半带宽的整体刚度矩阵 FORM_KE : 计算单元刚度矩阵 FORM_P : 计算节点载荷 CAL_AREA :计算单元面积 DO_BC : 处理边界条件 CLA_DD : 计算单元弹性矩阵 SOLVE : 计算节点位移 CLA_BB : 计算单元位移……应变关系矩阵 CAL_STS :计算单元和节点应力 (3)文件管理: 源程序文件: chengxu.for 程序需读入的数据文件:

C语言程序设计-作业与答案

《C 语言程序设计》课程作业 适用层次:专升本 培养类型:理工科专业 专业班级: 姓名: 学号: 作业要求:题目可打印,答案要求手写,考试时交作业。 第1次: 1.编写程序,分别计算1到100之间的奇数之和及偶数之和,并输出。 2.输入三角形的三条边a 、b 、c ,如果能构成一个三角形,则计算并输出三角形的周长和面积(结果保留两位小数);否则输出“无效的边长!”。 三角形面积计算公式为: s=))()((c x b x a x x ---,其中,x=(a+b+c)/2。 3.输入一个整数,求它的各位数字之和。例如,123的各位数字之和为6,-63的各位数字之和为9。 4.使用格里高利公式求π的近似值,精确到最后一项的绝对值小于10-6 。 +-+-=71 513114π …… 5.中国古代数学史上著名的“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何? 6.编写程序,键盘输入正整数n (0= 2 2. 编写一个函数prime(int n),判断一个整数是否是素数,若是素数,函数值返回1,否则返回0。利用该函数找出100-200之间的所有素数。素数是只能被1和自身整除的正整数,2是最小的素数。 3.写一函数int strlength(char *s)求一个字符串的长度。主函数中输入一个字符串,调用函数strlength 求其长度并输出。

有限元分析及应用大作业

有限元分析及应用大作业 作业要求: 1)个人按上机指南步骤至少选择习题中3个习题独立完成,并将计算结果上交; 也可根据自己科研工作给出计算实例。 2)以小组为单位完成有限元分析计算; 3)以小组为单位编写计算分析报告; 4)计算分析报告应包括以下部分: A、问题描述及数学建模; B、有限元建模(单元选择、结点布置及规模、网格划分方案、载荷及边界 条件处理、求解控制) C、计算结果及结果分析(位移分析、应力分析、正确性分析评判) D、多方案计算比较(结点规模增减对精度的影响分析、单元改变对精度的 影响分析、不同网格划分方案对结果的影响分析等) 题一:图示无限长刚性地基上的三角形大坝,受齐顶的水压力作用,试用三节点常应变单元和六节点三角形单元对坝体进行有限元分析,并对以下几种计算方案进行比较: 1)分别采用相同单元数目的三节点常应变单元和六节点三角形单元计算;(注意ANSYS中用四边形单元退化为三节点三角形单元) 2)分别采用不同数量的三节点常应变单元计算; 3)当选常应变三角单元时,分别采用不同划分方案计算。 解:1.建模: 由于大坝长度>>横截面尺寸,且横截面沿长度方向保持不变,因此可将大坝看作无限长的实体模型,满足平面应变问题的几何条件;对截面进行受力分析,作

用于大坝上的载荷平行于横截面且沿纵向方向均匀分布,两端面不受力,满足平面应变问题的载荷条件。因此该问题属于平面应变问题,大坝所受的载荷为面载荷,分布情况P=98000-9800*Y;建立几何模型,进行求解;假设大坝的材料为钢,则其材料参数:弹性模量E=2.1e11,泊松比σ=0.3; 2:有限元建模过程: 2.1 进入ANSYS : 程序→ANSYS APDL 15.0 2.2设置计算类型: ANSYS Main Menu: Preferences →select Structural →OK 2.3选择单元类型: ANSYS Main Menu: Preprocessor →Element Type→Add/Edit/Delete →Add →select Solid Quad 4node 182(三节点常应变单元选择Solid Quad 4node 182,六节点三角形单元选择Solid Quad 8node 183)→OK (back to Element Types window) →Option →select K3: Plane Strain →OK→Close (the Element Type window) 2.4定义材料参数: ANSYS Main Menu: Preprocessor →Material Props →Material Models →Structural →Linear →Elastic →Isotropic →input EX:2.1e11, PRXY:0.3 →OK 2.5生成几何模型: 生成特征点: ANSYS Main Menu: Preprocessor →Modeling →Create →Keypoints→In Active CS →依次输入四个点的坐标:input:1(0,0),2(10,0),3(1,5),4(0.45,5) →OK 生成坝体截面: ANSYS Main Menu: Preprocessor →Modeling →Create →Areas →Arbitrary →Through KPS →依次连接四个特征点,1(0,0),2(6,0),3(0,10) →OK 2.6 网格划分: ANSYS Main Menu: Preprocessor →Meshing →Mesh Tool→(Size Controls) lines: Set →依次拾取两条直角边:OK→input NDIV: 15 →Apply→依次拾取斜边:OK →input NDIV: 20 →OK →(back to the mesh tool window)Mesh:Areas, Shape: tri, Mapped →Mesh →Pick All (in Picking Menu) →Close( the Mesh Tool window) 2.7 模型施加约束: 给底边施加x和y方向的约束: ANSYS Main Menu: Solution →Define Loads →Apply →Structural →Displacement →On lines →pick the lines →OK →select Lab2:UX, UY →OK 给竖直边施加y方向的分布载荷: ANSYS 命令菜单栏: Parameters →Functions →Define/Edit →1) 在下方的下拉列表框内选择x ,作为设置的变量;2) 在Result窗口中出现{X},写入所施加的载荷函数: 98000-9800*{Y};3) File>Save(文件扩展名:func) →返回:Parameters →Functions →Read from file:将需要的.func文件打开,参数名取meng,它表示随之将施加的载荷→OK →ANSYS Main Menu: Solution →Define Loads →Apply →Structural →Pressure →On Lines →拾取竖直边;OK →在下拉列表框中,选择:Existing table →OK →选择需要的载荷为meng参数名→OK 2.8 分析计算: ANSYS Main Menu: Solution →Solve →Current LS →OK(to close the solve Current Load

相关文档
最新文档