當前位置:首頁 » 編程語言 » c語言小學生輔助
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言小學生輔助

發布時間: 2022-08-10 22:35:45

⑴ 小學生輔助考試系統(100以內加減乘除) c語言編程

if(i>=0){
fraction = getInt(new StringBuffer(num).reverse().toString());
if(fraction.equals("0")){
return "";
}

⑵ C語言,設計一個程序幫助小學生練習數學。

1L的哥們竟然沒有分數也沒有讀寫文件記錄,我在他的基礎上加了這個功能,採納誰都可以哦~
#include <stdio.h>
#include <ctype.h>
#include <time.h>
#include <stdlib.h>
#include <windows.h>
#define IDNO_LENGTH 6
#define CALC_KIND 4
#define CALC_NUM 10

bool checkNo(char idNo[]);
char getSignal();
int getResult(int,int,char);
void takeTest();

//main函數
void main()
{
printf("Please input your four digit ID no(begin with two letters):");
char idNo[IDNO_LENGTH];
do
{
scanf("%s",&idNo);
fflush(stdin);
} while(checkNo(idNo)==false);

printf("1.Start a test\t2.Check score\t3.Exitb\n");
int choose;
do
{
printf("選擇:");
scanf("%d",&choose);
fflush(stdin);
} while(choose!=1 && choose!=2&& choose!=3);

if(choose==1)
{
takeTest();
}else if(choose==2)
{
FILE *fp;
char ch;
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);
}
}

//獲取隨機運算符
char getSignal()
{
char signal[CALC_KIND]={'+','-','*','/'};
srand((unsigned)time(NULL));
return signal[rand()%4];
}

//獲取隨機數
int random(double start, double end)
{
return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0));
}

//運算
int getResult(int num1,int num2,char signal)
{
int res;
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");
}
return res;
}

//列出10道題
void takeTest()
{
printf("開始答題,每道題10分,總共100分\n");
clock_t startTime;
startTime=clock();
int index;
int giveRes;
int num1;
int num2;
int score=0;
char signal;
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
bool checkNo(char idNo[])
{
int index;
bool flag;
flag=true;
for(index=0;index<IDNO_LENGTH;index++)
{
if(index<2)
{
if(!isalpha(idNo[index]))
{
flag=false;
printf("ID no 不符合規則,重新輸入:");
break;
}
}
else
{
if(!isdigit(idNo[index]))
{
flag=false;
printf("ID no 不符合規則,重新輸入:");
break;
}
}
}
return flag;
}

⑶ c語言小學生數學CAI系統

#include
#include
#include
#include
#define MaxQSize 80

float qlist[MaxQSize],qlist1[MaxQSize],qlist2[MaxQSize]; //定義三個全局隊列
int front=0,rear=0,front1=0,front2=0,rear1=0,rear2=0,count=0,count1=0,count2=0;//定義三個隊列頭結點、尾結點、數據個數
main()
{
char c[80];
void Enter(float),pop(),ClearStack();
printf("input string:(n:sin,o:cos,s:sqrt)\n");
while(gets(c),*c!='q' ||*c!='Q')
{
switch(*c)
{
case '+':
case '*':
case 's':
case 'n': //求SIN
case 'o': //求COS
case '/': //將符號入第一個隊列
{
if(count==MaxQSize)
{
printf("Quere overflow!");
exit(1);
}
count++;
qlist[rear]=*c;
rear=(rear+1)%MaxQSize;
break;}
case '-':
{
if(strlen(c)>1) //如果是負號,則將負號和數一起入第二個隊列
Enter(atof(c));
else //否則,說明是減號,入第一隊列
if(count==MaxQSize)
{
printf("Quere overflow!");
exit(1);
}
count++;
qlist[rear]=*c;
rear=(rear+1)%MaxQSize;
break;}
case '=':
pop(); //顯示結果
break;
case 'c':
ClearStack();
break;
case 'q':
ClearStack();
exit(1);
default:
Enter(atof(c));
break;
}
}
return 0;
}

void Enter(float num) //將數據入第二個隊列
{
if(count1==MaxQSize)
{
printf("Queue overflow!\n");
exit(1);
}
count1++;
qlist1[rear1]=num;
rear1=(rear1+1)%MaxQSize;

}

void ClearStack() //將三個隊列清空
{
count=0;
count1=0;
)%MaxQSize;
QInsert(number);
}
break;

case '-':
if(count2==0)
{
num2=QFront1();
number=num1-num2;
printf("number=%f\n",number);
QInsert(number);
}
else
{
number=qlist2[front2]-num1;
printf("number=%f\n",number);
front2=(front2+1)%MaxQSize;
QInsert(number);
}
break;

⑷ c語言 計算機輔助教育:幫助小學生學習加法,用rand函數產生一對1位數的整數,如下形

#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;
int main()
{
srand(time(0));
int a= rand()%10;
int b=rand()%10;
cout<<a<<b;
return 0;
}
不過這樣產生的數字式0~9

⑸ C語言編程,小白求教,關於小學生計算輔助教學系統的改善

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main (void)
{
int a,b,c,d,counter1=0;
float counter;

srand(time(NULL));
do{
counter=0; //這里改了
for(counter1=0;counter1<10;counter1++)
{
a=1+rand()%(10);
b=1+rand()%(10);
c=1+rand()%(4);
switch(c)
{

case 1:
printf ("%d X %d = ?",a,b);
scanf("%d",&d);
if(d==a*b)
{
printf("Right!\n");
counter++;
}
else
printf("Wrong!\n");
break;

case 2:
printf ("%d + %d = ?",a,b);
scanf("%d",&d);
if(d==a+b)
{
printf("Right!\n");
counter++;
}
else
printf("Wrong!\n");
break;

case 3:
printf ("%d - %d = ?",a,b);
scanf("%d",&d);
if(d==a-b)
{
printf("Right!\n");
counter++;
}
else
printf("wrong!\n");
break;

case 4:
printf ("%d / %d = ?",b*(a/b),b);
scanf("%d",&d);
if(d==(a/b)) //這里改了
{
printf("Right!\n");
counter++;
}
else
printf("Wrong!\n");
break;
}
}
printf("Your score is %f,and your correcting rate is %f %% \n",counter,100*counter/(10.0) );
if(counter<=7)
printf("You shoud do it again.\n");
system("pause");
}while(counter<=7);

}

⑹ c語言程序設計(1) 小學生計算機輔助教學系統

right_prompt()
{
intx;

x=rand()%4+1;
switch(x){
case1:
printf("VeryGood! ");
break;
case2:
printf("Excellent! ");
break;
case3:
printf("Nicework! ");
break;
case4:
printf("Keepupthegoodwork! ");
break
}
}

wrong_prompt()
{
intx;

x=rand()%4+1;
switch(x){
case1:
printf("No.Pleasetryagain. ");
break;
case2:
printf("Wrong.Tryoncemore. ");
break;
case3:
printf("Don』tgiveup! ");
break;
case4:
printf("Notcorrect.Keeptrying. ");
break;
}
}

⑺ C語言編程:小學生數學輔助學習系統

題目是可以做的,不過現在沒有時間,我們要做資料庫課程設計,馬上要考試了!

⑻ 請用c語言編寫下列程序 6、小學數學輔助教學系統 設計內容:利用該系統可以鍛煉小學生的數學運算能

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

intcal(int);
voidgen(int,int&,int&,int&);

intmain(void)
{
intm;//使用數字位數,當m=4,程序退出
srand((int)time(0));
printf(" 請選擇下面的一個項目: ");
printf(" 1...........................一位數 ");
printf(" 2...........................兩位數 ");
printf(" 3...........................三位數 ");
printf(" 4...........................退出 ");
do{
scanf("%d",&m);
switch(m){
case1:
case2:
case3:
cal(m);break;
case4:
break;
default:
printf("輸入錯誤,請重新輸入:");
}
}while(m!=4);
return0;
}

intcal(intm){
//m:數字位數
intnum1,num2,smb;
inti,k;
intsum,res;
intu_sum,u_res;
intwrite;
boolT;
intscore;
intfen[]={10,8,6};
//num1:第一操作數
//num2:第二操作數
//smb:操作符,有:+,-,*,/,%五種(1-5)
//sum表示加法操作的和,減法操作的差,乘法操作的積以及除法操作的商。
//res表示除法操作的余數,以及取余操作的余數。
//write:正確答案數目
//T:答對題
//score:總分
write=0;
score=0;
for(i=0;i<10;i++){
gen(m,num1,num2,smb);//生成操作數和相應的操作符
switch(smb){//生成正確答案
case1://加法
sum=num1+num2;break;
case2://減法
sum=num1-num2;break;
case3://乘法
sum=num1*num2;break;
case4://除法
sum=num1/num2;
res=num1%num2;
break;
case5://取余
res=num1%num2;
}
for(k=0;k<3;k++){
switch(smb){
case1://加法
printf("%d+%d=",num1,num2);
scanf("%d",&u_sum);
if(sum==u_sum){
write=write+1;
T=true;
}else{
T=false;
}
break;
case2://減法
printf("%d-%d=",num1,num2);
scanf("%d",&u_sum);
if(sum==u_sum){
write=write+1;
T=true;
}else{
T=false;
}
break;
case3://乘法
printf("%d*%d=",num1,num2);
scanf("%d",&u_sum);
if(sum==u_sum){
write=write+1;
T=true;
}else{
T=false;
}
break;
case4://除法
printf("%d/%d=商,余數",num1,num2);
scanf("%d,%d",&u_sum,&u_res);
if(sum==u_sum&&res==u_res){
write=write+1;
T=true;
}else{
T=false;
}
break;
case5://取余
printf("%d%%%d=",num1,num2);
scanf("%d",&u_res);
if(res==u_res){
write=write+1;
T=true;
}else{
T=false;
}
break;
default:
;
}
if(T){
score=score+fen[k];
switch(k){
case0:
printf("完全正確,你非常聰明!加%2d分 ",fen[k]);break;
case1:
printf("答對了,你很棒!加%2d分 ",fen[k]);break;
case2:
printf("答對了,祝賀你!加%2d分 ",fen[k]);break;
}
break;
}elseif(k==2){
printf("非常遺憾你又答錯了,請繼續做下一題。本題的正確答案為");
switch(smb){
case1:
case2:
case3:
printf("%d ",sum);break;
case4:
printf("%d,%d ",sum,res);break;
case5:
printf("%d ",res);break;
}
}else{
printf("你答錯了,繼續努力! ");
}
}
}
printf("你本次練習的總分為%d ",score);
return0;
}

voidgen(intm,int&num1,int&num2,int&smb){
intmin[]={0,10,100};
intmax[]={9,99,999};
inttemp;
m=m-1;
smb=rand()%(m+3)+1;
num1=rand()%(max[m]-min[m]+1)+min[m];
num2=rand()%(max[m]-min[m]+1)+min[m];
if(num1<num2&&smb==2){
temp=num1;
num1=num2;
num2=temp;
}
while(num2==0&&smb>3){
num2=rand()%(max[m]-min[m]+1)+min[m];
}
}

⑼ 求大神用C語言設計一個程序幫助小學生練習數學。(具體要求見問題補充)

你自己修改修改:
#include <stdio.h>
#include <ctype.h>
#include <time.h>
#include <stdlib.h>
#include <windows.h>
#define IDNO_LENGTH 6
#define CALC_KIND 4
#define CALC_NUM 10

bool checkNo(char idNo[]);
char getSignal();
int getResult(int,int,char);
void takeTest();

//main函數
void main()
{
printf("Please input your four digit ID no(begin with two letters):");
char idNo[IDNO_LENGTH];
do
{
scanf("%s",&idNo);
fflush(stdin);
} while(checkNo(idNo)==false);

printf("1.Start a test\t2.Exitb\n");
int choose;
do
{
printf("選擇:");
scanf("%d",&choose);
fflush(stdin);
} while(choose!=1 && choose!=2);

if(choose==1)
takeTest();
else
exit(0);
}

//獲取隨機運算符
char getSignal()
{
char signal[CALC_KIND]={'+','-','*','/'};
srand((unsigned)time(NULL));
return signal[rand()%4];
}

//獲取隨機數
int random(double start, double end)
{
return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0));
}

//運算
int getResult(int num1,int num2,char signal)
{
int res;
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");
}
return res;
}

//列出10道題
void takeTest()
{
clock_t startTime;
startTime=clock();
int index;
int giveRes;
int num1;
int num2;
char signal;
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");
}
else
{
printf("wrong\n");
}
}

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

//檢測idNo是否合規則,合規則返回true
bool checkNo(char idNo[])
{
int index;
bool flag;
flag=true;
for(index=0;index<IDNO_LENGTH;index++)
{
if(index<2)
{
if(!isalpha(idNo[index]))
{
flag=false;
printf("ID no 不符合規則,重新輸入:");
break;
}
}
else
{
if(!isdigit(idNo[index]))
{
flag=false;
printf("ID no 不符合規則,重新輸入:");
break;
}
}
}
return flag;
}

⑽ c語言編程作業小學生計算機輔助教學系統

#include<stdio.h>
#include<stdlib.h>
#ifndefRedContritio
#include<string.h>
#else
#message("ThisisRedContritio'senergy")
#endif
#include<time.h>//用到了time函數
intjia(inta,intb){
returna+b;
}
charsolutation[999]="";
intjian(inta,intb){
returna-b;
}

intcheng(inta,intb){
returna*b;
}

floatchu(inta,intb){
return1.0*a/b;
}
intsolve(inta,intb,intc){
if(c==1)returnjia(a,b);
if(c==2)returnjian(a,b);
if(c==3)returncheng(a,b);
if(c==4)return(int)chu(a,b);
}
intmain(){
inta,b,c,answer;
charcmd;
srand(time(NULL));//用時間做種,每次產生隨機數不一樣

printf("entertostart,-1toquit:");
while((cmd=getchar())!='-'){
a=rand()%10+1;//產生1-10的隨機數
b=rand()%10+1;
c=rand()%4+1;
answer=solve(a,b,c);
charys;
switch(c){
case1:
ys='+';
break;
case2:
ys='-';
break;
case3:
ys='*';
break;
case4:
ys='/';
break;
}

printf("%d%c%d=? ",a,ys,b);

intr=0,solution;
while(!r){
printf("pleaseinputyouranswer. ");
memset(solutation,0,sizeof(solutation));
scanf("%s",solutation);
solution=atoi(solutation);
if(!(solution-answer)){//除法出現小數這里是向下取整,不是四捨五入
puts("Right!");
r=1;
}elseputs("Wrong!Pleasetryagain.");
}

printf("continue?(-1toquit):");
getchar();//處理緩沖區的多餘回車
}
return0;
}

望採納,多餘的printf是為了增強交互性,不需要可刪掉。另除法不是很完善,自己可規定小數精度,對代碼進行修改。