导航:首页 > 文件教程 > 3liang设计网站源码

3liang设计网站源码

发布时间:2025-07-16 12:34:23

1. c语言粮油进销存系统代码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>

//日期结构体
typedef struct
{
int year;
int month;
int day;
}DATE;
//商品结构体
//定义链表
typedef struct Node
{
long num;
char name[20];
char kind[20];
DATE pro_date;
int save_day;
int shuliang;
float jinjia;
float shoujia;
DATE sale_date;
struct Node *next;
}Node,*LinkList;
//申请函数
void apply()
{
int i,flag=1;
FILE *fp;
char name[20],key[20];
flushall();
printf("用户名(不能为空):");
scanf("%s",name);
flushall();
printf("密码(不能为空):");
for(i=0;i<=20;i++)
{
key[i]=getch();
if(key[i]==13)
{
key[i]='\0';
break;
}
printf("*");
}
fp=fopen("key.txt","w");
if(fp==NULL)
{
printf("the file can not open!");
flag=0;
exit(1);
}
fprintf(fp,"%s %s",name,key);
fclose(fp);
if(flag==1)
printf("\n申请成功,请登录!\n");
else
printf("\n申请失败,请重新申请!\n");
}
//登录函数
int load()
{
FILE *fp;
int i;
char name[20],key[20];
char name1[20],key1[20];
fp=fopen("key.txt","r");
fscanf(fp,"%s %s",name,key);
fclose(fp);
printf("用户名(不能为空):");
scanf("%s",name1);
flushall();
printf("密码(不能为空):");
for(i=0;i<=20;i++)
{
key1[i]=getch();
if(key1[i]==13)
{
key1[i]='\0';
break;
}
printf("*");
}
printf("\n");
if(strcmp(name1,name)==0&&strcmp(key1,key)==0)
{ printf("登陆成功!\n\n");return 1; }
else
{ printf("用户名或密码错误;请重新登录!"); return 0;}

}
//密码保护系统
void key()
{
int choice,c;
do
{ printf("\n****************************申请登录系统********************************\n\n");
printf(" 1: 新用户注册; \n\n");
printf(" 2: 新用户登录; \n\n");
printf("请选择:");
scanf("%d",&choice);
switch(choice)
{
case 1: apply(); break;
case 2: c=load();break;
}
}while(c!=1);
}
LinkList goods_input()
{

LinkList L;
Node *p1,*p2;
int i=1;
void file_write(Node *p);
int flag=1;
L=p2=(Node*)malloc(sizeof(Node));//为头节点分配存储空间
while(flag)
{
p1=(Node*)malloc(sizeof(Node));
printf("请输入第%d种商品的信息(商品号为0时,结束商品输入):\n\n",i++);
flushall();
printf("商品号:");
scanf("%ld",&p1->num);
if(p1->num!=0)
{
flushall();
printf("名称:");
scanf("%s",&p1->name);
flushall();
printf("类别:");
scanf("%s",&p1->kind);
flushall();
printf("生产日期(年月日用空格隔开):");
scanf("%d%d%d",&p1->pro_date.year,&p1->pro_date.month,&p1->pro_date.day);
flushall();
printf("保质期:");
scanf("%d",&p1->save_day);
flushall();
printf("商品数量:");
scanf("%d",&p1->shuliang);
flushall();
printf("进价:");
scanf("%f",&p1->jinjia);
flushall();
printf("售价:");
scanf("%f",&p1->shoujia);
flushall();
printf("销售日期(年月日用空格隔开):");
scanf("%d%d%d",&p1->sale_date.year,&p1->sale_date.month,&p1->sale_date.day);
p2->next=p1;
p2=p1;
}
else
{
flag=0;
break;
}
}
p2->next=NULL;
file_write(L);
free(p1);
return(L);
}
//将商品信息写入文件
void file_write(Node *p)
{

FILE *fp;
char filename[50];int c;
printf("是否保存?(保存按1;不保存按0):");
scanf("%d",&c);
if(c==1)
{ flushall();
printf("\n为了将你操作的信息保存下来,请输入要写入的文件的路经或文件:");
gets(filename);
fp=fopen(filename,"w");
if(fp==NULL)
{
printf("\n this file can not be open!");
exit(1);
}
p=p->next;
while(p!=NULL)
{
fprintf(fp,"%ld %s %s %d %d %d %d %d %f %f %d %d %d\n",p->num,p->name,p->kind,p->pro_date.year,p->pro_date.month,p->pro_date.day,p->save_day,p->shuliang,p->jinjia,p->shoujia,p->sale_date.year,p->sale_date.month,p->sale_date.day);
p=p->next;
}
fclose(fp);
printf("文件保存成功!");
}

}
//将文件中的信息读出的函数
LinkList file_read()
{
FILE *fp;
LinkList L;
Node *p1,*p2;
char filename[50];
int i,k=0,t=-2;
flushall();
printf("请输入要读取的文件的路径或文件名:");
gets(filename);
flushall();
printf("请输入商品的种类数:");
scanf("%d",&i);
fp=fopen(filename,"r");
L=p2=(Node*)malloc(sizeof(Node));//为头节点分配存储空间
while(t!=EOF&&k<i)
{
p1=(Node*)malloc(sizeof(Node));
t=fscanf(fp,"%ld %s %s %d %d %d %d %d %f %f %d %d %d",&p1->num,p1->name,p1->kind,&p1->pro_date.year,&p1->pro_date.month,&p1->pro_date.day,&p1->save_day,&p1->shuliang,&p1->jinjia,&p1->shoujia,&p1->sale_date.year,&p1->sale_date.month,&p1->sale_date.day);
p2->next=p1;
p2=p1;
k++;
}
p2->next=NULL;
fclose(fp);
return L;
}
//查找商品信息
void goods_find()
{
long snum;
int flag=0,t;
Node *p0,*p1;
p1=p0=file_read();
while(1)
{
flag=0;
printf("请输入你要查找的商品信息的商品号:");
scanf("%ld",&snum);
while( p0->next!=NULL)
{
p0=p0->next;
if(p0->num==snum)
{
flag=1;
break;
}
}
if(flag==1)
{ printf("该商品的信息如下:\n\n");
printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");
printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0->num,p0->name,p0->kind,p0->pro_date.year,p0->pro_date.month,p0->pro_date.day,p0->save_day,p0->shuliang,p0->jinjia,p0->shoujia,p0->sale_date.year,p0->sale_date.month,p0->sale_date.day);
}
else
printf("此商品号不存在,查找失败!\n");
p0=p1;
printf("结束查找按0,继续查找按1:");
scanf("%d",&t);
if(t==0)
break;
}
}
//修改商品信息
void goods_change()
{
Node *p1,*p0,*p2;
int c,flag=0,t;
long snum;
p2=p0=file_read();
while(1)
{
flag=0;
p1=p0->next;
if(p1==NULL) flag=0;
printf("请输入你要修改的商品信息的商品号:");
scanf("%ld",&snum);
while(p1!=NULL)
{
if(p1->num==snum)
{
flag=1;
break;
}
p1=p1->next;
}
if(flag==1)
{ printf(" 1:商品号;\n");
printf(" 2:商品名称;\n");
printf(" 3:商品类别;\n");
printf(" 4:商品生产日期;\n");
printf(" 5:商品保质期;\n");
printf(" 6:商品数量\n");
printf(" 7:商品进价\n");
printf(" 8:商品售价\n");
printf(" 9:商品销售日期\n");
printf(" 请选择修改的内容(0~9):");
scanf("%d",&c);
while(1)
{
if(c==1||c==2||c==3||c==4||c==5||c==6||c==7||c==8||c==9)break;
else
{
printf("\n输入有误,请重新输入!\n清选择(0~9):");
scanf("%d",&c);
if(c==1||c==2||c==3||c==4||c==5||c==6||c==7||c==8||c==9) break;
}
}
switch(c)
{
case 1:
{
printf("\n输入修改后的商品号:");
scanf("%ld",&p1->num);break;
}
case 2:
{
printf("输入修改后的商品名:");
scanf("%s",&p1->name);break;
}
case 3:
{
printf("输入修改后的商品类别:");
scanf("%s",&p1->kind);break;
}
case 4:
{
printf("输入修改后的商品生产日期(年月日之间用空格隔开):");
scanf("%d%d%d",&p1->pro_date.year,&p1->pro_date.month,&p1->pro_date.day);break;
}
case 5:
{
printf("输入修改后的商品保质期:");
scanf("%d",&p1->save_day);break;
}
case 6:
{
printf("输入修改后的商品数量:");
scanf("%d",&p1->shuliang);break;
}
case 7:
{
printf("输入修改后的商品进价:");
scanf("%f",&p1->jinjia);break;
}
case 8:
{
printf("输入修改后的商品售价:");
scanf("%f",&p1->shoujia);break;
}
case 9:
{
printf("输入修改后的商品销售日期(年月日之间用空格隔开):");
scanf("%d%d%d",&p1->sale_date.year,&p1->sale_date.month,&p1->sale_date.day);break;
}
}
printf("修改后的商品信息如下:\n\n");
printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");
printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p1->num,p1->name,p1->kind,p1->pro_date.year,p1->pro_date.month,p1->pro_date.day,p1->save_day,p1->shuliang,p1->jinjia,p1->shoujia,p1->sale_date.year,p1->sale_date.month,p1->sale_date.day);
}
else
printf("此商品号不存在,修改失败!\n");
p0=p2;
printf("结束修改按0,继续修改按1:");
scanf("%d",&t);
if(t==0)
break;
}
file_write(p0);
}
//插入商品
void goods_insert()
{
Node *p0,*p1,*p2,*p3;
int k,i,flag,t;
p0=file_read();
while(1)
{
p3=p2=p0;
k=0;
printf("请输入插入位置i的值(i的值小于商品的种类数):");
scanf("%d",&i);
while(p2!=NULL&&k<i-1)
{
p2=p2->next;
k=k+1;
}
if(k!=i-1) flag=0;
p1=(Node*)malloc(sizeof(Node));
printf("请输入要插入的商品号 名称 类别 生产日期 保质期 数量 进价 售价 销售日期:\n");
scanf("%ld%s%s%d%d%d%d%d%f%f%d%d%d",&p1->num,p1->name,p1->kind,&p1->pro_date.year,&p1->pro_date.month,&p1->pro_date.day,&p1->save_day,&p1->shuliang,&p1->jinjia,&p1->shoujia,&p1->sale_date.year,&p1->sale_date.month,&p1->sale_date.day);
p1->next=p2->next;
p2->next=p1;
flag=1;
if(flag==1)
printf("插入位置合理!\n");
else
printf("插入位置不合理!\n");
printf("结束插入按0,继续插入按1:");
scanf("%d",&t);
if(t==0)
break;
}
p0=p0->next;
printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");
while(p0!=NULL)
{
printf("--------------------------------------------------------------------------------\n");
printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0->num,p0->name,p0->kind,p0->pro_date.year,p0->pro_date.month,p0->pro_date.day,p0->save_day,p0->shuliang,p0->jinjia,p0->shoujia,p0->sale_date.year,p0->sale_date.month,p0->sale_date.day);
p0=p0->next;
}
file_write(p3);
}
//删除商品信息
void goods_delete()
{
long num;
Node *p,*p0,*p1,*p2;
int flag=0,t;
p0=file_read();
while(1)
{
flag=0;
p1=p2=p0;
p=p1->next;
if(p==NULL) flag=0;
printf("请输入你要删除的商品的商品号:");
scanf("%ld",&num);
while(p!=NULL)
{
if(p->num==num)
{
p1->next=p->next;
free(p);
flag=1;
break;
}
p1=p;
p=p->next;
flag=0;
}
if(flag==1)
printf("你已正确删除!\n");
else
printf("你输入的商品号不存在!\n");
printf("结束删除按0,继续删除按1:");
scanf("%d",&t);
if(t==0)
break;
}
p0=p0->next;
printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");
while(p0!=NULL)
{
printf("--------------------------------------------------------------------------------\n");
printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0->num,p0->name,p0->kind,p0->pro_date.year,p0->pro_date.month,p0->pro_date.day,p0->save_day,p0->shuliang,p0->jinjia,p0->shoujia,p0->sale_date.year,p0->sale_date.month,p0->sale_date.day);
p0=p0->next;
}

file_write(p2);
}
//商品信息排序
void goods_rank()
{
Node *p,*q,*k,*L,t;
Node *p0;
int flag=0;
L=file_read();
p=L->next;
while(p->next)
{
k=p;
q=p->next;
while(q)
{
if((k->shuliang)>(q->shuliang))
k=q;
q=q->next;
}
if(p!=k)
{
t=*p;
*p=*k;
*k=t;
t.next=p->next;
p->next=k->next;
k->next=t.next;
flag=1;
}
p=p->next;
}
if(flag=1)
printf("按商品数量从小到大排序成功!\n");
else
printf("按商品数量从小到大排序失败!\n");
p0=L;
p0=p0->next;
printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");
while(p0!=NULL)
{
printf("--------------------------------------------------------------------------------\n");
printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0->num,p0->name,p0->kind,p0->pro_date.year,p0->pro_date.month,p0->pro_date.day,p0->save_day,p0->shuliang,p0->jinjia,p0->shoujia,p0->sale_date.year,p0->sale_date.month,p0->sale_date.day);
p0=p0->next;
}

file_write(L);
}
//商品信息统计
void goods_tongji()
{
Node *p0,*p1;
int liang_sum=0;
float lirun_sum=0;
p0=p1=file_read();
p0=p0->next;
printf(" 商品信息统计表 \n\n");
printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");
while(p0!=NULL)
{
printf("--------------------------------------------------------------------------------\n");
printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0->num,p0->name,p0->kind,p0->pro_date.year,p0->pro_date.month,p0->pro_date.day,p0->save_day,p0->shuliang,p0->jinjia,p0->shoujia,p0->sale_date.year,p0->sale_date.month,p0->sale_date.day);
p0=p0->next;
}
printf("\n");
p1=p1->next;
while(p1!=NULL)
{
liang_sum+=p1->shuliang;
// printf("商品数量:%d\n",p1->shuliang);
lirun_sum+=((p1->shoujia)-(p1->jinjia))*(p1->shuliang);
p1=p1->next;
}
printf("迄今,商店里还有%d件商品;\n总利润为%0.2f元;\n",liang_sum,lirun_sum);
if(liang_sum<=200)
printf("注意:商店里的商品偏少,请适当进货!\n");
else if(liang_sum>1100)
printf("注意:商店里积压的货物太多,请及时清仓!\n");
else
printf("\n商品总件数大于200件,小于1100件,无需进货,清仓!\n");
}
main()
{
int c;
key();
do
{
printf("请按任意键返回主菜单!");
getch();
system("cls");
printf("\n****************************欢迎进入商场店面管理系统****************************\n\n");
printf(" 1,录入商品信息;\n");
printf(" 2,查找商品信息;\n");
printf(" 3,修改商品信息;\n");
printf(" 4,插入商品信息;\n");
printf(" 5,删除商品信息;\n");
printf(" 6,商品信息排序;\n");
printf(" 7,统计商品信息;\n");
printf(" 0,退出系统;\n");
printf(" 请选择(0~7):");
scanf("%d",&c);
while(1)
{
if(c==1||c==2||c==3||c==4||c==5||c==6||c==7||c==0)break;
else
{
printf("\n输入有误,请重新输入!\n清选择(0~7):");
scanf("%d",&c);
if(c==1||c==2||c==3||c==4||c==5||c==6||c==7||c==0) break;
}
}
switch(c)
{
case 1:goods_input();break;
case 2:goods_find();break;
case 3:goods_change();break;
case 4:goods_insert();break;
case 5:goods_delete();break;
case 6:goods_rank();break;
case 7:goods_tongji();break;
case 0 :break;
}
}while(c!=0);
}

2. 求C语言小程序源代码,300行左右

黑白棋游戏
#include "graphics.h" /*图形系统头文件*/
#define LEFT 0x4b00 /*光标左键值*/
#define RIGHT 0x4d00 /*光标右键值*/
#define DOWN 0x5000 /*光标下键值*/
#define UP 0x4800 /*光标上键值*/
#define ESC 0x011b /* ESC键值*/
#define ENTER 0x1c0d /* 回车键值*/
int a[8][8]={0},key,score1,score2;/*具体分数以及按键与存放棋子的变量*/
char playone[3],playtwo[3];/*两个人的得分转换成字符串输出*/
void playtoplay(void);/*人人对战函数*/
void DrawQp(void);/*画棋盘函数*/
void SetPlayColor(int x);/*设置棋子第一次的颜色*/
void MoveColor(int x,int y);/*恢复原来棋盘状态*/
int QpChange(int x,int y,int z);/*判断棋盘的变化*/
void DoScore(void);/*处理分数*/
void PrintScore(int n);/*输出成绩*/
void playWin(void);/*输出胜利者信息*/
/******主函数*********/
void main(void)
{
int gd=DETECT,gr;
initgraph(&gd,&gr,"c:\\tc"); /*初始化图形系统*/
DrawQp();/*画棋盘*/
playtoplay();/*人人对战*/
getch();
closegraph();/*关闭图形系统*/
}
void DrawQp()/*画棋盘*/
{
int i,j;
score1=score2=0;/*棋手一开始得分都为0*/
setbkcolor(BLUE);
for(i=100;i<=420;i+=40)
{
line(100,i,420,i);/*画水平线*/
line(i,100,i,420); /*画垂直线*/
}
setcolor(0);/*取消圆周围的一圈东西*/
setfillstyle(SOLID_FILL,15);/*白色实体填充模式*/
fillellipse(500,200,15,15); /*在显示得分的位置画棋*/
setfillstyle(SOLID_FILL,8); /*黑色实体填充模式*/
fillellipse(500,300,15,15);
a[3][3]=a[4][4]=1;/*初始两个黑棋*/
a[3][4]=a[4][3]=2;/*初始两个白棋*/
setfillstyle(SOLID_FILL,WHITE);
fillellipse(120+3*40,120+3*40,15,15);
fillellipse(120+4*40,120+4*40,15,15);
setfillstyle(SOLID_FILL,8);
fillellipse(120+3*40,120+4*40,15,15);
fillellipse(120+4*40,120+3*40,15,15);
score1=score2=2; /*有棋后改变分数*/
DoScore();/*输出开始分数*/
}
void playtoplay()/*人人对战*/
{
int x,y,t=1,i,j,cc=0;
while(1)/*换棋手走棋*/
{
x=120,y=80;/*每次棋子一开始出来的坐标,x为行坐标,y为列坐标*/
while(1) /*具体一个棋手走棋的过程*/
{
PrintScore(1);/*输出棋手1的成绩*/
PrintScore(2);/*输出棋手2的成绩*/
SetPlayColor(t);/*t变量是用来判断棋手所执棋子的颜色*/
fillellipse(x,y,15,15);
key=bioskey(0);/*接收按键*/
if(key==ESC)/*跳出游戏*/
break;
else
if(key==ENTER)/*如果按键确定就可以跳出循环*/
{
if(y!=80&&a[(x-120)/40][(y-120)/40]!=1
&&a[(x-120)/40][(y-120)/40]!=2)/*如果落子位置没有棋子*/
{
if(t%2==1)/*如果是棋手1移动*/
a[(x-120)/40][(y-120)/40]=1;
else/*否则棋手2移动*/
a[(x-120)/40][(y-120)/40]=2;
if(!QpChange(x,y,t))/*落子后判断棋盘的变化*/
{
a[(x-120)/40][(y-120)/40]=0;/*恢复空格状态*/
cc++;/*开始统计尝试次数*/
if(cc>=64-score1-score2) /*如果尝试超过空格数则停步*/
{
MoveColor(x,y);
fillellipse(x,y,15,15);
break;
}
else
continue;/*如果按键无效*/
}
DoScore();/*分数的改变*/
break;/*棋盘变化了,则轮对方走棋*/
}
else/*已经有棋子就继续按键*/
continue;
}
else /*四个方向按键的判断*/
if(key==LEFT&&x>120)/*左方向键*/
{
MoveColor(x,y);
fillellipse(x,y,15,15);
SetPlayColor(t);
x-=40;
fillellipse(x,y,15,15);
}
else
if(key==RIGHT&&x<400&&y>80)/*右方向键*/
{
MoveColor(x,y);
fillellipse(x,y,15,15);
SetPlayColor(t);
x+=40;
fillellipse(x,y,15,15);
}
else
if(key==UP&&y>120)/*上方向键*/
{
MoveColor(x,y);
fillellipse(x,y,15,15);
SetPlayColor(t);
y-=40;
fillellipse(x,y,15,15);
}
else
if(key==DOWN&&y<400)/*下方向键*/
{
MoveColor(x,y);
fillellipse(x,y,15,15);
SetPlayColor(t);
y+=40;
fillellipse(x,y,15,15);
}
}
if(key==ESC)/*结束游戏*/
break;
if((score1+score2)==64||score1==0||score2==0)/*格子已经占满或一方棋子为0判断胜负*/
{
playWin();/*输出最后结果*/
break;
}
t=t%2+1; /*一方走后,改变棋子颜色即轮对方走*/
cc=0; /*计数值恢复为0*/
} /*endwhile*/
}
void SetPlayColor(int t)/*设置棋子颜色*/
{
if(t%2==1)
setfillstyle(SOLID_FILL,15);/*白色*/
else
setfillstyle(SOLID_FILL,8);/*灰色*/
}
void MoveColor(int x,int y)/*走了一步后恢复原来格子的状态*/
{
if(y<100)/*如果是从起点出发就恢复蓝色*/
setfillstyle(SOLID_FILL,BLUE);
else/*其他情况如果是1就恢复白色棋子,2恢复黑色棋子,或恢复蓝色棋盘*/
switch(a[(x-120)/40][(y-120)/40])
{
case 1:
setfillstyle(SOLID_FILL,15);break; /*白色*/
case 2:
setfillstyle(SOLID_FILL,8);break; /*黑色*/
default:
setfillstyle(SOLID_FILL,BLUE); /*蓝色*/
}
}
int QpChange(int x,int y,int t)/*判断棋盘的变化*/
{
int i,j,k,kk,ii,jj,yes;
yes=0;
i=(x-120)/40; /*计算数组元素的行下标*/
j=(y-120)/40; /*计算数组元素的列下标*/
SetPlayColor(t);/*设置棋子变化的颜色*/
/*开始往8个方向判断变化*/
if(j<6)/*往右边*/
{
for(k=j+1;k<8;k++)
if(a[i][k]==a[i][j]||a[i][k]==0)/*遇到自己的棋子或空格结束*/
break;
if(a[i][k]!=0&&k<8)
{
for(kk=j+1;kk<k&&k<8;kk++)/*判断右边*/
{
a[i][kk]=a[i][j]; /*改变棋子颜色*/
fillellipse(120+i*40,120+kk*40,15,15);
}
if(kk!=j+1) /*条件成立则有棋子改变过颜色*/
yes=1;
}
}
if(j>1)/*判断左边*/
{
for(k=j-1;k>=0;k--)
if(a[i][k]==a[i][j]||!a[i][k])
break;
if(a[i][k]!=0&&k>=0)
{
for(kk=j-1;kk>k&&k>=0;kk--)
{
a[i][kk]=a[i][j];
fillellipse(120+i*40,120+kk*40,15,15);
}
if(kk!=j-1)
yes=1;
}
}
if(i<6)/*判断下边*/
{
for(k=i+1;k<8;k++)
if(a[k][j]==a[i][j]||!a[k][j])
break;
if(a[k][j]!=0&&k<8)
{
for(kk=i+1;kk<k&&k<8;kk++)
{
a[kk][j]=a[i][j];
fillellipse(120+kk*40,120+j*40,15,15);
}
if(kk!=i+1)
yes=1;
}
}
if(i>1)/*判断上边*/
{
for(k=i-1;k>=0;k--)
if(a[k][j]==a[i][j]||!a[k][j])
break;
if(a[k][j]!=0&&k>=0)
{
for(kk=i-1;kk>k&&k>=0;kk--)
{
a[kk][j]=a[i][j];
fillellipse(120+kk*40,120+j*40,15,15);
}
if(kk!=i-1)
yes=1;
}
}
if(i>1&&j<6)/*右上*/
{
for(k=i-1,kk=j+1;k>=0&&kk<8;k--,kk++)
if(a[k][kk]==a[i][j]||!a[k][kk])
break;
if(a[k][kk]&&k>=0&&kk<8)
{
for(ii=i-1,jj=j+1;ii>k&&k>=0;ii--,jj++)
{
a[ii][jj]=a[i][j];
fillellipse(120+ii*40,120+jj*40,15,15);
}
if(ii!=i-1)
yes=1;
}
}
if(i<6&&j>1)/*左下*/
{
for(k=i+1,kk=j-1;k<8&&kk>=0;k++,kk--)
if(a[k][kk]==a[i][j]||!a[k][kk])
break;
if(a[k][kk]!=0&&k<8&&kk>=0)
{
for(ii=i+1,jj=j-1;ii<k&&k<8;ii++,jj--)
{
a[ii][jj]=a[i][j];
fillellipse(120+ii*40,120+jj*40,15,15);
}
if(ii!=i+1)
yes=1;
}
}
if(i>1&&j>1)/*左上*/
{
for(k=i-1,kk=j-1;k>=0&&kk>=0;k--,kk--)
if(a[k][kk]==a[i][j]||!a[k][kk])
break;
if(a[k][kk]!=0&&k>=0&&kk>=0)
{
for(ii=i-1,jj=j-1;ii>k&&k>=0;ii--,jj--)
{
a[ii][jj]=a[i][j];
fillellipse(120+ii*40,120+jj*40,15,15);
}
if(ii!=i-1)
yes=1;
}
}
if(i<6&&j<6)/* 右下*/
{
for(k=i+1,kk=j+1;kk<8&&kk<8;k++,kk++)
if(a[k][kk]==a[i][j]||!a[k][kk])
break;
if(a[k][kk]!=0&&kk<8&&k<8)
{
for(ii=i+1,jj=j+1;ii<k&&k<8;ii++,jj++)
{
a[ii][jj]=a[i][j];
fillellipse(120+ii*40,120+jj*40,15,15);
}
if(ii!=i+1)
yes=1;
}
}
return yes;/*返回是否改变过棋子颜色的标记*/
}
void DoScore()/*处理分数*/
{
int i,j;
score1=score2=0;/*重新开始计分数*/
for(i=0;i<8;i++)
for(j=0;j<8;j++)
if(a[i][j]==1)/*分别统计两个人的分数*/
score1++;
else
if(a[i][j]==2)
score2++;
}
void PrintScore(int playnum)/*输出成绩*/
{
if(playnum==1)/*清除以前的成绩*/
{
setfillstyle(SOLID_FILL,BLUE);
bar(550,100,640,400);
}
setcolor(RED);
settextstyle(0,0,4);/*设置文本输出样式*/
if(playnum==1)/*判断输出哪个棋手的分,在不同的位置输出*/
{
sprintf(playone,"%d",score1);
outtextxy(550,200,playone);
}
else
{
sprintf(playtwo,"%d",score2);
outtextxy(550,300,playtwo);
}
setcolor(0);
}
void playWin()/*输出最后的胜利者结果*/
{
settextstyle(0,0,4);
setcolor(12);
if(score2>score1)/*开始判断最后的结果*/
outtextxy(100,50,"black win!");
else
if(score2<score1)
outtextxy(100,50,"white win!");
else
outtextxy(60,50,"you all win!");
}

五子棋游戏
/*五子棋*/
#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
#include<bios.h>
#include<conio.h>

#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
#define SPACE 0x3920

#define BILI 20
#define JZ 4
#define JS 3
#define N 19

int box[N][N];
int step_x,step_y ;
int key ;
int flag=1 ;

void draw_box();
void draw_cicle(int x,int y,int color);
void change();
void judgewho(int x,int y);
void judgekey();
int judgeresult(int x,int y);
void attentoin();

void attention()
{
char ch ;
window(1,1,80,25);
textbackground(LIGHTBLUE);
textcolor(YELLOW);
clrscr();
gotoxy(15,2);
printf("游戏操作规则:");
gotoxy(15,4);
printf("Play Rules:");
gotoxy(15,6);
printf("1、按左右上下方向键移动棋子");
gotoxy(15,8);
printf("1. Press Left,Right,Up,Down Key to move Piece");
gotoxy(15,10);
printf("2、按空格确定落棋子");
gotoxy(15,12);
printf("2. Press Space to place the Piece");
gotoxy(15,14);
printf("3、禁止在棋盘外按空格");
gotoxy(15,16);
printf("3. DO NOT press Space outside of the chessboard");
gotoxy(15,18);
printf("你是否接受上述的游戏规则(Y/N)");
gotoxy(15,20);
printf("Do you accept the above Playing Rules? [Y/N]:");
while(1)
{
gotoxy(60,20);
ch=getche();
if(ch=='Y'||ch=='y')
break ;
else if(ch=='N'||ch=='n')
{
window(1,1,80,25);
textbackground(BLACK);
textcolor(LIGHTGRAY);
clrscr();
exit(0);
}
gotoxy(51,12);
printf(" ");
}
}
void draw_box()
{
int x1,x2,y1,y2 ;
setbkcolor(LIGHTBLUE);
setcolor(YELLOW);
gotoxy(7,2);
printf("Left, Right, Up, Down KEY to move, Space to put, ESC-quit.");
for(x1=1,y1=1,y2=18;x1<=18;x1++)
line((x1+JZ)*BILI,(y1+JS)*BILI,(x1+JZ)*BILI,(y2+JS)*BILI);
for(x1=1,y1=1,x2=18;y1<=18;y1++)
line((x1+JZ)*BILI,(y1+JS)*BILI,(x2+JZ)*BILI,(y1+JS)*BILI);
for(x1=1;x1<=18;x1++)
for(y1=1;y1<=18;y1++)
box[x1][y1]=0 ;
}

void draw_circle(int x,int y,int color)
{
setcolor(color);
setlinestyle(SOLID_LINE,0,1);
x=(x+JZ)*BILI ;
y=(y+JS)*BILI ;
circle(x,y,8);
}

void judgekey()
{
int i ;
int j ;
switch(key)
{
case LEFT :

if(step_x-1<0)
break ;
else
{
for(i=step_x-1,j=step_y;i>=1;i--)
if(box[i][j]==0)
{
draw_circle(step_x,step_y,LIGHTBLUE);
break ;
}
if(i<1)break ;
step_x=i ;
judgewho(step_x,step_y);
break ;
}
case RIGHT :

if(step_x+1>18)
break ;
else
{
for(i=step_x+1,j=step_y;i<=18;i++)
if(box[i][j]==0)
{
draw_circle(step_x,step_y,LIGHTBLUE);
break ;
}
if(i>18)break ;
step_x=i ;
judgewho(step_x,step_y);
break ;
}
case DOWN :

if((step_y+1)>18)
break ;
else
{
for(i=step_x,j=step_y+1;j<=18;j++)
if(box[i][j]==0)
{
draw_circle(step_x,step_y,LIGHTBLUE);
break ;
}
if(j>18)break ;
step_y=j ;
judgewho(step_x,step_y);
break ;
}
case UP :

if((step_y-1)<0)
break ;
else
{
for(i=step_x,j=step_y-1;j>=1;j--)
if(box[i][j]==0)
{
draw_circle(step_x,step_y,LIGHTBLUE);
break ;
}
if(j<1)break ;
step_y=j ;
judgewho(step_x,step_y);
break ;
}
case ESC :
break ;

case SPACE :
if(step_x>=1&&step_x<=18&&step_y>=1&&step_y<=18)
{
if(box[step_x][step_y]==0)
{
box[step_x][step_y]=flag ;
if(judgeresult(step_x,step_y)==1)
{
sound(1000);
delay(1000);
nosound();
gotoxy(30,4);
if(flag==1)
{
setbkcolor(BLUE);
cleardevice();
setviewport(100,100,540,380,1);
/*定义一个图形窗口*/
setfillstyle(1,2);
/*绿色以实填充*/
setcolor(YELLOW);
rectangle(0,0,439,279);
floodfill(50,50,14);
setcolor(12);
settextstyle(1,0,5);
/*三重笔划字体, 水平放?5倍*/
outtextxy(20,20,"The White Win !");
setcolor(15);
settextstyle(3,0,5);
/*无衬笔划字体, 水平放大5倍*/
outtextxy(120,120,"The White Win !");
setcolor(14);
settextstyle(2,0,8);
getch();
closegraph();
exit(0);
}
if(flag==2)
{
setbkcolor(BLUE);
cleardevice();
setviewport(100,100,540,380,1);
/*定义一个图形窗口*/
setfillstyle(1,2);
/*绿色以实填充*/
setcolor(YELLOW);
rectangle(0,0,439,279);
floodfill(50,50,14);
setcolor(12);
settextstyle(1,0,8);
/*三重笔划字体, 水平放大8倍*/
outtextxy(20,20,"The Red Win !");
setcolor(15);
settextstyle(3,0,5);
/*无衬笔划字体, 水平放大5倍*/
outtextxy(120,120,"The Red Win !");
setcolor(14);
settextstyle(2,0,8);
getch();
closegraph();
exit(0);
}
}
change();
break ;
}
}
else
break ;
}
}

void change()
{
if(flag==1)
flag=2 ;
else
flag=1 ;
}

void judgewho(int x,int y)
{
if(flag==1)
draw_circle(x,y,15);
if(flag==2)
draw_circle(x,y,4);
}

int judgeresult(int x,int y)
{
int j,k,n1,n2 ;
while(1)
{
n1=0 ;
n2=0 ;
/*水平向左数*/
for(j=x,k=y;j>=1;j--)
{
if(box[j][k]==flag)
n1++;
else
break ;
}
/*水平向右数*/
for(j=x,k=y;j<=18;j++)
{
if(box[j][k]==flag)
n2++;
else
break ;
}
if(n1+n2-1>=5)
{
return(1);
break ;
}

/*垂直向上数*/
n1=0 ;
n2=0 ;
for(j=x,k=y;k>=1;k--)
{
if(box[j][k]==flag)
n1++;
else
break ;
}
/*垂直向下数*/
for(j=x,k=y;k<=18;k++)
{
if(box[j][k]==flag)
n2++;
else
break ;
}
if(n1+n2-1>=5)
{
return(1);
break ;
}

/*向左上方数*/
n1=0 ;
n2=0 ;
for(j=x,k=y;j>=1,k>=1;j--,k--)
{
if(box[j][k]==flag)
n1++;
else
break ;
}
/*向右下方数*/
for(j=x,k=y;j<=18,k<=18;j++,k++)
{
if(box[j][k]==flag)
n2++;
else
break ;
}
if(n1+n2-1>=5)
{
return(1);
break ;
}

/*向右上方数*/
n1=0 ;
n2=0 ;
for(j=x,k=y;j<=18,k>=1;j++,k--)
{
if(box[j][k]==flag)
n1++;
else
break ;
}
/*向左下方数*/
for(j=x,k=y;j>=1,k<=18;j--,k++)
{
if(box[j][k]==flag)
n2++;
else
break ;
}
if(n1+n2-1>=5)
{
return(1);
break ;
}
return(0);
break ;
}
}

void main()
{
int gdriver=VGA,gmode=VGAHI;
clrscr();
attention();
initgraph(&gdriver,&gmode,"c:\\tc");
/* setwritemode(XOR_PUT);*/
flag=1 ;
draw_box();
do
{
step_x=0 ;
step_y=0 ;
/*draw_circle(step_x,step_y,8); */
judgewho(step_x-1,step_y-1);
do
{
while(bioskey(1)==0);
key=bioskey(0);
judgekey();
}
while(key!=SPACE&&key!=ESC);
}
while(key!=ESC);
closegraph();
}

3. 如何建立属于自己的个人博客

一、对网站域名和空间的选择

域名:一般会选择比较正规点的域名商购买,比如:万网、西部数码...(一年也才几十块钱)。考虑到我们的域名是要续费的,如果说你买的域是那种不正规的域名商,哪天域名商倒闭了,那么我的域名就不能使用了。还有一点值得注意的是:域名的选择最好“见名知意”越短越好。一般会用自己的名字来命名。比如:段亮个人博客:www.anliang920.com

空间:分为国内空间和国外空间。

1、国内空间:需要备案网站才能上线,但是速度比国外空间要快一点,并且也稳定。

2、国外空间:指(除大陆外的空间)则不需要备案,可以直接使用。

一般我们对空间的选择有两点:第一、稳定性,第二、性价比。在这里我推荐大家可以去淘宝等商城上去买,至于空间稳不稳定这个我不知道,看自己的运气吧!

空间大小个人建议:前期练手150M就够了,后期根据自己个人需要来选择空间大小。

二、选择网站后台系统

我们不需要会PHP、JSP、ASP、.NET之类的动态语言来编写网站后台,同样也可以做出一个动态网站来。因为现在有很多开源免费的CMS系统(内容管理系统)可以简单点理解成:一个可以为网站提供发布文章、图片等等一些功能的工具

那么常见的个人博客系统有哪些呢?博客后台系统的选择,取决你空间服务器是PHP的还是ASP的。

空间服务器是PHP:那么我推荐你使用wordPress系统,因为WordPress最容易上手的网站程序了,程序安装5分钟搞定,就算是新手,也可以在半小时内学会搭建WordPress博客。后台傻瓜式管理,主题,插件,都可以在可视化后台按键完成,就算你不懂任何一句代码,也能轻松安装使用。

空间服务器是ASP:那么我推荐你使用Z-Blog系统,程序小,运行速度快。据说著名草根站长“卢松松”的博客,也是用的这个系统。现在PHP版本也出来了,具体选择看自己爱好。

当然并不只有这两款博客后台系统才可以做网站后台,也可以用其它的CMS系统比如:帝国cms、织梦cms(本人就是用的织梦,来搭建的博客网站后台)..,甚至有能力可以自己开发网站后台。只是wordpress和Z-blog这两款博客系统是非常有利于做博客,因为他们本身就是为博客而量身定做的。

三、策划和设计网站效果图

很多人可能会说:既然那些博客系统,都有现成的主题,那还需要自己亲自DIY设计博客的效果图吗?那是因为网上的主题鱼龙混杂的,毕竟每个人的审美观不一样,需求也不一样!所以说:想做一个自己喜欢风格的网站,还是需要自己亲自动手去设计。如果还没想好怎么去设计的朋友,我博客提供了一款比较简洁的博客模板。

四、制作前台页面

根据前面自己设计的效果图,然后把它制作成html的静态页面模板。方便和后台的结合,实现真正意义的动态网站。

五、制作动态网站

可能有些新手就会问了,网站还分静态网站和动态网站呀?为什么要实现动态网站呢?因为动态网站可以实现静态网站实现不了的功能,比如说:对网站文章的发布、图片的更新、留言等功能。

六、测试以及上线

在本地搭建服务器,网站上线前先测试网站有没有什么BUG。如没有什么问题,可以将本地网站解压打包,使用FTP工具上传到服务器空间。

值得注意的是:先得把网站的数据库导入出来,然后在空间服务器还原。不然就会出错误哟!

如果没有本地服务器测试的朋友,我这里提供了一款本地服务测试工具。请点击下载(放心使用,安全无毒!)

写在最后:建立一个个人博客,其实跟建立网站流程是一样的。只有你真正的了解这套开发流程,才知道网站是怎样做出来的。

4. java冒泡排序法代码

冒泡排序是比较经典的排序算法。代码如下:

for(int i=1;i<arr.length;i++){

for(int j=1;j<arr.length-i;j++){

//交换位置

}

拓展资料:

原理内:比较两个相邻的元素容,将值大的元素交换至右端。

思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。

第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的时候最后一个数不参与比较;

第二趟比较完成后,倒数第二个数也一定是数组中第二大的数,所以第三趟比较的时候最后两个数不参与比较;

依次类推,每一趟比较次数-1;

……

举例说明:要排序数组:int[]arr={6,3,8,2,9,1};

for(int i=1;i<arr.length;i++){

for(int j=1;j<arr.length-i;j++){

//交换位置

}

阅读全文

与3liang设计网站源码相关的资料

热点内容
jsud83d 浏览:617
学习计算机编程app哪个好 浏览:401
ipad怎么删除视频文件 浏览:564
建行友途车服app 浏览:353
湖南联通的双4g升级包 浏览:349
什么app能刷考公的题 浏览:560
怎样退出网络配置文件 浏览:506
提高日语口语的app 浏览:375
两个表中相同数据如何切换 浏览:986
如何在ug编程里调出机床 浏览:639
金数据对外查询系统怎么使用 浏览:999
用word精确套印 浏览:704
宏病毒能感染exe类型的文件 浏览:564
儿童编程去哪里学好 浏览:665
如何生成map文件 浏览:78
苹果电脑复制文件 浏览:750
vegas字体教程 浏览:499
f9b文件格式 浏览:631
小米安全中心10版本 浏览:326
Microsoft编程怎么导入图片 浏览:887

友情链接