软件工程第二次作业——四则运算结对编程3.0版本(最终版本)

姓名:马柯宇 学号:1500802096
姓名:杨然 学号:1500802102 博客地址:http://www.cnblogs.com/yang-r/p/6837459.html

代码链接:
https://coding.net/u/Apiciallover/p/sizeyunsuan-A/git/tree/master/

  • 界面:

1108061-20170510182532347-1750057714.png

  • 整数计算功能(加减乘除):

1108061-20170510182601801-2125308400.png

1108061-20170510182635441-1465912289.png

1108061-20170510182656394-1099749743.png

1108061-20170510182727738-1198836327.png

主要代码:

z=true;
for(int p=0;p<100;p++)
    str[p]=_T("");
for(int p=0;p<100;p++)
{
  int i=(int)rand()%10;
  int j=(int)rand()%9+1;
  int k=(int)rand()%100/25;
  CString str0("");
  switch(k)
  {
    case 0:
      a[p]=i+j;
      str0+=_T("+");
      break;
    case 1:
      a[p]=i-j;
      str0+=_T("-");
      break;
    case 2:
      a[p]=i*j;
       str0+=_T("*");
      break;
    case 3:
      try
      {
        a[p]=i/j;
         str0+=_T("/");
      }
  catch(...)
  {
  p--;
  }

  }        
  
 CString stri((char)(i+48));
 CString strj((char)(j+48));
 str[p]+=stri+=str0+=strj;
  • 真分数计算功能(加减乘除):

1108061-20170510182824660-1755671732.png

1108061-20170510182843519-2004040485.png

1108061-20170510182910738-2087802488.png

1108061-20170510182935519-287588143.png

主要代码:

 for(int p=0;p<100;p++)
    str2[p]=_T("");
     for(int p=0;p<100;p++)
{
    int i=(int)rand()%10;
    int j=(int)rand()%10;
    CString strk1("/");
    CString strk2("");
    CString strk3("/");
    CString strk4("(");
    CString strk5(")");
    while(j==0||i>=j)
    {
        i=(int)rand()%10;
        j=(int)rand()%10;
    }
    int x=(int)rand()%10;
    int y=(int)rand()%10;
    while(y==0||x>=y)
    {
        x=(int)rand()%10;
        y=(int)rand()%10;
    }
    int k=(int)rand()%100/25;
    switch(k)
    {
        case 0:
           
            strk2+=_T(")+(");
        
            b[p][0]=i*y+x*j;
            b[p][1]=j*y;
            break;
        case 1:
        
            strk2+=_T(")-(");
            
            b[p][0]=i*y-x*j;
            b[p][1]=j*y;
            break;
        case 2:
          
            strk2+=_T(")*(");
        
            b[p][0]=i*x;
            b[p][1]=j*y;
            break;
        case 3:
            b[p][0]=i*y;
            b[p][1]=j*x;
         
            strk2+=_T(")/(");
        
        }
        
     CString stri((char)(i+48));
 CString strj((char)(j+48));
 CString strx((char)(x+48));
 CString stry((char)(y+48));
 str2[p]+=strk4+=stri+=strk1+=strj+=strk2+=strx+=strk3+=stry+=strk5;
 
}
  • 清屏:

1108061-20170510183746707-672624250.png

主要代码:

        CString str("0");
    GetDlgItem(IDC_STATIC)->SetWindowText(str);
    GetDlgItem(DAAN)->SetWindowText(str);
    GetDlgItem(sdfgsdgs)->SetWindowText(str);
    GetDlgItem(truejieguo)->SetWindowText(str);
    GetDlgItem(shijian)->SetWindowText(str);
  • 约分功能:

1108061-20170510184022566-1096795012.png

  • 判断对错功能:

1108061-20170510184125207-2050628280.png

1108061-20170510184217832-1490756176.png

  • 统计用户练习题数目以及正确数量:

1108061-20170510184438144-1209554486.png

主要代码(判断对错和统计出题数以及正确题数):

   UpdateData(TRUE);

CString strm[100],strn[100];
strm[n].Format(_T("%d"),n);
if(z)
{
    GetDlgItem(shumu)->SetWindowText(strm[n]);
    int i = _ttoi(o);
    if(i==a[n-1])
    {
        GetDlgItem(sdfgsdgs)->SetWindowText(_T("回答正确"));
         x=x+1;
     strn[n].Format(_T("%d"),x);
   GetDlgItem(zhengque)->SetWindowText(strn[n]);

    }
    else
    {
        GetDlgItem(sdfgsdgs)->SetWindowText(_T("回答错误"));
         strn[n].Format(_T("%d"),x);
  GetDlgItem(zhengque)->SetWindowText(strn[n]);
    
    }
}


else
{
    GetDlgItem(shumu)->SetWindowText(strm[n]);
    int x1,y1;
    CString z1;
    CString m1;
    int i=0;
    while(o.GetAt(i)!='/'&& o.GetAt(i)!='\0')
    {
        z1+=o.GetAt(i);
        i++;
    }
    if(o.GetAt(i)=='\0'||o.GetAt(i+1)=='\0')
    {
        GetDlgItem(IDC_EDIT5)->SetWindowText(_T("请重新输入"));
    }
    else
    {
        x1=_ttoi(z1);
        i++;
        while(o.GetAt(i)!='\0')
        {
            m1+=o.GetAt(i);
            i++;
        }
        y1=_ttoi(m1);
        if(x1==b[n-1][0]&&y1==b[n-1][1])
        {
            GetDlgItem(sdfgsdgs)->SetWindowText(_T("回答正确"));
              x=x+1;
     strn[n].Format(_T("%d"),x);
     GetDlgItem(zhengque)->SetWindowText(strn[n]);
        }
        else
        {
            GetDlgItem(sdfgsdgs)->SetWindowText(_T("回答错误"));
            strn[n].Format(_T("%d"),x);
  GetDlgItem(zhengque)->SetWindowText(strn[n]);


        }
    }


}
  • 倒计时:
    (每个题目必须在20秒内完成,若完不成则自动出下一题并得0分记计算错误。)

1108061-20170510184610191-288407241.png

1108061-20170510184619722-2074608361.png

主要代码:

   void CsizeyunsuanDlg::OnBnClickedButton7()
  {
    
    SetTimer(1,1000,NULL);
    
  }
  void CsizeyunsuanDlg::OnTimer(UINT nIDEvent)
 {
     i--;
     strt[i].Format(_T("%d"),i);
     CString strt(strt[i]);
     GetDlgItem(shijian)->SetWindowText(strt);
     if(i==0)
        {i=20;
     OnBnClickedButton5();
     }
      

 }
  • 结对编程照片

1108061-20170510192213894-510658872.png

  • 心得体会
    第一次体会这种编程方式,感觉还是受益很大的。从前都是自己一个人编程,所以在编程的时候比较随意,但是在结对编程的时候就要考虑小伙伴的感受和想法。通过这次的结对编程,我深深体会到“多一个人多一份力量”的这句话,两个人的思维结合在一起使难题解决得更快,并且更加容易发现错误。而且由于两个人互相监督,所以基本上不会出现玩手机等现象。但是由于两个人的思路和意见不统一的时候会花费很多时间去统一意见选出一个比较好的。

转载于:https://www.cnblogs.com/mkyz/p/6837701.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值