手机JAVA编程_Java编程题:实现一个简易版的控制台手机通讯录

import java.io.*;importjava.text.Collator;import java.util.*;public classAddressBook {public static voidmain(String[] args) {newAddressBook().start();

}private voidstart(){

Scanner input= newScanner(System.in);

Menu menu= newMenu();

menu.mainMenu();

Operate operate= newOperate();

operate.read();

flag:while(input.hasNext()) {

String s=input.nextLine();if (!Util.isNumeric(s)){

System.out.println("请输入数字");

menu.mainMenu();continue;

}if (!s.matches("[1-5]")){

System.out.println("不能超出输入范围1-5");

menu.mainMenu();continue;

}switch(Integer.parseInt(s)) {case 1:

operate.add();

menu.mainMenu();break;case 2:

operate.show();

menu.mainMenu();break;case 3:

operate.edit();

menu.mainMenu();break;case 4:

operate.delete();

menu.mainMenu();break;case 5:

System.out.println("是否确定退出?y/n");if ("y".equals(input.nextLine())){breakflag;

}else{

menu.mainMenu();

}break;

}

}

input.close();

}

}//菜单类

classMenu {public voidmainMenu() {

System.out.println("*************");

System.out.println("welcome 手机通讯录");

System.out.println("请输入你想执行的操作序号:");

System.out.println("1.增加联系人名片");

System.out.println("2.查看联系人列表");

System.out.println("3.修改联系人名片");

System.out.println("4.删除联系人名片");

System.out.println("5.退出");

System.out.println("*************");

}

}//操作类

classOperate {private String filePath = "D:\\AddressBook.txt";private ArrayList list = new ArrayList<>();private Scanner input = newScanner(System.in);public voidadd() {

System.out.println("--------------");

System.out.println("---名片添加---");

System.out.println("提示信息:");

System.out.println("1.姓名为必填项 必须唯一");

System.out.println("2.多个电话号码用英文逗号分隔 不能超过10个");

System.out.println("是否继续添加?y/n");if ("n".equals(input.nextLine())){return;

}

System.out.println("*请输入姓名:");

String name=input.nextLine();

System.out.println("请输入电话号码:");

String numbers=input.nextLine();

String[] arr= numbers.split(",");

List numberList = new ArrayList<>();for(String s : arr) {

numberList.add(s);

}

System.out.println("请输入工作单位:");

String workplace=input.nextLine();

System.out.println("请输入通讯地址:");

String postaladdress=input.nextLine();

System.out.println("请输入电子邮箱:");

String mail=input.nextLine();

System.out.println("请输入生日:");

String birthday=input.nextLine();

System.out.println("请输入备注:");

String remark=input.nextLine();

Card card= newCard(name,numberList,workplace,postaladdress,mail,birthday,remark);

list.add(card);

System.out.println("名片保存成功");

System.out.println("--------------");

write();

}public voidshow() {if(list.isEmpty()){

System.out.println("通讯录为空");return;

}

System.out.println("通讯录内容如下:");for (int i = 0; i < list.size(); i++) {

Card card=list.get(i);

detail(card, i);

}

}public voidedit(){

System.out.println("--------------");

System.out.println("---名片修改---");

System.out.println("请输入要修改名片姓名:");

String name=input.nextLine();

Card card=find(name);if (card == null) {

System.out.println("找不到名片");return;

}

detail(card,0);

System.out.println("请输入要修改的选项:");

System.out.println("1.姓名");

System.out.println("2.电话号码");

System.out.println("3.工作单位");

System.out.println("4.通讯地址");

System.out.println("5.电子邮箱");

System.out.println("6.生日");

System.out.println("7.备注");

String s=input.nextLine();if (!Util.isNumeric(s)){

System.out.println("请输入数字");return;

}if (!s.matches("[1-7]")){

System.out.println("不能超出输入范围1-7");return;

}switch(Integer.parseInt(s)){case 1:

System.out.println("*请输入新的姓名:");

card.setName(input.nextLine());

System.out.println("姓名修改成功");break;case 2:

System.out.println("请输入新的电话号码:");

String[] arr= input.nextLine().split(",");

List number = new ArrayList<>();for(String n : arr) {

number.add(n);

}

card.setNumber(number);break;case 3:

System.out.println("请输入新的工作单位:");

card.setWorkplace(input.nextLine());

System.out.println("工作单位修改成功");break;case 4:

System.out.println("请输入新的通讯地址:");

card.setPostaladdress(input.nextLine());

System.out.println("通讯地址修改成功");break;case 5:

System.out.println("请输入新的电子邮箱:");

card.setMail(input.nextLine());

System.out.println("电子邮箱修改成功");break;case 6:

System.out.println("请输入新的生日:");

card.setBirthday(input.nextLine());

System.out.println("生日修改成功");break;case 7:

System.out.println("请输入新的备注:");

card.setRemark(input.nextLine());

System.out.println("备注修改成功");break;

}

System.out.println("--------------");

write();

}public voiddelete(){

System.out.println("--------------");

System.out.println("---名片删除---");

System.out.println("请输入删除名片姓名:");

String name=input.nextLine();

Card card=find(name);if (card == null){

System.out.println("找不到名片");return;

}

detail(card,0);

System.out.println("确认删除此名片?y/n");if ("y".equals(input.nextLine())){

list.remove(card);

System.out.println("名片删除成功");

}else{return;

}

System.out.println("--------------");

write();

}privateCard find(String name){for(Card card : list) {if(name.equals(card.getName())){returncard;

}

}return null;

}private void detail(Card card,inti){

System.out.println("-------------------");

System.out.println("-----名片"+(i==0?"":(i+1))+"-----");

System.out.println("姓名:"+card.getName());for (int j = 0; j < card.getNumber().size(); j++) {

System.out.println("电话号码:"+card.getNumber().get(j));

}

System.out.println("工作单位:"+card.getWorkplace());

System.out.println("通讯地址:"+card.getPostaladdress());

System.out.println("电子邮箱:"+card.getMail());

System.out.println("生日:"+card.getBirthday());

System.out.println("备注:"+card.getRemark());

System.out.println("-------------------");

}public voidread() {

File file= newFile(filePath);if (!file.exists()){return;

}try{

BufferedReader reader= new BufferedReader(newFileReader(filePath));

String s= "";

List number = new ArrayList<>();while ((s = reader.readLine()) != null){

number.clear();

Card card= newCard();

card.setName(s.split(" ")[0]);for(String n:s.split(" ")[1].split(",")){

number.add(n);

}

card.setNumber(number);

card.setWorkplace(s.split(" ")[2]);

card.setPostaladdress(s.split(" ")[3]);

card.setMail(s.split(" ")[4]);

card.setBirthday(s.split(" ")[5]);

card.setRemark(s.split(" ")[6]);

list.add(card);

}

reader.close();

}catch(IOException e) {

e.printStackTrace();

}

}public voidwrite(){

Comparator comparator=Collator.getInstance(Locale.CHINA);

Collections.sort(list,new Comparator() {

@Overridepublic intcompare(Card o1, Card o2) {return((Collator) comparator).compare(o1.getName(),o2.getName());

}

});try{

BufferedWriter writer= new BufferedWriter(newFileWriter(filePath));for(Card card : list) {

StringJoiner line= new StringJoiner(" ");

line.add(card.getName());

line.add(String.join(",",card.getNumber()));

line.add(card.getWorkplace());

line.add(card.getPostaladdress());

line.add(card.getMail());

line.add(card.getBirthday());

line.add(card.getRemark());

writer.write(line.toString());

writer.newLine();

}

writer.close();

}catch(IOException e) {

e.printStackTrace();

}

}

}//名片类

classCard {privateString name;private Listnumber;privateString workplace;privateString postaladdress;privateString mail;privateString birthday;privateString remark;publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}public ListgetNumber() {returnnumber;

}public void setNumber(Listnumber) {this.number =number;

}publicString getWorkplace() {returnworkplace;

}public voidsetWorkplace(String workplace) {this.workplace =workplace;

}publicString getPostaladdress() {returnpostaladdress;

}public voidsetPostaladdress(String postaladdress) {this.postaladdress =postaladdress;

}publicString getMail() {returnmail;

}public voidsetMail(String mail) {this.mail =mail;

}publicString getBirthday() {returnbirthday;

}public voidsetBirthday(String birthday) {this.birthday =birthday;

}publicString getRemark() {returnremark;

}public voidsetRemark(String remark) {this.remark =remark;

}publicCard(){

}public Card(String name, Listnumber, String workplace, String postaladdress, String mail, String birthday, String remark) {this.name =name;this.number =number;this.workplace =workplace;this.postaladdress =postaladdress;this.mail =mail;this.birthday =birthday;this.remark =remark;

}

}//工具类

classUtil {public static booleanisNumeric(String s){boolean flag = true;for(Character c: s.toCharArray()){if (!Character.isDigit(c)){

flag= false;break;

}

}returnflag;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.Image; import javax.microedition.lcdui.ImageItem; import javax.microedition.lcdui.Item; import javax.microedition.lcdui.TextField; public class PhoneAdd extends Form { private UIController controller; private Command BACK_COMMAND; private Command SAVE_COMMAND; private TextField nameField; private TextField phoneField; private TextField QQField; private TextField sexField; private TextField ageField; // private ImageItem iconQQ; // private Image icon; public PhoneAdd(String title, UIController control) { super(title); controller = control; this.setCommandListener(new PhoneAddListener()); BACK_COMMAND = new Command("返回", Command.BACK, 1); SAVE_COMMAND = new Command("确认", Command.OK, 2); this.addCommand(BACK_COMMAND); this.addCommand(SAVE_COMMAND); /* try{ icon=Image.createImage("/icon/7.png"); }catch(java.io.IOException e){ icon=null; System.out.println("图片导入异常"); } */ nameField = new TextField("名字", "", 16, TextField.ANY); phoneField = new TextField("电话", "", 16, TextField.PHONENUMBER); QQField = new TextField("QQ", "", 11, TextField.NUMERIC); sexField = new TextField("性别", "", 2, TextField.ANY); ageField = new TextField("年龄","",3,TextField.NUMERIC); // iconQQ=new ImageItem("",icon,Item.LAYOUT_LEFT,"图片无法显示"); this.append(nameField); this.append(phoneField); this.append(sexField); // this.append(iconQQ); this.append(QQField); this.append(ageField); } public void clear() { nameField.setString(""); phoneField.setString(""); sexField.setString(""); QQField.setString(""); ageField.setString(""); } private class PhoneAddListener implements CommandListener { public void commandAction(Command command, Displayable disp) { if (command == BACK_COMMAND) { controller.handleEvent(UIController.EventID.EVENT_VIEW_BACK, null); } else if (command == SAVE_COMMAND) { String name = nameField.getString(); String phone = phoneField.getString(); String QQ = QQField.getString(); String sex = sexField.getString(); String age= ageField.getString(); if ((name == null || name.equals("")) || (phone == null || phone.equals(""))) { return; } Object[] args = { name, phone, QQ, sex ,age}; controller.handleEvent(UIController.EventID.EVENT_NEW_SAVE, args); } } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值