C语言猜数游戏实验报告.docx
《C语言猜数游戏实验报告.docx》由会员分享,可在线阅读,更多相关《C语言猜数游戏实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
![C语言猜数游戏实验报告.docx](https://file1.bdocx.com/fileroot1/2023-2/21/7fdda78e-aa55-4989-98bb-272c8a06e8cd/7fdda78e-aa55-4989-98bb-272c8a06e8cd1.gif)
C语言猜数游戏实验报告
一、课程设计的目的...........................................2
二、设计的内容与要求.........................................2
三、总体设计.................................................2
四、详细设计.................................................3
五、调试与测试...............................................9
六、课程设计的总结...........................................12
七、附录.....................................................13
在本次的课程设计中,由我和肖玉闫合作完成,我主要负责编写程序。
对于流程图我主要负责:
产生随机数函数,成绩判断函数,用户输入函数,排序函数,比较函数。
一、课程设计的目的
1.巩固和加深学生对C语言课程的基本知识的理解和掌握
2.掌握C语言编程和程序调试的基本技能
3.利用C语言进行基础的软件设计
4.提高运用C语言解决实际问题的能力
二、设计的内容与要求
1.随机产生一个五位数,且没有重复数字
2.猜数是给出大小提示
3.记录猜数的次数,最后给出评分
三.总体设计
(1)整个猜数游戏分为3个模块:
1.开始游戏;
2.帮助界面,介如何进行游戏;
3.退出游戏。
(2)算法描述:
1.主函数main():
清屏之后运行fun函数;
2.随机数函数rn():
产生一个没有重复数字的五位随机数;
3.排序函数choise():
对数组进行排序;
4.用户输入函数input():
用户可以输入一个五位数;
5.比较函数compare():
对用户输入的五位数与系统产生的五位数进行比较;
6.成绩函数grade():
根据用户输入的次数进行打分;
7.欢迎界面函数welcome():
打印出一个欢迎界面;
8.选择执行函数fun():
根据用户的选择来执行对应的功能;
四.详细设计
数据的组织描述,系统控制流程图,程序的代码的对应解释。
五,调试与测试
调试
1.在编程当中,由于要书写大量的程序,所以经常出现一些小错误;
2.对变量的定义有时会出现错误,比如将longint型写成int型;
3.最重要的是函数的应用,函数应该应用得当,否则会出现很大的错误。
测试
开始界面:
菜单:
六.课程设计的总结
通过这个课程设计,我们更加牢固的掌握了书本上的知识,并对于以前并不熟悉的知识有了更加深刻的了解。
在完成此次课程设计的过程中,虽然花费了大量的精力,但带给我更多的收获。
C语言是一门实践课,可以说只有自己亲手操作,才能感受到他的魅力。
此次编程设计中,涉及到许多书上没有的知识,而我通过此次设计掌握了这些知识。
输入与调试程序是相当枯燥的,但构思和完善程序的过程是相当有趣的,无论怎么样,当你亲手完成了一个程序时,还是相当有成就感的。
此次任务的完成,也体现了同学之间的团结精神,实践是检验真理的唯一标准,没有实践,就不会发现和深刻体会他的真实存在。
只有通过检验的真理,在自己的心里,才会认可他的真实性。
理论与实际的相结合才能真正把握所学和所掌握的知识。
同时培养了我们的团队精神,使我们懂得了团队的重要性。
在今后的学习工作中我们将会更好的发挥团队精神。
总的来说,C语言是一门非常有趣的学科,可以通过人为的设计而让电脑来辅助性的做一些机械的东西。
在今后的学习过程中,我也将更加的认真学习C语言,希望能在今后完成设计出一个属于自己的有意思的程序。
参考书目
[1]《标准C语言基础教程英文版》<第四版>[M],(美)布朗森着出版社:
电子工业出版社2006年
附录:
程序清单
#include
#include
#include
#include
inti;
longintrn();
voidfun();
voidgc();
intinput(longint);
voidgrade(int);
intwelcome();
intcompare(longint,longint);
voidchoise(int*,int);
voidmain()
{
system("cls");
printf("\n\n\n\t\t********welcome********");
printf("\n\n\n");
printf("\t\t\tmaker:
xiachaoxiaoyuyan");
printf("\n\n\n\t\t\tuseentertobecontinue");
getch();
fun();
}
voidfun()
{
intb,s,g;
longinta;
system("cls");
s=welcome();
if(s==1)
{
system("cls");
a=rn();
b=input(a);
grade(b);
gc();
}
if(s==2)
{
system("cls");
printf("\n\n\n\n\n");
printf("\t---------------------------------------------------------\n");
printf("\t|gamerules:
|\n");
printf("\t||\n");
printf("\t|inputyournumber(10000--99999),itwillcomparetothe|\n");
printf("\t||\n");
printf("\t|system'snumber(10000--99999),andthenumberdoesn'thave|\n");
printf("\t||\n");
printf("\t|samedigit.|\n");
printf("\t||\n");
printf("\t|ifyournumberassameassystem,yourwin,elsetryagain.|\n");
printf("\t||\n");
printf("\t---------------------------------------------------------");
gc();
}
if(s==3)
{
printf("\n\n\t\t\tThanksforyourusing.\n");
printf("\t\t\t\tByeBye!
");
getch();
exit(0);
}
}
longintrn()
{
intb,d;
longintc;
unsignedlonginta;
intarray[5];
time_tt;
time(&t);
srand(t);
loop1:
a=10000+rand()%90000;
c=a;
for(i=0;i<5;i++)
{
array[i]=c%10;
c=c/10;
}
choise(array,5);
b=array[0];
for(i=1;i<5;i++)
{
if(b==array[i])
gotoloop1;
else
b=array[i];
}
returna;
}
voidchoise(int*num,intn)
{
intj,k;
for(i=1;i{
k=num[i];
j=i-1;
while((j>=0)&&(num[j]>k))
{
num[j+1]=num[j];
j--;
}
num[j+1]=k;
}
}
intcompare(longinta,longintb)
{
intc;
if(a>b)
{
printf("\t\t\tneedgreater!
");
printf("(>%ld)\n",b);
c=0;
}
if(a
{
printf("\t\t\tneedless!
");
printf("(<%ld)\n",b);
c=0;
}
if(a==b)
{
printf("\t\t\tIt'strue!
\n");
c=1;
}
returnc;
}
intinput(longinta)
{
intc=0;
longintb;
printf("\n\n\n\n\n");
printf("\t\t\tpleaseinputyournumber:
\n");
printf("\t\t\tinput0backtomainmenu.");
loop2:
printf("\n\t\t\ttimes%d:
",c+1);
scanf("%ld",&b);
c++;
if(c>67)
{
printf("\t\tyouarelose!
");
gc();
}
if(b==0)
fun();
else
if(compare(a,b)!
=1)gotoloop2;
returnc;
}
voidgrade(intnum)
{
intgrade=0;
printf("\t\t\tyouuse%dtimes\n",num);
if(num<4)
grade=100-10*(num-1);
elseif(num<8)
grade=80-5*(num-3);
elseif(num<68)
grade=60-(num-7);
printf("\t\t\tyourgradeis%d",grade);
switch(num)
{
case1:
printf("\tyouaresolucky!
!
!
");
break;
case2:
case3:
case4:
printf("\tlucky!
");
break;
case5:
case6:
case7:
case8:
case9:
printf("\tgreat!
");
break;
case10:
case11:
case12:
case13:
case14:
case15:
case16:
printf("\tgood!
");
break;
case17:
case18:
case19:
case20:
case21:
case22:
case23:
case24:
case25:
printf("\tjustsoso.");
break;
default:
printf("\tmaybeyoucanbetter.");
}
}
intwelcome()
{
ints;
printf("\n\n\n\n");
printf("\t\t********************************************\n");
printf("\t\t**\n");
printf("\t\t*welcomepalythegame!
*\n");
printf("\t\t**\n");
printf("\t\t*input1:
startthegame*\n");
printf("\t\t*input2:
helpinformation*\n");
printf("\t\t*input3:
quitthegame*\n");
printf("\t\t********************************************\n");
printf("\t\tpleaseselect:
");
scanf("%d",&s);
returns;
}
voidgc()
{
inta;
printf("\n\n\t\tinput1:
quitthegame;\tinput2:
backtomenu.\n");
printf("\n\t\tpleaseselect:
");
scanf("%d",&a);
if(a==1)
exit(0);
if(a==2)
{
system("cls");
fun();
}
if(a!
=1&&a!
=2)
{
printf("\t\tinputerror!
checkyourinput!
\n\n");
gc();
}
}