我行我素shopping购物管理系统第一阶段(4)

1.使用数组存储会员信息

需求说明:定义系统的数据类Data,用于存储系统的数据信息,例如会员信息。会员的个人信息(会员号、生日和积分)都存储在数组中,定义3个数组分别存储会员信息。

实现思路:

(1)使用Eclipse创建数据类Data (2)声明Data类的3个数组成员变量custNo(存储会员号)、custBirth(存储生日)和custScore(存储会员积分)。每个数组中具有相同下标的数据代表同一个会员的信息,因此一一对应。 (3)定义Data类的成员方法initial(),用于对数组进行赋值。(4)数组的长度设定为100

/**
 * Data.java
 * 上机第8章:阶段1: 数据类
 */
public class Data {   
      /*会员信息*/
      int[] custNo = new int[100];          //会员号
      String[] custBirth = new String[100]; //会员生日
      int[] custScore = new int[100];       //会员积分
      
      public void initial(){
    	  /*客户信息*/
    	  custNo [0] = 1623;        //客户1    
    	  custBirth[0] = "06/26";
    	  custScore[0] = 5000;
    	  
    	  custNo [1] = 1545;        //客户2
    	  custBirth[1] = "04/08";
    	  custScore[1] = 2200;
      }
}


注:定义的数组长度为100,对于没有进行赋值的数组元素,系统给它一个默认值,对于int型数组,默认值是0,对于String类型的数组,数组元素默认值是null

2.扩展数据类,添加数组存储商品信息

(1)在上一阶段代码Data.java的基础上做 (2)添加两个数组类型的成员变量:goodsName(存储商品名称)和goodsPrice(存储商品价格) (3)扩展initial()方法,给据表给数组赋值

package com.wxws.sms;

/**
 * Data.java 上机第8章:阶段2: 数据类
 */
public class Data {
	/* 商品信息 */
	String[] goodsName = new String[50]; // 商品名称
	double[] goodsPrice = new double[50]; // 商品价格

	/* 会员信息 */
	int[] custNo = new int[100]; // 会员号
	String[] custBirth = new String[100]; // 会员生日
	int[] custScore = new int[100]; // 会员积分

	public void initial() {
		/* 客户信息 */
		custNo[0] = 1623; // 客户1
		custBirth[0] = "06/26";
		custScore[0] = 5000;

		custNo[1] = 1545; // 客户2
		custBirth[1] = "04/08";
		custScore[1] = 2200;

		/* 商品信息 */
		goodsName[0] = "addidas运动鞋"; // 商品1
		goodsPrice[0] = 880;

		goodsName[1] = "addidasT恤"; // 商品2
		goodsPrice[1] = 420.78;

		goodsName[2] = "Nike运动鞋"; // 商品3
		goodsPrice[2] = 900;
	}
}


3.实现添加会员信息功能(使用数组进行数据存储)

需求说明:

(1)实现客户管理类CustManagement (2)实现添加新会员功能:从控制台获取用户输入(会员号、生日和会员积分),并将录入的信息保存在数组的第一个空位

实现思路:

(1)创建客户管理类CustManagement (2)对数组进行处理之前,要完成数据加载,创建Data类的一个实例,并编写方法对它进行初始化 (3)编写添加新会员的方法add()

public void add(){
	//提示用户输入会员号、生日和积分
	//查询会员信息数组中第一个空位下标
	//一一对应向3个数组中该位置添加数组元素
}


 

package com.wxws.sms;

import java.util.Scanner;

/**
 * CustManagement.java 第8章阶段3:客户管理类
 */
public class CustManagement {
	Data data = new Data(); // 创建一个数据类对象

	/**
	 * 加载数据
	 */
	public void setData() {
		data.initial();
	}

	/**
	 * 添加会员信息:阶段3
	 */
	public void add() {
		/* 添加会员信息 */
		System.out.println("\n");
		System.out.println("我行我素购物管理系统 > 客户信息管理 > 添加客户信息\n\n");
		Scanner input = new Scanner(System.in);
		System.out.print("请输入会员号(<4位整数>):");
		int no = input.nextInt();
		System.out.print("请输入会员生日(月/日<用两位数表示>):");
		String birth = input.next();
		System.out.print("请输入积分:");
		int score = input.nextInt();
		int index = -1; // 记录插入位置的下标
		for (int i = 0; i < data.custNo.length; i++) {
			if (data.custNo[i] == 0) { // 查找第一个空位(元素默认值为0)
				index = i; // 记录元素下标
				break;
			}
		}
		data.custNo[index] = no; // 添加会员号
		data.custBirth[index] = birth; // 添加会员生日
		data.custScore[index] = score; // 添加会员积分
		System.out.println("新会员添加成功!");
	}

}


4.实现显示当前会员信息功能

需求说明:扩展客户管理类CustManagement

(1)实现显示"我行我素shopping"当前会员信息功能 (2)编写测试类进行测试

实现思路:

(1)在第3个阶段基础上做

(2)编写CustManagement类的show()方法,显示当前所有会员信息

public void show(){
	//循环输出数组中的元素信息,直到会员号为0时跳出循环。
}


(3)编写测试类Test1.java,测试显示会员信息和添加会员信息功能

CustManagement cm = new CustManagement();
cm.setData();//加载数据
cm.show();//显示添加前客户信息
cm.add();//增加客户信息
cm.show();//显示添加后的客户信息


 

package com.wxws.sms;

import java.util.Scanner;

/**
 * CustManagement.java 第8章阶段3:客户管理类
 */
public class CustManagement {
	Data data = new Data(); // 创建一个数据类对象

	/**
	 * 加载数据
	 */
	public void setData() {
		data.initial();
	}

	/**
	 * 显示会员信息: 阶段4
	 */
	public void show() {
		/* 显示会员信息 */
		System.out.println("我行我素购物管理系统 > 客户信息管理 > 显示客户信息\n\n");
		System.out.println("  会员号            生日             积分      ");
		System.out.println("------------|------------|---------------");
		int length = data.custNo.length; // 获得数组长度
		for (int i = 0; i < length; i++) {// 循环输出会员信息
			if (data.custNo[i] == 0) {
				break; // 客户信息已经显示完毕,直接退出循环
			}
			System.out.println(data.custNo[i] + "\t\t" + data.custBirth[i] + "\t\t" + data.custScore[i]); // 显示输出
		}
	}

	/**
	 * 添加会员信息:阶段3
	 */
	public void add() {
		/* 添加会员信息 */
		System.out.println("\n");
		System.out.println("我行我素购物管理系统 > 客户信息管理 > 添加客户信息\n\n");
		Scanner input = new Scanner(System.in);
		System.out.print("请输入会员号(<4位整数>):");
		int no = input.nextInt();
		System.out.print("请输入会员生日(月/日<用两位数表示>):");
		String birth = input.next();
		System.out.print("请输入积分:");
		int score = input.nextInt();
		int index = -1; // 记录插入位置的下标
		for (int i = 0; i < data.custNo.length; i++) {
			if (data.custNo[i] == 0) { // 查找第一个空位(元素默认值为0)
				index = i; // 记录元素下标
				break;
			}
		}
		data.custNo[index] = no; // 添加会员号
		data.custBirth[index] = birth; // 添加会员生日
		data.custScore[index] = score; // 添加会员积分
		System.out.println("新会员添加成功!");
	}

}


 

package com.wxws.sms;

/**
 * 上机第8章:阶段4:测试类-测试显示所有客户信息和添加新客户
 */
public class Test1 {
	public static void main(String[] args) {
		CustManagement cm = new CustManagement();
		cm.setData();// 加载数据
		cm.show(); // 显示客户信息
		cm.add(); // 添加客户信息
		cm.show(); // 显示客户信息
	}
}


5.实现幸运大放送

需求说明:说明sendGoldenCust()方法执行的过程和实现的功能

package com.wxws.sms;

import java.util.Scanner;

/**
 * GiftManagement.java 上机第8章:阶段5:礼品管理类
 */
public class GiftManagement {
	Data data = new Data();

	/**
	 * 加载数据
	 */
	public void setData() {
		data.initial();
	}

	/**
	 * 幸运大放送 第8章阶段5阅读
	 */
	public void sendGoldenCust() {
		System.out.println("我行我素购物管理系统 > 幸运大放送\n\n");
		int index = 0;
		int max = data.custScore[0];
		/* 假定积分各不相同 */
		for (int i = 0; i < data.custScore.length; i++) {
			if (data.custScore[i] == 0) {
				break; // 数组后面为空用户
			}
			/* 求具有最大积分的客户 */
			if (data.custScore[i] > max) {
				max = data.custScore[i];
				index = i;
			}
		}
		System.out.println("具有最高积分的会员是: " + data.custNo[index] + "\t" + data.custBirth[index] + "\t" + data.custScore[index]);
		System.out.println("赠送苹果笔记本电脑一台!");
	}
}


 

package com.wxws.sms;

import com.wxws.sms.GiftManagement;

/**
 * 上机第8章:阶段5:测试类-测试幸运大放送
 */
public class Test2 {
	public static void main(String[] args) {
		GiftManagement gm = new GiftManagement();
		gm.setData();
		gm.sendGoldenCust();
	}
}


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值