您的位置 首页 java

Java基础 购物管理系统

管理员名称是”accp”,密码是”0000″.

客户管理类

数据类

/**

* 数据类

*扩展阶段1实现的数据类,添加数组存储商品信息(商品名和商品价格)并进行初始化

*商品名 单价

* addidas运动鞋 880

*addudasT恤 420.78

*Nike运动鞋 900

*1.在阶段 代码data的基础上做

*2.添加两个数组类型的成员变量:

*goodsName(存储商品名称)和goodsPrice(存储商品价格)

*3.扩展initial()方法,根据8-2给数组赋值

*/

public class Data {

/**

* int[] 会员号 已经设定长度为100

*/

int[] custNo=new int[100]; //会员号 //会员信息 声明每个数组可以存储100个数据

/**

* String[] 会员生日 已经设定长度为100

*/

String[] custBirth=new String[100]; //会员生日

/**

* int[] 会员积分 已经设定长度为100

*/

int[] custScore=new int[100]; //会员积分

/**

* int[] 商品编号 已经设定长度为100

*/

int[] goodsNo=new int[100];//存储商品编号

/**

* String[] 商品名称 已经设定长度为100

*/

String[] goodsName=new String[100]; //存储商品名称

/**

* double[] 商品价格 已经设定长度为100

*/

double[] goodsPrice=new double[100];//存储商品价格

/**

* 给会员信息数组赋值

*/

public void initial(){

/*客户一*/

custNo [0]=1623; //指定会员号 下标0位置 的值为 1623

custBirth[0]=”06/26″;//指定会员生日 下标0位置 的值为 06/26

custScore[0]=5000;//指定会员积分 下标0位置 的值为 5000

/*客户二*/

custNo [1]=1545; //指定会员号 下标1位置 的值为 1545

custBirth[1]=”04/08″;//指定会员生日 下标1位置 的值为 04/08

custScore[1]=2200;//指定会员积分 下标1位置 的值为 2200

/*客户三*/

custNo [2]=1111; //指定会员号 下标1位置 的值为 1545

custBirth[2]=”06/26″;//指定会员生日 下标1位置 的值为 04/08

custScore[2]=99200;//指定会员积分 下标1位置 的值为 2200

/*商品信息*/

goodsNo[0]=1; //商品编号

goodsName[0]=”addidas运动鞋”; //商品名

goodsPrice[0]=880; //商品价格

goodsNo[1]=2; //商品编号

goodsName[1]=”addudasT恤”; //商品名

goodsPrice[1]=420.78; //商品价格

goodsNo[2]=3; //商品编号

goodsName[2]=”Nike运动鞋”; //商品名

goodsPrice[2]=900; //商品价格

}

}

礼品管理类

import java.util.Scanner;

/*礼品管理类*/

public class GiftManagent {

Scanner input=new Scanner(System.in);

Data data=new Data();

/**

* 加载数据

*/

public void setData(){

data.initial();

}

/**

* 幸运抽奖 的方法

*/

public void sendLuckyCust(){ //2.幸运抽奖

System.out.println(“我行我素购物管理系统>幸运抽奖\n”);

String yesNo=”y”;

while(yesNo.equals(“y”)){

System.out.print(“请输入4位会员号:”);

int number=input.nextInt();

int baiweinum=number/100%10;//分解获得百位数

int random=(int)(Math.random()*10); //产生随机数

System.out.println(random);

if(baiweinum==random){

System.out.println(number+”是幸运用户,多的精美Mp3一个”);

}else{

System.out.println(“谢谢您的支持”);

}

System.out.print(“是否继续(y/n):”);

yesNo=input.next();

if(!yesNo.equals(“y”)||!yesNo.equals(“Y”)){

returnLastMenu();

}

}

//System.out.print(random);

/*int custNo=random; //客户会员号(说明:customer—客户)

int gewei=custNo % 10; //分解获得个位数

int shiwei=custNo/10%10; //分解获得十位数

int baiwei=custNo/100%10;//分解获得百位数

int qianwei=custNo/1000;//

int sum=gewei+shiwei+baiwei+qianwei;

System.out.println(“\n会员卡号”+custNo+”各位之和:”+sum);

if(sum>20){

System.out.println(custNo+”是幸运客户,获精美Mp3一个.”);

}else{

System.out.println(custNo+”谢谢您的支持!”);

}

*/

returnLastMenu();

}

/**

* 幸运大放送 的方法

*/

public void sendGolsentCust(){

System.out.println(“我行我素购物管理系统>幸运大放送\n\n”);

CustManagement cm=new CustManagement();

cm.setData();

int index=0; //定义一个索引 值为0

int max=data.custScore[0]; //定义一个最大值 默认先把会员积分数组0位置的值 赋给max

/*假定积分各不相同*/

for(int i=0;i<data.custScore.length;i++){ //循环遍历积分数组

if(data.custScore[i]==0){ //如果积分下标的值为0 则跳出循环

break;

}

/*求具有最大积分的客户*/

if(data.custScore[i]>max){ //如果积分数组下标 的值 大于 max的值

max=data.custScore[i]; //则将值赋给 max

index=i; //并获取当前数组下标的 号码 赋给索引

}

}

System.out.println(“具有最高积分的会员是:”+data.custNo[index]+”\t”

+data.custBirth[index]+”\t”+data.custScore[index]);

System.out.println(“赠送价值¥12000的苹果笔记本电脑一台!”);

returnLastMenu();

}

/**

* 生日问候 的方法

*/

public void sendBirthCust(){

setData();

System.out.println(“我行我素购物管理系统>生日问候\n\n”);

System.out.print(“请输入今天的日期(月/日<用两位表示>):”);

String date=input.next();

System.out.print(“今天过生日的会员:”);

try{

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

if(!data.custBirth[i].equals(date)){

continue;

}else{

System.out.print(data.custNo[i]+”\t”);

}

}

}catch(Exception e){ //空指针异常

}finally{

System.out.print(“恭喜获赠MP3一个\n\n”);

System.out.print(“请按\”n\”返回上一级菜单:”);

String n=input.next();

if(n.equals(“n”)||n.equals(“N”)){

Menu mu=new Menu();

mu.showSendGMenu();

}

}

}

/**

* 返回主菜单的方法

*/

public void returnLastMenu(){

System.out.println(“请输入数字0返回上一级菜单”);

int a=input.nextInt();

if(a==0){

Menu mu=new Menu();

mu.showSendGMenu();

}else{

System.out.println(“请重新输入:”);

}

}

}

输入核实类

import java.util.Scanner;

/**

*输入核实类

*/

public class InputVerify {

/**

* 检测输入生日有效性的方法

*/

public String testBirthValid(){

Scanner input=new Scanner(System.in);

System.out.println(“请输入会员生日<月/日 00/00>:”);

String date=input.next();

if(date.indexOf(‘/’)!=2){

System.out.println(“生日形式输入错误!”);

}else{

System.out.println(“该会员的生日是:”+date);

}

return date;

}

/**

* 检测输入管理员密码有效性的方法

*/

public void testPasswordValid(){

Scanner input=new Scanner(System.in);

System.out.println(“请输入会员密码<6~10位>:”);

String password=input.next();

if(password.length()<6||password.length()>10){

System.out.println(“密码形式输入错误!”);

}else{

System.out.println(“该会员的密码是:”+password);

}

}

}

管理员类

/**

* 创建ShopManagementSystem项目结构

* 创建包com.wxws.sms

* 在包中创建管理员类,并设置默认的管理员名称是”accp”,密码是”0000″.

*/

public class Manager { //管理员类

String username=”1″; //用户名默认值

String password=”1″; //密码密码

public String toString() {

return “管理员信息是:”+username+”\t”+password;

}

}

菜单类

import java.util.Scanner;

/**

* 实现菜单类

*创建类的成员方法

*明确每个方法

*1.Menu类的功能是负责显示系统运行中需要的菜单

*2.根据已给出的Menu类的方法,添加showMainMenu()方法显示系统主菜单.

*首先编写方法声明,具体的实现已在第4章中的阶段4中完成,可以直接粘贴MainMenu.java中的main方法

*

*我的错误: 在同一个类里面调用方法 直接写方法名就可以了 不用创建对象不然会报错

*/

public class Menu {

/*商品信息*/

String[] goodsName; //商品名称

double[] goodsPrice;//商品价格

/*会员信息*/

int custNo[]; //会员号

String custBirth[];//会员生日

int custScore[];//会员积分

/**

* 加载系统数据

*/

public void setData(String[] goodsName1,double[] goodsPrice1,int custNo1[],String custBirth1[],int custScore1[]){

goodsName=goodsName1;

goodsPrice=goodsPrice1;

custNo=custNo1;

custBirth=custBirth1;

custScore=custScore1;

}

/**

* 显示登录菜单

*/

public void showLoginMenu(){ //显示登录菜单

System.out.println(“欢迎使用我行我素购物系统1.0版\n\n”);

System.out.println(“**************************\n”);

System.out.println(“\t1. 登 录 系 统\n\n\t2. 退 出\n”);

System.out.println(“**************************\n”);

System.out.print(“请选择输入数字:”);

}

/**

* 显示主菜单

*/

public void showMainMenu(){

System.out.println(“欢迎进入我行我素购物系统”);

System.out.println(“**************************\n”);

System.out.println(“\t1. 客 户 信 息 管 理\n\n\t2. 购 物 结 算\n\n\t3. 真 情 回 馈\n\n\t4. 注 销\n”);

System.out.println(“**************************\n”);

System.out.print(“请选择输入数字:”);

boolean con; //新加代码

do{ //新加代码

con=false; //新加代码

/*输入数字,选择菜单*/

Scanner input=new Scanner(System.in);

int num=input.nextInt();

if(num==1){

showCustMMenu();

}else if(num==2){

Pay p=new Pay();

p.calcPaypay();;

}else if(num==3){

showSendGMenu();

}else if(num==4){

StartSMS start=StartSMS();

start.main(null);

}else{

System.out.print(“输入错误,请重新输入数字”);

con=true;

}

}while(con); //新加代码

//System.out.println(“程序结束”);

}

private StartSMS StartSMS() {

// TODO Auto-generated method stub

return null;

}

/**

* 显示客户管理菜单

*/

public void showCustMMenu(){

System.out.println(“我行我素购物系统>客户信息管理”);

System.out.println(“**************************\n”);

System.out.println(“\t1. 显 示 所 有 客 户 信 息\n\n\t2. 添 加 客 户 信 息\n\n\t3. 修 改 客 户 信 息\n\n\t4. 查 询 客 户 信 息\n”);

System.out.println(“**************************\n”);

System.out.println(“请选择,输入数字或按O返回上一级菜单:”);

CustManagement cm=new CustManagement();

boolean con;

do{

con=false;

System.out.print(“请选择输入数字:”);

Scanner input=new Scanner(System.in);

int num=input.nextInt();

if(num==1){

cm.show();

}else if(num==2){

cm.add();

}else if(num==3){

cm.modify();

}else if(num==4){

cm.seach();

}else if(num==0){

showMainMenu();

}else{

System.out.println(“输入错误,请重新输入数字:”);

con=true;

}

}while(con);

System.out.println(“\n程序结束.”);

}

/**

* 显示礼品馈赠菜单

*/

public void showSendGMenu(){

System.out.println(“我行我素购物系统>真情回馈”);

System.out.println(“**************************\n”);

System.out.println(“\t1. 幸 运 大 放 送\n\n\t2. 幸 运 抽 奖\n\n\t3. 生 日 问 候\n”);

System.out.println(“**************************\n”);

System.out.println(“请选择,输入数字或按O返回上一级菜单:”);

GiftManagent gm=new GiftManagent();

boolean con;

do{

con=false;

System.out.print(“请选择输入数字:”);

Scanner input=new Scanner(System.in);

int num=input.nextInt();

if(num==1){

gm.sendGolsentCust();

}else if(num==2){

gm.sendLuckyCust();

}else if(num==3){

gm.sendBirthCust();

}else if(num==0){

showMainMenu();

}else{

System.out.println(“输入错误”);

con=true;

}

}while(con);

System.out.println(“\n程序结束.”);

}

}

购物结算类

import java.util.Scanner;

/**

*

* @author Administrator

*购物结算 类

*里面有个pay方法 是用来打印购物清单的

*/

public class Pay {

int count; //购入数量

double discount; //会员折扣

double total=0; //购物总金额

double finalPay=0; //打折后需付款

double payment; //实际缴费金额

double returnMoney; //找钱

double allTotal; //多次购物总金额

String name =””; //商品名称

double price=0; //商品价格

int goodsNo; //商品编号

/**

* 扩展购物结算程序,实现自动计算会员折扣

* @param curCustNo

* @param cunst

* @param custScore

* @return

* 已知会员号,根据会员号查找目前的积分,

* 然后计算该会员所享受的会员折扣.

* 会员购物时,根据积分的不通享受不同的折扣

* 从键盘输入会员积分,计算该会员购物时获得的折扣

* 1.****

* 2.天假带啊实现数据加载(可直接复制阶段1Menu类中用于加载系统数据的代码.

* 3.编写带参数的方法实现会员折扣计算(参照第3章的阶段4CalcDiscount.java )

*/

public double getDiscount() {

//根据会员号curCustNo查询对应的下标index

//使用多重if结构判断折扣数目

//使用return返回折扣值

Data data=new Data();

data.initial();

// TODO Auto-generated method stub

System.out.print(“请输入会员号:”);

Scanner input =new Scanner(System.in);

int curCustNo1=input.nextInt();

double discounts=1;

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

if(data.custNo[i]==curCustNo1){

if(data.custScore[i]<2000){

discounts=0.9;

break;

}else if(data.custScore[i]>=2000&&data.custScore[i]<4000){

discounts=0.8;

break;

}else if(data.custScore[i]>=4000&&data.custScore[i]<8000){

discounts=0.7;

break;

}else if(data.custScore[i]>=8000){

discounts=0.6;

break;

}

}else{

continue;

}

}

return discounts;

}

/**

* 打印产品清单

* */

public void calcPaypay(){

StringBuffer goodsList=new StringBuffer(); //商品清单

Data data=new Data();

data.initial(); //加载数据

System.out.println(“我行我素购物管理系统>购物结算\n\n”);

System.out.println(“********************************************”);

discount=getDiscount();

System.out.println(“请选择购买的商品编号:\n”);

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

if(data.goodsNo[i]==0){

continue;

}

System.out.println(data.goodsNo[i]+”\t”+data.goodsName[i]+”\t”+data.goodsPrice[i]+”元”);

}

System.out.println(“********************************************\n”);

Scanner input=new Scanner(System.in);

String answer =”y”;//标识是否继续

while(answer.equals(“y”)) {//answer的值为y时执行循环体

System.out.print(“请输入商品编号:”); //提示输入商品编号

goodsNo=(input.nextInt()-1);

name=data.goodsName[goodsNo];

price=data.goodsPrice[goodsNo];

System.out.print(“请输入购买数量:”); //提示输入购买数量

count=input.nextInt();

total=price*count;

allTotal=allTotal+total;

goodsList.append(name+”\t”+”¥”+price+”\t\t”+count+”\t\t”+”¥”+total+”\t\n”);//连接购物清单

System.out.println(name+”\t”+”¥”+price+”\t”+count+”个\t¥”+total); //输出商品名称和价格

System.out.print(“\n是否继续(y/n):”);

answer=input.next();//用户再次输入是否继续的信息

}

/*计算消费总金额*/

finalPay=allTotal*discount; //计算折后金额

/*打印购物小票*/

System.out.println(“”);

System.out.println(“*******************消费清单*********************”);

System.out.println(“物品\t\t”+”单价\t\t”+”个数\t\t”+”金额\t”);

System.out.println(goodsList);//输出购物清单

System.out.println(“一共消费”+allTotal);

System.out.println(“折扣:”+(discount*10)+”折”);

System.out.println(“折后总计:”+finalPay);

System.out.print(“服务员输入收到的整钱:”);

payment=input.nextDouble();

System.out.println(“实际交费”+payment);

returnMoney=payment-finalPay; //计算找钱金额

System.out.println(“找钱”+returnMoney);

int score=(int) (finalPay/30);

System.out.println(“本次购物所获得的积分是:”+score);

returnLastMenu();

}

public void returnLastMenu(){

System.out.print(“请输入数字0返回上一级菜单:”);

Scanner input=new Scanner(System.in);

boolean con;

do{

con=true;

if(input.next().equals(“0”)){

Menu menu=new Menu();

menu.showMainMenu();

}else{

System.out.println(“输入错误,请重新输入数字0返回上一级菜单:”);

con=false;

}

}while(!con);

}

}

程序入口

import java.util.Scanner;

public class StartSMS {

/**

* 程序入口

* @param Ding

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

/*加载会员信息和商品信息*/

Data data=new Data();

data.initial();

/*初始化系统管理员*/

Manager manager=new Manager();

/**

* 显示登录菜单

*/

Menu menu=new Menu();

//调用setData方法传递数据

menu.setData(data.goodsName, data.goodsPrice, data.custNo, data.custBirth, data.custScore);

menu.showLoginMenu();

Scanner input = new Scanner(System.in);

int choice=input.nextInt();

switch(choice){

case 1:

/*密码验证*/

System.out.print(“请输入用户名:”);

String name=input.next();

System.out.print(“请输入密码:”);

String psw=input.next();

if(name.equals(manager.username)&&psw.equals(manager.password)){

menu.showMainMenu();

}else{

System.out.println(“\n您没有权限进入系统!谢谢!”);

}

break;

case 2:

System.out.println(“谢谢您的使用!”);

break;

}

}

}

文章来源:智云一二三科技

文章标题:Java基础 购物管理系统

文章地址:https://www.zhihuclub.com/185542.shtml

关于作者: 智云科技

热门文章

网站地图