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

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

《C 语言程序设计》 课程设计报告
题目: 掷骰子游戏 专业: 计算机科学与技术 班级: 15计科(3)班
姓名:
廖晶晶
指导教师: 邓 明 成绩:
计算机学院 2016 年 4月 26 日
2015-2016学年 第二学期
目录
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
图2
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<stdio.h>
#include<stdlib.h>
#include<time.h>
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");
}
int point1(int x,int y) {
int n=0;
printf("甲:%d %d\n",x,y); /*
判断每次得分
*/
if(x==y)
{
if(x==6) n=8;
else n=7;
}
else if(x>y) n=y;
else n=x;
return n;
}
int point2(int i, int j) {
int z=0;
printf("乙:%d %d\n",i,j); if (i==j)
{
if(i==6) z=8;
else z=7;
}
else if(i>j) z=j;
else z=i;
return z;
}。

相关文档
最新文档