求助,java入门这题关于从文件输入对象不知道怎么操作,没有思路啊……
package zuoye;
/*
* 要求:
1、从fueltype.txt建立不同油品类型(对象动态数组)
2、从fuelcard.txt建立多张加油卡(对象动态数组)
3、实现简单的循环菜单显示,并实现存|充值、加油、显示卡信息、修改密码、更改车牌等功能
4、退出前,将加油卡信息存入fuelcard.txt中
*/
下面是原来的,要作修改。需要耐心,拜托看一下
import java.util.Scanner;
class FuelCard{
String cardID;
String carNumber;
int cardPWD;
Double chargeSum;
Double cardBalance;
FuelCard(String id,String number,int PWD,double sum,double balance) {
cardID=id;
carNumber=number;
cardPWD=PWD;
chargeSum=sum;
cardBalance=balance;
}
void displayFuelCard() {
System.out.println("卡号"+cardID);
System.out.println("车牌号"+carNumber);
System.out.println("密码"+cardPWD);
System.out.println("充值总额"+chargeSum);
System.out.println("账户余额"+cardBalance);
}
void chargeMoney(double money) {
cardBalance+=money;
}
void chargeFuel(int sum,Object o ) {
chargeSum+=sum;
cardBalance-=((FuelPrice) o).fuelPrice*sum;
}
void changePWD(int PWD) {
cardPWD=PWD;
}
void changeCarNumber(String number) {
carNumber=number;
}
}
class VIPcard extends FuelCard{
int level;
VIPcard(String id,String number,int PWD,double sum,double balance,int level) {
super(id,number,PWD,sum,balance);
this.level=level;
}
void chargeFuel(int sum,Object o ) {
chargeSum+=sum;
if(level==0) {
cardBalance-=((FuelPrice) o).fuelPrice*sum;
}else if(level==1) {
cardBalance-=((FuelPrice) o).fuelPrice*sum*0.98;
}else {
cardBalance-=((FuelPrice) o).fuelPrice*sum*0.95;
}
}
}
class FuelPrice{
String fuelType;
double fuelPrice;
FuelPrice(String type,double price) {
fuelType=type;
fuelPrice=price;}
}
public class FuelChargeDemo{
public static void main(String[] args) {
FuelPrice [] fp=new FuelPrice[4];
fp[0]=new FuelPrice("G90",6.2);
fp[1]=new FuelPrice("G93",6.5);
fp[2]=new FuelPrice("G97",6.9);
fp[3]=new FuelPrice("D0",6.0);
VIPcard myFuelCard[]=new VIPcard [4];
myFuelCard[0]= new VIPcard("201512120001", "山A66666",123456,1000,800,0);//分别是卡号,车牌,密码,油量,余额,等级
myFuelCard[1]=new VIPcard("201512016666", "山A16816",654321,3000,2300,1);
myFuelCard[2]=new VIPcard("201512023333", "山A93398",888888,5000,3800,2);
myFuelCard[3]=new VIPcard("201512039999", "山A88066",999999,8000,6790,2);
Scanner sc=new Scanner(System.in);
System.out.println("输入索要查询的加油卡卡号");
String id=sc.nextLine();
int n=-1;
for(int i=0;i<4;i++) {
if(id.equals(myFuelCard[i].cardID))
n=i;
}
if(n==-1)
System.out.println("输入错误!");
else
while(true) {
System.out.println("1.充值 ");
System.out.println("2.加油");
System.out.println("3.显示卡信息");
System.out.println("4.修改密码");
System.out.println("5.退出");
switch(sc.nextInt()) {
case 1:
System.out.println("输入充值的金额");
myFuelCard[n].chargeMoney(sc.nextDouble());
break;
case 2:
System.out.println("输入要加的油的序号");
int x=sc.nextInt();
if(myFuelCard[n].cardBalance<fp[x].fuelPrice)
System.out.println("余额不足不能加");
else
System.out.println("输入加油量");
int sum=sc.nextInt();
System.out.println("请输入要加的油");
int f=sc.nextInt();
myFuelCard[n].chargeFuel(sum,fp[f]);
break;
case 3:
myFuelCard[n].displayFuelCard();
break;
case 4:
System.out.println("输入新密码");
myFuelCard[n].changePWD(sc.nextInt());
break;
case 5:
System.exit(1);
}
}
}
}