小学数学试题出题系统
2017七夕-加拿大女留学生
    计算机与信息工程系《高级语言程序设计》课程设计报告 
《高级C语言程序设计》 
         
课程设计报告 
题
专
班
姓
目
业
级
名
:
小学数学试题出题系统 
:  
:  
:  
指导教师:
成
    
 
绩:  
  
 
                 
  计算机与信息工程系 
     2014 年6月20日
 
  
       
                        
 目
录
 
1.设计内容与要求...............................
..................................................
....................... 1 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
1.1 设
计内容...............................................
..................................................
........ 1 
1.2  设计要求..........................
..................................................
........................... 1 
2.概要设计..........
..................................................
..................................................
...... 1 
2.1  系统分析............................
..................................................
......................... 1 
2.2 总体程序框图........
..................................................
....................................... 2 
2.3主
要功能设计.............................................
..................................................
... 3 
3.设计实现..................................
..................................................
................................ 8 
3.1测试选择....
..................................................
..................................................
.. 8 
3.2测试结果..................................
..................................................
...................... 9 
3.3.给出分数以及相应的表情......
..................................................
................... 11 
3.4 一轮答题结束后的界面.........
..................................................
.................... 13 
4  参考文献...............
..................................................
............................................... 15
附录:源代码........................................
..................................................
.................... 16 
 
 
 
 
 
 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
1.设计内容与要求 
1.1 设计内容 
      小学生数学测试软件的编写
 
1.2  设计要求 
根据设计的基本要求,本系统可实现功能如下: 
1) 可选择类型有加、减、乘、混合运算;
2) 可选择每次答题的个数; 
3) 随机生成两个或三个数进行运算; 
4)
每次在输入答案后应判断对错,若答案错误,应给出正确答案; 
5)
给出统计结果,包括正确的个数和分数; 
6) 根据分数的情况给出不同的建议 
 
 
 
                    
2.概要设计 
2.1  系统分析 
    程序中包括头文件#include
#include
选择测试类型,定义子函数void jia(),void
jian(),void cheng(),void
hun()
分别进行加、减、乘、混合运算。定义子函数void
xiao()用于成绩在80-100
之间时生成两个笑脸,子函数void
wu()用于成绩在60-80之间时生成两个表情,
子函数void ku()用于成绩少于60时生
成两个哭脸。上述三个子函数的使用目
的在于使软件在使用时增加使用者的兴趣。 
 
 
 
 
 
 
1 
 
计算机与信息工程系《高级语言程序设计》课程设计报告 
 
2.2 总体程序框图 
 
开始 
 
 
 
 
 
菜单选择输
 
出,输入num 
 
 
 
 
Switch语句选
 
择操作 
 
 
 
进入加法运算 进入减法运算 进入乘法运算 
 
 
 
 
选择难度 
 
 
 
 
 
输入题目量 
K1,k2,k3,k4 
 
否 
 
 
 
输出题目
 
循环题数次 
 
输入答案 
 
 
判断答案 
 
2 
 
进入混合运
算 
    结束程序
输出正确题
数和分
数 
程序结束 
是
判断是否
结束程序 
计算机与信息工程系《高级语言程序设计》课程设计报告 
 
 
 
 
正确 
错误 
 
正确个数++ 
 
 
 
 
2.3主要功能设计 
 1)元素类型,节点类型; 
#include
  #include
#include
  #include
int style(); 
  void xiao(); 
  void wu();
  void ku(); 
  void jia(); 
  void
jian(); 
  void cheng(); 
  void hun(); 
void main() 
2)switch语句分为加、减、乘、混合四种情况;
 
{ 
  case 1: 
   jia(); 
   break; 
case 2: 
   jian(); 
   break; 
  case 3:
   cheng(); 
   break; 
  case 4: 
hun(); 
   break; 
  case 5: 
3 
 
switch(style()) 
计算机与信息工程系《高级语言程序设计》课程设计报告 
 
 
 
 
 
printf(欢迎再次使用,再见n
exit(0);
3)构造可供选择题目、难易程度、题目数量的函数;  
    int num;
 printf(
 printf(目录-*-*-*-*-*-n
printf(选择加法题请按1n
 printf(选择减法题请按2n
printf(选择乘法题请按3n
 printf(选择混合题请按4n
printf(选择退出请按5n
 printf(
printf(请选择测试题类型,输入数字:
 scanf(
if(num>0&&num<6) 
  return(num); 
 else 
printf(输入错误,请重新输入!n
} 
void jia() 
{ 
int a1,b1,ans1,zhen1,i1,k1,m1,n1,he; 
 int q1;
 printf(
 printf(
 printf(
 printf(简单
2.适中 3.复杂 请选择题目的难易程度:
 scanf(
 for(   )
 { 
  int right1=0,score1=0; 
m1=(int)(pow(10,n1)); 
printf(请输入你想做的题目数量:
4)构造加、减、乘、混合的函数; 
  加函数:
for(i1=0;i1
 
 
 
 
 
 
 
 
 
 
{ 
 
 
 
 
srand(time(0));
a1=rand()%m1; 
b1=rand()%m1;
if(a1%3==0) 
{ 
4 
 
计算机与信息工程系《高级语言程序设计》课程设计报告 
 
 
 
 
 
 
 
 
 zhen1=a1+b1; 
printf(你的答案是:  
} 
减函数:
for(i2=0;i2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
{ 
 
 
 
 
 
 
 
srand(time(0));
a2=rand()%m2; 
b2=rand()%m2;
if(a2%3==0) 
{ 
 zhen2=a2-b2; 
printf(你的答案是:  
} 
乘函数:
for(i3=0;i3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
{ 
 
 
 
 
 
 
 
srand(time(0));
a3=rand()%m3; 
b3=rand()%m3;
if(a3%3==0) 
{ 
 zhen3=a3*b3; 
printf(你的答案是:  
} 
 混合函数
:
for(i4=0;i4
srand(time(0)); 
   a4=rand()%m4; 
b4=rand()%m4; 
   c4=rand()%m4; 
if(a4%16==0) 
   { 
    zhen4=a4+b4+c4; 
printf(%d.   %d+%d+%d=()  你的答案是:  
   }
   if(a4%16==1) 
   { 
    guo=a4+b4+c4;
    zhen4=a4; 
    printf(%d.  ()+%d+%d=%d
你的答案是:  
5 
 
计算机与信息工程系《高级语言程序设计》课程设计报告 
   } 
if(a4%16==2) 
   { 
    guo=a4+b4+c4; 
zhen4=b4; 
    printf(%d.  %d+()+%d=%d  你的答案是:
   } 
   if(a4%16==3) 
   { 
guo=a4+b4+c4; 
    zhen4=c4; 
    printf(%d.
   } 
   if(a4%16==4) 
   { 
zhen4=a4+b4-c4; 
    printf(%d. 
   }
   if(a4%16==5) 
   { 
    guo=a4+b4-c4;
    zhen4=a4; 
    printf(%d. 
   }
   if(a4%16==6) 
   { 
    guo=a4+b4+c4;
    zhen4=b4; 
    printf(%d. 
   }
   if(a4%16==7) 
   { 
    guo=a4+b4+c4;
    zhen4=c4; 
    printf(%d. 
   }
   if(a4%16==8) 
   { 
%d+%d+()=%d 
%d+%d-%d=() 
()+%d-%d=%d
%d-()+%d=%d 
%d+%d-()=%d 
  
6 
你的答案是
你的答案是
你的答案是
你的答案是
你的答案是
  
  
  
   
 
 
 
 
 :
  :
 :
 :
 :
    
计算机与信息工程系《高级语言程序设计》课程设计报告 
    zhen4=a4*b4+c4;
    printf(%d.  
   } 
if(a4%16==9) 
   { 
    guo=a4*b4+c4; 
zhen4=a4; 
    printf(%d.  
 %d*%d+%d=()
你的答案是:  
()*%d+%d=%d  你的答案是:  
   } 
if(a4%16==10) 
   { 
    guo=a4*b4+c4; 
zhen4=b4; 
    printf(%d.  
   } 
if(a4%16==11) 
   { 
    guo=a4*b4+c4; 
zhen4=c4; 
    printf(%d.  
   } 
if(a4%16==12) 
   { 
    zhen4=a4*b4-c4;
    printf(%d.  
   } 
if(a4%16==13) 
   { 
    guo=a4*b4-c4; 
zhen4=a4; 
    printf(%d.  
 
 
              
 
%d*()+%d=%d 
%d*%d+()=%d 
%d*%d-%d=()
()*%d-%d=%d 
  
7 
你的答案是
你的答案是
你的答案是
你的答案是
  
  
  
 :
 :
  :
 :
    计算机与信息工程系《高级语言程序设计》课程设计报告
3.设计实现
 
3.1测试选择 
1.选择测试类型 
 
2.选择难易程度 
 
8 
 
计算机与信息工程系《高级语言程序设计》课程设计报告 
 
3.选择题目数量 
 
3.2测试结果 
1.给出题目,写出答案,选择加法 
 
                                    
9 
    计算机与信息工程系《高级语言程序设计》课程设计报告
2.选择减法 
 
 
3.选择乘法 
 
4.选择混合运算 
10 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
 
5.选择退出 
 
 
3.3.给出分数以及相应的表情
1.80-100分之间给出笑脸 
 
11 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
 
2.60-80分之间给出表情 
 
 
3.60分以下给出哭脸
12 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
 
3.4 一轮答题结束后的界面 
1.分数在60分以下,选择是否再来几题 
 
 
2.分数在60-80之间,如果前一轮不是最高难度选择是否挑战更高难度
13 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
 
3.分数在60-80之间,如果前一轮是最高难度选择是否再来几题 
 
4.分数在80-100分之间,如果前一轮是最高难度则返回菜单 
14 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
 
5.分数在80-100分之间,如果前一轮不是最高难度则选择是否挑战更高难度 
          
             4  参考文献
 
   
 
[1]谭浩强著.C程序设计(第二版).北京:清华大学出版社,1999
[2]谭浩强编著.QBASIC语言教程.北京:电子工业出版社,1997
[3]谭浩强.C程序设计[M].3版.北京:清华大学出版社,2005
[4]Herbert
Schildt著.戴健鹏译.C语言大全(第二版).北京:电子工业
出版社,1994 
 
 
 
                   
 
  
 
15 
    计算机与信息工程系《高级语言程序设计》课程设计报告
附录:源代码 
 
#include
#include
#include
#include
 
int style();
void xiao(); 
void wu(); 
void ku();
void jia(); 
void jian(); 
void cheng();
void hun(); 
void main() 
{ 
 for( 
; ) 
 { 
  switch(style()) 
  { 
case 1: 
   jia(); 
   break; 
  case 2:
   jian(); 
   break; 
  case 3: 
cheng(); 
   break; 
  case 4: 
   hun();
   break; 
  case 5: 
printf(欢迎再次使用,再见n
   exit(0); 
  } 
 }
} 
void xiao() 
{ 
 int x1,x2; 
char diamond1[][30]={{' ',' ','*',' ',' ',' ','
',' ',' ',' ','*',' 
16 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
','
',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ','
',' ',' ','*',' ',' 
'}, 
 {'*',' ',' ','
','*',' ',' ',' ','*',' ',' ',' ','*',' ',' ','
',' 
','*',' ',' ',' ','*',' ',' ',' ','*','
',' ',' ','*'}, 
 {' ',' ',' ',' ',' ',' ','
',' ',' ',' ',' ',' ',' ',' ',' ',' ',' 
','
',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','
'}, 
 {' ',' ',' ',' ','*',' ',' ',' ','*','
',' ',' ',' ',' ',' ',' ',' 
',' ',' ',' ','
','*',' ',' ',' ','*',' ',' ',' ',' '}, 
 {'
',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ','
',' ',' ',' ',' 
',' ',' ',' ',' ',' ','
','*',' ',' ',' ',' ',' ',' '}}; 
for(x1=0;x1<5;x1++) 
 { 
for(x2=0;x2<30;x2++) 
   printf(
printf(
 } 
} 
void wu() 
{ 
 int
g1,g2; 
 char diamond2[][30]={{' ',' ','*','
',' ',' ',' ',' ',' ',' ','*',' 
',' ',' ','
',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ','
','*',' ',' 
'}, 
 {'*',' ',' ',' ','*','
',' ',' ','*',' ',' ',' ','*',' ',' ',' ','
','*',' ',' ',' ','*',' ',' ',' ','*',' ','
',' ','*'}, 
 {' ',' ',' ',' ',' ',' ',' ','
',' ',' ',' ',' ',' ',' ',' ',' ',' 
',' ','
',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
    {' ','*',' ','*',' ',' ',' ',' ',' ','*','
','*',' ',' ',' ',' ',' 
',' ','*',' ','*','
',' ',' ',' ',' ','*',' ','*',' '}}; 
for(g1=0;g1<4;g1++) 
  printf(
 printf(
}
void ku() 
{ 
 int r1,r2; 
 char
diamond3[][18]={{'*','*',' ',' ',' ','*','*',' ','
',' ',' 
','*','*',' ',' ',' ','*','*'}, 
{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','
',' ',' ',' ',' 
',' '},{' ',' ',' ','*',' ','
',' ',' ',' ',' ',' ',' ',' ',' ','*',' ','
',' '}, 
 {' ','*',' ',' ',' ','*',' ','
',' ',' ',' ',' ','*',' ',' ',' ','*',' 
'}};
 for(r1=0;r1<4;r1++) 
17 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
 {
  for(r2=0;r2<18;r2++) 
   printf(
printf(
 } 
} 
int style() 
{ 
 int
num; 
 printf(
 printf(目录-*-*-*-*-*-n
printf(选择加法题请按1n
 printf(选择减法题请按2n
printf(选择乘法题请按3n
 printf(选择混合题请按4n
printf(选择退出请按5n
 printf(
printf(请选择测试题类型,输入数字:
 scanf(
if(num>0&&num<6) 
  return(num); 
 else 
printf(输入错误,请重新输入!n
} 
void jia() 
{ 
int a1,b1,ans1,zhen1,i1,k1,m1,n1,he; 
 int q1;
 printf(
 printf(
 printf(
 printf(简单
2.适中 3.复杂 请选择题目的难易程度:
 scanf(
 for(   )
 { 
  int right1=0,score1=0; 
m1=(int)(pow(10,n1)); 
printf(请输入你想做的题目数量:
  scanf(
  printf(
printf(
  printf(
  for(i1=0;i1
18 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
srand(time(0)); 
   a1=rand()%m1; 
b1=rand()%m1; 
   if(a1%3==0) 
   { 
zhen1=a1+b1; 
    printf(你的答案是:  
   } 
if(a1%3==1) 
   { 
    he=a1+b1; 
zhen1=a1; 
    printf(你的答案是:  
   } 
if(a1%3==2) 
   { 
    he=a1+b1; 
zhen1=b1; 
    printf(你的答案是:  
   } 
scanf(
   if(ans1==zhen1) 
   { 
printf(恭喜你,回答正确!n
    right1++; 
   } 
else 
printf(很遗憾,回答错误!正确答案是%d,别灰心,继续努力!
n
printf(
   printf(
  } 
score1=(100*right1)k1; 
  printf(你答对了%d道题!n
if (score1>=80&&score1<=100) 
   { 
printf(你考了%d分,很不错,再接再厉哟!n
    xiao(); 
n1++; 
    if(n1==4) 
     break; 
else 
    { 
printf(你想挑战更高难度的题目吗?是请按1,不是请按
19 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
2:
     scanf(
     if(q1==2) 
      break;
    } 
   } 
  if(score1>=60&&score1<80)
   { 
printf(你考了%d分,还不错,但不是特别理想,继续努力!
n
    wu();
    if(n1=3) 
    { 
printf(你想再来几题吗?是请按1,不是请按2: 
     scanf(
if(q1==2) 
      break; 
    } 
    else
    { 
     printf(你想挑战更高难度吗?是请按1,不是请按2:
     scanf(
     if(q1==1) 
      n1++;
     else 
      break; 
    } 
   }
  if(score1<60) 
   { 
printf(你只考了%d分,成绩不理想,别灰心,继续努力!
n
    ku();
    if(n1!=3) 
    { 
printf(你想再来几题吗?是请按1,不是请按2: 
     scanf(
if(q1==2) 
      break; 
    } 
   } 
} 
} 
void jian() 
20 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
int
a2,b2,ans2,zhen2,i2,k2,m2,n2,cha; 
int q2;
printf(
printf(
printf(
printf(简单
2.适中 3.复杂 请选择题目的难易程度:
scanf(
for(   )
{ 
 int right2=0,score2=0; 
m2=(int)(pow(10,n2)); 
 printf(请输入你想做的题目数量:
scanf(
 printf(
 printf(
 printf(
for(i2=0;i2
  srand(time(0));
  a2=rand()%m2; 
  b2=rand()%m2; 
if(a2%3==0) 
  { 
   zhen2=a2-b2; 
printf(你的答案是:  
  } 
  if(a2%3==1) 
  {
   cha=a2-b2; 
   zhen2=a2; 
printf(你的答案是:  
  } 
  if(a2%3==2) 
  {
   cha=a2-b2; 
   zhen2=b2; 
printf(你的答案是:  
  } 
  scanf(
if(ans2==zhen2) 
  { 
printf(恭喜你,回答正确!n
   right2++; 
21 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
   }
   else 
printf(很遗憾,回答错误!正确答案是%d,别灰心,继续努力!
n
printf(
   printf(
  } 
score2=(100*right2)k2; 
  printf(你答对了%d道题!n
if (score2>=80&&score2<=100) 
   { 
printf(你考了%d分,很不错,再接再厉哟!n
    xiao(); 
n2++; 
    if(n2==4) 
     break; 
else 
    { 
printf(你想挑战更高难度的题目吗?是请按1,不是请按
2: 
scanf(
     if(q2==2) 
      break; 
} 
   } 
  if(score2>=60&&score2<80) 
{ 
    printf(你考了%d分,还不错,但不是特别理想,继续努力!
n
wu(); 
    if(n2=3) 
    { 
printf(你想再来几题吗?是请按1,不是请按2: 
     scanf(
if(q2==2) 
      break; 
    } 
    else
    { 
     printf(你想挑战更高难度吗?是请按1,不是请按2:
     scanf(
     if(q2==1) 
      n2++;
     else 
22 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
break; 
    } 
   } 
  if(score2<60) 
{ 
    printf(你只考了%d分,成绩不理想,别灰心,继续努力!
n
ku(); 
    if(n2!=3) 
    { 
printf(你想再来几题吗?是请按1,不是请按2: 
     scanf(
if(q2==2) 
      break; 
    } 
   } 
} 
} 
void cheng() 
{ 
 int
a3,b3,ans3,zhen3,i3,k3,m3,n3,ji; 
 int q3; 
printf(
 printf(
 printf(
 printf(简单 2.适中
3.复杂 请选择题目的难易程度:
 scanf(
 for(   ) 
 {
  int right3=0,score3=0; 
m3=(int)(pow(10,n3)); 
printf(请输入你想做的题目数量:
  scanf(
  printf(
printf(
  printf(
  for(i3=0;i3
   srand(time(0)); 
a3=rand()%m3; 
   b3=rand()%m3; 
if(a3%3==0) 
   { 
    zhen3=a3*b3; 
23
    计算机与信息工程系《高级语言程序设计》课程设计报告 
printf(你的答案是:  
   } 
   if(a3%3==1) 
{ 
    ji=a3*b3; 
    zhen3=a3; 
printf(你的答案是:  
   } 
   if(a3%3==2) 
{ 
    ji=a3*b3; 
    zhen3=b3; 
printf(你的答案是:  
   } 
   scanf(
if(ans3==zhen3) 
   { 
printf(恭喜你,回答正确!n
    right3++; 
   } 
else 
printf(很遗憾,回答错误!正确答案是%d,别灰心,继续努力!
n
printf(
   printf(
  } 
score3=(100*right3)k3; 
  printf(你答对了%d道题!n
if (score3>=80&&score3<=100) 
   { 
printf(你考了%d分,很不错,再接再厉哟!n
    xiao(); 
n3++; 
    if(n3==4) 
     break; 
else 
    { 
printf(你想挑战更高难度的题目吗?是请按1,不是请按
2: 
scanf(
     if(q3==2) 
      break; 
} 
   } 
24 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
if(score3>=60&&score3<80) 
   { 
printf(你考了%d分,还不错,但不是特别理想,继续努力!
n
    wu();
    if(n3=3) 
    { 
printf(你想再来几题吗?是请按1,不是请按2: 
     scanf(
if(q3==2) 
      break; 
    } 
    else
    { 
     printf(你想挑战更高难度吗?是请按1,不是请按2:
     scanf(
     if(q3==1) 
      n3++;
     else 
      break; 
    } 
   }
  if(score3<60) 
   { 
printf(你只考了%d分,成绩不理想,别灰心,继续努力!
n
    ku();
    if(n3!=3) 
    { 
printf(你想再来几题吗?是请按1,不是请按2: 
     scanf(
if(q3==2) 
      break; 
    } 
   } 
} 
} 
void hun() 
{ 
 int
a4,b4,c4,ans4,zhen4,i4,k4,m4,n4,guo; 
 int q4;
 printf(
 printf(
 printf(
25 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
printf(简单 2.适中 3.复杂 请选择题目的难易程度:
 scanf(
for(   ) 
 { 
  int right4=0,score4=0;
  m4=(int)(pow(10,n4)); 
printf(请输入你想做的题目数量:
  scanf(
  printf(
printf(
  printf(
  for(i4=0;i4
   srand(time(0)); 
a4=rand()%m4; 
   b4=rand()%m4; 
c4=rand()%m4; 
   if(a4%16==0) 
   { 
zhen4=a4+b4+c4; 
    printf(%d.   %d+%d+%d=()
你的答案是
   } 
   if(a4%16==1) 
   {
    guo=a4+b4+c4; 
    zhen4=a4; 
printf(%d.  ()+%d+%d=%d  你的答案是
   } 
if(a4%16==2) 
   { 
    guo=a4+b4+c4; 
zhen4=b4; 
    printf(%d.  %d+()+%d=%d
你的答案是
   } 
   if(a4%16==3) 
   {
    guo=a4+b4+c4; 
    zhen4=c4; 
printf(%d.  %d+%d+()=%d  你的答案是
   } 
26 
  
:  
:  
:  
:
    计算机与信息工程系《高级语言程序设计》课程设计报告 
if(a4%16==4) 
   { 
    zhen4=a4+b4-c4; 
printf(%d.   %d+%d-%d=()  你的答案是:  
   }
   if(a4%16==5) 
   { 
    guo=a4+b4-c4;
    zhen4=a4; 
    printf(%d.  
   }
   if(a4%16==6) 
   { 
    guo=a4+b4+c4;
    zhen4=b4; 
    printf(%d.  
   }
   if(a4%16==7) 
   { 
    guo=a4+b4+c4;
    zhen4=c4; 
    printf(%d.  
   }
   if(a4%16==8) 
   { 
zhen4=a4*b4+c4; 
    printf(%d.  
   }
   if(a4%16==9) 
   { 
    guo=a4*b4+c4;
    zhen4=a4; 
    printf(%d.  
   }
   if(a4%16==10) 
   { 
guo=a4*b4+c4; 
    zhen4=b4; 
()+%d-%d=%d  
%d-()+%d=%d  
%d+%d-()=%d
%d*%d+%d=() 
()*%d+%d=%d  
 
27 
你的答案是
你的答案是
你的答案是
你的答案是
你的答案是
  
   
  
  
:
:
:
:
:
 
计算机与信息工程系《高级语言程序设计》课程设计报告 
    printf(%d.
%d*()+%d=%d  你的
   } 
   if(a4%16==11)
   { 
    guo=a4*b4+c4; 
    zhen4=c4;
    printf(%d.  %d*%d+()=%d  你的
答案是:
答案是:  
   } 
   if(a4%16==12) 
{ 
    zhen4=a4*b4-c4; 
    printf(%d.
%d*%d-%d=() 
   } 
   if(a4%16==13) 
{ 
    guo=a4*b4-c4; 
    zhen4=a4; 
printf(%d.  ()*%d-%d=%d 
   } 
if(a4%16==14) 
   { 
    guo=a4*b4-c4; 
zhen4=b4; 
    printf(%d.  %d*()-%d=%d 
} 
   if(a4%16==15) 
   { 
guo=a4*b4+c4; 
    zhen4=c4; 
    printf(%d.
%d*%d-()=%d 
   } 
   scanf(
if(ans4==zhen4) 
   { 
printf(恭喜你,回答正确!n
    right4++; 
   } 
else 
                                   
28
  
你的答案是
你的答案是
你的答案是
你的答案是
  
  
  
 
 
 
:
:
:
:
计算机与信息工程系《高级语言程序设计》课程设计报告 
printf(很遗憾,回答错误!正确答案是%d,别灰心,继续努力!
n
printf(
   printf(
  } 
score4=(100*right4)k4; 
  printf(你答对了%d道题!n
if (score4>=80&&score4<=100) 
   { 
printf(你考了%d分,很不错,再接再厉哟!n
    xiao(); 
n4++; 
    if(n4==4) 
     break; 
else 
    { 
printf(你想挑战更高难度的题目吗?是请按1,不是请按
2: 
scanf(
     if(q4==2) 
      break; 
} 
   } 
  if(score4>=60&&score4<80) 
{ 
    printf(你考了%d分,还不错,但不是特别理想,继续努力!
n
wu(); 
    if(n4=3) 
    { 
printf(你想再来几题吗?是请按1,不是请按2: 
     scanf(
if(q4==2) 
      break; 
    } 
    else
    { 
     printf(你想挑战更高难度吗?是请按1,不是请按2:
     scanf(
     if(q4==1) 
      n4++;
     else 
      break; 
    } 
29
    计算机与信息工程系《高级语言程序设计》课程设计报告 
   }
  if(score4<60) 
   { 
printf(你只考了%d分,成绩不理想,别灰心,继续努力!
n
    
    
    
    
    
    
   } 
 } 
}   
 
  
 
 
ku(); 
if(n4!=3) 
{ 
printf(你想再来几题吗?是请按1,不是请按2: 
 scanf(
if(q4==2) 
  break; 
} 
30 
    
计算机与信息工程系《高级语言程序设计》课程设计报告 
    《高级C语言程序设计》 
         
课程设计报告 
题
专
班
姓
目
业
级
名
:
小学数学试题出题系统 
:  
:  
:  
指导教师:
成
    
 
绩:  
  
 
                 
  计算机与信息工程系 
     2014 年6月20日
 
  
       
                        
 目
录
 
1.设计内容与要求...............................
..................................................
....................... 1 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
1.1 设
计内容...............................................
..................................................
........ 1 
1.2  设计要求..........................
..................................................
........................... 1 
2.概要设计..........
..................................................
..................................................
...... 1 
2.1  系统分析............................
..................................................
......................... 1 
2.2 总体程序框图........
..................................................
....................................... 2 
2.3主
要功能设计.............................................
..................................................
... 3 
3.设计实现..................................
..................................................
................................ 8 
3.1测试选择....
..................................................
..................................................
.. 8 
3.2测试结果..................................
..................................................
...................... 9 
3.3.给出分数以及相应的表情......
..................................................
................... 11 
3.4 一轮答题结束后的界面.........
..................................................
.................... 13 
4  参考文献...............
..................................................
............................................... 15
附录:源代码........................................
..................................................
.................... 16 
 
 
 
 
 
 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
1.设计内容与要求 
1.1 设计内容 
      小学生数学测试软件的编写
 
1.2  设计要求 
根据设计的基本要求,本系统可实现功能如下: 
1) 可选择类型有加、减、乘、混合运算;
2) 可选择每次答题的个数; 
3) 随机生成两个或三个数进行运算; 
4)
每次在输入答案后应判断对错,若答案错误,应给出正确答案; 
5)
给出统计结果,包括正确的个数和分数; 
6) 根据分数的情况给出不同的建议 
 
 
 
                    
2.概要设计 
2.1  系统分析 
    程序中包括头文件#include
#include
选择测试类型,定义子函数void jia(),void
jian(),void cheng(),void
hun()
分别进行加、减、乘、混合运算。定义子函数void
xiao()用于成绩在80-100
之间时生成两个笑脸,子函数void
wu()用于成绩在60-80之间时生成两个表情,
子函数void ku()用于成绩少于60时生
成两个哭脸。上述三个子函数的使用目
的在于使软件在使用时增加使用者的兴趣。 
 
 
 
 
 
 
1 
 
计算机与信息工程系《高级语言程序设计》课程设计报告 
 
2.2 总体程序框图 
 
开始 
 
 
 
 
 
菜单选择输
 
出,输入num 
 
 
 
 
Switch语句选
 
择操作 
 
 
 
进入加法运算 进入减法运算 进入乘法运算 
 
 
 
 
选择难度 
 
 
 
 
 
输入题目量 
K1,k2,k3,k4 
 
否 
 
 
 
输出题目
 
循环题数次 
 
输入答案 
 
 
判断答案 
 
2 
 
进入混合运
算 
    结束程序
输出正确题
数和分
数 
程序结束 
是
判断是否
结束程序 
计算机与信息工程系《高级语言程序设计》课程设计报告 
 
 
 
 
正确 
错误 
 
正确个数++ 
 
 
 
 
2.3主要功能设计 
 1)元素类型,节点类型; 
#include
  #include
#include
  #include
int style(); 
  void xiao(); 
  void wu();
  void ku(); 
  void jia(); 
  void
jian(); 
  void cheng(); 
  void hun(); 
void main() 
2)switch语句分为加、减、乘、混合四种情况;
 
{ 
  case 1: 
   jia(); 
   break; 
case 2: 
   jian(); 
   break; 
  case 3:
   cheng(); 
   break; 
  case 4: 
hun(); 
   break; 
  case 5: 
3 
 
switch(style()) 
计算机与信息工程系《高级语言程序设计》课程设计报告 
 
 
 
 
 
printf(欢迎再次使用,再见n
exit(0);
3)构造可供选择题目、难易程度、题目数量的函数;  
    int num;
 printf(
 printf(目录-*-*-*-*-*-n
printf(选择加法题请按1n
 printf(选择减法题请按2n
printf(选择乘法题请按3n
 printf(选择混合题请按4n
printf(选择退出请按5n
 printf(
printf(请选择测试题类型,输入数字:
 scanf(
if(num>0&&num<6) 
  return(num); 
 else 
printf(输入错误,请重新输入!n
} 
void jia() 
{ 
int a1,b1,ans1,zhen1,i1,k1,m1,n1,he; 
 int q1;
 printf(
 printf(
 printf(
 printf(简单
2.适中 3.复杂 请选择题目的难易程度:
 scanf(
 for(   )
 { 
  int right1=0,score1=0; 
m1=(int)(pow(10,n1)); 
printf(请输入你想做的题目数量:
4)构造加、减、乘、混合的函数; 
  加函数:
for(i1=0;i1
 
 
 
 
 
 
 
 
 
 
{ 
 
 
 
 
srand(time(0));
a1=rand()%m1; 
b1=rand()%m1;
if(a1%3==0) 
{ 
4 
 
计算机与信息工程系《高级语言程序设计》课程设计报告 
 
 
 
 
 
 
 
 
 zhen1=a1+b1; 
printf(你的答案是:  
} 
减函数:
for(i2=0;i2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
{ 
 
 
 
 
 
 
 
srand(time(0));
a2=rand()%m2; 
b2=rand()%m2;
if(a2%3==0) 
{ 
 zhen2=a2-b2; 
printf(你的答案是:  
} 
乘函数:
for(i3=0;i3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
{ 
 
 
 
 
 
 
 
srand(time(0));
a3=rand()%m3; 
b3=rand()%m3;
if(a3%3==0) 
{ 
 zhen3=a3*b3; 
printf(你的答案是:  
} 
 混合函数
:
for(i4=0;i4
srand(time(0)); 
   a4=rand()%m4; 
b4=rand()%m4; 
   c4=rand()%m4; 
if(a4%16==0) 
   { 
    zhen4=a4+b4+c4; 
printf(%d.   %d+%d+%d=()  你的答案是:  
   }
   if(a4%16==1) 
   { 
    guo=a4+b4+c4;
    zhen4=a4; 
    printf(%d.  ()+%d+%d=%d
你的答案是:  
5 
 
计算机与信息工程系《高级语言程序设计》课程设计报告 
   } 
if(a4%16==2) 
   { 
    guo=a4+b4+c4; 
zhen4=b4; 
    printf(%d.  %d+()+%d=%d  你的答案是:
   } 
   if(a4%16==3) 
   { 
guo=a4+b4+c4; 
    zhen4=c4; 
    printf(%d.
   } 
   if(a4%16==4) 
   { 
zhen4=a4+b4-c4; 
    printf(%d. 
   }
   if(a4%16==5) 
   { 
    guo=a4+b4-c4;
    zhen4=a4; 
    printf(%d. 
   }
   if(a4%16==6) 
   { 
    guo=a4+b4+c4;
    zhen4=b4; 
    printf(%d. 
   }
   if(a4%16==7) 
   { 
    guo=a4+b4+c4;
    zhen4=c4; 
    printf(%d. 
   }
   if(a4%16==8) 
   { 
%d+%d+()=%d 
%d+%d-%d=() 
()+%d-%d=%d
%d-()+%d=%d 
%d+%d-()=%d 
  
6 
你的答案是
你的答案是
你的答案是
你的答案是
你的答案是
  
  
  
   
 
 
 
 
 :
  :
 :
 :
 :
    
计算机与信息工程系《高级语言程序设计》课程设计报告 
    zhen4=a4*b4+c4;
    printf(%d.  
   } 
if(a4%16==9) 
   { 
    guo=a4*b4+c4; 
zhen4=a4; 
    printf(%d.  
 %d*%d+%d=()
你的答案是:  
()*%d+%d=%d  你的答案是:  
   } 
if(a4%16==10) 
   { 
    guo=a4*b4+c4; 
zhen4=b4; 
    printf(%d.  
   } 
if(a4%16==11) 
   { 
    guo=a4*b4+c4; 
zhen4=c4; 
    printf(%d.  
   } 
if(a4%16==12) 
   { 
    zhen4=a4*b4-c4;
    printf(%d.  
   } 
if(a4%16==13) 
   { 
    guo=a4*b4-c4; 
zhen4=a4; 
    printf(%d.  
 
 
              
 
%d*()+%d=%d 
%d*%d+()=%d 
%d*%d-%d=()
()*%d-%d=%d 
  
7 
你的答案是
你的答案是
你的答案是
你的答案是
  
  
  
 :
 :
  :
 :
    计算机与信息工程系《高级语言程序设计》课程设计报告
3.设计实现
 
3.1测试选择 
1.选择测试类型 
 
2.选择难易程度 
 
8 
 
计算机与信息工程系《高级语言程序设计》课程设计报告 
 
3.选择题目数量 
 
3.2测试结果 
1.给出题目,写出答案,选择加法 
 
                                    
9 
    计算机与信息工程系《高级语言程序设计》课程设计报告
2.选择减法 
 
 
3.选择乘法 
 
4.选择混合运算 
10 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
 
5.选择退出 
 
 
3.3.给出分数以及相应的表情
1.80-100分之间给出笑脸 
 
11 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
 
2.60-80分之间给出表情 
 
 
3.60分以下给出哭脸
12 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
 
3.4 一轮答题结束后的界面 
1.分数在60分以下,选择是否再来几题 
 
 
2.分数在60-80之间,如果前一轮不是最高难度选择是否挑战更高难度
13 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
 
3.分数在60-80之间,如果前一轮是最高难度选择是否再来几题 
 
4.分数在80-100分之间,如果前一轮是最高难度则返回菜单 
14 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
 
5.分数在80-100分之间,如果前一轮不是最高难度则选择是否挑战更高难度 
          
             4  参考文献
 
   
 
[1]谭浩强著.C程序设计(第二版).北京:清华大学出版社,1999
[2]谭浩强编著.QBASIC语言教程.北京:电子工业出版社,1997
[3]谭浩强.C程序设计[M].3版.北京:清华大学出版社,2005
[4]Herbert
Schildt著.戴健鹏译.C语言大全(第二版).北京:电子工业
出版社,1994 
 
 
 
                   
 
  
 
15 
    计算机与信息工程系《高级语言程序设计》课程设计报告
附录:源代码 
 
#include
#include
#include
#include
 
int style();
void xiao(); 
void wu(); 
void ku();
void jia(); 
void jian(); 
void cheng();
void hun(); 
void main() 
{ 
 for( 
; ) 
 { 
  switch(style()) 
  { 
case 1: 
   jia(); 
   break; 
  case 2:
   jian(); 
   break; 
  case 3: 
cheng(); 
   break; 
  case 4: 
   hun();
   break; 
  case 5: 
printf(欢迎再次使用,再见n
   exit(0); 
  } 
 }
} 
void xiao() 
{ 
 int x1,x2; 
char diamond1[][30]={{' ',' ','*',' ',' ',' ','
',' ',' ',' ','*',' 
16 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
','
',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ','
',' ',' ','*',' ',' 
'}, 
 {'*',' ',' ','
','*',' ',' ',' ','*',' ',' ',' ','*',' ',' ','
',' 
','*',' ',' ',' ','*',' ',' ',' ','*','
',' ',' ','*'}, 
 {' ',' ',' ',' ',' ',' ','
',' ',' ',' ',' ',' ',' ',' ',' ',' ',' 
','
',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','
'}, 
 {' ',' ',' ',' ','*',' ',' ',' ','*','
',' ',' ',' ',' ',' ',' ',' 
',' ',' ',' ','
','*',' ',' ',' ','*',' ',' ',' ',' '}, 
 {'
',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ','
',' ',' ',' ',' 
',' ',' ',' ',' ',' ','
','*',' ',' ',' ',' ',' ',' '}}; 
for(x1=0;x1<5;x1++) 
 { 
for(x2=0;x2<30;x2++) 
   printf(
printf(
 } 
} 
void wu() 
{ 
 int
g1,g2; 
 char diamond2[][30]={{' ',' ','*','
',' ',' ',' ',' ',' ',' ','*',' 
',' ',' ','
',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ','
','*',' ',' 
'}, 
 {'*',' ',' ',' ','*','
',' ',' ','*',' ',' ',' ','*',' ',' ',' ','
','*',' ',' ',' ','*',' ',' ',' ','*',' ','
',' ','*'}, 
 {' ',' ',' ',' ',' ',' ',' ','
',' ',' ',' ',' ',' ',' ',' ',' ',' 
',' ','
',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
    {' ','*',' ','*',' ',' ',' ',' ',' ','*','
','*',' ',' ',' ',' ',' 
',' ','*',' ','*','
',' ',' ',' ',' ','*',' ','*',' '}}; 
for(g1=0;g1<4;g1++) 
  printf(
 printf(
}
void ku() 
{ 
 int r1,r2; 
 char
diamond3[][18]={{'*','*',' ',' ',' ','*','*',' ','
',' ',' 
','*','*',' ',' ',' ','*','*'}, 
{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','
',' ',' ',' ',' 
',' '},{' ',' ',' ','*',' ','
',' ',' ',' ',' ',' ',' ',' ',' ','*',' ','
',' '}, 
 {' ','*',' ',' ',' ','*',' ','
',' ',' ',' ',' ','*',' ',' ',' ','*',' 
'}};
 for(r1=0;r1<4;r1++) 
17 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
 {
  for(r2=0;r2<18;r2++) 
   printf(
printf(
 } 
} 
int style() 
{ 
 int
num; 
 printf(
 printf(目录-*-*-*-*-*-n
printf(选择加法题请按1n
 printf(选择减法题请按2n
printf(选择乘法题请按3n
 printf(选择混合题请按4n
printf(选择退出请按5n
 printf(
printf(请选择测试题类型,输入数字:
 scanf(
if(num>0&&num<6) 
  return(num); 
 else 
printf(输入错误,请重新输入!n
} 
void jia() 
{ 
int a1,b1,ans1,zhen1,i1,k1,m1,n1,he; 
 int q1;
 printf(
 printf(
 printf(
 printf(简单
2.适中 3.复杂 请选择题目的难易程度:
 scanf(
 for(   )
 { 
  int right1=0,score1=0; 
m1=(int)(pow(10,n1)); 
printf(请输入你想做的题目数量:
  scanf(
  printf(
printf(
  printf(
  for(i1=0;i1
18 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
srand(time(0)); 
   a1=rand()%m1; 
b1=rand()%m1; 
   if(a1%3==0) 
   { 
zhen1=a1+b1; 
    printf(你的答案是:  
   } 
if(a1%3==1) 
   { 
    he=a1+b1; 
zhen1=a1; 
    printf(你的答案是:  
   } 
if(a1%3==2) 
   { 
    he=a1+b1; 
zhen1=b1; 
    printf(你的答案是:  
   } 
scanf(
   if(ans1==zhen1) 
   { 
printf(恭喜你,回答正确!n
    right1++; 
   } 
else 
printf(很遗憾,回答错误!正确答案是%d,别灰心,继续努力!
n
printf(
   printf(
  } 
score1=(100*right1)k1; 
  printf(你答对了%d道题!n
if (score1>=80&&score1<=100) 
   { 
printf(你考了%d分,很不错,再接再厉哟!n
    xiao(); 
n1++; 
    if(n1==4) 
     break; 
else 
    { 
printf(你想挑战更高难度的题目吗?是请按1,不是请按
19 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
2:
     scanf(
     if(q1==2) 
      break;
    } 
   } 
  if(score1>=60&&score1<80)
   { 
printf(你考了%d分,还不错,但不是特别理想,继续努力!
n
    wu();
    if(n1=3) 
    { 
printf(你想再来几题吗?是请按1,不是请按2: 
     scanf(
if(q1==2) 
      break; 
    } 
    else
    { 
     printf(你想挑战更高难度吗?是请按1,不是请按2:
     scanf(
     if(q1==1) 
      n1++;
     else 
      break; 
    } 
   }
  if(score1<60) 
   { 
printf(你只考了%d分,成绩不理想,别灰心,继续努力!
n
    ku();
    if(n1!=3) 
    { 
printf(你想再来几题吗?是请按1,不是请按2: 
     scanf(
if(q1==2) 
      break; 
    } 
   } 
} 
} 
void jian() 
20 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
int
a2,b2,ans2,zhen2,i2,k2,m2,n2,cha; 
int q2;
printf(
printf(
printf(
printf(简单
2.适中 3.复杂 请选择题目的难易程度:
scanf(
for(   )
{ 
 int right2=0,score2=0; 
m2=(int)(pow(10,n2)); 
 printf(请输入你想做的题目数量:
scanf(
 printf(
 printf(
 printf(
for(i2=0;i2
  srand(time(0));
  a2=rand()%m2; 
  b2=rand()%m2; 
if(a2%3==0) 
  { 
   zhen2=a2-b2; 
printf(你的答案是:  
  } 
  if(a2%3==1) 
  {
   cha=a2-b2; 
   zhen2=a2; 
printf(你的答案是:  
  } 
  if(a2%3==2) 
  {
   cha=a2-b2; 
   zhen2=b2; 
printf(你的答案是:  
  } 
  scanf(
if(ans2==zhen2) 
  { 
printf(恭喜你,回答正确!n
   right2++; 
21 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
   }
   else 
printf(很遗憾,回答错误!正确答案是%d,别灰心,继续努力!
n
printf(
   printf(
  } 
score2=(100*right2)k2; 
  printf(你答对了%d道题!n
if (score2>=80&&score2<=100) 
   { 
printf(你考了%d分,很不错,再接再厉哟!n
    xiao(); 
n2++; 
    if(n2==4) 
     break; 
else 
    { 
printf(你想挑战更高难度的题目吗?是请按1,不是请按
2: 
scanf(
     if(q2==2) 
      break; 
} 
   } 
  if(score2>=60&&score2<80) 
{ 
    printf(你考了%d分,还不错,但不是特别理想,继续努力!
n
wu(); 
    if(n2=3) 
    { 
printf(你想再来几题吗?是请按1,不是请按2: 
     scanf(
if(q2==2) 
      break; 
    } 
    else
    { 
     printf(你想挑战更高难度吗?是请按1,不是请按2:
     scanf(
     if(q2==1) 
      n2++;
     else 
22 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
break; 
    } 
   } 
  if(score2<60) 
{ 
    printf(你只考了%d分,成绩不理想,别灰心,继续努力!
n
ku(); 
    if(n2!=3) 
    { 
printf(你想再来几题吗?是请按1,不是请按2: 
     scanf(
if(q2==2) 
      break; 
    } 
   } 
} 
} 
void cheng() 
{ 
 int
a3,b3,ans3,zhen3,i3,k3,m3,n3,ji; 
 int q3; 
printf(
 printf(
 printf(
 printf(简单 2.适中
3.复杂 请选择题目的难易程度:
 scanf(
 for(   ) 
 {
  int right3=0,score3=0; 
m3=(int)(pow(10,n3)); 
printf(请输入你想做的题目数量:
  scanf(
  printf(
printf(
  printf(
  for(i3=0;i3
   srand(time(0)); 
a3=rand()%m3; 
   b3=rand()%m3; 
if(a3%3==0) 
   { 
    zhen3=a3*b3; 
23
    计算机与信息工程系《高级语言程序设计》课程设计报告 
printf(你的答案是:  
   } 
   if(a3%3==1) 
{ 
    ji=a3*b3; 
    zhen3=a3; 
printf(你的答案是:  
   } 
   if(a3%3==2) 
{ 
    ji=a3*b3; 
    zhen3=b3; 
printf(你的答案是:  
   } 
   scanf(
if(ans3==zhen3) 
   { 
printf(恭喜你,回答正确!n
    right3++; 
   } 
else 
printf(很遗憾,回答错误!正确答案是%d,别灰心,继续努力!
n
printf(
   printf(
  } 
score3=(100*right3)k3; 
  printf(你答对了%d道题!n
if (score3>=80&&score3<=100) 
   { 
printf(你考了%d分,很不错,再接再厉哟!n
    xiao(); 
n3++; 
    if(n3==4) 
     break; 
else 
    { 
printf(你想挑战更高难度的题目吗?是请按1,不是请按
2: 
scanf(
     if(q3==2) 
      break; 
} 
   } 
24 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
if(score3>=60&&score3<80) 
   { 
printf(你考了%d分,还不错,但不是特别理想,继续努力!
n
    wu();
    if(n3=3) 
    { 
printf(你想再来几题吗?是请按1,不是请按2: 
     scanf(
if(q3==2) 
      break; 
    } 
    else
    { 
     printf(你想挑战更高难度吗?是请按1,不是请按2:
     scanf(
     if(q3==1) 
      n3++;
     else 
      break; 
    } 
   }
  if(score3<60) 
   { 
printf(你只考了%d分,成绩不理想,别灰心,继续努力!
n
    ku();
    if(n3!=3) 
    { 
printf(你想再来几题吗?是请按1,不是请按2: 
     scanf(
if(q3==2) 
      break; 
    } 
   } 
} 
} 
void hun() 
{ 
 int
a4,b4,c4,ans4,zhen4,i4,k4,m4,n4,guo; 
 int q4;
 printf(
 printf(
 printf(
25 
    计算机与信息工程系《高级语言程序设计》课程设计报告 
printf(简单 2.适中 3.复杂 请选择题目的难易程度:
 scanf(
for(   ) 
 { 
  int right4=0,score4=0;
  m4=(int)(pow(10,n4)); 
printf(请输入你想做的题目数量:
  scanf(
  printf(
printf(
  printf(
  for(i4=0;i4
   srand(time(0)); 
a4=rand()%m4; 
   b4=rand()%m4; 
c4=rand()%m4; 
   if(a4%16==0) 
   { 
zhen4=a4+b4+c4; 
    printf(%d.   %d+%d+%d=()
你的答案是
   } 
   if(a4%16==1) 
   {
    guo=a4+b4+c4; 
    zhen4=a4; 
printf(%d.  ()+%d+%d=%d  你的答案是
   } 
if(a4%16==2) 
   { 
    guo=a4+b4+c4; 
zhen4=b4; 
    printf(%d.  %d+()+%d=%d
你的答案是
   } 
   if(a4%16==3) 
   {
    guo=a4+b4+c4; 
    zhen4=c4; 
printf(%d.  %d+%d+()=%d  你的答案是
   } 
26 
  
:  
:  
:  
:
    计算机与信息工程系《高级语言程序设计》课程设计报告 
if(a4%16==4) 
   { 
    zhen4=a4+b4-c4; 
printf(%d.   %d+%d-%d=()  你的答案是:  
   }
   if(a4%16==5) 
   { 
    guo=a4+b4-c4;
    zhen4=a4; 
    printf(%d.  
   }
   if(a4%16==6) 
   { 
    guo=a4+b4+c4;
    zhen4=b4; 
    printf(%d.  
   }
   if(a4%16==7) 
   { 
    guo=a4+b4+c4;
    zhen4=c4; 
    printf(%d.  
   }
   if(a4%16==8) 
   { 
zhen4=a4*b4+c4; 
    printf(%d.  
   }
   if(a4%16==9) 
   { 
    guo=a4*b4+c4;
    zhen4=a4; 
    printf(%d.  
   }
   if(a4%16==10) 
   { 
guo=a4*b4+c4; 
    zhen4=b4; 
()+%d-%d=%d  
%d-()+%d=%d  
%d+%d-()=%d
%d*%d+%d=() 
()*%d+%d=%d  
 
27 
你的答案是
你的答案是
你的答案是
你的答案是
你的答案是
  
   
  
  
:
:
:
:
:
 
计算机与信息工程系《高级语言程序设计》课程设计报告 
    printf(%d.
%d*()+%d=%d  你的
   } 
   if(a4%16==11)
   { 
    guo=a4*b4+c4; 
    zhen4=c4;
    printf(%d.  %d*%d+()=%d  你的
答案是:
答案是:  
   } 
   if(a4%16==12) 
{ 
    zhen4=a4*b4-c4; 
    printf(%d.
%d*%d-%d=() 
   } 
   if(a4%16==13) 
{ 
    guo=a4*b4-c4; 
    zhen4=a4; 
printf(%d.  ()*%d-%d=%d 
   } 
if(a4%16==14) 
   { 
    guo=a4*b4-c4; 
zhen4=b4; 
    printf(%d.  %d*()-%d=%d 
} 
   if(a4%16==15) 
   { 
guo=a4*b4+c4; 
    zhen4=c4; 
    printf(%d.
%d*%d-()=%d 
   } 
   scanf(
if(ans4==zhen4) 
   { 
printf(恭喜你,回答正确!n
    right4++; 
   } 
else 
                                   
28
  
你的答案是
你的答案是
你的答案是
你的答案是
  
  
  
 
 
 
:
:
:
:
计算机与信息工程系《高级语言程序设计》课程设计报告 
printf(很遗憾,回答错误!正确答案是%d,别灰心,继续努力!
n
printf(
   printf(
  } 
score4=(100*right4)k4; 
  printf(你答对了%d道题!n
if (score4>=80&&score4<=100) 
   { 
printf(你考了%d分,很不错,再接再厉哟!n
    xiao(); 
n4++; 
    if(n4==4) 
     break; 
else 
    { 
printf(你想挑战更高难度的题目吗?是请按1,不是请按
2: 
scanf(
     if(q4==2) 
      break; 
} 
   } 
  if(score4>=60&&score4<80) 
{ 
    printf(你考了%d分,还不错,但不是特别理想,继续努力!
n
wu(); 
    if(n4=3) 
    { 
printf(你想再来几题吗?是请按1,不是请按2: 
     scanf(
if(q4==2) 
      break; 
    } 
    else
    { 
     printf(你想挑战更高难度吗?是请按1,不是请按2:
     scanf(
     if(q4==1) 
      n4++;
     else 
      break; 
    } 
29
    计算机与信息工程系《高级语言程序设计》课程设计报告 
   }
  if(score4<60) 
   { 
printf(你只考了%d分,成绩不理想,别灰心,继续努力!
n
    
    
    
    
    
    
   } 
 } 
}   
 
  
 
 
ku(); 
if(n4!=3) 
{ 
printf(你想再来几题吗?是请按1,不是请按2: 
 scanf(
if(q4==2) 
  break; 
} 
30