import java.io.*;
import java.util.*;
/**
* @author 20040780 이재현
*
*/
class JavaHowTo {
public native void cls();
public native void setCursorPosition( short x, short y);
static { System.loadLibrary("scrUtil"); } //screen util (scrUtil.dll) 로드
}
public class Ka_project
{
static Vector vc = new Vector(); // 백터 1번. vc 의 저장 불러오기 구현을 위함.
public static void main(String[] args) throws Exception
{
JavaHowTo su = new JavaHowTo();
MYMY2 m = new MYMY2(); // 추상클레스 부분.
Ran ran = new Ran();
Title title = new Title();
Title_admin title_admin = new Title_admin();
boolean what= true;
int total_ad = 0, total_t=0, order=1;
Vector vc2 = new Vector();
String a = null; // 입력용으로 사용할 변수
m.Out(); // 추상클래스 구현 부분.
System.out.print("시작하시려면 Enter 를 입력하세요.");
ran.Read_br();
su.cls();
do{
title.ti_out_two(); //메인화면 출력.
System.out.print("접속 모드를 입력하세요 (1-5) : " );
ran.Print(a=ran.Read_br());
int input_ch_num = Integer.parseInt(a);
su.cls();
do{
if (input_ch_num==1)
{
title.ti_out_admin(); // 메인화면을 출력
int pass = 0;
pass = ran.Read_br_int();
su.cls();
if(pass == 1)
{
System.out.println("사용자 계정 추가 모드입니다.");
System.out.println("입력 하실 계정의 갯수를 입력하세요");
int num_int_add = ran.Read_br_int(); // 계정 갯수 의 입력
int num_temp = 0; // num_temp = 0 숫자를 받아 넘길 값.
title_admin.integer_add(num_int_add); // integer_add
for(int j=0; j<num_int_add; j++){
Title_admin s = new Title_admin(); // 객체 생성.
System.out.println(1+j+"번째 항목 입력창");
System.out.print("해당 상품의 이름을 입력하세요. exam (CPU_althon_64) : ");
s.integer_name(ran.Read_br()); // 문자형 입력
System.out.print("해당 상품의 갯수를 입력하세요. exam (100, 200) : ");
do{
if((num_temp=ran.Read_br_int())<1) // 0개 입력 할시.
{
System.out.print("다시 입력해 주세요 : ");
}
else
{
s.integer_count(num_temp); // 갯수입력
break;
}
}while(true);
System.out.print("해당 상품의 기한을 입력하세요. exam (080510) : "); // 상품의 기한을 입력하게된다
s.integer_date(ran.Read_br());
System.out.print("해당 상품의 A/s 기간 을 입력하세요. exam (1년, 1개월) : "); //상품의 A/s 기간을 설정하게 된다.
s.integer_as(ran.Read_br());
System.out.print("해당 상품의 가격을 입력하세요. exam (1, 23 | 천원단위) :"); // 상품의 가격을 결정한다.
do{
if((num_temp = ran.Read_br_int())<1) //만일 입력값이 1 이하로 오차 입력시
{
System.out.print("다시 입력해 주세요 : ");
}
else
{
s.integer_price(num_temp); // 입력을 재대로 하였을 경우 가격을 넣게 된다.
break;
}
}while(true);
System.out.print("해당 상품의 상세 정보를 입력하세요. exam (Overclock 전용) : "); // 상품의 상세 정보를 입력하게된다.
s.integer_spec(ran.Read_br());
su.cls();
ran.WriteFile(s.get_int_name()); //파일로 저장 을 하게된다. data.txt로 들어가게된다.
ran.WriteFile(s.get_int_date());
ran.WriteFile(s.get_int_as());
ran.WriteFile(s.get_int_spec());
ran.WriteFile(s.get_int_count());
ran.WriteFile(s.get_int_price());
vc.add(s);//벡터에 저장.
} // 입력 끝
for (int i=0;i<vc.size();i++ ) // 입력 정보 출력
{
Title_admin s = new Title_admin(); // 객체 생성
s = (Title_admin)vc.get(i); //끄집어내고
System.out.println("------------------------------------");
System.out.println(i+1+"번째 입력 정보");
System.out.println("해당 상품의 이름 : "+s.get_int_name());
System.out.println("해당 상품의 갯수 : "+s.get_int_count());
System.out.println("해당 상품의 기한 : "+s.get_int_date());
System.out.println("해당 상품의 A/S : "+s.get_int_as());
System.out.println("해당 상품의 가격 : "+s.get_int_price()+",000");
System.out.println("해당 상품의 스팩 : "+s.get_int_spec());
System.out.println("------------------------------------");
}
}
else if (pass == 2)
{
title.ti_out_admin_del(); // 화면 출력 삭제기능이 존재하는 곳으로 이동.
int admin_del = ran.Read_br_int(); // 버퍼리더 입력값을 admin_del 변수에 넣게 된다.
su.cls();
if (admin_del == 1)
{
System.out.println("-------------------------------------------------------------------------");
for (int i=0;i<vc.size();i++ ) // 입력 정보 출력
{
Title_admin s = new Title_admin();
s = (Title_admin)vc.get(i); // 해당값을 객체에 다시 집어넣고 '형' 을 Title_admin 으로 변환한다.
System.out.print(i+1+" 번째 입력 정보 : ");
System.out.print(" "+s.get_int_name());
System.out.print(" "+s.get_int_count());
System.out.print(" "+s.get_int_date());
System.out.print(" "+s.get_int_as());
System.out.print(" "+s.get_int_price()+",000");
System.out.println(" "+s.get_int_spec());
}
System.out.println("-------------------------------------------------------------------------");
}
else if (admin_del == 2) // 삭제입력
{
System.out.println("삭제하실 계정 번호를 입력하세요 : ");
int i = ran.Read_br_int();
i--; // 1을 입력할 경우 백터는 vc.remove(0) 에 해당된다.
if (vc.size()==0) // 백터의 사이즈가 존재 하지 않으면 삭제 계정이 없다는 화면을 출력하게 된다.
{
System.out.print("삭제하실 계정이 존재 하지 않습니다.");
}
else
{
vc.remove(i); // 백터 내부의 삭제 할 번호를 입력하게 된다 . 0 -> 1 , 1 -> 2
su.cls();
}
}
else //기능을 빠져나간다. (3 뒤로가기)
{
break;
}
}
else if (pass == 3) // 삭제 기능을 나가게 된다.
{
break;
}
}
else if(input_ch_num==2) // fin_1 <-- 안 햇깔리게 하기위해;;
{
User us = new User(order++);// 각 구매시의 순번을 정하게 하기 위해 사용하였다.
title.ti_out_user(); //화면출력
int user_a_int; // 변수선언
if ((user_a_int = ran.Read_br_int()) == 1) {
su.cls();
do{
System.out.println("-------------------------------------------------------------------------");
for (int i=0;i<vc.size();i++ ) // 입력 정보 출력
{
Title_admin s = new Title_admin();
s = (Title_admin)vc.get(i); //해당정보를 객체에 넣음
System.out.print(i+1+"번째 입력 정보 : ");
System.out.print(" "+s.get_int_name());
System.out.print(" "+s.get_int_count());
System.out.print(" "+s.get_int_date());
System.out.print(" "+s.get_int_as());
System.out.print(" "+s.get_int_price()+",000");
System.out.println(" "+s.get_int_spec());
// 백터에 저장되어져 잇는 administrator 모드의 정보를 출력해준다.
}
System.out.println("-------------------------------------------------------------------------");
System.out.println("현재 서비스를 사용하시려면 Y 사용하지 않으실꺼면 N 를 입력하세요");
String ㅇㅅㅇ = ran.Read_br();
if(ㅇㅅㅇ.equals( "y") || ㅇㅅㅇ.equals( "ㅛ") ) // 값이 y 나 ㅛ 가 오면 출력 되어진다.
{ //fin_1_1_1_1 : o
do {
if(vc.size()>0) // 백터에 입력되어진 값이 0 초과일 경우 출력된다
{
System.out.print("해당 상품을 선택해 주세요 : ");
int user_sel_int = ran.Read_br_int(); // 변수에 값을 넣어서.
Title_admin s = new Title_admin();
user_sel_int--;
s = (Title_admin)vc.get(user_sel_int); // 백터에서 상품 정보를 빼내게 된다.
int get = s.get_int_count(); // 수량(남은 상품의 갯수를) 옮겨 놓고
System.out.print("구매하실 상품의 갯수를 선택하세요 : ");
int get_2 = ran.Read_br_int();
if (get >= get_2) //만약 재고가 입력값보다 이상일 경우. (상품이 부족하지 않을경우)
{
Title_admin ta=new Title_admin();
get = (get - get_2); // 큰값 에서 입력 재고를 빼내어.
ta.integer_count(get_2); // 입력재고값을 ta.integer_count (나중에 사용자들 전용 Vector 에 집어넣게 된다).
s.integer_count(get); // 곗수 입력. 재고에서 - 되어진 재고를 다시 관리자에게 넣게 된다.
ta.integer_as(s.get_int_as()); // as
ta.integer_date(s.get_int_date()); //date
ta.integer_name(s.get_int_name()); // name
ta.integer_spec(s.get_int_spec()); // spec
System.out.print("해당상품의 가격을 입력해 주세요 exam ( 반드시 1000 단위로 ) : "); //price
int user_sel_price = (ran.Read_br_int()/(int)1000); // 실제 입력값을 1000으로 나눈다.
ta.integer_price(user_sel_price);
vc.add(s); // 아까의 관리자에서 마이너스 값을 다시 집어넣고
us.vc2.add(ta); // 입력된 사용자 정보를 이중 백터에 집어 넣는다.
what=false; // 빠져나간다.
}
else // 상품의 재고가 존재 하지 않을 경우.. 재고 < 입력값
{
System.out.println("해당 상품이 부족합니다 다른상품을 선택하세요.");
}
}
else // 애초에 계정이 한개도 존재 하지 않을경우.
{
System.out.println("재고가 존재 하지 않습니다."); // 백터의 입력값이 없을경우(재고가 아무것도 존재하지 않을경우.)
what=false;
}
}while(what);
} //fin_1_1_1_1 : x
else if(vc2.size()>0) // 백터의 사이즈가 0보다 클경우 입력값이 존재할경우 출력하게 된다.
{
System.out.println("현재 선택하신 상품은 다음과 같습니다 ");
vc2.add(us); //백터에 집어넣고.
for (int i = 0; i<us.vc2.size(); i++){
Title_admin u = (Title_admin)us.vc2.get(i); // vc2 내부의 따로 저장한 정보를 출력하세 된다.
System.out.print(i+1+"선택 상품 입력 정보 : ");
System.out.print(" "+u.get_int_name());
System.out.print(" "+u.get_int_count());
System.out.print(" "+u.get_int_date());
System.out.print(" "+u.get_int_as());
System.out.print(" "+u.get_int_price()+",000");
System.out.println(" "+u.get_int_spec());
System.out.println("지불 가격 : "+u.admin_total_price()); // 각계정의 값을 연산하도록 하엿다.
}
break;
}
else // 출력을 하지마라 (만약의 오류의 경우)
break;
}while(true); //fin_1_1: 나가게된다.
}
else if (user_a_int==2) // 재고 확인을 위함이다.
{
su.cls();
ran.System_in("사용자 번호를 입력해 주세요.");
int ord=ran.Read_br_int();
if (vc2.size() > (ord-1)) // 사용자 번호를 입력하였을때 백터에 아무런 입력정보 사용자가 구매한것이 없을경우.
{
User un=(User)vc2.get(ord-1);
for (int i = 0; i<un.vc2.size(); i++){
Title_admin ur=(Title_admin)un.vc2.get(i);
System.out.print(i+1+"선택 상품 입력 정보 : ");
System.out.print(" "+ur.get_int_name());
System.out.print(" "+ur.get_int_count());
System.out.print(" "+ur.get_int_date());
System.out.print(" "+ur.get_int_as());
System.out.print(" "+ur.get_int_price()+",000");
System.out.println(" "+ur.get_int_spec());
System.out.println("지불 가격 : "+ur.admin_total_price());
}
}
else // 사용자 입력에 대한 것에 대한 정보를 출력하지 않게 된다.
{
ran.System_in("해당 정보가 존재하지 않습니다.");
}
}
else { // 3번 이상의 번호를 입력시 화면을 클리어 한후 뒤로 가게 된다.
su.cls();
break;
}
} // fin_1
else if(input_ch_num==3) // acount 모드로 들어가게 된다.
{
{
su.cls(); // 화면을 클리어 하고
title.ti_out_accout(); // account 타이틀 모니터상 출력
int acount_temp = ran.Read_br_int(); // int 형 버퍼
if (acount_temp == 1) // 현재고 판매량 을 확인한다.
{
su.cls();
Title_admin ad = new Title_admin(); // 객체를 선언하고
int [] ad_pay = new int [vc.size()]; // 백터의 사이즈 만큼의 배열을 만든다.
ran.System_in("");
ran.System_in("");
for(int k=0;k<vc.size();k++)
{
ad = (Title_admin)vc.get(k); // 관리자 벡터
ad_pay[k] = ad.set_ad_total_price(ad.admin_total_price());
// 관리자 백터 내부의 admin total 출력값을 set ad total 에 집어 넣어 배열에 넣게된다.
ran.System_in(" "+(k+1)+" : 번째 총 상품의 재고 총금액 "+ad_pay[k]);
//해당 상품 재고 * 가격 을 합산하여 출력하게 된다.
total_ad += ad_pay[k];
//모든 재고 * 가격 의 값들을 total_ad 로 넣게 된다.
}
//배열을 이용한 재고 금액의 출력.
}
else if (acount_temp ==2 )
{
ran.System_in("");
ran.System_in("");
User us = new User (order); // 구매자 객체를 불러오고
for(int j = 0; j < vc2.size();j++)
{
us = (User)vc2.get(j);
//백터의 저장값을 us 에 집어넣는다 2중 1차 백터에서의 값을 OBject를 뺴낸다.
for(int i = 0;i<us.vc2.size();i++)
{
Title_admin ti = (Title_admin)us.vc2.get(i); // 2차 백터에서의 값을 형변환을 하여서 ti 에 집어넣어.
ti.set_t_total_price(ti.admin_total_price()); // ti에 저장되어져 있는 연산 값을 set_t_total에 집어 넣는다.
ran.System_in(" "+(j+1)+" :번째 판매 상품 재고 총금액 "+ti.get_t_total_price());//출력한다.
total_t += ti.get_t_total_price() ;//모든 값을 total_t 에 집어 넣게 된다.
//백터를 이용한 재고 금액의 출력.
}
}
}
else if (acount_temp==3)
{
ran.System_in(" 현재 총 재고 금액 "+total_ad); //방금전의 총 재고 (관리자) 에서 불러온다.
ran.System_in("");
ran.System_in(" 현재 총 판매 금액 "+total_t); // 총재고 ( 사용자)에서 불러온다.
total_ad = 0; // 값을 초기화 하여줌. 중첩방지
total_t = 0; // 값을 초기화 하여줌. 중첩방지
}
else // 뒤로가기
{
su.cls();
break;
}
}
}
else if (input_ch_num==4) // 파일을 불러온다.
{
ran.ReadFile(); // 파일을 로딩. 오버 로딩활용
input_ch_num = 1; // 끝나면 1로 고고싱
}
else if(input_ch_num==5)
{
ran.File_Clear(); // 파일을 초기화
input_ch_num = 1;
}
else
{
Finish finish = new Finish(); // 간단한 오버라이딩 연습을 위해 사용하였다.
finish.System_in("프로그램이 종료 되었습니다."+'\n'); // 프로그램 종료 문구 오버 라이딩
Bye b = new Bye();//인터페이스 불러오기
b.bye(); // 인터페이스 사용 확인을 위해 첨가.
vc.clear(); // 백터 클리어.
vc2.clear(); // 백터 클리어.
System.exit(0); // 백터 클리어. 시스템 아웃
}
}while(true);
}while(true);
}
}
class Ran extends Title_admin
{
private int num1;
private String str;
private String str_br;
private int str_br_int;
private String str2;
Title_admin a = new Title_admin();
int count_su;
public void Print(String a){ // 입력에 대한 출력 확인용. +@ 케이스 연습용
str = a;
num1 = Integer.parseInt(str);
System.out.println(num1+"를 입력하셧습니다.");
switch(num1){
case 1:
System.out.println("Administrator mode 로 접속하셧습니다.");
break;
case 2:
System.out.println("User Mode (사용자) 로 접속하셧습니다.");
break;
case 3:
System.out.println("Accout mode 로 접속하셧습니다.");
break;
default:
System.out.println("Bye Bye~~ ~~~♡");
}
}
public String Read_br() // 문자형의 입력용 메서드
{
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
str_br = br.readLine();
} catch(IOException e){System.out.print(e.hashCode());}
return str_br;
}
public int Read_br_int() // 정수형의 입력용 메서드
{
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
str_br_int = Integer.parseInt(br.readLine());
} catch(Exception e){System.out.print(e.toString());}
return str_br_int;
}
public String System_in(String str) // 메서드 연습용
{
str2 = str;
System.out.println(str2);
return str2;
}
public void WriteFile(String a) throws Exception // 파일 관련 오버 라이딩. 만일 문자형이 들어왓을경우.
{
File file = new File("data.txt");
PrintWriter pw = new PrintWriter(new FileWriter(file,true));
pw.print(a+"\t");
count_su++;
if(count_su == 6){
pw.println();
count_su = 0;
}
pw.flush();
pw.close();
}
public void File_Clear() throws Exception // 파일의 데이터 중첩을 막기위함.
{
File file = new File("data.txt");
PrintWriter pw = new PrintWriter(new FileWriter(file,false));
pw.flush();
pw.close();
}
public void WriteFile(int a) throws Exception// 파일 관련 오버라이딩. 만일 정수형이 들어왓을경우.
{
File file = new File("data.txt");
PrintWriter pw = new PrintWriter(new FileWriter(file,true));
pw.print(a+"\t");
count_su++;
if(count_su == 6){
pw.println();
count_su = 0;
}
pw.flush();
pw.close();
}
public void ReadFile() throws Exception
{
BufferedReader br = new BufferedReader (new FileReader ("data.txt"));
String read_str = null;
while((read_str = br.readLine())!=null)
{
String x[] = read_str.split("\t");
int add_length = (x.length / 6); // ADD 갯수 추가 용 입력 사이즈를 설정
//
a.integer_add(add_length);
for (int j=0; j < x.length; j++)
{
a.integer_name(x[j]);
j++;
a.integer_date(x[j]);
j++;
a.integer_as(x[j]);
j++;
a.integer_spec(x[j]);
j++;
int int_temp = Integer.parseInt(x[j]);
a.integer_count(int_temp);
j++;
int_temp = Integer.parseInt(x[j]);
a.integer_price(int_temp);
}
vc.add(a);
}
}
}
//---------------------------------------------------------------------------------------
//타이틀의 왜형을 만드는 과정.
class Title
{
private String str;
public void ti_out(String one){
str = one;
System.out.println(str);
}
public void ti_out_accout()
{
System.out.println("|---------- accout mode ----------|");
System.out.println("|-- (1) 현재고 판매량 --|");
System.out.println("|---------------------------------|");
System.out.println("|-- (2) 총 재고 판매량 --|");
System.out.println("|---------------------------------|");
System.out.println("|-- (3) 총수익 --|");
System.out.println("|---------------------------------|");
System.out.println("|-- (4) 뒤로가기 --|");
System.out.println("|---------------------------------|");
System.out.print(" 접속 모드를 입력하세요 (1-4) : " );
}
public void ti_out_admin(){
System.out.println("|----- Administrator mode --------|");
System.out.println("|--(1) 계정 관리"+'\t'+"입력모드--|");
System.out.println("|---------------------------------|");
System.out.println("|--(2) 계정 관리"+'\t'+"삭제모드--|");
System.out.println("|---------------------------------|");
System.out.println("|--(3) 기타 기능"+'\t'+"뒤로가기--|");
System.out.println("|---------------------------------|");
System.out.print(" 접속 모드를 입력하세요 (1-3) : " );
}
public void ti_out_admin_del(){
System.out.println("삭제 기능 입니다.");
System.out.println(" 1. 리스트를 확인");
System.out.println(" 2. 삭제 입력 ");
System.out.println(" 3. 뒤로 가기 ");
System.out.print(" 접속 모드를 입력하세요 (1-3) : " );
}
public void ti_out_two()
{
System.out.println("|---------------------------------|");
System.out.println("| (1) Administrator mode |");
System.out.println("|---------------------------------|");
System.out.println("| (2) User Mode |");
System.out.println("|---------------------------------|");
System.out.println("| (3) Account mode |");
System.out.println("|---------------------------------|");
System.out.println("| (4) File Loading |");
System.out.println("|---------------------------------|");
System.out.println("| (5) File Clear |");
System.out.println("|---------------------------------|");
System.out.println("| 어서오십시요 손뉨 |");
System.out.println("|---------------------------------|");
System.out.println("| copy right emulljh@gmail.com |");
System.out.println("|---------------------------------|");
System.out.println("모드에 접속할 번호를 입력해 주십시오.");
System.out.println("|---------------------------------|");
System.out.println("| another number = Exit |");
System.out.println("|---------------------------------|");
}
public void ti_out_user()
{
System.out.println("|---------- User Mode ----------|");
System.out.println("|-- (1) 구매 "+'\t'+'\t'+'\t'+"--|");
System.out.println("| "+'\t'+" "+'\t'+" |");
System.out.println("|-- (2) 확인 "+'\t'+'\t'+'\t'+"--|");
System.out.println("| "+'\t'+" "+'\t'+" |");
System.out.println("|-- (3) 기타 기능 뒤로가기 "+'\t'+"--|");
System.out.println("|---------------------------------|");
System.out.print(" 접속 모드를 입력하세요 (1-3) : " );
}
}
class Title_admin extends Ka_project //메인에 선언된 벡터에 저장 안되는 문제로 메인 상속 받았어요 ~
{
Vector vc2=new Vector(); // 2중 백터용. 멤버객체
private int int_add; // 추가할 갯수
private String int_as; // A/s 기간
private String int_conf_pass; // Admin 접속 용 확인 PAssword
private int int_count; // 제품 수량.
private String int_date; // 계정 수입기간
private String int_insert_pass; // Admin 접속 용 등록 PASSword
private String int_name; // 개정 이름
private int int_price;
private String int_spec; // 계정 스팩
private boolean int_yno = true; // 예 아니요
private int t_total; // 사용자용. 총액수
private int ad_total; // 관리자용. 총액수
public int set_t_total_price(int t)
{
return t_total = t;
}
public int set_ad_total_price(int ad)
{
return ad_total = ad;
}
public int get_t_total_price()
{
return t_total;
}
public int get_ad_total_price()
{
return ad_total;
}
public int admin_total_price()
{
return get_int_price() * get_int_count() * 1000;
}
// - 여기까지가 admin 입력
public int get_int_add()
{
return int_add;
}
public String get_int_as()
{
return int_as;
}
public int get_int_count()
{
return int_count;
}
public String get_int_date()
{
return int_date;
}
public String get_int_name()
{
return int_name;
}
public int get_int_price()
{
return int_price;
}
public String get_int_spec()
{
return int_spec;
}
public boolean get_int_yno()
{
return int_yno;
}
public String int_get_conf_pass()
{
return int_conf_pass;
}
public String int_get_new_pass()
{
return int_insert_pass;
}
public void integer_add(int a)
{
int_add = a;
}
public void integer_as(String as)
{
int_as = as;
}
public void integer_conf_pass(String conf_pass)
{
int_conf_pass = conf_pass;
}
public void integer_count(int count)
{
int_count = count;
}
public void integer_date(String d)
{
int_date = d;
}
public void integer_name(String n)
{
int_name = n;
}
public void integer_new_pass(String pass)
{
int_insert_pass = pass;
}
public void integer_price(int price){
int_price = price;
}
public void integer_spec(String s)
{
int_spec = s;
}
}
//내부 입력 과정.
class User extends Title_admin // 사용자 번호를 붙이기 위한 클레스
{
private int order;
public User(int order) //생성자를 사용한다.
{
this.order = order;
}
public int order(){
return order;
}
}
class Finish extends Ran
{
private String str2;
public String System_in(String str) // 오버 라이딩 구현 용.
{
str2 = str;
System.out.print(str2);
return str2;
}
}
interface ByeBye{
public void bye();
}
class Bye implements ByeBye{
public void bye(){
System.out.println("완전 수고하셧습니다.");
}
}
abstract class MYMY
{
abstract public void Out();
}
class MYMY2 extends MYMY{
public void Out(){
System.out.println("emulljh@gmail.com");
System.out.println("20040780 이재현입니다.");
System.out.println("본저작권은 저에게 있습니다.");
System.out.println("관리자에서 의 정보는 강제적으로 남게 됩니다.");
}
}