小学数学试题出题系统

别妄想泡我
833次浏览
2020年08月01日 19:12
最佳经验
本文由作者推荐

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
#include、#incl ude包函的函数。定义子函数int style()来
选择测试类型,定义子函数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
#include、#incl ude包函的函数。定义子函数int style()来
选择测试类型,定义子函数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

广州涉外经济职业学院-美术教学反思


情人节的话语-英语阅读理解100篇


山西晋中学院-民事起诉状范本


留美学生-房屋租赁合同范本


牛根生-新员工试用期工作总结


四川二本-内蒙古招生信息考试网


日本留学条件-伤感爱情古诗词


2017年两会-西安招生考试网