๐จ [Java] ๋ฌผํ ์ฌ๊ณ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ
๋ฌผํ ์ฌ๊ณ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ
์์ง ํด๋์ค์ ์์์ ๋ฐฐ์ฐ์ง ์์ ์ํ์์ ์ฌ๊ณ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด ๋ณด๋๋ก ํ์.
์๋ DB๋ฅผ ์ฐ๊ฒฐํด์ผ ํ์ง๋ง ์ง๊ธ๊น์ง ๋ฐฐ์ด ๊ณผ์ ์ผ๋ก๋ ์ฐ๊ฒฐํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ทธ ๊ณผ์ ์ ์กฐ๊ธ ๋ ๋ฐฐ์ฐ๊ณ ๋๋ฉด ๊ด๋ฆฌ์์ ๊ตฌ๋งค์๋ฅผ ๋๋๊ณ DB๋ฅผ ์ฐ๊ฒฐํด์ ์ ๋๋ก๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด ๋ค์ ๋ค๋ฃจ๋๋ก ํ๊ฒ ๋ค.
์ฝ๋๋ฅผ ํ๋์ฉ ์ดํด๋ณด์.
static final int MAX = 100; // ๋ฐฐ์ด ์ต๋ ํฌ๊ธฐ
static int[] productNumber = new int[MAX]; // ๋ฌผํ ๋ฒํธ
static String[] productName = new String[MAX]; // ๋ฌผํ ์ด๋ฆ
static int[] productPrice = new int[MAX]; // ๋ฌผํ ๊ฐ๊ฒฉ
static int[] productStock = new int[MAX]; // ๋ฌผํ ์ฌ๊ณ
static int productCount = 0; // ์ด ๋ฌผํ ๊ฐ์
static int count = 0; // ์ฒ์ ๊ฐ์
static Scanner sc = new Scanner(System.in);
๋จผ์ static ๋ณ์๋ก ๋ฌผํ ๋ฒํธ / ๋ฌผํ ์ด๋ฆ / ๋ฌผํ ๊ฐ๊ฒฉ / ์ฌ๊ณ ๋ฅผ ์ ์ธํด์ค๋ค.
์ฌ๊ธฐ์ count ๋ ๋ฌผํ ์ข ๋ฅ์ ๊ฐ์๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ์ธ๋ฑ์ค๋ฅผ ์ฐพ์ ๋ ์ฌ์ฉํ ๋ณ์์ด๋ค.
๋ฌผํ ๋ฑ๋ก ๋ฉ์๋
// ๋ฌผํ ๋ฑ๋ก
private static void createProduct() {
int idx = checkProductByProductNumber();
if (idx == -1) {
return;
}
System.out.print("๋ฌผํ ์ด๋ฆ: ");
productName[count] = sc.next();
sc.nextLine();
System.out.print("๋ฌผํ ๊ฐ๊ฒฉ: ");
productPrice[count] = sc.nextInt();
System.out.print("๋ฌผํ ์ฌ๊ณ : ");
productStock[count] = sc.nextInt();
System.out.println("๋ฑ๋ก์ด ์๋ฃ๋์์ต๋๋ค.");
System.out.println();
count++;
productCount++;
}
์ฒ์ count ๊ฐ 0๋ถํฐ ์์์ด๋ฏ๋ก ์ฒ์ ๋ฌผํ์ ๋ฑ๋กํ๊ฒ ๋๋ฉด product_[0]์ ์ ํ์ด ๋ฑ๋ก๋๋ค.
์ฌ๊ธฐ์ checkProductByProductNumber() ๋ ๋ฌผํ์ ์ด๋ฆ์ผ๋ก ๋ฌผํ์ด ์กด์ฌํ๋์ง ๊ตฌํ๋ ๋ฉ์๋์ด๋ค.
๋ฐ๋ก ๊ตฌํ์ ์ํด์ฃผ์ด๋ ๋์ง๋ง ํจ์๋ก ๊ตฌํ์ ํด์ฃผ์๋ค.
// ๋ฌผํ ๋ฒํธ๋ก ๋ฌผํ์ด ์ด๋ฏธ ์กด์ฌํ๋์ง ์ฐพ๋ ๋ฉ์๋
private static int checkProductByProductNumber() {
System.out.print("๋ฌผํ ๋ฒํธ: ");
productNumber[count] = sc.nextInt();
// ์ด๋ฏธ ์กด์ฌํ๋์ง ํ์ธ
for (int i = 0; i < count; i++) {
if (productNumber[i] == productNumber[count]) {
System.out.println("์ด๋ฏธ ์กด์ฌํ๋ ๋ฌผํ์
๋๋ค.");
System.out.println();
return -1;
}
}
return 0;
}
๋ฌผํ ๋ฒํธ๋ฅผ ์ ๋ ฅํ๊ณ ๊ทธ ์ ํ ๋ฒํธ๊ฐ ์กด์ฌํ๋ค๋ฉด -1์ ๋ฆฌํดํ๊ณ ๊ทธ ์ธ์ ๊ฒฝ์ฐ๋ 0์ ๋ฆฌํดํ๋ค.
๋ฌผํ์ ์ด๋ฆ์ผ๋ก ๋ฌผํ์ ์ธ๋ฑ์ค๋ฅผ ๊ตฌํ๋ ๋ฉ์๋
// ๋ฌผํ์ ์ด๋ฆ์ผ๋ก ๋ฌผํ์ ์ธ๋ฑ์ค๋ฅผ ๊ตฌํ๋ ๋ฉ์๋
private static int getProductIndexByProductName() {
System.out.print("๋ฌผํ์ ์ด๋ฆ์ ์
๋ ฅํ์ธ์: ");
String name = sc.next();
int idx = -1;
for (int i = 0; i < count; i++) {
if (productName[i].equals(name)) {
idx = i;
}
}
return idx;
}
๋ง์ฝ ๋ฌผํ์ด ์๋ค๋ฉด idx๋ฅผ ์ ๋๋ก ๋ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๊ณ ๊ทธ๋ ์ง ์๋ค๋ฉด idx = -1 ์ ๊ทธ๋๋ก ๋ฐํํด์ค๋ค.
์๋์์๋ ์ด ํจ์๊ฐ ๋ ์ฐ์ด๊ธฐ ๋๋ฌธ์ ๋ ๋ฒ ๊ตฌํํ ํ์์์ด ์ด ํจ์๋ฅผ ๊ฐ์ ธ๋ค ์ฐ๋ฉด ๋๋ค.
ํจ์จ์ฑ์ ๋ฐ์ ธ๋ณด๋ฉด ์ข์์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์์ง๊น์ง ํจ์จ์ฑ๊น์ง๋ ๋น๊ตํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํด์ ์ด๋ ๊ฒ ๊ตฌํ์ ํ์๋ค.
๋ฌผํ ์ ์ฒด ๋ฆฌ์คํธ ์กฐํ
// ๋ฌผํ ์ ์ฒด ๋ฆฌ์คํธ ์กฐํ
private static void readAllProduct() {
for (int i = 0; i < count; i++) {
System.out.println(productNumber[i] + "๋ฒ ๋ฌผํ " + productName[i] + "์ ์กฐํ ๊ฒฐ๊ณผ");
System.out.println("๋ฌผํ ๋ฒํธ: " + productNumber[i]);
System.out.println("๋ฌผํ ์ด๋ฆ: " + productName[i]);
System.out.println("๋ฌผํ ๊ฐ๊ฒฉ: " + productPrice[i]);
System.out.println("๋ฌผํ ์ฌ๊ณ : " + productStock[i]);
System.out.println();
}
}
์ ์ฒด ๋ฌผํ์ ํ์ํ๋ฉด์ print ํด์ค๋ค. ๋ฒ์๋ i=0 ๋ถํฐ count-1 ๊น์ง์ด๋ค. (์ด๋ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๊ฐ ๋ง์ง๋ง-1 ๊น์ง ์ด๋ฏ๋ก)
ํน์ ๋ฌผํ ์ฌ๊ณ ์กฐํ
// ํน์ ๋ฌผํ ์ฌ๊ณ ์กฐํ
private static void readProductStock() {
System.out.print("์ฌ๊ณ ์กฐํ ์
๋๋ค. ๋ฌผํ ์ด๋ฆ์ ์
๋ ฅํด ์ฃผ์ธ์: ");
String item = sc.next();
int t = 0;
for (int i = 0; i < count; i++) {
if (productName[i].equals(item)) {
System.out.println(item + "์ ์ฌ๊ณ ๋ " + productStock[i] + "์
๋๋ค.");
System.out.println();
t += 1;
}
}
if (t == 0) {
System.out.println("๋ฌผํ ์ด๋ฆ์ ์ ๋ชป ์
๋ ฅํ์์ต๋๋ค.");
System.out.println();
}
}
๋ฌผํ์ ์ด๋ฆ์ผ๋ก ์ฌ๊ณ ๋ฅผ ์กฐํํ๋ ๋ฉ์๋์ด๋ค. ๋ชจ๋ ํ์์ ํด์ ์ฌ๊ณ ๋ฅผ ์๋ ค์ค๋ค. ์๊ฐ๋ณต์ก๋๊ฐ O(n)์ผ๋ก ๋ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด ์๊ฒ ์ง๋ง ์์ง๊น์ง๋ ๋ฐ์ง์ง ์๊ณ ๊ตฌํ์ ํ ๊ฒ์ด๋ค. ๋์ค์ API๋ฅผ ๋ง๋ค๊ฒ ๋๋ฉด ์ด๋ฌํ ๋ถ๋ถ๋ค์ ์ ๊ฒฝ์จ์ผ ํ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ t์ ์ญํ ์ ๋ฌผํ์ ์ ๋๋ก ์ ๋ ฅํ๋์ง ํ์ธํ๋ ์ญํ ์ด๋ค. ๋ฌผํ์ ๋ชจ๋ ์กฐํ ํ๋๋ฐ ์ ๋ ฅํ ๋ฌผํ ์ด๋ฆ์ด ํ์๋์ง ์์๋ค๋ฉด ์ด๋ฆ์ ์๋ชป์ ๋ ฅํ ๊ฒ์ด๋ฏ๋ก t๋ก ํ์ธ์ ํด์ฃผ๋๋ก ํ๋ค.
๋ฌผํ ์์
// ๋ฌผํ ์์
private static void updateProduct() {
int idx = getProductIndexByProductName();
if (idx == -1) {
System.out.println("๋ฌผํ ์ด๋ฆ์ ์ ๋ชป ์
๋ ฅํ์์ต๋๋ค.");
return; // ํจ์ ์ข
๋ฃ
}
System.out.println();
System.out.println("---------UPDATE PRODUCT INFO----------");
System.out.print("ํ์ฌ ๋ฌผํ ๋ฒํธ(" + productNumber[idx] + ") :");
productNumber[idx] = sc.nextInt();
System.out.print("ํ์ฌ ๋ฌผํ ์ด๋ฆ(" + productName[idx] + ") :");
productName[idx] = sc.next();
sc.nextLine();
System.out.print("ํ์ฌ ๋ฌผํ ๊ฐ๊ฒฉ(" + productPrice[idx] + ") :");
productPrice[idx] = sc.nextInt();
System.out.print("ํ์ฌ ๋ฌผํ ์ฌ๊ณ (" + productStock[idx] + ") :");
productStock[idx] = sc.nextInt();
System.out.println();
}
์ฌ๊ธฐ์ ๋ค์ํ๋ฒ ์ธ๋ฑ์ค๊ฐ ์ฌ์ฉ๋๋ค. getProductIndexByProductName์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ ธ์จ๋ค.
๋ฐํ ๊ฐ์ด -1์ด๋ฉด ๋ฌผํ ์ด๋ฆ์ ์๋ชป์ ๋ ฅํ ๊ฒ์ด๊ณ ๊ทธ ์ธ์ ๊ฒฝ์ฐ๋ ๋ฌผํ์ ์ ๋ฐ์ดํธ ํด์ค๋ค.
์ฌ๊ธฐ์ ๋ํ ์ ๋ฐ์ดํธ ๋ฐฉ๋ฒ์ด ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๊ฒ ์ง๋ง ๋๋ ํ๋ฒ์ ๋ชจ๋ ๋ฌผํ์ ์์ ํ๋ ๋ฐฉ๋ฒ์ ํํ๋ค.
์๋ฅผ ๋ค์ด ํ์์ ๋ณด ์์ ์์ ํธ๋ํฐ๋ฒํธ๋ง ๋ฐ๊พธ๋ ๊ฒฝ์ฐ, ์ด๋ฉ์ผ๋ง ๋ฐ๊พธ๋ ๊ฒฝ์ฐ ,, ์ด๋ฐ ์์ผ๋ก ํ๋์ฉ API๋ฅผ ๊ตฌ์ฑํด๋ ๋์ง๋ง ํ ๋ฒ์ ์ ๋ณด๋ฅผ ์์ ํ๊ณ ๋๊ฒจ์ฃผ๋ ๋ก์ง์ผ๋ก ๋ง๋ ๊ฒ์ด๋ค.
๋ฌผํ ์ญ์
// ๋ฌผํ ์ญ์
private static void deleteProduct() {
int idx = getProductIndexByProductName();
if (idx == -1) {
System.out.println("๋ฌผํ ์ด๋ฆ์ ์ ๋ชป ์
๋ ฅํ์์ต๋๋ค.");
return; // ํจ์ ์ข
๋ฃ
}
for (int i = idx; i < count - 1; i++) {
productNumber[i] = productNumber[i + 1];
productName[i] = productName[i + 1];
productPrice[i] = productPrice[i + 1];
productStock[i] = productStock[i + 1];
}
count--;
productCount--;
System.out.println("๋ฌผํ ์ญ์ ๊ฐ ์๋ฃ๋์์ต๋๋ค.");
}
์์์ ๊ตฌํํ getProductIndexByProductName ๋ฉ์๋๋ฅผ ๋ค์ ํ ๋ฒ ์ฌ์ฉํ๋ค. ์ด๋ ๊ฒ ํจ์๋ฅผ ํ ๋ฒ ๊ตฌํํ๊ณ ๋ ๋ฒ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๊ฐ๋ ์ฑ๋ ๊ทธ๋ ๊ณ ๊ฐ๋ฐ์์ ํธ๋ฆฌํจ์ด ์๋ค. ๋๋ ํจ์๋ก ๊ธฐ๋ฅ์ ๊ตฌํํด๋๊ณ ๊ณ์ ์ฐ๋ ๋ฐฉ์์ด ํธํ ๊ฒ ๊ฐ์์ ์ฌ์ฉํ์๋ค.
๋ฌผํ์ ์ญ์ ๋ ์ธ๋ฑ์ค๋ฅผ ์ฐพ๊ณ ๊ทธ ์ธ๋ฑ์ค์ ๊ฐ์ ๋ค์ ์ธ๋ฑ์ค์ ๊ฐ์ ๋ฃ์ด์ฃผ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ฉด ๋ค์ ์ธ๋ฑ์ค๊ฐ ์์ผ๋ก ๋์ด์ค๋ฉด์ ๊ฐ์ด ๋ฎ์ด ์ฐ์ด๊ฒ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌผํ์ ๊ฐ์๋ฅผ 1๊ฐ ์ค์ฌ์ฃผ๋ฉด(count--) ๋ค์ ๊ฐ์ด ๊ทธ๋๋ก ์๋๋ผ๋ ๋ฐฐ์ด์ ๋์ด ์ค์ด๋ค๊ธฐ ๋๋ฌธ์ ํ์์ ํ ๋ ๋งจ ๋ค๊น์ง ํ์ง ์๊ฒ๋๋ค.
1 ,2, 3, 4, 5๊ฐ ์๋ค๊ณ ํ์. 3๋ฒ ๋ฌผํ์ ์ญ์ ํ๋ ค๊ณ ํ๋ฉด 1, 2, 4, 5๊ฐ ๋์ด์ผ ํ๋ค.
์ด๋ 1, 2๋ฒ์ ๊ทธ๋๋ก ๋๋๊ณ 3, 4, 5๋ฒ๋ง ๋ฐ๊ฟ์ฃผ๋ฉด ๋๋๋ฐ 3, 4, 5์์ ํ์นธ์ฉ ์์ผ๋ก ๊ฐ์ ธ์ค๋ฉด ๋๋ค. ๊ทธ๋ฌ๋ฉด 4, 5, 5 ๊ฐ ๋ ๊ฒ์ด๋ค. ๋ง์ง๋ง 5๋ ์ด์ฐจํผ count--๊ฐ ๋๋ฏ๋ก ์ด๋ ํ ๊ฐ์ด ์๋๋ผ๋ ํ์์ ํ์ง ์๊ฒ ๋๋๊ฒ์ด๋ค. ๊ทธ๋ฆผ์ผ๋ก ๊ทธ๋ ค์ ์ดํดํ๋ฉด ๋ ์ฌ์ธ ๊ฒ์ด๋ค. ํ์ง๋ง ๊ท์ฐฎ์์
๋ฉ์ธ ํจ์
public static void main(String[] args) {
while (true) {
System.out.printf("์ด ๋ฌผํ ๊ฐ์ : %d\n", productCount);
System.out.print("๋ฉ๋ด๋ฅผ ์
๋ ฅํ์ธ์.");
System.out.println(
"(I)nsert, (A)llProductRead, (S)tockCheck, (U)pdateProduct, (D)eleteProduct, (Q)uit");
System.out.print("๋ฉ๋ด ์
๋ ฅ: ");
String menu = sc.next();
menu = menu.toLowerCase();
switch (menu.charAt(0)) {
case 'i':
System.out.println("๋ฌผํ ์ ๋ณด๋ฅผ ์
๋ ฅํด ์ฃผ์ธ์.");
if (count > MAX) {
System.out.println("๋ฌผํ ๋ฑ๋ก ๊ฐ์๋ฅผ ์ด๊ณผํ์์ต๋๋ค.");
} else {
createProduct();
}
break;
case 'a':
// ์ ์ฒด ๋ฌผํ ์กฐํ
System.out.println("์ ์ฒด ๋ฌผํ ์กฐํ์
๋๋ค.");
readAllProduct();
break;
case 's':
// ๋ฌผํ ์ฌ๊ณ ์กฐํ
readProductStock();
break;
case 'u':
// ๋ฌผํ ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ์
๋ฐ์ดํธ
System.out.println("๋ฌผํ์ ์
๋ฐ์ดํธ ํฉ๋๋ค.");
updateProduct();
break;
case 'd':
System.out.println("๋ฌผํ์ ์ญ์ ํฉ๋๋ค.");
deleteProduct();
break;
case 'q':
System.out.println("ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํฉ๋๋ค.");
sc.close(); // Scanner ๊ฐ์ฒด๋ฅผ ๋ซ์์ค๋๋ค.
System.exit(0); // ํ๋ก๊ทธ๋จ์ ์ข
๋ฃ์ํต๋๋ค.
break;
default:
System.out.println("๋ฉ๋ด๋ฅผ ์๋ชป ์
๋ ฅํ์์ต๋๋ค.");
}
}
}
while ๋ฌธ์์ ๋ฌดํ๋ฃจํ๋ฅผ ๋๊ฒ ๋๋ค. q๊ฐ ์ ๋ ฅ๋๋ฉด ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๊ณ ์ด๋ ํ ์ ๋ ฅ๊ฐ์ด ๋ค์ด์ค๋์ ๋ฐ๋ผ ๋๋์ด ์ง๋ค.
๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ ์ฒซ๋ฒ์งธ ๊ธ์๊ฐ ์ด๋ค ๊ธ์๋์ ๋ฐ๋ผ case๋ฌธ์ ๋ค์ด๊ฐ ์คํ ํ ์ข ๋ฃ๋๋ค.
์ ์ฒด ์ฝ๋
package Assignment2;
import java.util.Scanner;
public class ProducStockManagementSystem {
static final int MAX = 100; // ๋ฐฐ์ด ์ต๋ ํฌ๊ธฐ
static int[] productNumber = new int[MAX]; // ๋ฌผํ ๋ฒํธ
static String[] productName = new String[MAX]; // ๋ฌผํ ์ด๋ฆ
static int[] productPrice = new int[MAX]; // ๋ฌผํ ๊ฐ๊ฒฉ
static int[] productStock = new int[MAX]; // ๋ฌผํ ์ฌ๊ณ
static int productCount = 0; // ์ด ๋ฌผํ ๊ฐ์
static int count = 0; // ์ฒ์ ๊ฐ์
static Scanner sc = new Scanner(System.in);
// ๋ฌผํ์ ์ด๋ฆ์ผ๋ก ๋ฌผํ์ ์ธ๋ฑ์ค๋ฅผ ๊ตฌํ๋ ๋ฉ์๋
private static int getProductIndexByProductName() {
System.out.print("๋ฌผํ์ ์ด๋ฆ์ ์
๋ ฅํ์ธ์: ");
String name = sc.next();
int idx = -1;
for (int i = 0; i < count; i++) {
if (productName[i].equals(name)) {
idx = i;
}
}
return idx;
}
// ๋ฌผํ ๋ฒํธ๋ก ๋ฌผํ์ด ์ด๋ฏธ ์กด์ฌํ๋์ง ์ฐพ๋ ๋ฉ์๋
private static int checkProductByProductNumber() {
System.out.print("๋ฌผํ ๋ฒํธ: ");
productNumber[count] = sc.nextInt();
// ์ด๋ฏธ ์กด์ฌํ๋์ง ํ์ธ
for (int i = 0; i < count; i++) {
if (productNumber[i] == productNumber[count]) {
System.out.println("์ด๋ฏธ ์กด์ฌํ๋ ๋ฌผํ์
๋๋ค.");
System.out.println();
return -1;
}
}
return 0;
}
// ๋ฌผํ ๋ฑ๋ก
private static void createProduct() {
int idx = checkProductByProductNumber();
if (idx == -1) {
return;
}
System.out.print("๋ฌผํ ์ด๋ฆ: ");
productName[count] = sc.next();
sc.nextLine();
System.out.print("๋ฌผํ ๊ฐ๊ฒฉ: ");
productPrice[count] = sc.nextInt();
System.out.print("๋ฌผํ ์ฌ๊ณ : ");
productStock[count] = sc.nextInt();
System.out.println("๋ฑ๋ก์ด ์๋ฃ๋์์ต๋๋ค.");
System.out.println();
count++;
productCount++;
}
// ๋ฌผํ ์ ์ฒด ๋ฆฌ์คํธ ์กฐํ
private static void readAllProduct() {
for (int i = 0; i < count; i++) {
System.out.println(productNumber[i] + "๋ฒ ๋ฌผํ " + productName[i] + "์ ์กฐํ ๊ฒฐ๊ณผ");
System.out.println("๋ฌผํ ๋ฒํธ: " + productNumber[i]);
System.out.println("๋ฌผํ ์ด๋ฆ: " + productName[i]);
System.out.println("๋ฌผํ ๊ฐ๊ฒฉ: " + productPrice[i]);
System.out.println("๋ฌผํ ์ฌ๊ณ : " + productStock[i]);
System.out.println();
}
}
// ํน์ ๋ฌผํ ์ฌ๊ณ ์กฐํ
private static void readProductStock() {
System.out.print("์ฌ๊ณ ์กฐํ ์
๋๋ค. ๋ฌผํ ์ด๋ฆ์ ์
๋ ฅํด ์ฃผ์ธ์: ");
String item = sc.next();
int t = 0;
for (int i = 0; i < count; i++) {
if (productName[i].equals(item)) {
System.out.println(item + "์ ์ฌ๊ณ ๋ " + productStock[i] + "์
๋๋ค.");
System.out.println();
t += 1;
}
}
if (t == 0) {
System.out.println("๋ฌผํ ์ด๋ฆ์ ์ ๋ชป ์
๋ ฅํ์์ต๋๋ค.");
System.out.println();
}
}
// ๋ฌผํ ์์
private static void updateProduct() {
int idx = getProductIndexByProductName();
if (idx == -1) {
System.out.println("๋ฌผํ ์ด๋ฆ์ ์ ๋ชป ์
๋ ฅํ์์ต๋๋ค.");
return; // ํจ์ ์ข
๋ฃ
}
System.out.println();
System.out.println("---------UPDATE PRODUCT INFO----------");
System.out.print("ํ์ฌ ๋ฌผํ ๋ฒํธ(" + productNumber[idx] + ") :");
productNumber[idx] = sc.nextInt();
System.out.print("ํ์ฌ ๋ฌผํ ์ด๋ฆ(" + productName[idx] + ") :");
productName[idx] = sc.next();
sc.nextLine();
System.out.print("ํ์ฌ ๋ฌผํ ๊ฐ๊ฒฉ(" + productPrice[idx] + ") :");
productPrice[idx] = sc.nextInt();
System.out.print("ํ์ฌ ๋ฌผํ ์ฌ๊ณ (" + productStock[idx] + ") :");
productStock[idx] = sc.nextInt();
System.out.println();
}
// ๋ฌผํ ์ญ์
private static void deleteProduct() {
int idx = getProductIndexByProductName();
if (idx == -1) {
System.out.println("๋ฌผํ ์ด๋ฆ์ ์ ๋ชป ์
๋ ฅํ์์ต๋๋ค.");
return; // ํจ์ ์ข
๋ฃ
}
for (int i = idx; i < count - 1; i++) {
productNumber[i] = productNumber[i + 1];
productName[i] = productName[i + 1];
productPrice[i] = productPrice[i + 1];
productStock[i] = productStock[i + 1];
}
count--;
productCount--;
System.out.println("๋ฌผํ ์ญ์ ๊ฐ ์๋ฃ๋์์ต๋๋ค.");
}
public static void main(String[] args) {
while (true) {
System.out.printf("์ด ๋ฌผํ ๊ฐ์ : %d\n", productCount);
System.out.print("๋ฉ๋ด๋ฅผ ์
๋ ฅํ์ธ์.");
System.out.println(
"(I)nsert, (A)llProductRead, (S)tockCheck, (U)pdateProduct, (D)eleteProduct, (Q)uit");
System.out.print("๋ฉ๋ด ์
๋ ฅ: ");
String menu = sc.next();
menu = menu.toLowerCase();
switch (menu.charAt(0)) {
case 'i':
System.out.println("๋ฌผํ ์ ๋ณด๋ฅผ ์
๋ ฅํด ์ฃผ์ธ์.");
if (count > MAX) {
System.out.println("๋ฌผํ ๋ฑ๋ก ๊ฐ์๋ฅผ ์ด๊ณผํ์์ต๋๋ค.");
} else {
createProduct();
}
break;
case 'a':
// ์ ์ฒด ๋ฌผํ ์กฐํ
System.out.println("์ ์ฒด ๋ฌผํ ์กฐํ์
๋๋ค.");
readAllProduct();
break;
case 's':
// ๋ฌผํ ์ฌ๊ณ ์กฐํ
readProductStock();
break;
case 'u':
// ๋ฌผํ ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ์
๋ฐ์ดํธ
System.out.println("๋ฌผํ์ ์
๋ฐ์ดํธ ํฉ๋๋ค.");
updateProduct();
break;
case 'd':
System.out.println("๋ฌผํ์ ์ญ์ ํฉ๋๋ค.");
deleteProduct();
break;
case 'q':
System.out.println("ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํฉ๋๋ค.");
sc.close(); // Scanner ๊ฐ์ฒด๋ฅผ ๋ซ์์ค๋๋ค.
System.exit(0); // ํ๋ก๊ทธ๋จ์ ์ข
๋ฃ์ํต๋๋ค.
break;
default:
System.out.println("๋ฉ๋ด๋ฅผ ์๋ชป ์
๋ ฅํ์์ต๋๋ค.");
}
}
}
}
์งง์ ์๊ฐ์์ ๊ฐ๋จํ๊ฒ ์ง๋ค๋ณด๋ ์ค๋ฅ๊ฐ ์์์๋ ์์ต๋๋ค. ๋ฌธ์ ์ ๋๋ ๊ฐ์ ๋ฐฉ์์ด ์๋ค๋ฉด ๋๊ธ๋ก ๋ถํ๋๋ฆฝ๋๋ค.