小学数学试题出题系统
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