各位,今天继续给大家放C语言的源码,这次是用C语言实现的模拟彩票系统,很好玩哦~看图:
继续看,这是功能选择页面:
用户可以选择机选还是自选,完成选号,然后可以兑奖~ 快试试吧!
源代码如下(PS:对于学习的同学可不要直接复制交差哦!):
- /*********************************说明***********************************/
- // 模拟系统有自选机选两种模式,自选核心代码采用剩余接收函数(syjs())完成相应要求
- // 机选用随机函数生成. 程序中采用了了一些DOS口令,如Sleep,color,pause,title,time,date等函数
- // 程序基本完成模拟彩票系统的功能。
- // 登陆用户名为clang密码为任意六个字符
- /*****************************************************************************/
- // 程序:彩票35选7系统
- // 作者:c语言网(www.dotcpp.com)
- // 最后修改时间:2011.8.3
- // 版本:V2.0
- /*****************************************************************************/
- #include<stdio.h>
- #include<conio.h>
- #include<stdlib.h>
- #include<time.h>
- #include<string.h>
- #include<windows.h>
- #define sr srand((unsigned)time(0))
- void qbjx(); //全部机选
- void zixuan(); // 自选函数
- void jixuan(); // 机选函数
- void dh(); //登陆函数
- void by(); //备用函数
- void djsc(int n); //兑奖输出函数
- void syjs(int a[],int n); //剩余接收函数
- void px(int a[],int n); //排序函数
- int dj(int a[],int n); //兑奖函数
- int jsgq(); //自选接收关卡
- int dj(int a[],int n) /*兑奖函数*/
- {
- int o[7]={1,7,14,17,21,28,35};
- int x=0,i,j,k;
- for(i=0;i<7;i++)
- for(j=0;j<n;j++)
- if(o[i]==a[j] || o[i]==a[j]-48)
- x++;
- printf("本期的中奖号码为: ");
- for(k=0;k<7;k++)
- {
- Sleep(200);
- printf("%d ",o[k]);
- }
- printf("\n\n");
- return x;
- }
- void px(int a[],int n) /*排序函数*/
- {
- int i,j,temp;
- for(i=0;i<n-1;i++)
- for(j=0;j<n-i-1;j++)
- if(a[j]>a[j+1])
- {
- temp=a[j];
- a[j]=a[j+1];
- a[j+1]=temp;
- }
- }
- void syjs(int a[],int n) /*剩余接收函数-递归被调函数*/
- {
- int h,i;
- for(h=n;h<7;h++) /*范围判断*/
- {
- printf("请输入第%d个号码:",h+1);
- a[h]=jsgq();
- if(a[h]<36 && a[h]>0)
- {
- for(i=0;i<h;i++) /*重复判断*/
- {
- if(a[h]==a[h-i-1])
- {
- printf("您输入的号码已经存在!\n");
- syjs(a,h);break;
- }
- }
- }
- else
- {
- printf("您输入的范围有误!\n");
- syjs(a,h);break;
- }
- if(a[6]!=0) /* 根据第七个数是否被接收判断,下同*/
- break;
- else
- continue;
- }
- }
- int jsgq() //自选接收关卡
- {
- int x;
- char b[10]={'\0'}; //接收关卡
- scanf("%s",b);
- if(b[1]=='\0')
- x=(b[0]-48);
- else
- x=(b[0]-48)*10+b[1]-48;
- if(b[2]!='\0')
- x=100;
- return x;
- }
- void zixuan1()
- {
- int a[7]={0}; /* 数组a初始化*/
- int x,y,i,h; //其中X为正式存放临时变量
- printf("请输入第1个号码:");
- x=jsgq();
- printf("\b");
- if(0<x && x<36)
- {
- a[0]=x;
- for(h=1;h<7;h++) /*范围判断*/
- {
- printf("请输入第%d个号码:",h+1);
- a[h]=jsgq();
- if(a[h]>35 || a[h]<1)
- {
- printf("您输入的范围有误!\n");
- syjs(a,h);break;
- }
- for(i=0;i<h;i++) /*重复判断*/
- {
- if(a[h]==a[h-i-1])
- {
- printf("输入的已经存在!\n");
- syjs(a,h);break;
- }
- }
- if(a[6]!=0)
- break;
- else
- continue;
- }
- }
- else /*若第一个数接收失败,重新开始*/
- {
- printf("输入的范围有误!\n");
- system("pause");
- zixuan1();
- }
- printf("\n开始兑奖!\n");
- system("pause");
- printf("\n\n");
- px(a,7);
- printf("\n\n ");
- printf("您的自选号码为: ");
- for(i=0;i<7;i++)
- {
- Sleep(200);
- printf("%d ",a[i]);
- }
- printf("\n\n ");
- y=dj(a,7);
- djsc(y);
- }
- void zixuan() /*自选函数*/
- {
- system("color 8c");
- system("title 自选模式 --c语言(www.dotcpp.com)研究中心");
- printf("您已进入自选模式\n");
- printf("请输入七个自选号码:\n");
- zixuan1();
- }
- void jixuan() /*机选函数*/
- {
- char x;
- system("color 2f");
- system("title 机选模式 --c语言(www.dotcpp.com)研究中心");
- system("cls");
- printf("\n\n\n\n");
- printf(" ***************************************************\n");
- printf(" * *\n");
- printf(" * 选择机选模式: *\n");
- printf(" * 全部机选--请键入1 *\n");
- printf(" * *\n");
- printf(" * *\n");
- printf(" * 退出--请键入2 *\n");
- printf(" ***************************************************\n\n");
- for(;;)
- {
- x=getch();
- if(x=='1') {qbjx();break;}
- else if(x=='2'){by();break;}
- }
- system("pause");
- by();
- }
- void qbjx()
- {
- int j,k;
- char i;
- int y,m;
- char x;
- int a[9][7];
- printf("请输入要打印的组数(1-9):\n");
- printf("\n");
- for(;;)
- {
- i=getch();
- if(i>'0' && i<='9')
- {
- for(k=0;k<i-48;k++)
- {
- printf("<%3d >",k+1);
- for(j=0;j<7;j++)
- {
- a[k][j]=rand()%35+1;
- for(m=1;m<j+1;m++)
- {
- if(a[k][j]==a[k][j-m])
- {j--;break;}
- }
- }
- px(a[k],7); /*调用排序函数*/
- for(j=0;j<7;j++)
- printf(" %2d ",a[k][j]);
- printf("\n\n");
- }
- printf("您想要第几组号码兑奖?");
- printf("\n");
- for(;;)
- {
- x=getch();
- if(x>'0' && x<=i)
- {
- printf("\n\n ");
- Sleep(50);
- printf("您选择了第%d组号码:",x-48);
- for(j=0;j<7;j++)
- {
- Sleep(200);
- printf("%d ",a[x-48-1][j]);
- }
- printf("\n\n ");
- y=dj(a[x-48-1],7);
- djsc(y);break;
- }
- }break;
- } // if的
- } // for的
- }
- void dl() /*登陆界面*/
- {
- int i,j,m;
- char a[100],mm[7];
- printf("\n\n\n\n");
- printf(" ************************************************************************\n");
- printf(" * *\n");
- printf(" * 欢迎使用本系统,本系统分自选和机选两种选号方式供彩民使用,登陆后可选 *\n");
- printf(" * *\n");
- printf(" ************************************************************************\n");
- printf("\n\n");
- printf(" 请输入帐号: ");
- scanf("%s",a);
- printf(" 请输入六位密码:");
- for(j=0;j<6;j++)
- {
- mm[j]=getch();
- printf("*");
- }
- printf("\n");
- printf("正在验证,请稍候...\n");
- printf(">>>>>>>>");
- for(i=0;i<70;i++) /* 控制打印<*/
- {
- Sleep(50);
- printf(">");
- }
- printf("\n");
- if(strcmp(a,"clang")==0)
- {
- printf("---------------------------------登陆成功!----------------------------------\n");
- system("pause");
- system("cls");
- }
- else
- {
- for(m=3;m>0;m--)
- {
- system("cls");
- printf("\n\n\n\n");
- printf(" ************************************************************************\n");
- printf(" * *\n");
- printf(" * 欢迎使用本系统,本系统分自选和机选两种选号方式供彩民使用,登陆后可选 *\n");
- printf(" * *\n");
- printf(" ************************************************************************\n");
- printf("\n\n");
- printf("帐号或密码错误,%d秒后重新输入!",m);
- Sleep(1000);
- }
- system("cls");
- dl();
- }
- }
- void hy() /*欢迎界面函数*/
- {
- printf("\n\n\n\n\n\n\n");
- printf(" ============================================\n");
- printf(" ============================================\n");
- printf(" \n");
- printf(" *******欢迎使用本系统,请按任意键继续*******\n");
- printf(" \n");
- printf(" ============================================\n");
- printf(" ============================================\n");
- getch();
- system("cls");
- }
- void dh() /*导航界面*/
- {
- char x[10];
- system("color 5f");
- system("title 选择方式 --c语言(www.dotcpp.com)研究中心");
- printf("\n\n\n\n\n\n");
- printf("\n");;
- printf(" ============================================\n");
- printf(" 请选择选号方式: \n");
- printf(" \n");
- printf(" 自选----------请输入1 \n");
- printf(" 机选----------请输入2 \n");
- printf(" 退出----------请输入3 \n");
- printf(" ============================================\n\n");
- printf("请选择要进行的操作(1或2或3),然后回车:");
- scanf("%s",x);
- if(x[0]=='1') zixuan();
- else if(x[0]=='2')
- {
- printf("您已进入机选模式\n");
- jixuan();
- }
- else if(x[0]=='3') exit(0);
- else
- {
- system("cls");
- dh();
- }
- }
- void djsc(int n)
- {
- switch(n)
- {
- case 0: printf(" 很遗憾!您没能中奖!再接再厉! \n");break;
- case 1: printf(" 恭喜!有一个号码正确!\n");break;
- case 2: printf(" 恭喜!有两个号码正确!\n");break;
- case 3: printf(" 恭喜!您中了三个号码!\n");break;
- case 4: printf(" 恭喜恭喜!您中了四个号!\n");break;
- case 5: printf(" 恭喜恭喜!三等奖!\n");break;
- case 6: printf(" 恭喜恭喜! 二等奖!\n");break;
- default: printf(" 恭喜!恭喜!\n您的运气太好了! 恭喜您中大奖!\n");break;
- }
- printf("\n");
- printf("当前时间:");
- system("time /t"); system("date /t");
- }
- void by() /*备用函数*/
- {
- char x;
- printf("\n\n\n");
- printf(" ------------------------------------------- \n");
- printf(" | 您希望? | \n");
- printf(" | | \n");
- printf(" | 返回--------->请输入 q | \n");
- printf(" | | \n");
- printf(" | 退出--------->请按其他键 | \n");
- printf(" ------------------------------------------- \n");
- x=getch();
- if(x=='q')
- {
- system("cls");
- dh();
- }
- else exit(0);
- }
- int main() /*主函数*/
- {
- sr;
- system("title 彩票35选7系统 --c语言(www.dotcpp.com)研究中心");
- system("color 1f");
- hy();
- dl();
- dh();
- printf("\n\n\n");
- system("pause");
- by();
- return 0;
- }
- /////////////////////// c语言(www.dotcpp.com)研究中心 //////////////////////////
C语言研究中心(www.dotcpp.com)