当前位置:新励学网 > 应试教育 > C语言,设计一个程序帮助小学生练习数学。

C语言,设计一个程序帮助小学生练习数学。

发表时间:2024-07-17 03:52:40 来源:网友投稿

1L的哥们竟然没有分数也没有读写文件记录,我在他的基础上加了这个功能,采纳谁都可以哦~

#include

#include

#include

#include

#include

#defineIDNO_LENGTH6

#defineCALC_KIND4

#defineCALC_NUM10

boolcheckNo(charidNo[]);

chargetSignal();

intgetResult(int,int,char);

voidtakeTest();

//main函数

voidmain()

{

printf(PleaseinputyourfourdigitIDno(beginwithtwoletters):);

charidNo[IDNO_LENGTH];

do

{

scanf(%s,&idNo);

fflush(stdin);

}while(checkNo(idNo)==false);

printf(1.Startatest\t2.Checkscore\t3.Exitb\n);

intchoose;

do

{

printf(选择:);

scanf(%d,&choose);

fflush(stdin);

}while(choose!=1&&choose!=2&&choose!=3);

if(choose==1)

{

takeTest();

}elseif(choose==2)

{

FILE*fp;

charch;

if((fp=fopen(score.txt,rt+))==NULL)

{

printf(\n你还没做过题目测试);

getch();

exit(1);

}

ch=fgetc(fp);

while(ch!=EOF)

{

putchar(ch);

ch=fgetc(fp);

}

fclose(fp);

}

else

{

exit(0);

}

}

//获取随机运算符

chargetSignal()

{

charsignal[CALC_KIND]={'+','-','*','/'};

srand((unsigned)time(NULL));

returnsignal[rand()%4];

}

//获取随机数

intrandom(doublestart,doubleend)

{

return(int)(start+(end-start)*rand()/(RAND_MAX+1.0));

}

//运算

intgetResult(intnum1,intnum2,charsignal)

{

intres;

switch(signal)

{

case'+':

res=num1+num2;break;

case'-':

res=num1-num2;break;

case'*':

res=num1*num2;break;

case'/':

res=num1/num2;break;

default:

res=0;

printf(运算符不符合规则\n);

}

returnres;

}

//列出10道题

voidtakeTest()

{

printf(开始答题,每道题10分,总共100分\n);

clock_tstartTime;

startTime=clock();

intindex;

intgiveRes;

intnum1;

intnum2;

intscore=0;

charsignal;

for(index=0;index<CALC_NUM;index++)

{

srand((unsigned)time(NULL));

signal=getSignal();

num1=random(0,100);

num2=random(1,100);

printf(%d%c%d=,num1,signal,num2);

scanf(%d,&giveRes);

fflush(stdin);

if(getResult(num1,num2,signal)==giveRes)

{

printf(correct\n);

score+=10;

}

else

{

printf(wrong\n);

}

}

FILE*fp=fopen(score.txt,w);

fprintf(fp,分数为%d,score);

fclose(fp);

printf(解10道题用了%lf秒\n,(double)(clock()-startTime)/CLOCKS_PER_SEC);

}

//检测idNo是否合规则,合规则返回true

boolcheckNo(charidNo[])

{

intindex;

boolflag;

flag=true;

for(index=0;index<IDNO_LENGTH;index++)

{

if(index<2)

{

if(!isalpha(idNo[index]))

{

flag=false;

printf(IDno不符合规则,重新输入:);

break;

}

}

else

{

if(!isdigit(idNo[index]))

{

flag=false;

printf(IDno不符合规则,重新输入:);

break;

}

}

}

returnflag;

}

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!