C语言设计小学生数学辅助学习系统Word文档下载推荐.docx

上传人:b****2 文档编号:927836 上传时间:2023-04-29 格式:DOCX 页数:18 大小:19.74KB
下载 相关 举报
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第1页
第1页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第2页
第2页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第3页
第3页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第4页
第4页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第5页
第5页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第6页
第6页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第7页
第7页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第8页
第8页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第9页
第9页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第10页
第10页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第11页
第11页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第12页
第12页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第13页
第13页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第14页
第14页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第15页
第15页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第16页
第16页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第17页
第17页 / 共18页
C语言设计小学生数学辅助学习系统Word文档下载推荐.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言设计小学生数学辅助学习系统Word文档下载推荐.docx

《C语言设计小学生数学辅助学习系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言设计小学生数学辅助学习系统Word文档下载推荐.docx(18页珍藏版)》请在冰点文库上搜索。

C语言设计小学生数学辅助学习系统Word文档下载推荐.docx

Step2:

定义菜单函数,并用printf输出。

Step3:

先定义compute()函数,在其中嵌套switch语句,做随机数的四则运算。

Step4:

定义一个Print()函数,当使用者答对或答错时,调用linerel()函数,做出相应的图像并显示。

同时放出相应的乐曲,并做正确或错误题数的累积。

Step5:

在主函数中,调用图形函数,设置一个欢迎界面。

Step6:

调用菜单函数。

Step7:

调用compute()函数,并用switch语句选择同号运算和混合运算。

Step8:

用printf打印结果。

五.函数模块功能

1.迎界面模块

在此模块中,我首先定义了显示器及模式,然后通过setbkcolor()函数定义了背景颜色,用outtextxy()和settextstyle()函数定义了字符串输出的位置以及大小和字体。

2.声音模块

在此模块中,首先定义了音符的长短和频率。

然后通过初始化扬声器,来得到每个音符。

最后,根据自己的喜好,编写两段音乐。

3.菜单模块

在此模块中,首先用Menu()函数定义菜单。

然后输

入所需要的菜单目录,最后在主函数中调用Menu()

4.四则运算模块

在此函数中,通过调用switch语句,分成四种情况,每种运算符分别代表一种情况,而在这四种情况中,又分别调用switch语句,又分成四种情况,从而形成了三个数的四则运算。

最后在主函数中调用这些情况。

5.显示对错信息模块

在此函数中,通过调用相应的图像和音乐,给使用者提供对错信息,并累加错误题数和正确题数。

六、流程图

初始化图形显示模式

设棕色背景

输出“welcome”

输入菜单选项

读入选项m

m=1

m=2

m=3

m=4

m=5

m=6

else

直到

随机产生a;

b;

c

随机opop2

结束

输出错误提示信息

a+b+c<

=2

Op1

Op2

Op3

Op4

读入ANSWER值

OP2=1

OP2=2

OP2=3

OP2=4

result<

=a+b+c

=a-bc

=a*b*c

=a/b/c

产生随机a,b,c

计算机应result

读入answer

N

RESULT

Y

ANSWER

画错号,奏哀乐

画对号,奏欢歌

*w++

*r++

Score<

=((float)100/all)*r

printf输出对题数,错题数,总题数和分数

七.源程序清单

#include<

stdio.h>

#include<

conio.h>

stdlib.h>

graphics.h>

dos.h>

bios.h>

time.h>

#defineN164/*定义音长全音符音长*/

#defineN232/*半音符的音长*/

#defineN416/*4分音符的音长*/

#defineN88/*8分音符的音长*/

#defineN164/*16分音符的音长*/

#defineEND0/*结束标志*/

enumNDTES

{

C10=131,D10=147,E10=165,F10=175,G10=196,

A10=220,B10=247,C0=262,D0=296,E0=330,F0=349,G0=392,

A0=440,B0=494,C1=523,D1=587,E1=659,F1=698,

G1=784,A1=880,B1=988,C2=1047,D2=1175,

E2=1319,F2=1397,G2=1568,A2=1760,B2=1976

};

/*定义音符与频率的对应关系*/

song1[]={C0,N8,C0,N8,G0,N8,G0,N8,A0,N8,A0,N8,G0,N4,

F0,N8,F0,N8,E0,N8,E0,N8,D0,N8,D0,N8,C0,N4,

G0,N8,G0,N8,F0,N4,E0,N8,E0,N8,D0,N4,

G0,N8,G0,N8,F0,N8,F0,N8,E0,N8,E0,N8,D0,N4,

C0,N8,E0,N8,G0,N4,A0,N8,C1,N8,G0,N4,

F0,N8,F0,N8,E0,N8,E0,N8,D0,N8,D0,N8,C0,N4,END,END};

/*形成乐谱*/

song2[]={C0,N8,D0,N8,E0,N8,F0,N8,G0,N8,A0,N8,B0,N8,

C1,N8,D1,N8,E1,N8,F1,N8,G1,N8,A1,N8,B1,N8,END,END};

voidMenu(void)

printf("

1.+\n"

);

2.-\n"

3.*\n"

4./\n"

5.Mixed\n"

6.Exit\n"

Pleaseenteryourchoice:

"

}

SONG1()

intnote=0,fre,dur,control;

clock_tgoal;

while(song1[note]!

=0)

{

fre=song1[note];

/*取出乐谱数组中的频率*/

dur=song1[note+1];

/*取出乐谱数组中的音长*/

if(kbhit())break;

/*如果有按键,则推出音乐播放*/

if(fre)

outportb(0x43,0xb6);

/*初始化扬声器端口*/

fre=(unsigned)(1193180L/fre);

outportb(0x42,(char)(fre>

>

8));

/*往扬声器端口送出声音频率值*/

outportb(0x42,(char)(fre>

control=inportb(0x61);

outportb(0x61,(control)|0x3);

/*开始发音*/

}

goal=(clock_t)dur+clock();

/*设定延迟时间*/

while(goal>

clock());

/*如果时间未到,等待;

时间超出则退出*/

outportb(0x61,control);

/*停止发音*/

goal=(clock_t)0;

note=note+2;

/*移到下一个音符*/

SONG2()

while(song2[note]!

fre=song2[note];

dur=song2[note+1];

intCompute2(inta,intb,intc,intop,intop2)/*定义一个新的运算符*/

intanswer,result;

switch(op)

case1:

switch(op2)/*当OP为加号时,OP2为四种运算符*/

{

case1:

printf("

%d+%d+%d="

a,b,c);

result=a+b+c;

break;

case2:

%d+%d-%d="

result=a+b-c;

case3:

%d+%d*%d="

result=a+b*c;

break;

case4:

printf("

%d+%d/%d="

result=a+b/c;

}

break;

case2:

switch(op2)/*当OP为减号时,OP2为四种运算符*/

case1:

%d-%d+%d="

result=a-b+c;

case2:

printf("

%d-%d-%d="

result=a-b-c;

case3:

%d-%d*%d="

result=a-b*c;

case4:

printf("

%d-%d/%d="

result=a-b/c;

case3:

/*当OP为乘号时,OP2为四种运算符*/

switch(op2)

%d*%d+%d="

result=a*b+c;

%d*%d-%d="

result=a*b-c;

%d*%d*%d="

result=a*b*c;

result=a*b/c;

case4:

/*当OP为除号时,OP2为四种运算符*/

switch(op2)

{

result=a+b+c;

result=a+b-c;

result=a+b*c;

result=a+b/c;

}

scanf("

%d"

&

answer);

if(result==answer)

return1;

/*如果正确,返回值为1*/

else

return0;

/*如果错误,返回值为0*/

voidPrint(intflag,int*r,int*w,int*all)

if(flag)

setcolor(RED);

/*定义颜色*/

linerel(10,20);

/*从当前点到相对增量点画一条线段*/

linerel(20,-20);

++(*r);

/*正确题数加1*/

SONG1();

/*放第一首歌*/

linerel(30,20);

moverel(-30,0);

/*光标从当前位置移动到指定位置处,移动过程中不画点*/

linerel(30,-20);

++(*w);

/*错误题数加1*/

SONG2();

moverel(-30,16);

++(*all);

/*总数加1*/

main()

floatscore;

charm;

inta,b,c,op,d,r=0,w=0,all=0,i;

intresult,answer;

intgdriver=VGA;

/*选择VGA显示器*/

intgmode=VGAHI;

/*选择VGAHI显示模式*/

intheight,width;

intexit_flag=0;

unsignedchar*temp1="

WELCOME\n"

;

initgraph(&

gdriver,&

gmode,"

/*初始化显示适配器*/

cleardevice();

/*清屏*/

setcolor(10);

setbkcolor(BROWN);

/*设置背景颜色*/

settextstyle(3,0,4);

width=textwidth(temp1);

width=textwidth(temp2);

height=textheight(temp1);

height=textheight(temp2);

outtextxy((639-width)/2,150-height/2,temp1);

/*设置字符串输出的位置*/

settextstyle(3,0,2);

/*设置输出字符的字型,输出方向和字符大小*/

outtextxy((800-width)/2,400-height/2,temp2);

getch();

/*获得一个字符*/

Menu();

/*调用菜单函数*/

m=getchar();

/*获得一个字符并赋值给C*/

srand(time(NULL));

/*设置一个随机数*/

moveto(108,112);

/*设置光标起始位置*/

switch(m)

case'

1'

:

for(i=0;

i<

10;

i++)/*设置问题数小于等于10*/

do

a=rand()%100+1;

/*随机产生一个小于100的数*/

b=rand()%100+1;

c=rand()%100+1;

}while(a+b+c>

100);

/*当结果在100之外,再次进入循环*/

d=1;

d=0;

Print(d,&

r,&

w,&

all);

2'

i++)

{do

/*系统随机产生一个小于100的数*/

}while(a-b-c>

100||a-b-c<

0);

/*当结果在100之外,0以下,再次进入循环*/

result=a-b-c;

Print(d,&

3'

{do

a=rand()%30+1;

/*系统随机产生一个小于30的数*/

b=rand()%30+1;

c=rand()%30+1;

}while(a*b*c>

result=a*b*c;

/*如果错误,返回值为0*/

4'

{

a=rand()%100+1;

b=rand()%100+1;

c=rand()%100+1;

%d/%d/%d="

result=a/b/c;

5'

charop2;

/*进入混合运算*/

op=rand()%4+1;

/*产生第一个随机运算符*/

op2=rand()%4+1;

/*产生第二个随机运算符*/

d=Compute2(a,b,c,op,op2);

6'

exit_flag=1;

default:

Inputerror!

\n"

if(exit_flag==0)

score=((float)100/all)*r;

/*计算所的所得分数*/

Therightnumber:

%d\n"

r);

Thewrongnumbre:

w);

Theallnumber:

all);

printf("

Thescoreis:

%f\n"

score);

getch();

八.程序测试

1.已完成出现欢迎界面,可以选择加、减、乘、除或混合运算

2.系统可以随机出题,以算式显示。

但满足不了运算数及结果均在100以内。

3.已完成正确打个对勾,播放一段音乐,错误,打个红X,播放另一个音乐。

4.已完成能统计正确率及得分

参考文献

苏小红等.C语言大学实用教程习题与实验指导.电子工业出版社.2004

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2