版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 c语言程序设计 课程设计(论文)题目: 院(系): 专业班级: 学 号: 学生姓名: 指导教师: 教师职称: 起止时间: 课程设计(报告)任务及评语院(系):软件学院 教研室:软件教研窒学 号学生姓名专业班级程序设计(报告)题目猜拳游戏程序设计(报告)任务程序设计的任务与要求:(1)掌握c语言编程的基础知识。(2)较熟练地编写c语言应用程序。(3)了解c语言的常用标准函数、编程技巧、异常处理。(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。(7)通过本次设计,进一步培养学生热爱专业的思想,同时
2、对本专业综合素质的提高起一个积极的推动作用。课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。指导教师评语及成绩成绩: 指导教师签字: 2009 年 1 月 10 日辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)目 录第1章 课程设计的目的与要求11.1 课程设计目的11.2 课程设计的实验环境11.3 课程设计的预备知识11.4 课程设计要求1第2章 课程设计内容22.1程序功能介绍22.2程序整体设计说明32.2.1设计思路32.2.2数据结构设计及用法说明32.2.3程序结构(流程图)4.2.4
3、.4各模块的功能及程序说明62.2.5程序结果72.3程序源代码及注释9第3章 课程设计总结16参考资料17第1章 课程设计的目的与要求1.1 课程设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完程序设计语言(c)课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对c语言课程的基本知识的理解和掌握 2. 掌握c语言编程和程序调试的基本技能 3. 利用c语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用c语言解决实际问题的能力1.2 课程设计的实验环境硬件要求能运行windows 2000/xp操作系统的微机系统。c语
4、言程序设计及相应的开发环境。1.3 课程设计的预备知识熟悉c语言及c语言开发工具。1.4 课程设计要求1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告第2章 课程设计内容2.1程序功能介绍猜拳游戏通常是由锥子、剪子、布三部分。输入:计算机随机输入选择,用户输入选择,并将数据储存。计算:根据计算机和用户的选择,计算大小,并判断输赢,计算用户的胜负率,并储存。输出:根据用户的输入,将用户的游戏结果显示在屏幕上。刚开始执行输入函数,按数字顺序输入,输完后执行显示功能、字母的位置显示不对,试
5、着在其中增加一些语句,希望能把所需结果按正常顺序显示,但暂时没有成功,最后在老师的帮助下,所需结果能按正常顺序输出了。在前面对猜拳游戏进行需求分析的过程中,已经初步明确了系统的主要功能模块和用户需求,下面将在总体设计的过程中,给出猜拳游戏的模块结构、流程描述以及界面布局,并使得系统的总体设计符合软件工程中总体设计的基本原则。游戏区:玩家可以在游戏区逐次猜拳,系统给出玩家每次猜拳后的提示,显示成功或者失败。刷新排行榜:当玩家成功完成一轮猜拳游戏后,可通过和排行榜中相应记录的比较判断玩家是否可以进入排行榜,进入排行榜的资格游戏成绩在前五名的玩家。查看排行榜:玩家可以查看当前排行榜中的排名顺序,从而
6、确定自己的游戏目标。排行榜的查看按一定顺序显示给用户,便于查看。清除排行榜:玩家可以选择清除排行榜功能,使得排行榜上的玩家姓名和玩家游戏记录从系统中清除,只留下系统默认的玩家名(player)和系统默认记录8次。帮助:玩家通过帮助功能了解游戏规则和排行榜设置规则。退出:玩家想结束并退出游戏系统。2.2程序整体设计说明猜拳游戏是一个运行在windows平台下的小型游戏软件,依据猜拳游戏的基本规则,给用户进行娱乐。游戏用户可以选择开始游、排行榜查看、帮助等主要功能。如果用户猜拳的次数超过8次,则提示用户游戏失败,如果在8次之内猜拳4次胜出,则提示用户猜拳成功,在帮助模块,用户可以查看游戏规则,当熟
7、悉规则后可以退出帮助模块。 本游戏软件实现以下一些基本功能:新游戏:玩家可以在游戏区逐次猜拳,系统给出玩家每次猜数字后的提示,;查看排行榜:(待改进);清除排行榜:(待改进); 帮助:玩家通过帮助功能了解游戏规则和排行榜设置规则。2.2.1设计思路输入:计算机随机输入选择,用户输入选择,并将数据储存。计算:根据计算机和用户的选择,计算大小,并判断输赢,计算用户的胜负率,并储存。输出:根据用户的输入,将用户的游戏结果显示在屏幕上。2.2.2数据结构设计及用法说明 输入数据:计算机随机输入数据用户输入合法的数据存储数据:存储计算机的输入数据存储用户的合法输入数据判断用户的输赢:根据用户的选择,比较
8、用户与计算机的胜负计算用户的胜负率:根据计算机的记录,计算用户的胜负次数的总和及概率系统为玩家提供猜拳游戏的主休功能,由系统自动产生随机的锤子锥子、剪子、布,并给用户8次机会猜拳,如果用户在8次之内没有赢过电脑,则提示用户游戏失败,否则提示用户猜拳成功,并调用产生新记录模块对玩家游戏成绩进行处理。猜拳游戏软件的总体目标是按照特定游戏规则为用户提供一个方便友好的游戏界面,同时给用户提供排行榜的功能使用户能够按照特定的目标提高自己的成绩,并且提供相应的帮助功能。游戏规则如下。 游戏软件随机产生锥子、剪子、布,但不显示,给用户提供输入提示符,让用户出入锥子、剪子、布,用户出入的
9、大于电脑,则猜数字成功。 玩家有8次猜数字的机会,如果在8次之内仍未猜拳大于电脑,则提示用户游戏失败。 一旦玩家在8次的次数限制内猜拳成功,则赢得游戏。 记分规则:猜拳成功次数即为分数,所以分数越高证明玩家水平越高,排行榜中也是排列份数最少的前五名选手。2.2.3程序结构(流程图) 获取计算机的输入开始s=os=rand()%3结束dn=switch(s)图2.2.1 获取用户的合法输入开始输入用户选择输入用户选择判断合法性结束是否 判断用户的输赢 记录用户的数据机胜负率开始储存结束统计并输出结果结束.2.4.4各模块的功能及程
10、序说明主函数: int main()创立结构体:struct p1()使数字产生循环: int rand1()调用读取破记录: goread()初始化随机数发生器:getnumber()除文本模式窗口:clrscr();读入字符串的时候,直到回车为止 :gets()void operationmenu();/操作说明子菜单operation explanation功能:主要是起调用作用,显示操作说明子菜单界面!输出显示帮助系统。具体游戏规则(未直接在游戏显示)。猜拳人要想好一个锥子、剪子、布的其中一个然后输入,猜拳的人就可以开始猜拳。电脑会显示猜拳人的成功或者失败。在本软件中,在用户输入猜拳后
11、自动给出答案!猜拳次数限制:本猜数字游戏软件设有猜测次数的上限。根据计算机测算,采用严谨的猜测策略,任何数字最低8次就可猜出。其算法步骤如下:甲: 首先猜 剪子电脑 :猜石头结果:电脑胜出2.2.5程序结果 显示主菜单界面 输入界面 输出界面 结果统计界面 游戏结束界面2.3程序源代码及注释#include<stdio.h> #include<time.h> #include<stdlib.h> void main() char r; /* 用来存放用户的选择 */char dn; /* 用来存放电脑的选择 */int s,q; double p,y,n,f
12、,z; p=0; y=0; n=0; printf("出锤子输入cn出剪刀输入jn出布输入bn计算您的得分输入fn可以一次输入许多 会一次性出很多结果哦n请输入您的选择:n"); srand(time(0); /* 随机数生成器,设置rand种子值,用来获取计算机的输入 */ enum布,剪刀,石头,结束dn,r;do do s=rand()%3; switch(s) case 0 : dn='c'break; case 1 : dn='j'break; case 2 : dn='b'break; do scanf("
13、;%c",&r); /* 用来获取用户的合法输入 */while(r!='c'&&r!='b'&&r!='j'&&r!='f'); if(r='f') z=y+n+p; f=100/z*(p/2.0+y); /p 平局 y 赢局 n 输局 z 总共局数printf("一共比了%g场n赢了%g场n输了%g场n平局%g场n",z,y,n,p); y=100/z*y; n=100/z*n; p=100/z*p; printf("
14、;您的胜率为%.3g%n您的败率为%.3g%n您平局率为%.3g%n您的综合分数为%.3gn对您成绩的评语:",y,n,p,f); if(f<=20) printf("您的运气真的差到一定无法想象的程度了!nn"); if(f>20&&f<=40) printf("您的运气差了点哦,努力,加油!nn"); if(f>40&&f<=60) printf("您的运气还可以中等啦中等啦nn"); if(f>60&&f<=80) printf(
15、"您的运气不错哟!嘿嘿nn"); if(f>80&&f<=100) printf("哇!您的运气真的好到家了 你太帅了gg 你太可爱了mm!nn"); printf("n随便输入几个字符按回车关闭程序n"); scanf("%d",&q); if(dn=r) printf("平手,继续n"); p+; else switch(dn) case 'c' : if(r='j') printf("电脑win! 锤子:剪刀n&
16、quot;);n+; else printf("人win! 锤子:布n");y+; break; case 'j' : if(r='b') printf("电脑win! 剪刀:布n");n+; else printf("人win! 剪刀:锤子n");y+; break; case 'b' : if(r='c') printf("人win! 剪刀:锤子n");y+; else printf("电脑win! 布:锤子n");n+; br
17、eak; while(r=dn); while(r='j'|r='b'|r='c'); void continumenu();/继续游戏子菜单continue to game/#include <stdio.h>void main()int choice=1;while(1)int clrscr();printf("#=#n");printf("# welcome to guessnum program #n");printf("#=#n");printf("# 1
18、.to start game #n");printf("# 2.to browse the sort by scor #n");printf("# 3.to browse the sort by name #n");printf("# 4.to view the help #n");printf("# 5.to clear the sort #n");printf("# 0.exit #n");printf("#=#n");printf("please i
19、nput you choice here:");scanf("%d",&choice);switch(choice)case 1:startprogram();break;case 2:sortbyscore();break;case 3:sortbyname();reak;case 4:printhelp();break;case 5:clearsort();break;case 0:exit(0);break;default:printf("select error!npress any key to countinue.");ff
20、lush(stdin);getch();break;/#include "stdio.h"void readrecord()file * fp;player temps;player min;min.score=11;功能:主要是起调用作用,显示继续游戏子菜单界面!(提示数据技术原因未制作)void continumenu()/猜拳游戏继续游戏子菜单函数getchar();system("cls");printf("nnn");printf(" |* * * * * * * 继续游戏 * * * * |n");/#
21、include "stdio.h"void readrecord()file * fp;player temps;player min;min.score=11;/* 打开记录保持文,如果不能以读方式打,说明记录不存在,则他建记录,写入文件 */if(fp=fopen("record","rb")=null)int setrecord();/* 调用初始化记录函数 */fp=fopen("record","rb");/* 循环读取文件,取得最少猜中次数的记录 */while(fread(&
22、;temps,sizeof(player),1,fp)!=(int)null)if(temps.score<min.score) /* min.score初始值为11 */strcpy(m,temps.name);min.score=temps.score;fclose(fp);printf("the recore keeper is %s,guessed out in %d timesn",m,min.score);void setrecord()player pro;file *fp;/* 给初始记录赋值 */strcpy(pro.na
23、me,"player");pro.score=10;/* 初始化文件,即创建文件,写入第一条记录 */if(fp=fopen("record","wb")=null)printf("file open errorn");if(fwrite(&pro,sizeof(player),1,fp)!=1)printf("file write errorn");fclose(fp); 第3章 课程设计总结此程序设计的实验是对我进入大学以来学习程序设计语言成果的一个检验。自己动手,自己发现和解决问题,学会了独立,自主的思考,发现了自己的许多不足。平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考物理复习主题单元4第8课时熟悉而陌生的力课件
- 冀少版八年级生物上册第三单元第二节蒸腾作用课件
- 等高线地形图教案
- 《蚂蚁搬豆》体育游戏
- 人教版一年级数学上册【教案全册】
- 旅游景区酒店建设承揽
- 西师版五年级语文上册教案
- 人教版三年级语文上册教案
- 乐器制品标识制度
- 老年护理中心财务流程
- 工程图学(天津大学)智慧树知到期末考试答案章节答案2024年天津大学
- 2024年山东省高考生物试题答案
- 2024年廉洁知识测试卷附答案
- 当代社会政策分析 课件 第十一章 残疾人社会政策
- 洽谈会活动方案策划书
- 幼儿园大班健康教案《养成好习惯》
- 古典概型与几何概型(文科)-2024高考数学复习含解析
- 房地产经营与管理-形考作业三-国开(HB)-参考资料
- 普法学法知识竞赛题库(完整版)
- 2024-2029年中国化妆品喷雾行业市场现状分析及竞争格局与投资发展研究报告
- 医德医风培训课件图文
评论
0/150
提交评论