| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
免费IT实战开发视频教程合集分享千里之行 始于足下
共有 761 人关注过本帖
标题:Java 小白 初学者 控制台应用程序的客户管理系统 思路请教
只看楼主 加入收藏
line76
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-8-16
结帖率:0
  已结贴   问题点数:20  回复次数:5   
Java 小白 初学者 控制台应用程序的客户管理系统 思路请教
刚开始学习Java  在做控制台应用程序的客户管理系统 思路混乱 不知怎么下手 ,希望各位大佬指点一二 ,不用建立数据库链接,直接用数组就行。
需求如下:
首页菜单如下:
 客户信息管理
--------------------------------------
1.注册
1.登录
--------------------------------------
请选择(1~2):

输入 1 时呈现:
用户名:张三(输入的测试数据)
密码:123(输入的测试数据)
再次输入密码:123(输入的测试数据)
输入正确显示"注册成功!"或“注册失败!”

输入 2 时呈现:
用户名:张三(输入的测试数据)
密码:123(输入的测试数据)
如果用户名、密码正确显示如下:

 客户信息管理
--------------------------------------
1. 添加客户信息
2. 显示所有客户信息
3. 删除客户信息
4. 返回上层
--------------------------------------
请选择(1~4):
输入 1 时呈现:
客户编号:1(输入的测试数据)
客户名:李四(输入的测试数据)
联系电话:130XXXXXXXX(输入的测试数据)
输入2时,显示所有客户列表信息
输入3时呈现:
请输入客户编号 :1(输入的测试数据)
显示'删除客户成功!'或'删除客户失败!'
输入4时,返回上一级菜单
2018-08-16 16:40
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:22
帖 子:380
专家分:1662
注 册:2018-2-6
  得分:10 
这个很简单啊,做一个Servlet就可以解决

假如人生没有梦想,和咸鱼有什么区别!
2018-08-16 21:48
红柚
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:咸鱼乡的村民
等 级:版主
威 望:11
帖 子:39
专家分:175
注 册:2018-4-20
  得分:10 
同小白。
按照我这个刚学完语法基础的小白经验,还不知道java字符串跟字符串数组怎么用。
你可以先把整体弄一下,就是先会判断1或者2,2的话会触发1、2、3、4。
至于成功触发判断注册成功或者说账号正确的条件可以先用一个密码的数组判断,后面再加名字的数组应该会简单。
添加删除信息应该就把数组对应的元素赋值为0吧。
这个问题也就两层的功能,感觉你肯定会写的吧。

数据库我都还不知道是什么呢,说明你已经在我前面啦。
2018-08-17 09:35
line76
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-8-16
  得分:0 
回复 3楼 红柚
登录我的想法是用户名和密码各是一个数组,密码验证我是根据用户名和密码在数组的角标判断,角标一样通过,否则,登录失败。
至于删除这个模块的话,我是运用一个remove;
下面是完整代码,帮我提提意见 ,有什么可以修改的不
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class jiacong
{
 public static char[] id = new char[1000];//用户名数组
 public static int[] pwd = new int[1000];//密码数组
 private static Scanner sc;
   public static void main(String[] args)
  {
    Scanner scanner = new Scanner(System.in);
    int a;//用于switch判断进入注册、登录哪个环节
    int usr_id;//用户输入
    int usr_pwd;//密码输入
    int usr_num=0;//统计用户人数
 
    System.out.println("\t客户信息管理");//显示菜单
    System.out.println("----------------------");
    System.out.println("1.注册");
    System.out.println("2.登录");
    System.out.println("----------------------");

 do //循环执行
   {
        System.out.println("***请输入数字选择菜单***");
        a = scanner.nextInt();//输入一个数赋值给a,
        
  {
        switch (a)//输入的a选择菜单
        {
           case 1://注册
           {
               System.out.println("欢迎注册");
               System.out.print("请输入用户名(仅数字)");
               id[usr_num] = (char) scanner.nextInt();//输入用户名
               System.out.print("请输入密码(仅数字)");
               pwd[usr_num] = scanner.nextInt();//输入密码
               System.out.println("注册成功");
               usr_num++;
            
           }
                break;
           case 2://登录
           {         int id_pwd;//定义变量,登录输入的用户名
                       int pwd_pwd;//定义变量, 登录输入密码
                       int i;//定义账号的角标
                       int j;//定义密码的角标
                      System.out.print("请输入用户名(仅数字)");
                       id_pwd = (char) scanner.nextInt();
                       System.out.print("请输入密码(仅数字)");
                       pwd_pwd = scanner.nextInt();
                       for(i=0;id[i]==id_pwd;i++)//使用遍历的方法,计算账号在数组中的角标
                       {
                       }
                       for(j=0;pwd[j]==pwd_pwd;j++)//使用遍历的方法,计算密码在数组中的角标
                       {
                    }
                    if( i==j)//密码验证,用账号,密码在数组中的角标验证;
                    {
                        System.out.println("欢迎登录");
                        
                        showMenu();//调用菜单方法
                        List<Customer> list=new ArrayList<Customer>();//初始化一个客户集合;
                        
                        while(true)
                        {
                            System.out.print("请选择操作:");
                            sc=new Scanner(System.in);
                            String item=sc.nextLine();
                            switch (item)
                            {
                            case "1":
                                add(list);   //添加客户信息
                                break;
                            case "2":
                                showAll(list);    //显示所有客户信息
                                break;
                            case "3":
                                remove(list);//删除客户信息
                                break;        
                            case "4":
                                System.exit(0);//返回上一页   (此项功能不能实现,先用退出程序代替)
                                
                            default:
                                System.out.println("输入错误,请重新选择!");
                                break;
                            }
                        }
                    }
                    
                    else
                    { System.out.println("账号或密码错误,请重新输入");
                       
                    }
         
           }
      
        }     
        }
  }
while(a!=1|a!=2);
   System.exit(0); //退出程序  
}
  
// 添加客户信息的方法:
    private static void add(List<Customer> list)
    {
        System.out.println("\t【增加客户】");
        System.out.print("\t请输入客户编号:");
        String id=sc.nextLine();
        System.out.print("\t请输入姓名:");
        String name=sc.nextLine();
        System.out.print("\t请输入电话号码:");
        String phoneid=sc.nextLine();
        list.add(new Customer(Integer.parseInt(id),name,phoneid));
   
        System.out.println("\t增加成功!");
    }
    // 显示所有客户信息的方法
    private static void showAll(List<Customer> list)
    {
        System.out.println("\t编号\t姓名\t电话号码");
        for (Object object : list) {
            Customer cus=(Customer)object;
            System.out.println("\t"+cus.getId()+"\t"+cus.getName()+"\t"+cus.getphoneid());
        }
    }
   
    //删除 方法 的方法 :
    private static void remove(List<Customer> list)
    {
        System.out.println("\t【删除客户】");
        System.out.print("\t请输入客户信息编号:");
        String oldId=sc.nextLine();
        int index=0;
        boolean bool=false;
        for (Object object : list)
        {
            Customer cus=(Customer)object;
            if(Integer.parseInt(oldId)==cus.getId())
            {
                index=list.indexOf(cus);
                bool=true;
            }
        }
        if(bool)
        {
            list.remove(index);
            System.out.println("\t删除客户成功!");
        } else{
            System.out.println("\t删除客户失败!");
        }
    }
   
    public static void showMenu()//显示菜单
    {
        System.out.println("员工管理系统");
        System.out.println("----------------------------");
        System.out.println("【1】添加客户信息");
        System.out.println("【2】显示所有客户信息");
        System.out.println("【3】 删除客户信息");
        System.out.println("【4】返回上层");
        System.out.println("----------------------------");
        
    }

 }

 class Customer//客户的类
 {
    private int id;//客户中的对象
    private String name;
    private String phoneid;
    public int getId()//获取编号
    {
        return id;
    }
    public String getName()//获取名字
    {
        return name;
    }
    public String getphoneid()//获取电话号码
    {
        return phoneid;
    }
   
    public void setId(int id)//返回编号
    {
        this.id = id;
    }
        public void setName(String name)//放回名字
    {
        this.name = name;
   
    }
    public void setponeid(String phoneid)//返回电话号码
    {
        this.phoneid =phoneid;
    }
   
   
   
   
   
    public Customer(int id, String name,String phoneid)
    {
        super();
        this.id = id;
        this.name = name;
        this.phoneid=phoneid;
    }
   
    public String toString()
    {
        return "Customer [编号id=" + id + ", 姓名 name=" + name + ",phoneid="+phoneid+"]";
    }
   
}

   
   
2018-08-28 16:14
红柚
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:咸鱼乡的村民
等 级:版主
威 望:11
帖 子:39
专家分:175
注 册:2018-4-20
  得分:0 
回复 4楼 line76
我没有运行代码,私有类那部分我没看,因为还不会
第一层注册那里,我看只有注册成功然后就写入了,我看你的需求里是有注册失败的,所以实际应用应该要判断用户名重复的问题吧
解决这个问题就再用一个boolean数组,先boolean flags = new boolean[1000]; 然后对应下标注册成功就写true
do-while一直判断到用户名不重复(即flags[i] == false)才能注册成功。
我暂时就只会这点,谢谢~~
2018-08-28 23:06
line76
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-8-16
  得分:0 
回复 5楼 红柚
谢谢指点,原来按照我原来的想法来判断的,利用的是遍历  那样有点没完善就放弃了!
2018-08-29 21:02







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029574 second(s), 8 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved