version1_2

         在这个版本中我把管理员方法,购买者方法和用户方法提取出来,并用不同的角色去操作,比如管理员只能调用管理员方法。

package version1_2;
public class ShangPin{
    private final int[] num=new int[10000];
    private final String[] name=new String[10000];
    private final double[] jiage=new double[10000];
    private final 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];
    }
    double getJiaGe(int x){
        return jiage[x];
    }
    int getKunCun(int x){
        return kucun[x];
    }
    void setNum(int x){
        this.num[x]=x;
    }
    void setName(int x,String y){
        this.name[x]=y;
    }
    void setJiaGe(int x,double 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_2;

import java.util.Scanner;

public class BasicFunction {
    private final String[] zhanghao_s=new String[100];	//验证用账号
    private final String[] mima_s=new String [100];		//验证用密码
    private  int nums_s=0;		//账号数
    //ShangPin sp=new ShangPin();
    void show(ShangPin sp){
        System.out.println("序号\t\t商品名称\t\t价格\t\t库存");
        //System.out.printf("%-18d%-20s%-18d%-18d\n",sp.num[0],sp.name[0],sp.jiage[0],sp.kucun[0]);		//测试
        //System.out.println(sp.getShangPin_num());
        for(int i = 0;i<sp.getShangPin_num();i++){
            System.out.printf("%-8d\t%-16s\t%-8.2f\t%-8d\n",sp.getNum(i),sp.getName(i),sp.getJiaGe(i),sp.getKunCun(i));
        }
    }
    int register(){
        zhanghao_s[0]="admin";
        mima_s[0]="123";    //管理员账号密码
        int yesno=0;
        while(true){
            //System.out.println(zhanghao_s[0]);      //测试
            System.out.println("0-登录\t1-注册\t2-退出");
            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])){
                            if(i==0) yesno=1;
                            ct=1;
                            break;
                        }
                    }   //密码验证
                    if(ct==1){
                        cout=3;
                        //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==2){
                yesno=cout;
                break;
            }
            if(cout==3) break;
        }
        return yesno;//是否为管理员
    }

    void buy(){

    }
    void exit(){
        System.out.println("感谢你的使用!");
    }
}
package version1_2;

import java.util.Scanner;

public class AdminFunction extends BasicFunction {
    //ShangPin sp=new ShangPin();
    void add(ShangPin sp,String name,double jiage,int kucun){
        int x= sp.getShangPin_num();
        //System.out.println("上架前商品数"+x);
        sp.setNum(x);
        sp.setName(x,name);
        sp.setJiaGe(x,jiage);
        sp.setKuCun(x,kucun);
        sp.shangPinNumAdd();
        //System.out.println(sp.getShangPin_num());
    }
    void delete(ShangPin sp,int index_d){
        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();
    }

    void edit(ShangPin sp,int index_e,String name_t){
        sp.setName(index_e,name_t);
    }
    void edit(ShangPin sp,int index_e,double jiage_t){
        sp.setJiaGe(index_e,jiage_t);
    }
    void edit(ShangPin sp,int index_e,int kucun_t){
        sp.setKuCun(index_e,kucun_t);
    }
    void find(ShangPin sp){    //目前只添加了根据商品名称查找,后续可能会添加根据价格,库存筛选的功能
        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("查无此商品!");
        }
    }
    void buy(ShangPin sp){

    }

}

         其实这个购买者方法还没有写完,当时我写的时候脑子里就有了更好的想法,所以就搁置了

package version1_2;

import java.util.Scanner;

public class BuyerFunction extends BasicFunction{
    void find(ShangPin sp){    //目前只添加了根据商品名称查找,后续可能会添加根据价格,库存筛选的功能
        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("查无此商品!");
        }
    }
    void exit(){
        System.out.println("欢迎下次光临");
    }
}
package version1_2;

import java.util.Scanner;

//import static demo.Main.sp;

public class Admin {

    AdminFunction adminFunction =new AdminFunction();
    ShangPin sp;
    public Admin(ShangPin sp) {
        this.sp=sp;
    }

    //ShangPin sp=new ShangPin();
    void control(){
        while(true) {
            adminFunction.show(sp);            //商品展示
            System.out.println("\n0-上架\t1-下架\t2-编辑\t3-查询\t4-退出");
            int _control = new Scanner(System.in).nextInt();
            //if (_control == 0) {
            switch(_control) {
                case 0:
                    System.out.print("商品名:");
                    String name = new Scanner(System.in).next();
                    System.out.print("价格:");
                    double jiage = new Scanner(System.in).nextDouble();
                    System.out.print("库存:");
                    int kucun = new Scanner(System.in).nextInt();
                    adminFunction.add(sp, name, jiage, kucun);
                    break;
                //}
                //else if(_control == 1) {
                case 1:
                    System.out.print("选择你要删除的商品的序号:");
                    int index_d = new Scanner(System.in).nextInt();
                    adminFunction.delete(sp, index_d);
                    break;
                //}
                //else if(_control == 2) {
                case 2:
                    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();
                            adminFunction.edit(sp, index_e, name_t);
                            break;
                        case 2:
                            System.out.print("输入新的商品价格:");
                            double jiage_t = new Scanner(System.in).nextDouble();
                            adminFunction.edit(sp, index_e, jiage_t);
                        case 3:
                            System.out.print("输入新的商品库存:");
                            int kucun_t = new Scanner(System.in).nextInt();
                            adminFunction.edit(sp, index_e, kucun_t);
                    }
                    break;
                //}
                //else if (_control == 3) {
                case 3:
                    adminFunction.find(sp);
                    break;
                    //}
                //else if (_control == 4) {
                case 4:
                    adminFunction.exit();
                    break;
                //}
                //else {
                default:
                System.out.println("请输入正确的命令!");
                break;
                //}
            }
            if(_control==4) break;
        }
    }

}
package version1_2;

import java.util.Scanner;

//import static demo.Main.sp;

public class Buyer {
    ShangPin sp;
    public Buyer(ShangPin sp) {
        this.sp=sp;
    }
    void control(){
        while(true){
            new BuyerFunction().show(sp);
            System.out.println("\n1-购买\t2-查询\t3-退出");
            int cont = new Scanner(System.in).nextInt();
            switch (cont) {
                case 1:
                    break;
                case 2:
                    new BuyerFunction().find(sp);
                    break;
                case 3:
                    new BuyerFunction().exit();
                    break;
            }
            if(cont==3) break;
        }
    }
}
package version1_2;

public class Main {
    public static ShangPin sp=new ShangPin();
    public static void main(String[] args){
        while(true){
            int cont = new AdminFunction().register();
            //int cont=1;
            if (cont == 0) {
                System.out.println("尊敬的顾客,欢迎您的光临");
                new Buyer(sp).control();
            } else if (cont == 1) {
                System.out.println("您好,勤劳的管理员");
                new Admin(sp).control();
            } else if (cont == 2) {
                System.out.println("再见");
                break;
            }
        }

    }

}

        到这里就结束了,这次我已经尽量的去调整结构,让这个程序结构更加美观,但当时并没有讲接口、多态等,我就无从下手。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值