商品管理系统version1.1

文章展示了初学者使用Java编程语言实现的一个简单商品管理系统,包括商品类的封装,通过get和set方法访问和修改属性,以及增删改查功能。代码使用了静态数组存储商品信息,并通过控制台交互实现用户操作。虽然实现直接且功能完整,但作者认为代码不够优雅,反映了学习初期的阶段。
摘要由CSDN通过智能技术生成

        这个版本我根据所学的知识把商品作为一个类封装起来,外部无法直接访问商品属性而是通过get和set方法进行访问和修改。

package version1_1;

public class ShangPin{
    private int[] num=new int[10000];
    private String[] name=new String[10000];
    private int[] jiage=new int[10000];
    private int[] kucun=new int[10000];
    private  int shangpin_num=0;  //商品总数
    int getShangpin_num(){
        return shangpin_num;
    }
    int getNum(int x){
        return num[x];
    }
    String getName(int x){
        return name[x];
    }
    int getJiaGe(int x){
        return jiage[x];
    }
    int getKunCun(int x){
        return kucun[x];
    }
    int getShangPinNum(){
        return this.shangpin_num;
    }
    void setNum(int x){
        this.num[x]=x;
    }
    void setName(int x,String y){
        this.name[x]=y;
    }
    void setJiaGe(int x,int y){
        this.jiage[x]=y;
    }
    void setKuCun(int x,int y){
        this.kucun[x]=y;
    }
    void shangPinNumAdd(){
        this.shangpin_num++;
    }
    void shangPinNumReduce(){
        this.shangpin_num--;
    }
}

        另外,我把增删改查的功能完善了一下,用蹩脚的对数组操作写的。这个版本,我把所有的方法都抽出来作为一个操作类。

package version1_1;

import java.util.Scanner;
public class CaoZuo {
    static ShangPin sp=new ShangPin();
    private  String[] zhanghao_s=new String[10000];	//账号
    private  String[] mima_s=new String [10000];		//密码
    private  int nums_s=0;


    void register(){
        //System.out.println(zhanghao_s[0]);      //测试
        zhanghao_s[0]="admin";
        mima_s[0]="123";    //管理员账号密码
        while(true){
            System.out.println("0-登录\t1-注册");
            int cout=new Scanner(System.in).nextInt();
            if(cout==0){
                while(true){
                    System.out.print("用户名:");
                    String zhanghao=new Scanner(System.in).next();
                    System.out.print("密码:");
                    String mima=new Scanner(System.in).next();	//�˺���������
                    int ct=0;		//是否验证成功
                    for(int i=0;i<=this.nums_s;i++){
                        if(zhanghao.equals(zhanghao_s[i]) && mima.equals(mima_s[i])){
                            ct=1;
                            break;
                        }
                    }   //密码验证
                    if(ct==1){
                        cout=3;
                        System.out.println("登录成功");
                        break;
                    }else{
                        System.out.println("账号密码错误,请重试!");
                    }   //验证结果和接下来的操作
                }
            }
            if(cout==1){
                this.nums_s++;
                System.out.print("输入新用户名:");
                zhanghao_s[nums_s]=new Scanner(System.in).next();
                System.out.print("输入新密码:");
                mima_s[nums_s]=new Scanner(System.in).next();
            }       //注册
            if(cout==3) break;
        }
    }

    void show(){
        System.out.println("0-序号\t\t2-商品名\t\t3-价格\t\t库存");
        //System.out.printf("%-18d%-20s%-18d%-18d\n",sp.num[0],sp.name[0],sp.jiage[0],sp.kucun[0]);		//测试
        for(int i = 0;i<sp.getShangpin_num();i++){
            System.out.printf("%-8d\t%-16s\t%-8d\t%-8d\n",sp.getNum(i),sp.getName(i),sp.getJiaGe(i),sp.getKunCun(i));//格式化输出
        }
    }

    int control(){
        //while(true){
            //show();			//��Ʒչʾ
            System.out.println("\n0-添加商品\t1-删除商品\t2-编辑商品\t3-查询商品\t4-退出");
            int _control=new Scanner(System.in).nextInt();
            if(_control==0){
                add(sp.getShangpin_num());
            }else if(_control==1){
                delete();
            }else if(_control==2){
                edit();
            }else if(_control==3){
                find();
            }else if(_control==4){
                exit();
                //break;
            }else{
                System.out.println("错误输入");
            }
        //}
        return _control;
    }
    static void add(int x){
        sp.setNum(x);
        System.out.print("新的商品名:");
        String name=new Scanner(System.in).next();
        sp.setName(x,name);
        System.out.print("价格:");
        int jiage=new Scanner(System.in).nextInt();
        sp.setJiaGe(x,jiage);
        System.out.print("库存:");
        int kucun=new Scanner(System.in).nextInt();
        sp.setKuCun(x,kucun);
        sp.shangPinNumAdd();
    }
    static void delete(){
        System.out.print("输入你要删除的商品的序号:");
        int index_d=new Scanner(System.in).nextInt();
        for(int i=index_d;i<sp.getShangpin_num();i++){
            sp.setName(i,sp.getName(i+1));
            sp.setJiaGe(i,sp.getJiaGe(i+1));
            sp.setKuCun(i,sp.getKunCun(i+1));
        }
        sp.shangPinNumReduce();
    }

    static void edit(){
        System.out.print("选择你要编辑的商品序号:");
        int index_e=new Scanner(System.in).nextInt();
        System.out.println("选择你要编辑的商品属性1-商品名  2-价格  3-库存");
        int cont=new Scanner(System.in).nextInt();
        switch(cont){
            case 1:
                System.out.print("输入新的商品名:");
                String name_t=new Scanner(System.in).next();
                sp.setName(index_e,name_t);
                break;
            case 2:
                System.out.print("输入新的价格:");
                int jiage_t=new Scanner(System.in).nextInt();
                sp.setJiaGe(index_e,jiage_t);
                break;
            case 3:
                System.out.print("输入新的库存:");
                int kucun_t=new Scanner(System.in).nextInt();
                sp.setKuCun(index_e,kucun_t);
                break;
            default:
                break;
        }
    }

    static void find(){
        System.out.print("输入要查询的商品的名字:");
        String name_f=new Scanner(System.in).next();
        int ft=0;
        for(int i=0;i<sp.getShangpin_num();i++){
            if(name_f.equals(sp.getName(i))){
                ft=1;
                System.out.println("序号:"+sp.getNum(i));
                System.out.println("商品名:"+sp.getName(i));
                System.out.println("价格:"+sp.getJiaGe(i));
                System.out.println("库存:"+sp.getKunCun(i));
                break;
            }
        }
        if(ft==0){
            System.out.println("查无此商品!");
        }
    }
    static void exit(){
        System.out.println("再见");
    }

}

        最后写一个主类利用循环结构达到想要的目的。

package version1_1;

public class CommodityManagementSystem {
    public static void main(String[] args){
        CaoZuo cz=new CaoZuo();
        cz.register();		//登录注册
        while (true){
            cz.show();
            int control=cz.control();
            if(control==4) break;
            }
    }
}

        小结:当时写出来的时候非常沾沾自喜,现在看来非常难看,虽然能跑,该有的功能都要,也能勉强达到想要的效果;但这个功能的实现代码可以说是为达目的不择手段,一点都不优雅。当然,那时还只学了一个多月。用现在的知识去评判以前的代码真的就是耍流氓,谁不是小白过来的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值