项目需求:

#include <iostream>
#include <iomanip>  // 控制输出格式,设置宽度。。。
#include <cstdlib>
#include <ctime>    //随机数
#include <array>
#include <vector>
using namespace std;int main()
{/** 父亲的姓名 */string value_father_name;/** 女儿的姓名 */string value_daughter_name;/** 女儿生日的月份 */int value_birth_month;/** 女儿生日的日期 */int value_birth_date;/** 女儿的星座 */string value_daughter_constell;/** 女儿的五项基本信息值*/array<int, 5> value_daughter_baseinfo;//int value_daughter_baseinfos[5];//vector<int> value_daughter_baseinfo;  //动态分配内存的数组,坏处是数组大小不固定,容易出现bug//上面这三种定义格式都可以/**女儿的五项基本信息名字 :体力、智力、魅力、道德、气质 */array<string, 5> value_daughter_baseinfo_names = {"体力", "智力", "魅力", "道德", "气质"};/** 初始金币*/int value_daughter_money = 500;//临时变量int choice, temp1, temp2, temp3;/** 星座二维数组*/string constell_names[12][12] ={{"山羊座", "水瓶座"},  //一月份{"水瓶座", "双鱼座"},  //二月份{"双鱼座", "白羊座"},  //三月份{"白羊座", "金牛座"},  //四月份{"金牛座", "双子座"},  //五月份{"双子座", "巨蟹座"},  //六月份{"巨蟹座", "狮子座"},  //七月份{"狮子座", "处女座"},  //八月份{"处女座", "天秤座"},  //九月份{"天称座", "天蝎座"},  //十月份{"天蝎座", "射手座"},  //十一月份{"射手座", "山羊座"},  //十二月份};//1、为父女取名字cout << "父亲的姓名:";cin >> value_father_name;cout << "女儿的姓名:";cin >> value_daughter_name;cout << "女儿的生日(MM,DD): ";cin >> value_birth_month >> value_birth_date ;//求女儿的星座/** 各月份的跨星座日期 */int constell_dates[] ={20, 19, 21, 20, 21, 22, 23, 23, 23, 24, 23, 22};value_daughter_constell =  constell_names[value_birth_month - 1][value_birth_date/constell_dates[value_birth_month - 1]];//2、为女儿录入初始信息:生日、星座//   根据女儿的星座,设置游戏的基本参数(体力、智力、魅力、道德、气质)cout << "女儿的信息: ";cout << "姓名: " << value_daughter_name << endl;cout << "生日: 1659-"  << value_birth_month << '-' << value_birth_date << endl;cout << "星座: " << value_daughter_constell << endl;if(value_daughter_constell == "白羊座"){//用array方式或者直接用int定义,用下面方式进行赋值value_daughter_baseinfo[0] = 80;value_daughter_baseinfo[1] = 15;value_daughter_baseinfo[2] = 15;value_daughter_baseinfo[3] = 11;value_daughter_baseinfo[4] = 21;/*//用vector方式定义,用下面方式进行赋值value_daughter_baseinfo.push_back(80);value_daughter_baseinfo.push_back(15);value_daughter_baseinfo.push_back(15);value_daughter_baseinfo.push_back(11);value_daughter_baseinfo.push_back(21);*/}else if (value_daughter_constell == "狮子座"){value_daughter_baseinfo[0] = 75;value_daughter_baseinfo[1] = 13;value_daughter_baseinfo[2] = 13;value_daughter_baseinfo[3] = 11;value_daughter_baseinfo[4] = 15;}else{value_daughter_baseinfo[0] = 72;value_daughter_baseinfo[1] = 15;value_daughter_baseinfo[2] = 18;value_daughter_baseinfo[3] = 14;value_daughter_baseinfo[4] = 19;}///各种星座的初始值 省略//3、开始游戏大循环for(int year = 1659; year <= 1659 + 7; year++){for(int month = (year == 1659)?6:1; month <= 12; month++)   //判断年份是否是1659年,如果是则从6月份开始,如果不是则从1月份开始{//判断本月是否是女儿的生日if(month == value_birth_month){cout << "本月是" << value_daughter_name << "生日,要不要送礼物呢?" << endl;}}//显示游戏主菜单cout << "\n1、查看状态\n2、安排行程\n3、亲自谈话\n4、存档\n5、读档" << endl;cin >> choice;switch(choice){case 1: //查看状态cout << "女儿的信息: " << endl;cout << "姓名: " << value_daughter_name << endl;cout << "生日: 1659-"  << value_birth_month << '-' << value_birth_date << endl;cout << "星座: " << value_daughter_constell << endl;cout << "金钱: " << value_daughter_money;//打印核心属性cout << left;for(int i = 0; i < 5; i++){cout << value_daughter_baseinfo_names[i] << ": "<< setw(2) << value_daughter_baseinfo[i];//计算实心方框的数量int solidCount = value_daughter_baseinfo[i] / 10;for(int j = 0; j < 10; j++){if(j <= solidCount)cout << "■";elsecout << "◻";}cout << endl;}break;case 2: //安排行程:一个月最多安排三个行程{ //如果想在case中定义变量,需要加个大括号string month_parts[] = {"上旬", "中旬", "下旬"};for(int i = 0; i < 3; i++){//cout << "---" << month << "月---" << month_parts[i] << endl;cout << "1、学习武艺\n2、上私塾\n3、学习礼法\n4、出城修行\n5、打工赚钱";cout << "请选择:";cin >> choice;//如果没有钱,则强制打工if(choice == 1)   //+体力  +魅力  -金钱{value_daughter_baseinfo[0] += temp1 = rand() % 11;value_daughter_baseinfo[2] += temp2 = rand() % 11;value_daughter_money -= temp3 = rand() % 51;cout << "学习张无忌好榜样!" << endl;cout << "体力+" << temp1 << ",魅力+" << temp2 << ",金钱-" << temp3 <<endl;}///5种行程安排,省略不写}break;}//5种主菜单信息,省略}}//4、根据各项参数,判定游戏结果//女王  属性总数2000以上//王妃  属性总数1800--2000//女将军 属性总数1600--1800//皇家学院总裁  属性总数1200--1600,智力最高,且体力>智力//公主 属性总数1200--1600,气质最高,且魅力>体力// 近卫骑士团长 属性总数1200--1600,体力最高,且气质>魅力// 高级祭司 属性总数1200--1600,道德最高,且魅力>气质//国王的宠妃 属性总数1200--1600,魅力最高,且气质>道德int sum = 0;for(int i = 0; i < 5; i++){sum += value_daughter_baseinfo[i];}if(sum >= 2000){cout << "女王陛下" << endl;}else if (sum >= 1200 && sum < 1600){int maxValue = value_daughter_baseinfo[0];int maxIndex = 0;for (int i = 1; i < 5; i++){if(maxValue < value_daughter_baseinfo[i]){maxValue = value_daughter_baseinfo[i];maxIndex = i;}}if("道德" == value_daughter_baseinfo_names[maxIndex] && value_daughter_baseinfo[2] > value_daughter_baseinfo[4]){cout << value_daughter_name << "成功成为高级祭司";}}return 0;
}

阶段项目---小公举养成记相关推荐

  1. C++第一阶段项目《小公举养成记》

    展示了游戏的大框架及部分功能,其他功能类似 /*******************************************文件名: main.cpp*创建人: K&J*日期: 202 ...

  2. C++实战——小公举养成记

    本次实战只是学习C++的一个小练习 游戏规则: 游戏一共进行78个月 安排每月行程,合理规划增加基础属性等等- 用到的技能点: 分支结构.循环结构.数组.* vector / array.指针- 代码 ...

  3. 《小公主养成记》——C++第一阶段项目

    /*****************************************************文件名:main.cpp*创建人:郭新亮*日 期:2019-01-12*描 述:C++第一阶 ...

  4. VS2017学习C++基础十一(项目实战:小公主养成记)

    // chapter11a01.cpp : //项目实战:小公主养成记#include <iostream> #include <string> #include <ve ...

  5. “牌面”养成记4:阅读顺序,工具,以及小成果

    在「"牌面"养成记2:阅读学习计划」中提到过阅读会辅助以私家书藏APP,目前已经都收录完毕. 从目前统计来看,132本书籍中,还是偏爱「中信出版社」(可能是受罗辑思维影响的偏好性) ...

  6. “牌面”养成记8:打好牌,从做好这60件事开始[上]

    <产品心经:产品经理应该知道的60件事(第2版)_闫荣>[微信阅读]转化笔记 这是一本通过看目录就会有很多想法的书,原书18万字,改版后在原来的50件事基础上又添加了10条性的想法.这本书 ...

  7. 牌面”养成记9:打好牌,从做好这60件事开始[中]

    <产品心经:产品经理应该知道的60件事(第2版)_闫荣>[微信阅读]转化笔记(续) 前文提要: <产品心经:产品经理应该知道的60件事(第2版)_闫荣>第1篇内容讲述了PM心法 ...

  8. 良好的代码风格养成记

    综述 优秀的代码风格如同一身得体的打扮,能够给人以良好的印象.初学程序设计,首先必须建立良好的编程习惯,这其中就包括代码风格.本文就代码风格中的几个重点问题进行了讨论,并在文后给出了一份优秀的代码作为 ...

  9. 【python初学者日记】selenium初体验——“秒杀商品”、“清空购物车”技能养成记(一)

    [python初学者日记]selenium初体验--"秒杀商品"."清空购物车"技能养成记(一) 用python解决"清空购物车".&quo ...

最新文章

  1. Kafka 原理以及分区分配策略剖析
  2. 网站SEO优化之如何建设外链提升网站权重?
  3. 超低延迟直播架构解析
  4. 来自极客标签10款最新设计素材-系列七
  5. 第5章--高级数据管理
  6. LeetCode 1781. 所有子字符串美丽值之和
  7. 原型设计模式及深拷贝
  8. 云计算实战系列八(存储管理I)
  9. mysql用navicat无法远程连接,mysql 发现 navicat 可以远程连接,代码无法远程连接
  10. caffemodel的大小计算
  11. 摄影基础知识——光学变焦和数码变焦
  12. 基于GA遗传算法的TSP旅行商问题求解
  13. vue 渲染函数处理slot_Vue渲染函数详解
  14. 将Ubuntu 用户目录下的中文目录修改为英文
  15. Datakit.CrossManager.2023(2D/3D数据格式转换器)
  16. 前端 vue 解决按1920*1080设计图做的页面适配屏幕缩放并适配4K屏
  17. 斐讯k1支持千兆吗_斐讯K2是不是千兆路由器
  18. MinGW编译log4cpp
  19. java选择题《每日一练》
  20. 可穿戴的“舌头鼠标”,催生“黏腻”人机交互的新想象?

热门文章

  1. 洛谷——P1789 【Mc生存】插火把
  2. 揭秘微信生态圈的“抖音”是如何PK掉“快手”的
  3. 基于Huffman树的文件压缩(详细)
  4. 一个叫搜索引擎的家伙
  5. SQL语句大全,留着有用哦!
  6. Ubuntu tar 解压的时候报错 tar: Ignoring unknown extended header keyword...解决方案
  7. springsecurity的http.permitall与web.ignoring的区别
  8. hive sql里常见的日期转换形式
  9. sangfor EDR漏洞(CNVD-2020-46552)复现
  10. java静态内部类有什么好处6_java的内部类和静态内部类(嵌套类)