版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./C语言游戏源代码简单的开机密码程序#include"conio.h"
#include"string.h"
#include"stdio.h"
voiderror<>
{window<12,10,68,10>;
textbackground<15>;
textcolor<132>;
clrscr<>;
cprintf<"fileorsystemerror!youcan'tenterthesystem!!!">;
while<1>;/*若有错误不能通过程序*/
}
voidlook<>
{FILE*fauto,*fbak;
char*pass="c:\\windows\\password.exe";/*本程序的位置*/
chara[25],ch;
char*au="autoexec.bat",*bname="hecfback.^^^";/*bname是autoexec.bat的备份*/
setdisk<2>;/*setcurrentlydiskc:*/
chdir<"\\">;/*setcurrentlydirectory\*/
fauto=fopen<au,"r+">;
if<fauto==NULL>
{fauto=fopen<au,"w+">;
if<fauto==NULL>error<>;}
fread<a,23,1,fauto>;/*读取autoexec.bat前23各字符*/
a[23]='\0';
if<strcmp<a,pass>==0>/*若读取的和pass指针一样就关闭文件,不然就添加*/
fclose<fauto>;
else
{fbak=fopen<bname,"w+">;
if<fbak==NULL>error<>;
fwrite<pass,23,1,fbak>;
fputc<'\n',fbak>;
rewind<fauto>;
while<!feof<fauto>>
{ch=fgetc<fauto>;
fputc<ch,fbak>;}
rewind<fauto>;
rewind<fbak>;
while<!feof<fbak>>
{ch=fgetc<fbak>;
fputc<ch,fauto>;}
fclose<fauto>;
fclose<fbak>;
remove<bname>;/*delbnamefile*/
}
}
voidpass<>
{char*password="88888888";
charinput[60];
intn;
while<1>
{window<1,1,80,25>;
textbackground<0>;
textcolor<15>;
clrscr<>;
n=0;
window<20,12,60,12>;
textbackground<1>;
textcolor<15>;
clrscr<>;
cprintf<"password:">;
while<1>
{input[n]=getch<>;
if<n>58>{putchar<7>;break;}/*若字符多于58个字符就结束本次输入*/
if<input[n]==13>break;
if<input[n]>=32&&input[n]<=122>/*若字符是数字或字母才算数*/
{putchar<'*'>;
n++;}
if<input[n]==8>/*删除键*/
if<n>0>
{cprintf<"\b\b">;
input[n]='\0';
n--;}
}
input[n]='\0';
if<strcmp<password,input>==0>
break;
else
{putchar<7>;
window<30,14,50,14>;
textbackground<15>;
textcolor<132>;
clrscr<>;
cprintf<"passworderror!">;
getch<>;}
}
}
main<>
{look<>;
pass<>;
}彩色贪吃蛇#include<graphics.h>
#include<stdlib.h>
#defineN200
#defineup0x4800
#definedown0x5000
#defineleft0x4b00
#defineright0x4d00
#defineesc0x011b
#defineY0x1579
#definen0x316e
intgamespeed;/*游戏速度*/
inti,key,color;
intscore=0;/*游戏分数*/
charcai48H[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x04,0x00,0x18,0x00,0x00,0x00,0x0E,0x00,
0x1C,0x00,0x00,0x00,0x1C,0x00,0x1C,0x00,
0x00,0x00,0x20,0x00,0x38,0x00,0x00,0x00,
0x40,0x00,0x78,0x00,0x00,0x01,0x80,0x40,
0x70,0x00,0x00,0x03,0x80,0xC0,0xE0,0x00,
0x00,0x07,0x80,0x80,0xC0,0x00,0x00,0x0E,
0x11,0x81,0xC0,0x00,0x00,0x08,0x61,0x01,
0x80,0x00,0x00,0x00,0x23,0x03,0x04,0x00,
0x00,0x02,0x02,0x00,0x06,0x00,0x00,0x1E,
0x04,0x00,0x0F,0x00,0x00,0x1C,0x1F,0x80,
0x1E,0x00,0x00,0x08,0x3F,0x80,0x3C,0x00,
0x00,0x00,0xFF,0x80,0x38,0x00,0x00,0x03,
0xFF,0x80,0x78,0x00,0x00,0x0F,0xF8,0x00,
0xF0,0x00,0x00,0x7F,0xF0,0x00,0xE0,0x00,
0x03,0xFF,0xFC,0x01,0x80,0x00,0x03,0xC0,
0xFF,0x01,0x03,0x80,0x01,0x01,0xFF,0x00,
0x03,0x80,0x00,0x01,0x3F,0x00,0x07,0x80,
0x00,0x02,0x11,0x00,0x07,0x00,0x00,0x00,
0x10,0x00,0x07,0x00,0x00,0x00,0x10,0x00,
0x0E,0x00,0x00,0x08,0x10,0x00,0x1C,0x00,
0x00,0x30,0x10,0x00,0x18,0x00,0x00,0x70,
0x10,0x00,0x30,0x00,0x01,0xE0,0x10,0x00,
0x70,0x00,0x03,0x80,0x10,0x00,0x60,0x00,
0x00,0x00,0x30,0x00,0xE0,0x00,0x00,0x00,
0xF0,0x01,0xC0,0x00,0x00,0x00,0x70,0x03,
0xC0,0x00,0x00,0x00,0x10,0x07,0x80,0x00,
0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,
0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x3C,
0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,
0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
charshe48H[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,
0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,
0x00,0x0E,0x00,0x00,0x00,0x03,0x00,0x07,
0x00,0x00,0x00,0x02,0x00,0x03,0x00,0x00,
0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x02,
0x00,0x00,0xF8,0x00,0x00,0x02,0x00,0x07,
0x86,0x00,0x00,0x02,0x00,0x18,0x03,0x00,
0x00,0x02,0x00,0x00,0x07,0x80,0x00,0x03,
0xF0,0x00,0x07,0x80,0x00,0x0F,0xFC,0x00,
0x0C,0x00,0x00,0x7E,0x3F,0x80,0x00,0x00,
0x01,0xFE,0x1F,0x80,0x00,0x00,0x01,0xE2,
0x39,0x8C,0x00,0x00,0x00,0xC2,0x30,0x08,
0x00,0x00,0x00,0xC2,0x60,0x08,0x00,0x00,
0x00,0xC3,0xE0,0x08,0x60,0x00,0x00,0x7F,
0xE0,0x01,0xE0,0x00,0x00,0x3F,0x80,0x1F,
0xE0,0x00,0x00,0x1E,0x00,0x1F,0x80,0x00,
0x00,0x1E,0x00,0x1F,0x00,0x00,0x00,0x02,
0x38,0x1E,0x00,0x00,0x00,0x07,0xFC,0x1C,
0x00,0x20,0x00,0x07,0xFC,0x18,0x00,0x20,
0x00,0x1F,0x0C,0x10,0x00,0x20,0x00,0x7C,
0x04,0x10,0x00,0x60,0x01,0xF0,0x00,0x10,
0x00,0x60,0x01,0xE0,0x00,0x08,0x00,0xF0,
0x00,0x80,0x00,0x08,0x03,0xF0,0x00,0x00,
0x00,0x07,0xFF,0xF0,0x00,0x00,0x00,0x07,
0xFF,0xF0,0x00,0x00,0x00,0x03,0xFF,0xE0,
0x00,0x00,0x00,0x01,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
chartun48H[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x3E,
0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,
0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,
0x03,0xC0,0x00,0x00,0x00,0x00,0x1F,0x00,
0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,
0x00,0x01,0xF8,0x00,0x00,0x00,0x00,0x03,
0xF8,0x00,0x40,0x00,0x00,0x00,0x06,0x07,
0xC0,0x00,0x00,0x00,0x07,0xFF,0xE0,0x00,
0x00,0x00,0x07,0xFF,0xE0,0x00,0x00,0x00,
0x0F,0xFF,0x80,0x00,0x00,0x00,0x7F,0xF8,
0x00,0x00,0x00,0x1F,0xFF,0xF8,0x00,0x00,
0x00,0x1F,0xFF,0xF8,0x00,0x00,0x00,0x1F,
0xFC,0x3C,0x00,0x00,0x00,0x0F,0xF8,0x0E,
0x00,0x00,0x00,0x04,0x70,0x07,0x00,0x00,
0x00,0x00,0x60,0x03,0x80,0x00,0x00,0x00,
0xC0,0x00,0xC0,0x00,0x00,0x01,0x80,0x00,
0x30,0x00,0x00,0x01,0x00,0x3C,0x18,0x00,
0x00,0x02,0x03,0xFF,0x0C,0x00,0x00,0x0C,
0x7F,0xFF,0x8E,0x00,0x00,0x18,0xFF,0xFF,
0xC7,0x80,0x00,0x78,0xFE,0x07,0x87,0xE0,
0x01,0xF0,0x70,0x07,0x03,0xF8,0x07,0xE0,
0x70,0x0E,0x03,0xFE,0x00,0x00,0x38,0x1E,
0x01,0xFE,0x00,0x00,0x3F,0xFE,0x00,0x0C,
0x00,0x00,0x1F,0xFE,0x00,0x00,0x00,0x00,
0x1F,0xFE,0x00,0x00,0x00,0x00,0x0F,0xFE,
0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
chardan48H[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFC,0x00,0x00,0x00,0x00,0x07,0xFF,
0x00,0x00,0x00,0x00,0x7F,0xC0,0x80,0x00,
0x00,0x03,0xFF,0x80,0x40,0x00,0x00,0x01,
0xF1,0x80,0x40,0x00,0x00,0x01,0x81,0x80,
0xE0,0x00,0x00,0x00,0x01,0x93,0xF0,0x00,
0x00,0x00,0x01,0xFF,0xF0,0x00,0x00,0x00,
0x21,0xFF,0xF0,0x00,0x00,0x00,0x21,0xF8,
0x00,0x00,0x00,0x00,0x61,0xC0,0x00,0x00,
0x00,0x00,0x61,0x80,0x00,0x00,0x00,0x00,
0xF3,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,
0x00,0x00,0x00,0x01,0xFF,0xC0,0x00,0x00,
0x00,0x03,0xFF,0xF8,0x00,0x00,0x00,0x02,
0x00,0xFC,0x00,0x00,0x00,0x04,0x02,0x1F,
0x00,0x00,0x00,0x08,0x03,0x01,0xC0,0x00,
0x00,0x38,0x03,0x00,0x7C,0x00,0x00,0xF8,
0x07,0xF8,0x3F,0xC0,0x01,0xF0,0x3F,0xFE,
0x3F,0xF8,0x03,0xC1,0xFF,0x0F,0x1F,0xF8,
0x00,0x01,0xE3,0x0F,0x0F,0xF0,0x00,0x01,
0xC3,0x0E,0x00,0x00,0x00,0x01,0x83,0xFC,
0x00,0x00,0x00,0x00,0xC7,0xF8,0x00,0x00,
0x00,0x00,0xFF,0xF8,0x00,0x00,0x00,0x00,
0x7F,0xF0,0x00,0x00,0x00,0x00,0x3F,0x03,
0x80,0x00,0x00,0x00,0x03,0x04,0x00,0x00,
0x00,0x00,0x03,0xF8,0x00,0x00,0x00,0x00,
0x1F,0xF8,0x20,0x00,0x00,0x00,0xFF,0xFF,
0xE0,0x00,0x00,0x07,0xFF,0x81,0xE0,0x00,
0x00,0x07,0xE0,0x00,0xE0,0x00,0x00,0x03,
0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
charzuo16H[]=
{
0x18,0xC0,0x18,0xC0,0x19,0x80,0x31,0xFE,
0x33,0xFE,0x76,0xC0,0xF0,0xFC,0xB0,0xFC,
0x30,0xC0,0x30,0xC0,0x30,0xFE,0x30,0xFE,
0x30,0xC0,0x30,0xC0,0x30,0xC0,0x00,0x00,
};
charzhe16H[]=
{
0x03,0x00,0x03,0x0C,0x1F,0xCC,0x1F,0xD8,
0x03,0x30,0xFF,0xFE,0xFF,0xFE,0x03,0x00,
0x0F,0xF8,0x3F,0xF8,0xEC,0x18,0xCF,0xF8,
0x0C,0x18,0x0F,0xF8,0x0F,0xF8,0x00,0x00,
};
chartian16H[]=
{
0x00,0x00,0x3F,0xFC,0x3F,0xFC,0x31,0x8C,
0x31,0x8C,0x31,0x8C,0x3F,0xFC,0x3F,0xFC,
0x31,0x8C,0x31,0x8C,0x31,0x8C,0x3F,0xFC,
0x3F,0xFC,0x30,0x0C,0x00,0x00,0x00,0x00,
};
charxue16H[]=
{
0x33,0x18,0x19,0x98,0x08,0xB0,0x7F,0xFC,
0x7F,0xFC,0x60,0x0C,0x1F,0xF0,0x1F,0xF0,
0x00,0xC0,0x7F,0xFC,0x7F,0xFC,0x01,0x80,
0x01,0x80,0x07,0x80,0x03,0x00,0x00,0x00,
};
charke16H[]=
{
0x00,0x00,0x0C,0x18,0xFD,0x98,0xF8,0xD8,
0x18,0x58,0xFE,0x18,0xFE,0x98,0x18,0xD8,
0x3C,0x58,0x7E,0x1E,0xDB,0xFE,0x9B,0xF8,
0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,
};
structFood/*定义结构体存储食物的属性*/
{
intx;/*食物的坐标*/
inty;
intyes;/*值为0表示屏幕上没有食物,值为1表示屏幕上有食物*/
intcolor;/*食物颜色*/
}food;
structSnake/*定义结构体存储蛇的属性*/
{
intx[N];/*每一节蛇的坐标*/
inty[N];
intcolor[N];/*存储每一节蛇的颜色*/
intnode;/*蛇的节数*/
intdirection;/*蛇移动的方向*/
intlife;/*蛇的生命,如果为1,蛇死,游戏结束*/
}snake;
voidinit<void>/*图形驱动*/
{
intdriver=DETECT,mode=0;
registerbgidriver<EGAVGA_driver>;
initgraph<&driver,&mode,"">;
}
voiddrawmat<char*mat,intmatsize,intx,inty,intcolor>/*汉字点阵*/
{
inti,j,k,m;
m=<matsize-1>/8+1;
for<j=0;j<matsize;j++>
for<i=0;i<m;i++>
for<k=0;k<8;k++>
if<mat[j*m+i]&<0x80>>k>>
putpixel<x+i*8+k,y+j,color>;
}
voidshowword<void>
{
/*调用汉字点阵输出程序,显示标题和作者信息*/
drawmat<cai48H,48,249,-4,7>;
drawmat<she48H,48,329,-4,7>;
drawmat<tun48H,48,409,-4,7>;
drawmat<dan48H,48,489,-4,7>;
drawmat<cai48H,48,250,-5,4>;
drawmat<she48H,48,330,-5,4>;
drawmat<tun48H,48,410,-5,4>;
drawmat<dan48H,48,490,-5,4>;
/*作者田学科*/
drawmat<zuo16H,16,515,465,7>;
drawmat<zhe16H,16,530,465,7>;
drawmat<tian16H,16,550,465,7>;
drawmat<xue16H,16,565,465,7>;
drawmat<ke16H,16,580,465,7>;
}
voiddraw<void>/*画出四周的墙*/
{
if<color==15>
color=0;
setcolor<++color>;
setlinestyle<SOLID_LINE,0,1>;
for<i=30;i<=600;i+=10>
{
rectangle<i,40,i+10,49>;
rectangle<i,451,i+10,460>;
}
for<i=40;i<450;i+=10>
{
rectangle<30,i,39,i+10>;
rectangle<601,i,610,i+10>;
}
}
voidprscore<void>
{
/*打印游戏分数*/
charstr[10];
setfillstyle<SOLID_FILL,YELLOW>;
bar<50,10,200,30>;
setcolor<6>;
settextstyle<0,0,2>;
sprintf<str,"score:%d",score>;
outtextxy<55,15,str>;
}
voidgameover<void>
{
cleardevice<>;/*清屏函数*/
for<i=0;i<snake.node;i++>/*画出蛇死时的位置*/
{
setcolor<snake.color[i]>;
rectangle<snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]+10>;
}
prscore<>;/*显示分数*/
draw<>;
showword<>;
settextstyle<0,0,6>;
setcolor<7>;
outtextxy<103,203,"GAMEOVER">;
setcolor<RED>;
outtextxy<100,200,"GAMEOVER">;
}
voidgameplay<void>/*玩游戏的具体过程*/
{
intflag,flag1;
randomize<>;
prscore<>;
gamespeed=50000;
food.yes=0;/*food.yes=0表示屏幕上没有食物*/
snake.life=1;/*snake.life=1表示蛇是活着的*/
snake.direction=4;/*表示蛇的初始方向为向右*/
snake.node=2;/*蛇的初始化为两节*/
snake.color[0]=2;/*两节蛇头初始化为绿色*/
snake.color[1]=2;
snake.x[0]=100;
snake.y[0]=100;
snake.x[1]=110;
snake.y[1]=100;
food.color=random<15>+1;
while<1>
{
while<1>
{
if<food.yes==0>/*如果蛇活着*/
{
while<1>
{
flag=1;
food.yes=1;
food.x=random<56>*10+40;
food.y=random<40>*10+50;
for<i=0;i<snake.node;i++>
{
if<food.x==snake.x[i]&&food.y==snake.y[i]>
flag=0;
}
if<flag>break;
}
}
if<food.yes>
{
setcolor<food.color>;
rectangle<food.x,food.y,food.x+10,food.y+10>;
}
for<i=snake.node-1;i>0;i-->
{
snake.x[i]=snake.x[i-1];
snake.y[i]=snake.y[i-1];
}
switch<snake.direction>
{
case1:
snake.y[0]-=10;
break;
case2:
snake.y[0]+=10;
break;
case3:
snake.x[0]-=10;
break;
case4:
snake.x[0]+=10;
break;
}
for<i=3;i<snake.node;i++>
{
if<snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]>
{
gameover<>;
snake.life=0;
break;
}
}
if<snake.x[0]<40||snake.x[0]>590||snake.y[0]<50||snake.y[0]>440>
{
gameover<>;
snake.life=0;
}
if<snake.life==0>
break;
if<snake.x[0]==food.x&&snake.y[0]==food.y>/*蛇吃掉食物*/
{
setcolor<0>;
rectangle<food.x,food.y,food.x+10,food.y+10>;
snake.x[snake.node]=-20;
snake.y[snake.node]=-20;
snake.color[snake.node]=food.color;
snake.node++;
food.yes=0;
food.color=random<15>+1;
score+=10;
prscore<>;
if<score%100==0&&score!=0>
{
for<i=0;i<snake.node;i++>/*画出蛇*/
{
setcolor<snake.color[i]>;
rectangle<snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]+10>;
}
sound<200>;
delay<50000>;
delay<50000>;
delay<50000>;
delay<50000>;
delay<50000>;
delay<50000>;
nosound<>;
gamespeed-=5000;
draw<>;
}
else
{
sound<500>;
delay<500>;
nosound<>;
}
}
for<i=0;i<snake.node;i++>/*画出蛇*/
{
setcolor<snake.color[i]>;
rectangle<snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]+10>;
}
delay<gamespeed>;
delay<gamespeed>;
flag1=1;
setcolor<0>;
rectangle<snake.x[snake.node-1],snake.y[snake.node-1],
snake.x[snake.node-1]+10,snake.y[snake.node-1]+10>;
if<kbhit<>&&flag1==1>/*如果没按有效键就重新开始循环*/
{
flag1=0;
key=bioskey<0>;
if<key==esc>
exit<0>;
elseif<key==up&&snake.direction!=2>
snake.direction=1;
elseif<key==down&&snake.direction!=1>
snake.direction=2;
elseif<key==left&&snake.direction!=4>
snake.direction=3;
elseif<key==right&&snake.direction!=3>
snake.direction=4;
}
}
if<snake.life==0>/*如果蛇死了就退出循环*/
break;
}
}
voidmain<void>
{
while<1>
{
color=0;
init<>;
cleardevice<>;
showword<>;
draw<>;
gameplay<>;
setcolor<15>;
settextstyle<0,0,2>;
outtextxy<200,400,"CONTINUE<Y/N>?">;
while<1>
{
key=bioskey<0>;
if<key==Y||key==n||key==esc>
break;
}
if<key==n||key==esc>
break;
}
closegraph<>;
}c语言实现移动电话系统#include<stdio.h>
#defineGRID-SIZE
5
#defineSELECTED
-1
/*低于矩阵中所有元素*/
#defineTRAFFIC-FILE
"traffic.dat"/*关于交通数据的文件*/
#defineNUM-TRANSMITTERS
10
/*可用的发射器数量*/
voidget-traffic-data<intcommuters[GRID-SIZE][GRID-SIZE],
intsalesforce[GRID-SIZE][GRID-SIZE],
intweekends[GRID-SIZE][GRID-SIZE];
voideprint-matrix[GRID-SIZE][GRID-SIZE];
int
main<void>
{
int
commuters[GRID-SIZE][GRID-SIZE];/*上午8:30的交通数据*/
int
salesforce[GRID-SIZE][GRID-SIZE];/*上午11:00的交通数据*/
int
weekend[GRID-SIZE][GRID-SIZE];/*周末交通数据*/
int
commuter-weight,
/*通勤人员数据的权重因子*/
sale-weight,/*营销人员数据的权重因子*/
weekend-weight;
/*周末数据的权重因子*/
int
location-i,
/*每个发射器的位置*/
location-j;
int
current-max;
/*和数据中当前的最大值*/
int
i,j,
/*矩阵的循环计数器*/
tr;
/*发射器的循环计数器*/
/*填入并显示交通数据*/
Get-traffic-data〔commuters,salesforce,weekend;
Printf〔"8:30A.M.WEEKDAY
TRAFFIC
DATA、\n\n"
print-matrix<commuters>;
printf<"\n\nWEEKENDTRAFFICDATA\n\n">;
print-matrix<salesforce>;
printf<"\n\nWEEKENDTRAFFICDATA\n\n">;
printf_matrix<weekeng>;
/*请用户输入权重因子*/
printf<"\n\nPleaseinputthefollowingvalue:\n">;
printf<"Weight<aninterger>=0>forthe8:30A.M.commuterdata>">
scanf<"%d",&commuter_weight>;
printf<"weight<aninteger>=0>fortheweekengdata>">;
scanf<"%d",&weekend_weight>;
scanf<"%d",&weekend_weight>;
/*计算并显示加权后求和的数据*/
for<i=0;i<GRID_SIZE;++i>
for<j=0;j<GRID_SIZE;++j>
summed_data[i][j]=commuter_weight*commuter[i][j]+
salesforce_weight*salesforce[i][j]+
weekend_weight*weekend[i][j];
printf<"\n\nTheweighted,summeddatais:\n\n">;
printf_matrix<summed_data>;
/*在summed_data矩阵中找出NUM_TRANSMITTERS个最大值,将坐标临时存储在location_i和location_j中,然后把最后的结果坐标输出*/
printf<"\n\nLocationsofthe%dtransmitters:\n\n",NUM_TRANSMITTERS>;
for<tr=1;tr<=NUM_TRANSMITTERS;++tr>{
current_max=SELECTED;/*以一个过低的值为起点开始查找*/
for<i=0;i<GRID_SIZE;++i>{
for<j=0;j<GRID_SIZE;++j>{
if<current_max<summed_data[i][j]>{
current_max=summed_data[i][j]>{
location_i=i;
location_j=j;
}
}
}
/*将选中的单元赋一较低的值以避免下次再选中这一元素,显示查找结果*/
summed_data[location_i][location_j]=SELECTED;
printf<"Transmitter%3d:atlocation%3d%3d\n",
tr,location_i,location_j>;
}
return<0>;
}
/*
*把TRAFFIC_FILE中的交通数据填充到3个GRID_SIZE×GRID_SIZE数组中
*/
void
get_traffic_data<intcommuters[GRID_SIZE],/*输出*/
intsalesforce[GRID_SIZE][GRID_SIZE],/*输出*/
intweekend[GRID_SIZE][GRID_SIZE],/*输出*/
{
inti,j;
/*循环计数器*/
FILE*fp;
/*文件指针*/
fq=fopen<TRAFFIC_FILE,"r">;
for<i=0;i<GRID_SIZE;++i>
for<j=0;j<GRID_SIZE;++j>
fscanf<fp,"%d",&commnters[i][j];
for<i=0;i<GRID_SIZE;++j>
for<j=0;j<GRID_SIZE;++j>
fscanf<fq,"%d",&weekend[i][j]>;
fclose<fq>;
}
/*
*显示一个GRID_SIZE×GRID_SIZE整数矩阵的内容
*/
void
print_matrix<intmatrix[GRID_SIZE][GRID_SIZE]>
{
inti,j;
/*循环计数器*/
for<i=0;i<GRID_SIZE;++j>
{
for<j=0;j<GRID_SIZE;++J>
printf<"%3d",matrix[i][j]>;
printf<"\n">;
}
}扑克牌游戏/*************************************
Copyright<C>2004-2005
vision,math,NJU.
FileName:guess_card.cpp
Author:vision
Version:1.0
Data:23-2-2004
Description:给你9张牌,然后让你在心中记住那张牌,然后电脑分组让你猜你记住的牌在第几组,然后猜出你记住的那张牌.
Other:出自儿童时的一个小魔术
History:修改历史
**************************************/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include<assert.h>
#defineCARDSIZE52
/*牌的总张数*/
#defineSUITSIZE13
/*一色牌的张数*/
/*扑克牌结构*/
typedefstructCard
{
charval;/*扑克牌面上的大小*/
int
kind:4;/*扑克牌的花色*/
}Card;
/*************************************************
Function:
//riffle
Description:
//洗牌,然后随机的得到9张牌,要求九张牌不能有重复.
Calls:
//
CalledBy:
//main<>
TableAccessed://被修改的表〔此项仅对于牵扯到数据库操作的程序
TableUpdated:
//被修改的表〔此项仅对于牵扯到数据库操作的程序
Input:
//Cardcard[]
牌结构,intsize
结构数组的大小
Output:
//
Return:
//void
Others:
//此函数修改card[]的值,希望得到九张随机牌
Bug:
//此函数有bug,有时会产生两个相同的牌,有待修订
*************************************************/
voidriffle<Card*cards,intsize>;
/*************************************************
Function:
//show
Description:
//显示数组的内容
Calls:
//
CalledBy:
//main<>
TableAccessed://被修改的表〔此项仅对于牵扯到数据库操作的程序
TableUpdated:
//被修改的表〔此项仅对于牵扯到数据库操作的程序
Input:
//Card*card
牌结构指针,intsize
结构数组的大小
Output:
//
Return:
//void
Others:
//
*************************************************/
voidshow<constCard*cards,intsize>;
/*************************************************
Function:
//grouping
Description:
//把9张牌分别放到3个数组中,每组3张,a.e分组
Calls:
//
CalledBy:
//main<>
TableAccessed://被修改的表〔此项仅对于牵扯到数据库操作的程序
TableUpdated:
//被修改的表〔此项仅对于牵扯到数据库操作的程序
Input:
//Card*card
牌结构指针,intsize
结构数组的大小
Output:
//
Return:
//void
Others:
//此函数修改*carr1,*carr2,*carr3的值
*************************************************/
voidgrouping<constCard*cards,Card*carr1,Card*carr2,Card*carr3>;
/*************************************************
Function:
//result_process
Description:
//用递归计算,所选的牌
Calls:
//rshift
CalledBy:
//main<>
TableAccessed://被修改的表〔此项仅对于牵扯到数据库操作的程序
TableUpdated:
//被修改的表〔此项仅对于牵扯到数据库操作的程序
Input:
//Card*carr1,Card*carr2,Card*carr3
Output:
//
Return:
//void
Others:
//此函数修改*carr1,*carr2,*carr3的值
*************************************************/
Card*result_process<Card*carr1,Card*carr2,Card*carr3,intcounter>;
/*************************************************
Function:
//rshift
Description:
//右移操作
Calls:
//
CalledBy:
//result_process
TableAccessed://被修改的表〔此项仅对于牵扯到数据库操作的程序
TableUpdated:
//被修改的表〔此项仅对于牵扯到数据库操作的程序
Input:
//Card*carr1,Card*carr2,Card*carr3,intcounter
Output:
//
Return:
//Card*
Others:
//此函数修改*carr1,*carr2,*carr3的值
*************************************************/
voidrshift<Card*carr1,Card*carr2,Card*carr3,intcounter>;
voidmain<>
{
Cardcards[9];/*存放九张牌*/
Cardcarr1[3];/*第一组牌,cardsarray1*/
Cardcarr2[3];/*第二组牌,cardsarray2*/
Cardcarr3[3];/*第三组牌,cardsarray3*/
intselect=0;/*玩家的选择*/
Card*selected_card;/*存放玩家所记住<选>的牌*/
intcounter=0;
riffle<cards,9>;/*洗牌,得到九张牌*/
puts<"请记住一张牌千万别告诉我!最多经过下面三次我与你的对话,我就会知道你所记的那张牌!">;
puts<"如果想继续玩,请准确的回答我问你的问题,根据提示回答!">;
puts<"请放心,我不会问你你选了哪张牌的!">;
grouping<cards,carr1,carr2,carr3>;/*把9张牌分别放到3个数组中,每组3张,a.e分组*/
show<carr1,3>;
show<carr2,3>;
show<carr3,3>;
puts<"请告诉我你记住的那张牌所在行数">;
select=getchar<>;
switch<select>/*分支猜你玩家记住的牌*/
{
case'1':
selected_card=result_process<carr1,carr2,carr3,counter>;
break;
case'2':
selected_card=result_process<carr2,carr3,carr1,counter>;
break;
case'3':
selected_card=result_process<carr3,carr1,carr2,counter>;
break;
default:
puts<"你在撒谎!不和你玩了!">;
fflush<stdin>;
getchar<>;
exit<0>;
}
if<selected_card==NULL>
{
fflush<stdin>;
getchar<>;
exit<0>;
}
puts<"你猜的牌为:">;
show<selected_card,1>;
puts<"我猜的对吧,哈哈~~~~">;
fflush<stdin>;
getchar<>;
}
/*riffle的原代码*/
voidriffle<Card*cards,intsize>
{
chardeck[CARDSIZE];/*临时数组,用于存储牌*/
unsignedintseed;/*最为产生随机数的种的*/
intdeckp=0;/*在牌的产生中起着指示作用*/
seed=<unsignedint>time<NULL>;
srand<seed>;
/*洗牌*/
while<deckp<CARDSIZE>
{
charnum=rand<>%CARDSIZE;
if<<memchr<deck,num,deckp>>==0>
{
assert<!memchr<deck,num,deckp>>;
deck[deckp]=num;
deckp++;
}
}
/*找9张牌给card*/
for<deckp=0;deckp<size;deckp++>
{
div_tcard=div<deck[deckp],SUITSIZE>;
cards[deckp].val="A23456789TJQK"[card.rem];/*把余数给card.val*/
cards[deckp].kind="3456"[card.quot];/*把商给card.kind*/
}
}
/*show的原代码,将会自动换行*/
voidshow<constCard*cards,intsize>
{
for<inti=0;i<size;i++>
{
printf<"%c%c
",cards[i].kind,cards[i].val>;
if<<i!=0>&&<<<i+1>%3>==0>>
puts<"">;
}
puts<"">;/*自动换行*/
}
/*grouping的原代码*/
voidgrouping<constCard*cards,Card*carr1,Card*carr2,Card*carr3>
{
inti=0;/*循环参数*/
/*分给carr1三个数*/
while<i<3>
{
carr1[i].val=cards[i].val;
carr1[i].kind=cards[i].kind;
i++;
}
/*分给carr2接下来的三个数*/
while<i<6>
{
ca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年铜陵市铜官区中小学新任教师公开招聘31名笔试参考题库及答案解析
- 吉林省四平市铁西区2025-2026学年初三下学期三模考试语文试题理试题含解析
- 2026届天津市蓟州区上仓镇初级中学初三下学期联考期末试卷语文试题含解析
- 江西省赣州市兴国县达标名校2025-2026学年初三3月线上考试英语试题含解析
- 安徽省亳州市涡阳县石弓中心校2025-2026学年高中毕业班第二次中考模拟考试英语试题含解析
- 医疗意外防范安全系统承诺书范文4篇
- 新产品研发及交付时间承诺函(5篇)
- 个人未来目标承诺书3篇
- 职场礼仪商务场合商务礼仪指导书
- 教育培训机构课程体系设计与开发指导
- 1万吨年塑料和化纤专用钛白粉生产线申请建设环境影响评估报告
- (正式版)DB51∕T 2890-2022 《川西高原苹果生产技术规程》
- 广东省广州市广附大联盟校2025-2026学年九年级上学期期末语文试题(含答案)(含解析)
- 勒索病毒应对方案
- 2025年四平市基层专干面试题库及答案
- 数学教师专题培训讲座
- 中广核新能源(深圳)有限公司招聘笔试题库2026
- (新教材)2026年春期部编人教版三年级下册语文 第三单元 核心素养教案(反思无内容)
- 共线生产风险管理制度
- 上海上海市宝山区2025年青年储备人才招聘28人笔试历年参考题库附带答案详解
- 2026年武汉武昌古城文旅投资发展集团有限公司招聘备考题库及答案详解参考
评论
0/150
提交评论