一份银行流水数据,因打印模糊导致部分金额不清楚。

一份银行流水数据,因打印模糊导致部分金额不清楚。                  

收入、支出、余额满足以下3条规则:              

1、收入、支出、余额三列都是数字            

2、同一行收入和支出的值不能同时为非零值            

3、第N-1行余额(+第N行收入或-第N行支出)=第N行余额  

程序语言: java

请按照规则编写算法,修复不清楚的值


输入描述:

输入数据最多25行,每行都包含四个数据,分别是:数据编号,收入、支出、余额,模糊的数据以?表示,它们之间以;隔开。

以文件结尾。第一组数据为初始数据值,收入、支出、余额数据保留2位小数。

输出描述:

以输入的数据顺序输出修复后的数据。



答题说明

输入样例:

流水记录ID;收入;支出;余额

1;0.00;51.90;1945.45    

2;0.00;1000.00;?

输出样例:

流水记录ID;收入;支出;余额

1;0.00;51.90;1945.45

2;0.00;1000.00;945.45



import java.io.*;
import java.text.DecimalFormat;
public class moneyPrint {

 /**
  * @param args
  * @throws IOException
  *
  */
 
 public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub
  // String[] s={"1;0;3;10","2;4;5;?","3;0;9;?","4;10;0;?",""};
  System.out.println("请输入你想输入的行数:");
  BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
  int j=Integer.parseInt(in.readLine());
   String[] s=new String[j+1];
  inputData ind=new inputData();
  ind.input(s);
  
   bankCount bc=new bankCount();
   bc.setData(s);
 }
  
 
}
class inputData
{
 public String[] input(String[] s)
 {      
   System.out.println("输入样例");
   System.out.println("流水记录ID;收入;支出;余额");
      for (int i = 0; i < s.length; i++)     
   {                      
   try           
   {              
    BufferedReader in=new BufferedReader(new InputStreamReader(System.in));            
    s[i] =in.readLine();         
   }        
   catch (IOException e)           
   {                
    e.printStackTrace();            
   }
   
   } 
      return s;
 }
}


class bankCount
{
 public void setData(String[] s)
 {
   int i=0;       
   String line="";  
   String[] txt1 = null;
   double[][] arrs=new double[s.length-1][4];
  System.out.println("输出样例:");
  System.out.println("流水记录ID;收入;支出;余额");
   while ((line=s[i])!="") {           
   txt1=line.split(";");
      if(txt1[3].equals("?"))
      {
       arrs[i][3]=arrs[i-1][3]-Double.parseDouble(txt1[2])+Double.parseDouble(txt1[1]);
       for(int j=1;j<3;j++)
       {
    arrs[i][j]=Double.parseDouble(txt1[j]);
       }
       System.out.print(i+1);
       for(int j=1;j<4;j++)
        if(j<4)
        {
         System.out.print(";");
         System.out.print(String.format("%.2f", arrs[i][j]));
           
        }
      }
     else{
      System.out.print(i+1);
      for(int j=1;j<4;j++)
      {
   arrs[i][j]=Double.parseDouble(txt1[j]);
   if(j<4)
      {
     System.out.print(";");
     System.out.print(String.format("%.2f", arrs[i][j]));
         
      }
      }
      }
      System.out.println("");
      i++;
   } 
 }
 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是Arduino流水灯设计报告。 ## 设计背景 流水灯是一种简单有趣的LED灯效,通常用于装饰、娱乐等场合。本次设计旨在利用Arduino控制LED灯条实现流水灯效果。 ## 设计方案 ### 硬件设计 本次设计采用以下硬件材料: - Arduino Uno控制板 - LED灯条 - 杜邦线若干 将LED灯条的正极接到Arduino的数字引脚2~7,负极接到GND引脚。 ### 软件设计 本次设计采用Arduino IDE编写程序,实现LED灯条的流水灯效果。 程序主要分为以下几个部分: 1. 引入库文件 ``` #include <Adafruit_NeoPixel.h> ``` 2. 定义LED灯条的引脚和数量 ``` #define PIN 2 #define NUM_LEDS 6 ``` 3. 创建Adafruit_NeoPixel对象 ``` Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800); ``` 4. 初始化LED灯条 ``` void setup() { strip.begin(); strip.show(); } ``` 5. 定义流水灯效果函数 ``` void flow(int wait) { for (int i = 0; i < NUM_LEDS; i++) { strip.setPixelColor(i, 255, 0, 0); // 设置当前LED为红色 strip.show(); // 显示当前LED的颜色 delay(wait); // 等待一段时间 strip.setPixelColor(i, 0, 0, 0); // 关闭当前LED } } ``` 6. 主程序中循环调用流水灯效果函数 ``` void loop() { flow(50); // 每个LED等待50ms } ``` ## 测试结果 将程序上传至Arduino Uno控制板,连接LED灯条,打开串口监视器,可以看到LED灯条依次点亮,形成流水灯效果。 ## 总结 本次设计成功实现了Arduino控制LED灯条的流水灯效果。通过本次设计,我们深入了解了Arduino的基本操作和控制LED灯条的原理,也锻炼了自己的编程能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦里仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值