詳解Java如何使用集合來(lái)實(shí)現(xiàn)一個(gè)客戶信息管理系統(tǒng)
1 客戶類(lèi)
public class Customers {
private String cid;
private String name;
private String sex;
private String age;
private String call;
private String email;
public Customers() {
}
public Customers(String cid,String name, String sex, String age, String call, String email) {
this.cid=cid;
this.name = name;
this.sex = sex;
this.age = age;
this.call = call;
this.email = email;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getCall() {
return call;
}
public void setCall(String call) {
this.call = call;
}
public String getEmail() {
return email;
}
public void setEmail(String email){
this.email = email;
}
public String getCid() {
return cid;
}
public void setCid(String cid) {
this.cid = cid;
}
}
2 主界面
public class Customermanager {
public static void main(String[] args) {
ArrayList<Customers> array = new ArrayList<Customers>();
while (true) {
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( "請(qǐng)選擇1-5" );
Scanner sc = new Scanner( System.in );
String line = sc.nextLine();
switch (line) {
case "1":
//System.out.println( "1 添加客戶" );
addCustomer( array );
break;
case "2":
//System.out.println( "2 修改客戶" );
modifyCustomer( array );
break;
case "3":
//System.out.println( "3 刪除客戶" );
deleteCustomer( array );
break;
case "4":
//System.out.println( "4 查看所有客戶" );
findCustomer( array );
break;
case "5":
System.out.print("確認(rèn)是否退出(Y/N):");
String y = sc.nextLine();
if (y.equals( "Y" ))
{
System.exit( 0 );
}
}
}
}
3 方法
(1)添加客戶
public static void addCustomer(ArrayList<Customers> array ){
Scanner sc = new Scanner( System.in );
String cid;
while (true){
System.out.println("請(qǐng)輸入客戶編號(hào)");
cid = sc.nextLine();
boolean flag =isUsed( array,cid );
if (flag){
System.out.println("編號(hào)被占用,請(qǐng)重新輸入");
}else {
break;
}
}
System.out.println("請(qǐng)輸入客戶姓名");
String name = sc.nextLine();
System.out.println("請(qǐng)輸入客戶性別");
String sex = sc.nextLine();
System.out.println("請(qǐng)輸入客戶年齡");
String age = sc.nextLine();
System.out.println("請(qǐng)輸入客戶電話");
String call = sc.nextLine();
System.out.println("請(qǐng)輸入客戶郵箱");
String email = sc.nextLine();
Customers c = new Customers();
c.setCid( cid );
c.setName( name );
c.setSex( sex );
c.setAge( age );
c.setCall( call );
c.setEmail( email );
array.add( c);
System.out.println("添加成功");
}
(2)判斷編號(hào)是否被占用
public static boolean isUsed(ArrayList<Customers>array ,String cid){
boolean flag = false;
for (int i = 0; i <array.size() ; i++) {
Customers s = array.get( i );
if (s.getCid().equals( cid )){
flag = true;
break;
}
}
return flag;
}
(3)修改客戶信息
public static void modifyCustomer(ArrayList<Customers> array ){
Scanner sc= new Scanner( System.in );
System.out.println("請(qǐng)輸入要修改的客戶編號(hào)");
String cid = sc.nextLine();
System.out.println("請(qǐng)輸入客戶姓名");
String name = sc.nextLine();
System.out.println("請(qǐng)輸入客戶性別");
String sex = sc.nextLine();
System.out.println("請(qǐng)輸入客戶年齡");
String age = sc.nextLine();
System.out.println("請(qǐng)輸入客戶電話");
String call = sc.nextLine();
System.out.println("請(qǐng)輸入客戶郵箱");
String adress = sc.nextLine();
String email = sc.nextLine();
Customers c = new Customers();
c.setCid( cid );
c.setName( name );
c.setSex( sex );
c.setAge( age );
c.setCall( call );
c.setEmail( email );
for (int i = 0; i <array.size() ; i++) {
Customers customers = array.get( i );
if (customers.getCid().equals( cid )){
array.set( i,c );
break;
}
}
System.out.println("修改客戶信息成功");
}
(4)刪除客戶
public static void deleteCustomer(ArrayList<Customers> array ){
Scanner sc = new Scanner( System.in );
System.out.println("請(qǐng)輸入要?jiǎng)h除的客戶編號(hào)(-1退出)");
String cid = sc.nextLine();
if (cid.equals( "-1" )){
return;
}
int index = -1;
for (int i = 0; i < array.size(); i++) {
Customers s = array.get( i );
if (s.getCid().equals( cid )) {
index = i;
break;
}
}
if (index == -1) {
System.out.println( "該信息不存在,請(qǐng)重新輸入" );
} else {
System.out.println("確認(rèn)是否刪除(Y/N):");
String s = sc.nextLine();
if (s.equals( "Y" )|s.equals( "y" )){
array.remove( index );
System.out.println( "刪除成功" );
}
}
}
(5)客戶列表
public static void findCustomer(ArrayList<Customers> array ){
if (array.size()==0){
System.out.println("無(wú)信息,請(qǐng)?zhí)砑有畔⒃谠俨樵?);
return;//為了程序不再往下執(zhí)行
}
System.out.println("編號(hào)\t姓名\t性別\t年齡\t\t電話\t\t郵箱");
for (int i = 0; i <array.size() ; i++) {
Customers s = array.get( i );
System.out.println(s.getCid()+"\t\t"+s.getName()+"\t"+s.getSex()+"\t"+s.getAge()+"\t\t"+s.getCall()+"\t\t"+s.getEmail());
}
}
(6)退出
System.out.print("確認(rèn)是否退出(Y/N):");
String y = sc.nextLine();
if (y.equals( "Y" ))
{
System.exit( 0 );
}
4 問(wèn)題總結(jié)
(1)字符串比較問(wèn)題
在遇到輸入“-1”退出時(shí)碰到了問(wèn)題,當(dāng)時(shí)想著怎么比較String類(lèi)型和int類(lèi)型的數(shù)據(jù),后面知道直接用equals方法直接比較String類(lèi)型數(shù)據(jù)就行。
(2)修改客戶不成功
這是錯(cuò)誤代碼片
for (int i = 0; i <array.size() ; i++) {
Customers customers = array.get( i );
if (customers.getCid().equals( i )){
array.set( i,customers );
break;
}
錯(cuò)誤如下:
首先 if (customers.getCid().equals( ))這一步比較的是遍歷后的集合與輸入的cid是否相同,所以應(yīng)該是與cid比較而不是i;其次, array.set( );這一步是修改指定索引處的元素,返回被修改的元素;這里是用上面存儲(chǔ)新的客戶信息的c來(lái)修改索引處元素,所以修改后的代碼為
for (int i = 0; i <array.size() ; i++) {
Customers customers = array.get( i );
if (customers.getCid().equals( cid )){
array.set( i,c );
break;
}
(3)get和set方法使用時(shí)的疑惑 (為什么這里用set那里用get?)
本題中錄入數(shù)據(jù)時(shí)候多用set方法,輸出數(shù)據(jù)時(shí)用get方法。那么具體的應(yīng)用場(chǎng)景在什么地方?
set是寫(xiě)入數(shù)據(jù),get是得到數(shù)據(jù)
將類(lèi)的某些信息隱藏在類(lèi)內(nèi)部,不允許外部程序直接訪問(wèn),而是通過(guò)該類(lèi)提供的方法來(lái)實(shí)現(xiàn)對(duì)隱藏信息的操作和訪問(wèn)
成員變量private,提供對(duì)應(yīng)的getXxx()/setXxx()方法
總結(jié):明確試用場(chǎng)景需求,封裝之后,寫(xiě)入數(shù)據(jù)用(輸入)set方法,得到數(shù)據(jù)(輸出)用get方法。
到此這篇關(guān)于詳解Java如何使用集合來(lái)實(shí)現(xiàn)一個(gè)客戶信息管理系統(tǒng)的文章就介紹到這了,更多相關(guān)Java 客戶信息管理系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文詳細(xì)springboot實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的整合步驟
Spring Boot可以很方便地與MySQL數(shù)據(jù)庫(kù)進(jìn)行整合,下面這篇文章主要給大家介紹了關(guān)于springboot實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的整合步驟,文中通過(guò)圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03
解決springboot中自定義JavaBean返回的json對(duì)象屬性名稱大寫(xiě)變小寫(xiě)問(wèn)題
開(kāi)發(fā)過(guò)程中發(fā)現(xiàn)查詢返回的數(shù)據(jù)出現(xiàn)自定義的JavaBean的屬性值大小寫(xiě)格式出現(xiàn)問(wèn)題,導(dǎo)致前端無(wú)法接受到數(shù)據(jù),目前有四種解決方法,根據(jù)大佬的經(jīng)驗(yàn)之談,前兩種是最簡(jiǎn)單便捷的,后兩種是比較通用的方法,需要的朋友可以參考下2023-10-10
Java線程的start方法回調(diào)run方法的操作技巧
面試過(guò)程中經(jīng)常會(huì)被面試官問(wèn)到為什么我們調(diào)用start()方法時(shí)會(huì)執(zhí)行run()方法,為什么不能直接調(diào)用run()方法,問(wèn)的一頭霧水,今天小編給大家介紹下Java線程的start方法回調(diào)run方法的操作技巧,需要的朋友參考下吧2017-11-11
關(guān)于任務(wù)調(diào)度框架quartz使用(異常處理,解決恢復(fù)后多次調(diào)度處理)
這篇文章主要介紹了關(guān)于任務(wù)調(diào)度框架quartz使用(異常處理,解決恢復(fù)后多次調(diào)度處理),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
Spring的@Autowired加到接口上但獲取的是實(shí)現(xiàn)類(lèi)的問(wèn)題
這篇文章主要介紹了Spring的@Autowired加到接口上但獲取的是實(shí)現(xiàn)類(lèi)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10

