




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实习汇报实习性质:C程序项目实训学生姓名:周亚男专业班级:信息安全技术151班指导教师:万青、李新、谢先伟实习时间:12月21日-12月25日实习地点:1201、1203、1211、1301教室重庆工程职业技术学院学生实习考核表学生姓名专业班级指导教师周亚男信息安全技术151班万青、李新、谢先伟实习时间12月21日-12月25日实习地点1201、1203、1211、1301教室实习名称C语言项目实训自我总结C语言是一种有序的学习,学了最基本的替代,然后扩展到循环、嵌套,条理很清晰,不是一种零碎的知识,实际上所有的课程都如此,不过实训我也懂得了自己的局限性,存在诸多问题。自己亲自动手编写程序让我增长了对C语言程序开发环境的理解。虽然后来的编程工作也许不用C语言,不过拥有扎实的V语言基础是对工作很有用的。指导教师意见实习单位意见并盖章(院内实习由系签订)考核等级目录TOC\o"1-4"\u1实习目的 12实习概况 12.1实习规定 12.2实习时间 12.3开发环境 23实习内容 23.1构造练习 23.1.1次序构造 23.1.2分支构造 33.1.3循环构造程序设计 53.1.4数组编程 73.1.5函数编程 93.2成绩管理系统 124实习总结 174.1学习所得 174.2经验教训 184.3实习体会 181实习目的通过实习,掌握C语言的基本语法,可以用C语言进行面向过程设计,并开发一种小型应用程序,积累C语言程序分析、设计、编码、调试的经验,将理论与实践相结合。将理论高度上升到实践的结合,更深入加深对理论知识的理解理解。锻炼自己的动手能力,将学习的理论知识运用于实践当中,反过来检查书本上理论的对的性。2实习概况2.1实习规定首先,规定学生通过毕业前有针对性的实习为胜任此后的工作打下基础;另首先,规定学生通过实习理解社会,理解企业,培养学生积极适应社会上的多种岗位需要的素质和能力。2.2实习时间12月21日至12月25日2.3开发环境开发C语言3实习内容在这周的实习生活中,我们将学习到前期所学到的C语言基础编程,基本数据类型并掌握纯熟C语言的基础编程,学会使用逻辑运算符和逻辑体现式,掌握简朴的查错措施并改错。以及C语言的几种基本数据类型和基本输入输出函数的使用措施。我们分别纯熟了几种构造的编程以及数组、函数的练习,成绩管理系统的设计。3.1构造练习我们分别学习了次序构造练习、分支构造练习、循环构造练习、数组、函数练习等,是相对于比较基础的构造练习。3.1.1次序构造次序构造是指程序流程自上而下,没有任何分支次序执行的程序构造,他是最简朴的一种构造。下面是简朴的次序构造程序:(1)圆的面积计算#include"stdio.h"#definePI3.14main(){floatr,s=0;printf("请输入圆的半径:\n");scanf("%f",&r);s=PI*r*r;printf("圆的面积为%f",s);system("pause");}运行成果如图:图3SEQ图\*ARABIC\s11次序构造(2)摄氏温度和华氏温度之间的换算公式:#include"math.h"main(){floatc,f=100;c=5/9.0*(f-32);printf("\nc=%.2f",c);system("pause");}运行成果如图:图3SEQ图\*ARABIC\s12次序构造(3)根据海伦公式求三角形面积:#include"math.h"main(){floata,b,c,p,s;printf("请输入三角形三边:");scanf("%f,%f,%f",&a,&b,&c);p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf("\ns=%.2f",s);system("pause");}运行成果如图:图3SEQ图\*ARABIC\s13次序构造经验总结:掌握了最基本的次序构造编程,并且纯熟的运用。3.1.2分支构造(1)选择构造又称分支构造。C语言中的分支构造以if-else语句为代表,其语法格式如下:if(体现式){语句块1(可包括多条语句)}else{语句块2(可包括多条语句)}判断整数的奇偶性:#include"stdio.h"intmain(){inta;printf("请输入一种整数:\n");scanf("%d",&a);if(a%2==0)printf("%d是偶数.",a);elseprintf("%d是奇数.\n",a);system("pause");}运行成果如图:图3SEQ图\*ARABIC\s14分支构造(2)switch语句是另一种实现多分支构造的语句,合用于分支执行条件为常量的状况,语法格式如下:switch(体现式){case常量体现式1:语句块1:[break;]case常量体现式2:语句块2:[break;]…case常量体现式n:语句块n:[break;]default:语句块n+1;}用switch语句实现多分支构造。switch语句执行时,首先计算括号中体现式的值,将计算成果与case子句中的常量体现式值相比较,当与某个常量体现式的值相等时,即执行case子句冒号背面的语句块。经验总结:去掉程序中的所有break语句,对程序进行测试。根据switch-case语句的执行流程,当某个case子句的常量体现式值和switch语句中的体现式值匹配时,程序进入该子句执行,不过执行后整个switch语句并未结束,而是继续执行下一种case子句的语句块。(3)判断一种三位数与否回文数:#include"stdio.h"main(){intn,a,c;scanf("%d",&n);a=n/100;c=n%10;if(a==c)printf("%d是回文数",n);elseprintf("%d不是回文数",n);system("pause");}运行成果如图:图3SEQ图\*ARABIC\s15分支构造3.1.3循环构造程序设计程序设计中,常常碰到当条件满足时,需要反复执行某些操作的情形,这里提到的条件称为循环条件,反复执行的操作称为循环体。循环构造可以当作是一种条件判断语句和一种向后跳转语句的组合。(1)求1+2+3+…+89+90的和:#include<stdio.h>main(){inti,s=0;for(i=1;i<=90;i++)s=s+i;printf("%d",s);system("pause");}运行成果如图:图3SEQ图\*ARABIC\s16循环构造求1+3+5+…+109+111的和:#include<stdio.h>main(){inti,s=0;for(i=1;i<=111;i+=2)s=s+i;printf("%d",s);system("pause");}运行成果如图:图3SEQ图\*ARABIC\s17循环构造(2)死循环假如体现式的计算成果一直为真(非0),则循环无法结束,这种状况称为死循环。为了防止产生死循环,需要让程序在合适的时候自动结束循环,即在某次循环后,让菱形框里面的体现式值变为假。(3)打印二维构造的图案,需要用两层循环来控制,外层循环变量控制行数,内层循环变量控制字符数。一种循环构造的循环体内又包括另一种完整的循环构造,称为循环的嵌套。嵌套层数到达三层或以上,称为多层循环。循环嵌套程序执行时,外层循环的循环体执行一次,内层循环执行一轮。每打印一种“*”,就会打印三个“#”。打印由“*”构成的金字塔图案。错误编程:#include"stdio.h"intmain(){inti,j,N=5;for(i=1;i<=N;i++){for(j=1;j<=N-i;j++)printf("");for(j=1;j<=2*i-1;j++)printf("*");printf("\n");}system("pause");}运行成果如图:图3SEQ图\*ARABIC\s18循环构造对的编程:#include"stdio.h"intmain(){inti,j,N=5;for(i=1;i<=N;i++){for(j=1;j<=N-i;j++)printf("");for(j=1;j<=2*i-1;j++)printf("*");printf("\n");}system("pause");}运行成果如图:图3SEQ图\*ARABIC\s19循环构造由于printf那一步没有敲空格,导致程序运行错误。经验总结:由浅入深地学习C语言循环构造程序的编程措施和技巧。循环构造程序的流程比次序构造和选择构造更复杂。在学习过程中,不仅要根据流程图来直观地理解执行过程,还要辅助以断点设置、单步跟踪调试、变量跟踪观测的措施,来深入理解执行过程。3.1.4数组编程在程序设计中,为了处理以便,把具有相似类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。数组属于构造数据类型。一种数组可以分解为多种数组元素,这些数组元素可以是基本数据类型或构造类型。因此按数组元素的类型不一样,数组又可以分为数值数组、字符数组、指针数组、构造数组等多种类别。数组的初始化:定义数组的同步给数组赋初值。例如:intorder[10]={0,1,2,3,4,5,6,7,8,9};可对部分元素赋初值,此时,未赋值元素将自动初始化为0.例如:intorder[10]={0,1,2,3,4};若对所有元素赋初值,则可省略数组下标。例如:intorder[]={1,2,3,4,5};相称于intorder[5]={1,2,3,4,5};(1)杨辉三角前10行:#include"stdio.h"main(){inti,j;inta[10][10];printf("\n");for(i=0;i<10;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<10;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<10;i++){for(j=0;j<=i;j++)printf("%5d",a[i][j]);printf("\n");}system("pause");}运行成果如图:图3-10数组经验总结:杨辉三角是一种较为经典的数组程序,因此我首选了这个程序进行编写,在编写中对i和j的自增自减有些模糊,反复修改了几次终于编译出来了,还可以通过自增自减的修改得出不一样形状的成果。(2)输入10个成绩,并用冒泡排序(从小到大的排序):#include<stdio.h>main(){intscore[10];inti,j,t,temp;printf("请输入十个数:");for(i=0;i<10;i++)scanf("%d",&score[i]);for(j=1;j<=9;j++){t=10-j;for(i=0;i<t;i++)if(score[i]>score[i+1]){temp=score[i];score[i]=score[i+1];score[i+1]=temp;}for(i=0;i<=9;i++)printf("%d\t",score[i]);}运行成果如图:图3-11数组(3)从键盘输入10个整数,并倒序输出这10个数:#include<stdio.h>#defineN10voidmain(){inta[N],i;for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=9;i>=0;i--)printf("%d",a[i]);system("pause");}运行成果如图图3-12数组经验总结:在编写程序过程中重点关注输入输出对象与否对的。3.1.5函数编程初学函数时我们学习了主函数main(),但实用程序往往由多种函数构成。函数是C语言源程序的基本模块,通过对函数模块的调用可实现特定的功能。C语言中的函数相称于其他高级语言的子程序。C语言不仅提供了极为丰富的库函数,还容许顾客建立自己定义的函数。顾客可以把自己设计的算法编成一种个相对独立的函数模块,然后用调用的措施来使用函数。可以输C程序所有工作都是有各式各样的函数完毕的,因此也把C语言成为函数式语言,由于采用了函数模块式的构造,C语言抑郁实现构造话程序设计,使程序的层次构造清晰,便于程序的编写、阅读、调试。圆的面积:#include"stdio.h"#definePI3.14doublef2(doubler){doubles;s=PI*r*r;return(s);}doublemain(){doubler,s;scanf("%lf",&r);s=f2(r);printf("%lf",s);system("pause");}运行成果如图:图3-13函数(2)定义一种函数int功能是验证一种整数与否素数:intprime(intnum){intm;for(m=2;m<=num/2;m++){if(num%m==0)return(0);}return(1);}main(){intx,result;scanf("%d",&x);result=prime(x);if(result==1)printf("%d是素数",x);elseprintf("%d不是素数",x);system("pause");}运行成果如图:图3-14函数(3)定义一种函数int功能是求字符串长度,并用main()调用测试。intf4(char*s){intk=0,i;for(i=0;*(s+i)!='\0';i++)k++;returnk;}main(){char*s;chara[100];intj;s=a;gets(a);j=f4(s);printf("%d",j);system("pause");}运行成果如图:图3-15函数(4)判断一种数是不是素数:#include"stdio.h"main(){intn,i,k;scanf("%d",&n);k=n/2;for(i=2;i<=k;i++){if(n%k==0)break;}if(i==k+1)printf("%d是素数",n);elseprintf("%d不是素数",n);system("pause");}运行成果如图:图3-16函数3.2成绩管理系统**************************************1.添加成绩*********************2.输出成绩*********************3.插入成绩*********************4.删除成绩*********************5.冒泡排序*********************6.选择排序*********************7.判断某一种成绩与否存在**查询*****8.获取第n个成绩的值*******查找*****0.退出系统****************阐明:排序都是从大到小的次序提醒:定义一种足够大的数组,并用一种全局变量寄存数组的实际使用长度。#defineMAX100 floatscore[MAX]={1,2,3,4,5,6,7,8,9,10};//全局数组scoreintN=10;//成绩数main(){//申明8个功能函数voidoutputScore();voidselectScore();voidappendScore();voiddeleteScore();voidbubbleSort();voidselectionSort();voidcharu();voidchazhao();inti;//循环变量intop;//菜单操作项do{printf("********************************************\n");printf("******************1.添加成绩****************\n");printf("******************2.输出成绩****************\n");printf("******************3.插入成绩****************\n");printf("******************4.删除成绩****************\n");printf("******************5.冒泡排序****************\n");printf("******************6.选择排序****************\n");printf("******************7.判断某一种成绩与否存在**\n");printf("******************8.获取第n个成绩的值*******\n");printf("******************0.退出系统****************\n");printf("********************************\n");printf("请输入你(1-8)的操作:\n");scanf("%d",&op);switch(op){ case0:printf("\n你已经退出了系统\n");break;case1:appendScore();break;case2:outputScore();break;case3://按照编号或者成绩查询charu();break;case4:deleteScore();break;case5:bubbleSort();break;case6:selectionSort();break;case7:selectScore();break;case8:chazhao();break; default:printf("\n输入的操作数有误!");}}while(op!=0);system("pause");}voidoutputScore(){inti;//循环变量printf("\n成绩分别为:");for(i=0;i<N;i++)printf("%6.1f",score[i]);printf("\n");}voidselectScore(){inti;//循环变量floatcj;printf("\n请输入某个查询成绩:");scanf("%f",&cj);for(i=0;i<N;i++)if(cj==score[i])break;if(i<N)printf("\n该成绩被找到,成绩序号为%d",i);else printf("\n该成绩不存在!");printf("\n");}voidappendScore(){floatcj;printf("\n请增长一种成绩:");scanf("%f",&cj);if(cj>MAX||cj<0){printf("\n输入的成绩有误!");return;}score[N++]=cj;/*将添加的成绩追加到数组的尾部*/outputScore();/*调用输出成绩函数,输出成绩列表*/printf("\n");}voiddeleteScore(){intj;//循环变量intindex;printf("请输入需要删除成绩编号:\n");scanf("%d",&index);if(index>N-1||index<0){printf("\n输入的成绩编号有误!");return;}for(j=index;j<N;j++)/*将背面的元素向前位移一位*/score[j]=score[j+1];--N;/*元素个数减少1个*/outputScore();/*调用输出成绩函数,输出成绩列表*/printf("\n");}voidbubbleSort(){inti,j;//循环变量inttemp;for(j=1;j<=N-1;j++)/*控制比较的趟数*/for(i=0;i<N-j;i++)/*两两比较的次数*/if(score[i]>score[i+1]){temp=score[i];score[i]=score[i+1];score[i+1]=temp;}outputScore();/*调用输出成绩函数,输出成绩列表*/printf("\n");}voidselectionSort(){inti,j;//循环变量inttemp;for(j=0;j<N-1;j++)/*确定基准位置*/for(i=j+1;i<N;i++)if(score[j]>score[i]){temp=score[j];score[j]=score[i];score[i]=temp;}outputScore();/*调用输出成绩函数,输出成绩列表*/printf("\n");}voidchazhao(){intn;printf("\n请输入要查找的下标");scanf("%d",&n);if(n>MAX)printf("输入有误!");elseprintf("第%d个成绩的值为:%f",n,score[n]);printf("\n");}voidcharu(){inti,y;floatx;printf("请输入要插入的成绩:");scanf("%f",&x);printf("请输入要插入的位置:");scanf("%d",&y);if(y<0||y>=N)printf("输入的位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度猫咪宠物美容学院加盟买卖协议
- 常年聘请法律顾问的合同
- 2025年辽宁货运从业资格证试题库及答案
- 金秋助学发言稿
- 智能家居产品市场占有率表格
- 建筑工程安全施工协议书
- 心理学社交技巧考试试题
- 各类金融资产占比图表(按类型分类)
- 企业产品质量控制与改进作业指导书
- 基于互联网的三农产品销售平台开发指南
- 施工图总目录
- 中职统编《金属材料与热处理》系列课件 第2章 金属材料的性能(动画) 云天课件
- 人民医院诊断证明书
- 2023纤维增强水泥挤出成型中空墙板
- 颈源性头痛课件
- 细胞因子(免疫学检验课件)
- 苏教版科学2023四年级下册全册教案教学设计及反思
- 信息网络安全与保密管理制度-
- 海运客服专员岗位职责
- 腹痛的诊断与鉴别诊断-课件
- 五年级道德与法治下册全册教案
评论
0/150
提交评论