各位,今天继续给大家放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)