購入しながら収入(手数料)リストも作成
既に作成済みの顧客毎の購入可能リストから価格が高い順に購入します。そのため最初に購入可能リストをソートし、購入を決定していきます。購入決定により収入も決まりますので、このタイミングで収入リストも作成します。
プログラム&テスト結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
<meta charset="UTF-8"> <script type="text/javascript"> var item = [ "江戸時代の小判が入っている陶磁器:290000", "マンモスの化石:2000", "明治時代の陶磁器:3000", "チンギス・ハンが愛用した硯:500000", "平成時代の陶磁器:1400", "鎌倉時代の古ぼけた絵画:24000", "デジタル式時計:1250", "安土桃山時代信長作の絵画:780000", "奈良時代の仏像の絵画:30000", "平安時代のきらびやかな陶磁器:14000", "平成時代の美咲さんが書いた絵画:10", "日時計:48000", "弥生時代の陶磁器:2000000", "江戸時代の歯車式時計:12000", "水時計:8800", "義経の刀:5000", "昭和時代の陶磁器:2400", "不発弾:-10000" ]; //得意先毎の情報 var namae = ["得意先A","得意先B","得意先C"]; var kibou = ["陶磁器","絵画","時計"]; var mony = [1000000,800000,300000]; //得意先毎の購入可能リスト var list = [[],[],[]]; //list[0][1],list[0][2]・・・得意先A //list[1][1],list[2][2]・・・得意先B //list[2][1],list[2][2]・・・得意先C var sort_outName = []; //ソートアウトプット(物品名) var sort_outPrice = []; //ソートアウトプット(価格) var RITU = 10; //手数料率% var buy_name=[[],[],[]]; //顧客別購入物品名 var buy_price=[[],[],[]];//顧客別購入価格 var buy_tesuryo=[]; //収入リスト //テスト extraction(); buy(); document.write("----購入リスト---<BR>"); for(var k=0;k<buy_name.length;k=k+1){ document.write("【"+namae[k]+"】<BR>"); for(var l=0;l<buy_name[k].length;l=l+1){ document.write(buy_name[k][l]+":"+buy_price[k][l]+"<BR>"); } document.write("<BR>"); } document.write("----収入リスト---<BR>"); for(var n=0;n<buy_tesuryo.length;n=n+1){ document.write(buy_tesuryo[n]+"<BR>"); } /* 購入 出力:buy_name(名前),buy_price(価格),buy_tesuryo(収入リスト) */ function buy(){ var index=[0,0,0]; var idx_tesuryo=0; for(var i=0;i<list.length;i=i+1){ //顧客分ループ sort(list[i]); //ソート for(var j=0;j < sort_outPrice.length;j=j+1){//購入可能リスト分ループ if( mony[i] >= sort_outPrice[j]){ //購入できるか? buy_name[i][index[i]] = sort_outName[j]; buy_price[i][index[i]]= sort_outPrice[j]; buy_tesuryo[idx_tesuryo]= namae[i]+"_"+sort_outName[j]+":"+sort_outPrice[j] *RITU / 100; mony[i] = mony[i] - sort_outPrice[j]; index[i] = index[i] + 1; idx_tesuryo = idx_tesuryo + 1; } } } } |
収入リストをひと工夫
収入リストは得意先名、物品名、手数料を手数料が高い順に表示する必要があります。この段階では収入リストはソートされていません。後の処理でソートする必要がありますが、ソート処理の対象は”物品名:価格”(”文字列:価格”)のため、収入リストに必要な得意先の情報を含めてソートできません。そこで、収入リストを作成する際に、”得意先名_物品名:価格(手数料)”(文字列:価格)の形式で作成し、ソートができるようにしています。
73 |
buy_tesuryo[idx_tesuryo]= namae[i]+"_"+sort_outName[j]+":"+sort_outPrice[j] *RITU / 100; |