《C语言程序设计》 课程设计报告
(学年 第 学期)
专 业: 班 级: 姓名学号: 姓 名: 指导教师: 成 绩:
目 录
一、课程设计的目的与要求???????????????1 二、方案实现与调试 ?????????????????1 2.1 掷骰子游戏???????????????????1 2.2 射击游戏????????????????????3 2.3 计算存款本息之和?????????????????5 2.4 肇事逃逸????????????????????8 2.5 礼炮??????????????????????10 2.6 汽车加油????????????????????12 2.8大优惠?????????????????????13 2.9 金币??????????????????????15 三、课程设计分析与总结????????????????17 附录 程序清单???????????????????17
一、课程设计的目的与要求 (一)实验目的
C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了学习必须的基本知识,如概念,方法和语法规则之外,更重要的是进行实训,以提高学习者的动手和编程能力,这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的:
1. 在课程结束之前,让学生进一步了解C程序设计语言的编程功能; 2. 让学生扎实掌握C程序设计语言的相关知识;
3. 通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识
与专业知识有效地结合,更全面系统地了解行业知识。
(二)设计要求
根据实验内容的要求自由选定题目。编写程序要求遵循如下基本要求: ? 模块化程序设计 ? 锯齿型书写格式 ? 必须上机调试通过
(三)课程设计报告(按《C语言程序设计课程设计报告》格式要求完成)
1、设计目的
2、总体设计(程序设计组成框图、流程图)
3、详细设计、模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)。
4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施。
5、源程序清单和执行结果:源程序中应有足够的注释。
(四)、检查标准
1、学生必须编写可运行的程序,对教师的提问能熟练地当面解释清楚,回答的问题
和程序运行的结果作为评分的主要衡量标准;(课程设计当周的周三开始逐一检查)
2、按照本文后要求须提交电子内容的清单提交相关内容。
二、方案实现与调试
2.1掷骰子游戏(注,此题目用了两种方法,方法一:一般的main函数方式;
方法二:加入函数分模块的方式。代码见附录)
?2.1.1 题目内容的描述
两人玩骰子,游戏规则如下:
1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分
- 1 -
3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;
当两个点数不一样时,计其中点数较小的骰子的点数。
4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以
上。最后显示双方分数并判定优胜者。
?2.1.2输入数据类型、格式和内容限制和输出数据的说明 1)数据类型:整型;2)内容限制:随机数的产生;
3)输出数据:获胜一方。 ?2.1.3主要模块的算法描述
1) 程序流程图如下:
开始 初始化grade1=0,grade2=0,i=1 第一人掷骰子 计算第一人得分grade1 i++ 第二人掷骰子 计算第二人得分grade2 否 11>=i>=6 是 否 一方的成绩的是否大于等于另一方的1.3倍 是 获胜方 结束
2)语言描述如下:
- 2 -
此题目主要运用了循环语句。首先用随机数产生器产生产生玩家投骰子的点数; 接下来根据点数计算玩家的分;接下来判断投掷的次数是否达到5次是的话比较一方的累计分数是不是在另一方的1.3倍以上,是的话则胜利,否的话继续投掷! ?2.1.4调试过程及实验结果
1)调试过程遇到的问题与解决方案: 没能正确理解“当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上”这句话的意思,以为是满五或者满十的时候带累计总分一次然后比较分数,确定获胜方!所以将“if(i>=6)”z这个语句写成了“if(i==6)”,在后来的调试过程中发现,及时改正了! 2)实验结果如下:
- 3 -