




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C程序设计课程设计报告(20 14 2015 学年第 2 学期)题 目: 特殊数据的输出 学 院: 电气与电子信息学院 班 级: 1309 学 号: 1304080016 姓 名: 梁骞 指导教师: 罗涛华 时 间:起 4.27 止 4.30 19一、 课程设计基本信息课程代码:05190124课程名称:计算机基础课程设计课程英文名称: Computer-based Course Design课程所属单位(院(系)、教研室):数学与计算机学院计算机基础课程群课程面向专业:食品科学与工程学院、机械工程学院、电气与电子工程学院、土建学院、动物科学与营养工程学院、化学与环境工程学院、工商管理类、国际
2、经济与贸易、旅游管理、金融学、行政管理、汉语言文学、英语、护理学、康复治疗专业、生物科学类、制药工程、制药工程(生物制药)、药物制剂、物流管理课程类型:必修课先修课程:大学计算机基础通识选修课程、程序设计课程学分:1 总学时:1周二、 课程设计目标掌握所学语言程序设计的方法,熟悉 所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能:1培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2通过对所选题目方案分析比较,确立方案,编制
3、与调试程序,初步掌握程序设计的方法,能熟练调试程序。 3系统设计编程简练,可用,功能全面,并有一定的容错能力。用户界面良好,有较好的输出功能。在完成课题基本要求后,具有创新型设计,具有一定的实用价值。4根据个人的设计调试过程,撰写设计报告。 三、 课程设计内容熟练掌握所学语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,包括时间函数、绘图函数,以及文件的读写操作等。四、 课程设计要求1. 要求每个同
4、学都要认真对待,积极参与。2. 课程设计结束时,提交完成的所有源程序、相关文件和可执行文件。同时填写并完成课程设计报告册。3. 不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设计中完全未参与的将作不及格处理。五、 考核方式指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,百分制计算,具体考核标准主要包含以下几个部分:1. 程序运行情况20分2. 程序功能的完善程度10分3. 程序结构的合理性10分4. 对问题的答辩情况20分5. 创新情况10分6. 学生的工作态度与独立工作能力10分7. 设计报告内容的规范性20分备注:1. 按规
5、定时间填写各阶段文档,学习态度加5分2. 设计报告内容雷同扣40分,无调试过程问题分析扣10分,无参考文献扣10分3. 源程序无注释则在程序结构合理性扣10分六、 课程设计主要参考资料1. 谭浩强著. C程序设计(第3版). 北京:清华大学出版社,2005.72. 刘光蓉、汪靖、陆登波主编. C程序设计实验与实践教程. 北京:清华大学出版社,2011.23. 游洪跃主编. C语言程序设计实验与课程设计教程. 北京:清华大学出版社,2011.54. (美) Perter Van Der Linden著,徐波 译. C 专家编程(C编程语言经典之作) . 北
6、京:人民邮电出版社,2008.25. 凯尼格 著,高巍 译. C陷阱与缺陷. 北京:人民邮电出版社,2008.26. Mark de Berg等著,邓俊辉译,计算几何-算法与应用(第3版),清华大学出版社,2009年8月7. 杨克昌编著,计算机程序设计典型例题精解,国防科技大学大学出版社,1999年3月七、 课程设计计划安排时 间任 务课程设计前一周选择课程设计题目,分析课题的要求,确定设计方案,完成报告册中“课程设计概述”课程设计第1天按功能模块编写详细设计说明,完成报告册中“总体设计”课程设计第2天编写程序、调试程序课程设计第3天编写程序、调试程序,完成报告册中“详细设计”课程设计第4天调
7、试程序,完成报告册中“调试分析过程”课程设计第5天完成报告册中“总结”、“参考文献”、“课程设计评审表”部分内容,提交课程设计报告、源程序、面试或答辩一、课程设计概述课程设计问题描述编写程序,由系统随机产生一个正整数n(1<n<50000),根据菜单提示,选择输出小于n的以下7种特殊数据中的一种:(1)完全数,(2)亲密数,(3)水仙花数,(4)阶乘和数,(5)自守数,(6)孪生素数;直到用户退出系统设计要求1. 采用1行输出5个数据的格式。 2. 主函数实现正整数n的随机产生和菜单的显示,如图3.1所示。数据n作为函数的实参传递给各个子函数。 3. 子函数实现1到n之间的特殊数据
8、的判断和输出,不同类型特殊数据的判断用不同子函数实现。设计目的培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问 题。 2通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能 熟练调试程序。 3系统设计编程简练,可用,功能全面,并有一定的容错能力。用户界面良好,有较好的输出 功能。在完成课题基本要求后,具有创新型设计,具有一定的实用价值。 4根据个人的设计调试过程,撰写设计报告。开发环境硬件:PC机软件:Windows操作系统Microsoft Visual C+ 6.0二、总体设计(1)系统功能需求分析整个程序最开始,便是随机函数的运
9、用,C编译器提供了基于ANSI标准的伪随机数发生器函数rand()和srand(),用来生成随机数。这二个函数的工作过程如下: srand()提供一个种子,它是一个unsigned int类型,其取值范围从065535; 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间); 根据需要多次调用rand(),从而不间断地得到新的随机数; 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。然后,便是各类特殊数据的计算。(1)完全数是恰好等于自身的因子之和的数。 (2) 亲密数是两个正整数,其中一个整数的全部
10、因子之和等于另一个。 (3) 水仙花数是恰好等于自身各位数字立方和的数。 (4) 阶乘和数是恰好等于自身各位数字阶乘的和的数。 (5) 自守数是平方后尾部数字是自身的数。 (6) 孪生素数是差2的两个素数。这六个都是循环语句的巧妙运用。最后,选择输出特殊数据,是对switch运用的体现。整个程序中定义的变量较多,需要注意。二、总体设计(2)系统总体设计框架三、详细设计(1)主要功能模块 的算法设计(1) 完全数是恰好等于自身的因子之和的数.判断是否为素数,循环求出所有因子,最终求其和(2) 亲密数是两个正整数,其中一个整数的全部因子之和等于另一个。求出小于随机整数的所有整数的因子和,比较观察是
11、否有两两相等情况。(3) 水仙花数是恰好等于自身各位数字立方和的数。运用求商求余函数求出整数自身各位数字,在对其求立方和。三、详细设计(1)主要功能模块源程序1完全数 void wanquanshu(int n)/完全数 int i,count=0; printf("完全数:n"); for(i=0;i<=n;i+) if(i=fun(i) printf("%-5d ",i); if(+count%5=0)printf("n"); if (count%5!=0) printf("n");.2.亲密数void
12、qinmishu(int n)/亲密数 int i,temp,count=0; printf("亲密数:n"); for (i=0;i<=n;i+) temp=fun(i); if (temp>i&&i=fun(temp) printf("(%d,%d) ",i,temp); if (+count%5=0)printf("n"); if (count%5!=0) printf("n");3.水仙花数void shuixianhua(int n)/水仙花数 int i,m=3,sum,co
13、unt=0,temp,a; printf("水仙花数:n"); for(i=100;i<=n;i+) if(999<i&&i<10000)m=4; if(9999<i&&i<100000)m=5; temp=i; sum=0; while (temp) /sum+=(int)pow(float)(temp%10),(float)m); a = temp%10; if(m=3)sum+=a*a*a; if(m=4)sum+=a*a*a*a; if(m=5)sum+=a*a*a*a*a; temp/=10; if (
14、sum=i) printf("%-5d ",i); if(+count%5=0)printf("n"); if (count%5!=0) printf("n");三、详细设计(2)主要功能模块 的算法设计4.阶乘和数是恰好等于自身各位数字阶乘的和的数。同样运用求商求余函数求其自身各位数字.5. 自守数是平方后尾部数字是自身的数.先求其平方数,再利用求余函数求其尾部数字,判断是否相等。6. 孪生素数是差2的两个素数。7.用switch语句进行选择输出。三、详细设计(2)主要功能模块 源程序4.阶乘和数void jiechengheshu
15、(int n)/阶乘和数 int i,count=0,temp,sum; printf("阶乘和数:n"); for(i=0;i<=n;i+) sum=0; if (i=0)sum=jiecheng(i); else temp=i; while(temp) sum+=jiecheng(temp%10);temp/=10; if (sum=i) printf("%-5d ",i); if(+count%5=0)printf("n"); if (count%5!=0) printf("n");5.自守数void
16、zishoushu(int n)/自守数 int i,count=0,temp,t; long num; printf("自守数:n"); for(i=0;i<=n;i+) num=i*i; t=10; temp=i/10; while(temp) t*=10; temp/=10; if (num%t=i) printf("%-5d ",i); if(+count%5=0)printf("n"); if (count%5!=0) printf("n");6.孪生素数void luanshengsushu(in
17、t n)/孪生素数 int i,count=0; printf("孪生素数:n"); for(i=3;i<=n-2;i+=2) if (Prime(i)&&Prime(i+2) printf("(%d,%d) ",i,i+2); if (+count%5=0)printf("n"); if (count%5!=0) printf("n");7switch int main()int n=suiji();while(1) printf("1:完全数n"); printf(&q
18、uot;2:亲密数n"); printf("3:水仙花数n"); printf("4:阶乘和数n"); printf("5:自守数n"); printf("6:孪生素数n"); printf("0:退出n"); int choice;int n=suiji(); printf("输入choice:"); scanf("%d",&choice);printf("n"); switch(choice) case 1:wan
19、quanshu(n);break; case 2:qinmishu(n);break; case 3:shuixianhua(n);break; case 4:jiechengheshu(n);break; case 5:zishoushu(n);break; case 6:luanshengsushu(n);break;case 0: exit(0); default :printf("errorn");break; return 0; 四、调试分析过程(1)调试过程出现的问题及解决方法 初次写好的程序调试时软件显示错误之处高达70个。我再次仔细分析编写好的程序,发现许多
20、六个进行特殊数据计算的程序部分大括号都没有相应的对齐,好几条语句末尾也漏写了分号。把这些问题一一处理好之后,我再次调试,错误个数便有了明显的减少。之后,我又重新检查了几遍六块计算数据的程序,检查了循环中变量的取值范围,检查了循环语句的逻辑顺序等等,终于错误之处只剩下最后一个。计算机显示最后选择输出switch语句中变量n未定义,于是我再次定义n使之与随机函数产生的整数相等。最终,程序调试成功,正常运行,并输出了相应的特殊数据。 四、调试分析过程(2)测试数据及测试结果五、总结设计用到的知识点函数的参数; 2. 多分支条件语句; 3. 循环; 4. 数据的输入输出; 5. 随机函数的使用。收获与体会这道题的关键在于每个特殊数据的分析处理。如何写出正确的程序使计算机进行运算得出六个特殊数据并根据输入结果进行选择输出是这道题的主要思路。之前不熟悉的随机函数也是整个程序中比较关键的部分。首次接触多分支条件语句,我深感程序编写的严谨性和细致性。今后在c语言学习方面会更加注意不足与努力方向循环语句
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 11842-2025二氧化铀粉末和芯块的氧铀原子比测定热重法
- 火灾调查应急工作预案(3篇)
- 高考数学常见题型解法分享及答案
- 追求理想的高考作文思路及试题及答案
- 行政管理人际关系试题及答案
- 追求卓越的心态与行动-高考作文考试试题及答案
- 火灾发生应急预案演练(3篇)
- 2025年软件考试焦点讨论试题
- 防汛火灾等应急预案(3篇)
- 竞争战略与市场灵活性试题及答案
- 《新闻学概论》第一章
- 企业负责人经营业绩考核专项审计报告格式范本
- 2022年上海市杨浦区四下期末数学试卷
- 《商务文书礼仪》PPT课件(完整版)
- 钢筋混凝土结构桩基工程施工组织设计.
- 日产5000吨水泥熟料生产线窑尾工艺设计
- -绿化安全技术交底
- 手动液压泵使用说明书
- 人防工程质量监督要点及常见问题培训手册
- 国家开放大学《C语言程序设计》章节测试参考答案
- 建筑工程一切险投保单
评论
0/150
提交评论