一、开发背景
随着经济和计算机技术的快速发展,移动银行和网上电子支付等业务也逐渐的发展起来,网上购物也变成了一种常态。在这一背景之下,我们开始研究一个java的课程程序报告,关于电脑销售系统。
二、系统需求分析
现要开发一个电脑销售系统,主要有顾客和管理员两个实体,和实现查询电脑信息,添加电脑信息,修改电脑信息,删除电脑信息,生成顾客购买信息和删除顾客购买信息。管理员可以根据需求对电脑信息进行增添查改和对顾客购买信息的删除。顾客可以通过顾客购买界面购买电脑。
三、系统功能模块设计
3.1 系统模块设计
图1:系统模块设计图
3.2 模块说明
1、查看电脑信息模块
图2:查看电脑信息模块图
功能描述:此模块的主要功能是实现管理员查看电脑信息,输入相应编号,就能查看电脑信息
输入:相应编号
输出:电脑品牌、价格、库存
2、查询顾客购买信息模块
功能描述:此模块的主要功能是实现顾客购买后查询购买的信息,输入相应编号,输入姓名和电话,如果姓名和电话是正确的就可以查看信息
图3:查看顾客购买信息模块图
输入:相应编号 姓名,电话
输出:姓名,性别,电话,购买品牌,购买台数
3、修改电脑信息模块
图4:修改电脑信息模块图
功能描述:此模块的主要功能是实现管理员修改电脑信息,输入相应编号,输入要修改的品牌,输入修改后的品牌,价格,库存就能完成修改。
输入:相应编号 修改前的品牌名,修改后的品牌名,修改后的价格,修改后的库存
输出:修改成功
4、添加电脑信息模块
图5:添加电脑信息模块图
功能描述:此模块的主要功能是实现管理员添加电脑信息,输入相应编号,输入要添加的品牌,价格和库存来完成添加电脑信息
输入:相应编号 要添加的品牌名,价格和库存
输出:添加成功
图6:删除电脑信息模块图
功能描述:此模块的主要功能是实现管理员删除电脑信息,输入相应编号,输入要删除的电脑品牌名来删除电脑信息
输入:相应编号 要删除的电脑品牌
输出:删除成功
图7:删除顾客购买信息模块图
功能描述:此模块的主要功能是实现管理员删除顾客购买信息,输入相应编号,输入要删除的顾客名
输入:相应编号,要删除的顾客名
输出:删除成功
图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 输入列表中已存在的电脑品牌
输出 删除成功
附录:系统源代码
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 自动生成的构造函数存根
}
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;
}
}
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);
}
}
}
}
package task2;
public class Demo {
public static void main(String[] args) {
Order o = new Order();
o.operation();
}
}
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