⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 consumetotal.java

📁 手机软件开发,输入统计程序,主要功能完成使用手机记录每天消费的流水帐,该程序是整个程序的一部分
💻 JAVA
字号:
package consume;
import javax.microedition.lcdui.*;
import java.io.*;
import javax.microedition.rms.*;
import java.util.Date;
public class ConsumeTotal extends Form implements CommandListener {
  TextField tf0,tf1,tf2,tf3,tf4; //输入域和显示域
  String d1, d2;         //用于比较的字符串
  Command cmdOk;         //确定按钮
  /** Constructor */
  public ConsumeTotal() {
    super("Input Month Data");  //构造一个form对象
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }
  /**Component initialization*/
  private void jbInit() throws Exception {
    StringItem si=new StringItem(null,"请输入3位月份(英文)如:Nov");
    append(si);
    tf1 = new TextField("输入汇总月份", null, 10, TextField.ANY);
    append(tf1);
    // Set up this Displayable to listen to command events
    setCommandListener(this);
    // add the Exit command
    addCommand(new Command("返回", Command.BACK, 1));
    cmdOk=new Command("确定", Command.OK, 1);
    addCommand(cmdOk);
  }
  /**Handle command events*/
  public void commandAction(Command command, Displayable displayable) {
    /** @todo Add command handling code */
    if (command.getCommandType() == Command.OK) {
      tf2 = new TextField("汇总和是:", null, 10, TextField.ANY);
      tf3=new TextField("最大值是:", null, 10, TextField.ANY);
      tf4=new TextField("最小值是:", null, 10, TextField.ANY);
      float  max=0,min=100 ,sum = 0;//汇总和
      int k=0;
      RecordStore rs;
      try {
        rs = RecordStore.openRecordStore("consume", true);
        RecordFilter rf = new MyFilter();
        RecordEnumeration enum = rs.enumerateRecords(rf, null, false);
        while (enum.hasNextElement()) {
          try {
            byte[] data = enum.nextRecord();
            int  n=enum.numRecords() ;
              k++;
            ByteArrayInputStream bis = new ByteArrayInputStream(data);
            DataInputStream is = new DataInputStream(bis);
            ConsumeData record = new ConsumeData();
            //must read all Field
            record.date = new Date();
            record.date.setTime(is.readLong());
            record.Num = is.readFloat();
            //显示消费明细
            tf0 = new TextField("消费金额是:"+k, null, 10, TextField.ANY);
            append(tf0);
            tf0.setString(String.valueOf(record.Num));
            if(max<record.Num){//求最大值
               max=record.Num;
            }
            if(min>record.Num){//求最大值
               min=record.Num;
             }
            sum = sum + record.Num;  //累加
            is.close();
          }
          catch (IOException e) {}
          catch (InvalidRecordIDException ex) {
            // Ignore deleted record
          }
        }
        enum.destroy();
        rs.closeRecordStore();
        append(tf2);//求和
        append(tf3);//最大值
        append(tf4);//最小值
        tf2.setString(String.valueOf(sum)); //在循环外显示
        tf3.setString(String.valueOf(max));
        tf4.setString(String.valueOf(min));
       this.removeCommand(cmdOk);
      }
      catch (Exception ie) {}
    }
   if (command.getCommandType() == Command.BACK) {
      ConsumeMIDlet.instance.backmain();
    }
  }
//定义过滤器,实现记录的查询
 public class MyFilter   implements RecordFilter {
    public boolean matches(byte[] candidate) {
      try {
        ByteArrayInputStream bis = new ByteArrayInputStream(candidate);
        DataInputStream is = new DataInputStream(bis);
        ConsumeData record = new ConsumeData();
        record.date = new Date();
        record.date.setTime(is.readLong());
        d1 = tf1.getString();//取得输入的月份值
        d2 = (String.valueOf(record.date)).substring(4, 7);//截取月份值
        record.Num = is.readFloat();
        is.close();
      }
      catch (Exception e) {}
      finally {
        if (d1.equals(d2))//判断输入的月份是否与取得的相等
          return true;
        else
          return false;
      }
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -