最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實現(xiàn)簡單的小超市程序

 更新時間:2021年02月23日 17:26:47   作者:力偉成  
這篇文章主要為大家詳細介紹了java實現(xiàn)簡單的小超市程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java實現(xiàn)小超市程序的具體代碼,供大家參考,具體內(nèi)容如下

一.人物包

1.顧客類

package person;

public class Customer {
 public String name;
 public double money;
 public boolean isDrivingCar;
}

二.超市包

1.小超市類

package supermarket;

public class LittleSuperMarket {
 public String superMarketName;
 public String address;
 public int parkingCount;
 public double incomingSum;
 public Merchandise[] merchandises;
 public int[] merchandisesold;
}

2.商品類

package supermarket;

public class Merchandise {
 public String name;
 public String id;
 public int count;
 public double soldPrice;
 public double purchasePrice;
}

三.主程序

import person.Customer;
import supermarket.LittleSuperMarket;
import supermarket.Merchandise;

import java.util.Scanner;

public class Run {
 public static void main(String[] args) {

  //通過小超市類創(chuàng)建超市實體
  LittleSuperMarket littleSuperMarket = new LittleSuperMarket();

  //為超市屬性賦值
  littleSuperMarket.address = "世紀大道999號";
  littleSuperMarket.superMarketName = "我家超市";
  littleSuperMarket.parkingCount = 200;

  //為超市商品屬性new一個大小為200的數(shù)組,類型為Merchandise
  littleSuperMarket.merchandises = new Merchandise[200];
  //創(chuàng)造下標(biāo)相同的數(shù)組記錄相同下標(biāo)商品的賣出個數(shù)
  littleSuperMarket.merchandisesold = new int[littleSuperMarket.merchandises.length];


  //賦值
  for (int i = 0; i < littleSuperMarket.merchandises.length; i++) {
   //創(chuàng)建類型為merchandise的局部變量m,并為其賦值
   Merchandise m = new Merchandise();
   m.count = 200;
   m.id = "ID" + i;
   m.name = "商品" + i;
   m.purchasePrice = 200 * Math.random();
   m.soldPrice = (1 + Math.random()) * m.purchasePrice;

   //將每次局部變量的值賦給對應(yīng)下標(biāo)的merchandise實體,此時實體merchandise有了值
   littleSuperMarket.merchandises[i] = m;

  }
  System.out.println("超市開張了!! !");


  boolean open = true;
  Scanner scanner = new Scanner(System.in);


  while (open) {
   System.out.println("本店叫做:" + littleSuperMarket.superMarketName);
   System.out.println("本店地址:" + littleSuperMarket.address);
   System.out.println("共擁有停車位:" + littleSuperMarket.parkingCount);
   System.out.println("今天的營業(yè)額為:" + littleSuperMarket.incomingSum);
   System.out.println("共有商品:" + littleSuperMarket.merchandises.length + "種");


   //為顧客的屬性賦值
   Customer customer = new Customer();
   customer.name = "編號:" + ((int) (Math.random() * 500));
   customer.isDrivingCar = Math.random() > 0.4;
   customer.money = (1 + Math.random()) * 10000;


   //先判斷顧客是否開車
   if (customer.isDrivingCar) {
    System.out.println("歡迎顧客" + customer.name + "號的顧客駕車而來!");
    //顧客開車的條件下車位數(shù)>0,車位減一,否則重新進入循環(huán)(車位小于零,顧客無法停車)
    if (littleSuperMarket.parkingCount > 0) {
     littleSuperMarket.parkingCount--;
     System.out.println("歡迎顧客" + customer.name + "號的顧客光臨" + littleSuperMarket.superMarketName + ",車位剩余" + littleSuperMarket.parkingCount + ",錢包剩余" + customer.money);
    } else {
     System.out.println("對不起,停車位已滿,歡迎下次光臨");
     continue;
    }
    //沒開車,直接進入
   } else {
    System.out.println("歡迎顧客" + customer.name + "號的顧客光臨" + littleSuperMarket.superMarketName + "錢包剩余" + customer.money);
   }


   //在購買流程外部創(chuàng)建變量統(tǒng)計總共花費和購買數(shù)量
   double totalCast = 0;
   int numToBuy;


   //購買循環(huán)
   while (true) {


    System.out.println("本店提供" + littleSuperMarket.merchandises.length + "種商品,歡迎選購。請輸入商品編號:");


    int InDex = scanner.nextInt();
    //對商品索引的合法性進行檢測
    if (InDex <= 0) {
     break;
    }
    if (InDex > littleSuperMarket.merchandises.length - 1) {
     System.out.println("對不起,本店沒有那么多商品。請輸入0到" + (littleSuperMarket.merchandises.length - 1) + "之間的數(shù)字");
     continue;
    }


    System.out.println("您選購的商品的名字是:" + littleSuperMarket.merchandises[InDex].name + "\t售價為:" + littleSuperMarket.merchandises[InDex].soldPrice);
    System.out.println("請問你要買幾個?");

    numToBuy = scanner.nextInt();
    //對購買數(shù)量的合法性進行檢測
    if (numToBuy <= 0) {
     System.out.println("不買看看也好,歡迎繼續(xù)選購");
     continue;
    }
    if (numToBuy > littleSuperMarket.merchandises[InDex].count) {
     System.out.println("本店沒有那么多商品,歡迎繼續(xù)挑選");
     continue;
    }
    /*其實這里的邏輯不太好,但是懶得改了,等再學(xué)習(xí)一段時間再好好完善這個小程序。這里把花費放在購買循環(huán)外面才是比較好的邏輯,然后在這里用if循環(huán)判斷購買的一系列合法性即可。
     或者把售賣個數(shù)的屬性也在這里改變賦值會容易懂,我這里放到后面了,懶得改了。等下次優(yōu)化功能時再整體優(yōu)化邏輯
     */

    //輸入合法,求總共花費,并對商品庫存進行相應(yīng)的扣除
    totalCast += littleSuperMarket.merchandises[InDex].soldPrice * numToBuy;
    littleSuperMarket.merchandises[InDex].count -= numToBuy;


    //仍然屬于合法性檢測,檢測顧客的錢是否夠支付他所購買商品的總價
    if (customer.money < totalCast) {

     System.out.println("對不起,您身上的錢不足以支付您的商品,歡迎下次選購");
     //錢不足以支付,對應(yīng)商品的數(shù)量再把剛才購買但未成功支付的商品數(shù)量歸還
     //就像你在超市里買東西,放進購物車了,貨架上超市庫存少了,其他顧客拿不到了,等你支付時錢不夠,商品被放回,其他顧客可以拿到的數(shù)量增加,即商品庫存增加
     littleSuperMarket.merchandises[InDex].count += numToBuy;
     //這一段當(dāng)時寫的時候我也比較亂
     //因為總價計算在外面了,此時總價已將超出了你的錢數(shù)循環(huán)從這里出去如果總價不置零,你的錢數(shù)一直小于總價,該顧客一直無法購買商品
     totalCast = 0;

    } else {
     //正確購買,售出數(shù)量對應(yīng)增加,顧客口袋里的錢對應(yīng)減少
     littleSuperMarket.merchandisesold[InDex] += numToBuy;
     customer.money -= totalCast;

     //開車來的話,顧客離開,車位釋放
     if (customer.isDrivingCar) {
      littleSuperMarket.parkingCount++;
     }
    }
   }

   littleSuperMarket.incomingSum += totalCast;
   //每次循環(huán)結(jié)束,該人總錢數(shù)得出將該人的totalCast累加到littleSuperMarket.incomingSum中,得出總共收入
   //littleSuperMarket.incomingSum和totalIncoming數(shù)值相等,基本為同一意思
   //littleSuperMarket.incomingSum += totalCast;

   System.out.println("顧客" + customer.name + "號的顧客共消費" + totalCast + ",還剩余" + customer.money);
   System.out.println("今天還要繼續(xù)營業(yè)嗎?");
   open = scanner.nextBoolean();
  }

  System.out.println("超市關(guān)門了!");
  System.out.println("今天總的營業(yè)額為" + littleSuperMarket.incomingSum + "營業(yè)情況如下:");


  //定義總收入和總凈利潤
  double totalNetIncoming = 0;
  double totalIncoming = 0;


  for (int i = 0; i < littleSuperMarket.merchandisesold.length; i++) {
   //只統(tǒng)計售出數(shù)量大于0的商品
   if (littleSuperMarket.merchandisesold[i] > 0) {
    //計算總利潤和總凈利潤,通過累加求得
    double incoming = littleSuperMarket.merchandises[i].soldPrice * littleSuperMarket.merchandisesold[i];
    double netIncoming = (littleSuperMarket.merchandises[i].soldPrice - littleSuperMarket.merchandises[i].purchasePrice) * littleSuperMarket.merchandisesold[i];
    totalIncoming += incoming;
    totalNetIncoming += netIncoming;
    System.out.println(littleSuperMarket.merchandises[i].name + "售出了" + littleSuperMarket.merchandisesold[i] + "個。銷售額為" + incoming + ",凈利潤為" + netIncoming);

   }
  }
  System.out.println("今日總銷售額為:" + totalIncoming + ";今日總凈利潤為:" + totalNetIncoming);
 }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaWeb實現(xiàn)注冊用戶名檢測

    JavaWeb實現(xiàn)注冊用戶名檢測

    這篇文章主要為大家詳細介紹了JavaWeb實現(xiàn)注冊用戶名檢測,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Spring Boot集成MyBatis-Plus 自定義攔截器實現(xiàn)動態(tài)表名切換功能

    Spring Boot集成MyBatis-Plus 自定義攔截器實現(xiàn)動態(tài)表名切換功能

    本文介紹了如何在SpringBoot項目中集成MyBatis-Plus,并通過自定義攔截器實現(xiàn)動態(tài)表名切換,此外,還探討了MyBatis攔截器在其他場景中的應(yīng)用,如SQL日志記錄、多租戶數(shù)據(jù)隔離、數(shù)據(jù)權(quán)限控制等,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Java基礎(chǔ)之序列化與反序列化詳解

    Java基礎(chǔ)之序列化與反序列化詳解

    這篇文章主要介紹了Java基礎(chǔ)之序列化與反序列化詳解,文中有非常詳細的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • java簡單讀取properties配置文件的方法示例

    java簡單讀取properties配置文件的方法示例

    這篇文章主要介紹了java簡單讀取properties配置文件的方法,涉及java針對properties配置的載入及文件屬性讀取相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • java如何對map進行排序詳解(map集合的使用)

    java如何對map進行排序詳解(map集合的使用)

    這篇文章主要介紹了java如何對map進行排序,java map集合的使用詳解,大家可以參考使用
    2013-12-12
  • Java 程序里transient關(guān)鍵字使用方法示例

    Java 程序里transient關(guān)鍵字使用方法示例

    這篇文章主要為大家介紹了Java 程序里transient關(guān)鍵字使用方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Spring Boot Actuator未授權(quán)訪問漏洞的問題解決

    Spring Boot Actuator未授權(quán)訪問漏洞的問題解決

    Spring Boot Actuator 端點的未授權(quán)訪問漏洞是一個安全性問題,可能會導(dǎo)致未經(jīng)授權(quán)的用戶訪問敏感的應(yīng)用程序信息,本文就來介紹一下解決方法,感興趣的可以了解一下
    2023-09-09
  • Java如何在PDF中添加ToolTip工具提示

    Java如何在PDF中添加ToolTip工具提示

    大家好,本篇文章主要講的是Java如何在PDF中添加ToolTip工具提示,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Jar包如何導(dǎo)入本地maven倉庫

    Jar包如何導(dǎo)入本地maven倉庫

    將本地jar包導(dǎo)入本地maven倉庫,可以通過maven命令-Dfile、-DgroupId、-DartifactId、-Dversion、-Dpackaging指定jar包的詳細信息,然后執(zhí)行命令即可
    2024-11-11
  • MyBatis增刪改查快速上手

    MyBatis增刪改查快速上手

    這篇文章給大家講解的是MyBatis 這門技術(shù)的 CURD (增刪改查) ,非常的詳細與實用,有需要的小伙伴可以參考下
    2020-02-02

最新評論

澄城县| 栖霞市| 福建省| 大邑县| 永川市| 松江区| 会同县| 锦屏县| 秀山| 墨竹工卡县| 毕节市| 朝阳县| 井研县| 林州市| 东港市| 偃师市| 南陵县| 桦川县| 济阳县| 眉山市| 伊金霍洛旗| 资溪县| 莱芜市| 中阳县| 太仆寺旗| 巴东县| 屯昌县| 商水县| 安福县| 包头市| 南汇区| 崇文区| 丽江市| 台山市| 丹棱县| 商洛市| 赤水市| 子长县| 盱眙县| 广州市| 铁力市|