C语言课题设计报告(猜数字游戏).doc_第1页
C语言课题设计报告(猜数字游戏).doc_第2页
C语言课题设计报告(猜数字游戏).doc_第3页
C语言课题设计报告(猜数字游戏).doc_第4页
C语言课题设计报告(猜数字游戏).doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课 程 设 计 报 告课程名称 C 语言课程设计 课题名称 猜数字游戏 专 业 电气工程及其自动化 班 级 1183 学 号 13 姓 名 鲁响 指导教师 王颖 2012年 6 月 25 日湖南工程学院课 程 设 计 任 务 书 课程名称 C语言程序设计 课 题 猜数字游戏 专业班级 电气1183 学生姓名 鲁响 学 号 201113010313 指导老师 王 颍 审 批 任务书下达日期 2012 年 6月 1 日 任务完成日期 2012年 6月25日前言C语言程序设计课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,课程设计的课题比平时的习题复杂得多,也更接近实际。课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。学习委员将课程设计报告与磁盘收齐后交指导老师。一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。二、设计要求掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。1. 设计正确,方案合理。2. 界面友好,使用方便。3. 程序精炼,结构清晰。4. 设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。5. 上机演示。6. 按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。源程序及编译生成各文件均保存在软盘中;7. 按本任务书的要求,按附录的要求编写课程设计报告(Word文档格式)。并用A4的复印纸打印并装订; 8. 在2012年6月22日之前,请各班学习委员收齐课程设计报告和源9. 序软盘交王颖老师。三、进度安排第一周 星期四: 课题讲解,查阅资料第二周星期一: 总体设计,详细设计 星期二: 编程,上机调试、修改程序星期三:上机调试、完善程序星期四:上机调试、完善程序星期五: 答辩星期六-星期天:撰写课程设计报告目录一.设计课题:猜数字游戏1.问题描述.12.功能要求.13.算法提示.14.测试数据.15.其它.2二.课题设计报告第一章 绪论.3第二章 需求分析. .4 1.系统概述.4 2.功能要求描述. .4 3.各个函数的主要功能.5第三章 总体设计. .6 1.模块设计.6 2.程序的模块组成.7 3.系统的总体框图. .7第四章 详细设计.9 1.相关的数据类型.9 2.函数间的调用图.9 3.流程图. .10第五章 程序的调试. . 11 1.调试分析.11 2. 使用说明.11 3. 运行结果截屏及说.12第六章 总结. . .16第七章 附件.191.源程序.192.参考文献. . .36 3.评分标准.37设计课题:猜数字游戏1.问题描述:该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。A表示位置正确且数字正确,B表示数字正确而位置不正确。2.功能要求:1、本游戏显示这样的菜单:(1) 随机产生数据(2) 用户输入数据(3) 退出游戏2、游戏成功与否都能返回主菜单3.算法提示:1、 数据结构:数组2、 用简单的程序设计方法4.测试数据:测试数据: 3792第一次输入: 12340A2B第二次输入: 5678 0A1B第三次输入: 0867 0A1B第四次输入: 9786 1A1B第五次输入: 1794 2A0B第六次输入: 2793 2A2B第七次输入: 37924A0B游戏成功!5.其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:破记录功能,若你所匹配的次数小于纪录保持者,则为破纪录。调用积分函数,若你一次完成,则记录7分,若你2次完成则记录6分,一次类推,大于8次则不记录分数.课题设计报告:第一章绪论C语言程序设计课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,课程设计的课题比平时的习题复杂得多,也更接近实际。课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。学习委员将课程设计报告与磁盘收齐后交指导老师。 第二章 需求分析猜数字游戏是一个运行在Windows平台下的小型游戏软件,依据猜数字游戏的基本规则,给用户进行成绩排行,在排行榜中排出前五名玩家的游戏记录,并可以随着玩家的游戏记录进行更新。1.系统概述该软件在Windows系统上为玩家提供猜数字游戏的基本功能,游戏用户可以选择开始游、排行榜查看、帮助等主要功能。当用户选择开始游戏时,系统会提示用户排行榜上猜数字成绩的最好记录,并让用户逐次猜数字,用户每次猜数字后系统会给出本次猜数字的结果提示,如位置和数字都正确的数字个数、数字正确介位置不正确的数字个数。如果用户猜数字的次数超过8次,则提示用户游戏失败,如果在8次之内猜出4个数字和正确的顺序,则提示用户猜数字成功,并到排行榜中进行比较,如果排名在前一名,则计入排行榜中,以便其他用户查看。在排行榜查看功能中,用户可以查看当前的游戏排行,排行榜中总共显示5名玩家的排行,如有新的记录产生,则插入到排行榜中,并把排行榜中位次最末的记录挤出排行榜。在帮助模块,用户可以查看游戏规则,当熟悉规则后可以退出帮助模块。2.功能需求描述猜数字游戏软件的总体目标是按照特定游戏规则为用户提供一个方便友好的游戏界面,同时给用户提供排行榜的功能使用户能够按照特定的目标提高自己的成绩,并且提供相应的帮助功能。游戏规则如下。游戏软件随机产生4个数字,但不显示,给用户提供输入提示符,让用户猜4个数字的值和位置顺序。如果数字值和位置顺序均正确,则猜数字成功。玩家有8次猜数字的机会,如果在8次之内仍末猜出正确的数字值和数字位置顺序,则提示用户游戏失败。一旦玩家在8次的次数限制内猜出正确的数字值和位置顺序,则赢得游戏。当玩家赢得游戏后,会与排行榜中的前五名玩家的游戏记录比较,如果排名能够进入前五名,则更新排行榜,使当前玩家成为入榜选手。记分规则:猜数字所用次数即为分数,所以分数越少证明玩家水平越高,排行榜中也是排列份数最少的前五名选手。本游戏软件需要实现以下一些基本功能。游戏区:玩家可以在游戏区逐次猜数字,系统给出玩家每次猜数字后的提示,包括数值、位置均正确的数字个数和数值正确但位置不正确的数字个数。刷新排行榜:当玩家成功完成一轮猜数字游戏后,可通过和排行榜中相应记录的比较判断玩家是否可以进入排行榜,进入排行榜的资格游戏成绩在前五名的玩家。查看排行榜:玩家可以查看当前排行榜中的排名顺序,从而确定自己的游戏目标。排行榜的查看按一定顺序显示给用户,便于查看。清除排行榜:玩家可以选择清除排行榜功能,使得排行榜上的玩家姓名和玩家游戏记录从系统中清除,只留下系统默认的玩家名(player)和系统默认记录8次。帮助:玩家通过帮助功能了解游戏规则和排行榜设置规则。 退出:玩家想结束并退出游戏系统。3.各个函数的主要功能: 随机产生4个数的函数: 随机产生4个数字。 randomize()是c函数库提供的一个函数,功能给产生随机数的进行初始化清除文本模式窗口第三章 总体设计 在前面对猜数字游戏进行需求分析的过程中,已经初步明确了系统的主要功能模块和用户需求,下面将在总体设计的过程中,给出猜数字游戏的模块结构、流程描述以及界面布局,并使得系统的总体设计符合软件工程中总体设计的基本原则。开发与设计的总体思想 猜数字游戏是一种大众娱乐游戏,开发与设计的重点在于游戏供玩家进行猜数字游戏的原始数字的产生和用户每次进行猜数字操作之后的游戏提示,这两方面的规则设计往往决定了软件运行的正确性和质量。1.模块设计:1)游戏区模块 该模块为玩家提供猜数字游戏的主休功能,由系统自动产生4个随机排列的整数,并给用户8次机会猜测数字的数值和排列顺序。如果用户在8次之内没有猜出正确的结果,则提示用户游戏失败,否则提示用户猜数字成功,并调用产生新记录模块对玩家游戏成绩进行处理。(因精力有限且只能用画图来画个框架,所以就不再有图了) 产生原始数字:由系统产生4个随机数,并按任意顺序排列,作为游戏的原始数字供玩家进行猜数字游戏。 游提示:提示用户数值和位置全对的数字个数,和只有数值但位置不对的数字个数。 原始数字显示:当用户在8次之内仍未能猜出原始数字和顺序时,系统提示玩家失败,并给玩家显示出原始数字和顺序。2)排行榜模块 该模块为玩家提供排行榜的浏览和清除功能,包括按玩家成绩顺序浏览、按玩家姓名浏览和清除排行榜3个子功能。 按玩家成绩顺序浏览子功能中,将玩家的姓名、游戏成绩按猜数字次数从少到多的顺序列表显示,即将玩家记录从高到底显示。 按玩家姓名浏览的子功能中,为了玩家便于查找到自己的游戏成绩,将玩家的姓名和猜数字次数记录按照玩家姓名的字母顺序列表显示。 清除排行榜:当用户选择清除排行榜功能时,系统会将所有玩家的历史游戏记录和玩家姓名一起从排行榜中清除,在排行榜中只留下默认的游戏记录和默认的玩家姓名,即系统默认玩家姓名player和系统默认记录8次。3)产生新记录模块 该模块的功能是当玩家成功完成游戏时,判断用户可否进入排行榜,如果可以进入,则刷新排行榜中的记录,将当前玩家的游戏记录写入排行榜,并将排行榜目前结果显示给用户。4)读取最好记录模块读取最好记录模块的主要功能是当用户选择游戏开始选项时,首先提示用户目前排行榜中的最游戏记,如果目前没有排行的玩家记录,则初始化排行榜,给出系统默认的玩家姓名和默认的游戏记录。如果目前排行榜中有玩家记录,则判断出最好记录显示给用户。5)帮助模块 帮助模块提供的功能是当玩家选项为帮助功能对应的选项数字时,进入帮助模块,给出用户猜数字的游戏规则和游戏中相关提示的含义。数据结构设计 猜数字游戏软件涉及到对玩家信息和排行榜的操作。为将玩家的姓名和游戏成绩描述成一个玩家的两个重要方面,使用C语中的结构体来描述 2.程序的模块组成: 主函数: int main() 创立结构体:struct p1() 使数字产生循环: int rand1() 调用读取破记录: goread()输入数字: void input1();初始化随机数发生器:getnumber() 清除文本模式窗口:clrscr(); 读入字符串的时候,直到回车为止 :gets() 3.系统的总体框图开始功能菜单显示开始游戏退出清除排行榜查看排行榜 帮助刷新排行榜readrecordresertracordStartprogramexitclearsorthelp 图3-1第四章 详细设计1.相关的数据类型:#include#include#include#includevoid rand2();int rand1();void input1();void compare1();int i,j,k,c,d,b4;char a24;将数字定义为整型2.函数间的调用关系图如下:显示玩家积分函数:display()新记录者函数;breakrecord()随机产生4个数函数;getnumber(_)记录积分函数:record()主函数;int main()初始化记录者函数;newest()自定义清屏函数my clear()读取破纪录者函数:goread() 图 4-13.流程图 比较输入的数和随机生成的数.给出提示.A表示数对位置也对,B表示数对位置不对1 Main()纪录判断结果和积分you are right退出输入记录名字输入四位不相同的数字,如果输入的不是数字或者输入的数字有重复,则重新输入退出恭喜正确查看积分 图 4-2第五章 程序的调试1.调试分析;输入的游戏玩家人数太多时,屏幕显示不能控制为一页一页显示,所以为了方便起见,不要输入太多记录,十七左右为最佳。刚开始执行输入函数,按数字顺序输入,输完后执行显示功能,数字、字母的位置显示不对,试着在其中增加一些语句,希望能把所需结果按正常顺序显示,但暂时没有成功,最后在老师的帮助下,所需结果能按正常顺序输出了。在前面对猜数字游戏进行需求分析的过程中,已经初步明确了系统的主要功能模块和用户需求,下面将在总体设计的过程中,给出猜数字游戏的模块结构、流程描述以及界面布局,并使得系统的总体设计符合软件工程中总体设计的基本原则。开发与设计的总体思想 猜数字游戏是一种大众娱乐游戏,开发与设计的重点在于游戏供玩家进行猜数字游戏的原始数字的产生和用户每次进行猜数字操作之后的游戏提示,这两方面的规则设计往往决定了软件运行的正确性和质量。同时,要谨记调试失败的原因,以免下次犯同类错误。2.使用说明:系统为玩家提供猜数字游戏的主休功能,由系统自动产生4个随机排列的整数,并给用户8次机会猜测数字的数值和排列顺序。如果用户在8次之内没有猜出正确的结果,则提示用户游戏失败,否则提示用户猜数字成功,并调用产生新记录模块对玩家游戏成绩进行处理。猜数字游戏软件的总体目标是按照特定游戏规则为用户提供一个方便友好的游戏界面,同时给用户提供排行榜的功能使用户能够按照特定的目标提高自己的成绩,并且提供相应的帮助功能。游戏规则如下。游戏软件随机产生4个数字,但不显示,给用户提供输入提示符,让用户猜4个数字的值和位置顺序。如果数字值和位置顺序均正确,则猜数字成功。玩家有8次猜数字的机会,如果在8次之内仍末猜出正确的数字值和数字位置顺序,则提示用户游戏失败。一旦玩家在8次的次数限制内猜出正确的数字值和位置顺序,则赢得游戏。当玩家赢得游戏后,会与排行榜中的前五名玩家的游戏记录比较,如果排名能够进入前五名,则更新排行榜,使当前玩家成为入榜选手。记分规则:猜数字所用次数即为分数,所以分数越少证明玩家水平越高,排行榜中也是排列份数最少的前五名选手。本游戏软件需要实现以下一些基本功能。游戏区:玩家可以在游戏区逐次猜数字,系统给出玩家每次猜数字后的提示,包括数值、位置均正确的数字个数和数值正确但位置不正确的数字个数。刷新排行榜:当玩家成功完成一轮猜数字游戏后,可通过和排行榜中相应记录的比较判断玩家是否可以进入排行榜,进入排行榜的资格游戏成绩在前五名的玩家。查看排行榜:玩家可以查看当前排行榜中的排名顺序,从而确定自己的游戏目标。排行榜的查看按一定顺序显示给用户,便于查看。清除排行榜:玩家可以选择清除排行榜功能,使得排行榜上的玩家姓名和玩家游戏记录从系统中清除,只留下系统默认的玩家名(player)和系统默认记录8次。帮助:玩家通过帮助功能了解游戏规则和排行榜设置规则。 退出:玩家想结束并退出游戏系统。1)打开程序:2)进入选择页面:(1)选择1为查看记录(2)选择2为新游戏(3)选择0为退出3)进行游戏4)退出3.运行结果截屏及说明:游戏初始画面图 5-1选择一进入游戏系统随机显示四个数字提供让游戏者猜测:图5-2如果连续四次输入错误将出现如下结果,并出现提示:图5-3选择四进入帮助显示结果图5-4如果继续则可以输入姓名并保存记录如果按任意键则返回首页:图5-5第六章 总结其实,以前参加过C语言培训,但是没什么效果。没有像老师这么细心的辅导我们,没有这么系统的学习。所学东西都是针对于2级考试而言的,没有实用性。但是经过这个学期C语言的学习,对这门课程有了新的认识,其实,它对我们以后的工作(设计之类)有很大的帮助。所以我们要认真学习好老师教给我们的知识,活学活用,举一反三。C语言课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。在如今高度计算机化的社会下,电脑编程在计算机领域已尤为重要,扮演着一个不可或缺与替代的角色。经过一周的C语言课程设计,我不但实践了课本的知识,还制作了自己的小程序,更重要的是自己对C语言有了更深入的了解。在实践中,深刻体会到只有经过调试程序,我们才能掌握正确的语法知识及把解决问题的方法用程序语言来表达。在设计程序的过程中不仅使我掌握了c语言程序设计基本技能,同时也增长了翻阅有关文献的能力,加强了实践能力及自学能力,培养了分析问题 和解决问题的能力。1.设计过程的感受与体会学完了C语言理论课,接下来就是要学以致用,否则个人认为学什么都没有意义,第二学期初开设了课程设计,为做好此设计,在老师的指导下,我和搭档开始我们初次应用C语言设计自己的第一个应用系统。在进行课程设计之前几天,不知从何入手,一脸茫然。为什么呢?因为我们想自己自己做出来而不参考任何资料,以为这样才可体现我们的智慧和能力,其实这是大错特错的。当然也不是一味强调自己动脑自己做出来不好,从开发方面角度来说是可以的,有些东西也并不是一味的照搬照抄。抱着这样的态度迷茫了三四天只想出了一丁点大至结构。最后决定上网找资料,不查不知道,一查大吃一惊,不但自己的想法网上比比皆是,比自己的想法更完美更合理的多得看都看不完。此时真是自愧不如,如早从网上借鉴,集大家之所成,加上自己的修改完善,早已做出了更好的系统结结构和想法了。现在才知道,一个人的智慧敌不过千万人智慧的集成,能借鉴的尽量借鉴,然后再修改完善,增加自己所需的功能,做出自己的特色。伟大的物理学家牛顿不也说过他之所以成功是站在伟人的肩上吗?完成设计后,我觉得收获不少,首先是自己首次应用所学知识做出了这个通讯录系统,以前从未做过这样大(这是对我而言,在专业人仕看来是小菜一碟)的程序,多少心里有点甜美的感觉;而收获更大的是让我学到了怎样和他人合作完成一件任务,以及在完成的过程中如何沟通。完成设计是在一定时间内完成的,在完成这个设计时,我们做得显然有一些紧迫,我想是没合理安排好时间和开始态度不正确所致,做守完后我觉得合理安排时间是非常重要的否则可能时间已到而还无法完成或完成得仓促,应合理安排时间给各个环节。因暑假自学了双向链表,本想用双向链表实现(用单向链表在查存功能只能沿一方向查存,用静态数组则需先分给空间,浪费资源,而且录入的数据是有一定限制,这也是这个通讯录系统的最不完善的地方),但由于时间的限制而无法完成。不如意的地方是人生的常事,但只要曾经尽力过就好。我想只能用这样的话来稀释心中的遗憾吧。2.遇到的问题与解决方法在设计过程中,首先要解决的是自己完成还是和同学合作完成,因为这个通讯录系统并非一个大型系统,自己做比与人合作易得多,省了不少协商讨论。但最后决定还是与同学合作,因将来走上社会工作,往往是多人合作来完成一个大项目,而不是单打独斗。因此更重要的是要学会合作。选择了与同学合作,就先要分工和协商,共同探讨,但开始担心的是各人每个模块完成后怎样合成一个完整成功的程序,这考虑了两天(毕竟是第一次合作完成一个任务),最后决定数据结构我们都必需清楚,而我们不必去弄懂对方分到的功能模块是怎样实现的,否则变成与独自完成无甚区别,只关心对方的函数模块接收什么数据,处理后返回什么数据即可。3.创新在设计期间,一位朋友告诉我他换号码了,我拿起手机打开通讯录修改号码,此时我想,何不在程序中加入修改信息的功能呢?由于录入的记录不是一成不变的,如某朋友换了联系电话,或某人换了住址等,这就有必要对已存在的记录的某些信息作修改。主要特色在于用了嵌套循环,内循环用于更换不同的记录中的信息修改,用switch实现,外循环用于更换不同对象进行修改case5用break语句结束内循环,case6令ch=6用于退出此函数,这是由于内外循环的结束条件都有ch=6。当需要显示对象时,如有时需找到和自己有某种特定关系的对象的信息时,需要把通讯录里要找的和自己有某种特定关系的所有记录显示出来,我就用了relat()按关系查找函数把此功能也加了进去。这样,使程序更实用和用起来更方便。 想起这次课程设计的这些日子,至今我仍感慨颇多。以前上课时学的都是一些最基本的东西,觉得很枯燥无味。但当自己能把所学的知识转换为有用的东西时,心中却不知何时有了一种莫名的动力,在电脑前面一坐就是好几个小时。或许这就是有压力才有动力吧!在整整一星期的日子里,面对一件新事物,从理论到实践,可以说是苦多于甜。这一周的课程设计,不仅使我巩固了以前所学过的知识,更使我获得了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从实践中得出结论,才能真正掌握好所学知识,才能够实现理论到使用的升华!毕竟这是我进行的第一次课程设计,所以在该过程中遇到问题,可以说是数不胜数。此外,在设计的过程中发现了自己对以前所学过的知识理解得不够透彻、掌握得不够牢固的不足之处。好的学习方法在学习中很多时候都起着至关重要的作用!尤其是在这次课程设计过程中,深深地体会到,善于总结是学习过程中不可缺少的重要的一个环节。每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的调试和运行状况,随时总结,找到自己的错误与不足之处,这样所编写的程序才能逐步提高。就如生活那样,汗水预示着结果也见证着收获。直到实际动手做,我才真正领略到“一份耕耘,一份收获。”这一句话的真正含义。这次的c语言设计,对我们而言,知识上的收获重要,但是在一个团队间的团结合作的幕幕更让我们记忆终生。挫折是一份财富,经历是一份拥有。虽然这些日子很短暂但我相信这次实际操作必会成为我人生路上的一段美好的回忆!最后我想对给过我帮助的所有同学和各位指导老师表示忠心的感谢!第七章附录1源程序#include #include #include#include int a5,b5,n1,n2,n3,i,j;/* a,b,只用了从14的四个下标. */* n1计算位置数字相同的数字个数 */* n2计算数字相同但位置不相同的数字个数 */* n3计算所猜次数 */char ch;void StartProgram()int ReadRecord(); /*调用读取破记者函数 */n1=0;n3=0;int getnumber();/*调用随机产生4个数的函数*/for(j=i-1;j=1;j-)printf(%d ,aj); getchar();printf(nnnnn);/* 循环猜数 */while(n14&n310)+n3;n1=0;n2=0;/* 提示用户输入四个要猜的4位整数 */ for(i=1;i=4;i+) printf(ninput the NO.%d number:,i); scanf(%d,&bi);for(i=1;i=4;i+)if(ai=bi)/* 位置数字都对的 */n1+;continue;for(j=1;j=10)printf(You blew it ,the answer is %d,%d,%d,a1,a2,a3,a4);else printf(Configrafulastions!You finish it by %d timesn,n3);int ResetRecord(n3);printf(press any key to continue.n);fflush(stdin);getch(); void getnumber()/* 随机产生四个数的函数 */ int randomize(); /* 产生随机数的初始化函数 */for(i=1;i=1;j-)if(ai=aj) goto loop2; #ifndef PLAYER#define PLAYER/#include /#include #include #define SIZE 5typedef structchar name20;/* field of name */int score;/* field of score */player;#endif#/* SortByName按游戏成绩排序 */#include void SortByName()int i,j,k;player TempS;/* 定义进行操作时的临时结构体变量 */player s5;/* SIZE在score.h头文件中定义的常量,值为5 */int recNumber=0;char DataFile10=record;FILE *fp=NULL;int clrscr();/* 以读的方式打开文件,如文件不存在,提示错误 */fp=fopen(DataFile,rb);if(fp=NULL)printf(nOpen file %s fial !End with any key.n,DataFile);perror(Open file fail);fflush(stdin);getch();return; /* 将文件中要排序的信息存入结构体数组 */while(fread(&srecNumber,sizeof(player),1,fp)!=(int)NULL)recNumber+;fclose(fp);/* 如果文件中有记录,则将各记录按游戏成绩值排序 */if(recNumber1)for(i=0;irecNumber-1;i+)k=i;for(j=i+1;j0) k=j;if(k!=i)strcpy(TempS.name,);TempS.score=sk.score;strcpy(,);sk.score=si.score;strcpy(,TempS.name); si.score=TempS.score; /* 将排序好的记录写入文件 */fp=fopen(DataFile,wb+);if(fp=NULL)printf(nOpen file %s fial!End with any key.n,DataFile); perror(Open file fail); fflush(stdin); getch(); return;for (i=0;irecNumber;i+)if(fwrite(&si,sizeof(player),1,fp)!=1)printf(nwrite file %s fail!End with any key.n,DataFile);perror(write file fail);fflush(stdin);getch();return;fclose(fp);/* 显示排序后的文件 */printf(the players score as folow:n);fp=fopen(DataFile,rb);if(fp=NULL)printf(nOpen file %s fial!End with any key.n,DataFile);perror(Open file fail);fflush(stdin);getch();return;printf(nNamettscoren);while(fread(&TempS,sizeof(player),1,fp)!=(int)NULL)printf(%stt%dn,TempS.name,TempS.score);fclose(fp);printf(press any key to continue.);fflush(stdin);getch();/ #include /* 显示帮助信息 */void PrintHelp()int clrscr();printf(n);printf(+-+n);printf(+ you hava 10 opport

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论