C++第二十課:快遞運費計算器 / 黑白配+石頭剪刀布小游戲

快遞運費計算器

幫一家快遞站點開發一個快遞運費計算器,快遞站點人員只需要輸入包裹重量和地點編號即可計算出對應的運費。

假設快遞費計算規則如下:

首重:3公斤 3公斤以內:1.東三省/寧夏/青海/海南:12元,2.新疆/西藏:20元,3.港澳臺/國外:不接受寄件,4.其他地區:10元。

超過3公斤部分:1.東三省/寧夏/青海/海南:8元/公斤,2.新疆/西藏:10元/公斤,3.港澳臺/國外:聯系公司總部,4.其他地區:5元/公斤

如果要求加急,需額外收加急費

3公斤以內: 1.東三省/寧夏/青海/海南:12元,2.新疆/西藏:20元,3.港澳臺/國外:不接受件,其他地區:5元 超過3公斤: 1.東三省/寧夏/青海/海南:20元,2.新疆/西藏:30元,3.港澳臺/國外:聯系公司總部,4.其他地區:10元

#include<iostream>
using namespace std;
int main() {int height, num, money, urgent;cout << "請輸入包裹的重量(單位:kg):";cin >> height;cout << "請輸入地區編號(1.東三省/寧夏/青海/海南,2.新疆/西藏,3.港澳臺/國外,4.其他地區):";cin >> num;cout << "是否加急(1.加急 0.不加急):";cin >> urgent;if (height <= 0) {cout << "你輸入的包裹重量有誤。" << endl;} else if (height <= 3) {cout << "首重。" << endl;switch (num) {case 1:money = 12;if (urgent == 1) money += 12;break;case 2:money = 20;if (urgent == 1) money += 20;break;case 3:money = 9999;cout << "不接受寄件。" << endl;break;case 4:money = 10;if (urgent == 1) money += 5;break;default:cout << "輸入的地區編號有誤" << endl;}} else {cout << "超過3公斤。" << endl;switch (num) {case 1:money = 12 + (height - 3) * 8;if (urgent == 1) money += 20;break;case 2:money = 20 + (height - 3) * 10;if (urgent == 1) money += 30;break;case 3:money = 99999;cout << "請聯系公司總部。" << endl;break;case 4:money = 10 + (height - 3) * 5;if (urgent == 1) money += 10;break;default:cout << "輸入的地區編號有誤" << endl;}}cout << "本次快遞費用:" << money << endl;return 0;
}

?黑白配+石頭剪刀布小游戲

?請設計一個四人參與的游戲程序,規則如下:

1. 游戲參與者包括3個電腦玩家和1個人類玩家

2. 游戲分為三個階段:

- 第一回合:所有玩家從"黑"和"白"中選擇一個

- 第二回合:剩余玩家繼續從"黑"和"白"中選擇一個

- 第三回合:最后兩位玩家進行石頭剪刀布對決

3. 具體規則:

- 電腦玩家的選擇通過隨機數生成

- 人類玩家通過輸入進行選擇

- 前兩回合采用"少數者淘汰制":選擇人數較少的顏色對應的玩家被淘汰

- 如果兩種顏色選擇人數相同,則判定為平局,游戲結束

- 每回合淘汰1名玩家,直到剩余2名玩家

- 最后兩位玩家通過石頭剪刀布決定最終勝負(石頭勝剪刀,剪刀勝布,布勝石頭)

4. 程序需要:

- 清晰展示每回合的選擇結果

- 正確判斷淘汰情況并顯示

- 當人類玩家被淘汰時,游戲結束并提示

- 處理可能的非法輸入 請根據以上需求實現這個游戲程序。

#include<iostream>
#include<ctime> 
#include<cstdlib>using namespace std;int main() {srand(time(0)); int num_1 = rand()%2+1;int num_2 = rand()%2+1;int num_3 = rand()%2+1;string str_1; string str_2; string str_3; string str_me;// 數量int sum_h = 0;int sum_b = 0;// 游戲人數int sum_rs = 4; // 隨機數與變量進行對應switch(num_1){case 1:str_1 = "黑";sum_h++;break;case 2:str_1 = "白";sum_b++;break;} switch(num_2){case 1:str_2 = "黑";sum_h++;break;case 2:str_2 = "白";sum_b++;break;} switch(num_3){case 1:str_3 = "黑";sum_h++;break;case 2:str_3 = "白";sum_b++;break;} // 第一回合 cout<<"游戲開始,請出(黑/白):";cin>>str_me;if(str_me == "黑"){sum_h++;}else if(str_me=="白"){sum_b++; }else{cout<<"輸入錯誤!";return 0;}cout<<"結果為:"<<endl;cout<<"我:"<<str_me<<"  其他人:"<<str_1<<" "<<str_2<<" "<<str_3<<endl;// 淘汰if(sum_h>sum_b){cout<<"白色淘汰"<<endl;if(str_me=="白"){cout<<"我是白色,我被淘汰,游戲結束";return 0; } } else if(sum_h<sum_b){cout<<"黑色淘汰"<<endl;if(str_me=="黑"){cout<<"我是黑色,我被淘汰,游戲結束";return 0;}}else{cout<<"平局,游戲結束";return 0;} cout<<"我沒有被淘汰,游戲繼續"<<endl;sum_rs -= 1;cout<<"游戲剩余人數:"<<sum_rs<<endl; // 剩余:3個 // 第二回合sum_h = 0; // 重置計數 sum_b = 0; // 重置計數 int num_11 = rand()%2+1;int num_22 = rand()%2+1;// 隨機數與變量進行對應switch(num_11){case 1:str_1 = "黑";sum_h++;break;case 2:str_1 = "白";sum_b++;break;} switch(num_22){case 1:str_2 = "黑";sum_h++;break;case 2:str_2 = "白";sum_b++;break;} cout<<"游戲開始,請出(黑/白):";cin>>str_me;if(str_me == "黑"){sum_h++;}else if(str_me=="白"){sum_b++; }else{cout<<"輸入錯誤!";return 0;}cout<<"結果為:"<<endl;cout<<"我:"<<str_me<<"  其他人:"<<str_1<<" "<<str_2<<endl;// 淘汰if(sum_h>sum_b){cout<<"白色淘汰"<<endl;if(str_me=="白"){cout<<"我是白色,我被淘汰,游戲結束";return 0; } } else if(sum_h<sum_b){cout<<"黑色淘汰"<<endl;if(str_me=="黑"){cout<<"我是黑色,我被淘汰,游戲結束";return 0;  }}else{cout<<"平局,游戲結束";return 0;} cout<<"我沒有被淘汰,游戲繼續"<<endl;sum_rs -= 1;cout<<"游戲剩余人數:"<<sum_rs<<endl; // 剩余:2個// 第三回合// 使用石頭剪刀布cout<<"請輸入你的選擇(石頭/剪刀/布):";string str_my;cin>>str_my;// 隨機生成對手結果int num_ds = rand()%3+1;string str_ds;// 隨機數與變量進行對應switch(num_ds){case 1:str_ds = "石頭";break;case 2:str_ds = "剪刀";break;case 3: str_ds = "布";break; } //對手出的結果cout << "對手出:" << str_ds << endl; // 判斷if(str_my=="石頭"){if(str_ds=="石頭"){cout<<"平局"; }else if(str_ds=="剪刀"){cout<<"你贏了!";}else if(str_ds=="布"){cout<<"你輸了!";}}else if(str_my=="剪刀"){if(str_ds=="石頭"){cout<<"你輸了!"; }else if(str_ds=="剪刀"){cout<<"平局!";}else if(str_ds=="布"){cout<<"你贏了!";}}else if(str_my=="布"){if(str_ds=="石頭"){cout<<"你贏了!"; }else if(str_ds=="剪刀"){cout<<"你輸了!";}else if(str_ds=="布"){cout<<"平局!";}}else{cout << "輸入錯誤!";  // 新增:處理非法輸入}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/95574.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/95574.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/95574.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網絡安全藍隊常用工具全景與實戰指南

摘要 在現代信息系統的安全防護中&#xff0c;藍隊承擔著防御、檢測、響應和持續改進的核心職責。要實現高效、可持續的防御能力&#xff0c;藍隊需要一整套成熟、可靠的工具集來進行威脅情報收集、日志分析、入侵檢測、漏洞評估、端點防護、網絡流量監控、事件響應與取證等工作…

基于 Flink 的淘寶實時數據管道設計:商品詳情流式處理與異構存儲

引言在電子商務領域&#xff0c;實時數據處理能力已成為企業核心競爭力的重要組成部分。淘寶作為中國領先的電商平臺&#xff0c;每天產生海量的商品數據&#xff0c;這些數據需要被實時處理、分析并分發到各種存儲系統中&#xff0c;以支持搜索、推薦、庫存管理等關鍵業務。本…

面試題:【多線程問題,三個線程A,B,C;C線程依賴B線程的結果執行,怎么控制】

在 Java 中&#xff0c;若需要控制線程間的依賴關系&#xff08;如 C 線程依賴 B 線程的結果&#xff09;&#xff0c;可以通過以下幾種方式實現&#xff1a; 方案 1&#xff1a;使用 CountDownLatch CountDownLatch 是一個同步工具類&#xff0c;允許一個或多個線程等待其他線…

React useMemo 深度指南:原理、誤區、實戰與 2025 最佳實踐

把“為什么用、怎么用、用錯了怎么辦”一次講透&#xff0c;附 React 19 自動優化前瞻。一、useMemo 是什么&#xff1f; 一句話&#xff1a; useMemo 記住&#xff08;緩存&#xff09;昂貴計算結果&#xff0c;只在依賴變化時重新計算。 const memoValue useMemo(() > {…

[ HTML 前端 ] 語法介紹和HBuilderX安裝

目錄 一. HTML 1.概述 2. 安裝前端開發工具 (1)HBuilderX下載 (2)創建html項目和使用 3. HTML基礎 1.標簽 (1).標簽定義: (2).標簽結構: (3).標簽屬性: 2.常用標簽: 3.特殊符號: 4.表格(table) (1)基本標簽: (2)基本結構: (3)表格屬性: 5.表單(form) (1). 表單概述…

Spring Cloud系列—Alibaba Sentinel熔斷降級

上篇文章&#xff1a; Spring Cloud系列— Alibaba Sentinel限流https://blog.csdn.net/sniper_fandc/article/details/149944260?fromshareblogdetail&sharetypeblogdetail&sharerId149944260&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link…

Spring Boot 使用 @NotBlank + @Validated 優雅校驗參數

在日常開發中&#xff0c;我們常用 if (isBlank(...)) 來判斷參數是否為空&#xff0c;但這種方式不僅繁瑣&#xff0c;而且容易遺漏。 Spring 生態中推薦使用 JSR-303 校驗注解&#xff08;NotBlank、NotNull 等&#xff09;配合 Validated 實現自動校驗&#xff0c;大幅減少手…

網絡安全(Java語言)簡單腳本匯總 (一)

文章目錄敏感信息探測腳本源代碼思路URL批量存活探測器源代碼思路端口掃描器源代碼思路 敏感信息探測腳本 源代碼/*** description 該腳本通過分析HTTP響應頭&#xff0c;來檢測可能暴露服務器信息的安全隱患*/import java.io.IOException; import java.net.HttpURLConnection;…

buuctf_NSBlogin_http_upload(極客2019+ACTF2020新生賽)

今天做三1個web 題目&#xff1a;NSB_login用戶名有admin&#xff0c;看源碼&#xff1a;I like rockyou&#xff01;今天學習到&#xff0c;kali里面有密碼爆破的文件叫rockyou.txt&#xff08;/usr/share/wordlists/&#xff09;&#xff08;沒kali也可以去https://gitcode.c…

IDEA如何引用brew安裝的openjdk

因為 brew 安裝的 openjdk@21 目錄結構和 IDEA 期望的 JDK 目錄不一樣。所以默認brew安裝的jdk,在IDEA中是無法識別到的。 一、創建軟連接 sudo mkdir -p /Library/Java/JavaVirtualMachines sudo ln -sfn /usr/local/opt/openjdk@21/libexec/openjdk.jdk /Library/Java/Java…

【Unity3D】Spine黑線(預乘問題)、貼圖邊緣裁剪問題

一、黑線問題 Spine正確的導出和Unity導入設置&#xff08;解決黑邊/彩條帶問題&#xff09;_spine導出的圖片有黑邊-CSDN博客 采用&#xff08;已解決問題&#xff09; Texture 打包器啟用 Premultiply alpha ,禁用Bleed Unity Texture 設置中禁用 sRGB (Color Texture) 和…

嵌入式系統學習Day18(文件編程-系統調用文件IO)

- open#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); 功能:打開文件 參數:pathname --- 文件名 flags 必選:O_RDONLYO_WRONLY…

Vue淺學

概述在最近的學習任務中了解了 Vue&#xff0c;并對其產生了濃厚的興趣&#xff0c;現在分享一下我的學習所得關鍵字其一statestate 是 Vuex 存儲中的“狀態對象”&#xff0c;用于存儲整個應用的共享數據&#xff08;如用戶信息、令牌、權限等&#xff09;&#xff0c;比如&am…

機器翻譯:Hugging Face庫詳解

文章目錄一、Hugging Face概述1.1 Hugging Face介紹1.2 核心理念&#xff1a;模型即服務&#xff0c;但以開源形式二、核心架構2.1 Transformers庫&#xff1a;模型交互的統一接口2.2 Datasets庫&#xff1a;高效的數據處理引擎2.3 Tokenizers庫&#xff1a;文本與模型的“翻譯…

服務器安裝gielab社區版

第一步&#xff1a;安裝Gitlab 1,使用的是CentOs鏡像(服務器最低配置為4核8g內存才行要不然帶不動) 登錄目標實例。 2,執行如下命令&#xff0c;安裝所需依賴。 1 sudo yum install -y curl policycoreutils-python openssh-server 3,執行如下命令&#xff0c;啟動SSH服務…

C#報錯:System.NullReferenceException:“未將對象引用設置到對象的實例。”

C#使用自定義的類創建數組時&#xff0c;使用時報錯&#xff0c;報錯內容如下圖&#xff1a;原因&#xff1a;C#中的數組是引用類型。當聲明自定義類數組時&#xff0c;數組本身會被創建&#xff0c;但其元素&#xff08;即自定義類的實例&#xff09;默認未被實例化&#xff0…

Maven 的 module 管理

一、Maven 的 module 管理 1. 什么是 Maven module&#xff1f; Maven module&#xff08;模塊&#xff09;&#xff0c;是 Maven 多模塊項目結構&#xff08;multi-module project&#xff09;中的核心概念。它允許你將一個大型項目拆分為若干獨立的小項目&#xff08;模塊&am…

現在都是APP,小程序搶購,支持瀏覽器不支持 SSE

在 APP 和小程序搶購場景中&#xff0c;通常不原生支持SSE&#xff08;Server-Sent Events&#xff09;&#xff0c;這與瀏覽器對 SSE 的支持情況不同&#xff0c;具體如下&#xff1a;APP&#xff1a;一般情況下&#xff0c;APP 端不支持原生 SSE。若使用 UniApp 開發&#xf…

Spring Boot 深度解析:從原理到實踐

一、Spring Boot 本質與核心價值 1.1 什么是 Spring Boot&#xff1f; Spring Boot 是 Spring 生態的革命性框架&#xff0c;旨在解決傳統 Spring 開發的復雜性。它通過"約定優于配置"&#xff08;Convention Over Configuration&#xff09;理念&#xff0c;提供開箱…

WebSocket-java篇

問題引入消息推送的方式我們要實現&#xff0c;服務器把消息推送到客戶端&#xff0c;可以輪訓&#xff0c;長輪訓還有sseWebSocket理論WebSocket 的由來與核心價值誕生背景&#xff1a;解決 HTTP 協議在實時通信中的固有缺陷&#xff08;單向請求-響應模式&#xff09;核心驅動…