java设计的电脑销售系统

简介: java设计的电脑销售系统

电脑销售系统课程设计报告

一、开发背景

随着经济和计算机技术的快速发展,移动银行和网上电子支付等业务也逐渐的发展起来,网上购物也变成了一种常态。在这一背景之下,我们开始研究一个java的课程程序报告,关于电脑销售系统。

二、系统需求分析

现要开发一个电脑销售系统,主要有顾客和管理员两个实体,和实现查询电脑信息,添加电脑信息,修改电脑信息,删除电脑信息,生成顾客购买信息和删除顾客购买信息。管理员可以根据需求对电脑信息进行增添查改和对顾客购买信息的删除。顾客可以通过顾客购买界面购买电脑。

三、系统功能模块设计

3.1 系统模块设计

1:系统模块设计图

3.2 模块说明

1、查看电脑信息模块

图2:查看电脑信息模块图

功能描述:此模块的主要功能是实现管理员查看电脑信息,输入相应编号,就能查看电脑信息

输入:相应编号

输出:电脑品牌、价格、库存

2、查询顾客购买信息模块

功能描述:此模块的主要功能是实现顾客购买后查询购买的信息,输入相应编号,输入姓名和电话,如果姓名和电话是正确的就可以查看信息

图3:查看顾客购买信息模块图

输入:相应编号 姓名,电话

输出:姓名,性别,电话,购买品牌,购买台数

3、修改电脑信息模块

图4:修改电脑信息模块图

功能描述:此模块的主要功能是实现管理员修改电脑信息,输入相应编号,输入要修改的品牌,输入修改后的品牌,价格,库存就能完成修改。

输入:相应编号 修改前的品牌名,修改后的品牌名,修改后的价格,修改后的库存

输出:修改成功

4、添加电脑信息模块

图5:添加电脑信息模块图

功能描述:此模块的主要功能是实现管理员添加电脑信息,输入相应编号,输入要添加的品牌,价格和库存来完成添加电脑信息

输入:相应编号 要添加的品牌名,价格和库存

输出:添加成功

  1. 删除电脑信息模块

图6:删除电脑信息模块图

功能描述:此模块的主要功能是实现管理员删除电脑信息,输入相应编号,输入要删除的电脑品牌名来删除电脑信息

输入:相应编号 要删除的电脑品牌

输出:删除成功

  1. 删除顾客购买信息模块

图7:删除顾客购买信息模块图

功能描述:此模块的主要功能是实现管理员删除顾客购买信息,输入相应编号,输入要删除的顾客名

输入:相应编号,要删除的顾客名

输出:删除成功

  1. 购买电脑模块

图8:购买电脑信息模块图

功能描述:此模块的主要功能是实现顾客购买电脑,顾客输入相应的编号,输入要购买的电脑品牌,输入姓名,性别,电话,和要购买的电脑数量

输入:相应编号,电脑脑品牌,姓名,性别,电话,购买的台数

输出:购买成功,共消费金额

四、详细设计

1、电脑(Computer)类

类名:Computer

继承父类:无

实现接口:无

概述:定义电脑属性

属性及说明:brand(品牌)、price(价格)、inventory(库存);用来设置电脑的品牌,价格,库存

方法及说明:无

2、顾客(Customer)类

类名:Customer

继承父类:无

实现接口:无

概述:定义顾客属性

属性及说明:name(姓名) sex(性别) phone(电话)

方法及说明:无

3、信息(Infor)类

类名:Infor

继承父类:无

实现接口:无

概述:定义顾客购买的电脑品牌和数量

属性及说明:num_com(数量) cBrand(购买的品牌名)

方法及说明:无

4、操作(Order)类

类名:Order

继承父类:无

实现接口:无

概述:实现对数据的处理

属性及说明:所有属性都在Computer类、Customer类和Infor类中

方法及说明:包含menu();(主菜单) 、 admin(); (管理员界面) 、 customer()( 顾客界面)、operation();(选择功能编号)、addCom();(管理员添加电脑信息)、delCom();(管理员删除电脑信息)、chaCom();(管理员删除电脑信息)、viewCom();(管理员查看电脑信息)、add();(添加顾客信息购买电脑)、view();(管理员查询顾客购买信息)、deladd();(管理员删除顾客购买信息)、

方法

功能

menu()方法

显示主菜单。

ooperation()方法

根据输入的值判断来实现哪种功能

add()方法

利用循环将顾客信息加入数组

view()方法

根据数组显示顾客购买信息

admin()方法

显示管理员界面,根据输入的编号进入不同的功能页面

customer()方法

显示顾客界面,根据输入的编号进入不同的功能页面

addCom()方法

管理员输入电脑的品牌,价格和库存来完成添加电脑信息

delCom()方法

管理员输入电脑的品牌来删除电脑信息

chaCom()方法

管理员输入原品牌名确定要修改的品牌,输入修改后的品牌名,价格和库存来完成修改电脑信息

viewCom()方法

输出已经添加并且没有被删除的电脑信息

deladd()方法

管理员输入已经购买过电脑的顾客名来删除该顾客的购买信息

5、测试(Demo)类

类名:Demo

继承父类:无

实现接口:无

概述:实现函数的调用

属性及说明:定义一个Order o = new Order();的对象,通过对象调用operation()方法。

五、系统实现

1、主界面

图9:主界面图

运行之后,可以看见输出的菜单,从键盘输入相应编号执行相应功能,如输入1就进入管理员界面,输入2就进入顾客界面,输入0则退出系统

2、添加电脑信息模块模块

图10:添加电脑信息图

输入1,输入要添加的电脑品牌,价格和库存

输出添加成功

3、查看电脑信息模块

图11:查询电脑信息图

输入1,进入查看电脑信息界面

输出 品牌,价格和库存列表

4、修改电脑信息模块

图12:修改电脑信息图

输入3 ,输入要存在的电脑品牌用来确定修改,输入修改后的品牌名,价格和库存

输出 修改成功

5、购买电脑信息模块

图13:购买电脑信息图

输入1 输入要购买的品牌,输入顾客姓名,性别,电话和购买的台数

输出购买成功 共消费金额

6、查询购买信息模块

图14:查询购买信息图

输入5 ,进入查询顾客购买信息界面

输出 如果没有顾客信息将返回主界面,顾客姓名,性别,购买品牌,购买台数

7、删除购买信息模块

图15:删除购买信息图

输入6 输入要删除的顾客名字

输出 删除成功

8、删除电脑信息模块

图16:删除电脑信息图

输入4 输入列表中已存在的电脑品牌

输出 删除成功

附录:系统源代码

1 Computer

package task2;

public class Computer {

     //品牌

     String brand;

     //价格

     int price;

     //库存

     int inventory;

   public String getBrand() {

            return brand;

     }

     public void setBrand(String brand) {

            this.brand = brand;

     }

     public int getPrice() {

            return price;

     }

     public void setPrice(int price) {

            this.price = price;

     }

     public int getInventory() {

            return inventory;

     }

     public void setInventory(int inventory) {

            this.inventory = inventory;

     }

     public Computer(String brand, int price, int inventory) {

            super();

            this.brand = brand;

            this.price = price;

            this.inventory = inventory;

     }

     public Computer() {

            // TODO 自动生成的构造函数存根

     }

2 Customer

public class Customer  {

     //名字

     String name;

   //姓名

     String sex;

   //电话

     String phone;    

public Customer() {

            // TODO 自动生成的构造函数存根

     }

public Customer(String name, String sex, String phone) {

            super();

            this.name = name;

            this.sex = sex;

            this.phone = phone;

   

     }

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 getPhone() {

            return phone;

     }

     public void setPhone(String phone) {

            this.phone = phone;

     }

}

3 Order

package task2;

import java.util.Scanner;

public class Order extends Infor {

//电脑数组

     private Computer[] computers = new Computer[100];

     // 电脑数

     private int com = 0;

//顾客数组

     private Customer[] customers = new Customer[100];

//顾客数

     private int count = 0;

//顾客购买台数数组

     private Infor[] num_com = new Infor[10000];

     // 顾客购买台数

     private int ncom = 0;

     // 顾客购买品牌数组

     private Infor[] cus_brand = new Infor[100];

     // 顾客购买品牌

     int cbrand = 0;

     Scanner sc = new Scanner(System.in);

     public void menu() {// 显示菜单方法

            System.out.println("欢迎进入电脑销售系统");

            System.out.println(" 1.管理员登录 ");

            System.out.println(" 2.顾客登录 ");

            System.out.println(" 0.退出系统 ");

     }

     // 管理员界面

     public void admin() {

            System.out.println("1.查看电脑");

            System.out.println("2.添加电脑信息");

            System.out.println("3.修改电脑信息");

            System.out.println("4.删除电脑信息");

            System.out.println("5.查看顾客购买信息");

            System.out.println("6.删除顾客购买信息");

            System.out.println("0.返回主界面");

            int q = sc.nextInt();

            switch (q) {

            case 1:

                   // 查看电脑信息

                   viewCom();

                   break;

            case 2:

                   // 添加电脑信息

                   addCom();

                   break;

            case 3:

                   // 修改电脑信息

                   chaCom();

                   break;

            case 4:

                   // 删除电脑信息

                   delCom();

                   break;

            case 5:

                   // 查看顾客购买信息

                   view();

                   break;

            case 6:

                   // 删除顾客购买信息

                   deladd();

                   break;

            case 0:

                   return;

            }

     }

     // 顾客界面

     public void customer() {

            System.out.println("1.购买电脑");

            System.out.println("0.返回主界面");

            int q = sc.nextInt();

            switch (q) {

            case 1:

                   add();

                   break;

            case 0:

                   return;

            }

     }

//管理员添加电脑信息

     public void addCom() {

            System.out.println("请输入添加的电脑品牌");

            String brand = sc.next();

            System.out.println("请输入添加的电脑价格");

            int price = sc.nextInt();

            System.out.println("请输入添加的电脑库存");

            int inventory = sc.nextInt();

            computers[com] = new Computer(brand, price, inventory);

            com++;

            System.out.println("添加成功");

     }

//管理员删除电脑

     public void delCom() {

            if (com == 0) {

                   System.out.println("当前未录入电脑");

            } else {

                   viewCom();

                   System.out.println("请输入要删除的电脑品牌");

                   String brand = sc.next();

                   for (int i = 0; i < com; i++) {

                          if (!brand.equals(computers[i].brand)) {

                                 System.out.println("该电脑不存在");

                                 return;

                          } else if (brand.equals(computers[i].brand)) {

                                 // 定义临时变量存放即将删除的品牌

                                 String temp1 = computers[i].getBrand();

                                 // 定义临时变量存放数组最后一个品牌

                                 String temp2 = computers[com - 1].getBrand();

                                 // 最后一个赋值给要删除的

                                 computers[i] = computers[com - 1];

                                 // 纠正要删除的

                                 computers[i].setBrand(temp1);

                                 ;

                                 // 纠正最后一个

                                 computers[com - 1].setBrand(temp2);

                                 com--;

                                 System.out.println("删除成功");

                          }

                   }

            }

     }

//管理员修改电脑

     public void chaCom() {

            if (com == 0) {

                   System.out.println("当前未录入电脑");

            } else {

                   viewCom();

                   System.out.println("请输入要修改的电脑品牌");

                   String brand = sc.next();

                   for (int i = 0; i < com; i++) {

                          if (!brand.equals(computers[i].brand)) {

                                 System.out.println("该电脑不存在");

                                 return;

                          } else {

                                 System.out.println("请输入修改后的品牌名");

                                 String chabrand = sc.next();

                                 System.out.println("请输入修改后的价格");

                                 int chaprice = sc.nextInt();

                                 System.out.println("请输入修改后的库存");

                                 int chainventory = sc.nextInt();

                                 computers[i].brand = chabrand;

                                 computers[i].price = chaprice;

                                 computers[i].inventory = chainventory;

                                 System.out.println("修改成功");

                          }

                   }

            }

     }

//管理员查看电脑

     public void viewCom() {

            int i;

            System.out.println("品牌\t" + "价格\t" + "库存");

            for (i = 0; i < com; i++) {

                   System.out.println(

                                 computers[i].getBrand() + "\t" + computers[i].getPrice() + "\t" + computers[i].getInventory());

            }

            if (i == 0) {

                   System.out.println("当前未录入电脑");

            }

     }

     public void operation() {

            int choice = 0;// 选项

            do {

                   menu();

                   System.out.print("请选择您要进行的操作:");

                   choice = sc.nextInt();

                   while (choice < 0 || choice > 2) {

                          System.out.println("无效操作!");

                          System.out.print("请重新选择您要进行的操作:");

                          choice = sc.nextInt();

                   }

                   switch (choice) {

                   // 管理员界面

                   case 1:

                          admin();

                          break;

                   // 顾客界面

                   case 2:

                          customer();

                          break;

                   case 0: // 退出系统

                          break;

                   }

            } while (choice != 0);

            System.out.println("退出系统");

     }

//添加顾客信息购买电脑

     public void add() {

            String brand;

            do {

                   System.out.println("请输入您要买的品牌");

                   brand = sc.next();

                   if (brand.equals("0")) {

                          break;

                   }

                   for (int i = 0; i < computers.length; i++) {

                          if (brand.equals(computers[i].brand) && computers[i].inventory != 0) {

                                 System.out.println("请输入您的姓名");

                                 String name = sc.next();

                                 System.out.println("请输入您的性别");

                                 String sex = sc.next();

                                 System.out.println("请输入您的电话");

                                 String phone = sc.next();

                                 System.out.println("请输入您要购买几台");

                                 int num = sc.nextInt();

                                 if (num > computers[i].inventory) {

                                        System.out.println("对不起,您要购买的数量超过库存");

                                        return;

                                 } else {

                                        customers[count] = new Customer(name, sex, phone);

                                        count++;

                                        num_com[ncom] = new Infor(num);

                                        ncom++;

                                        computers[i].inventory -= num;

                                        cus_brand[cbrand] = new Infor(brand);

                                        cbrand++;

                                        System.out.println("购买成功,共消费" + computers[i].price * num + "元");

                                        return;

                                 }

                          }

                   }

                   System.out.println("输入的品牌不存在或库存不足,请重新输入或输入0退出");

            } while (true);

     }

//删除顾客购买信息

     public void deladd() {

            if (cbrand == 0) {

                   System.out.println("当前没有顾客购买信息");

            } else {

                   view();

                   System.out.println("请输入要删除的顾客");

                   String name = sc.next();

                   for (int i = 0; i < cbrand; i++) {

                          if (!name.equals(customers[i].name)) {

                                 System.out.println("没有该顾客");

                                 return;

                          } else {

                                 customers[i].setName(null);

                                 cbrand--;

                                 System.out.println("删除成功");

                          }

                   }

            }

     }

//查询购买信息

     public void view() {

     System.out.println("如果没有顾客购物信息将返回主界面");

            for (int i = 0; i < count; i++) {

                    {        

                          System.out.println("姓名:"+customers[i].name + "\t"+"性别:"+ customers[i].sex + "\t"+"电话" + customers[i].phone + "\t"

                                 +"购买品牌:"   + cus_brand[i].cBrand + "\t"+"购买台数" + num_com[i].num_com);

                   }

            }

     }

}

4 Demo

package task2;

public class Demo {

public static void main(String[] args) {

     Order o = new Order();

     o.operation();

     }

}

5 Demo

public class Infor {

     //购买台数

     int num_com;

     public Infor(int num_com) {

            super();

            this.num_com = num_com;

     }

   

   

     //购买品牌

     String cBrand;

     public Infor(String cBrand) {

            super();

            this.cBrand = cBrand;

     }

     public int getNum_com() {

            return num_com;

     }

     public void setNum_com(int num_com) {

            this.num_com = num_com;

     }

     public String getcBrand() {

            return cBrand;

     }

     public void setcBrand(String cBrand) {

            this.cBrand = cBrand;

     }

     public Infor() {

            // TODO 自动生成的构造函数存根

     }

代码:https://download.csdn.net/download/weixin_55771290/87880740

相关文章
|
17天前
|
运维 自然语言处理 供应链
Java云HIS医院管理系统源码 病案管理、医保业务、门诊、住院、电子病历编辑器
通过门诊的申请,或者直接住院登记,通过”护士工作站“分配患者,完成后,进入医生患者列表,医生对应开具”长期医嘱“和”临时医嘱“,并在电子病历中,记录病情。病人出院时,停止长期医嘱,开具出院医嘱。进入出院审核,审核医嘱与住院通过后,病人结清缴费,完成出院。
53 3
|
21天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
22 1
|
22天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
26天前
|
移动开发 前端开发 JavaScript
java家政系统成品源码的关键特点和技术应用
家政系统成品源码是已开发完成的家政服务管理软件,支持用户注册、登录、管理个人资料,家政人员信息管理,服务项目分类,订单与预约管理,支付集成,评价与反馈,地图定位等功能。适用于各种规模的家政服务公司,采用uniapp、SpringBoot、MySQL等技术栈,确保高效管理和优质用户体验。
|
28天前
|
XML JSON 监控
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
48 1
|
1月前
|
Java 关系型数据库 API
介绍一款Java开发的企业接口管理系统和开放平台
YesApi接口管理平台Java版,基于Spring Boot、Vue.js等技术,提供API接口的快速研发、管理、开放及收费等功能,支持多数据库、Docker部署,适用于企业级PaaS和SaaS平台的二次开发与搭建。
|
1月前
|
Java 关系型数据库 MySQL
基于Java的学生成绩管理系统/学生信息管理系统
基于Java的学生成绩管理系统/学生信息管理系统
44 2
|
1月前
|
前端开发 Java 数据库连接
基于Java的校车管理系统(下)
基于Java的校车管理系统(下)
23 0
|
1月前
|
存储 前端开发 Java
基于Java的校车管理系统
基于Java的校车管理系统(上)
22 0
|
1月前
|
Java 数据库
基于java的汽车服务管理系统(Car Service Management System)
基于java的汽车服务管理系统(Car Service Management System)
21 0
下一篇
无影云桌面