C++实践报告
前言:
C++是一门实践性很强的课程,我们之前学的只是理论上的内容,如何解决实际问题还需要进一步实践才能体会到,而本次C++实践课程正好给了我们这样一个很好的机会。通过实践可以加深理解和巩固课堂学习的内容,更好的熟悉C++的语法规则,掌握C++的程序设计的方法,培养较强的应用开发能力。为以后解决生活生产中的问题打下一定的基础。
1.任意输入一个正整数,要求:(1)求它是几位数;(2)按逆序输出各位数字;(3)求奇数位数字之和。
算法分析:
用do…while语句,要输出逆序的数,需要进行取余运算,以10为除数,将余数依次输出结果就是改正整数的逆序,同时以10为除数,每次对正整数除10,直到正整数为零为止,运算的次数就是该数的位数,这需要用一个变量标记,初值为0,每运算一次,该变量自增,最后输出该变量,即正整数的位数;求奇数位之和就需要知道奇数位的数,第一步计算位数的变量如果是奇数,将输出的余数相加,就会得到奇数位之和。
程序:
#include
#include
using namespace std;
int main()
{
unsigned long int N,m,s=0; //N为正整数,m为每
//上的数,s为奇数位之和 int n=0; //n用来标记正整数的位数
cout<<"请输入一个自然数:";
cin>>N;
cout<<"倒置结果:"< do { m=N%10; //对正整数取余,求出它的个位数 cout< n=n+1; //输出一个数,n加一,n的结 //就是正整数的位数 if(n%2==1) //n%2==1表示奇数位 { s=s+m; //s表示奇数位之和 } N/=10; //每次对N除10,直到N为0 }while(N>0); cout<<"这是一个"< cout<<"奇数位之和:"< return 0; } 问题与解决方法: 运行时求奇数位之和总是不对,原因是我没有用前面的结果直接用n来判断奇数位,而是重新写了个语句求奇数位,使得程序复杂,错误也就出现了,后来问了一下舍友,发现n可以直接求奇数位,而且简单,经过修改,程序运行也就正确了。 2、输入阶数n(1≤n≤10),输出对应的n阶旋转矩阵。所谓旋转矩阵,就是在n阶矩阵中,起始数1置于方阵的左上角,然后从起始数开始依次递增,按顺时针方向从外向里旋转填数而成。如:输入n=5,输出: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 算法分析: 先定义一个二维数组,螺旋方阵第一个数为1,其次依次增加一,只是不是顺序着增加,而是旋转着,这就需要两个控制变量,分别控制行和列,通过循环,改变行和列,最后输出二维数组。 程序: #include #include using namespace std; void main() { int a[10][10],i,j,k=1,m,n; //定义一个二维数组,用k为数组赋 //值 cout<<"请输入n(1-10):"; cin>>n; if(n%2==0) m=n/2; else m=n/2+1; for (i=0;i<(n+1)/2;i++) //i控制生成方阵的圈数 { //j控制生成一条边的数据 for (j=i;j a[i][j] = k++; //k从1递增到n*n for (j=i+1;j a[j][n-i-1] = k++; for (j=n-i-2;j>=i;j--) //底边,从右到左,行不变列变 a[n-i-1][j] = k++; for (j=n-i-2;j>=i+1;j--) //左边,从下到上,行变列不 //变 a[j][i] = k++; } cout<<"结果为:"< for(i=0;i { for(j=0;j cout< cout< } } 问题与解决方法: 开始时不懂怎么循环,找不到行和列与数值之间的关系,后来在书上找了一个类似的例题,看了几遍,了解了循环的具体过程,通过几次尝试,和同学一起商量了,最后终于解决了问题。 3.将一个5×5矩阵中的最小元素放在中心,四个角分别放四个最大的元素(从左到右、从上到下的顺序为从大到小存放),要求:(1)输出变换后的矩阵;(2)任意输入一个数,如果该数在矩阵中,确定该数的位置。 算法分析: 找出元素中最大的元素,采用逐一比较的方法,在数组中可以用双循环,分别进行行和列的循环,依次找出最大的第二大第三大第四大和最小的元素,将它们放在指定的位置,按照数组输出的方式输出。 程序: #include using namespace std; int main() { int h; cout<<"任意输入一个整数:"< cin>>h; int x[5][5]={12,2,3,23,43,22,32,14,88,8,0,18,21,19,10,4,6,33,30,11,44,7, 20,24,1}; int i,j,max1,max2,max3,max4,m,n,t,min;//I,j分别为行列循环控制变 量,//max1,max2,max3,max4分 别为//第一二三四大的元素, m,n用//来存储元素的行和列, min为//最小元素max1=x[0][0]; //给最大元素赋初值 for(i=0;i<=4;i++) { for(j=0;j<=4;j++) { if(x[i][j]>max1) { max1=x[i][j]; //将比max1大的元素的值赋给max1,并保存下标 m=i;n=j; } } } x[m][n]=x[0][0]; //交换找到的最大元素和x[0][0]的值 x[0][0]=max1; max2=x[0][1]; //给第二大元素赋初值 for(i=0;i<=4;i++) { for(j=0;j<=4;j++) { if(i!=0||j!=0) //保证不能和第一大元素交换数值 { if(x[i][j]>max2) { max2=x[i][j]; //将比max2大的元素的值赋给max2,并保存下标 m=i;n=j; } } } } x[m][n]=x[0][4]; //交换找到的第二大元素和x[0][4]的值 x[0][4]=max2; max3=x[0][1]; for(i=0;i<=4;i++) { for(j=0;j<=4;j++) { if((i!=0||j!=0)&&(i!=0||j!=4))//保证不和第一二大元素交换数值 { if(x[i][j]>max3) { max3=x[i][j];//将找到的第三大元素的值赋给max3,并保存下标 m=i;n=j; } } } } x[m][n]=x[4][0];//交换找到的第三大元素和x[4][0]的值 x[4][0]=max3; max4=x[0][1]; for(i=0;i<=4;i++) { for(j=0;j<=4;j++) { if((i!=0||j!=4)&&(i!=0||j!=0)&&(i!=4||j!=0)) //保证不 //和前三大元素交换数值 { if(x[i][j]>max4) { max4=x[i][j]; //将找到的第四大元素的值赋给 //max4,并标记下标 m=i;n=j; } } } } x[m][n]=x[4][4]; //交换找到的第四大元素和x[4][4]的值 x[4][4]=max4; min=x[0][1]; //给min赋初值 for(i=0;i<5;i++) { for(j=0;j<5;j++) { if(x[i][j] { min=x[i][j]; //找到比它小的元素,将值赋给它,并标记下标 m=i; n=j; } } } x[m][n]=x[2][2]; x[2][2]=min; //将最小的元素放在中间 for(i=0;i<=4;i++) { for(j=0;j<=4;j++) { if(h==x[i][j]) //输入的元素是否在该矩阵中 {m=i; n=j; cout<<"该元素在第"< } } } cout<<"改变后的矩阵为:"< for(i=0;i<=4;i++) //输出矩阵 { for(j=0;j<=4;j++) { cout<<" "< } cout<<'\n'; } return 0; } 问题与解决方法: 在二维数组中找出最大的元素不怎么难,但是当要找出前四大元素时,发现总是排除不了最大元素的干扰,在循环比较过程中,无法把前面找出来的又不能交换数值的元素排除掉,因此输出结果中四个角的元素总是一样的,后来用了条件语句,在不找出来的大元素比较的前提下交换数值,这样一来结果就正确了。 4、有数列1/1+2/1+3/2+5/3+8/5+13/8+21/13+……。请观察其规律,求出该数列的前n项之和,结果要求保留四位小数。 算法分析: 上式的规律是后一个数的分子是前一个数的分子分母之和,分母是前一个数的 分子。要求前n项之和,需要用循环语句。 程序: #include #include using namespace std; float main() { int t,i,N; //t作为交换数值的中间变量,i为循环变量, N为前N项 float s,f,n=1.0,m=1.0; //s为前N项和,m为分母,n为分子 cout<<"请输入一个N:"< cin>>N; for(i=1;i<=N;i++) { if(N==1) s=1; //给第一项赋值1 else { f=m/n; t=m; m=m+n; //把前一项的分子分母之和赋给后一项的分母n=t; //把前一项的分母赋给后一项的分子 s=s+f;} //求和 } cout< cout<<"结果为"< return 0; } 问题与解决方法: 程序的前面都没什么问题,只是开始不知道怎么保留四位小数,后来在书上找了找,发现有相关的语句,模仿了一下,发现运行结果正确,这样问题就解决了。 5、采用二分法求解方程f(x)=x3-x-1=0在区间[1.0,1.5]内的一个实根。要求精确到小数点后的第2位。二分法的基本思想,就是将方程根所在的区间平分 为两个小区间,再判断根属于哪个小区间;把有根的小区间再平分为二,再判断根所在的更小的区间,对分;重复这一过程,最后求出所要的近似值。 算法分析: 端点的函数值一个大于零,一个小于零,先判断中点的函数值,如果大于零,将这个点作为端点,取它和第一个点的中点继续判断,直到某一点的函数值小于零,结果就是这个点和和前一个大于零的点的中点;如果小于零,将这个点作为端点,取它和第二个点的中点继续判断,直到某一点的函数值大于零,结果就是这个点和前一个小于零的点的中点。这个循环过程需要用到do…while 语句。 程序: #include #include using namespace std; float main() { float f,x,t,x1=1.0,x2=1.5; x=(x1+x2)/2; //取中点 f=x*x*x-x-1; //计算函数值 if(f>0) //判断函数值 { do { x2=x; //将中点值赋给x2 x=(x1+x2)/2; //再取中点 f=x*x*x-x-1; //计算函数值 t=x; }while(f>0); x=(t+x2)/2; //最后的值 } else { do { x1=x; x=(x1+x2)/2; f=x*x*x-x-1; t=x; }while(f<0); x=(t+x1)/2; } cout< cout< return 0; } 收获与体会: 通过这次课程设计的实训,增加了我学习软件技术的兴趣,从C++语言这门课程开始,已发现程序设计的乐趣,在学习C++语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。 在实际操作过程中犯的一些错误还会有意外的收获,感觉实践很有意思。在具体操作中对这学期所学的C++语言的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C++语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机实训的重要作用,特别是对数组和循环有了深刻的理解。 通过实际操作,学会 C++语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。深刻体会到“实践是检验真理的标准”的寓意。希望以后应多进行这样的实训,培养学生独立思考问题的能力,提高实际操作水平。 虽然都说“程序=数据结构+算法”,但我在学习运用数据结构编程之前,并没能深刻体会到这一点,直到这次课设实践。 我感受最深的一点是:以前用C++编程,只是注重如何编写函数能够完成所需要的功能,似乎没有明确的战术,只是凭单纯的意识和简单的语句来堆砌出一段程序。但现在编程感觉完全不同了。在编写一个程序之前,自己能够综合考虑各种因素。 在编写每一个函数之前,可以仔细斟酌比对,挑选出最适合当前状况的算法。这样,即使在完整的程序还没有写出来之前,自己心中已经有了明确的原图了。这样无形中就提高了自己编写的程序的质量。 我以前对数组一直很害怕,总是看不明白究竟这数组和循环结合时是怎么进行的。在这次实验中我终于克服了这一障碍,真的是功夫不负有心人啊!真是受益良多啊! 这次实验中我也出现过一些比较严重的错误。后来在同学的指点下我意识到自己的错误,不过收获也很不少。 总之,我会继续我的兴趣编写程序的,相信在越来越多的尝试之后,自己会不断进步不断提高的。 工程认识实习报告总结 篇一:工程认知实习报告总结 篇一:[工作总结]土木工程认知实习报告 认知实习报告 专业班级: 姓名:学号: 实习单位: 实习地点: 指导教师: 完成时间: XX年 08 月26 日 第一部分专业知识 1 实习概况 1.1实习目的: 通过认知实习巩固所学理论知识,加深对所学知识的理解,使理论知识与实际结合,为以后专业知识课程的学习奠定基础。 通过实习了解社会对现代大学生知识结构、综合素质、能力构成等方面的要求,有利于对将来职业生涯做出有针对性的规划,在后期的学习中,根据社会对人才的需求特点,有方向的完善自己、提高自己、发展自己。 1.2实习时间: XX年6月7日到XX年8月24日。 1.3实习地点: 义城建设建设公司墨荷园2#和兴昌建筑集团。 1.4 实习小结 在学校学习到的都是书本上的知识,只有理论上的认识与了解,对于在现实实际操作中是怎样的,而不得而知。这次实习,就给了一个这样的机会,可以亲自下工地操作,去观看工人是怎么做的以及做出来后是怎样的。这样将理论与实践结合起来,就对土木工程方面的知识更加深刻地理解了。 书本上的知识总规是不全面的,在工地现场时,就会发现有很多地方看不懂,这就需要虚心请教。还有一些地方,课本上的与现实中的不相符,有些地方就需要根据实际情况而定,不能一味的墨守成规。 在实习期间,发现一个问题,就是,工地施工过程中,有很多个地方,环节都没按规定来,管理不得当。而且还有很多地方很浪费,尤其是由于验收不合格之后的返工。我是在技术部实习的,就发现有很多个环节还没验收就继续施工了,就为了赶工,这种不按手续步骤来施工的现象很多。 在实习期间,学习到了很多有关方面的知识,对于以前就已学习到的知识有了更深一步的理解。这次的实习不论是从对知识的加强上,还是对社会的认识上,都对我意义重大。通过这次实习,真是让我获益良多。 C语言程序设计 实训报告 题目:红外避障机器人 院(系):信息工程系 专业:通信工程 学生姓名:韦嘉宝 学号: 24 指导教师:朱震周斌王旬全刘辉 2016 年10月8 日 目录 摘要 (1) 设计要求 (2) 设计步骤 (3) 代码编写 (4) 心得体会 (5) 参考文献 (6) 许多机器人使用雷达(RADAR)或者声纳(SONAR)来探测物体而不需要同物体接触。本文的方法是使用红外光来照射机器人前进的路线,然后确定何时有光线从被探测目标反射回来,通过检测反射回来的红外光就可以确定前方是否有物体。由于红外遥控技术的发展,现在红外线发射器和接收器已经很普及并且价格很便宜。 随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器、并行和串行接口、看门狗、前置放大器、A/D转换器、D/A转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。这种技术促使机器人技术也有了突飞猛进的发展,目前人们已经完全可以设计并制造出具有某些特殊功能的简易智能小车。 机器人使用红外线二极管LED 作为前灯,如图6-1 所示。红外线二极管发射红外光线,如果机器人前面有障碍物,红外线从物体反射回来,相当于机器人眼睛的红外检测(接收)器,检测到反射回的红外光线,并发出信号来表明检测到从物体反射回红外线。机器人的大脑——单片机A T89S52 基于这个传感器的输入控制伺服电机。红外线(IR)接收/检测器有内置的光滤波器,除了需要检测的980 nm 波长的红外线外,它几乎不允许其他光通过。红外检测器还有一个电子滤波器,它只允许大约38.5 kHz 的电信号通过。换句话说,检测器只寻找每秒闪烁38500 次的红外光。这就防止了普通光源像太阳光和室内光对IR 的干涉。太阳光是直流干涉(0Hz)源,而室内光依赖于所在区域的主电源,闪烁频率接近100 Hz 或120 Hz。由于120 Hz 在电子滤波器的38.5 kHz 通带频率之外,它完全被IR 探测器忽略。 本任务将搭建并测试红外线发射和检测器对。本讲需要用到的新部件如下: 元件清单 (1)红外检测器,2 个。 (2)IR LED(带套筒),2 个。 (3)470? 电阻,2 个。 (4)连接线,若干。 二、设计要求 (1)小车能够完成前进、后退、左转、右转等动作。 (2)机器人能够读出传感器电平变化,并作相应的动作变化。 (3)利用机器人所装配的两个探测器,探测和避开障碍物。 三、设计步骤 《C++程序设计》上机实验报告 上机内容:C++程序的运行环境和运行一个C++程序的方法 数据类型和表达式 专业班级:电气信息类1203班 学号:0909120320 姓名:李湖 日期:2013年3月16日 目录 1.实验目的 2.实验内容 3.程序源码 4.调试结果 5.实验心得 程序设计实验(一) 1、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个C程序 (3)通过运行简单的C++程序,初步了解C++源程序的结构和特点。 应学会在一种以上的编译环境下运行C++的程序,建议学习并 掌握Visual C++ 6.0和GCC(RHIDE和DJGPP)的使用方法。2、实验内容和步骤 (1)检查所用所用的计算机系统是否已安装了C++编译系统,并确定他所在的子目录。如果使用的是Windows操作系 统,可以按以下步骤进行: 如果想查找Visual C++ 6.0,可以单击Windows桌面上“开 始”按钮,在菜单中选择“查找”窗口,在“名称”栏中 输入文件名“Microsoft Visual C++ 6.0”,请注意搜索范围, 应当使“搜索”栏中的内容为“C:\”,表示从C盘根目录 开始寻找,即搜索整个C盘。单击“开始查找”按钮, 系统会自动在指定的范围内找寻所需的文件,如果找到, 就会显示出文件路径,如“C:\Windows 000\Start Mean\Program\Microsoft Visual Studio 6.0,表示在 C:\Windows 000\Start Mean\Program\Microsoft Visual Studio 6.0文件中有Visual C++ 6.0。也可以选择Windows 桌面上的“开始”—>“程序”命令,在其弹出的菜单中 选择“Microsoft Visual Studio 6.0”命令,再在其子菜单中 查有无“Microsoft Visual C++ 6.0”命令。如果在安装时采 用系统提供的默认方式安装,应该在这个位置找到 Microsoft Visual C++ 6.0。 如果想查找RHIDE和DJGPP,只须选择“开始”—>“查找(F)”—>“文件或文件夹(F)”命令,并指定RHIDE 和DJGPP即可。 (2)在Visual C++环境下编译和运行C++程序。 在第一次上机时,按以下步骤建立和运行C++程序: ①先进入Visual C++ 6.0环境。 ②按照第15章15.2节介绍的方法,在自己指定的子目录中 建立一个名为test.cpp的新文件(此事尚未向文件输入内 容)。 ③从键盘输入以下程序(第1章第8题): int main(); { int a,b; c=a+b; cout>>”a+b=”>>a+b; 东华理工大学C语言课程设计报告 学院:国际教育学院学院专业:电子信息工程 班级:1420606 学号:201420060638 姓名:钟天运 一、课程设计题目:游戏2048 二、课程设计要求: a)使用C语言编写2048这款游戏 b)能够正常运行,拥有游戏界面。 c)能正常进行游戏从开始到结束。 d)用户操作方便 三、设计思路: a)游戏介绍: i.2048是一款简单的数字类游戏,界面是一个 4*4的方形格子。每个格子里可以为空或者有 一个2^n的数值。 ii.用户可以输入4种指令,分别是:上下左右,游戏会根据用户的指定的方向,将格子中 的数值向对应方向进行移动,直至移动到最边 上的格子或者有其他数值占用,如果碰到等大 数值,将会进行合并。此外,成功移动后,会 在一个空格子随机生成一个2或者4 iii.游戏目标是合成2048这个数值或者更大的数值。 b)实现思路: i.可以使用二维数组来保存4*4格子中的数值 ii.指令,可以通过输入字符函数,读取用户 在键盘上的方向键,进行判断执行对应的代 码。 iii.游戏界面,可以使用简单的特殊制表符,来实现,并通过清屏函数来进行反复同位置打 印界面。 iv.需要判断游戏结束的函数,以及记录游戏分数和步骤的变量 v.当游戏结束时,能够询问用户是否重新开始。 vi.随机生成一个新数,可以调用随机函数,使用时间做种子。 c)实现难点: i.打印游戏界面,要实现灵活能根据棋盘数组里 面的数据灵活打印。 ii.执行操作时,数值的移动和合并。 四、流程图 五、C语言源代码 // 游戏2048.c #include "windows.h" #include "time.h" #include "stdio.h" #include "conio.h" #include "string.h" //宏定义常量方向键值 //const int LEFT = 75, UP = 72, RIGHT = 77, DOWN = 80; #define LEFT 75 #define UP 72 #define RIGHT 77 #define DOWN 80 const char error_str[] = "您上次输入的指令无法识别,请重新输入。"; struct board { int place[4][4]; long int stepn; long int num; //存储游戏分数 long int time; int dtk; //direction key 记录方向键,及操作方向 int over; int zeronum; }; //该函数为游戏运行函数,当只是玩游戏的时候。进入该函数,游戏控制函数。int main() { //place数组为棋盘,其中为零代表空,-1代表不能合并的牌,其他2的倍数值为本身含义,初始化为全0。 struct board board1, board_backup; int newgame(struct board *, int), show(struct board *), operate(struct board *); char str[100] = "首次运行游戏"; //用于记录系统返回给用户的信息,例如:上一步执行向左合并,按键有误等 newgame(&board1, 0); //调用函数为新局初始化,第二个 第一章实习目的 1.1认识实习是工程管理专业基础必修的实践性教学环节.通过实地参观,使我们通过实践对土木工程的施工现场和施工体系进行考查,了解土木工程建筑、结构、施工的基本知识,建立起初步的工程意识,激发我们对土木工程专业后续课程的求知欲,为学习专业基础课和专业课奠定感性认识的基础。使我们进一步了解土木工程专业,培养学生热爱专业,增加学习和从事本专业的自信心 第二章对框架结构的认识 2.1 对实习地点的概述 我们首先参观了位于万柳庄大街附近的一栋尚未完工的框架结构大楼,为钢筋混凝土结构。让我们对框架结构建筑有了更直观更深刻的了解。 2.2 对框架结构的认识 定义:框架结构是指由梁和柱以刚接或者铰接相连接而成构成承重体系的结构,即由梁和柱组成框架共同抵抗适用过程中出现的水平荷载和竖向荷载。采用结构的房屋墙体不承重,仅起到围护和分隔作用,一般用预制的加气混凝土、膨胀珍珠岩、空心砖或多孔砖、浮石、蛭石、陶粒等轻质板材等材料砌筑或装配而成. 分类:房屋的框架按跨数分有单跨、多跨;按层数分有单层、多层;按立面构成分有对称、不对称;按所用材料分有钢框架、混凝土框架、胶合木结构框架或钢与钢筋混凝土混合框架等。其中最常用的是混凝土框架(现浇整体式、装配式、装配整体式,也可根据需要施加预应力,主要是对梁或板)、钢框架。装配式、装配整体式混凝土框架和钢框架适合大规模工业化施工,效率较高,工程质量较好。 特点:框架建筑的主要优点:空间分隔灵活,自重轻,有利于抗震,节省材料;具有可以较灵活地配合建筑平面布置的优点,利于安排需要较大空间的建筑结构;框架结构的梁、柱构件易于标准化、定型化,便于采用装配整体式结构,以缩短施工工期;采用现浇混凝土框架时,结构的整体性、刚度较好,设计处理好也能达到较好的抗震效果,而且可以把梁或柱浇注成各种需要的截面形状。 缺点:框架节点应力集中显著;框架结构的侧向刚度小,属柔性结构框架,在强烈地震作用下,结构所产生水平位移较大,易造成严重的非结构性破性;钢材和水泥用量较大,构件的总数量多,吊装次数多,接头工作量大,工序多,浪费人力,施工受季节、环境影响较大;不适宜建造高层建筑,框架是由梁柱构成的杆系结构,其承载力和刚度都较低,特别是水平方向的(即使可以考虑现浇楼面与梁共同工作以提高楼面水平刚度,但也是有限的),它的受力特点类似于竖向悬臂剪切梁,其总体水平位移上大下小,但相对与各楼层而言,层间变形上小下大,设计时如何提高框架的抗侧刚度及控制好结构侧移为重要因素,对于钢筋混凝土框架,当高度大、层数相当多时,结构底部各层不但柱的轴力很大,而且梁和柱由水平荷载所产生的弯矩和整体的侧移亦显著增加,从而导致截面尺寸和配筋增大,对建筑平面布置和空间处理,就可能带来困难,影响建筑空间的合理使用,在材料消耗和造价方面,也趋于不合理,故一般适用于建造不超过15层的房屋。 应用范围:框架结构可设计成静定的三铰框架或超静定的双铰框架与无铰框架。混凝土框架结构广泛用于住宅、学校、办公楼,也有根据需要对混凝土梁或板施加预应力,以适用于较大的跨度;框架钢结构常用于大跨度的公共建筑、多层工业厂房和一些特殊用途的建筑物中,如剧场、商场、体育馆、火车站、展览厅、造船厂、飞机库、停车场、轻工业车间等。 C语言实习报告(用链表实现学生学籍管理) 绪言 C语言使国内外广泛使用的一种计算机语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好。既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合编写系统软件。 在经过一整个学期的C语言理论学习,我们已经能够掌握其基本语法,但是缺乏一定的实际运用的能力。为了让我们更好的理解和运用其解决实际问题,并且对结构化程序有更进一步的认识,学校组织了这一次C语言实习。 实习中,我们将按要求完成一个较为复杂的程序编写——学生学籍管理程序。 实习基本内容和要求: 1、总体功能要求 (1)链表的建立:每个节点包括:学号、姓名、性别、语文、数学、英语、总分; (2)节点的插入:按学号的顺序插入; (3)删除链表中的节点:按学号或者姓名; (4)链表的输出:按学号排序、按总分排序。 2、性能的要求: (1)各个功能分别用函数实现; (2)节点信息让用户通过键盘输入 (3)总分通过计算获得; (4)有简单的操作界面; 尽可能考虑程序的容错性、可操作性。 教材和主要参考书目: (1)教材:《C程序设计》,谭浩强编著,清华大学出版社(2)主要参考书目: ①《C程序设计教程》,谭浩强编著,清华大学出版社; ②《C语言程序设计——习题与实验指导》,谭浩强编著,清华大学出版社。实习过程: 我们将有5天的时间完成一个程序和一份实习报告。 1、我们要根据题目的要求进行需求分析和资料整理;(1天) 2、我们利用资料、教材和寻求他人帮助完成详细设计;(注: 关键部分解释说明)(3天) 3、完成一份对自己程序详细描述与解释的报告。(1天) 机械制造工艺学实验报告 班级机械1301 姓名黄佳清 学号 07 中南大学机电学院 《机械制造工艺学》课程实验报告 实验名称:加工误差的统计分析 姓名:黄佳清班级:机械1301 学号: 07 实验日期: 2015 年 10 月 18 日指导教师:成绩: 1. 实验目的 (1)掌握加工误差统计分析方法的基本原理和应用。 (2)掌握样本数据的采集与处理方法,要求:能正确地采集样本数据,并能通过对样本 数据的处理,正确绘制出加工误差的实验分布曲线和图。 (3)能对实验分布曲线和图进行正确地分析,对加工误差的性质、工序能力及工艺 稳定性做出准确的鉴别。 (4)培养对加工误差进行综合分析的能力。 2. 实验内容与实验步骤 1.按加工顺序测量工件的加工尺寸,记录测量结果。 2.绘制直方图和分布曲线 1)找出这批工件加工尺寸数据的最大值x max和最小值x min,按下式计算出极差R。 R=x max一x min 2)确定分组数K(K一般根据样本容量来选择,建议可选在8~11之间)。 3)按下式计算组距 d。 4)确定组界(测量单位:微米)。 5)做频数分布表。 6)计算x和 。 7)画直方图 以样本数据值为横坐标,标出各组组界;以各组频率密度为纵坐标,画出直方图。 8)画分布曲线 若工艺过程稳定,则误差分布曲线接近正态分布曲线;若工艺过程不稳定,则应根据实际情况确定其分布曲线。画出分布曲线,注意使分布曲线与直方图协调一致。 9)画公差带 在横轴下方画出公差带,以便与分布曲线相比较。 3.绘制图 1)确定样组容量,对样本进行分组 样组容量m 通常取4或5件。按样组容量和加工时间顺序,将样本划分成若干个样组。 2)计算各样组的平均值和极差 对于第i 个样组,其平均值和极差计算公式为: ∑==m j ij i x m x 1 1 式中 ——第i 个样组的平均值; ——第i 个样组的标准差; ——第i 个样组第j 个零件的测量值; ——第i 个样组数据的最大值; ——第i 个样组数据的最小值 3)计算图控制限(计算公式见实验原理) 4)绘制 图 以样组序号为横坐标,分别以各样组的平均值和极差R 为纵坐标,画出图,并在图上标出中心线和上、下控制限。 4. 按下式计算工序能力系数Cp 5. 判别工艺过程稳定性 可按下表所列标准进行判别。注意,同时满足表中左列3个条件,工艺过程稳定;表中右列条件之一不满足,即表示工艺过程不稳定。 实验报告 一、问题陈述及其需求分析 (一)问题陈述 学生信息管理系统是对学生信息的基本管理,其中包括以下及模块: (1)增加一个学生的信息(需输入要增加学生的所有信息); (2)统计本班学生总人数及男女生人数。 (3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。 (4)按学号对所有学生信息排序,并输出结果; (5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。( 二) 功能需求分析 学生信息管理系统设计 学生信息包括:学号,姓名,性别,出生年月,电话 使之提供以下功能: 1、系统以菜单方式工作 2、建立链表并显示 3、插入新的学生信息 4、删除某学号的学生信息 5、查找某学号的学生信息 6、对学生信息排序 7、统计学生人数 8、输出学生信息 二总体设计 (一)模块 依据程序的数据结构,描述该程序的层次结构,如下图: 1、建立链表并显示 void createlist(struct stucode **r); 2、插入新的学生信息 void insert(struct stucode **r); 3、删除某学号的学生信息 void del(struct stucode **r); 4、查找某学号的学生信息 void search1(struct stucode *r); 5、对学生信息排序 void sort(struct stucode **r); 6、统计学生人数 void search2(struct stucode *r); 7、输出学生信息 void out(struct stucode *r); 1 建立链表并显示 2 添加学生信息 3 删除学生信息 息 4 按学号查找学生信 5 对学生信息排序 6统计学生人数 7输出学员信息 8 学生信息写入文件 0退出 main() 菜单函数 2020工程认知实习报告4篇 导读:本文是关于2020工程认知实习报告4篇,希望能帮助到您! 一、实习地点及日程安排: 基本安排xx年7月20日上午,实习动员,建筑讲座; xx年7月20日下午,到在建的云霞小区参观,到结构厅参观;21日全天,参观三峡大坝, xx年7月22日上午,道桥和岩土讲座; xx年7月22日下午,参观宜昌公路大桥和夷陵长江大桥; xx年7月23日全天,自行参观学校的建筑物,并交见习报告。 二、实习目的: 认识实习是整个实习教学计划中的一个有机组成部分,是土木工程专业的一个重要的实践性环节。通过组织参观和听取一些专题技术报告,收集一些与实习课题有关的资料和素材,为顺利完成实习打下坚实基础。通过实习应达到以下目的:了解一般道路与桥梁工程的整个设计过程; 2、了解建筑物的总平面布置、建筑物分类及功能作用、结构类型及特点、结构构件的布置及载荷传递路线、主要节点的细部结构和处理方法等; 3、了解建筑物的施工方法; 4、了解建筑、结构、施工之间的相互关系; 5、了解建筑结构领域的最新动态和发展方向。 6.培养专业兴趣,明确学习目的 三、实习过程及内容: xx年7月20日星期日雪 为期四天的认知实习从今天下午正式开始了,上午徐老师和黄老师为我们作了一个建设方面的讲座,他们以不同角度向我们讲述了建筑工程的概况,并且就当前国内形势以及三峡大学的实际,展望了我们专业的前景,给我感触最深的是他们的严谨的冶学态度,使我认识到作为一个土木工程工作者,必须有严谨的作风和负责的态度,“干土木这行的已经有一只脚踏进了监狱” 下午,我们开始了认知实习的第一项:参观建筑工地和结构厅。 下午2:30我们准时到达实习现场:三峡大学云霞小区1#楼,在楼下的公告栏中我们了解到该楼的建筑面积是47000平方米,工程造价是4036。48万元,再仰望旁边的在建的13层的公寓楼,不禁有一种崇敬之感! 然后,在赵工的带领下,我首先参观了这楼的地下室,经赵工介绍,我们才知道,这不是一个普通的地下室。平时这是一个很大的地下停车场,而在战时则将作为这个社区的人防地下室。在地下室,赵工向我们详细介绍了这栋楼的结构。之后我们上了二三层进行,参观了该楼的内部布局。我们了解到这楼应用了很多新工艺新材料,比如该楼的自重墙用的是粉煤灰砖,其每立方米的质量不超过800kg,也就是说把这种砖放入水中,会浮在水面上。这无疑减轻了梁柱的承重。而使用的水泥是亲水水泥,可以不用粉刷就可直接上涂料,而在外墙的表面使了保温材料和高强防裂纤维,使房子既节能又美观。 参观完了建筑工地之后,我们又参观了三峡大学的结构厅,看到了很多我们专业的实验设备和大致的实验流程,了解到实验在土木工程中的重要性。 通过今天的实习,我对我们专业又有了一些新的认识。 xx年7月21 星期二小雪 设计报告 一,实验目的: 通过上机实习,熟练掌握循环语句、选择语句、指针以及结构体的运用技巧。在实习中通过 实际操作,编写程序,发现问题,最后解决问题,提升对c语言实用性的理解,在实践中巩固各知 识点。 C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点,上 机实习可以帮助我们更好地理解这种结构式的 中级语言以及其各式各样的数据类型和高效率 的运算程序,为我们进一步学习C++打下坚实基 础。 同时,在实习过程中,通过互相发现问题,共同解决问题,不仅锻炼了我们的合作能力,而 且也让我们发现了一些自己的个人误区以及其 他人容易犯的错误,从而在今后的学习中更加谨 慎,达到事半功倍的效果;通过询问老师,也让 我们养成了不耻下问的好习惯,这将很有利于以 后的学习。 闲乐-一个人闲。不如大家一块儿乐https://www.wendangku.net/doc/258030922.html, 二,总体设计: 1,学生成绩排名 1,流程图: <通过冒泡法对数组进行排序> <测试时由于循环语句循环次数的错误导致部分数据没有排序,修改FOR语言中的条件即可调试成功>工程认识实习报告总结doc
C语言实训报告
中南大学C++实验报告
C语言课程设计报告-游戏2048
工程认识实习报告
C语言实习报告
中南大学机械制造工艺学实验报告
c语言课程设计报告学生成绩信息管理系统源代码
2020工程认知实习报告4篇
C语言实习报告