zoukankan      html  css  js  c++  java
  • 课堂实验3

    序是在第二次和第三次的实验上改的程序,有一些多余的部分。

    增加了功能就是计算答案并且判断正误,也实现了一次一次的循环,一个题目一个题目的输出
    这是算错的部分






    这也有答对的地方。就是答题对的数量没有实现。





     我们程序的符号优先级判断用的是数组里存值得大小,然后括号优先级最大,乘除优先级居中,加减优先级最小。然后每一种符号的情况
    都考虑,因为小学生的题目只能有最多有四个数,三个括号。


    //
    2016.3.15 唐野野,胡潘华 #include<stdio.h> #include<iostream> #include<time.h> #include<fstream> #include<ostream> #include<string> #include<stdlib.h> using namespace std; #define MAX N /*无打印功能的无括号算式*/ //int a(void) //{ //} /*有打印功能的无括号算式*/ //int b(void) //{ //} /*无打印功能的带括号的算式*/ int q(void) { srand((unsigned)time(NULL)); int i,j,x,a,b,c,d,n3,c2,v1,h1; int y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y0; char t0[20],t1[20],t2[20],t3[20],t4[20],t5[20],t6[20],t7[20],t8[20],t9[20]; string a2,a3,a4,a5,a6,a7,a8,a9,a10; char b1[10],c1,d1[10]; char a1[4]={'+','-','*','/'}; char p[10]; char p1[10],p2[10]; int N; cout<<"请输入题目的数量!"<<endl; cin>>i; cout<<"请输入多少数以内的四则运算"<<endl; cin>>N; //cout<<"是否有乘除号?(1是,0否)"<<endl; //cin>>x; for(j=0;j<i;j++) { int yzero=rand()%3;//定义z0..z9所匹配的项目 int yone=rand()%3; int ytwo=rand()%3; int ythree=rand()%3; int yfour=rand()%3; int yfive=rand()%3; int ysix=rand()%3; h1=rand()%10;//定义生成表达式里数的个数 y0=rand()%N;itoa(y0,t0,10);string z0=t0; y1=rand()%N;itoa(y1,t1,10);string z1=t1; y2=rand()%N;itoa(y2,t2,10);string z2=t2; y3=rand()%N;itoa(y3,t3,10);string z3=t3; y4=rand()%N;itoa(y4,t4,10);string z4=t4; y5=rand()%N;itoa(y5,t5,10);string z5=t5; y6=rand()%N;itoa(y6,t6,10);string z6=t6; y7=rand()%N;itoa(y7,t7,10);string z7=t7; y8=rand()%N;itoa(y8,t8,10);string z8=t8; y9=rand()%N;itoa(y9,t9,10);string z9=t9; int l=rand()%4; a2=z0+a1[l]+z1; l=rand()%4; switch(yzero){ case 0: {a3='('+a2+')'+a1[l]+z2;break;} case 1: {a3=z2+a1[l]+'('+a2+')';break;} case 3: {a3=a2+a1[l]+z2;break;} } l=rand()%4; switch(yone){ case 0: {a4='('+a3+')'+a1[l]+z3;break;} case 1: {a4=z3+a1[l]+'('+a3+')';break;} case 2: {a4=z3+a1[l]+a3;break;} } l=rand()%4; switch(ytwo){ case 0: {a5='('+a4+')'+a1[l]+z4;break;} case 1: {a5=z4+a1[l]+'('+a4+')';break;} case 2: {a5=z4+a1[l]+a4;break;} } l=rand()%4; switch(ythree){ case 0: {a6='('+a5+')'+a1[l]+z5;break;} case 1: {a6=z5+a1[l]+'('+a5+')';break;} case 2: {a6=z5+a1[l]+a5;break;} } l=rand()%4; switch(yfour){ case 0: {a7='('+a6+')'+a1[l]+z6;break;} case 1: {a7=z6+a1[l]+'('+a6+')';break;} case 2: {a7=z6+a1[l]+a6;break;} } l=rand()%4; switch(yfive){ case 0: {a8='('+a7+')'+a1[l]+z7;break;} case 1: {a8=z7+a1[l]+'('+a7+')';break;} case 2: {a8=z7+a1[l]+a7;break;} } l=rand()%4; switch(ysix){ case 0: {a9='('+a8+')'+a1[l]+z8;break;} case 1: {a9=z8+a1[l]+'('+a8+')';break;} case 2: {a9=z8+a1[l]+a8;break;} } int n2=rand()%3; switch(h1){ case 0: {j=j-1;break;} case 1: {j=j-1;break;} case 2: {a2=z0+a1[l]+z1; cout<<a2<<endl;break;} case 3: { if(n2==2) {a3='('+a2+')'+a1[l]+z2; cout<<a3<<endl;break;} if(n2==1) {a3=z2+a1[l]+'('+a2+')'; cout<<a3<<endl;break;} if(n2==0) {a3=a2+a1[l]+z2; cout<<a3<<endl;break;} } case 4: { if(n2==2) {a4='('+a3+')'+a1[l]+z3; cout<<a4<<endl;break;} if(n2==1) {a4=z3+a1[l]+'('+a3+')'; cout<<a4<<endl;break;} if(n2==0) {a4=z3+a1[l]+a3; cout<<a4<<endl;break;} } case 5: { if(n2==2) {a5='('+a4+')'+a1[l]+z4; cout<<a5<<endl;break;} if(n2==1) {a5=z4+a1[l]+'('+a4+')'; cout<<a5<<endl;break;} if(n2==0) {a5=z4+a1[l]+a4; cout<<a5<<endl;break;} } case 6: { if(n2==2) {a6='('+a5+')'+a1[l]+z5; cout<<a6<<endl;break;} if(n2==1) {a6=z5+a1[l]+'('+a5+')'; cout<<a6<<endl;break;} if(n2==0) {a6=z5+a1[l]+a5; cout<<a6<<endl;break;} } case 7: { if(n2==2) {a7='('+a6+')'+a1[l]+z6;; cout<<a7<<endl;break;} else if(n2==1) {a7=z6+a1[l]+'('+a6+')'; cout<<a7<<endl;break;} else if(n2==0) {a7=z6+a1[l]+a6; cout<<a7<<endl;break;} } case 8: { if(n2==2) {a8='('+a7+')'+a1[l]+z7; cout<<a8<<endl;break;} if(n2==1) {a8=z7+a1[l]+'('+a7+')'; cout<<a8<<endl;break;} if(n2==0) {a8=z7+a1[l]+a7; cout<<a8<<endl;break;} } case 9: { if(n2==2) {a9='('+a8+')'+a1[l]+z8; cout<<a9<<endl;break;} if(n2==1) {a9=z8+a1[l]+'('+a8+')'; cout<<a9<<endl;break;} if(n2==0) {a9=z8+a1[l]+a8; cout<<a9<<endl;break;} } } } return 0; } int liunianji(void) { int h; cout<<"是否要给六年级同学出题:"<<endl; cin>>h; if(h==1) { srand((unsigned)time(NULL)); int i,j,x,a,b,c,d,n3,c2,v1,h1; int y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y0; char t0[20],t1[20],t2[20],t3[20],t4[20],t5[20],t6[20],t7[20],t8[20],t9[20]; string p2,p3,p4,p5,p6,p7,p8,p9,p10; char b1[10],c1,d1[10]; char a1[4]={'+','-','*','/'}; char a2[10]; char aj; int a4[4]={1,1,2,2}; int a5[10]; char p[10]; char p1[10],o[10]; int N; cout<<"请输入题目的数量!"<<endl; cin>>i; int b2[10],a3[100],s1[100]; cout<<"请输入多少数以内的四则运算"<<endl; cin>>N; //cout<<"是否有乘除号?(1是,0否)"<<endl; //cin>>x; for(j=0;j<i;j++) { int yzero=rand()%3;//定义z0..z9所匹配的项目 int yone=rand()%3; int ytwo=rand()%3; //定义生成表达式里数的个数 y0=rand()%N;itoa(y0,t0,10);string z0=t0; y1=rand()%N;itoa(y1,t1,10);string z1=t1; y2=rand()%N;itoa(y2,t2,10);string z2=t2; y3=rand()%N;itoa(y3,t3,10);string z3=t3; y4=rand()%N;itoa(y4,t4,10);string z4=t4; y5=rand()%N;itoa(y5,t5,10);string z5=t5; int l=rand()%4; p2=z0+a1[l]+z1; if(a1[l]=='+') {b2[0]=y0+y1;} if(a1[l]=='-') {b2[0]=y0-y1;} if(a1[l]=='*') {b2[0]=y0*y1;} if(a1[l]=='/') {b2[0]=y0/y1;} a5[0]=a4[l]; a2[0]=a1[l]; l=rand()%4; a5[1]=a4[l]; a2[1]=a1[l]; switch(yzero){ case 0: { p3='('+p2+')'+a1[l]+z2; if(a1[l]=='+') {b2[1]=b2[0]+y2;} if(a1[l]=='-') {b2[1]=b2[0]-y2;} if(a1[l]=='*') {b2[1]=b2[0]*y2;} if(a1[l]=='/') {b2[1]=b2[0]/y2;} } break; case 1: {p3=z2+a1[l]+'('+p2+')'; if(a1[l]=='+') {b2[1]=b2[0]+y2;} if(a1[l]=='-') {b2[1]=b2[0]-y2;} if(a1[l]=='*') {b2[1]=b2[0]*y2;} if(a1[l]=='/') {b2[1]=b2[0]/y2;} }break; case 2: { p3=p2+a1[l]+z2; a5[1]=a4[l]; if(a5[0]>=a5[1]) {if(a1[l]=='+') {b2[1]=b2[0]+y2;} if(a1[l]=='-') {b2[1]=b2[0]-y2;} if(a1[l]=='*') {b2[1]=b2[0]*y2;} if(a1[l]=='/') {b2[1]=b2[0]/y2;} } if(a5[0]<a5[1]) { int n1; n1=a5[0]; a5[0]=a5[1]; a5[1]=n1; aj=a2[0]; a2[0]=a2[1]; a2[1]=aj; if(a2[0]=='+') { if(a1[l]=='*'){ b2[1]=y1*y2; b2[1]=b2[1]+y0; } if(a1[l]=='/'){ b2[1]=y1/y2; b2[1]=b2[1]+y0; } } if(a2[0]=='-') { if(a1[l]=='*'){ b2[1]=y1*y2; b2[1]=b2[1]-y0; } if(a1[l]=='/'){ b2[1]=y1/y2; b2[1]=b2[1]-y0; } } } } break; } l=rand()%4; a5[2]=a4[l]; a2[2]=a1[l]; switch(yone){ case 0: {p4='('+p3+')'+a1[l]+z3; if(a1[l]=='+') {b2[2]=b2[1]+y3;} if(a1[l]=='-') {b2[2]=b2[1]-y3;} if(a1[l]=='*') {b2[2]=b2[1]*y3;} if(a1[l]=='/') {b2[2]=b2[1]/y3;} } case 1: {p4=z3+a1[l]+'('+p3+')'; if(a1[l]=='+') {b2[2]=b2[1]+y3;} if(a1[l]=='-') {b2[2]=b2[1]-y3;} if(a1[l]=='*') {b2[2]=b2[1]*y3;} if(a1[l]=='/') {b2[2]=b2[1]/y3;}} case 2: {p4=z3+a1[l]+p3; a5[2]=a4[l]; if(a5[0]>a5[2]) {if(a1[l]=='+') {b2[2]=b2[1]+y2;} if(a1[l]=='-') {b2[2]=b2[1]-y2;} if(a1[l]=='*') {b2[2]=b2[1]*y2;} if(a1[l]=='/') {b2[2]=b2[1]/y2;} } if(a5[0]==a5[2]) { if(a1[l]=='+'){ if(a2[0]=='+'){ if(a2[1]=='+'){ b2[2]=y0+y1; b2[2]=b2[2]+y3; b2[2]=b2[2]+y3; } if(a2[1]=='-'){ b2[2]=y0+y1; b2[2]=b2[2]-y3; b2[2]=b2[2]+y3; } } if(a2[0]=='-'){ if(a2[l]=='+'){ b2[2]=y0-y1; b2[2]=b2[2]+y3; b2[2]=b2[2]+y3; } if(a2[l]=='-'){ b2[2]=y0-y1; b2[2]=b2[2]-y3; b2[2]=b2[2]+y3; } } } if(a1[l]=='-'){ if(a2[0]=='+'){ if(a2[l]=='+'){ b2[2]=y0+y1; b2[2]=b2[2]+y3; b2[2]=b2[2]-y3; } if(a2[l]=='-'){ b2[2]=y0+y1; b2[2]=b2[2]-y3; b2[2]=b2[2]-y3; } } if(a2[0]=='-'){ if(a2[l]=='+'){ b2[2]=y0-y1; b2[2]=b2[2]+y3; b2[2]=b2[2]-y3; } if(a2[1]=='-'){ b2[2]=y0-y1; b2[2]=b2[2]-y3; b2[2]=b2[2]-y3; } } } if(a1[l]=='*'){ if(a2[1]=='+'){ if(a2[0]=='*') {int ax=y0*y1;int bx=y2*y3;b2[2]=ax+bx;} if(a2[0]=='/') {int ax=y0/y1;int bx=y2*y3;b2[2]=ax+bx;}} if(a2[1]=='-'){ if(a2[0]=='*') {int ax=y0*y1;int bx=y2*y3;b2[2]=ax-bx;} if(a2[0]=='/') {int ax=y0/y1;int bx=y2*y3;b2[2]=ax-bx;}} if(a2[1]=='*'||'/') {b2[2]=b2[1]*y3;} } if(a1[l]=='/'){ if(a2[1]=='+'){ if(a2[0]=='*') {int ax=y0*y1;int bx=y2/y3;b2[2]=ax+bx;} if(a2[0]=='/') {int ax=y0/y1;int bx=y2/y3;b2[2]=ax+bx;}} if(a2[1]=='-'){ if(a2[0]=='*') {int ax=y0*y1;int bx=y2/y3;b2[2]=ax-bx;} if(a2[0]=='/') {int ax=y0/y1;int bx=y2/y3;b2[2]=ax-bx;}} if(a2[1]=='*'||'/') {b2[2]=b2[1]/y3;} } } if(a5[0]<a5[2]) { if(a1[l]=='*'){ if(a2[0]=='+'){ if(a2[1]=='+'){ b2[2]=y3*y2; b2[2]=b2[2]+y0; b2[2]=b2[2]+y1; } if(a2[1]=='-'){ b2[2]=y3*y2; int xz=y0+y1;b2[2]=xz-b2[2]; } } if(a2[0]=='-'){ if(a2[l]=='+'){ b2[2]=y3*y2; int at=y0-y1; b2[2]=y2+b2[2]; } if(a2[l]=='-'){ b2[2]=y3*y2; int ap=y0-y1; b2[2]=y2-b2[2]; } } } if(a1[l]=='/'){ if(a2[0]=='+'){ if(a2[1]=='+'){ b2[2]=y3/y2; b2[2]=b2[2]+y0; b2[2]=b2[2]+y1; } if(a2[1]=='-'){ b2[2]=y3/y2; int xz1=y0+y1;b2[2]=xz1-b2[2]; } } if(a2[0]=='-'){ if(a2[l]=='+'){ b2[2]=y3/y2; int at1=y0-y1; b2[2]=y2+b2[2]; } if(a2[l]=='-'){ b2[2]=y3/y2; int ap1=y0-y1; b2[2]=y2-b2[2]; } } } } } break; } h1=rand()%2+3; int n2=rand()%3; switch(h1){ case 2: {p2=z0+a1[l]+z1; cout<<p2<<endl; s1[j]=b2[0];}break; case 3: { if(n2==2) {p3='('+p2+')'+a1[l]+z2; cout<<p3<<endl;} if(n2==1) {p3=z2+a1[l]+'('+p2+')'; cout<<p3<<endl;} if(n2==0) {p3=p2+a1[l]+z2; cout<<p3<<endl;} s1[j]=b2[1]; } break; case 4: { if(n2==2) {p4='('+p3+')'+a1[l]+z3; cout<<p4<<endl;break;} if(n2==1) {p4=z3+a1[l]+'('+p3+')'; cout<<p4<<endl;break;} if(n2==0) {p4=z3+a1[l]+p3; cout<<p4<<endl;break;} s1[j]=b2[2]; }break; } cout<<"请输入你的答案:"<<endl; cin>>v1; a3[j]=v1; if(a3[j]==s1[j]) { int g1=g1+1; cout<<"答对了,真棒!!"<<endl; cout<<"你已答对了"<<g1<<"道题"<<endl; } if(a3[j]!=s1[j]) { j=j-1; cout<<"答错了,还需多加努力!"<<endl; } } } return 0; } /*有打印功能的带括号算式*/ //int p(void) //{ //} int main(void) { int n,n1; cout<<"是否有括号?(1有,0否)"<<endl; cin>>n1; if(n1==1) { cout<<"是否打印?(1存入文档,0否)"<<endl; cin>>n; if(n==0) { q(); } //if(n==1) // { // p(); // // } // } //if(n1==0) //{ // cout<<"是否打印?(1存入文档,0否)"<<endl; //cin>>n; //if(n==1) //{ //b(); //} //if(n==0) //{ //a(); // } //} } liunianji(); return 0; }


    每天晚上在考研自习室编程,还编得不好,我的编程基础有点薄弱,会好好学习的。附上工作照一张。







    http://www.cnblogs.com/hph1313/p/5296215.html

     
  • 相关阅读:
    敏感词过滤
    Tarjan+topsort(DP)【P3387】 [模板]缩点
    树状数组【CF703D】Mishka and Interesting sum
    组合数学+错排问题【p4071】[SDOI2016]排列计数
    Dijkstra【p3003(bzoj2100)】[USACO10DEC]苹果交货Apple Delivery
    Trie树【p2264】情书
    线段树+扫描线【p1884】[Usaco12FEB]过度种植(银)Overplanting …
    区间DP【p4290】[HAOI2008]玩具取名
    暴力 【p4092】[HEOI2016/TJOI2016]树
    暴力 【p4098】[HEOI2013]ALO
  • 原文地址:https://www.cnblogs.com/tyyhph/p/5295979.html
Copyright © 2011-2022 走看看