客户信息管理软件

模拟实现基于文本界面的《客户信息管理软件》

  1. 实现对客户对象的插入、删除、修改(用数组实现),并能够打印客户明细表
  2. 主菜单:

1 添加客户(姓名、性别、年龄、电话、邮箱)

2 修改客户

3 删除客户

4 客户列表

5 退出

 

一共有三个界面

CustomerManager

import java.util.Scanner;

public class CustomerManager {
	//属性
private Customer[] customer;
private int numberOfCustomer;
private Scanner scan=new Scanner(System.in);
//构造器
public CustomerManager() {
	customer=new Customer[10000];
	this.numberOfCustomer=0;
	//super();
	// TODO Auto-generated constructor stub
}
//菜单函数
public void menu() {
	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("请输入你的选择:");
}
//添加客户函数
public void addCustomer() {
	Customer c=new Customer();
	c.setId(this.numberOfCustomer);
	System.out.println("请输入客户姓名:");
	c.setName(scan.next());
	System.out.println("请输入客户性别:");
	c.setSex(scan.next());
	System.out.println("请输入客户年龄:");
	c.setAge(scan.nextInt());
	System.out.println("请输入客户电话:");
	c.setTel(scan.next());
	System.out.println("请输入客户邮箱:");
	c.setEmail(scan.next());
	
	customer[this.numberOfCustomer]=c;
	this.numberOfCustomer++;
	System.out.println("添加成功");
}
//查找函数
public int findCustomer(String nameString,int idString) {
	//boolean isFind=false;
	
	int num=-1;
	for(int i=0;i<this.numberOfCustomer;i++) {
		//System.out.println(customer[i].getId()+customer[i].getAge());
		if((nameString.toLowerCase()).equals(customer[i].getName())&&customer[i].getId()==idString) {//toLowerCase()大写变小写
		//	isFind=true;
			 num=i;
			break;
		}	
		//isFind=false;
}
	return num;
}
//修改客户函数
public void modifyCustomer() {
	System.out.println("请输入需要修改的客户的姓名:");
	String nameString=scan.next();
	System.out.println("请输入需要修改的客户的编号:");
	int idString=scan.nextInt();
	if(findCustomer(nameString,idString)>=0)//查找客户
	{
		//找到了
		modefy(findCustomer(nameString, idString));
	}else {
		System.out.println("该客户不存在");
		}
}
//修改函数
public void modefy(int i) {
	System.out.println("请输入要修改的客户信息");
	System.out.println("1.姓名");
	System.out.println("2.性别");
	System.out.println("3.年龄");
	System.out.println("4.电话");
	System.out.println("5.邮箱");
	int choice=scan.nextInt();
	switch (choice) {
	case 1:{
		//修改姓名
		System.out.println("请重新输入客户的姓名");
		customer[i].setName(scan.next());
		System.out.println("修改完毕,客户信息为:");
		printTitle();
		System.out.print(i);
		print(customer[i]);
		break;
	}case 2:{
		//修改性别
		System.out.println("请重新输入客户的性别");
		customer[i].setSex(scan.next());
		System.out.println("修改完毕,客户信息为:");
		printTitle();
		System.out.print(i);
		print(customer[i]);
		break;
	}case 3:{
		//修改年龄
		System.out.println("请重新输入客户的年龄");
		customer[i].setAge(scan.nextInt());
		System.out.println("修改完毕,客户信息为:");
		printTitle();
		System.out.print(i);
		print(customer[i]);
		break;
	}case 4:{
		//修改电话
		System.out.println("请重新输入客户的电话");
		customer[i].setTel(scan.next());
		System.out.println("修改完毕,客户信息为:");
		printTitle();
		System.out.print(i);
		print(customer[i]);
		break;
	}case 5:{
		//修改邮箱
		System.out.println("请重新输入客户的邮箱");
		customer[i].setEmail(scan.next());
		System.out.println("修改完毕,客户信息为:");
		printTitle();
		System.out.print(i);
		print(customer[i]);
		break;
	}
	default:{
		System.out.println("输入有误");
		break;}
	}//switch
}
//打印标题函数
public void printTitle() {
	System.out.println("编号\t姓名\t性别\t年龄\t电话\t\t邮箱");
}
//打印客户信息函数
public void print(Customer c) {
	System.out.println("\t"+c.getName()+"\t"+c.getSex()+"\t"+c.getAge()+"\t"+c.getTel()+"\t"+c.getEmail());
}
//删除客户函数
public void deleteCustomer() {
	System.out.println("请输入要删除的客户的编号和姓名");
	int idString=scan.nextInt();
	String nameString=scan.next();
	//查找客户
	if(findCustomer(nameString, idString)>=0) {
		//删除客户
		for(int i=findCustomer(nameString, idString);i<this.numberOfCustomer;i++) {
			customer[i]=customer[i+1];
		}
		this.numberOfCustomer--;
		System .out.println("删除完毕");
	}else {
		System.out.println("该客户不存在");
	}
}
//打印客户列表
public void printCustomerList() {
	printTitle();
	for(int i=0;i<this.numberOfCustomer;i++) {
		System.out.print(i);
		print(customer[i]);
	}
	System.out.println("打印完毕");
}




}

Customer

public class Customer {

private int id;//客户编号
private String name;//客户姓名
private String sex;//客户性别
private int age;//年龄
private String tel;//电话
private String email;//客户邮箱
//构造器
public Customer() {
	//super();
	// TODO Auto-generated constructor stub
}
public int getId() {
	return id;
}

public void setId(int id) {
	this.id = id;
}
public String getName() {
	return name.toLowerCase();
}
public void setName(String name) {
	this.name = name.toLowerCase();
}
public String getSex() {
	return sex;
}
public void setSex(String sex) {
	this.sex = sex;
}
public int getAge() {
	return age;
}
public void setAge(int age) {
	this.age = age;
}
public String getTel() {
	return tel;
}
public void setTel(String tel) {
	this.tel = tel;
}
public String getEmail() {
	return email;
}
public void setEmail(String email) {
	this.email = email;
}



}

CustomerView

import java.util.Scanner;

//import com.sun.java_cup.internal.runtime.Symbol;

public class CustomerView {
	public static void main(String[] args) {
		CustomerManager customerManager = new CustomerManager();
		Scanner scanner = new Scanner(System.in);
		int choice;
		// boolean flag=true;
		while (true) {
			// 与switch和if无关,是Scanner类读取缓冲的问题
			// 目前尚未解决,(今天,明天计划解决),先改成next就没事
			// 已解决,具体问题的分析,详见另一个文章
			/*
			 * //打印菜单 customerManager.menu(); choice=scanner.nextInt(); switch (choice) {
			 * case 1:{ //添加客户 System.out.println("添加客户"); break; } case 2:{ //修改客户
			 * System.out.println("修改客户"); break; } case 3:{ //删除客户
			 * System.out.println("删除客户"); break; } case 4:{ //打印客户列表
			 * System.out.println("打印客户列表"); break; } case 5:{ //退出
			 * System.out.println("是否确认退出 Y/N"); String cString=scanner.next();
			 * if(cString=="Y"||cString=="y") { System.out.println("确认退出"); //flag=false;
			 * i=100; break; }else { break;//退出Switch循环体的 意思 }
			 * 
			 * } default:{ System.out.println("输入有误,请重新输入"); break; }
			 * 
			 * }//switch
			 */
			// 打印菜单
			customerManager.menu();
			choice = scanner.nextInt();
			// scanner.close();
			if (choice == 1) {
				// 添加客户
				System.out.println("添加客户");
				customerManager.addCustomer();
				System.out.println("请按任意键继续");
				scanner.nextLine();
				String str = scanner.nextLine();
			} else if (choice == 2) {
				// 修改客户
				System.out.println("修改客户");
				customerManager.modifyCustomer();
				System.out.println("请按任意键继续");
				String str = scanner.nextLine();
			} else if (choice == 3) {
				// 删除客户
				System.out.println("删除客户");
				customerManager.deleteCustomer();
				System.out.println("请按任意键继续");
				scanner.nextLine();
				String str = scanner.nextLine();
			} else if (choice == 4) {
				// 打印客户列表
				System.out.println("打印客户列表");
				customerManager.printCustomerList();
				System.out.println("请按任意键继续");
				scanner.nextLine();
				String str = scanner.nextLine();			
			} else if (choice == 5) {
				// 退出
				System.out.println("是否确认退出 Y/N");// 与switch和if无关,是Scanner类读取缓冲的问题
				// 目前尚未解决,(今天,明天计划解决),先改成nextInt就没事
				// 问题解决了,不是next的问题,是判断问题,详见另一个文章
				// scanner=new Scanner(System.in);
				// scanner.nextLine();
				String cString = scanner.next();
				char c = cString.toUpperCase().charAt(0);//toUpperCase()小写便大写
				if (c == 'Y') {
					System.out.println("退出");
					scanner.close();
					System.exit(0);
				}
			} else {
				System.out.println("输入有误,请重新输入");				
				System.out.println("请按任意键继续");
				scanner.nextLine();
				String str = scanner.nextLine();
			}

			// scanner.close();
		} // while

	}
}

 

总结:遇见了一些问题

  • 在后面判断是否退出时,执行了else里的语句,一开始以为是next()和nextInt()连用的问题
  • 后来发现其实是两个判断的字符不一样,以为是System.in读入的字符又换行回车等问题 然后又不是
  • 最后发现其实是String类其实是new在堆区的,直接用“==”判断使其会判断地址和字符串,自然不相等
  • 利用字符串的equals函数判断两个字符串的内容是否相等
  • 新学的函数 String类的 toUpperCase()函数 :小写换大写   toLowerCase() 大写变小写    trim()函数去除多余的转义字符 字符串两侧的空白字符等 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值