1 Java数组实现杨辉三角(Pascal’s Triangle)
输出如下杨辉三角
/** * {1} * {1,1} * {1,2,1} * {1,3,3,1} * {1,4,6,4,1} */
public class PascalTriangle { /** * yhArr[0][0] * yhArr[1][0] * * yhArr[1][1] * yhArr[2][2] * * * yhArr[2][1] = yhArr[1][0] + yhArr[1][1] * yhArr[3][1] = yhArr[2][0] + yhArr[2][1] * yhArr[4][2] = yhArr[3][1] + yhArr[3][2] * * yhArr[i][j] = yhArr[i-1][j-1] + yhArr[i-1][j]; * * {1} * {1,1} * {1,2,1} * {1,3,3,1} * {1,4,6,4,1} * * * * {{0},{0,0},{0,0,0},{0,0,0,0},{0,0,0,0,0}} * {{1},{1,1},{1,2,1},{1,3,3,1},{1,4,6,4,1}} */ public static void main(String[] args) { int[][] yhArr = new int[5][]; //二维数组遍历 for (int i = 0; i < yhArr.length; i++) { //yhArr[i] 表示每一个一维数组,暂未初始化 yhArr[i] = new int[i+1]; //遍历一维数组进行赋值 for (int j = 0; j < yhArr[i].length; j++) { if(j == 0 || i == j) { yhArr[i][j] = 1; }else { yhArr[i][j] = yhArr[i-1][j-1] + yhArr[i-1][j]; } } } for (int i = 0; i < yhArr.length; i++) { for (int j = 0; j < yhArr.length - i; j++) { System.out.print(" "); } for (int j = 0; j < yhArr[i].length; j++) { System.out.print(yhArr[i][j]+" "); } System.out.println(); } } }
2 简易的商品管理系统
- 打印启动页面(欢迎使用XXXXX商品管理系统)
- 选择界面(1、增加 2、修改 3、删除 4、查看 5、排序 6、退出)
- 提供控制台输入(循环)
- 进行增删改查(数组)
- 增加
- 考虑是否需要扩容
- 添加商品 (要保证商品名称唯一)
- 有效个数+1
- 删除
- 判断要删除的商品是否存在
- 考虑特殊情况:当数组的元素有效个数与数组的长度相等(扩容)
- 删除元素
- 数组的有效个数-1
- 修改
- 判断要修改是否存在
- 修改
- 遍历
- 判断是否有商品
- 遍历输出商品
- 查询
- 判断商品是否存在
- 返回商品所在下标,下标为-1则表示不存在
public class ProductManager { public static void main(String[] args) { start(); } menu(); } public static void menu() { System.out.println(); System.out.println(); System.out.println(); System.out.println("===============欢迎使用XXXXX商品管理系统===================="); Scanner sc = new Scanner(System.in); while(true) { System.out.println("1、增加 2、修改 3、删除 4、查看 5、排序 6、退出 "); int option = sc.nextInt(); switch (option) { case 1: System.out.println("请输入要增加的商品"); String productName = sc.next(); add(productName); break; case 2: break; case 3: break; case 4: queryAll(); break; case 5: break; case 6: System.out.println("欢迎下次使用!!!!"); return; default: System.out.println("输入有误,请重新输入"); break; } } } /** * 商品的名称进行增删改查(数组) */ //表示商品名称数组 static String[] names = {}; //表示数组中元素的有效个数 static int size = 0; /** * 增加商品 * @param productName 商品名称 */ public static void add(String productName) { //1、考虑是否需要扩容 if(size == names.length) { names = Arrays.copyOf(names, names.length+5); } //2、添加商品 (要保证商品名称唯一) names[size] = productName; //3、有效个数+1 size++; } /** * 修改商品 * @param oldName 原名称 * @param newName 新名称 */ public static void update(String oldName,String newName) { //1、判断要修改是否存在 int index1 = isExsist(oldName); int index2 = isExsist(newName); if(index1 == -1 ) { System.out.println("商品不存在无法修改"); return; } if(index2 != -1) { System.out.println("修改的商品已存在无法修改"); return; } //2、修改商品 names[index1] = newName; } /** * 删除商品 * @param productName 删除商品的名称 */ public static void delete(String productName) { //1、判断要删除的商品是否存在 int index = isExsist(productName); if(index == -1) { System.out.println("商品不存在,无法删除"); return; } //2、考虑特殊情况:当数组的元素有效个数与数组的长度相等(扩容) if(size == names.length) { names = Arrays.copyOf(names, names.length+5); } //3、删除元素 for (int i = index; i <= size; i++) { names[i] = names[i+1]; } //4、数组的有效个数-1 size--; } public static void queryAll() { //1、判断是否有商品 if(size == 0) { System.out.println("暂无商品,请添加!"); return; } System.out.println("商品如下:"); //2、遍历输出商品 for (int i = 0; i < size; i++) { if(i%5==0 && i != 0) { System.out.println(); } System.out.print(names[i]+"\t"); } System.out.println(); } /** * 判断商品是否存在 * @param productName 商品名称 * @return 返回商品所在下标,下标为-1则表示不存在 */ public static int isExsist(String productName) { for (int i = 0; i < names.length; i++) { if(productName.equals(names[i])) { return i; } } return -1; } }