实习报告(计算机).doc_第1页
实习报告(计算机).doc_第2页
实习报告(计算机).doc_第3页
实习报告(计算机).doc_第4页
实习报告(计算机).doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

暑期计算机实习任务书班级 姓名 学号 (一)实习时间:2007年7月14日-2007年7月18日。(二)实习地点:#7204 。(三)实习目的:计算机实习是本科计算机基础教学的一个重要环节。它对于巩固学生的计算机基础知识,增强学生的计算机应用水平,改善学生的知识结构,具有重要意义。本课程的教学目的是:通过系统的上机实习,使学生的计算机基础知识与基本操作技能得到进一步的巩固,提高学生的编程能力和用机水平,培养学生用计算机分析与解决问题的意识,为后续课程打下基础。(四)实习内容:本实习要求完成如下三项任务:巩固所学的计算机基本知识和基本操作技能,包括:熟练掌握正确的键盘指法和英文盲打技术;能熟练使用Windows操作系统;熟练掌握Word、Excel、PowerPoint等办公自动化软件;能使用网络获取、发送信息;用PowerPoint制作一组幻灯片(幻灯片所表述的主题自定),或用Excel绘制出图1所示的sin(x)、cos(x)函数曲线。计算机语言及编程用本学期已学过的VC+语言编程。编程题目及要求由指导教师指定(可参考附录中提供的题目)。提交一份实习报告(要求打印)实习报告不得少于1000字:主要总结实习心得和实习成果(全部程序及计算结果或图形以及PowerPoint幻灯片)。(五)实习成果: 完成了实习任务附录中的1.3.5.8.12.14题和用Excel绘制出了sin(x).cos(x)函数曲线1程序 副5:题目:用Excel绘制出图1所示的sin(x)、cos(x)函数曲线。1、 操作原理:通过Excel的插入图表功能,通过输入数据而形成函数曲线。2、 操作流程:(1) 在Excel中输入各点的横坐标,如图(2) 利用公式功能算出各点的纵坐标,如图(3) 选中编辑好的区域,点插入-图标,如图(4) 选择折线图,如图(5) 点下一步,然后在网格线中作如图操作,下一步(6) 在图中双击右端数字,在刻度中作如图修改(7) 完成3操作结果:2程序1:题目:一维数组A中存放着一组杂乱无章的数据,编写一个程序将数组A中的数据按从小到大的顺序排好,然后用折半查找法找出数据中x在已排好大小的数据序列中的位置。1、算法原理:把非升序的数放在数组a中,待查找的数在变量x中,并设三个变量top=N,bot=0,mid;其中mid是用来查找范围的中间位置,即mid=(top+bot)/2;然后:(1)判断x是否等于amid,若等于即为所求。(2)若x大于amid,则x必在amid+1至atop之间,此时令bot=amid+1;mid=(top+bot)/2。(3)若x小于amid即x在abot至amid-1之间,此时令top=mid-1,mid=(top+bot)/2。(4)重复上述步骤至找到其位置。2、程序流程图:3、变量说明:定义了整型变量:const int N=5; int i,j,x,p=0,q=N-1,r=0,t=0数组: int aN4、使用方法:输入数据使用。5、源程序:#includeusing namespace std;void main() const int N=5; int i,j,x,p=0,q=N-1,r=0,t=0;int aN;cout请输入一组数:; for(i=0;iai;for(i=0;iN-1;i+) for(j=i+1;jaj)t=ai;ai=aj;aj=t;cout排序后的数组为:;for(i=0;iN;i+)coutai ;coutendl;coutx;while(q=r) p=(q+r)/2; if(ap=x) break; else if(apx) q=p-1; else r=p+1;if(qr) cout错误,没有这个数!endl;else coutx是第p+1个数endl;6、程序运行结果:3程序3:题目:编程找出100到300之间的全部素数,将这些素数存放于文件s.dat中。1、算法原理:素数(质数):就是一个大于等于2的整数,并且只能被1和本身整除,而不能被其他整数整除的数。判别某数m是否是素数的经典算法是:对于m,从I=2,3,4,m-1依次判别能否被I整除,只要有一个能整除,m就不是素数,否则m是素数。2、程序流程图:3、变量说明:定义了整型变量:int n,k,f=14、使用方法:直接使用5、源程序:#include#includeusing namespace std;void main()int n,k,f=1;ofstream outfile;outfile.open(c:s.dat);if(outfile.is_open()for(n=100;n=300;n+)for(k=2;kn;k+)if(n%k=0)f=0;break;if(f=1)coutnendl;outfilen12j=1j=j+1printf(“ ”) 直到jfirj=1j=j+1printf(“%4d ”,j)fir=fir+1Yfir=8Nfir=1直到jmonni-1Nfir1Y输出“”输入年号 t=year-1t=(1+t+t/4-t/400)%7Yt=0Nt=7调用void output(t, Is_Leap(int year)3、变量说明:定义了变量:int year,calender(int x),int i;void print(int x)char *a,*b,*c; int fm,sm,tm,modf,mods,modt,i,dof,dos,dot,j4、使用方法:输入数据使用5、源程序:#include int year;void main()void calender(int x); coutyear; if (year1999)calender(year); elsecout请确认输入的年份是否是2000年以后!;void calender(int year) int i;void print(int x); for(i=1;i=35;i+) cout ;coutyear 年日历n; print(1);print(2);print(3); print(4);void print(int x)char *a,*b,*c; int fm,sm,tm,modf,mods,modt,i,dof,dos,dot,j; switch(x) case 1: a=Jan,b=Feb,c=Mar; fm=31,tm=31; if(year%4=0&year%100!=0|year%400=0)m=29; else sm=28; modf=(year-2000)*365+(year-2001)/4-(year-2001)/100+(year-2001)/400)%7; mods=(modf+31)%7; if(year%4=0&year%100!=0|year%400=0) modt=(mods+29)%7; elsemodt=(mods+28)%7; break; case 2: a=Apr,b=May,c=Jun; fm=30,sm=31,tm=30; if(year%4=0&year%100!=0|year%400=0) modf=(year-2000)*365+(year-2001)/4-(year-2001)/100+(year-2001)/400+91)%7; else modf=(year-2000)*365+(year-2001)/4-(year-2001)/100+(year-2001)/400+90)%7; mods=(modf+30)%7,modt=(mods+31)%7;break; case 3: a=Jul,b=Aug,c=Sep; fm=31,sm=31,tm=30; if(year%4=0&year%100!=0|year%400=0) modf=(year-2000)*365+(year-2001)/4-(year-2001)/100+(year-2001)/400+182)%7; else modf=(year-2000)*365+(year-2001)/4-(year-2001)/100+(year-2001)/400+181)%7; mods=(modf+31)%7,modt=(mods+31)%7;break; case 4: a=Oct,b=Nov,c=Dec; fm=31,sm=30,tm=31; if(year%4=0&year%100!=0|year%400=0) modf=(year-2000)*365+(year-2001)/4-(year-2001)/100+(year-2001)/400+274)%7; else modf=(year-2000)*365+(year-2001)/4-(year-2001)/100+(year-2001)/400+273)%7; mods=(modf+31)%7,modt=(mods+30)%7;break; default: cout数据溢出; break for(i=1;i=12;i+) cout ;couta; for(i=1;i=22;i+) cout ; coutb; for(i=1;i=22;i+) cout ; coutcn; for(i=1;i=3;i+) coutSu Mo Tu We Th Fr Sa ; coutn; for(i=1;i=modf;i+) cout ; for(dof=1;dof=7-modf;dof+) coutdof ; cout ; for(i=1;i=mods;i+) cout ; for(dos=1;dos=7-mods;dos+) coutdos ; cout ; for(i=1;i=modt;i+) cout ; for(dot=1;dot=7-modt;dot+) coutdot ; coutn;for(j=1;j=5;j+) for(i=1;ifm) cout ; elsecoutdof; if(dof10)cout ; elsecout ;dof+; cout ; for(i=1;ism)cout ; else coutdos; if(dos10)cout ; elsecout ;dos+; cout ; for(i=1;itm)cout ;else coutdot;if(dot10)cout ; elsecout ;dot+; coutn;6、程序运行结果:5程序8: 题目:11 11 2 11 3 3 11 4 6 4 1 1 9 36 84 126 124 84 36 91按以下形式打印出杨辉三角形中的各值1、算法原理:观察杨辉三角的规律,发现除了三角形两腰都为1外,其余数字都为其两肩上的数字之和。则定义数组a,aj=aj+aj-1。利用for循环:for(i=0;i10;i+) ai=1; for(j=1;j=20;j+) cout0;j-) aj=aj+aj-1; for (int k=0;k10-i;k+) coutsetw(2) ; for(j=0;j=i;j+) coutsetw(3)aj ; 2、程序流程图:3、变量说明:定义了:const int max=10, int amaxmax(为数组),int n,i,j4、使用方法:直接使用5、源程序:#include #include using namespace std;void main() const int max=10; int amaxmax; int n,i,j; cout请输入要打印的扬辉三角的排数(10)n; for(i=0;in;i+) ai0=1; aii=1; for(i=2;in;i+) for(j=1;ji;j+) aij=ai-1j-1+ai-1j; for(i=0;in;i+) for(j=1;j10-i;j+) coutsetw(3) ; for(j=0;j=i;j+) coutsetw(7)aij; coutendl;6、程序运行结果:6程序12: 题目:用高斯消元法解n元一次线性方程组。 1、算法原理:首先是一个求解上三角阵的回代算法, 接下来要做的,就是准备好计算行列式所要用的三种基本操作:交换两行,a行数据自乘一个数据,a行乘以一个数据后加至B行. 种通过消元、再回代的求解方法称为高斯(Gauss)消元法.2、程序流程图:3、变量说明:定义了:int n, i, j, k;double client, temp = 0.0,double *a4、使用方法:输入数据使用5、源程序:#include #include void main( void )int n, i, j, k;double client, temp = 0.0;double *a;printf(输入方式如下(系数以0表示无),最后一排是B的值:n);printf(4 5 2 3 2 5n);printf(4 6 2 1 0 2n);printf(4 5 2 1 3 2n);printf(1 2 1 2 3 2n);printf(0 2 5 1 1 3n);printf(请输入未知量的个数:);scanf(%d, &n);printf(n请输入系数矩阵和右端向量n);a = new double *n; for (i =0 ; i n; i+)ai= new doublen + 1;for (i = 0; i n; i+) for (j = 0; j = n; j+) scanf(%lf, &aij);for(k = 0; k n - 1; k+)for(i = k + 1; i n; i+)client = aik/akk; for(j = k + 1; j = 0; i-)temp=0.0;for (j = i + 1; j n; j+) temp += aij * ajn;ain = (ain - temp) / aii;for(i = 0; i n; i+)printf(X%d = %lfn, i + 1, ain);6、程序运行结果:7程序14:题目:编写求矩阵相乘的程序,并用该程序求出下列矩阵的乘积:1 0 3 10 1 2 10 0 2 30 0 0 31 2 1 00 1 0 10 0 2 10 0 0 3 1 3 1 2 1 4 0 0 1 2 1 1 3 4 1 3 1 4 0 21、算法原理:(1)数据分析:矩阵是由若干行与列组成的,因此对一个矩阵可用一个二维数组来表示。(2)算法分析:矩阵乘积的公式为:设a=(aij)n*m,b=(bij)m*l,则c=a*b其中c的元素为:cij=ai1b1j+ai2b2j+aimbmj(i=1.2.l)2、程序流程图:3、变量说明:定义了:const int xi=4,xj=4,yi=4,yj=4; int xxixj,yyiyj; int i,j; int k,sum; 4、使用方法:输入数据使用5、源程序:(1)#include void main() const int xi=4,xj=4,yi=4,yj=4; int xxixj,yyiyj; int i,j; cout 输入X矩阵数据: xi x xj n; for (i=0;ixi;i+) for (j=0;jxj;j+) cout 第 i+1 行,第 j+1 xij; cout 输入Y矩阵数据: yi x yj n; for (i=0;iyi;i+) for (j=0;jyj;j+) cout 第 i+1 行,第 j+1 yij; int k,sum; cout 计算结果n; for (i=0;ixi;i+) for (j=0;jyj;j+) sum=0; for (k=0;kxj;k+) sum+=xik*ykj; cout t sum; cout n; (2)#include void main() const int m=2,n=4,p=4,q=3; int xmn,ypq; int i,j; cout 分别输入X矩阵的数据: m x n endl; for (i=0;im;i+) for (j=0;jn;j+) cout 第 i+1 行,第 j+1 xij;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论