C 语言程序设计报告
日期:2222 年 11 月 2 日实验名称 小学生计算机辅助教学系统 学校
学院
专业
指导教师 范江波 实验人 姓名
学号
程序功能 帮助小学生通过计算机学习乘法,提高效率,并及时发现错误,改正错误,通过不断的练习,提高小学生的算数水平 要求 (1)整个系统均用 C 语言实现;
(2)程序设计计量清晰明了;
(3)系统具有输入、显示、提示和修改基本功能; (4)系统的各个功能模块都用函数的形式来实现
程序主要内容 任务 1. 程序首先随机产生一到十之间的正整数,在屏幕上打印出问题,例如6*7=?然后让学生输入答案,序检查学生输入的答案是否正确,若正确,则“RIGHT”,然后问下一个问题,否则打印“WRONG,PLEASE TRY AGAIN”,然后提示学生重做,直到答对为止。
程序如下:
#include<time.h> #include<stdlib.h> #include<stdio.h> 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<time.h> #include<stdlib.h> #include<stdio.h> 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<time.h> #include<stdlib.h> #include<stdio.h> int Magic(int x); int Answer(); int Exam(); main() {
printf("rate=%d%%\n",Exam()); } 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=",Magic(1),Magic(2));
answer=Magic(1)*Magic(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<time.h> #include<stdlib.h> #include<stdio.h> 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=",Magic(1),a,Magic(2));
answer=Magic(1)+Magic(2);
}
else if(a==45)
{printf("%d%c%d=",Magic(1),a,Magic(2));
answer=Magic(1)-Magic(2);
}
else if(a==42)
{ printf("%d%c%d=",Magic(1),a,Magic(2));
answer=Magic(1)*Magic(2);
}
else if(a==47)
{ printf("%d%c%d=",Magic(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<time.h> #include<stdlib.h> #include<stdio.h> int Magic(int x); int Answer(); int Makeop(); void Comment(int x); main() {
int rate; LI: rate=Makeop()*10;
printf("rate=%d%%\n",rate);
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=",Magic(1),op,Magic(2));
counter++;
if(Answer()==answer)
{
Commen(1);
i++;
}
else
Commen(2);
}while(counter<=10);
return i; }
int Answer() {
int n;
scanf("%d",&n);
return n; } void Comment(int x) {
int x,y;
srand(time(NULL));
x=rand()%4+1;
y=rand()%4+1;
if(x==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;
}
} }
任务 6 :
在(5)的基础上,随机产生一个 1 到 4 之间的随机数,配合使用 switch 语句,printf()函数调用,来为学生输入的每一个答案输出不同的评价 。
程序如下:
. #include<time.h> #include<stdlib.h> #include<stdio.h> int Magic(int m); int Answer(); int Makeop(); void Comment(int r); main() {
int rate; LI: rate=Makeop()*10;
printf("rate=%d%%\n",rate);
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=",Magic(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 语言有了更深的体会。我现在不仅能写一些不太复杂的程序,还基本上能看懂别的同学们写的程序,这一点真的使我开心不已。你要知道,从一个完全不懂——到现在能有基础和同学一起交流——到自己完成一个程序——到明白,这么一个过程是多么的快乐,怎是一个“爽”字了的!!!
当然学习中是有很多困难的,大多数小的困难我都一一克服了,觉得自己还不错,但是学到真正困难的数组、指针、结构体的时候,我被它们所征服过,敌人实在太凶残了!起初同学们都说它们难还没有什么感觉,现在始终尝到滋味了!最让我感觉失败也是最失落的一次是在做小学生计算机系统教学辅助系统的程序时,要用到函数调用、结构体等知识点时,真的不知道怎么将它们运用到自己的程序里去。看见别的同学都做的七七八八,再看看自己做的七零八落,心里真是着急。本来打算在下午上机搞定,但是一开机看着自己七零八落的程序,气就不打一处来,马上关机-拎包-走人。这一刻我被凶残的敌人俘虏了!
回到宿舍,把书本的知识重新复习了一遍,由于信心拾了回来,学的很快,看了几遍,书里的知识已能完全掌握了,特别是书里的程序都能读明白!第二天,重新披马上阵,这次准备充足,终把凶残的拦路虎给干掉了!开心…… 通过学习,又使我基本掌握了一个新的知识,特别是学习的经历,其间遇到的困难和怎么样克服困难,都成了我宝贵的财富!当然,还要感谢老师和同学们的帮助,在我最茫然的时候,帮我重拾信心。
在今后的学习中,我会好好利用这些宝贵的财富,在学习的道路上披荆斩棘,为成为一位成功的程序员不懈努力!!!