C语言程序设计报告
日
程序主要内容
任务1. 程序首先随机产生一到十之间的正整数,在屏幕上打印出问题,例如6*7=?然后让学生输入答案,序检查学生输入的答案是否正确,若正确,则“RIGHT”,然后问下一个问题,否则打印“WRONG,PLEASE TRY AGAIN”,然后提示学生重做,直到答对为止。
程序如下:
#include
#include
#include
int Magic(int x);
int Answer();
main()
{
int guess,answer,counter=1;
do{
printf("%d*%d=",Magic(1),Magic(2));
answer=Magic(1)*Magic(2);
if(Answer()==answer)
{
printf("Right\n");
break;
}
else
printf("Wrong!,please try again\n");
}while(counter>=1);
}
int Magic(int m)
int x,int y;
srand(time(NULL));
x=rand()%10+1;
y=rand()%10+1;
if(m==1) return x;
if(m==2) return y;
}
int Answer()
{
int n;
scanf("%d",&n);
return n;
}
任务2:在(1)的基础上,当学生回答错误时,最多给三次重做的机会。
:程序如下:
#include
#include
#include
int Magic(int x);
int Answer();
int Exam();
main()
{
int n;
n=Exam();
if(n==0) printf("Right\n");
else if(n==1) printf("Wrong!You have tried
three times!Test over\n ");
}
int Magic(int m)
{
int x,int y;
srand(time(NULL));
x=rand()%10+1;
y=rand()%10+1;
if(m==1) return x;
if(m==2) return y;
}
int Answer()
{
int n;
scanf("%d",&n);
return n;
}
int Exam()
{
int guess,answer,counter=1;
do{
printf("%d*%d=",Magic(1),Magic(2));
answer=Magic(1)*Magic(2);
counter++;
if(Answer()==answer)
return 0;
else if(counter<=3)
printf("Wrong! please try again\n");
}while(counter<=3); return 1;
任务3:在(1)的基础上,连续做10道乘法运算题,不给机会重做,若学生回答正确,提示“RIGHT”,否则提示“WRONG”,并按每题10分输出总分,再输出正确概率。程序如下:
#include
#include
#include
int Magic(int x);
int Answer();
int Exam();
main()
{
printf("rate=%d%%\n",E xam());
}
int Magic(int m)
{
int x,int y;
srand(time(NULL));
x=rand()%10+1;
y=rand()%10+1;
if(m==1) return x;
if(m==2) return y;
}
int Answer()
{
int n;
scanf("%d",&n);
return n;
}
int Exam()
{
int
answer,counter=1;
int i=0;
do
{
printf("%d*%d=",Magi c(1),Magic(2));
answer=Magic(1)*Magi c(2);
counter++;
if(Answer()==answer)
{
printf("Right!\n");
i++;
}
else
printf("Wrong!\n");
}while(counter<=10);
i=i*10;
return i;
}
任务4:
在(3)的基础上,随机产生10道四则运算题,运算类型为随机的加减乘除任意一种,不给机会重做,
若学生回答正确,提示“RIGHT”,否则提示“WRONG”,并按每题10分输出总分,再输出正确概率。
程序如下:
#include
#include
#include
int Magic(int x);
int Answer();
int Exam();
main()
{
printf("rate=%d%%\n" ,Exam()*10);
}
int Magic(int m)
{
int x,int y;
srand(time(NULL));
x=rand()%10+1;
y=rand()%10+1;
if(m==1) return x;
if(m==2) return y;
}
int Answer()
{
int n;
scanf("%d",&n);
return n;
}
int Exam()
{
int
counter=1,answer,i=0;
char a;
do
{
srand(time(NULL)); END:a=rand()%100+1;
if(a==43)
{
printf("%d%c%d=",Ma gic(1),a,Magic(2)); answer=Magic(1)+Magic( 2);
}
else if(a==45)
{printf("%d%c%d=",Ma gic(1),a,Magic(2)); answer=Magic(1)-Magic( 2);
}
else if(a==42)
{ printf("%d%c%d=",M agic(1),a,Magic(2)); answer=Magic(1)*Magic( 2);
}
else if(a==47)
{ printf("%d%c%d=",M agic(1),a,Magic(2)); answer=Magic(1)/Magic( 2);
}
else goto END;
counter++;
if(Answer()==answer) {
printf("Right!\n");
i++;
}
else
printf("Wrong!\n");
}while(counter<=10);
return i;
任务5:在(4)的基础上,在学生完成10道题后,若正确率低于75%,则重新做10道,知道高于75%. 程序如下:
#include
#include #include
int
Magic(int
x);
int
Answer();
int
Makeop();
void
Comment(i
nt x);
main()
{ int rate;
LI:
rate=Ma
keop()*10;
printf("rate =%d%%\n ",rate);
if(rate<75)
{ printf("Ri ght rate is too
low,Again! \n");
goto LI; }
}
int
Magic(int m)
{
int x,int y;
srand(ti me(NULL));
x=rand() %10+1;
y=rand()% 10+1;
if(m==1)
return x;
if(m==2)
return y;
}
int
Makeop()
{
int
counter=1,
answer,i=0
,a;
char op;
do
{
srand(ti
me(NULL));
END:a=ran
d()%4+1;
if(a==1)
{
op=43;
answer=M
agic(1)+Ma
gic(2);
}
else
if(a==2)
{ op
=45;
answer=M
agic(1)-Ma
gic(2);
}
else
if(a==3)
{ op
=42;
answer=M
agic(1)*Ma
gic(2);
}
else
if(a==4)
{ op
=47;
answer=M
agic(1)/Ma
gic(2);
}
else
goto END;
printf("
%d%c%d="
,Magic(1),o
p,Magic(2))
;
counter
++;
if(Answe
r()==answe
r)
{
Comme
n(1);
i++;
}
else
Comme
n(2);
}while(c
ounter<=1 0);
return i; }
int Answer() {
int n;
scanf("% d",&n);
return n;
}
void Comment(i nt x)
{
int x,y;
srand(ti me(NULL));
x=rand() %4+1;
y=rand()% 4+1;
if(x==1)
{
switch(x)
{
case 1:
printf("Ver
y
good!\n");
break;
case 2:
printf("E
xcellent!\n
");
break;
case 3:
printf("N
ice
work!\n");
break;
case 4:
printf("K
eep up the
good
work!\n");
break;
}
}
else
{
switch(y
)
{
case 1:
printf("No.
Please try
again!\n");
break;
case 2:
printf("Wro
ng. Try
once
more!\n");
break;
case 3:
printf("Don
't give
up!\n");
break;
case 4:
printf("Not
correct.
Keep
trying!\n");
break;
}
}
}
任务6:在(5)的基础上,随机产生一个1到4之间的随机数,配合使用switch语句,printf()函数调用,来为学生输入的每一个答案输出不同的评价。
程序如下:
. #include
#include
#include
int Magic(int m);
int Answer();
int Makeop();
void Comment(int r); main()
{ int rate;
LI: r ate=Makeop()*10; printf("rate=%d%%\n",ra te);
if(rate<75)
{ printf("Right rate is too low,Again!\n");
goto LI; }
}
int Magic(int m)
{
int x,int y;
srand(time(NULL));
x=rand()%10+1;
y=rand()%10+1;
if(m==1) return x;
if(m==2) return y;
}
int Makeop()
{
int
counter=1,answer,i=0,a;
char op;
do
{
srand(time(NULL)); END:a=rand()%4+1;
if(a==1)
{ op=43; answer=Magic(1)+Magic( 2);
}
else if(a==2)
{ op=45; answer=Magic(1)-Magic( 2);
}
else if(a==3)
{ op=42;
answer=Magic(1)*Magic( 2);
}
else if(a==4)
{ op=47; answer=Magic(1)/Magic( 2);
}
else goto END;
printf("%d%c%d=",Ma gic(1),op,Magic(2));
counter++;
if(Answer()==answer) {
Comment(1);
i++;
}
else
Comment(2);
}while(counter<=10);
return i;
}
int Answer()
{
int n;
scanf("%d",&n);
return n;
}
void Comment(int r) {
int x,y;
srand(time(NULL));
x=rand()%4+1;
y=rand()%4+1;
if(r==1)
{
switch(x)
{
case 1:
printf("Very good!\n");
break;
case 2:
printf("Excellent!\n");
break;
case 3:
printf("Nice work!\n");
break;
case 4:
printf("Keep up the good work!\n");
break;
}
}
else
{
switch(y)
{
case 1: printf("No. Please try again!\n");
break;
case 2: printf("Wrong. Try once more!\n");
break;
case 3:
printf("Don't give up!\n");
break;
case 4:
printf("Not correct. Keep trying!\n");
break;
}
}
}
实验体会
通过近两个月的学习,C语言给我的感触良多!很多同学都觉得痛并快乐着,但是我总是觉得是在煎熬着,因为对我来说这是一门全新的语言,一门崭新的知识.我需要用尽全力才能把它学好!
刚刚接触到C语言,完全弄不懂这个的什么东东!!!不清
楚为什么要这样写、有什么规则、格式、更别说什么函数的字符了!当时真自己什么都不知道,感觉比PIG还笨,真是有够郁闷的!当时真的不知所措,都曾考虑过是不是来这学来错两了、自己真的能学好吗?我不时的问自己……
刚开始上课时,老师举了一个很简单的程序(对于现在的我来说)——就是输出“学员们,大家好”这句话,我看见这个时当时就想起了TE曾说过的批处理,由于不懂C语言,感觉这两个好象,但是又觉的C更难一点,觉得完蛋了,因为当时就觉得批处理有点难,不太会弄,现在这个更难…迷茫…
但是经过一段时间的学习,慢慢的对C语言有点感觉了,觉的它并没有我想象中的那么难(可能是我学的浅,哈哈),再加上老师和同学的帮助,使我对C语言有了更深的体会。
我现在不仅能写一些不太复杂的程序,还基本上能看懂别的同学们写的程序,这一点真的使我开心不已。你要知道,从一个完全不懂——到现在能有基础和同学一起交流——到
自己完成一个程序——到明白,这么一个过程是多么的快乐,怎是一个“爽”字了的!!!
当然学习中是有很多困难的,大多数小的困难我都一一克服了,觉得自己还不错,但是学到真正困难的数组、指针、结构体的时候,我被它们所征服过,敌人实在太凶残了!起初同学们都说它们难还没有什么感觉,现在始终尝到滋味了!最让我感觉失败也是最失落的一次是在做小学生计算机系
统教学辅助系统的程序时,要用到函数调用、结构体等知识点时,真的不知道怎么将它们运用到自己的程序里去。看见别的同学都做的七七八八,再看看自己做的七零八落,心里真是着急。本来打算在下午上机搞定,但是一开机看着自己七零八落的程序,气就不打一处来,马上关机-拎包-走人。这一刻我被凶残的敌人俘虏了!
回到宿舍,把书本的知识重新复习了一遍,由于信心拾了回来,学的很快,看了几遍,书里的知识已能完全掌握了,
特别是书里的程序都能读明白!第二天,重新披马上阵,这次准备充足,终把凶残的拦路虎给干掉了!开心……
通过学习,又使我基本掌握了一个新的知识,特别是学习的经历,其间遇到的困难和怎么样克服困难,都成了我宝贵的财富!当然,还要感谢老师和同学们的帮助,在我最茫然的时候,帮我重拾信心。
在今后的学习中,我会好好利用这些宝贵的财富,在学习的道路上披荆斩棘,为成为一位成功的程序员不懈努力!!!
游戏C语言实验报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】
嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇
目录
一、实验目的和要求 (1)使用C语言编写2048这款游戏。 (2)能够正常运行,拥有游戏界面。 (3)能正常进行游戏从开始到结束。? (4)用户操作方便。 二、实验环境、内容和方法 实验内容:1、游戏开始时随机产生两个数值为2/4的方格,其中一个方格置于4个角中的一个位置,另一个方格随机的置于其他位置,其他方格置于0。 2、每次按方向键(w,s,a,d)后,逐行计算移动后的方格值。每行移动的算法是:先将所有值为0的数移至行首。能后从行尾开始逐一和前一个数比较,如果相等则合并这2个格子。 3、每合并一次格子,将其值累计到游戏总分中。 4、一次移动结束后,在所有值为0的方格中随机的分配一个2/4的值。 5、所有方格值不为0且上下、左右相邻的方格都不相等,则游戏结束。 6、2出现的概率为70%,4出现的概率为30%。 实验方法: 通过上机操作完成各内容。 实验环境: 实验用PC机一台,使用操作系统为Windows 7/ Windows 8/ Windows10,安装 vc++或v2008等编译软件 三、程序设计 Y
四、源代码 #include<> #include<> #include<> #include<> #define M 2048 void up(); n"); printf(" 玩家可以选择上(w)下(s)左(a)右(d)四个方向,若棋盘内的数字出现位移或合并,视为有效移动.\n"); printf(" 若有相同的数字则合并,每次有效移动可以同时合并,但不可以连续合并.\n"); printf(" 合并所得的所有新生成数字想加即为该步的有效得分.\n"); printf(" 玩家选择的方向行或列前方有空格则出现位移.\n"); printf(" 每有效移动一步,棋盘的空位(无数字处)随机出现一个数字(依然可能为2或4).\n"); printf(" 棋盘被数字填满,无法进行有效移动,判负,游戏结束.\n"); printf(" 棋盘上出现2048,判胜,游戏结束"); printf("\n\n\n"); printf(" \t\t\t按回车开始游戏.\n"); getchar(\n);
成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)熟悉C语言运行环境,了解和使用Visual6.0++集成开发环境(2)熟悉Visual6.0++环境的功能键和常用的功能菜单命令 (3)掌握C语言程序的书写格式和C语言程序的结构 (4)掌握C语言上机步骤,以及编辑、编译和运行一个C语言程序的方法 (5)熟悉Visual6.0++环境下的程序调试方法 2.实验内容 (1)按照实验步骤编辑、编译、运行第一个”Hello World”程序(2)利用实验指导中的第二个程序熟悉调试工具,在已知x,y值的情况下,计算出x和y的和、差、积、商,并显示出来(3)编写一个程序,输入a、b、c三个值,输出它们的和与平均值c 3.源程序 (1)#include
(3)#include