package gongJu;
import shiTi.*;
import shiTi.CallService;
import shiTi.NetService;
import shiTi.SendService;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
import java.util.*;
public class CardUtil {
private static Map<String, MobileCard> cards=new HashMap<>();
private static Map<String, List<ConsumInfo>> consumInfos=new HashMap<>();
private List<Scene> scenes = new ArrayList<>();
Scanner sc=new Scanner(System.in);
public void initScene(){
scenes.add(new Scene("通话", 90, "问候客户,谁知其如此难缠,通话90分钟"));
scenes.add(new Scene("通话", 30, "询问妈妈身体状况,本地通话30分钟"));
scenes.add(new Scene("短信", 5, "参与环境保护实施方案问卷调查,发送短信5条"));
scenes.add(new Scene("短信", 50, "通知朋友手机换号,发送短信50条"));
scenes.add(new Scene("上网", 90, "跟女朋友视频聊天两个小时了"));
scenes.add(new Scene("上网", 80, "看游戏直播四个小时15G"));
}
public static void init(){
MobileCard card1=new MobileCard("13901234567", "小陈", "123456", new TalkPackage(), 58,30,600,30,0 );
MobileCard card2=new MobileCard("13908765431", "小许", "987654", new NetPackage(), 68,200,0,0,0);
MobileCard card3=new MobileCard("13092322791", "小薛", "123123", new SuperPackage(), 78,300,0,0,0);
cards.put(card1.getCardNumber(),card1);
cards.put(card2.getCardNumber(),card2);
cards.put(card3.getCardNumber(),card3);
//卡1消费记录
List<ConsumInfo> c1= new ArrayList<>();
c1.add(new ConsumInfo(card1.getCardNumber(),"通话",100));
card1.setRealTalkTime(card1.getRealTalkTime()+100);
consumInfos.put(card1.getCardNumber(),c1);
//卡2消费记录
List<ConsumInfo> c2= new ArrayList<>();
c2.add(new ConsumInfo(card2.getCardNumber(),"上网",1024));
card2.setRealFlow(card2.getRealFlow()+1024);
consumInfos.put(card2.getCardNumber(),c2);
//消费记录卡3
List<ConsumInfo> c3= new ArrayList<>();
c3.add(new ConsumInfo(card3.getCardNumber(),"通话",100));
c3.add(new ConsumInfo(card3.getCardNumber(),"上网",1024));
c3.add(new ConsumInfo(card3.getCardNumber(),"发短信",20));
card3.setRealTalkTime(card3.getRealTalkTime()+100);
card3.setRealFlow(card3.getRealFlow()+1024);
card3.setRealSMSCount(card3.getRealSMSCount()+20);
consumInfos.put(card3.getCardNumber(),c3);
}
//注册卡
public void addCard(MobileCard card1){
MobileCard card=new MobileCard();
ServicePackage sp = null;
String counts[]=getNewNumbers(9);
System.out.println("************可选择的卡号**************");
for (int i = 0; i < counts.length; i++) {
System.out.print((i+1)+"."+counts[i]+"\t\t");
if((i+1)%3==0){
System.out.println();
}
}
System.out.print("请选择卡号:(1~9)");
int cardNum=sc.nextInt();
if(cardNum>=0&&cardNum<10){
card.setCardNumber(counts[cardNum - 1]);
}
while ((cardNum-1)>=counts.length||(cardNum-1)<0){
System.out.print("请输入正确的序号:");
cardNum=sc.nextInt();
}
System.out.println("请选择套餐:1.话痨套餐(58元/月) 2.网虫套餐(68元/月) 3.超人套餐(78元/月)(请输入序号):");
int choice=sc.nextInt();
while (choice<=0||choice>3){
System.out.println("请输入正确的套餐序号");
choice=sc.nextInt();
}
switch (choice){
case 1:
sp=new TalkPackage();
break;
case 2:
sp=new NetPackage();
break;
case 3:
sp=new SuperPackage();
break;
default:
break;
}
card.setSerPackage(sp);
System.out.print("请输入姓名:");
String name=sc.next();
card.setUserName(name);
System.out.print("请输入密码:");
String password=sc.next();
card.setPassWord(password);
System.out.print("请输入预存花费金额:");
double money=sc.nextDouble();
card.setMoney(money);
System.out.println(card);
// card=new MobileCard(counts[cardNum - 1], name, password,sp, ( money-sp.getPrice()));
while(card.getMoney()<0){
System.out.print("您预存的花费金额不足以支付本月固定套餐资费,请重新充值:");
money=sc.nextDouble();
card.setMoney(money-sp.getPrice());
}
System.out.println("注册成功!");
cards.put(card.getCardNumber(),card);
card.showMeg();
// System.out.println(cards.put(card.getCardNumber(),card));
}
/**
* 判断手机号
* @param
* @return
*/
public boolean isExistCard(String number){
Set<String> numbers = cards.keySet();
Iterator<String> it = numbers.iterator();
boolean flag=false;
while (it.hasNext()){
String searchNum = it.next();
if(searchNum.equals(number)){
flag=true;
}
}
return flag;
}
//创建手机号的
public String createNumber(){
String fixedNum="188";
String cardNumber="";
Random rand=new Random();
String randNumber="";
for (int i = 0; i < 8; i++) {
randNumber+=rand.nextInt(10);
}
cardNumber=fixedNum+randNumber;
return cardNumber;
}
public String[] getNewNumbers(int count){
String[] numbers=new String[count];
for (int i = 0; i < numbers.length; i++) {
numbers[i]=createNumber();
if(isExistCard(numbers[i])){
i--;
}
for (int j = 0; j < i; j++) {
if(numbers[i].equals(numbers[j])){
i--;
break;
}
}
}
return numbers;
}
//验证账号密码
public boolean isExistCard(String number,String passWord){
Set<String> numbers = cards.keySet();
Iterator<String> it = numbers.iterator();
boolean flag=false;
while (it.hasNext()){
String searchNum = it.next();
if(searchNum.equals(number) && (cards.get(searchNum)).getPassWord().equals(passWord)){
flag=true;
}
}
return flag;
}
//充值
public void chargeMoney(String number,double money){
if(cards.get(number)!=null){
if(money>=5
嗖嗖移动大厅项目(源码+详解)
最新推荐文章于 2024-08-04 17:07:53 发布
该项目涉及5G通信,使用Java编程语言,并在Eclipse环境中开发。主要包含ConsumInfo类、MobileCard类、NetPackage接口、NetService接口、ServicePackage类、SupPackage类以及Mainnume类等核心组件,详细解释了移动大厅的功能实现。
摘要由CSDN通过智能技术生成