关于如何利用面向对象的思想做商城管理系统

来源:互联网 发布:新疆网络安全形势 编辑:程序博客网 时间:2024/06/05 05:00

                把自己的每个做的项目记录下来,我相信这个日积月累的话会是一个非常不错的珍藏。关于这个商城管理系统,刚开始是利用数组来做,现在自己利用对象的对象数组来做。

      1.直接创建一个商城商品的类Goods(商品)直接上代码。

package bean;

//
public class Goods {

//定义商品id
private int id;

//定义商品名字
private String name;

商品价格


private double price;

//定义数量
private int sum;

public Goods(int id, String name, double price, int sum) {

//调用构造函数,初始化对象
super();

//输入id不能为0
if(id<0){
System.out.print("输入为负不对,请重新输入!");
}else
{
this.id = id;
}
this.name = name;

//输入价格不能小于等于0

if(price<=0){
System.out.print("输入为负不对,请重新输入!");
}else{
this.price = price;
}

// 输入数量不能小于等于0;
if(sum<=0){
System.out.print("输入为负不对,请重新输入!");
}else{
this.sum = sum;
}
}

//以下是对变量初始化,和构造函数初始化一样的
public int getId() {
return id;
}
public void setId(int id) {
if(id<0)
{
System.out.print("输入为负不对,请重新输入!");
}else
{
this.id = id;
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {

return price;
}
public void setPrice(double price) {
if(price<=0){
System.out.print("输入为负不对,请重新输入!");
}else
{
this.price = price;
}
}
public int getSum() {
return sum;
}
public void setSum(int sum) {
if(sum<=0){
System.out.print("输入为负不对,请重新输入!");
}else
{
this.sum = sum;
}
}
     
}

2.创建一个数组工具类,包括对商品进行增加,删除,改动,查询。单独创建一个工具类,方便使用

package ArrayUti;


import java.util.Scanner;


import bean.Goods;


public class Array {

// z商品增加功能  返回值类型为Good类类型的数组Good[],同时返回一个对象为Goods类型
public static Goods[] add(Goods[] arr,Goods goods)
{

                //首先定义一个新数组长度在原数组的长度上+1
Goods[] arr1=new Goods[arr.length+1];

                   //遍历传入的数组,并将原数组的对象地址传递给新数组中
for(int i=0;i<arr.length;i++){
arr1[i]=arr[i];
}

                 //将新增加的对象放在新对象的末尾
arr1[arr.length]=goods;

                //将新数组返回给主函数
return arr1;
}

//商品减少功能  返回值类型为Good类类型的数组Good[],传入要找的商品的id
public static Goods[] shanchu(Goods[] arr,int id)
{           

          //首先定义一个新数组长度在原数组的长度上-1
Goods[] arr1=new Goods[arr.length-1];

             //定义一个角标index用来记录要删除的数组
int index=0;

              //遍历原数组
for(int i=0;i<arr.length;i++){

                  //找到该id的商品
if(arr[i].getId()==id){

                         //拿出它的角标
index=i;
System.out.print("i"+index);
}
}

              //遍历原数组
for(int i=0;i<arr.length;i++)
{

                      //如果原来商品的数量就为0的时候
if(arr.length==0){

                               //直接输出商品为空,输入错误,返回空的新数组
System.out.print("商品为空,输入错误");
return arr1;
}

                           //如果有一个商品的时候
else if(arr.length==1){
//因为删除就没有了,所以直接返回为空新数组
return arr1;
}

                       //如果商品大于1的时候,可以直接将要删除的这个角标的商品不传递给新数组,将它不显示
else if(arr.length>1){

                              //将该角标前面的商品的直接传递给新数组
if(i<index)
{
arr1[i]=arr[i];

                              //将该角标面的商品的直接传递给新数组
}else if(i>index)
{
arr1[i]=arr[i];
}
}
}

              //返回新数组
return arr1;
}

           //商品修改功能  返回值类型为Good类类型的数组Good[],传入要查看的商品的id
public static Goods[] up(Goods[] arr,int id)
{

               //定义一个变量为了下面进行查看商品具体各项内容做选择
int um=0;
    Scanner sc=new Scanner(System.in);
            //遍历数组,找到要查看的商品
for(int i=0;i<arr.length;i++)
{

                           //找到了该商品
if(arr[i].getId()==id){

                                  //具体要删除的内容
System.out.println("1.修改id 2.修改name 3.修改price 4.修改数量");

                   //设置一个循环,进行相关的选择
while(true){
um=sc.nextInt();

                                              //可以  
switch(um)
{
case 1:

                                             // 情况1是改id
    int a=sc.nextInt();
arr[i].setId(a);
return arr;
case 2:

                                                     // 情况2是改名字
String b=sc.next();
arr[i].setName(b);
return arr;
case 3:

                                                      // 情况3是改价格
double c=sc.nextDouble();
arr[i].setPrice(c);
return arr;
case 4:
int d=sc.nextInt();

                                                     // 情况4是改数量
arr[i].setSum(d);
return arr;
default:
System.out.println("输入不正确");
break;
}


}
       //如果没有找到,直接输出
}else{
System.out.println("没有找到");

}
}

                  //没有找到返回一个数组
return arr;
}

             // 商品查看查看功能
public static void chakan(Goods[] arr,int id)
{

                         // 商品查看查看功能
for(int i=0;i<arr.length;i++)
{

                          //
if(arr[i].getId()==id)
{

                                  
System.out.println(arr[i].getId());   

System.out.println(arr[i].getName());

System.out.println(arr[i].getPrice());
System.out.println(arr[i].getSum());

}
}
}
}

//  首先基地

package Test;


import java.util.Scanner;


import ArrayUti.Array;
import bean.Goods;

//定义一个测试类,
public class Tset1 {
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
//定义id ,名字 价格 数量,用来输入对象
int id;
String name;
double price;
int sum;

              //创建一个Good[]的数组用来储存Goods商品对象
Goods[] arr=new Goods[0];
 
System.out.println("欢迎进入商城管理系统!");

                    //创建一个while循环,进行用户人性化选择
while(true){
System.out.println("1.增加商品2.删除商品3.修改商品4.查看商品5.退出");
int num=sc.nextInt();

                  //进入具体要选择的地方
switch(num)
{

                    //第一个是增加对象
case 1:
System.out.print("请输入商品id");
 id=sc.nextInt();
 System.out.print("请输入商品名字");
 name=sc.next();
 System.out.print("请输入商品价格");
 price=sc.nextDouble();
 System.out.print("请输入商品数量");
 sum=sc.nextInt();

                          //创建对象
 Goods goods=new Goods(id, name, price, sum);

                            //调用函数
 arr=Array.add(arr, goods);
 System.out.println("添加成功");
break;
case 2:
System.out.print("请输入要删除的商品id");
id=sc.nextInt();
arr=Array.shanchu(arr,id);
System.out.print("删除成功");
break;
case 3:
System.out.print("请输入要修改的商品id");
id=sc.nextInt();
Array.up(arr,id);
break;
case 4:
System.out.print("请输入要查看的商品id");
id=sc.nextInt();
Array.chakan(arr,id);
System.out.print("修改成功");
break;
case 5:
System.out.print("谢谢使用");
return;
default:
break;
 
}
}
}
}

还有一些没有实现的小细节,比如输入的id不能以前都有的,所以需要判别等等

原创粉丝点击