编程语言
首页 > 编程语言> > C++模拟化学物质合成程序《化学家》V1.0.5

C++模拟化学物质合成程序《化学家》V1.0.5

作者:互联网

最近换了好几个肝,终于做出了这个程序
特色:
它有高度自由性,可以自由搭配化学物质产生新的化合物
PS:因为还处在开发测试期,所以好多化学反应可能没有,以后我会努力的!
PS-2:有一个彩蛋
好了,上代码!(典 型 工 程 代 码)

#include<iostream>
#include<windows.h>
#include<stdio.h>
#include<conio.h>
#define cls system("cls"); 
#define c(p) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),p);
using namespace std;
string s1,s2,c1;
int f;
COORD pos;
void fanying();
void w(int x,int y)
{
    pos.X=x;
    pos.Y=y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
void b()
{
	system("color 4C");
	Sleep(30);
	system("color 0F");
	system("color 4C");
	Sleep(30);
	system("color 0F");
} 
void jiaocheng()
{
	int x;
	x=MessageBox(GetForegroundWindow(),"============气体============\nH2(氢气) O2(氧气) F2(氟气) N2(氮气) NH3(氨气)\nCO2(二氧化碳) CO(一氧化碳)\n============液体============\nH2O2(双氧水) HCl(盐酸) H2SO4(硫酸) \nH2O(水) C2H5OH(酒精) \n============固体============\nNaOH(氢氧化钠)\nCaO(氧化钙)\nP(磷) C6H6(苯) CuO(氧化铜)\nAl(OH)3(氢氧化铝) BaCl2(氯化钡)\nFeCl2(氯化亚铁) 3NaAlO2(偏铝酸钠)\n AlCl3(氯化铝) H2CO3(碳酸) BaO(氧化钡)\nAl(铝) Si(硅) C(碳) Mg(镁)","化学符号教程",1);
	x=MessageBox(GetForegroundWindow(),"如果想空出其中的一个栏位,请输入'NONE' \n如果你输入的化学元素是溶液,那就以 [化学元素名称]+H2O的格式输入\n例:KI(碘化钾)溶液 输入时表示为'KI+H2O'\n    作弊码:\nHELP:帮助\nELETAB:元素周期表","输入教程",1);
	x=MessageBox(GetForegroundWindow(),"部分化学反应:\n2H2O →通电→ 2H2↑O2↑\n H2O+CaO === H2O+Ca(OH)2\nH2+O2 =点燃= H2O\n3HCl+Al(OH)3 === 3H2O+AlCl3\nCaO+2HCl === CaCl2\n剩下的自己摸索哦","反应教程",1);
	printf("%d\n",x);
	fanying();
}
void e()
{
	cls;
	printf("H                                                  He\n");
	printf("Li Be                               B  C  N  O  F  Ne\n");
	printf("Na Mg                               Al Si P  S  Cl Ar\n");
	printf("K  Ca Sc Ti V  Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr\n");
	printf("Rb Sr Y  Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I  Xe\n");
	printf("Cs Ba    Hf Ta W  Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn\n");
	printf("Fr Ra    Lf Db Sg Bh Hs Mt Ds Rg Cn Nh Fl Mc Lv Ts Og\n");
	printf("La ~ Lu  La Ce Pr Nd Pm Sm Eu Gd Td Dy Ho Er Tm Yb Lu\n");
	printf("Ac ~ Lr  Ac Th Pa U  Np Pu (未搭建完成)");
	getch();
	fanying();
}
void fanying()
{
	while(1) 
	{
		cls;
		printf("请输入化学物质的化学式");
		c(10);
		printf("[如果想弹出教程,请输入'HELP']\n");
		c(15);
		printf("物质1:______________ [        ]\n");
		printf("物质2:______________ [        ]\n");
		printf("请选择反应:按1通电 按2混合 按3加热 按4降温 按5燃烧\n");
		printf("请选择反应:按6催化 \n");
		printf("[__]");
		w(8,1);
		cin>>s1;
		if(s1=="H2O")w(23,1),printf("水");
		else if(s1=="NONE")w(23,1),printf("空"),w(8,1),printf("____________");
		else if(s1=="H2SO4")w(23,1),printf("硫酸");
		else if(s1=="O2")w(23,1),printf("氧气");
		else if(s1=="H2")w(23,1),printf("氢气");
		else if(s1=="NaOH")w(23,1),printf("氢氧化钠");
		else if(s1=="NaCl")w(23,1),printf("氯化钠");
		else if(s1=="CaO")w(23,1),printf("氧化钙");
		else if(s1=="Cl2")w(23,1),printf("氯气");
		else if(s1=="C6H6")w(23,1),printf("苯");
		else if(s1=="C")w(23,1),printf("碳");
		else if(s1=="Na")w(23,1),printf("钠");
		else if(s1=="Mg")w(23,1),printf("镁");
		else if(s1=="Al")w(23,1),printf("铝");
		else if(s1=="CuO")w(23,1),printf("氧化铜");
		else if(s1=="HCl")w(23,1),printf("盐酸");
		else if(s1=="CaCO3")w(23,1),printf("碳酸钙");
		else if(s1=="H2CO3")w(23,1),printf("碳酸");
		else if(s1=="H2O2")w(23,1),printf("双氧水");
		else if(s1=="CO2")w(23,1),printf("二氧化碳");
		else if(s1=="CO")w(23,1),printf("一氧化碳");
		else if(s1=="HCl")w(23,1),printf("盐酸");
		else if(s1=="F2")w(23,1),printf("氟气");
		else if(s1=="C2H5OH")w(23,1),printf("酒精");
		else if(s1=="Al(OH)3")w(23,1),printf("氢氧化铝");
		else if(s1=="C2H5OH+H2O")w(23,1),printf("酒精溶液");
		else if(s1=="HClO")w(23,1),printf("次氯酸");
		else if(s1=="H2S")w(23,1),printf("硫化氢");
		else if(s1=="BaCl2")w(23,1),printf("氯化钡");
		else if(s1=="KMnO4")w(23,1),printf("高锰酸钾");
		else if(s1=="Si")w(23,1),printf("硅");
		else if(s1=="N2")w(23,1),printf("氮气");
		else if(s1=="BaO")w(23,1),printf("氧化钡");
		else if(s1=="NH3")w(23,1),printf("氨气");
		else if(s1=="Fe2O3")w(23,1),printf("三氧化二铁");
		else if(s1=="P")w(23,1),printf("磷");
		else if(s1=="ELETAB")e();
		else if(s1=="HELP")jiaocheng();
		else w(23,1),printf("未知物质");
		w(8,2);
		cin>>s2;
		if(s2=="H2O")w(23,2),printf("水");
		else if(s2=="NONE")w(23,2),printf("空"),w(8,2),printf("____________");
		else if(s2=="H2SO4")w(23,2),printf("硫酸");
		else if(s2=="O2")w(23,2),printf("氧气");
		else if(s2=="H2")w(23,2),printf("氢气");
		else if(s2=="NaOH")w(23,2),printf("氢氧化钠");
		else if(s2=="NaCl")w(23,2),printf("氯化钠");
		else if(s2=="CaO")w(23,2),printf("氧化钙");
		else if(s2=="Cl2")w(23,2),printf("氯气");
		else if(s2=="C6H6")w(23,2),printf("苯");
		else if(s2=="C")w(23,2),printf("碳");
		else if(s2=="Na")w(23,2),printf("钠");
		else if(s2=="Mg")w(23,2),printf("镁");
		else if(s2=="Al")w(23,2),printf("铝");
		else if(s2=="CuO")w(23,2),printf("氧化铜");
		else if(s2=="HCl")w(23,2),printf("盐酸");
		else if(s2=="CaCO3")w(23,2),printf("碳酸钙");
		else if(s2=="H2CO3")w(23,2),printf("碳酸");
		else if(s2=="H2O2")w(23,2),printf("双氧水");
		else if(s2=="CO2")w(23,2),printf("二氧化碳");
		else if(s2=="CO")w(23,2),printf("一氧化碳");
		else if(s2=="HCl")w(23,2),printf("盐酸");
		else if(s2=="F2")w(23,2),printf("氟气");
		else if(s2=="C2H5OH")w(23,2),printf("酒精");
		else if(s2=="Al(OH)3")w(23,2),printf("氢氧化铝");
		else if(s2=="C2H5OH+H2O")w(23,2),printf("酒精溶液");
		else if(s2=="HClO")w(23,2),printf("次氯酸");
		else if(s2=="H2S")w(23,2),printf("硫化氢");
		else if(s1=="BaCl2")w(23,2),printf("氯化钡");
		else if(s2=="KMnO4")w(23,2),printf("高锰酸钾");
		else if(s2=="Si")w(23,2),printf("硅");
		else if(s2=="N2")w(23,2),printf("氮气");
		else if(s2=="BaO")w(23,2),printf("氧化钡");
		else if(s2=="NH3")w(23,2),printf("氨气");
		else if(s2=="Fe2O3")w(23,2),printf("三氧化二铁");
		else if(s2=="P")w(23,2),printf("磷");
		else if(s2=="ELETAB")e();
		else if(s2=="HELP")jiaocheng();
		else w(23,2),printf("未知物质");
		w(1,5);
		cin>>f;
		if(f==6)
		{
			printf("请输入催化剂:_____  [    ]\n");
			w(14,6);
			cin>>c1;
			if(c1=="Ni")w(22,6),printf("镍");
			else if(c1=="MnO2")w(22,6),printf("二氧化锰");
			else w(22,6),printf("未知物质");
			w(1,7); 
		}
		if((s1=="H2O"&&s2=="H2O"&&f==1)||(s1=="NONE"&&s2=="H2O"&&f==1)||(s1=="H2O"&&s2=="NONE"&&f==1))
		{
			printf("本次反应生成物质: H2(氢气) O2(氧气)\n");
			printf("过程:2H2O →通电→ 2H2↑O2↑\n"); 
		} 
		else if((s1=="H2O"&&s2=="H2SO4"&&f==2)||(s1=="H2SO4"&&s2=="H2O"&&f==2))
		{
			printf("本次反应生成物质: H2SO4+H2O(稀硫酸)\n");
			printf("过程:H2O+H2SO4 → H2O+H2SO4\n"); 
		} 
		else if((s1=="C6H6"&&s2=="H2"&&f==6&&c1=="Ni")||(s1=="H2"&&s2=="C6H6"&&f==6&&c1=="Ni"))
		{
			printf("本次反应生成物质: C6H12(环已烷)\n");
			printf("过程:C6H6+3H2 →Ni△→ C6H12\n"); 
		} 
		else if((s1=="H2O"&&s2=="CaO"&&f==2)||(s1=="CaO"&&s2=="H2O"&&f==2))
		{
			printf("本次反应生成物质: Ca(OH)2(氢氧化钙)\n");
			printf("过程:H2O+CaO === H2O+Ca(OH)2\n"); 
		} 
		else if((s1=="Na"&&s2=="Cl"&&f==5)||(s1=="Cl"&&s2=="Na"&&f==5))
		{
			printf("本次反应生成物质: NaCl(氯化钠)\n");
			printf("过程:2Na+Cl2 =点燃= 2NaCl\n"); 
			printf("备注:钠在氯气中燃烧\n");
		} 
		else if((s1=="NaCl"&&s2=="H2O"&&f==2)||(s1=="H2O"&&s2=="NaCl"&&f==2))
		{
			printf("本次反应生成物质: NaCl+H2O(盐水)\n");
			printf("过程:NaCl+H2O === NaCl+H2O\n"); 
			printf("备注:氯化钠溶解于水中\n");
		} 
		else if((s1=="Fe"&&s2=="O2"&&f==5)||(s1=="O2"&&s2=="Fe"&&f==5))
		{
			printf("本次反应生成物质: Fe3O4(四氧化三铁)\n");
			printf("过程:3Fe+2O2 =点燃= Fe3O4\n"); 
			printf("备注:铁在氧气中燃烧\n");
		} 
		else if((s1=="CuO"&&s2=="H2"&&f==3)||(s1=="H2"&&s2=="CuO"&&f==3))
		{
			printf("本次反应生成物质: Cu(单质铜) H2O(水)\n");
			printf("过程:H2+CuO =高温= Cu+H2O\n"); 
			printf("备注:氢气还原氧化铜\n");
		} 
		else if((s1=="FATHER"&&s2=="LOVE"&&f==2)||(s1=="LOVE"&&s2=="FATHER"&&f==2))
		{
			cls; 
			printf("When you blow the conch, I will come to your side\n");
		} 
		else if((s1=="CaO"&&s2=="HCl"&&f==2)||(s1=="HCl"&&s2=="CaO"&&f==2))
		{
			printf("本次反应生成物质: CaCl2(氯化钙)\n");
			printf("过程:CaO+2HCl === CaCl2\n"); 
		} 
		else if((s1=="H2"&&s2=="O2"&&f==5)||(s1=="O2"&&s2=="H2"&&f==5))
		{
			b();
			printf("本次反应生成物质: H2O(水)\n");
			printf("过程:H2+O2 =点燃= H2O\n"); 
		} 
		else if((s1=="H2CO3"&&s2=="NONE"&&f==3)||(s1=="NONE"&&s2=="H2CO3"&&f==3)||(s1=="H2CO3"&&s2=="H2CO3"&&f==3))
		{
			printf("本次反应生成物质: H2O(水) CO2(二氧化碳)\n");
			printf("过程:H2CO3 === H2O+CO2\n"); 
		} 
		else if((s1=="H2O2"&&s2=="NONE"&&f==6)||(s1=="NONE"&&s2=="H2O2"&&f==6)||(s1=="H2O2"&&s2=="H2O2"&&f==6))
		{
			printf("本次反应生成物质: H2O(水) O2(氧气)\n");
			printf("过程:2H2O2 →MnO2△→ 2H2O+O2↑\n"); 
		} 
		else if((s1=="CO2"&&s2=="NaOH"&&f==7)||(s1=="NaOH"&&s2=="CO2"&&f==7))
		{ 
			printf("本次反应生成物质: NaHCO3(小苏打)\n");
			printf("过程:CO2+NaOH === NaHCO3\n"); 
		} 
		else if((s1=="F2"&&s2=="H2"&&f==2)||(s1=="H2"&&s2=="F2"&&f==2))
		{
			b();
			printf("本次反应生成物质: HF(氟化氢)\n");
			printf("过程:H2+F2 === 2HF\n"); 
		} 
		else if((s1=="Mg"&&s2=="O2"&&f==5)||(s1=="O2"&&s2=="Mg"&&f==5))
		{
			b();
			printf("本次反应生成物质: 2MgO(氧化镁)\n");
			printf("过程:2Mg+O2 =点燃= 2MgO\n"); 
			printf("备注:镁在空气中燃烧");
		} 
		else if((s1=="Al(OH)3"&&s2=="HCl"&&f==2)||(s1=="HCl"&&s2=="Al(OH)3"&&f==2))
		{
			printf("本次反应生成物质: AlCl3(氯化铝) 水(H2O)\n");
			printf("过程:3HCl+Al(OH)3 === 3H2O+AlCl3\n"); 
		} 
		else if((s1=="Cu"&&s2=="O2"&&f==3)||(s1=="O2"&&s2=="Cu"&&f==3))
		{ 
			printf("本次反应生成物质: CuO(氧化铜)\n");
			printf("过程:O2+2Cu =加热= 2CuO\n"); 
		} 
		else if((s1=="H2SO4"&&s2=="BaCl2"&&f==2)||(s1=="BaCl2"&&s2=="H2SO4"&&f==2))
		{ 
			printf("本次反应生成物质: BaSO4(硫酸钡) HCl(盐酸)\n");
			printf("过程:H2SO4+BaCl2 === BaSO4↓+2HCl\n"); 
		} 
		else if((s1=="H2O2"&&s2=="CaO"&&f==2)||(s1=="CaO"&&s2=="H2O2"&&f==2))
		{ 
			printf("本次反应生成物质: CaO2(过氧化钙) H2O(水)\n");
			printf("过程:CaO+H2O2 === CaO2+H2O\n"); 
		} 
		else if((s1=="C"&&s2=="CaO"&&f==3)||(s1=="CaO"&&s2=="C"&&f==3))
		{ 
			printf("本次反应生成物质: CaC2(碳化钙) CO(一氧化碳)\n");
			printf("过程:CaO+3C =高温= CaC2+CO\n"); 
		} 
		else if((s1=="HClO"&&s2=="H2S"&&f==2)||(s1=="H2S"&&s2=="HClO"&&f==2))
		{ 
			printf("本次反应生成物质: HCl(盐酸) S(硫) H2O(水)\n");
			printf("过程:HClO+H2S === HCl+S↓+H2O\n"); 
		} 
		else if((s1=="BaO"&&s2=="HCl"&&f==2)||(s1=="HCl"&&s2=="BaO"&&f==2))
		{ 
			printf("本次反应生成物质: BaCl2(氯化钡) H2O(水)\n");
			printf("过程:BaO+HCl === BaCl+H2O\n"); 
		} 
		else if((s1=="S"&&s2=="O2"&&f==5)||(s1=="O2"&&s2=="S"&&f==5))
		{ 
			printf("本次反应生成物质: SO2(二氧化硫)\n");
			printf("过程:S+O2 =点燃= SO2\n"); 
			printf("备注:硫粉在空气中燃烧");
		} 
		else if((s1=="C"&&s2=="Fe2O3"&&f==3)||(s1=="Fe2O3"&&s2=="C"&&f==3))
		{ 
			printf("本次反应生成物质: Fe(单质铁) CO(一氧化碳)\n");
			printf("过程:3C+ 2Fe2O3 =高温= 4Fe + 3CO2↑\n"); 
			printf("备注:焦炭还原氧化铁");
		} 
		else if((s1=="O2"&&s2=="P"&&f==5)||(s1=="P"&&s2=="O2"&&f==5))
		{ 
			printf("本次反应生成物质: P2O5(五氧化二磷)\n");
			printf("过程:4P+5O2 =点燃= 2P2O5\n"); 
			printf("备注:红磷在空气中燃烧");
		} 
		//CaO + 3C ==高温== CaC2 + CO
		//S+O2=点燃=SO2 
		// 焦炭还原氧化铁:3C+ 2Fe2O3 高温 4Fe + 3CO2↑ 
		//红磷在空气中燃烧:4P + 5O2 点燃 2P2O5 
		else
		{
			printf("本次未生成新物质![按任意键跳过]\n");
			printf("可能是反应不够健全,联系作者QQ:2099008248,他会尽快修改!\n");
		}
		getch();
	}
}
int main()
{
	system("title: 化学家 V1.0.5 Made By G.idea");
	c(15);
	system("color 9F");
	printf(">>欢迎来到化学实验室!<<\n  [-按任意键开始-]\n   [-按'1'教程-]\n版权归 TAN & FATHER 所有");
	int s=getch();
	int x;
	x=MessageBox(GetForegroundWindow(),"1,修复BUG\n2,加入了个4新的反应\n3,新物质:KMnO4,N2,Fe2O3\n 作者:TAN \n插件策划:TAN's Father\n光荣榜:\n{伴笙浮梦}为本游戏增加化学反应\n{呔!}为本游戏提供知识技术支持\n{Error 404}为游戏指出细节问题\n{Minecraft 电琦菌}为本游戏找出错误","更新公告(V1.0.5)",1);
	printf("%d\n",x);
	system("color 0F");
	if(s=='1')
	{
		cls;
		jiaocheng();
		fanying();
		cls;
	}
	else
	{
		fanying();
		cls;
	}
}

标签:化学物质,23,s2,s1,C++,else,V1.0,&&,printf
来源: https://blog.csdn.net/weixin_46679548/article/details/114025246