首页 > 编程语言 >软件开发与创新第二次实验———结对编程:计算出题系统

软件开发与创新第二次实验———结对编程:计算出题系统

时间:2024-04-24 21:34:24浏览次数:23  
标签:结对 软件开发 number1 System 出题 new println static out

一.结对信息
2252418 盛宇伟
2252436 董朝
二.题目要求
小学老师要每周给同学出300道四则运算练习题。
这个程序有很多种实现方式:
C/C++
C#/VB.net/Java
Excel
Unix Shell
Emacs/Powershell/Vbscript
Perl
Python
两个运算符,100 以内的数字,不需要写答案。
需要检查答案是否正确,并且保证答案在 0..100 之间
尽可能地多设置一些条件
请两位同学以结对编码(一个同学coding,另一个同学在旁边审核代码,之后再交换角色)的方式完成本次实验,并把程序、运算结果、博客体会等截屏发到其中一位同学的博客上,并在博客中体现另一位同学的学号(仅学号不体现姓名)
三.设计思路分析
1.根据题目要求,算式形式应为【1-99】 运算符 【1-99】运算符 【1-99】= 结果
2.随机生成题目的同时,也生成答案,在选择显示答案后,将题目和答案同时输出
3.设计简单的控制台程序,有3个功能,分别为答案,题目,退出,以满足基本的需求
四.分工安排
由2252436董朝同学编写代码大体框架,我对来编写一些函数,在编程过程中互相检查,完成后,由董朝同学进行测试,我来编写博客
五.代码
`import java.text.DecimalFormat;
import java.util.Random;
import java.util.Scanner;

public class chuti {
static double[] one=new double[500];
static double[] two=new double[500];
static double[] there=new double[500];
static int[] aaa=new int[500];
static int[] bbb=new int[500];
static double[] sum=new double[500];
static double[] yousum=new double[500];
static String[] saaa=new String[500];
static String[] sbbb=new String[500];

 static String[] laber=new String[500];


 public static void printone( int number1){
     System.out.println(number1+"道100以内的四则运算题目输出:");
     System.out.println("----------------------------");
     for(int i=0;i<number1;i++){

         Random r1=new Random();

         one[i]=r1.nextInt(100);
         two[i]=r1.nextInt(100);
         there[i]=r1.nextInt(100);
         //1=*,2=/,3=+,4=-。
         aaa[i]=r1.nextInt(4)+1;
         bbb[i]=r1.nextInt(4)+1;



         if(bbb[i]==1||bbb[i]==2){
             if(bbb[i]==1){
                 sum[i]=two[i]*there[i];
             }else if(bbb[i]==2){
                 sum[i]=two[i]/there[i];
             }
             if(aaa[i]==1){
                 sum[i]=sum[i]*one[i];
             }else if(aaa[i]==2){
                 sum[i]=sum[i]/one[i];
             }else if(aaa[i]==3){
                 sum[i]=sum[i]+one[i];
             }else if(aaa[i]==4){
                 sum[i]=sum[i]-one[i];
             }

         }else{
             if(aaa[i]==1){
                 sum[i]=one[i]*two[i];
             }else if(aaa[i]==2){
                 sum[i]=one[i]/two[i];
             }else if(aaa[i]==3){
                 sum[i]=one[i]+two[i];
             }else if(aaa[i]==4){
                 sum[i]=one[i]-two[i];
             }
             if(bbb[i]==1){
                 sum[i]=sum[i]*there[i];
             }else if(bbb[i]==2){
                 sum[i]=sum[i]/there[i];
             }else if(bbb[i]==3){
                 sum[i]=sum[i]+there[i];
             }else if(bbb[i]==4){
                 sum[i]=sum[i]-there[i];
             }
         }
         //
         if(aaa[i]==1){
             saaa[i]="*";
         }else if(aaa[i]==2){
             saaa[i]="/";
         }else if(aaa[i]==3){
             saaa[i]="+";
         }else if(aaa[i]==4){
             saaa[i]="-";
         }
         //
         if(bbb[i]==1){
             sbbb[i]="*";
         }else if(bbb[i]==2){
             sbbb[i]="/";
         }else if(bbb[i]==3){
             sbbb[i]="+";
         }else if(bbb[i]==4){
             sbbb[i]="-";
         }
         //打印,选择0到1000的数
         DecimalFormat de=new DecimalFormat("#0");
         if(sum[i]<=1000&&sum[i]>=0){
             if(i%5==0&&i!=0){
                 System.out.println();
             }
             System.out.print(de.format(one[i])+saaa[i]+de.format(two[i])+sbbb[i]+de.format(there[i])+"=\t\t");
         }else{
             i--;
         }
     }
     System.out.println();
     System.out.println("----------------------------");
     System.out.println("题目输出完毕");
 }

 public static void answerone(int number1){
     System.out.println(number1+"道100以内的四则运算题目答案:");
     System.out.println("---------------------------");
     DecimalFormat de=new DecimalFormat("#0");
     DecimalFormat df=new DecimalFormat("#0.00");
     for(int i=0;i<number1;i++){
         if(i%5==0&&i!=0){
             System.out.println();
         }
         System.out.print(de.format(one[i])+saaa[i]+de.format(two[i])+sbbb[i]+de.format(there[i])+"="+df.format(sum[i])+"\t\t");
     }
     System.out.println();
     System.out.println("----------------------------");
     System.out.println("答案显示完毕");
 }

 public static void chaeck(int number1){
     System.out.println("3.检查。请输入下列题目答案:");
     int cnt=0;
     Scanner scanner=new Scanner(System.in);
     DecimalFormat de=new DecimalFormat("#0");
     for(int i=0;i<number1;i++){
         if(i%5==0&&i!=0){
             System.out.println();
         }
         System.out.print(de.format(one[i])+saaa[i]+de.format(two[i])+sbbb[i]+de.format(there[i])+"= ");
         yousum[i]=scanner.nextDouble();
         String  str = String.format("%.2f",sum[i]);
         sum[i] = Double.parseDouble(str);
         if(yousum[i]==sum[i]){
             cnt++;
             laber[i]="true";
         }else{
             laber[i]="false";
         }
     }
     System.out.println("--------------------------");
     System.out.println("显示答题结果为:");
     for(int i=0;i<number1;i++){
         if(i%5==0&&i!=0){
             System.out.println();
         }
         System.out.print(de.format(one[i])+saaa[i]+de.format(two[i])+sbbb[i]+de.format(there[i])+"="+de.format(yousum[i])+" ("+laber[i]+")\t\t");

     }
     System.out.println();
     System.out.println("题目总数:"+number1);
     System.out.println("答对题目: "+cnt);
     double count;
     count=(double)cnt/(double)number1;
     if(count>0.6){
         System.out.println("答题答的不错,继续加油哦!");
     }else{
         System.out.println("争取答的更好,还要加油哦!");
     }
 }

public static void setQuestion(){
    System.out.println("要出题的数目为:");
    Scanner scanner=new Scanner(System.in);
    int number1=scanner.nextInt();
    printone(number1);
    //answerone(number1);
    chaeck(number1);
}

public static void pint(){
     System.out.println("-----------------------------------");
     System.out.println("|              出题系统             |");
     System.out.println("|     1.答案                2.核对  |");
     System.out.println("|     3.结束                        |");
     System.out.println("------------------------------------");
}


public static void main(String[] args){
     Scanner scanner=new Scanner(System.in);
    int number1;


    System.out.println("要出题的数目为:");
    number1=scanner.nextInt();
    printone(number1);
    while(true){
        pint();
        int cnt=scanner.nextInt();
        if(cnt==1){
            answerone(number1);![](/i/l/?n=24&i=blog/3398630/202404/3398630-20240424211155493-574335144.png)

        }else if(cnt==2){
            chaeck(number1);
        }else{
            break;
        }
    }
}

}
`
六.运行截图






七.实验体会
结对编程对于我和搭档来说确实是一种比较新颖的体验,往日的编程一般都是由自己完成,而就是这样,寻找代码中的漏洞也是一件非常麻烦的事情,但是令我没有想到的是,在结对编程的过程中,只要能够在一旁观察搭档的语法输入,寻找漏洞要比自己编写时方便许多,这或许就是灯下黑的原因吧。而在另外一方面,通过结对编程,我和队友可以交流彼此的知识经验,以及编程习惯,也是通过交流,让我和搭档也能够从这次较为简单的编程中收获良多。

标签:结对,软件开发,number1,System,出题,new,println,static,out
From: https://www.cnblogs.com/ywsheng226/p/18156390

相关文章

  • 结对编程
    点击查看代码#include<iostream>#include<stdio.h>#include<time.h>#include<stdlib.h>usingnamespacestd;intj=0;charyunsuanfu(){ chara[]={'+','-','*','/'}; intn=4; inti; i=rand()%n; r......
  • 结对编程
    #include<iostream>#include<cstdlib>#include<ctime>#include<fstream>#include<limits>//函数原型声明intgetRandomNumber(intmin,intmax);intmain(){intn;std::cout<<"请输入题目的数量:"<<st......
  • 第八周-结对编程
    作业题目程序源代码点击查看代码importrandomimporttimeimportosimportjsondefquestion():a=random.randint(0,100)b=random.choice(["+","-","*","/"])c=random.randint(0,100)d=random.choice(["......
  • 软件开发与创新实践——结对编程
    实验目的本次学习的任务是通过两人结对编程(一个人Coding,一个人审核)的方式,来体会团队合作的过程。本次实验由我和2230232共同完成。编程题目小学老师要每周给同学出300道四则运算练习题。–这个程序有很多种实现方式:C/C++C#/VB.net/JavaExcelUnixShellEmacs/Powershell/......
  • 软件开发与创新——结对编程
    本次结对编程作业由我和学号2252406的同学一起编写一、题目:小学老师要求出300道四则运算练习题要求:两个运算符,都是100以内的数字,答案在0-1000之间。拓展功能:有除法时计算的结果保留两位小数,避免除0错误,回答错误的题目存到“错题本.txt”文件中,方便后续查看及改正。300道题全部......
  • 结对编码-软件开发与创新课程设计
    一、题目及运行环境1.小组成员2252331与22523362.题目小学老师要每周给同学出300道四则运算练习题。这个程序有很多种实现方式:C/C++C#/VB.net/JavaExcelUnixShellEmacs/Powershell/VbscriptPerlPython两个运算符,100以内的数字,不需要写答案。需要检查答案是否正......
  • 结对编程心得
    结对编程心得要求如下所示:小学老师要每周给同学出300道四则运算练习题。这个程序有很多种实现方式:C/C++C#/VB.net/JavaExcelUnixShellEmacs/Powershell/VbscriptPerlPython两个运算符,100以内的数字,不需要写答案。需要检查答案是否正确,并且保证答案在0..100之间......
  • 结对编码-四则运算 2252118 2252121
    22521182252121程序具有以下特点和功能:随机生成题目:程序会随机生成包含两个运算符(加、减、乘、除)的四则运算题目。整数结果:所有运算的结果都是整数,避免了小数的出现。运算符优先级:程序正确处理了运算符的优先级,确保乘法和除法在加法和减法之前执行。整除调整:在涉及除法的题......
  • 结对编程 四则运算
    题目:小学老师要每周给同学出300道四则运算练习题。这个程序有很多种实现方式:C/C++C#/VB.net/JavaExcelUnixShellEmacs/Powershell/VbscriptPerlPython两个运算符,100以内的数字,不需要写答案。需要检查答案是否正确,并且保证答案在0——1000之间我们采用的是c++来实......
  • 产品架构、应用架构、技术架构:软件开发的三个支柱
    在软件开发中,产品架构、应用架构和技术架构是三个重要的支柱。它们在不同层次上定义了软件系统的不同方面和组织结构。下面是对这三个概念的简要解释: 产品架构(ProductArchitecture):产品架构关注的是整个软件产品的结构和组织方式。它定义了软件系统的主要组成部分、模块之间的......