梦幻情缘5.0-----我希望你好好的

如果注定要分离,我希望你离开后更快乐,这样我的成全才有价值。我将学着在心痛中微笑,让祝福成为我爱你唯一的方式。

【软件介绍】:

        面对心仪已久的MM或GG,是否想知道你们将来如何?梦幻情缘可以帮你测试一下你们的缘分。是一款娱乐性很强的测试游戏,软件充分体现了健康游戏的宗旨。软件提供了强大的测试功能,还有对测试结果的分析。相信你会喜欢的。^_^

【使用说明】:

        测试时,分别输入男生和女生的全名的拼音,输入时姓与名的每个字都要分开,这可是测试的关键哟!记住男生在左边,女生在右边。也可以只输入名字的各个字的首字母,以回车结束输入。

比如测试 令狐冲 和 任盈盈 的缘分,可以输入 ling hu chong ren ying ying
也可以输入
l h ch r y y  或者  L H C R Y Y  或者  L  h  C  r  Y  Y
即字母的大小写随便,但要保证每个人姓与名的每个字的首字母分开。

【软件原理】:

本软件测试的原理如图
把a~z共26个字母按顺序标上序号
   

 a   b  c   d  e   f   g  h   i    j   k   l  m 
75  76  77  78  79  80  81  82  83  84  85  86  87

 n   o  p  q   r   s   t   u   v  w  x   y   z
88  89  90  91  92  93  94  95  96  97  98  99  100

按照输入的两个人的名字拼音,每个字取首字母,并换算成对应的数字

如测试令狐冲和任盈盈的缘分,输入  ling hu chong ren ying ying
则软件自动取这两个名字的首字母并换算成对应的数字,如下所示:
                  l      h     c    r      y     y
                 86  82  77  92  99  99
然后按照下面的流程计算令狐冲和任盈盈的缘分:
先把这几个数字排成一列,然后拿第一个数和第二个数相加,如果它们的和小于10,则直接在第二行写出这个和数,如果大于等于10,则把这个和数减去10写在第二行第一个数后面(即大于10的数只写个位),然后拿第二个数和第三个数相加...,依次类推,第一轮做完后,换行继续,直到最后只剩下两个数字,如80,则两个人的缘分即为80%。
以测试令狐冲和任盈盈的缘分为例。先取他们名字各个字的首字母对应的数字,排成一列。,然后计算如下:

                 868277929999
                   44094611888
                     8493072966
                       232379152
                         55506067
                           0056663
                             051229
                               56341
                                 1975
                                   062
                                     68
即令狐冲和任盈盈的缘分为68%,怪不得两个人历经重重磨难最终还是走到了一起。呵呵. ^_^

【软件备注】:
      
         本软件仅供娱乐,请大家不必过于在意测试结果。^_^

【特别说明】:
         梦幻情缘系列软件从最初的1.0到现在的5.0一路走来,从1.0的英文版到3.0的中文版再到5.0的稳定版,编译器从TC到VC++ 2005,其间经历了一个多月的时间。此间软件经过几次大规模代码重写,不断修正bug,不断完善。梦幻情缘1.0到4.0我都发在了电脑爱好者论坛(http://bbs.cfan.com.cn),这次5.0的最终稳定版就发到了CSDN和朋友们分享。
希望朋友们喜欢。
        另外不足之处还请朋友们多提意见,非常感谢朋友们支持!
                                                                                                                               小雨(alxen)
                                                                                                                 E-mail:alxen@126.com
                                                                                                               http://alxen.blogbus.com
                                                                                                                                2006年12月5日

下载梦幻情缘5.0及全部源码:梦幻情缘5.0

梦幻情缘5.0 界面预览】:

梦幻情缘5.0 源码分享】:

#include<ctype.h>
#include<stdlib.h>
#include<conio.h>
#include<iostream>
#include<string>

#define NULL 0
void head(void);
char *love1();
void love2();

using namespace std;
void head(void)
{
 cout<<"/t/t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;
 cout<<"/t/t☆☆☆     梦  幻  情  缘 --------> 5.0     ☆☆☆"<<endl;
 cout<<"/t/t☆☆☆       By  小雨(alxen) 2006.12.01     ☆☆☆"<<endl;
 cout<<"/t/t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl<<endl;
 
}

string lovewrong2(string &s)             //字符合法性检查函数,检查是否只按下回车

{
 while(s[0]=='/0')
   {
     system("cls");
  head();
  cout<<"梦幻情缘缘分测试/n请在下面输入你们的名字拼音,用空格分开。/n如测试郭靖和黄蓉的缘分输入:guo jing huang rong"<<endl<<endl;
  cout<<"输入错误!你只输入了回车。你是在测试我么?呵呵.../n再来一遍。请输入两个人名字的拼音,用空格分隔:"<<endl;
     getline(cin,s);
  if (cin.fail())
      {
         cin.clear();
        
      }
   }
 return s;
}

string lovewrong(string &s)                          //字符合法性检查函数
{ int nitem;
C:  s=lovewrong2(s);
  for(nitem=0;s[nitem]!='/0';nitem++)
   while(!(isalpha(s[nitem]))&&s[nitem]!=' ')     //字符合法性检查,只接受字母和空格
   {
  system("cls");
  head(); 
  cout<<"梦幻情缘缘分测试/n请在下面输入你们的名字拼音,用空格分开。/n如测试郭靖和黄蓉的缘分输入:guo jing huang rong"<<endl<<endl;
  cout<<s<<endl;
  cout<<"输入错误!你可能输入了非法字符。请输入名字的拼音,用空格分隔。/n再来一遍。请输入两个人名字的拼音:"<<endl;
  getline(cin,s);
 goto C;
  
  
   }
   return s;
}


char *love1()                                        //取首字母函数
{
  string Name;
  char Hchar[9],*q=Hchar; //用字符串Name存放输入的全部字符,按中国人名字最长4个字计算。Hchar[9]存放提取出来的各个字拼音的首字母。
  int spanum,nitem;                    //变量spanum用于计算规范后的字符串中的空格数,nitem用于引用Name字符串元素
  head();                                   //head()
  cout<<"梦幻情缘缘分测试/n请在下面输入你们的名字拼音,用空格分开。/n如测试郭靖和黄蓉的缘分输入:guo jing huang rong"<<endl;
  getline(cin,Name);
A:   Name=lovewrong(Name);
  while(Name[0]==' ')   strcpy(&Name[0],&Name[1]);   //去掉首部空格(如果有的话)
  nitem=1;
  while(Name[nitem]!='/0')
  { while((Name[nitem]==' '&&Name[nitem+1]==' ')||(Name[nitem]==' '&&Name[nitem+1]=='/0'))
        strcpy(&Name[nitem],&Name[nitem+1]);nitem++;
  }                       //去掉输入姓名中间及尾部多余空格,使各个字之间只有一个空格,方便取首字符
  spanum=0;
  for(nitem=0;Name[nitem]!='/0';nitem++)
   if(Name[nitem]==' ')  
     { spanum++; }
  if(spanum>7||spanum<3)
    {
  system("cls");
  head(); 
  cout<<"梦幻情缘缘分测试/n请在下面输入你们的名字拼音,用空格分开。/n如测试郭靖和黄蓉的缘分输入:guo jing huang rong"<<endl<<endl;
  cout<<Name<<endl;
  cout<<"输入错误!可能你输入的字符个数不够,或者字符太多。/n再来一遍。请输入两个人名字的拼音:"<<endl;
  getline(cin,Name);
  goto A;

}    //输入字母个数有效性检查,按中国人名字最短两个字,最长4个字,取的首字母个数最少应为4个,最多为8个。如果规范输入后的空格多于7个或少于3个,则说明首字母多于8个或少于4个。不合法,返回重新输入
  *q=islower(Name[0]) ? Name[0]:Name[0]+32;  //把Name[50]数组中第一个字母变为小写,方便后面对应字母取数字
  q++;
  for(nitem=1;Name[nitem]!='/0';nitem++)
    {if(Name[nitem-1]==' ')                 //把Name[50]数组中每个拼音的首字母变为小写
       {
        *q=islower(Name[nitem]) ? Name[nitem]:Name[nitem]+32;
        q++;
    }
    }
  *q='/0';                          //取首字母结束,Hchar[9]数组尾部置空
  q=Hchar; 
  cout<<q;
  system("cls");
  head();
  cout<<"/n你输入的名字为:      ****  ";
  cout<<Name;
  cout<<"  ****";
  return(q);
}

void love2()                               //计算函数
{
 int a[9],b[28],*r=a,*s=b,i=0,j=0,k;       //a[9]存放各个首字母对应的图1中的数字
 char c[9],*q=c,*p;
 p=love1();                                 //c[9]存放提取出来的首字母
 while(*p!='/0')
 {
   *q=*p;
   p++;q++;i++;
 }                                        //把由love1函数传过来的b[9]中的首字母赋给c[9]
 *q='/0';
 q=c;
 while(*q!='/0')
 {
  *r=(*q-0-22);                           //求出c[9]中的字母对应的图1中的数字放入a[9]中
  q++;r++;
 }
 cout.put('/n');
 r=a;
 for(k=0;k<i;k++)                         //这个for语句把a[9]中的数字分别拆开,一位一位放入b[28]数组中
   {
     if(*r<100)
      {
       *s=*r/10;j++;
       *(s+1)=*r%10;j++;
       s+=2;r++;
      }
     else
      {
       *s=1;j++;
       *(s+1)=0;j++;
       *(s+2)=0;j++;
       s+=3;r++;
      }
   }
 r=a;
 s=b;
 while(j>2)                               //前面进行了一大堆,计算却这么短,经过运算,缘分就出来了
 {
  for(k=0;k<j;k++)
   {
    if((b[k]+b[k+1])<10)   b[k]=b[k]+b[k+1];
    else                   b[k]=b[k]+b[k+1]-10;
   }
  j--;
 }
 putchar('/n');
 cout<<"/t/t/t   ***************************"<<endl;
 cout<<"/t/t/t   ***************************"<<endl;
 cout<<"/t/t/t   **                       **"<<endl;
 cout<<"/t/t/t   **   你们的缘分为 ";
 cout<<b[0]<<b[1]<<"%    **"<<endl;
 cout<<"/t/t/t   **                       **"<<endl;
 cout<<"/t/t/t   ***************************"<<endl;
 cout<<"/t/t/t   ***************************"<<endl<<endl;
 
 if(b[0]==9)
   cout<<"☆☆☆☆好高的缘分呀!真是羡慕!呵呵!☆☆☆☆"<<endl;
 if(b[0]==8)
   cout<<"☆☆☆☆太棒了,快请我吃饭了!恭喜恭喜!☆☆☆☆"<<endl;
 if(b[0]==7)
   cout<<"☆☆☆☆很不错啦,好好把握机会啦!☆☆☆☆"<<endl;
 if(b[0]==6)
   cout<<"☆☆☆☆还好了,好好发展。祝你们天下有情人终成眷属!☆☆☆☆"<<endl;
 else if(b[0]<6)
   cout<<"☆☆☆☆不要灰心,相信自己!☆☆☆☆"<<endl;
}

void main(void)
{
  char m;
  system("color 0b");
  FILE *fp;
  char c;
  int flag=1;
  if((fp=fopen("help.dll","r"))==NULL)
   {flag=0;goto B;}
  while(!feof(fp))
  {c=fgetc(fp);
   c=c-8;
   putchar(c);
  }
  fclose(fp);
  if(flag)
  {
   cout<<"/n/n按任意键开始梦幻测试...";
   c=_getch();
   system("cls");
  }
  B:   love2();
  putchar('/n');
  cout<<"/t/t/t/t/t梦幻情缘(R) 版权所有  小雨/n/t/t/t/t/t/t"<<endl;
  cout<<"/n还要测试么?"<<endl;                            //提供循环测试
  cout<<"按 n 退出,按其他键继续。"<<endl;
  m=_getch();fflush(stdin);
  while(m!='n'&&m!='N')
  {
   system("cls");
   goto B;
  }
  exit(0);
  _getch();
}

下载梦幻情缘5.0及全部源码:梦幻情缘5.0
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值