掷骰子游戏-c语言程序课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学号2015-2016学年第二学期

《C语言程序设计》

课程设计报告

题目:掷骰子游戏

专业:计算机科学与技术

班级:15计科(3)班

姓名:廖晶晶

指导教师:邓明

成绩:

计算机学院

2016 年4月26 日

目录

1.课题设计的目的与要求 (3)

1.1实验目的 (3)

1.2设计要求 (3)

2.课题分析 (4)

2.1掷骰子游戏 (4)

2.1.1题目内容描述 (4)

2.1.2输入数据类型、格式和内容限制和输出数据说明 (4)

2.1.3流程图 (5)

3.总结 (8)

4.参考书籍 (8)

5.附件 (8)

5.1程序源代码 (8)

掷骰子游戏

1.课题设计的目的与要求

1.1实验目的

C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了学习必须的基本知识,如概念,方法和语法规则之外,更重要的是进行实训,以提高学习者的动手和编程能力,这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序任务书》,以在实训过程中给学生提供帮助。达到如下目的:

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

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

(3)通过一些有实际意义的程序设计,使学生体会到学以致用,并能

将程序设计的知识与专业知识有效地结合,更全面系统地了解行

业知识。

1.2设计要求

根据实验内容的要求自由选定题目。编写程序要求遵循如下基本要求:

●模块化程序设计

●锯齿型书写格式

●必须上机调试通过

2.课题分析

2.1掷骰子游戏

2.1.1题目内容的描述

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

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

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

3)当两个骰子点数都为6时计8分;当两个点数相等且不为两个6时,

计7分;当两个点数不一样时,计其中点数较小的骰子的点数。

4)结束条件:当双方都掷10次或经过5次后一方累计分数为另一方的

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

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

输入数据类型:整型数

格式:srand(time(0));输入数=rand()%6+1;

内容限制:产生最多十次随机数

输出数据说明:掷骰子的获胜者

2.1.3流程图

图1

开始

输入x ,y

x=y

x=6

x>y

n=n+8 n=n+7 n=n+y n=n+x

输出n

结束

图2 否

开始

输入i ,j

i=j

i=6

i>j

z=z+8 z=z+7 z=z+j z=z+i

输出z

结束

2.1.4调试过程及实验结果

出现的问题:每次循环产生的随机数相同。解决方法:把随机函数移到for循环前。

执行结果截图

图3

3.总结

这是第一次接触c++,感觉很朦胧,但是通过老师悉心的教导和同学们的沟通与交流后,还是学会了很多的东西。

从一个简单的变量,表达式到语句,函数。发现那些程序虽然很抽像但也不乏有很多的乐趣。经过这半学期的实践课程,我也初步了解了c语言的基础,也能独立初步完成编程操作,但目前作为初学者,无法实现较复杂的编程,有些较为复杂的程序更是看不懂,各方面有待提高。C语言作为现代大学生最重要的课程之一,用途广泛,更使我认识到了独立思考,实践操作的重要性。C语言的学习不仅重理论,更重实践。而学好c语言的一大方法便是“实践”,在c语言实践过程中遇到的种种问题,及解决问题的方法,更是锻炼了学生的实践能力,使我们不仅是学习理论,更学习了实践,今后一定要理论和实践有机结合,加上独立思考和不懈努力的学好c语言,为撬开编程的大门不懈努力。

4.参考书籍

[1] 严蔚敏,吴伟民,米宁等.数据结构(C语言版)[M] .北京:清华大学出版社,2007

[2] 谭浩强著.C程序设计(第三版)[M] .北京:清华大学出版社,2005

[3] 耿国华.数据结构C语言描述[M].北京:高等教育出版社,2010

[4] 严蔚敏,吴伟民,米宁等.数据结构题集(C语言版)[M] .北京:清华大学出版社,2011

[5] 严蔚敏,李冬梅等. 数据结构(C语言版)(第2版)[M] .北京:清华大学出版社,2014

5.附件

5.1程序源代码

#include

#include

#include

void main()

{

int a,e=0,f=0,g,h,l,m;

int point1(int x,int y);

int point2(int i, int j);

srand(time(0));

for(a=0;a<10;a++)

{

if(a==5)

{

if(e==f*2||f==e*2) break;

}

g=rand()%6+1;

/*产生1~6

的随机数

*/

h=rand()%6+1;

l=rand()%6+1;

m=rand()%6+1;

e=e+point1(g,h);

/*计算总分数*/

f=f+point2(l,m);

}

printf("甲的总分:%d\n乙的总分:%d\n",e,f); if(e>f)printf("甲获胜\n");

else if(e==f)printf("甲乙平手\n");

else printf("乙获胜\n");

}

相关文档
最新文档