项目实战-美少女养成记

需求:

使用控制台编写一个小游戏,分别实现以下功能:

1.新增数据

2.修改数据

3.删除数据

4.查询数据

游戏规则:

1.游戏一共进行78个月

2.安排每月行程,合理规划增加基础属性

3.成为小公主,登基为女王,嫁给高富帅,从此走上人生巅峰~

用到的技能点:

1.分支结构

2.循环结构

3.数组

4.*vectory/array

5.指针

上代码:

#include 
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

int main()
{
	//1.为父女取名字
	string value_father_name;
	string value_daugther_name;
	/*女儿生日月份和日期*/
	int value_birth_month;
	int value_birth_date;
	/*女儿的星座*/
	string value_daugther_constell;
	/*女儿的五项基本信息:体力、智力、魅力、道德、气质*/
	//int value_duagther_baseinfos[5];
	//vector value_vec_info;//动态分配内存的数组
	array value_array_info;//动态分配内存的数组
	//五项基本属性值
	array value_array_baseinfo_names = {"体力","智力","魅力","道德","气质"};
	int value_duagther_gold = 500;

	/*根据生日计算星座,星座二维数组*/

	string constells_names[12][2] = {
		{ "山羊座", "水瓶座" },//一月
		{ "水瓶座", "双鱼座" },//二月
		{ "双鱼座", "白羊座" },//三月
		{ "白羊座", "金牛座" },//四月
		{ "金牛座", "双子座" },//五月
		{ "双子座", "巨蟹座" },//六月
		{ "巨蟹座", "狮子座" },//七月
		{ "狮子座", "处女座" },//八月
		{ "处女座", "天秤座" },//九月
		{ "天秤座", "天蝎座" },//十月
		{ "天蝎座", "射手座" },//十一月
		{ "射手座", "山羊座" },//十二月
	};
	int choice,temp1, temp2, temp3;

	cout << "父亲的姓名: ";
	cin >> value_father_name;
	cout << "女儿的姓名: ";
	cin >> value_daugther_name;
	cout << "女儿的生日(MM DD): ";
	cin >> value_birth_month >> value_birth_date;
	/*各个月的跨星座日期*/
	int constells_dates[] = { 20, 19, 21, 20, 21, 22, 23, 23, 23, 24, 23, 22 };
	value_daugther_constell = constells_names[value_birth_month - 1][value_birth_date / constells_dates[value_birth_month - 1]];
	cout << "女儿的信息: ";
	cout << "姓名:" << value_daugther_name << endl;
	cout << "生日:1659-" << value_birth_month << "-" << value_birth_date << endl;
	cout << "星座:" << value_daugther_constell << endl;
	if (value_daugther_constell == "白羊座"){
		/*value_vec_info.push_back(80);
		value_vec_info.push_back(15);
		value_vec_info.push_back(15);
		value_vec_info.push_back(11);
		value_vec_info.push_back(21);*/
		value_array_info[0] = 80;
		value_array_info[1] = 15;
		value_array_info[2] = 15;
		value_array_info[3] = 11;
		value_array_info[4] = 21;
	}
	else if (value_daugther_constell == "金牛座"){
		value_array_info[0]=46; value_array_info[1]=33; value_array_info[2]=28; value_array_info[3]=35; value_array_info[4]=20;
	}
	else if (value_daugther_constell == "双子座"){
		value_array_info[0]=50; value_array_info[1]=35; value_array_info[2]=23; value_array_info[3]=26; value_array_info[4]=8;
	}
	else if (value_daugther_constell == "巨蟹座"){
		value_array_info[0]=40; value_array_info[1]=31; value_array_info[2]=33; value_array_info[3]=23; value_array_info[4]=17;
	}
	else if (value_daugther_constell == "狮子座"){
		value_array_info[0]=85; value_array_info[1]=9; value_array_info[2]=11; value_array_info[3]=28; value_array_info[4]=20;
	}
	else if (value_daugther_constell == "处女座"){
		value_array_info[0]=35; value_array_info[1]=28; value_array_info[2]=36; value_array_info[3]=19; value_array_info[4]=18;
	}
	else if (value_daugther_constell == "天秤座"){
		value_array_info[0]=42; value_array_info[1]=33; value_array_info[2]=25; value_array_info[3]=24; value_array_info[4]=32;
	}
	else if (value_daugther_constell == "天蝎座"){
		value_array_info[0]=50; value_array_info[1]=25; value_array_info[2]=40; value_array_info[3]=20; value_array_info[4]=18;
	}
	else if (value_daugther_constell == "射手座"){
		value_array_info[0]=52; value_array_info[1]=35; value_array_info[2]=15; value_array_info[3]=26; value_array_info[4]=19;
	}
	else if (value_daugther_constell == "山羊座"){
		value_array_info[0]=56; value_array_info[1]=21; value_array_info[2]=16; value_array_info[3]=22; value_array_info[4]=25;
	}
	else if (value_daugther_constell == "水瓶座"){
		value_array_info[0]=43; value_array_info[1]=43; value_array_info[2]=20; value_array_info[3]=27; value_array_info[4]=21;
	}
	else if (value_daugther_constell == "双鱼座"){
		value_array_info[0]=45; value_array_info[1]=20; value_array_info[2]=29; value_array_info[3]=25; value_array_info[4]=21;
	}

	for (int i = 0; i < 5; i++){
		cout << value_array_info[i] << '\t' << endl;
	}
	cout << endl;
	//2.为女儿录入初始信息 生日、星座
	//  根据女儿的星座,设置游戏的基本参数(体力、智力、魅力、道德、气质)
	//3.开始游戏大循环
	//游戏从1659年6月开始
	for (int year = 1659; year <= 1659 + 7; year++){
		for (int month = (year ==1659)?6: 1; month <= 12; month++){
		//判断是否是女儿的生日
			if (month == value_birth_month){
				cout << "本月是" << value_daugther_name << "的生日,要不要送礼物呢?" << endl;
				//根据用户的输入自行判断
			}
			//显示游戏主菜单
			cout << "\n1、查看状态\n2、安排行程\n3、亲自谈话\n4、存档\n5、读档" << endl;
			cin >> choice;
			switch(choice){
			case 1://查看状态
				cout << "女儿的信息: \n";
				cout << "姓名:" << value_daugther_name << endl;
				cout << "生日:1659-" << value_birth_month << "-" << value_birth_date << endl;
				cout << "星座:" << value_daugther_constell << endl;
				cout << "金币:"<> choice;
					//这里需要注意没钱的情况,强制打工
					srand(time(NULL));
					if (choice == 1)//+体力 +魅力 -金钱
					{
						value_array_info[0] += temp1 = rand() % 11;//rand()范围在32272之间,%11,数值在0~10
						value_array_info[2] += temp2 = rand() % 11;
						value_duagther_gold -= temp3 = rand() % 51;
						cout << "学习张无忌好榜样!!";
						cout << "体力+" << temp1 << ",魅力+" << temp2 << ",金钱-" << temp3 << endl;
					}
					else if (choice == 5){
						value_duagther_gold += temp3 = rand() % 101;
						cout << "通过努力打工,获得了" << temp3 << "个金币" << endl;
					}
					
				}
				break;
			}
			case 3:
				break;
			case 4:
				break;
			case 5:
				break;
			default:
				break;
			}

		}
	
	}
	//4.根据各项参数,判定游戏结果
	/*女王 属性2000以上
	  王妃 属性总数1800-2000
	  女将军 属性总数1600-1800
	  皇家学院总裁 属性总数在1200-1600,智力最高,且体力>智力
	  高级祭司 属性总数在1200-1600,道德最高,且魅力>气质
	*/
	int sum = 0;
	for (int i = 0; i < 5; i++){
		sum += value_array_info[i];
	}
	if (sum > 2000){
		cout << "最优游戏结果:登基为女王陛下" << endl;
	}
	else if (sum > 1800 && sum < 2000){
		cout << "次优游戏结果:成为王妃" << endl;
	}
	else if (sum > 1200 && sum < 1600){
		int maxValue = value_array_info[0];
		int maxIndex = 0;
		for (int i = 0; i < 5; i++){
			if (maxValue < value_array_info[i])
			{
				maxValue = value_array_info[i];
				maxIndex = i;
			}
		}
		if ("道德" == value_array_baseinfo_names[maxIndex] && value_array_info[2]>value_array_info[4]){
			cout << "经过长期的训练,"<

 

你可能感兴趣的:(项目实战)