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

收入、支出、余额满足以下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++;
   } 
 }
 
}

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

  1. 一份“奇妙”的银行流水

    <span style="font-family: 微软雅黑, 宋体, Arial; background-color: rgb(255, 255, 255);">题目 ...

  2. 【SQL开发实战技巧】系列(十四):计算消费后的余额计算银行流水累计和计算各部门工资排名前三位的员工

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  3. 基于巨杉数据库的银行流水查询系统

    背景: 银行流水账单俗称银行卡存取款交易对账单,也称银行账户交易对账单.指的是客户在一段时间内与银行发生的存取款业务交易清单.一般而言,在申请贷款或者信用卡时,银行或其他金融机构会要求借款人提供申请者 ...

  4. 谈谈互金跟银行里数据逻辑的差异

    要说互金跟银行的不同的地方,先得从最近接触到的一份五级分类表说起来,然后再说说欺诈的指标的区别:最后再讲讲银行跟互金在数据方面的区别. 五级分类 目前国内多数银行.互金根据金融办的相关要求,对资产逾期 ...

  5. 三步走——带你打造一份完美的数据科学家简历|(附件有PPT福利)

    更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud 互联网公司的秋招已经接近尾声,实习生的招聘已提上日程.今年互联网公司就业形势严峻,建议想投身互联网的同学早做准备 ...

  6. 解决计算治理问题,详解微众银行大数据平台中间件Linkis架构和应用

    7月9日,由微众银行(WeBank)开源的一站式金融级大数据平台套件WeDataSphere(WDS),举办了第二期开发者社区的线上meetup,来自中国电信天翼云.艾佳生活.MobTech等WeDa ...

  7. 微信账单怎么查?微信流水账单怎么打印

    自从微信"火"起来之后,不仅在社交方面带给全民许多方便,而且消费.交易方面也是用的比较频繁,微信支付后会留下资金交易明细,那么微信账单怎么查?微信流水账单怎么打印? 我们通过微信支 ...

  8. 某银行大数据体系架构设计与演进

    近年来,随着大数据与人工智能相关技术的迅速发展,新技术逐步在全社会各行各业得到应用.银行业作为一个高度信息化的行业,首当其冲面临着互联网新技术应用的挑战.民生银行在 2013 年开始布局分布式.大数据 ...

  9. 加密后的数据如何进行模糊查询?

    加密后的数据对模糊查询不是很友好,本篇就针对加密数据模糊查询这个问题来展开讲一讲实现的思路,希望对大家有所启发. 为了数据安全我们在开发过程中经常会对重要的数据进行加密存储,常见的有:密码.手机号.电 ...

最新文章

  1. 如何在WORD中设置标题1与标题2编号样式不一样
  2. 微信小程序开发(二)
  3. 记录 之 tensorflow函数:tf.data.Dataset.from_tensor_slices
  4. gsettings命令使用简介
  5. macos中xcode使用opencv,错误总结
  6. Android关闭输入法键盘
  7. 关于美食html网页设计完整版,10个以美食为主题的网页设计案例
  8. JavaScript 3D动画库three.js入门篇
  9. MATLAB:快速傅里叶变换(FFT)
  10. 西门子802d数控立式加工中心智能调节参数
  11. su如何变成实体_Sketchup实体工具怎么使用? SU实体工具的使用方法
  12. 汽车数字化零售优化全渠道体验
  13. 虚拟中3DMax2018打开报错
  14. 计算机师徒结对方案,师徒结对计划
  15. 学习笔记TF058:人脸识别
  16. chtagpt使用指南
  17. asp.net mvc 导入 ajax excel,或者图片上传 后台不能接收的问题
  18. 股票技术图形怎么看?一文给你分析透!
  19. Xposed框架90版本已安装,但尚未激活。
  20. mysql dwith boost_【云知梦】CentOS8.2上如何编译安装MySQL8?

热门文章

  1. 10分钟快速集成360 RePlugin
  2. 办公软件转型SaaS安全与赢利待探索
  3. python opencv图像剪裁
  4. hidefocus的用法
  5. 【干货】选择外贸邮件群发软件,外贸邮件营销软件,邮件群发代发软件15条建议!
  6. 如何在 Windows 上的 VirtualBox 中安装 macOS Big Sur
  7. 在使用 eclipse 时, eclipse 的右下角 一直在提示 “JPA java change event handler” ,eclipse使用起来很卡,解决办法
  8. linux---socket编程(网络)
  9. 深入理解ForkJoin及使用示例
  10. 来也科技:RPA+AI的赋能者和布道者