2017-05-03 1 views
-1

그래서 내가 파스칼에서 음식 주문 시스템을 만들 필요가 적재되지파스칼 변수, 내가 프로그램을 수행했지만 프로그램은 나에게 음식을 하나 개의 라인을 제공

program orderfood; 
var 
choice,ramen,sashimi,nigi,tei:integer; 
nramen,nsashimi,nnigi,ntei:integer; 
Money:Text; 
count:integer; 
NigiMoney,RamenMoney,TeiMoney,SashimiMoney,FinalMoney:integer; 
TeiName,RamenName,SashimiName,NigiName,i:string; 
a:array [1..4] of string; 
b:integer; 
procedure Menu; 
begin 
    writeln('/===============\'); 
    writeln('|Welcome to the |'); 
    writeln('| Japan House! |'); 
    writeln('| 1. Ramen  |'); 
    writeln('| 2. Sashimi |'); 
    writeln('| 3. Nigirizushi|'); 
    writeln('| 4. Teishoku |'); 
    writeln('| 5. Receipt |'); 
    writeln('| 9. Leave  |'); 
    writeln('\===============/'); 
    writeln('Please Enter your choice!'); 
    readln(choice); 
end; 

procedure OrderRamen; 
begin 
    writeln('Choice For Ramen:'); 
    writeln('1.Shoyu Ramen $38'); 
    writeln('2.Tonkotsu Ramen $37'); 
    writeln('3.Shio Ramen $35'); 
    writeln('4.Miso Ramen $39'); 
    writeln('5.Tsukemen $45'); 
    writeln('6.Instant Ramen Noddles $30'); 
    writeln('Previous =0'); 
    writeln('Enter your choice: '); 
    readln(ramen); 
    case ramen of 
    1:RamenName:='Shoyu Ramen'; 
    2:RamenName:='Tonkotsu Ramen'; 
    3:RamenName:='Shio Ramen'; 
    4:RamenName:='Miso Ramen'; 
    5:RamenName:='Tsukemen'; 
    6:RamenName:='Instant Ramen Noddles'; 
    end; 
    if ramen=0 
    then Menu 
    else write('How many ramen do you want ? '); 
    readln(nramen); 
    if nramen>1 then 
    case ramen of 
     1:RamenMoney:=nramen*13; 
     2:RamenMoney:=nramen*20; 
     3:RamenMoney:=nramen*18; 
     4:RamenMoney:=nramen*15; 
     5:RamenMoney:=nramen*22; 
     6:RamenMoney:=nramen*22; 
    end; 
    if nramen=1 then 
    case ramen of 
     1:RamenMoney:=13; 
     2:RamenMoney:=20; 
     3:RamenMoney:=18; 
     4:RamenMoney:=15; 
     5:RamenMoney:=22; 
     6:RamenMoney:=22; 
    end; 
end; 

procedure OrderSashimi; 
    begin 
    writeln('Choice For Sashimi:'); 
    writeln('1.Sake $41'); 
    writeln('2.Akami $40'); 
    writeln('3.Chutoro $50'); 
    writeln('4.Otoro $70'); 
    writeln('5.Hotate $45'); 
    writeln('6.Ikura $40'); 
    writeln('Previous =0'); 
    writeln('Enter your choice: '); 
    readln(sashimi); 
    case sashimi of 
    1:SashimiName:='Sake'; 
    2:SashimiName:='Akami'; 
    3:SashimiName:='Chutoro'; 
    4:SashimiName:='Otoro'; 
    5:SashimiName:='Hotate'; 
    6:SashimiName:='Ikura'; 
    end; 
    if sashimi=0 
    then Menu 
    else write('How many sashimi do you want ? '); 
    readln(nsashimi); 
    if nsashimi>1 then 
    case sashimi of 
     1:SashimiMoney:=nsashimi*13; 
     2:SashimiMoney:=nsashimi*20; 
     3:SashimiMoney:=nsashimi*18; 
     4:SashimiMoney:=nsashimi*15; 
     5:SashimiMoney:=nsashimi*22; 
     6:SashimiMoney:=nsashimi*22; 
    end; 
    if nsashimi=1 then 
    case sashimi of 
     1:SashimiMoney:=13; 
     2:SashimiMoney:=20; 
     3:SashimiMoney:=18; 
     4:SashimiMoney:=15; 
     5:SashimiMoney:=22; 
     6:SashimiMoney:=22; 
    end; 
end; 

procedure OrderNigirizushi; 
    begin 
    nigi:=0; 
    writeln('Choice For Nigirizushi:'); 
    writeln('1.Tamago $13'); 
    writeln('2.Sake $20'); 
    writeln('3.Maguro $18'); 
    writeln('4.Ebi $15'); 
    writeln('5.Ikuro $22'); 
    writeln('6.Kani $20'); 
    writeln('Previous =0'); 
    writeln('Enter your choice: '); 
    readln(nigi); 
    case nigi of 
    1:NigiName:='Tamago'; 
    2:NigiName:='Sake'; 
    3:NigiName:='Maguro'; 
    4:NigiName:='Ebi'; 
    5:NigiName:='Ikuro'; 
    6:NigiName:='Kani'; 
    end; 
    if nigi=0 
    then Menu 
    else write('How many nigirizushi do you want ? '); 
    readln(nnigi); 
    if nnigi>1 then 
    case nigi of 
     1:NigiMoney:=nnigi*13; 
     2:NigiMoney:=nnigi*20; 
     3:NigiMoney:=nnigi*18; 
     4:NigiMoney:=nnigi*15; 
     5:NigiMoney:=nnigi*22; 
     6:NigiMoney:=nnigi*22; 
    end; 
    if nnigi=1 then 
    case nigi of 
     1:NigiMoney:=13; 
     2:NigiMoney:=20; 
     3:NigiMoney:=18; 
     4:NigiMoney:=15; 
     5:NigiMoney:=22; 
     6:NigiMoney:=22; 
    end; 

    end; 
procedure OrderTeishoku; 
    begin 
    writeln('Choice For Teishoku:'); 
    writeln('1.Kara-Age Teishoku $45'); 
    writeln('2.Tonkatsu Teishoku $40'); 
    writeln('3.Sashimi Teishoku $35'); 
    writeln('4.Mix Fry Teishoku $39'); 
    writeln('Previous =0'); 
    writeln('Enter your choice: '); 
    readln(tei); 
    if tei=0 
    then Menu 
    else write('How many Teishoku do you want ? '); 
    readln(ntei); 
    case tei of 
    1:TeiName:='Kara-Age Teishoku'; 
    2:TeiName:='Tonkatsu Teishoku'; 
    3:TeiName:='Sashimi Teishoku'; 
    4:TeiName:='Mix Fry Teishoku'; 
    end; 
    if ntei>1 then 
    case ntei of 
     1:TeiMoney:=ntei*13; 
     2:TeiMoney:=ntei*20; 
     3:TeiMoney:=ntei*18; 
     4:TeiMoney:=ntei*15; 
     5:TeiMoney:=ntei*22; 
     6:TeiMoney:=ntei*22; 
    end; 
    if ntei=1 then 
    case tei of 
     1:TeiMoney:=13; 
     2:TeiMoney:=20; 
     3:TeiMoney:=18; 
     4:TeiMoney:=15; 
     5:TeiMoney:=22; 
     6:TeiMoney:=22; 
    end; 
end; 

procedure StoreMoney1; 
begin 
    Assign(Money,'C:\Users\jason\Desktop\Ho Chung Hin Sba\real 
pg\Money.txt'); 
    rewrite(Money); 
    writeln(Money,RamenName,' ','*',nramen,' ',RamenMoney); 
    close(Money); 
end; 

procedure StoreMoney2; 
begin 
    Assign(Money,'C:\Users\jason\Desktop\Ho Chung Hin Sba\real 
pg\Money.txt'); 
    rewrite(Money); 
    writeln(Money,NigiName,' ','*',nnigi,' ',NigiMoney); 
    close(Money); 
end; 

procedure StoreMoney3; 
begin 
    Assign(Money,'C:\Users\jason\Desktop\Ho Chung Hin Sba\real 
pg\Money.txt'); 
    rewrite(Money); 
    writeln(Money,TeiName,' ','*',ntei,' ',TeiMoney); 
    close(Money); 
end; 

procedure StoreMoney4; 
begin 
    Assign(Money,'C:\Users\jason\Desktop\Ho Chung Hin Sba\real 
pg\Money.txt'); 
    rewrite(Money); 
    writeln(Money,SashimiName,' ','*',nsashimi,' ',SashimiMoney); 
    close(Money); 
end; 

Procedure PrintOut; 
begin 
b:=1; 
    reset(Money); 
    while not EOF(Money) do 
    begin 
    readln(Money,i); 
    a[b]:=i; 
    writeln(a[b]); 
    b:=b+1; 
    end; 
    close(Money); 
    end; 

begin 
    repeat 
     begin 
     Menu 
    end; 
    if choice=1 then 
    begin 
    OrderRamen; 
    StoreMoney1; 
    end 
    else if choice=2 then 
    begin 
    OrderNigirizushi; 
    StoreMoney2; 
    end 
    else if choice=3 then 
    begin 
    OrderTeishoku; 
    StoreMoney3; 
    end 
    else if choice=4 then 
    begin 
    OrderSashimi; 
    StoreMoney4; 
    end; 
    until choice=5; 
    if choice=5 then 
    begin 
    PrintOut 
    end; 
    if choice=9 then 
    exit; 


end. 

결과 및 입력 : 입력 1 1 1, 2 1 1 결과 : 2의 세부 사항 1 없음 도와주세요!

+0

* * * 파스칼을 사용하면 도움이됩니다. 다양한 구문상의 차이점을 지닌 여러 다른 파스칼이 있습니다. 당신이'Assign '을 사용하고있는 것을 보았을 때, 아마도 Turbo Pascal/Borland Pascal이나 FreePascal 일지 모르지만 나는 틀릴 수 있습니다. 무엇 이니? –

+0

그것은 무료입니다 터보 파스칼 – Jedekode

+0

농담 해? FreePascal 또는 Turbo Pascal? –

답변

1

귀하의 StoreMoney 절차는 모두 이전에 작성된 내용을 삭제하고 쓰기 위해 텍스트 파일을 엽니 다. write-with-append를 위해 텍스트 파일을 열 수있는 컴파일러의 프로 시저/함수를 찾아야합니다. Append(f)Open(f,'a')과 같은 객체 지향 (또는 의사 객체 지향) 스타일 (예 : F.Open('a') 또는 F.Append())과 같은 여러 가지 방법을 살펴 보았습니다.

+0

도움에 감사드립니다! – Jedekode

+0

이것이 문제를 해결 한 경우 대답 옆의 upvote/downvote 화살표 아래에있는 체크 표시를 클릭하여 대답을 "수락"하십시오. 이는 문제가 만족스럽게 해결되었음을 의미합니다 (그리고 나에게 'rep'에 대한 몇 가지 포인트를 제공합니다). –

관련 문제