get_name.cpp
资源名称:get_name.rar [点击查看]
上传用户:shjxjhsbc
上传日期:2019-08-28
资源大小:1k
文件大小:4k
源码类别:
控制台编程
开发平台:
C/C++
- #include <string.h>
- #include <stdio.h>
- #include <conio.h>
- int na,nb,nc;//姓名繁体字笔画数
- int f_t;//天格
- int f_r;//人格
- int f_d;//地格
- int f_w;//外格
- int f_z;//总格
- int count = 0;
- //吉利的数理
- int i_fine[43] = {1,3,5,6,8,11,13,15,16,17,18,21,23,24,25,29,31,32,33,35,37,38,39,41,45,47,48,51,52,57,58,61,63,65,67,68,71,72,73,75,77,78,81};
- //好的三才相配(天格,人格,地格)
- int i_good[25] = {111,112,113,121,123,151,211,212,213,221,233,321,323,332,333,334,343,344,433,434,443,454,511,513,543};
- //好的人格与外格匹配
- int i_r_w[41] = {11,12,13,14,15,19,10,21,23,38,32,33,35,36,42,45,51,53,54,55,56,57,58,61,63,65,67,75,76,77,78,79,81,85,86,89,91,92,97,98,7};
- //五格的数理运势计算 ,按80取模
- int get_fine(int fn)
- {
- if(fn <= 81)
- {
- return fn;
- }
- else if(fn % 80 == 0)
- {
- return 80;
- }
- else
- {
- return (fn % 80);
- }
- }
- //计算五行:木1 火2 土3 金4 水5
- int get_f(int fn)
- {
- switch(fn % 10)
- {
- case 1:case 2:
- return 1;
- break;
- case 3:case 4:
- return 2;
- break;
- case 5:case 6:
- return 3;
- break;
- case 7:case 8:
- return 4;
- break;
- case 9:case 0:
- return 5;
- break;
- default:
- break;
- }
- }
- //计算天格,人格,地格五行相配值
- int get_good(int ft,int fr,int fd)
- {
- return get_f(ft)*100 + get_f(fr)*10 + get_f(fd);
- }
- //计算人格,外格相配值
- int get_r_w(int fr,int fw)
- {
- return (fr % 10)*10 + (fw % 10);
- }
- //判断数理好坏
- bool is_fine(int fn)
- {
- for(int i=0;i<43;i++)
- {
- if(fn==i_fine[i])
- {
- return true;
- }
- }
- return false;
- }
- //判断天人地相配好坏
- bool is_good(int fn)
- {
- for(int i=0;i<25;i++)
- {
- if(fn==i_good[i])
- {
- return true;
- }
- }
- return false;
- }
- //判断人格和外格相配好坏
- bool is_r_w(int fn)
- {
- for(int i=0;i<41;i++)
- {
- if(fn==i_r_w[i])
- {
- return true;
- }
- }
- return false;
- }
- //主体函数部分
- int main()
- {
- //首先输入姓的笔画数
- printf("请输入您的姓的笔画数(1-23):");
- scanf("%d",&na);
- printf("计算中,请等待...nn");
- //打印输出表头
- printf("您的姓笔画是:%dn",na);
- printf("下面是为您选出的可用的笔画组合n");
- printf("-------------------------------------------n");
- //用循环遍历名字
- for(nb=1;nb<=27;nb++)
- {
- for(nc=1;nc<=27;nc++)
- {
- //由姓名笔画计算五格
- f_t = na + 1;
- f_r = na + nb;
- f_d = nb + nc;
- f_w = nc + 1;
- f_z = na + nb +nc;
- //判断人地总外四格数理好坏
- if(!is_fine(get_fine(f_r)) || !is_fine(get_fine(f_d)) || !is_fine(get_fine(f_z)) || !is_fine(get_fine(f_w)))
- {
- continue;
- }
- //判断人格和外格相配好坏
- if(!is_r_w(get_r_w(f_r,f_w)))
- {
- continue;
- }
- //继续判断天人地三格相配好坏
- if(is_good(get_good(f_t,f_r,f_d)))
- {
- printf("您的名第一个字笔画是:%dn",nb);
- printf("您的名第二个字笔画是:%dn",nc);
- printf("-------------------------------------------n");
- count++;
- }
- }
- }
- printf("挑选程序运行完毕,总计有%d种选择n",count);
- getch();
- return 0;
- }