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

c語言課程設計的模板小學生測驗

發布時間: 2023-06-14 03:24:41

1. 用c語言實現一個小學生口算及自測系統,實現自動出題,根據答題情況評分並記載入檔案,並能根據成績進行排

#include <stdio.h>

#include <stdlib.h>

#include <time.h>


//產生 [a,b] 區間的隨機數

#define RANDOM(a,b) (rand()%((b+1)-(a)) + (a))


//產生 1-20 的整數,如要改變算術范圍,則修改這個宏的參數即可

#define GEN_VALUE() RANDOM(1, 20)


int main()

{

int v1, v2, t, r, a;

char op, ops[] = { '+', '-', '*', '/' };


srand( (unsigned)time(NULL) ); //用當前時間初始化隨機數種子


printf( "請答題 Ctrl+C 結束... " );

while(1)

{

v1 = GEN_VALUE(); //隨機生成第1個算數

v2 = GEN_VALUE(); //隨機生成第2個算數

op = ops[ RANDOM(0,3) ]; //隨機決定是哪個運算符


//保證第1個算數大於第2個算數,如不需要,則把這個判斷刪除即可

if( v1<v2 )

{

t = v1;

v1 = v2;

v2 = t;

}


//如果運算符為除法,且v1不能被v2整除則重新生成題目

if( op=='/' && v1%v2!=0 )

continue;

//計算正確的結果

switch(op)

{

case '+': a=(float)v1+(float)v2; break;

case '-': a=(float)v1-(float)v2; break;

case '*': a=(float)v1*(float)v2; break;

case '/': a=(float)v1/(float)v2; break;

}


//輸出算式

printf( "%d%c%d=", v1, op, v2 );


//等待輸入結果

scanf( "%d", &r );


if( r == a )

printf( " 答對嘍! " );

else

printf( " 答錯嘍!正確答案是:%d ", a );

}

}


2. c語言小學生測試答題部分怎麼寫:電腦隨機出10道題,每題10分,給3次機會,第一次程序結束時顯示學生得分

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int a,b,answer,right=0, wrong=0;
int i=1;
srand(time(NULL));
while(i<=10)
{
a=rand()%100+1;
b=rand()%100+1;
printf("%d+%d=",a,b);
scanf("%d",&answer);
if(answer==a+b)
{
printf("正確\n");
++right;
}
else
{
printf("錯誤\n");
++wrong;
}
i++;
if(wrong==3)
break;
}
printf("你答對%d題得到%d分,答錯%d題\n",right,right*10,wrong);
}

3. 急求:用C語言編寫小學生數學測試軟體

//vc 6.0調試通過
#include<stdio.h>
#include<stdlib.h>
#include <time.h>

int add(int x,int y)
{return x+y;}

int sub(int x,int y)
{return x-y;}

int mul(int x,int y)
{return x*y;}

void fun(char f)
{
int n,x,y,z,t,result,sum=0;
srand((unsigned)time(NULL));
printf("請選擇答題的個數:\n");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
x=rand()%10;
y=rand()%10;
if(x<y && f=='-')
{t=x;x=y;y=t;}
if(f=='*')
{while(!x){x=rand()%10;}
while(!y){y=rand()%10;}}
printf("%d %c %d =",x,f,y);
scanf("%d",&z);
switch(f)
{
case '+':
result=add(x,y);break;
case '-':
result=sub(x,y);break;
case '*':
result=mul(x,y);break;
}
if(result==z)
{printf("正確!\n");sum++;}
else
printf("錯誤!應該是%d\n",result);
}
printf("\n正確率為%f%%\n/////////////////////////////////\n\n",100.0*sum/n);
fflush(stdin);
}

void main()
{
printf("/////////////////////////////////\n");
printf(" 小學生數學測試軟體\n");
printf("//////////////////////////////////\n\n");
char ch;
while(1)
{
printf("請選擇題型--加(+),減(-),乘(*),退出(0): ");
ch=getchar();
if(ch=='+'||ch=='-'||ch=='*')
fun(ch);
else if(ch=='0')
exit(0);
else
printf("錯誤!\n");
}
}

4. C語言課程設計 小學生四則運算練習系統 源程序

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define maxsize 50
void trans(char str[],char exp[])/*將算術表達式str轉換成後綴表達式exp*/
{
struct
{ char data[maxsize]; /*存放運算符*/
int top; /*棧指針*/
}opr; /*定義運算符棧*/
char ch;
int i=0,t=0; /*t作為exp的下標,i作為str的下標*/
opr.top=-1; /*初始化設定top的值為負一*/
ch=str[i];i++; /*逐個讀取字元串中的字元*/
while (ch!='\0') /*str表達式未掃描完時循環*/
{ switch(ch) /*判定*/
{
case '(':
opr.top++;opr.data[opr.top]=ch; /*判定為'('號,則將其入棧opr*/
break;
case ')':
while (opr.data[opr.top]!='(') /*判定為')'號*/
{ exp[t]=opr.data[opr.top]; /*將棧opr中'('以後的字元依次刪除並存入數組exp中*/
opr.top--;
t++;
}
opr.top--; /*將左括弧刪除*/
break;
case '+': /*判定為加號或減號*/
case '-':
while (opr.top!=-1 &&opr.data[opr.top]!='(')
{ exp[t]=opr.data[opr.top]; /*將當前棧opr中(以前的所有字元依次刪除並存入數組exp中*/
opr.top--;
t++;
}
opr.top++;opr.data[opr.top]=ch; /*將ch存入棧opr中*/
break;
case '*':
case '/':
while (opr.data[opr.top]=='*'||opr.data[opr.top]=='/'||opr.data[opr.top]=='^')
{ exp[t]=opr.data[opr.top]; /*將當前棧opr中連續的'*'或'/'或'^'依次刪除並存入數組exp中*/
opr.top--;
t++;
}
opr.top++;opr.data[opr.top]=ch; /*將ch存入棧opr中*/
break;
case '^': /*判定為乘方號*/
while (opr.data[opr.top]=='^')
{ exp[t]=opr.data[opr.top]; /*將當前棧opr中連續的'^'依次刪除並存入數組exp中*/
opr.top--;
t++;
}
opr.top++;opr.data[opr.top]=ch; /*將ch存入棧opr中*/
break;
case ' ': break; /*過濾掉空格*/
default:
while(ch>='0'&& ch<='9'||ch=='.') /*判定為數字*/
{ exp[t]=ch;t++; /*將後續數字依次存入數組中*/
ch=str[i];i++;
}
i--;
exp[t]='#';t++; /*用#標示一個數值串結束*/
}
ch=str[i];i++;
}
while (opr.top!=-1) /*此時str掃描完畢,棧不空時循環*/
{ exp[t]=opr.data[opr.top];
t++;opr.top--;
}
exp[t]='\0'; /*給exp表達式添加結束標示*/
}
float compvalue(char exp[]) /*計算後綴表達式的值*/
{
struct
{ float data[maxsize]; /*存放數值*/
int top; /*棧指針*/
} st; /*定義數值棧*/
float d,d2;double po;
char ch;
int t=0,flag=1,i,count; /*t作為exp的下標*/
st.top=-1;
ch=exp[t];t++;
while (ch!='\0') /*exp字元串為掃描完時循環*/
{ switch(ch)
{
case '+':st.data[st.top-1]=st.data[st.top-1]+st.data[st.top]; /*執行兩次退棧,並將計算結果入棧*/
st.top--;break;
case '-':st.data[st.top-1]=st.data[st.top-1]-st.data[st.top];
st.top--;break;
case '*':st.data[st.top-1]=st.data[st.top-1]*st.data[st.top];
st.top--;break;
case '/':
if(st.data[st.top]!=0)
st.data[st.top-1]=st.data[st.top-1]/st.data[st.top];
else
{ printf("\n除零錯誤!\n");
exit(0); /*除數為零,異常退出*/
}
st.top--;break;
case '^':
po=pow(st.data[st.top-1],st.data[st.top]); st.data[st.top-1]=(float)po;/*調用pow子函數進行乘方運算*/
st.top--;break;
default:
d=0; flag=1; d2=0; /*將數字字元轉換成對應的數值存放到d中*/
while(ch>='0'&&ch<='9'&&flag) /*判定為數字字元*/
{ d=10*d+ch-'0';
ch=exp[t];t++;
if(ch=='.')
flag=0;

}
if(flag==0)
{ ch=exp[t];t++;count=0;
while(ch>='0'&&ch<='9') /*判定為數字字元*/
{d2=10*d2+ch-'0';
ch=exp[t];t++;count++;
}
for(i=1;i<=count;i++)
d2=0.1*d2;
}
d+=d2;
st.top++;
st.data[st.top]=d;
}
ch=exp[t];t++;
}
return st.data[st.top];
}
int main()
{
char str[maxsize],exp[maxsize]; /*str存儲原算術表達式,exp存儲對應的後綴表達式*/
printf("the arithmetic expression is:\n");
gets(str);
trans(str,exp);
printf("the postfix expression is:%s\n",exp);
printf("the result is %g\n",compvalue(exp));
}

5. c語言課程設計報告模板

課程設計報告內容
報告應包括以下內容:
摘要(300~400字)
目錄
1. 概述
2. 課程設計任務及要求
2.1 設計任務
2.2 設計要求
3. 理論設計
3.1方案論證
3.2 系統設計
3.2.1 結構框圖及說明
3.2.2 系統原理圖及工作原理
3.3 單元電路設計
3.3.1單元電路工作原理
3.3.2元件參數選擇
4. 系統設計
4.1 軟體設計
4.2 編程過程
4.2 編程結果
5. 安裝調試
5.2 安裝調試過程
5.3 故障分析
6. 結論
7. 使用儀器設備清單
8. 收獲、體會和建議
9. 參考文獻

6. 用C語言寫一個 小學生口算出題系統

一、設計的流程:

1. 主界面設計,選擇練習或測試,按ESC結束程序。
2. 題型選擇界面設計,選擇加、減、乘、除或混合運算,按ESC返回主界面。
3. 系統隨機出題,運算數及結果均在100以內,乘、除法應能整除,顯示算式。
4. 練習時,系統隨機出題,鍵入結果,正確和錯誤均有提示,出錯時允許再輸入,最多三次機會,若還不正確,給出答案。繼續出題,按ESC,顯示總題數,正確數和正確率。
5. 測試時,系統自動出10道題,每題只給一次機會,每題10分,統計得分。結束後,給出總分,顯示各題的對錯信息,錯誤的給出答案。中間按ESC鍵結束。顯示已作題的對錯信息,錯誤的給出答案,不顯示得分,按任意鍵返回題型選擇界面。
相關知識:按鍵操作、數組、指針、結構體等

二、常式:

#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
voidmain()
{
inta[10],b[10],d[10],c[10],num=0,result,add=0;
floatval;
charfa[5]={'+','-','*','/'};

/*出10道題*/
while(1)
{
srand((unsigned)time(NULL));
d[num]=abs(rand())%4;/*保證出題演算法的隨機性*/
while(1)/*保證出題成功*/
{
c[num]=-1;
a[num]=abs(rand())%100;
b[num]=abs(rand())%100;
if(d[num]==0)c[num]=a[num]+b[num];
elseif(d[num]==1)c[num]=a[num]-b[num];
elseif(d[num]==2)c[num]=a[num]*b[num];
elseif(d[num]==3)
{
if(b[num]>0)val=1.0*a[num]/b[num];
elseval=-1;
}
if(d[num]<=2)
{
if(c[num]>=0&&c[num]<=100)break;
}
else
{
if(a[num]==int(val)*b[num]&&val>=0)
{c[num]=val;break;}
}
}
num++;
if(num==10)break;
}
/*回答*/
num=0;
while(1)
{
printf("%d%c%d=",a[num],fa[d[num]],b[num]);
scanf("%d",&result);
if(result==c[num])
{
printf("回答正確! ");
add+=10;
}
else
printf("錯誤,正確答案:%d ",c[num]);
num++;
if(num==10)break;
}
printf(" 得分:%d ",add);
getch();
}