结构力学上机心得(精选10篇)
1.结构力学上机心得 篇一
实验一 线性表
一、实验题
线性表的应用———多项式计算
二、程序设计思路
包括每个函数的功能说明,及一些重要函数的算法实现思路一链式存储:
1.void InitPoly(LNode *&p)初始化多项式 2.void TraversePoly(LNode *&p)遍历多项式 3.void ClearPoly(LNode *&p)清除多项式
4.void InsertPoly(LNode *&p, double a, int e)插入一项 5.void DeletetPoly(LNode *&p,int pos)
删除一项
6.double PolySum(LNode *&p, double x)
多项式求值 7.LNode * PolyAdd(LNode *&p1,LNode *& p2)
多项式相加 顺序存储:
1.void InitPoly1(SeqList &L)初始化多项式 2.void ClearPoly1(SeqList &L)清除多项式 3.void TraversePoly1(SeqList L)
遍历多项式
4.bool InsertPoly1(SeqList &L, ElemType item)插入一项 5.double PolySum1(SeqList L,double x)
多项式求值 6.bool DeleteList1(SeqList &L,int pos)
删除一项
7.SeqList PolyAdd1(SeqList &L1,SeqList& L2)
多项式相加
三、源程序代码
#include
{ if(pos>1||pos<-1)return false;NodeType *cp=p->next;NodeType *np=p;if(pos==0){ while(cp!=p){ if(cp->coef==a&&cp->exp==e)break;else{ np=cp;cp=cp->next;} } } else if(pos==-1)while(cp!=p){
删除np=cp;cp=cp->next;} np->next=cp->next;delete cp;return true;} double PolySum(NodeType *p, float x)//多项式求值 { int i;double sum=0,item;NodeType *cp=p->next;while(cp!=p){ item=1;for(i=1;i<=cp->exp;i++)item=item*x;sum=sum+item*cp->coef;cp=cp->next;} return sum;} NodeType *PolyAdd(NodeType *p1, NodeType *p2)//多项式相加 { float coef;NodeType *a=p1->next,*b=p2->next,*c,*pc;InitPoly(c);pc=c;while(a!=p1&&b!=p2){ if(a->exp==b->exp){ coef=a->coef+b->coef;if(coef!=0){ InsertPoly(pc, coef, a->exp);pc=pc->next;} a=a->next;b=b->next;} else if(a->exp 输出多项式 } void ClearPoly1(ListType &p)//清除多项式 { if(p.list!=NULL){ delete []p.list;p.list=NULL;} p.size=0;} void InsertPoly1(ListType &p, float a, int e)//项 { p.list[e]=a;if(p.size { int i,n;if(p.size==0){ cout<<“多项式为空,删除无效!”< 插入一if(p.list[e]==a)p.list[e]=0;else if(pos==-1)p.list[p.size]=0;return true;} double PolySum1(ListType p, float x)//值 { double sum=0,item;int i,j;for(i=0;i<=p.size;i++){ item=1;for(j=1;j<=i;j++)item=item*x;sum=sum+item*p.list[i];} return sum;} ListType PolyAdd1(ListType p1, ListType p2)//项式相加 { ListType p;InitPoly1(p);float coef; 多项式求多int i,j;for(i=0;i<=p1.size;i++){ coef=p1.list[i]+p2.list[i];InsertPoly1(p, coef, i);} if(i<=p1.size)for(j=i;j<=p1.size;j++)InsertPoly1(p, p1.list[j], j);if(i<=p2.size)for(j=i;j<=p2.size;j++)InsertPoly1(p, p2.list[j], j);return p;四实验结果分析 五.心得体会 对于结构体的认识增加了,对于动态存储也有了更多的认识,也是在不知不觉中提高了。 实验二 字符串的操作 一、实验题目——字符串的操作 二、程序设计思路 采用定长顺序存储表示,由用户创建串s和串t,实现在串s中下标为pos的字符之前插入串t。 三、源程序代码 #define MAXLEN 10 typedef struct { /*串结构定义*/ char ch[MAXLEN]; int len;}SString;void createstring(SString *s) /*创建串s*/ { int i,j;char c;printf(“input the length of the string:”); scanf(“%d”,&j); for(i=0;i { printf(“input the %d:”,i+1); fflush(stdin); scanf(“%c”,&c); s->ch[i] = c; } s->len = j;} void output(SString *s) /*输出串s*/ { int i;for(i=0;i printf(“%c ”,s->ch[i]); printf(“n”);} int StrInsert(SString *s, int pos, SString *t)/*在串s中下标为pos的字符之前插入串t */ { int i;if(pos<0 || pos>s->len) /*插入位置不合法*/ return(0); if(s->len + t->len<=MAXLEN) /*插入后串长≤MAXLEN*/ { for(i=s->len + t->len-1;i>=t->len + pos;i--) s->ch[i]=s->ch[i-t->len];/*将下标为pos的字符后的元素往后移动t->len个长度*/ for(i=0;i s->ch[i+pos]=t->ch[i]; /*将串t从下标为pos位置开始插入到串s*/ s->len=s->len+t->len;} else { if(pos+t->len<=MAXLEN)/*插入后串长>MAXLEN,但串t的字符序列可以全部插入*/ { for(i=MAXLEN-1;i>t->len+pos-1;i--) s->ch[i]=s->ch[i-t->len]; for(i=0;i s->ch[i+pos]=t->ch[i]; /*将串t从下标为pos位置开始插入到串s*/ s->len=MAXLEN; } else /*插入后串长>MAXLEN,并且串t的部分字符也要舍弃*/ { for(i=0;i s->ch[i+pos]=t->ch[i]; /*直接从下标为pos的位置按顺序插入串t*/ s->len=MAXLEN; } return(1);} } void main(){ SString *str1;SString *str2;int i,j,k,pos;int flag=0;str1 =(SString *)malloc(sizeof(SString));str1->len = 0;printf(“creat the string 1:n”);createstring(str1);printf(“creat the string 2:n”);createstring(str2);printf(“input the insert local:”);scanf(“%d”,&pos);flag=StrInsert(str1,pos,str2);if(flag == 0) printf(“insert error!”);else { printf(“after insert:n”); output(str1);} } 四、实验结果 五、实验体会 通过本次实验,我加深了对串数据结构的理解。在串的定长顺序存储结构中,按照预定义的大小,为每个定义的串变量分配一个固定长度的存储区。在存储方式中,结点大小的选择和顺序存储方式的格式选择一样都很重要,它直接影响着串处理的效率。 实验三 一、实验题目——非递归算法对二叉树进行中前序遍历 二、程序设计思路 创建一棵10个节点构造的完全二叉树,并对其进行前、中、后序遍历。 三、源程序代码 #define STUDENT EType #define SType SType #define HeadEType int #include //定义数据结构类型 struct STUDENT { char name[8];int age;char number[15];char address[20];}; struct BinaryTreeNode { EType data;BinaryTreeNode *LChild;BinaryTreeNode *RChild;};typedef BinaryTreeNode BinaryTree; typedef struct { BinaryTreeNode *ptr;bool status;}SType; typedef struct { SType *element;int top;int MaxSize;}Stack; void CreatStack(Stack &S, int MaxStackSize){// 构造一个最大容量为MaxStackSize 的堆栈 S.MaxSize = MaxStackSize; S.element = new SType[S.MaxSize]; S.top =-1;} bool IsEmpty(Stack &S){// 判断堆栈S是否为空 if(S.top ==-1) return true; return false;} bool IsFull(Stack &S){// 判断堆栈S是否为空 if(S.top == MaxSize-1) return true; return false;} bool Push(Stack &S , SType &x){// x进s栈,返回进栈后的状态值 if(IsFull(S)) return false; S.top++; S.element[S.top] = x; return true;} bool Pop(Stack &S , SType &x){// 将s栈顶的值取至x中,返回出栈后的状态值 if(IsEmpty(S)) return false; x = S.element[S.top]; S.top--; return true;} BinaryTreeNode *MakeNode(EType &x) {//构造结点 BinaryTreeNode *ptr; ptr = new BinaryTreeNode; if(!ptr)return NULL; ptr->data = x; ptr-> LChild = NULL; ptr-> RChild = NULL; return ptr;} void MakeBinaryTree(BinaryTreeNode *root, BinaryTreeNode *left, BinaryTreeNode *right){// 联接root,left, right所指的结点指针为二叉树 root->LChild=left; root->RChild=right;} void PreOrderNoRecursive(BinaryTreeNode *BT){//二叉树前序遍历非递归的算法 Stack S;SType ele;BinaryTreeNode *q=BT;int MaxStackSize=50;//假设堆的空间足够大,即MaxStackSize值足够大 CreatStack(S,MaxStackSize);//产生一个空栈 while(q||!IsEmpty(S)){ if(q) { cout< ele.ptr=q; Push(S,ele);//节点指针进栈,以后回溯时在退栈 q=q->LChild;//指针指向刚刚被访问的“根”节点的左子树 } else //当左子树为空时,利用堆栈回溯 if(!IsEmpty(S)) { Pop(S,ele);//退栈回溯 q=ele.ptr;//指针重新指向刚刚被访问的“根”节点 q=q->RChild;//指针指向该回溯节点的右子树 } } } void InOrderNoRecursive(BinaryTreeNode *BT){//二叉树的中序遍历非递归的算法 Stack S;SType ele;BinaryTreeNode *q=BT;int MaxStackSize=50;//假设堆的空间足够大,即MaxStackSize值足够大 CreatStack(S,MaxStackSize);//产生一个空栈 while(q ||!IsEmpty(S)){ while(q)//找到最左边的子树 { ele.ptr=q; Push(S,ele);//指针非空时,将当前的“根”节点指针进栈,用于以后回溯 q=q->LChild;//指针继续指向该“根”节点的左子树 } if(!IsEmpty(S))//当左子树为空时,进行退栈回溯 { Pop(S,ele);//从堆栈中回溯节点指针(节点还未访问) q=ele.ptr; cout< q=q->RChild;//指针向回溯的节点右子树推进 } } } void PostOrderNoRecursive(BinaryTreeNode *BT){//二叉树的后序遍历非递归的算法 Stack S;SType ele;BinaryTreeNode *q=BT;int MaxStackSize=50;//假设堆的空间足够大,即MaxStackSize值足够大 CreatStack(S,MaxStackSize);//产生一个空栈 while(q ||!IsEmpty(S)){ if(q)//找最左边的子树 { ele.ptr=q; ele.status=false;//进栈前标记为第一次进栈 Push(S,ele); q=q->LChild;//指针继续向左推进 } else if(!IsEmpty(S))//直到左子树为空时,退栈回溯 { Pop(S,ele);//从堆栈中弹出回溯节点(还未访问) q=ele.ptr;//q指向当前回溯节点 if(ele.status)//判断节点进栈标志,是否对其进行访问 { cout< q=NULL;//将q设为空,为了继续退栈 } else { ele.status=true;//改变回溯节点的进栈标记,以便再次进栈 Push(S,ele); q=q->RChild;//指针向该回溯节点的右孩子推进 } } } } //主函数 void main(){ BinaryTreeNode *ptr[11]; char Name[][8]={“ ”,“A”,“B”,“C”,“D”,“E”,“F”,“G”,“H”,“I”,“J”};EType x[11];for(int i=1;i<11;i++){ strcpy(x[11-i].name,Name[11-i]); ptr[11-i]=MakeNode(x[11-i]);//构造10个二叉树节点 } //将节点链接域填值,构造一个二叉树 //这里构造的是一棵有10个节点的完全二叉树 for(int j=1;j<5;j++){ MakeBinaryTree(ptr[j],ptr[2*j],ptr[2*j+1]);} MakeBinaryTree(ptr[5],ptr[10],NULL);//该完全二叉树构造完毕 //***********对已构造的完全二叉树进行前序非递归遍历************// cout<<“对该二叉树进行前序遍历结果:”< //***********对已构造的完全二叉树进行中序非递归遍历************// cout< //***********对已构造的完全二叉树进行中序非递归遍历************// cout< 四、实验结果分析 五、实验总结 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。 实验四 一、实验题目——深度优先算法实现图的遍历 二、程序设计思路 以邻接矩阵或邻接表为存储结构,以用户指定的顶点为起始点,实现无向连通图的深度优先,并输出遍历的结点序列。首先,根据用户输入的顶点总数和边数,构造无向图,然后以用户输入的顶点为起始点,进行深度优先,并输出遍历的结果。 三、源程序代码 #include };struct vexnode { char vertex;edgenode* edgelink;};struct Graph { vexnode adjlists[MaxVerNum];int vexnum;int arcnum;};//队列的定义及相关函数的实现 struct QueueNode { int nData;QueueNode* next;};struct QueueList { QueueNode* front;QueueNode* rear;};void EnQueue(QueueList* Q,int e){ QueueNode *q=new QueueNode;q->nData=e;q->next=NULL;if(Q==NULL) return;if(Q->rear==NULL) Q->front=Q->rear=q;else { Q->rear->next=q; Q->rear=Q->rear->next;} } void DeQueue(QueueList* Q,int* e){ if(Q==NULL) return;if(Q->front==Q->rear){ *e=Q->front->nData; Q->front=Q->rear=NULL;} else { *e=Q->front->nData; Q->front=Q->front->next;} } //创建图 void CreatAdjList(Graph* G){ int i,j,k;edgenode* p1;edgenode* p2;cout<<“请输入顶点数和边数:”< cin>>G->adjlists[i].vertex; G->adjlists[i].edgelink=NULL;} cout<<“开始输入边表信息:”< cout<<“请输入边 cin>>i>>j; p1=new edgenode; p1->endver=j; p1->edgenext=G->adjlists[i].edgelink; G->adjlists[i].edgelink=p1; p2=new edgenode; p2->endver=i; p2->edgenext=G->adjlists[j].edgelink; G->adjlists[j].edgelink=p2; //因为是无向图,所以有两次建立边表的过程 } } //------------------------------深度优先遍历 void DFS(Graph *G,int i,int visit[]){ cout< DFS(G,p->endver,visit);} } void DFStraversal(Graph *G,char c)//深度优先遍历 { cout<<“该图的深度优先遍历结果为:”< visit[i]=0;//全部初始化为0,即未访问状态 } int m;for(i=0;i if(G->adjlists[i].vertex==c)//根据字符查找序号 { m=i; DFS(G,i,visit); break; } } //继续访问未被访问的结点 for(i=0;i if(visit[i]==0) DFS(G,i,visit);} cout< int e=0; DeQueue(Q,&e); cout< visit[e]=1; edgenode* p=new edgenode; p=G->adjlists[e].edgelink; if(p) { int m=p->endver; if(m==0) { EnQueue(Q,m); while(visit[m]==0) { p=p->edgenext; if(p==NULL) break; m=p->endver; EnQueue(Q,m); } } } } } void BFStraversal(Graph *G,char c){ cout<<“该图的广度优先遍历结果为:”< visited[i]=0;} int m;for(i=0;i if(G->adjlists[i].vertex==c) { m=i; BFS(G,i,visited); break; } } //继续访问未被访问的结点 for(i=0;i if(visited[i]==0) BFS(G,i,visited);} cout< 四、实验结果及分析 五、实验总结 本次试验采用的是邻接表的方式实现图的深度优先遍历和。对于深度优先遍历,主要是采用递归的方式。试验本身问题不是太大,但要注意输入的问题,什么时候用空格,什么时候用回车,这一点是需要注意的,因为一旦数据的输入有问题,结果当然也就不可能正确了。只有正确的输入数据,建立图,才能得出正确的遍历结果。 (五)实验名称:排序算法 班级_______ 姓名__________ 学号______实验日期: 实验机时:3 学时实验成绩: ----------------- 一.实验目的: 1、掌握主要排序算法的思想和实现技术。 二.实验内容: 1、设计一程序,要求:输入学生“软件技术基础”课的成绩(学 号、姓名、平均成绩、总学分);按总学分对学生数据进行排序。(要求:实现任选3种排序算法) 三.程序: 1、程序规范(输入数据、功能、输出数据) 2、设计分析(数据表示、算法) 3、C源代码(电子版) 经过一个学期的学习电子商务,我从中收获了不少有用的知识。其中经过十周的上机的实践,我更是收获了不少操作技巧,上机的过程可谓一语难尽,曲折多多。在上机期间,我失落过,热情高涨过;从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。 记得第一、二次上机课老师是让我们认识淘宝、京都商城等购物网站和分别在这些网站上申请属于自己的会员号。在此之前,我已经对网上购物算是非常熟悉了,所以我觉得老师所受的课程没有很大的引起我的兴趣。 但是,随着第三周课程的开始,我们的上机课程内容的深度不断加深,我开始渐渐的对这门课有所兴趣。记得从第三、四节课,开始,老师已经开始用电脑软件让我们自己操作关于B2B和B2C的实际操作流程。开始的操作还是挺简单的,只是在网站上以买家的身份买些自己想买的东西。还有就是自己做卖家,把商品卖给他人。 到了第7、8周这样,课程不断加深。老师已经开始让我们关于三方物流的课程软件了,班内的同学自己组合,分别做采购商、供应商和物流商。这是我最喜欢的一个操作过程,内容对于我们学报关的学生十分有用。作为采购商,要严格的按照采购的步骤进行采购,例如:要在银行开立账户、选准供应商、网上洽谈等,若其中一个环节不对就不能采购好货物。作为供应商,要即检查入库、联系物流商将货物及时送到采购商的手中、网上洽谈,期间不能出现任何问题,否则,货物就难以出库,所以供应商具备是十分严谨特质。最后,是物流商,物流商是扮演的角色也是非常重要,在采购商与供应商洽谈好发货详情后,物流商就要着手发货。三方物流就是采购商、供应商、物流商的相互配合、协作完成此项工作,三方就是一个协作的整体。这次课程内容的操作,同时也让我感受到了一个深刻的道理,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。 现如今,电子商务的上机课程已经结束了,但是这个过程对于我而言是十分难忘的,每次上机课都是十分紧张刺激的,在规定的时间内完成规定的内容,每次课程都十分的充实。对于我们报关专业的学生而言,电子商务上机课程能够很好的帮助我们,了解今后我们从事的岗位有可能接触到的相关工作流程。学号:201008520127 班级:报关1班 在这两次的沙盘实验经营过程中,我觉得第一次比较深刻些,因为刚开始尝试着像这样的操作实验!记得在第一次实验正式被计入分数时,就在第五年破产两次。追其原因有三大方面: 第一,广告方面。投广告前要是没有做好对手、资金与市场三者之间的协调,那么你所投的广告就算是失败的了。投广告时不能只是两个人的商量决定就投多或少的,而是要看竞争对手是怎么投的;还有就是没有做好现金预算,除此之外,还要看懂市场预测走势。只有兼顾了这以上三者,那么投广告方面和拿订单就没什么大问题了! 第二,研发方面没有计划好。比如市场研发和产品研发,市场是需要连续研发下去的,中间不能间断,因为这市场研发的成本是很低的,况且市场是不断扩张的,只是产品需求和产品价格不一样而已;而产品就不要盲目研发了,要看懂市场预测才做决定的!还有就是购买生产线方面就欠佳。在这第一次经营当中只是看在资金的限制而不敢去建设其他厂房,只在原有的A厂房里的那4条生产线之间转换,更糟糕的是在第三年还购买半自动生产线,根本不懂得利用不同生产线之间的优势,也没有思考如何做到产能最大化!总而言之,要做到市场研发、产品研发和生产线之间的匹配才是最重要的! 第三,资金流方面。要弄清楚短期贷款、长期贷款和民间融资之间的区别。短期贷款方面不要借新款来还旧款,那样每年赚到的钱都还贷款去了,还有短期贷款最好不要在第一季度借,因为在第一季度贷的话,到年底又要还钱了,那么就可能会影响广告的投入了!而长期贷款就是在第一年第四季度末才有得贷的,最好一次性有多少贷多少,但是要注意的是贷回来的钱要用才行!而民间融资就看慎重考虑了,因为它的利息挺高的! 除了以上几大方面,当然我们组内也没有做好事先的生产规划。规划是关键,要是没有规划就想长期经营下去不破产那才怪呢!而我们没有计划并看懂到底要进哪个市场,就是在那里盲目地投广告,经过一两轮的破产 和在老师的指导下,才意识到生产规划的重要性和投广告的技巧! 还有一点就是,广告投入和产能之间不相匹配。广告投入要侧重哪个市场,而且也拿到订单了,但是产能方面就很低了,根本不能满足供给,所以一个P系列产品至少要有3条生产线以上才能满足供给。 而经过第一次的沙盘经营之后,在第二次经营时就有所注意并改善了,这次与上次所不同的就是物料采购会出现延期情况,所以要提前一两个季度采购了!不过也可以紧急采购的,就是价格会翻一倍。此外,在投完广告之后在竞单前会出现市场因素而导致某一产品的需求变动以及价格的相应变化!所以要时刻注意经营了,也正因有了上一次的经营教训,所以这一次的8年都没有面临破产境地!虽然不是经营得很好,但也能在稳中处于不败之地,还是算不错的! 一、实验前的准备工作 在上机实验前应事先做好准备工作,以提高上机实验的效率: 1.了解所用的计算机系统(包括C编译系统)的性能和使用方法。 2.复习和掌握与本实验有关的教学内容。 3.准备好上机所需程序。要仔细弄清题意,选择和设计合适的算法。在选择算法时,应当是在理解现有算法的基础上,自己动手画出流程图再设计源程序。手编写程序应当书写整齐,并经人工检查无误后才能上机,以提高上机效率。切忌不编写程序或抄袭他人程序,注意培养严谨踏实的学习作风。 4.对运行中可能出现的问题应率先作出估计;对程序中自己有疑问的地方,应作上记号,以便在上机时给予重视。 5.准备好调试和运行时所需的数据。 二、上机实验基本步骤 上机实验时应该独立上机。上机过程中出现的问题,除了系统问题外,一般应自己独立处理,不要轻易举手问教师。尤其对“出错信息”,应善于自己分析判断。这是学习调试程序的良好机会,碰到困难时切忌轻易放弃。 上机实验一般应包括以下步骤: 1.调出C编译系统,进入C工作环境,如Turbo C2.0集成环境。 2.输入自己编好的程序,注意正确的键盘输入指法。 3.检查一遍已经输入的程序是否有错(包括输入错误和编程中的错误)。 4.进行编译。如果编译和连接过程中发现错误,屏幕上会出现“出错信息”,则根据提示找到出错位置和原因,加以改正,再进行编译„„如此反复,直到顺利通过编译和连接为止。 5.运行程序,并分析运行结果是否正确、合理。组织多组实验数据,分别从不同情况下检查程序的正确性。 6.输出程序清单和运行结果。特别要进行上机调试记录(尤其是出错情况和排错记录),调试数据和运行结果记录、心得体会等。 三、撰写实验报告 做完实验后要写实验报告,对整个实验进行总结和提高,这是整个实验过程的一个重要环节,不要把它看成是一种不必要的负担,更不能敷衍了事。针对本课程的实验特点,建议在书写实验报告时应包括如下内容。 1.实验目的实验作为教学的一个重要环节,其目的在于更深入地理解和掌握课程教学中的有关基本概念和基本技术,从而进一步提高分析问题和解决问题的能力。因此,当着手做一个实验的时候,必须明确实验目的,以保证达到课程所指定的基本要求。在写实验报告时,要进一步确认是否达到了预期的目的。 2.实验内容 实验的目的是要通过解决一些具体问题来达到的。根据教学安排、进度、实验条件、可提供的上机时数、学生的基础等因素,逐步完成。在实验报告中,实验内容是指本次实验中实际完成的内容,在每一个实验题目中,一般都提出了一些具体要求,其中有些具体要求是为了达到实验目的而提出的。因此,在实验内容中,不仅要写清楚具体的实验题目,还应包括具体要求。 3.算法和流程图 算法设计是程序设计过程中一个重要步骤。本章的某些实验题目给出了方法说明,有的还提供了流程图,但有的没有给出流程图。如果在做实验的过程中,使用的算法或流程图和本书中给出的不一样,或者书中没有给出算法和流程图,则在实验报告中应给出较详细的算法说明与流程图,并对其中的主要符号与变量作相应的说明。 4.程序清单 程序设计的产品就是程序,它应与算法或流程图相一致。程序要具有易读性,符合模块化和结构化原则。 5.运行结果 程序运行结果一般是输出语句所输出的结果,对于不同的输入,其输出结果是不同的。因此,在输出结果之前一般还应注明输入的数据,以便对输出结果进行分析和比较。 6.调试分析和体会 1.学生秩序进入计算机室,不要拥挤。在室内应自觉保持室内清洁,不得在室内吐痰、吃东西、乱扔果皮纸屑等。 2.学生必须对号入座,未经管理教师允许不得调换座位,如因私自调换座位造成设备损坏的,应造价赔偿。 3.学员不得在桌椅、墙壁上乱写乱画或随意拉扯窗帘,爱护公共设施。 4.学员应爱护室内教学设备,严禁学员未经管理人员同意,在计算机上使用软盘、光盘或其他移动磁盘,拷贝计算机内的文件,以免病毒传入。 5.学员应保持多媒体学习室良好的教学秩序,不得在学习期间利用计算机进行娱乐,不得乱动室内设备,不得在主控台前围观,不得在室内喧哗。 6、学生下课应把桌上的物品摆整齐,凳子整齐摆放在电脑桌底下后,方能离开。 这两周我们进行了Matlab的上机。为了熟练掌握Matlab的各种操纵,学会使用Matlab解决复杂矩阵的运算并学会用Matlab解决平差中的实际问题,我们以书上的例7-8为例,通过Matlab编程运行来解决这道题,以熟悉Matlab的各项操纵和编程。 首先,我对该题进行了分析,然后将解题思路和解题过程中需要的公式写在了草稿纸上,然后,我比照Matlab的正确语言将各项公式输进了Matlab中,进行调试运行的时候并没有一次就成功,因为分号等符号的不正确使用,矩阵输入的一些错误方式以及数据输入上的一些错误,一直没能能算出正确的结果,在进行了多次的调试改正后才最终得出了正确的结果。 通过这些天的上机实习,我学会了将矩阵正确输入Matlab 的方法、学会了利用Matlab进行复杂矩阵的转置、求逆等运算,也学会了一些Matlab专有语言如diag等的应用。可以说已经掌握了Matlab大概的功能,在以后的学习中,如果有需要用到Matlab的地方,我相信我也一定能好好使用Matlab来解决学习解题中遇到的问题。短短两周的实习很快结束。从这次实习中,我认识到了亲身实践是我们大学生活中很有用也很充实的一步,通过实习能学到课堂上学不到的一些东西。在课堂上我们仅仅知道该怎么去做,但没有亲自实践,只能靠想象,所以很多东西当时都很难理解,很多东西不经过实践就不会印象深刻。在上级之前,读过Matlab的相关书籍,觉得自己好像会了,但是在实际上机操纵过程中就会发现还是出现了很多这样或那样的问题。但是,经过上机的实践后,似乎就更容易理解其原理了,而且对其操纵与使用印象更深刻了。 一、进入计算机教室必须换上干净的拖鞋或鞋套,保持服饰干净整洁,不得将食品、水等带入机房。 二、按老师指定的座位上机,不得高声喧哗,四处走动。严禁在座位和电脑外壳上乱刻乱画。 三、上机前要检查座位及计算机,发现损坏要向老师报告。自己损坏的要主动报告,并承担赔偿责任。 四、操作电脑应按照学习内容进行,不得随意进行非学习内容的操作。 五、上机操作期间,不得私带游戏盘或来历不明的磁盘进入计算机室。使用过程中发现冒烟,异响等情况,应及时关机,并向老师报告,等待处理。 六、下课时要再次检查座位和计算机,并认真填写上机记录。收拾好自己的学习用品,桌面、地面不留丢弃物,按次序退出机房,不滞留机房。 课程名称:文献检索日期: 学院:班号:姓名:学号: 实验名称:电子图书等资源检索。 实验目的:掌握图书资源如何检索和利用,熟悉人名录或机构名录的检索。实验内容: 1、用CALIS检索你们自己任课教师的编著发表情况。 2、用超星检索自己所在专业的某一方面的图书出版情况,并采集某一本书的一段文字,一个图。(以超星为例) (1).登陆四川理工学院图书馆主页。 (2).找到电子资源,点击进入图书馆电子资源界面。 (3).找到热门资源中的“超星数字图书馆”,并点击“本地”,进 入超星数字图书馆。 (4).找到“浏览器”,点击并下载超星星浏览器。 (5).下载好“超星星浏览器”后就可以浏览图书了。 (6).例如查 3、利用物竞化学品数据库检索某一具体化学物质的相关数据。 4、用万方数据库检索我国某一位院士/科学家/某学科领域著名学者的名录。 java作为主流开发语言之一,应用场景自然是非常的广泛,java工程师的人才的需求量也是非常大的,选择学习java的朋友也是不在少数,想要成为一名合格的java工程师需要不断的练习,并不是只看光想就行了,面试官可不会给你手下留情哦。 在java练习的时候一定要有目标,总结不一定要写但是一定要理解你所写的程序的意义何在,华清远见的学员对于这点就比较看重在练习的同时记录下来自己的目的和心得,此举希望对从事软件编程的朋友能够有一些启示。 实验1 熟悉Java运行环境 实验目的:熟悉JDK环境和操作,编写简单的Java应用程序。 心得体会:在该实验中,我碰到的问题是JDK环境变量的设置。解决方法是通过查阅资料书和网上搜索相关解决方法及同学的有力帮助。 实验2 选择语句练习 实验目的:正确理解并能够熟练操作和使用Java的if和switch语句。 心得体会:我个人感觉有了C的编程基础,if和switch这些简单的流程控制语句运用起来比较轻松,实现简单的逻辑运算也跟C非常相近,所以上手比较快。但是在这次程序中,首次涉及到了java程序的数据输入,与C区别很大。但经过老师的讲解和查阅相关资料,基本明白相关的使用规则和注意事项。在第二个小题中还涉及到了charAt()方法,经查阅JDK文档,知道charAt()方法返回一个位于提供给它的参数索引处的字符,如: str.chatAt(0)检索str中的第一个字符,str.charAt(str.length()-1)检索最后一个字符。我运用此方法解决了比较字符串间首字母异同的问题。 实验3 迭代练习 实验目的:正确理解并能够熟练操作和使用Java的for、while、do..while语句。 心得体会:在该实验中,我学会了为具体操作选择最合适的循环语句及for、while、do..while语句的相互转换使用。最重要的是,明白了JAVA程序中,定义方法中的局部变量时一定要赋初始值,否则编译不能通过会报错;但类中的成员变量则不一定需要。如我在实验3main()方法定义的整型局部变量command,当不初始化则不能通过编译。原因是局部变量不能有JVM自动赋给相关的默认值,而成员变量可以。 实验4 方法的实现练习 实验目的:声明、定义和调用方法,理解实参和形参的含义。 心得体会:在该实验中,我掌握如何写方法、调用方法,并掌握如何向方法中传递信息和从方法中返回信息。方法声明为非void(构造方法除外)则需要用return语句返回一个相应类型的返回值。 实验5 简单类型数组练习 实验目的:学习创建简单类型的数组,并能用循环语句处理数组。 心得体会:通过该实验,我学会了如何让建立简单类型的数组,并掌握了将数组作为方法的传入参数和返回值。在该实验中,遇到的问题主要是如何将一个连续的多位数在存入数组时,每个数组元素只对应改多位数的一个组成数。我解决的方法如下: for(i=0;i<6;i++){ n[i] = aa%10;//aa%10的结果是aa的末尾数,将多位数aa的末尾数赋给 a[i] aa =(int)aa/10;//对aa/10的结果强制取整,去掉了aa的末尾数,以便对下一位数的存数。} 实验6 类和对象的练习 实验目的:正确理解并能够熟练操作和使用Java的类、对象和方法。 心得体会:我学会了如何建立类和对象,分别输出其中包含的成员值;以及分别引用各方法,实现不同的操作。在该程序中,我进一步了解了如何定义成员方法和成员属性以及相关方法的调用。特别是我掌握了利用构造方法对成员属性赋初始值。值得一提的是,我在相应的程序中运用了toUpperCase方法,经查看JDK文档知道该方法的作用是返回一个所有字母都被转化为大写字母字符串。 实验7 类的实现 实验目的:使用统一建模语言(UML)设计类,并实现类。 心得体会:通过该实验,我学会了使用public、private控制访问及其访问权限;体会了static关键字的作用。并对JAVA程序中的类及面向对象的编程思想有了更进一步的了解。 实验8 继承的练习 实验目的:正确理解并能够熟练操作和使用Java类的继承关系。 心得体会:理解了继承的含义,并使用UML符号设计了继承结构;掌握了用Java实现继承关系;学会了区分方法重写和方法重载;并深入理解了abstract 和 final修饰符的作用。用final标记的变量只能赋值一次,标记的类不可被继承,方法不可被子类重写。用关键字extends表继承,例如子类A继承了父类B则可写作 class A extends B。在这些概念性知识点弄明白后,在解决实际问题时,碰到了输入年月日计算车龄的问题,我的解决办法如下: publicint age(int year){ int age; int a1 =(int)(time/10000);//(int)time/10000是将8位数表示的生产年月日强制转换成四位数表示的年 int a2 =(int)(year/10000);//将当前年月日转换为年 age = a2-a1 +1;//计算车龄 return age; } 实验9 抽象类、接口练习 实验目的:综合运用接口,类的知识。 心得体会:在该实验中,我掌握了接口定义,以及类实现接口。接口用interface关键字定义,在接口中,可以用abstract是修饰方法的,也可以去掉abstract,编译时会默认为抽象方法。类实现接口可用implements表示,例如class Circle implements Shape表示,Circle类实现了接口Shape。 实验10 多态练习 实验目的:理解并使用面向对象的特征:多态。 心得体会:在实验10中,我基本掌握了多态的句柄、多态方法的定义。在改程序中,我遇到了要求随机产生一个图形的难题,通过网上查阅资料,利用系统函数Math.random()经一系列的运算处理来随机产生一个图形解决了该难题,具体的程序如下: public static void main(String[] args){ Circle cir = new Circle(9); Square squ = new Square(4); Shape shape;int r; r =(int)(Math.random()*2);//用Math.random()方法产生0.00到1.00的随机数,乘2取整后非0即1 if(r == 0) shape = cir; else shape = squ; shape.testShape(shape);//同一条语句产生不同的执行结果,多态 性。 } 实验11 多线程处理 实验目的:理解线程的基本概念。 心得体会:通过该实验,基本能够理解线程的运行了。学会调用Thread类中的系统函数以及掌握这些函数的作用是难点,setName()是设置线程名字,start()是开辟一条新线程,Thread.currentThread().getName()是获得正在执行的线程的名字,Thread.currentThread().getId()是thread类中返回该线程的标识符的方法,Thread.currentThread().getPriority()是thread类中返回线程的优先级的方法。 实验12 I/O及文件处理 实验目的:掌握并使用Java中的I/O和文件。 心得体会:对于该实验,由于比较难,只是基本掌握了文件读写的方法和规则,还有待17周JAVA实训时继续攻坚克难。 【结构力学上机心得】推荐阅读: 数据结构上机作业答案07-21 空间展开折叠桁架结构动力学分析研究06-27 砌体结构心得体会07-03 桥梁结构计算学习心得10-14 结构学习心得体会11-05 结构工程师工作心得体会06-18 上市公司治理结构完善心得体会09-16 2016两会学习心得(供给侧结构性改革)10-02 工程力学单06-10 建筑力学大纲06-172.结构力学上机心得 篇二
3.电子商务上机课心得 篇三
4.简谈ERP上机实验心得体会 篇四
5.上机实验要求 篇五
6.学生上机守则 篇六
7.Matlab上机报告 篇七
8.学生上机操作守则 篇八
9.上机实习报告格式 篇九
10.结构力学上机心得 篇十