C语言程序设计课程设计报告.docx
- 文档编号:8348583
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:16
- 大小:178.21KB
C语言程序设计课程设计报告.docx
《C语言程序设计课程设计报告.docx》由会员分享,可在线阅读,更多相关《C语言程序设计课程设计报告.docx(16页珍藏版)》请在冰豆网上搜索。
C语言程序设计课程设计报告
CompanyDocumentnumber:
WTUT-WT88Y-W8BBGB-BWYTT-19998
C语言程序设计课程设计报告
《C语言程序设计》
课程设计报告
(2013—2014学年第3学期)
题目:
C语言课程设计
专业:
软件工程
班级:
软件工程技术2班
姓名学号:
1
林燕萍
指导教师:
吴芸
成绩:
计算机科学与技术系
2014年6月23日
一、课程设计的目的与要求………………………………………1
二、方案实现与调试……………………………………………3
掷骰子游戏…………………………………………………5
射击游戏……………………………………………………7
计算存款本息之和………………………………………8
肇事逃逸…………………………………………………10
礼炮…………………………………………………12
汽车加油…………………………………………………14
大优惠…………………………………………………16
金币…………………………………………………19
三、课程设计分析与总结…………………………………………23
附录程序清单…………………………………………………25
一、课程设计的目的与要求(含设计指标)
C语言是一种编程灵活,特色鲜明的程序设计语言。
C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。
这是学习语言的最终目的。
结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。
达到如下目的:
1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;
2.让学生扎实掌握C程序设计语言的相关知识;
3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。
编写程序要求遵循如下基本要求:
①模块化程序设计
②锯齿型书写格式
③必须上机调试通过
二、方案实现与调试
掷骰子游戏
2.1.1题目内容的描述
1)两人轮流掷骰子,每次掷两个,每人最多掷10次。
2)将每人每次的分值累加计分
3)当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。
4)结束条件:
当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。
最后显示双方分数并判定优胜者。
2.1.2输入数据类型、格式和内容限制和输出数据的说明
数据类型:
整型;内容限制:
随机数的产生;输入数据结果:
胜利的一方
2.1.3主要模块的算法描述
本算法的思路过程:
首先要随机产生随机数,然后进行算法输出数值,执行条件判断输入结果,最后比较结果,判断胜利的一方。
程序流程图
图1掷骰子游戏
调试过程及实验结果
编辑过程中遇到的困难有:
编程思路正确,但是无法正确编写出程序和编程过程缺乏。
图2掷骰子游戏
射击游戏
2.2.1题目内容的描述
在程序运行时屏幕上方第一行随机出现一个符号,要求游戏者输入一个1-80之间的整数,当用户输入一个整数后,一个*立即从屏幕底端的该整数列向上移动,若移动到屏幕的顶端能撞上符号,则游戏者获胜;若没有撞上,则要求再输入一个整数,共允许输入5次,如果一直没有撞上,则认为游戏者输。
提示:
1)输入符号可以采用printf("%c",'\1')
2)显示*号向上移动:
输出一些空行;输出*号;以循环的方式增加延时(for(i=0;i<100000;i++););clrscr()清屏重新绘制*号。
2.2.2输入数据类型、格式和内容限制和输出数据的说明
System(“cls”);清楚屏幕,
2.2.3主要模块的算法描述
本算法的思路过程:
首先清楚屏幕,然后循环每行输出*,依次循环,判断是否击中目标,最后5次输入结束,或者击中目标结束。
程序流程图
图3射击游戏
2.2.4调试过程及实验结果
该程序在调试过程中出现的问题是:
该题中大体循环是以次数,还是循环的结果作为判断,弄不清楚
图4射击游戏
计算存款本息之和:
以“存款利率”为关键字上网搜索目前我国整存整取不同期限我国的银行存款利率,只计算一年(3%)、三年%)和五年%)三种期限。
问题:
1)要求输入存钱的本金和期限,求到期能从银行得到的利息与本金合计。
2)假设存款期限为三十年本金为10万,比较一年、三年和五年滚存三十年后的本息金额。
)数据类型:
长整型;
2)内容限制:
键入本金与年限;
3)输出数据:
本息和PI
主要模块的算法描述
本算法的语言描述:
输入限定之内的年份与存款金额,选择对应的年利率计算本息和
程序流程图
是
否
图5计算存款本息之和
调试过程及实验结果
图6计算存款本息之和
图7计算存款本息之和
肇事逃逸
题目内容的描述
某部闽DT的出租车交通肇事逃逸,现场无人看清后面的四位数字,但三位目击群众提供信息如下:
1)车牌号后两位相同;
2)车牌号前两位相同;
3)车牌号是一个整数的平方。
请编程查出肇事逃逸车辆的车牌号。
输入数据类型、格式和内容限制和输出数据的说明
1)数据类型:
整型;2)内容限制:
前两位相同,后两位相同,整数的平方;3)输出数据:
四位整数
主要模块的算法描述
本算法的思路描述:
前两位,后两位相同,则前两位用i表示,后两位用均表示,用k是100以内的两位整数,l表示这个四位数,用循环语句依次判断结果适合公式:
k*k=l=1000*i+100*i+10*j+j,即为肇事车牌号!
程序流程图
否
是
否
是
是
图8肇事逃逸
调试过程及实验结果
实验中所遇到的困难是:
书写代码时,定义四位车牌号为l,由于字母i与数字1比较像,结果导致混淆。
图9肇事逃逸
礼炮:
2.5.1题目内容的描述
鸣放礼炮起源于英国。
据说400多年前英国海军用的是火炮。
当战舰进入友好国家的港口之前,或在公海上与友好国家的舰船相遇时,为了表示没有敌意,便把船上大炮内的炮弹统统放掉,对方的海岸炮舰船也同样做以表示回报。
这种做法以后就逐渐成为互致敬意的一种礼仪。
由于当时最大的战舰装有大炮21门,所以鸣炮21响就成了一种最高礼节。
有四艘战舰ABCD开始鸣放礼炮各21响,已知A战舰每隔5秒放一次,B战舰每隔6秒放一次,C战舰每隔7秒放一次,D战舰每隔8秒放一次.假设各炮手对时间掌握非常准确,请问观众共可以听到几次礼炮声
输入数据类型、格式和内容限制和输出数据的说明
主要模块的算法描述
本算法的思路过程:
根据条件“A战舰每隔5秒放一次,B战舰每隔6秒放一次,C战舰每隔7秒放一次,D战舰每隔8秒放一次”确定可能性!
依次判断,累计听到的次数,得出结果!
程序流程图
否
是
是
否
是
否
是
否
是
图10礼炮
调试过程及实验结果
程序在调试过程中出现的问题是:
编码时要注意“||”,“&&”
图11礼炮
汽车加油
*题目内容的描述
一辆汽车加满油后可行驶n公里。
旅途中有若干个加油站。
设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。
输入:
第一行有2个正整数N和K(1<=N<=100,1<=K<=100),表示汽车加满油后可行驶N公里,且旅途中有K个加油站。
接下来的1行中,有K+1个整数,表示第K个加油站与第K-1个加油站之间的距离。
第0个加油站表示出发地,汽车已加满油。
第K+1个整数表示第K个加油站与目的地的距离。
输出:
将编程计算出的最少加油次数输出。
如果无法到达目的地,则输出NoSolution。
(注意:
No和Solution之间有一个空格)。
例如:
输入:
88
2
输出:
5
输入数据类型、格式和内容限制和输出数据的说明
1)数据类型:
数组类型;
2)内容限制:
键入数据:
3)用到的主要语句:
循环条件判断;
4)输出数据:
加油次数(整型)
主要模块的算法描述
本算法的语言描述是:
按题目要求输入数据;首先判断可行驶的路程是否足够汽车到达加油站;如果不能到达,则需要加油,在此处记录一次并循环;得出累计加油次数之和算得出结果。
程序流程图
图12礼炮
*调试过程及实验结果
实验中所遇到的困难是:
循环条件判断错误。
图13礼炮
大优惠
题目内容的描述
中国移动推出最新的手机资费优惠方案,按照这个方案Tom的手机每天消费1元,每消费K元就可以获赠1元,一开始Tom有M元,问最多可以用多少天
输入的测试数据为一行,实例包括2个整数M,K(2<=K<=M<=1000)。
输出一个整数,表示M元可以用的天数。
101011
502052
输入数据类型、格式和内容限制和输出数据的说明
整型,算法的应用,内容数字的限定;
主要模块的算法描述
程序流程图
否
是
否
图14
–简要的语言描述
思考数据间的关系;
分析K与天数的关系;
按M值递减的方式运算;
调试过程及实验结果
实验中所遇到的困难是:
没有注意到题目中给定的限制范围。
注意大小写
图15
金币
题目内容的描述
国王用金币奖励他忠诚的侍从。
第一天侍从工作结束后,国王奖励了他
一个金币;接着的两天侍从工作中(第二天,第三天)的每一天,国王奖励
了他两个金币;接着的三天侍从工作中(第四天,第五天,第六天)的每一
天,国王奖励了他三个金币;接着的四天侍从工作中(第七天,第八天,第
九天,第十天)的每一天,国王奖励了他四个金币。
这种奖励的模式将是固
定不变的,即在N天侍从工作中的每一天,国王将奖励他N个金币;接着的
N+1天的侍从工作中的每一天,国王将奖励他N+1个金币。
要求在给定的天数时,你的程序能够统计国王总共奖励了侍从多少金币。
输入数据类型、格式和内容限制和输出数据的说明
整型,算法的应用,内容数字的限定;
主要模块的算法描述
–以程序流程图的方式给出。
图16
–简要的语言描述
思考数据间的关系;
分析天数与获得金币的关系(类金字塔);
进行总求和;
调试过程及实验结果
实验中所遇到的困难是:
循环条件的出口判断不明确;求和处理不简约;
三、课程设计分析与总结
由于上学期在语言的学习方面还有很多不足之处,因此,这次课程设计显得特别吃力,很多不足都暴露了出来。
不过最终还是基本完成了此次课程设计的内容。
在各个实验中解决问题的基本流程是:
分析问题→分析解决问题的基本流程→选择合适的算法语句→书写程序→调试修改→按要求书写实验报告。
在这些过程中,我认为分析问题的解决流程最为重要,分析好解决流程之后,就可以清楚的知道自己这一步要干什么,下一步要干什么,思路就显得十分清楚,按照这个流程解决问题是我感觉做得好的一面。
不过也有很多不足,例如:
好久没碰C语言了,for,while之类的循环语句的基本功能都模糊了,在选择运用时还要在课本、网络上熟悉这些内容,还有一点就是自己对函数、模块化的思想掌握不够,按照实验要求需运用模块化的方式来解决问题,自己却很少使用这种思想,这就是实验中的不足之处。
总而言通过这次5天的课程设计我进一步了解C程序设计语言的编程功能,握C程序设计语言的相关知识,体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。
众多不足之处我会课余时间进一步加固,力争将这门基础课真正的学好、用好,摆正思想,为以后的专业课的学习大好基础!
最后感谢谢老师的一而再再而三的严格要求及耐心指导,感谢感谢同学们的帮助,谢
谢你们!
附录程序清单
掷骰子游戏:
#include<>
#include<>
#include<>
voidmain()
{
inti,j,k,b,n,m,add1=0,add2=0;
srand((unsigned)time(NULL));n");
break;
}
else
x=x+l[i];
if(N { y++; x=l[i]; } if(i==K) printf("输出最少加油次数: %d\n",y); } } 大优惠 #include<> main() { intM,K,i=0; printf("PleaseinputMandK\n(2<=K<=M<=1000)\n"); scanf("%d%d",&M,&K); if(2<=K<=M<=1000) { while(M>0) { i++; M=M-1; if(i%K==0)M=M+1; } printf("可用天数%d\n",i); } else { printf("Inputiserror"); } } 金币 #include<> #include<> main() { inti,j,money=0,sum=0,days; printf("pleaseinputdays="); scanf("%d",&days); for(i=1;i<=days;i++) { for(j=1;j<=i;j++) { money=money+i; sum=sum+1; if(sum==days) { printf("%d\n",money); break; } } } } 设计 日志 2014年6月23日 好久没碰C语言了,for,while之类的循环语句的基本功能都模糊了,在选择运用时还要看一下课本,写的代码有很多小细节有缺漏,调试修改了几遍,重新熟悉了C语言。 2014年6月24日 在经过一天的补缺补漏之后,第二天的C语言课程设计终于开始得心应手了,但是,有一道难题难住了我,在和同学的讨论之下,终于攻克了难关。 完成这道难题的成就感缓解了我一整天暴躁的情绪。 C语言的灵活多变,只有更深入的了解她,才能把问题了解的清楚,明白,透彻。 2014年6月25日 在画流程图,发现他好难画啊,即使画完了,线条也不流畅。 还是在画图工具上画,没法修改了。 但是已经画了,希望老师不要扣我的分啊。 2014年6月26日 已经是倒数第二天,上交报告的时间越来越紧迫。 题目虽然做完了,报告还在等着我,加油! 不过,这个流程图到底是关于思路还是关于代码的,都可以吧。 2014年6月27日 经过几天的实践,认识到,写好程序部署懂语法,会调用函数就可以了,在会做的基础上,能够用更简单,简洁的方法来完成它,就是更进一步的提高。 (注: 指导教师评语和成绩所在表格另起一页) 指导教师 评语 课程设计 成绩 指导教师签字 年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课程设计 报告