C毕业课程设计报告.docx

上传人:b****3 文档编号:1430805 上传时间:2022-10-22 格式:DOCX 页数:29 大小:743KB
下载 相关 举报
C毕业课程设计报告.docx_第1页
第1页 / 共29页
C毕业课程设计报告.docx_第2页
第2页 / 共29页
C毕业课程设计报告.docx_第3页
第3页 / 共29页
C毕业课程设计报告.docx_第4页
第4页 / 共29页
C毕业课程设计报告.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

C毕业课程设计报告.docx

《C毕业课程设计报告.docx》由会员分享,可在线阅读,更多相关《C毕业课程设计报告.docx(29页珍藏版)》请在冰豆网上搜索。

C毕业课程设计报告.docx

C毕业课程设计报告

(此文档为word格式,下载后您可任意编辑修改!

《C语言程序设计》

课程设计报告

(2012—2013学年第二学期)

 

专业:

软件工程(软件服务)

班级:

姓名学号:

指导教师:

成绩:

计算机与信息工程学院

2013年6月28日

目录

一、课程设计的目的与要求····································1

二、方案实现与调试··········································1

2.1掷骰子游戏··········································1

2.2射击游戏············································3

2.3计算存款本息之和·····································5

2.4肇事逃逸············································7

2.5礼炮···············································8

2.6汽车加油···········································9

2.7大优惠············································11

2.8金币··············································13

三、课程设计分析与总结·····································14

附录程序清单···········································14

一、课程设计的目的与要求(含设计指标)

1.1实验目的

C语言是一种编程灵活,特色鲜明的程序设计语言。

C语言除了学习必须的基本知识,如概念,方法和语法规则之外,更重要的是进行实训,以提高学习者的动手和编程能力,这是学习语言的最终目的。

结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。

达到如下目的:

1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;

2.让学生扎实掌握C程序设计语言的相关知识;

3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。

1.2设计要求

根据实验内容的要求自由选定题目。

编写程序要求遵循如下基本要求:

●模块化程序设计

●锯齿型书写格式

●必须上机调试通过

二、方案实现与调试

2.1掷骰子游戏

•2.1.1题目内容的描述

两人玩骰子,游戏规则如下:

1)两人轮流掷骰子,每次掷两个,每人最多掷10次。

2)将每人每次的分值累加计分

3)当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。

4)结束条件:

当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。

最后显示双方分数并判定优胜者。

•2.1.2输入数据类型、格式和内容限制和输出数据的说明

输入数据类型:

整数型;

格式:

stand(time(0));输入数=time()%6+1;

内容限制:

产生最多10次随机数;

输出数据说明:

双方掷骰子的分数,游戏的获胜者。

•2.1.3主要模块的算法描述

2.1.4调试过程及实验结果

1)调试过程

a、经过5次后一方累计分数多出另一方的30%及以上时程序未结束,解决——把第15行的判断条件sum1sum2>=1.3||sum2sum1>=1.3改成sum1>=sum2*1.3||sum1>=sum1*1.3;

b、计算总分时,乙的总分都为0;解决——子函数返回值错误,改正返回变量。

2、实验结果截图

2.2射击游戏

•2.2.1题目内容的描述

在程序运行时屏幕上方第一行随机出现一个符号,要求游戏者输入一个1-80之间的整数,当用户输入一个整数后,一个*立即从屏幕底端的该整数列向上移动,若移动到屏幕的顶端能撞上符号,则游戏者获胜;若没有撞上,则要求再输入一个整数,共允许输入5次,如果一直没有撞上,则认为游戏者输。

提示:

1)输入符号可以采用printf("%c",'\1')

2)显示*号向上移动:

输出一些空行;输出*号;以循环的方式增加延时(for(i=0;i<100000;i++););clrscr()清屏重新绘制*号

•2.2.2输入数据类型、格式和内容限制和输出数据的说明

输入数据类型:

整型,字符型;

格式:

srand(time(NULL)),scanf("%d",&t);

内容限制:

1~80;

输出数据:

游戏是否获胜

•2.2.3主要模块的算法描述

•2.2.4调试过程及实验结果

1)调试过程

1、第19行for(j=10;j>0;j++);后多了个分号,导致子弹无法运动,解决——删除分号;

2、运行时子弹与目标间无运行路径,直接在下遗憾出现;解决——第29行添加已循环for(i=1;i

3、出现语句后却“:

”或富含格式不对,变量类型定义出错,变量名不合法等问题;解决——缺“;”的补充“:

”,格式不对的给成英文格式的,重新定义变量,改正变量名;

2)实验结果

2.3计算存款本息之和

•2.3.1题目内容的描述

以“存款利率”为关键字上网搜索目前我国整存整取不同期限我国的银行存款利率,只计算一年、三年和五年三种期限。

问题:

1)要求输入存钱的本金和期限,求到期能从银行得到的利息与本金合计。

2)假设存款期限为三十年本金为10万,比较一年、三年和五年滚存三十年后的本息金额。

(一年期:

3.00%;三年期:

4.25%;五年期:

4.75%)

•2.3.2输入数据类型、格式和内容限制和输出数据的说明

(1)输入数据类型:

整型;格式:

本金(空格)年限;

内容限制:

年限这能为1,3,5;

输出数据:

期能从银行得到的本息。

(2)输入数据:

无;

输出数据:

三种期限滚存三十年后的本息及三种年限所获本息多少的比较。

•2.3.3主要模块的算法描述

2.3.4调试过程及实验结果

1)调试过程

a、主函数调用函数时,函数名与子函数名不一致导致编译不通过,解决——调用函数名与子函数名一致;

b、子函数中的变量为正确使用该函数所定义的局部变量而无用main函数中的变量,而导致编译失败,解决——改正中函数调用的变量;

c、三个求不同年限本息的子函数中s1,s2,s3赋初值为0.0导致运行结果均为0,解决

——改正s1,s2,s3所付赋初值:

s1=x,s2=i,s3=m。

2)实验结果

2.4肇事逃逸

•2.4.1题目内容的描述

某部闽DT的出租车交通肇事逃逸,现场无人看清后面的四位数字,但三位目击群众提供信息如下:

1)车牌号后两位相同;

2)车牌号前两位相同;

3)车牌号是一个整数的平方。

请编程查出肇事逃逸车辆的车牌号。

•2.4.2输入数据类型、格式和内容限制和输出数据的说明

输入数据:

无;

输出数据:

肇事车牌号“闽DT7744”;

•2.4.3主要模块的算法描述

2.4.4调试过程及实验结果

1、调试过程:

1)思路错误导致运行出错;

2)循环嵌套出错导致死循环而无结果,解决——改正循环计数变量的上下限

3)输出语句出错导致出现“闽DT0”的结果(正解“闽DT0000”),解决——

printf("肇事车辆车牌号为:

闽DT%d\n",m)改为

printf("肇事车辆车牌号为:

闽DT%d%d%d%d\n",a,a,b,c);

2、实验结果:

2.5礼炮

•2.5.1题目内容的描述

鸣放礼炮起源于英国。

据说400多年前英国海军用的是火炮。

当战舰进入友好国家的港口之前,或在公海上与友好国家的舰船相遇时,为了表示没有敌意,便把船上大炮内的炮弹统统放掉,对方的海岸炮舰船也同样做以表示回报。

这种做法以后就逐渐成为互致敬意的一种礼仪。

由于当时最大的战舰装有大炮21门,所以鸣炮21响就成了一种最高礼节。

有四艘战舰ABCD开始鸣放礼炮各21响,已知A战舰每隔5秒放一次,B战舰每隔6秒放一次,C战舰每隔7秒放一次,D战舰每隔8秒放一次.假设各炮手对时间掌握非常准确,请问观众共可以听到几次礼炮声?

•2.5.2输入数据类型、格式和内容限制和输出数据的说明

输入数据:

无;

输出数据:

观众可以听到的礼炮声次数;

•2.5.3主要模块的算法描述

2.5.4调试过程及实验结果

1)调试过程:

1、礼炮.cpp(16):

errorC2059:

syntaxerror:

‘=’

礼炮.cpp(17):

errorC2143:

syntaxerror:

missing';'before'{'

解决——if(t2<21&&time%==0)改为if(t2<21&&time%6==0)

2、运行结果为21次出错,解决——在循环中四个判断语句结束后增加s=0;

2)实验结果:

2.6汽车加油

•2.6.1题目内容的描述

一辆汽车加满油后可行驶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

323654272

输出:

5

•2.6.2输入数据类型、格式和内容限制和输出数据的说明

输入数据类型:

整型;

格式:

N(空格)K;距离1(空格或回车)距离2……;

内容限制:

1<=N<=100;1<=K<=100;

输出数据:

加油的最少次数和有停靠加油的加油站编号;

•2.6.3主要模块的算法描述

2.6.4调试过程及实验结果

1)调试过程

1、errorC2143:

syntaxerror:

missing';'before'break';解决——在

printf("NoSlution\n")语句后加“;”号;

2、程序无法运行,解决——scanf("%d",dis[i]);改为scanf("%d",&dis[i]);

3、运行结果(加油次数和应停靠加油站编号)出错;解决——“s=0;”和“t[j-1]=dis[i];”改为“s=dis[i];”和“t[j-1]=i;”。

2)实验结果

2.7大优惠

•2.7.1题目内容的描述

中国移动推出最新的手机资费优惠方案,按照这个方案Tom的手机每天消费1元,每消费K元就可以获赠1元,一开始Tom有M元,问最多可以用多少天?

输入的测试数据为一行,实例包括2个整数M,K(2<=K<=M<=1000)。

输出一个整数,表示M元可以用的天数。

•2.7.2输入数据类型、格式和内容限制

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1