




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计综合课程设计PAGEPAGE1课程设计的目的和要求课程设计的目的:用高级程序语言设计出猜数字游戏系统,实现猜数字游戏。通过用高级程序语言制作程序,熟悉用高级程序语言编程的操作和步骤,学习高级程序语言的运用,以及高级程序语言实验报告的书写格式。课程设计的要求:只能使用高级程序语言,源程序要有适当的注释,使程序容易阅读;至少采用文本菜单界面;建议使用结构体和链表等数据结构;学生可自动增加新功能模块;写出课程设计报告,具体要求见相关说明文档。课程设计任务内容总体目标:猜数字游戏软件的总体目标是按照特定游戏规则为用户提供一个方便友好的游戏界面,同时给用户提供排行榜的功能使用户能够按照特定的目标提高自己的成绩,并且提供相应的帮助功能。游戏规则如下:游戏软件随机产生4个数字,但不显示,给用户提供输入提示符,让用户猜4个数字的值和位置顺序。如果数字值和位置均正确,则猜数字成功。玩家有10次猜数字机会,如果在10次之内仍未猜出正确的数字和位置顺序,则提示用户游戏失败。一旦玩家在10次的次数限制内猜出正确的数字和位置顺序,则赢的游戏。当玩家赢得游戏后会与排行榜中的前五名玩家的游戏纪录比较,如果排名能够进入前五名,则更新排行榜,使当前玩家成为入榜选手。计分规则:猜数字所用次数即为分数,所以分数越少证明玩家水平越高,排行榜中也是排列分数最少的前五名选手。基本功能:本游戏软件需要实现以下一些基本功能:游戏区:玩家可以在游戏区逐次猜数字,系统会给玩家每次猜数字后的提示,包括数值,位置均正确的数字个数和数值正确,但位置不正确的数字个数。刷新排行榜:当玩家成功完成一轮猜数字游戏后,可以通过和排行榜中相应记录的比较判断玩家是否可以进入排行榜,进入排行榜的资格是游戏成绩在前五名的玩家。查看排行榜:玩家可以查看当前排行榜中的排名顺序,从而确定自己的游戏目标。排行榜的查看按一定的顺序显示给用户,便于查看。清除排行榜:玩家可以选择清除排行榜功能,使得排行榜的玩家名字和玩家游戏的记录从系统中清除,只留下系统默认的玩家名(player)和系统默认记录10次。帮助:玩家通过帮助功能了解游戏规则和排行榜设置规则。详细设计说明程序设计思路:猜数游戏的目标是按照设定的游戏规则为玩家提供一个简单而愉快的游戏界面,同时给玩家一些特定的功能,便于更好的使用该游戏软件。在对本程序的实现过程中,将各个功能分别由不同的函数来实现,从而完成了对本程序的模块划分。该游戏共分为4个模块,分别是游戏模块,查询模块,帮助模块,退出模块。围绕这4个模块,大量函数,互相调用,如:StartProgram();SortByName();PrintHelp();等等,还用了大量的文件指针,文件的读写与存储。本程序在实现游戏的基本功能同时,还提供了查询与帮助的功能,因此玩家可以更好的适应这个游戏,也达到了设计这个游戏的目的了。而设计的重点在于随机数字的产生与游戏的提示,这两个方面的设计决定了程序运行的正确性和质量。主程序模块结构示意图:猜数字游戏猜数字游戏游戏界面按玩家成绩浏览排行榜排行榜按玩家姓名浏览排行榜排行榜清除排行榜帮助模块主程序模块图函数流程图:开始功能选择开始功能选择游戏按成绩浏览排行榜按姓名浏览排行榜帮助结束清除记录总流程图开始游戏开始游戏显示排行榜最好成绩随机产生四个数字是否10次之内玩家猜数字是是否成功否提示成功是否成功否提示成功是产生新记录提示玩家游戏失败是产生新记录菜单界面退出结束游戏流程图软件使用说明软件使用说明:本程序的运行环境为DOS操作系统,执行文件为:猜数字.exe;进入演示程序后,即显示主菜单界面,如图所示:用户输入相应命令的数字;游戏部分:用户按提示分别输入4各不相同的数字,两个数字间用“空白键”隔开,每行结束符为“回车符”。软件运行界面:游戏界面按玩家姓名浏览排行榜按玩家成绩浏览排行榜帮助选项课程设计心得与体会课程设计是本科学习阶段一次非常难得的理论与实际相结合的机会,通过这次比较完整的一个程序的设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我的综合运用所学的基础知识,解决实际问题的能力,同时也提高我查阅文献资料、对程序整体的把握等其他能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富。这是我们都希望看到的也正是我们进行课程设计的目的所在。虽然设计内容繁多,过程繁琐但我的收获却更加丰富。各种组件的运用,各种算法的应用,各种控件的利用我都是随着设计的不断深入而不断熟悉并逐步掌握的。和老师以及同学的沟通交流更使我对程序整体的规划与设计有了新的认识也对自己提出了新的要求。提高是有限的但提高也是全面的,正是这一次设计让我积累了许多实际经验,也必然会让我在未来的工作学习中表现出更高的应变能力和理解力。顺利如期的完成本次课程设计给了我很大的信心,但是也让多不足的地方,学习其实就是一个不断完善的过程,正视自己的不足之处,在以后的工作和学习中不断的弥补这些不足之处,在以后的生活中也要保持同样的态度,不断的完善自己。参考文献郭翠英主编的《C语言课程设计实例精编》;张芳妮吕波译《C语言编程常见问题解答》;谭浩强《C程序设计题解与上机指导(第二版)》。伍俊良.VB课程设计与系统开发案例[M].北京:清华大学出版社,2002程序清单#include"stdio.h"#include"time.h"#include"stdlib.h"#include"string.h"intw;structnode{charname[20];intscores;structnode*next;};voiddisplay(structnode*head);structnode*insert(structnode*head,structnodedata1);structnode*del(structnode*head,char*name);main(){structnode*head=NULL;/*structnodez=("king",10);*/structnodepeople[5]={{"booshi",6},{"bulaie",5},{"jiabao",1},{"jintao",3},{"pujing",2}};//已存档的用户得分情况intz=1;inta[4],b[4];intcommand,m,n,i,j,f,g;intk=0,t=0;charstr[8],str1[8]="king";structnodecharu;structnodemoren;while(1&&z){printf("==================GeussTheNumber=========================\n");printf("1.NewGame2.Scanlistbyscore\n");printf("3.Scanlistbyname4.ClearList\n");printf("5.Hlep6.Exit\n");printf("===============================================================\n");printf("Pleaseenterthecommand:");scanf("%d",&command);if(command==6)z=0;//scanf("%d",&command);switch(command){case1:{for(g=0;g<=4;g++)head=insert(head,people[g]);printf("thebestoneis%s,%d\n",head->name,head->scores);srand((unsigned)time(NULL));do{m=0;for(m=0;m<4;m++){a[m]=rand()%10;}}//随机产生四个数字while(!(a[0]!=a[1]&&a[0]!=a[2]&&a[0]!=a[3]&&a[1]!=a[2]&&a[1]!=a[3]&&a[2]!=a[3]));//前提条件,四个数字各不相同for(m=0;m<4;m++)printf("%d",a[m]);printf("\n");for(n=1;n<=10;n++){printf("pleaseinputfournumbers(0-9):\n");for(f=0;f<4;f++)scanf("%d",&b[f]);//按提示输入四个数字for(i=0;i<4;i++)for(j=0;j<4;j++){if((j==i)&&(b[j]==a[i]))k++;elseif(b[j]==a[i])t++;}printf("youhavetried%dtimes\n",n);printf("%dA%dB\n",k,t);//输出游戏提示信息if(k!=4)k=0,t=0;else{printf("goodjob!\n");printf("pleaseinputyourname:");scanf("%s",str);strcpy(,str);charu.scores=n;head=insert(head,charu);display(head);system("pause");break;}}}//游戏模块case2:w=0;for(g=0;g<=4;g++)head=insert(head,people[g]);display(head);printf("\n");system("pause");break;//按玩家得分查看排行榜case3:w=1;for(g=0;g<=4;g++)head=insert(head,people[g]);display(head);printf("\n");system("pause");break;//按玩家姓名查看排行榜case4:strcpy(,str1);moren.scores=10;printf("thelistisempty!\n");head=insert(head,moren);display(head);system("pause");break;//清除排行榜case5:printf("welcometothegame,youhavetentimestoguess\n");printf("thenumbersthesystemgiven,ifyougetthe\n");printf("rightnumberscongradulationstoyou,ifnot,\n");printf("donotloseyourconfidence,tryagain,youmakeit!\n");system("pause");break;//帮助模块case6:printf("gameover!\n");system("pause");break;}}}voiddisplay(structnode*head){intg,a1=0;structnode*p;if(head==NULL)printf("\nnotdisplay!");else{p=head;while(p!=NULL&&a1<5){printf("%s,%d\n",p->name,p->scores);p=p->next;a1++;}}}structnode*del(structnode*head,char*name){structnode*p,*q;if(head==NULL)printf("emptytable,notdelete!");elseif(strcmp(head->name,name)==0){q=head;head=head->next;free(q);}else{p=head;while((p->next!=NULL)&&(strcmp(p->next->name,name)!=0))p=p->next;if(p->next!=NULL){q=p->next;p->next=q->next;free(q);}elseprintf("noname\n");}return(head);}structnode*insert(structnode*head,structnodedata1){structnode*s,*p;s=(structnode*)malloc(sizeof(structnode));strcpy(s->n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 斧凿混凝土外墙施工方案
- 台山屋顶清洗施工方案
- 水库高温施工方案
- 危险性专项施工方案
- 漯河管井降水施工方案
- TSHJMRH 0063-2024 在用润滑油颗粒污染度的测定 光阻法
- 家长会安全发言稿
- 2025年度股份转让过程中税务筹划及优惠政策合同
- 二零二五年度关于协议作废纠纷的调解与赔偿协议
- 二零二五年度夫妻共同维护家庭和谐与子女幸福感协议书
- 中小学校2025年“学雷锋月”系列活动方案:践行雷锋精神绽放时代光芒
- 2025年湖南信息职业技术学院单招职业技能测试题库及参考答案
- 2025年湖南司法警官职业学院单招职业技能测试题库学生专用
- 2025年湖南工业职业技术学院单招职业技能测试题库审定版
- 监狱生产安全
- 人教版高一下英语单词表
- 如何做好实习生带教
- 2025年慢性阻塞性肺疾病全球创议GOLD指南修订解读课件
- 《PLC应用技术(西门子S7-1200)第二版》全套教学课件
- 初中语文现代文阅读训练及答案二十篇
- 新《铁路劳动安全》考试题库500题(含答案)
评论
0/150
提交评论