commit 798dc613655f6deda6e1b7d1695d9950d012dc29 Author: 段巧 <18408200225@stu.hut.edu.cn> Date: Mon Jan 7 19:27:28 2019 +0800 first commit diff --git a/小学生测验最终版.cpp b/小学生测验最终版.cpp new file mode 100644 index 0000000..49943cc --- /dev/null +++ b/小学生测验最终版.cpp @@ -0,0 +1,138 @@ +#include +#include +#include +#include +using namespace std; +typedef struct node +{ +int jiajian; +int num1; +int num2; +int trytimes; +}specific; +specific informat[10]; +void changesi(int p) +{ +if(p==0) +printf("+"); +if(p==1) +printf("-"); +} +int getgrade(int m) +{ +if(m==0) +return 10; +if(m==1) +return 7; +if(m==2) +return 5; +if(m==3) +return 0; +} +int suijishu(int &a,int &b,int &c,int t) +{ +int a1,b1; +do +{ +a1=rand()%50; +b1=rand()%50; +}while(!(a1+b1>=0&&a1+b1<+50&&a1-b1>=0&&a1-b1<=50)); +informat[t].num1=a=a1; +informat[t].num2=b=b1; +informat[t].jiajian=c=rand()%2; +return 0; +} +void show_rank(int sum) +{ +printf("\n\n"); +printf("ܷ֣%d\n",sum); +if(sum>=90) +printf("SMART\n"); +else if(sum<90&&sum>=80) +printf("GOOD\n"); +else if(sum<80&&sum>=70) +printf("OK\n"); +else if(sum<70&&sum>=60) +printf("PASS\n"); +else +printf("TRE AGAIN\n"); +} +int main() +{ +srand(time(NULL)); +printf("----------pupil exercise system----------\n"); +int t=1,cnt=0,sum=0,a,b,c,ans; +while(t<=10) +{ +printf("this is the %d question\n",t); +suijishu(a,b,c,t); +while(cnt<=3) +{ +if(c==0) +{ +printf("%d+%d=",a,b); +scanf("%d",&ans); +if(a+b==ans) +{ +printf("Right\n"); +break; +} +else +{ +cnt++; +printf("Wrong!!\n"); +if(cnt==3) +{ +printf("anwser is:%d\n",a+b); +break; +} +} +} +else if(c==1) +{ +printf("%d-%d=",a,b); +scanf("%d",&ans); +if(a-b==ans) +{ +printf("Right\n"); +break; +} +else +{ +cnt++; +printf("Wrong!!\n"); +if(cnt==3) +{ +printf("anwser is:%d\n",a-b); +break; +} +} +} +} +informat[t].trytimes=cnt; +if(cnt==0) +sum+=10; +if(cnt==1) +sum+=7; +if(cnt==2) +sum+=5; +t++; +cnt=0; +printf("\n\n"); +printf("--------------------\n"); +} +show_rank(sum); +printf("\n\n"); +for(int i=1;i<=10;i++) +{ +printf("%d:%d",i,informat[i].num1); +changesi(informat[i].jiajian); +printf("%d=",informat[i].num2); +if(informat[i].jiajian==0) +printf("%d\n",informat[i].num1+informat[i].num2); +else if(informat[i].jiajian==1) +printf("%d\n",informat[i].num1-informat[i].num2); +printf("%dΣ%d\n",informat[i].trytimes,getgrade(informat[i].trytimes)); +} +return 0; +}