C语言实训报告-3_第1页
C语言实训报告-3_第2页
C语言实训报告-3_第3页
C语言实训报告-3_第4页
C语言实训报告-3_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

成都航空职业技术学院《C语言程序设计》课程设计报告设计题目:C语言应用能力系别:航空电子工程系专业:应用电子班级:213344班学号:132063学生姓名:李佳指导教师:万蓉老师完成时间:2014年5月29日课程设计评价表学生姓名: 李佳 设计时间(周/学期):一周项目权重自评小组长评价教师评价工作态度2020选题质量108设计质量5045报告质量2018合计10091综合评价和建议(指导教师填写)小组长李佳教师说明:1、工作态度包括出勤情况,学习态度。2、选题质量为题目的难度和适用性。3、设计质量是针对自选的任务而言,每一个任务的程序设计正确,达到题目要求,功能完善,为50分;程序设计正确,达到题目要求,功能基本完善,为40分;程序设计正确,基本达到题目要求,功能基本完善,为30;程序设计不正确,为20分;未作和抄袭,则为0分。《C语言程序设计》课程设计报告一、课程设计目的本课程设计是高等职业教育电子技术类各专业重要的实践性环节之一,是在学生学习《C语言程序设计》课程中进行的一次综合训练。本课程设计的目的和任务:1.巩固和加深学生对C语言课程的基本知识的理解和掌握2.掌握C语言编程和程序调试的基本技能3.利用C语言进行基本的软件设计4.掌握书写程序设计说明文档的能力5.提高运用C语言解决实际问题的能力二、课程设计要求1.分析课程设计题目的要求2.写出详细设计说明3.编写程序代码,调试程序,使其能正确运行4.设计完成后提交课程设计报告三、课程设计题目、程序代码(要求程序有必要的注释)题目:题目1在主函数中输入密码,若密码正确,调用一个体重测量仪函数,要求当输入5个人的身高和体重后,计算出体重指数,根据指数情况进行判断输出结论。体重指数=体重(公斤)除身高(米)的平方(kg/m2)判断标准:重度肥胖:体重指数>=40中度肥胖:35<=体重指数<40轻度肥胖:30<=体重指数<35微度肥胖:25<=体重指数<30正常体重:18<=体重指数<25偏瘦:体重指数<18编程要求:若密码错误输入三次,则程序退出。#include<stdio.h>#include<string.h>#include<stdlib.h>voidf();voidmain(){chara[30];inti=0; printf("请输入密码:\n"); while(1) { gets(a); if(strcmp(a,"222")!=0) { i++; if(i==3) { printf("密码输入了三次,无权进入!\n"); exit(0);} //当密码输错三次后,自动退出程序 printf("请输入密码:\n"); }//当密码输错且小于三次时,重复输入密码步骤 else break;//当密码输入正确的时候,跳出输入密码项,进入体重计算步骤 } f(); //密码输入正确后用调用函数来实现体重计算}voidf(){ inti=0; floata[30],b[30],t[140]; for(i=0;i<5;i++) { printf("请输入第%d个人的身高和体重(用逗号隔开):",i+1); scanf("%f,%f",&b[i],&a[i]); } //用循环语句实现分别输入5个人身高体重步骤 for(i=0;i<5;i++) { t[i]=a[i]/(b[i]*b[i]); if(t[i]>=40) printf("第%d个人的体重指数:重度肥胖\n",i+1); elseif(t[i]>=35&&t[i]<40) printf("第%d个人的体重指数:中度肥胖\n",i+1); elseif(t[i]>=30&&t[i]<35) printf("第%d个人的体重指数:轻度肥胖\n",i+1); elseif(t[i]>=25&&t[i]<30) printf("第%d个人的体重指数:微度肥胖\n",i+1); elseif(t[i]>=18&&t[i]<25) printf("第%d个人的体重指数:正常体重\n",i+1); elseif(t[i]<18) printf("第%d个人的体重指数:偏瘦\n",i+1); } //用循环语句实现分别计算5个人体重指数步骤}题目2用户登录程序。编程要求:提示用户输入用户名和密码,判断是否为合法用户,如果合法调用求圆的面积函数和体积函数,否则要求重新输入,允许输入三次,若三次都错,显示“passworderror!youcannotusesoftware.”,退出。#include<stdio.h>#include<string.h>#include<stdlib.h>#definePI3.14 //定义PI的值为3.14voidf();voida();voidb();voidmain(){chara[30],b[30];inti=0; printf("请输入用户名:\n"); while(1) { gets(a); printf("请输入密码:\n");gets(b); if((strcmp(a,"LIJIA")!=0)||(strcmp(b,"222")!=0)) { i++; if(i==3) { printf("passworderror!youcannotusesoftware.\n"); exit(0); /*当密码输错三次后,输出passworderror!youcannotusesoftware并自动退出程序*/ } printf("请再次输入用户名:\n"); //当密码输错且小于三次时,重复输入密码步骤 } else break; /*当用户名和密码都输入正确的时候,跳出输入用户和密码项,进入调用函数f()*/ }f();}voidf(){intx; printf("恭喜你,输入正确!\n");qq:printf("亲,请选择哦(输入1-3)\n"); printf("1.求圆面积程序\n"); printf("2.求球的体积程序\n"); printf("3.退出\n");scanf("%d",&x); if(x==1) a(); elseif(x==2) b(); elseif(x==3) exit(0); else { printf("没有这个选项哦\n"); gotoqq; //当输入数字未在1~3中时,重新进入菜单选项 }}voida(){doublex,s;printf("请输入圆的半径\n");scanf("%lf",&x);s=3.14*x*x;printf("%.2lf=3.14*%.2lf*%.2lf\n",s,x,x);}voidb(){doublex,v;printf("请输入球的半径\n");scanf("%lf",&x);v=4/3*3.14*x*x*x;printf("%.2lf=4/3*3.14*%.2lf*%.2lf*%.2lf\N",v,x,x,x);}题目3每个公民的身份号码为十八位,最后一位是校验码。输入身份号码的前十七位,请根据下面的算法,计算出最后一位的编码。按照中华人民共和国国家标准GB11643-1999规定中华人民共和国公民身份号码校验码的计算方法即为ISO7064:1983.MOD11-2校验码计算法。假设某一17位数字是17位数字12345678901234567加权因子7910584216379105842计算17位数字各位数字与对应的加权因子的乘积的和S:1×7+2×9+3×10+4×5+5×8+6×4+7×2+8×1+9×6+0×3+1×7+2×9+3×10+4×5+5×8+6×4+7×2=368;计算S÷11的余数T:368mod11=5;计算(12-T)÷11的余数R,如果R=10,校验码为字母“X”;如果R≠10,校验码为数字“R”:(12-5)mod11=7。该17位数字的校验码就是7,聚合在一起为123456789012345677。#include<stdio.h>voidmain(){ intn[17],m[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2},i=0,s=0,t,r; printf("请输入您身份证号前17位(小编免费为你推算第十八位哦O(∩_∩)O)\n"); for(i=0;i<17;i++) { scanf("%d",&n[i]); s+=n[i]*m[i]; } //利用循环函数使输入身份证号的前17位 t=s%11; r=(12-t)%11; for(i=0;i<17;i++) printf("%d",n[i]); if(r==10) printf("X\n"); else printf("%d\n",r);}题目4用随机函数产生0~9内的随机数,编写一个程序能够计算二个数和三个数的和差积商运算。随机产生10以内的整数,出题的数量由个人自定。编程要求:人机界面良好,有实用性。#include<stdio.h>#include<stdlib.h>#include<time.h>a();b();main(){ intt; printf("1两个数的算术运算\n"); printf("2三个数的算术运算\n"); printf("3退出\n"); scanf("%d",&t); { if(t==1) a(); elseif(t==2) b(); elseif(t==3) exit(0); } //根据输入数字,进入对应功能项}a(){ inta,b,c,d,e,i=0,n,m=1; printf("亲,想做几道题呢?O(∩_∩)O\n"); scanf("%d",&n); //根据输入数字确定出题数量 for(m=1;m<=n;m++) //利用循环函数实现反复出题功能 { printf("第%d道题\n",m); srand(time(NULL)); a=rand()%9+1; b=rand()%9+1; c=rand()%4+1; switch(c) { case1:d=a+b;printf("%d+%d=",a,b);break; case2:d=a-b;printf("%d-%d=",a,b);break; case3:d=a*b;printf("%d*%d=",a,b);break; case4:d=a/b;printf("%d/%d=",a,b);break; } //用了三个产生随机的语句,产生随机数a,b,产生随机算法C while(1) { scanf("%d",&e); if(d!=e) { i++; if(i==3) { printf("你都错三次了,%>_<%\n"); printf("正确答案是:%d\n",d); break; } //当输入答案错误三次,自动弹出正确答案并进入下一题 printf("请再次输入答案哦\n"); } //当答案输入错误在三次内,让其重复输入答案 else break; //当答案输入正确,跳出循环 } }}b(){ { inta,b,c,d,e,i=0,n,m=1,o; printf("亲,想做几道题呢?O(∩_∩)O\n"); scanf("%d",&n); //根据输入数字确定出题数量 for(m=1;m<=n;m++)//利用循环函数实现反复出题功能 { printf("第%d道题\n",m); srand(time(NULL)); a=rand()%9+1; b=rand()%9+1; o=rand()%9+1; c=rand()%17+1; switch(c) { case1:d=a+b+o;printf("%d+%d+%d=",a,b,o);break; case2:d=a+b-o;printf("%d+%d-%d=",a,b,o);break; case3:d=a+b*o;printf("%d+%d*%d=",a,b,o);break; case4:d=a+b/o;printf("%d+%d/%d=",a,b,o);break; case5:d=(a+b)*o;printf("(%d+%d)*%d=",a,b,o);break; case6:d=(a+b)/o;printf("(%d+%d)/%d=",a,b,o);break; case7:d=a-b+o;printf("%d-%d+%d=",a,b,o);break; case8:d=a-b-o;printf("%d-%d-%d=",a,b,o);break; case9:d=a-b*o;printf("%d-%d*%d=",a,b,o);break; case10:d=a-b/o;printf("%d-%d/%d=",a,b,o);break; case11:d=(a-b)*o;printf("%(d-%d)*%d=",a,b,o);break; case12:d=(a-b)/o;printf("(%d-%d)/%d=",a,b,o);break; case13:d=a*b*o;printf("%d*%d*%d=",a,b,o);break; case14:d=a*b/o;printf("%d*%d/%d=",a,b,o);break; case15:d=a*(b/o);printf("%d*(%d/%d)=",a,b,o);break; case16:d=a/b/o;printf("%d/%d/%d=",a,b,o);break; case17:d=a/(b/o);printf("%d/(%d/%d)=",a,b,o);break; }//用了四个产生随机的语句,产生随机数a,b,O产生随机算法C while(1) { scanf("%d",&e); if(d!=e) { i++; if(i==3) { printf("你都错三次了,%>_<%\n"); printf("正确答案是:%d\n",d); break; }//当输入答案错误三次,自动弹出正确答案并进入下一题 printf("请再次输入答案哦\n"); } //当答案输入错误在三次内,让其重复输入答案 else break;//当答案输入正确,跳出循环 } } } }题目6选优秀学生干部程序。设有5个候选人,每人每次输入2个的候选人的号,且不得重复计票。要求最后输出每个人得票的结果和第一名的姓名。编程要求:人机界面良好,有实用性。 加分项:投票人数随机,可以弃权,也可以只投一票或二票。#include<stdio.h>voidmain(){ intx,a=0,b=0,c=0,d=0,e=0,f=0,i,max1,max2,max3,max4; while(1) { printf("你想为谁投票呢?请输入他们的编号(每人每次输入2个的候选人的号,且不得重复计票。可以弃权(按0哦)也可以只投一票或二票)\n"); printf("1王二小\n"); printf("2哪吒\n"); printf("3三毛\n"); printf("4葫芦娃\n"); printf("5熊二\n");for(i=0;i<2;i++){ scanf("%d",&x); if(x==1) a++;elseif(x==2) b++;elseif(x==3) c++;elseif(x==4) d++;elseif(x==5) e++; elseif(x==0) f++; } //根据输入数字为相应选手票数进行累加 if(x==-1) break; //如果输入-1,则结束投票 } max1=(a>b?a:b); max2=(max1>c?max1:c); max3=(max2>d?max2:d); max4=(max3>e?max3:e);//利用判断语句,判断出最高票选手 if(max4==a) printf("得票最高的是:王二小\n"); elseif(max4==b) printf("得票最高的是:哪吒\n"); elseif(max4==c) printf("得票最高的是:三毛\n"); elseif(max4==d) printf("得票最高的是:葫芦娃\n"); elseif(max4==e) printf("得票最高的是:熊二\n");printf("最高票数为:%d\n",max4);printf("得票结果为\n"); printf("1王二小得票:%d\n",a); printf("2哪吒得票:%d\n",b); printf("3三毛得票:%d\n",c); printf("4葫芦娃得票:%d\n",d); printf("5熊二得票:%d\n",e); printf("最高票数为:%d\n",max4); }四、总结(不少于800字)能说最后一天是被C语言吓醒的麽?对于我这种从来都在7点以后起来的人来说,在星期四那个黑色早晨,一串串C语言符号打断了我和周公的“约会”,什么自定义函数,什么printf.scanf……活生生的给我吓醒了呀。您知道那会儿几点麽?6点过一点,是的,是6点过一点点。 因为是连着的三周是实训,所以其实我很累。(可能对有的同学来说,恰恰与我相反)说句小欠虐的话,好想上课啊….. 对于C语言,刚刚看到老师出的题的时候,哇噻,老师您真狠。好难的感觉。周一的一早上一道题都没没做成功.是传说中的没进入状态么?因为是陌生的老师,遇到困难也没好意思问,其实好多同学都是。下午的时候,好多同学都往后坐了,可能就是因为是陌生老师的关系吧。反正第一天就只做了一道题。不过当时超有成就感的,那么长的程序,平时让我看都可能会迷糊进去。现在居然我能写出来了,而且功能杠杠的。不过看到后面的题,心情顿时忧伤了。 周二的时候,万来师来了,大概是自己人的原因,第一排是坐满了,问题的人明显增多了。第二天的,是具有历史意义的一天。哈哈哈,请容我小嘚瑟一下。那天,我成功地做成了第四题。其实我也没读懂题,但是呢从老师发的EXE文件里找到了灵感。“琪琪,想做几道题呢?”是的,就是它。运行体验了无数次后,我也成功的编出来了。本来也是没觉得有怎样。但是,,,,,后来很多同学来问我这道题,当时那个心情:虚荣心得到了极大满足啊(原谅我是个凡人)那天,他们都说我是人品爆发,一天做了两道题。其实,还是很满足的。 周三,做了两道,但点名那道简直把我虐爆。编译运行毫无问题,就是因为显示它不听指挥啊。那挣扎了很久后,最终决定放弃治疗了。因为说周四要先检查做题多的同学,同时也希望拿到老师手里的高分。那天晚上去找空机房了。(电脑版本太低,装不了C++……)只是、、、、、没有上课的机房都是锁了的。找了一个在上选修的班级,给那个老师说了一下,最终混匿在一群选修学生中苦逼的做着C语言。不过结果还是让人满意的,成功地做了一道题,还有一道半成品。周四早上,还在苦苦挣扎我的点名程序,奈何它……只怪我学艺不精啊。同时呢也在将前一晚的半成品继续加工,毕竟,写得越多,分越高吧。(原谅我这么庸俗……)。只是老师来检查的时候点名程序和那道多半成品也没成功。不过当时真好想和老师说一句,能这两题算一题吗?我就可以算六道了。最终还是把这句话给噎回去了。好多同学都说我程序长这个问题。是,的确,和有些同学比起来,我的程序确实长了好多。我能申辩一下麽?我觉得要站在一个运行我们生成EXE文件的使用者来编程,因为我们编的程序确实是有实用性啊。随机产生算式的那道题用在我一年级的妹妹身上确实是好啊。站在她们使用的角度那就需要足够的提示语。一般的提

温馨提示

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

评论

0/150

提交评论