#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=100i<=420i+=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+1k<8k++)
if(a[i][k]==a[i][j]||a[i][k]==0)/*遇到自己的棋子或空格结束*/
break
if(a[i][k]!=0&&k<8)
{
for(kk=j+1kk<k&&k<8kk++)/*判断右边*/
{
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-1k>=0k--)
if(a[i][k]==a[i][j]||!a[i][k])
break
if(a[i][k]!=0&&k>=0)
{
for(kk=j-1kk>k&&k>=0kk--)
{
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+1k<8k++)
if(a[k][j]==a[i][j]||!a[k][j])
break
if(a[k][j]!=0&&k<8)
{
for(kk=i+1kk<k&&k<8kk++)
{
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-1k>=0k--)
if(a[k][j]==a[i][j]||!a[k][j])
break
if(a[k][j]!=0&&k>=0)
{
for(kk=i-1kk>k&&k>=0kk--)
{
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+1k>=0&&kk<8k--,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+1ii>k&&k>=0ii--,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-1k<8&&kk>=0k++,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-1ii<k&&k<8ii++,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-1k>=0&&kk>=0k--,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-1ii>k&&k>=0ii--,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+1kk<8&&kk<8k++,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+1ii<k&&k<8ii++,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=0i<8i++)
for(j=0j<8j++)
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=18x1<=18x1++)
line((x1+JZ)*BILI,(y1+JS)*BILI,(x1+JZ)*BILI,(y2+JS)*BILI)
for(x1=1,y1=1,x2=18y1<=18y1++)
line((x1+JZ)*BILI,(y1+JS)*BILI,(x2+JZ)*BILI,(y1+JS)*BILI)
for(x1=1x1<=18x1++)
for(y1=1y1<=18y1++)
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_yi>=1i--)
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_yi<=18i++)
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+1j<=18j++)
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-1j>=1j--)
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=yj>=1j--)
{
if(box[j][k]==flag)
n1++
else
break
}
/*水平向右数*/
for(j=x,k=yj<=18j++)
{
if(box[j][k]==flag)
n2++
else
break
}
if(n1+n2-1>=5)
{
return(1)
break
}
/*垂直向上数*/
n1=0
n2=0
for(j=x,k=yk>=1k--)
{
if(box[j][k]==flag)
n1++
else
break
}
/*垂直向下数*/
for(j=x,k=yk<=18k++)
{
if(box[j][k]==flag)
n2++
else
break
}
if(n1+n2-1>=5)
{
return(1)
break
}
/*向左上方数*/
n1=0
n2=0
for(j=x,k=yj>=1,k>=1j--,k--)
{
if(box[j][k]==flag)
n1++
else
break
}
/*向右下方数*/
for(j=x,k=yj<=18,k<=18j++,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=yj<=18,k>=1j++,k--)
{
if(box[j][k]==flag)
n1++
else
break
}
/*向左下方数*/
for(j=x,k=yj>=1,k<=18j--,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()
}
//=================================[说明]=======================================*///学生成绩管理
//文件名:main.cpp
//------!!!!!!---------BOF-[程序代码开始]-------------------
#include<iostream>
#include<string>
using namespace std
//=============<开始定义结构体>===================================================
struct combox
{
int num
int mark
string name
combox *next
}
//=============<结束定义结构体>===================================================
//=============<开始定义Commonbox类>==============================================
//-----类体开始------------------------
class Commonbox
{
private:
combox *head
void Swap(combox *,combox *)//交换两个combox变量的数据域
void Print(combox *)//输出一combox指定的记录
combox *Find(int)//查找条例条件的记录,并返回该记录的指针
public:
Commonbox()
{
head=NULL
}
int ListCount()//统计当前链表的记录总数,返回一个整数
void AddItem(int num, string name, int mark)//添加一条记录到表尾
void RemoveItem(int)//删除一条指定的记录
void List()//列出当前链表中的所有记录
void Sort()//对当前链表进行排序
void Search(int)//在当前链表查找指定记录并输出
float Average()//计算平均成绩
}
//-----类体结束------------------------
//-----类成员函数开始----------------------------------
int Commonbox::ListCount() //统计当前链表的记录总数,返回一个整数
{
if (! head)return 0
combox *p=head
int n=0
while (p)
{
n++
p=p->next
}
return n
}
void Commonbox::AddItem(int num, string name, int mark) //添加一条记录到表尾
{
if (! head)
{
head=new combox
head->mark=mark
head->num=num
head->name=name
head->next=NULL
return
}
combox *t=head
while (t &&t->num!=num)
t=t->next
if (t)
{
cout<<" *** 作失败:学号为"<<num<<"的记录已经存在!"<<endl
return
}
combox *p=head
while (p->next)p=p->next
combox *p1=new combox
p1->num=num
p1->mark=mark
p1->name=name
p1->next=NULL
p->next=p1
return
}
void Commonbox::RemoveItem(int num) //删除一条指定的记录
{
combox *t=Find(num)
if (! t)return
combox *p=head
//如果要删除的记录位于表头
if (head==t)
{
head=head->next
delete p
cout <<"成功删除学号为 "<<num<<" 的记录!"<<endl<<endl
return
}
while (p->next!=t)p=p->next
combox *p1=p->next
p->next=p1->next
delete p1
cout <<"成功删除学号为 "<<num<<" 的记录!"<<endl<<endl
return
}
void Commonbox::Print(combox *p) //输出一combox指定的记录
{
cout<<p->num<<"\t\t"
cout<<p->name<<"\t\t"
cout<<p->mark<<endl
return
}
void Commonbox::List() //列出当前链表中的所有记录
{
if (ListCount()==0)
{
cout <<"错误:当前的列表为空!"<<endl
return
}
combox *p=head
cout<<"共有记录:"<<ListCount()<<endl
cout<<"学号\t\t姓名\t\t分数"<<endl
while (p)
{
Print(p)
p=p->next
}
cout <<endl
return
}
void Commonbox::Search(int num) //在当前链表查找指定记录并输出
{
cout <<"Searching...."<<endl
combox *p=Find(num)
if (p)
{
cout<<"学号\t\t姓名\t\t分数"<<endl
Print(p)
}
cout <<endl
}
combox *Commonbox::Find(int num)
{
if (ListCount()==0)
{
cout <<"错误:当前的列表为空!"<<endl
return NULL
}
combox *p=head
while (p)
{
if (p->num==num)break
p=p->next
}
if (! p)
{
cout <<"错误:找不到该记录!\n"
return NULL
}
return p
}
void Commonbox::Swap(combox *p1, combox *p2) //交换两个combox变量的数据域
{
combox *temp=new combox
temp->num=p1->num
temp->mark=p1->mark
temp->name=p1->name
p1->num=p2->num
p1->mark=p2->mark
p1->name=p2->name
p2->num=temp->num
p2->mark=temp->mark
p2->name=temp->name
}
void Commonbox::Sort() //对当前链表进行排序
{
cout <<"Sorting..."<<endl
if (ListCount()<2) return
combox *temp=NULL,*p=NULL,*p1=NULL,*p2=NULL,*k=NULL
int n=ListCount(),i,j
p=head
for (i=1i<ni++)
{
k=p
p1=p->next
for (j=0j<n-ij++)
{
if (k->num >p1->num)
{
k=p1
}
p1=p1->next
}
if (p!=k)Swap(k,p)
p=p->next
}
cout <<"Complete successfully!"<<endl<<endl
return
}
float Commonbox::Average() //计算平均成绩
{
if (ListCount()==0)
{
cout <<"错误:当前的列表为空!"<<endl
return -1
}
int sum=0,n=0
combox *p=head
while (p)
{
sum += p->mark
p=p->next
n++
}
return float(sum)/n
}
//-----类成员函数结束----------------------------------
//=============<结束定义Commonbox类>==============================================
Commonbox student//定义全局变量
int Menu()
{
cout <<"===========[主选单:]==========="<<endl
int n=1,select=-1
cout <<n++<<".输入学生成绩"<<endl<<endl
cout <<n++<<".按学号排序"<<endl<<endl
cout <<n++<<".按学号查找记录"<<endl<<endl
cout <<n++<<".删除由学号指定的记录"<<endl<<endl
cout <<n++<<".列出所有记录"<<endl<<endl
cout <<n++<<".计算平均成绩"<<endl<<endl
cout <<"0.退出"<<endl<<endl
cout <<"[请选择(输入相应数字)]:"
cin >>select
return select
}
char Exit() //返回一个字符患,用于确认退出
{
char s
cout<<"确定要退出程序吗?[Y/N]:"
cin >>s
return s
}
void Input(int *num, string *name, int *mark) //输入学生信息
{
cout <<"请输入 学号 姓名 分数:"
cin >>*num
if (*num==-1)return
cin >>*name>>*mark
return
}
void AddNew() //增加记录
{
int num=0,mark=0
string name=""
cout<<endl<<"当输入的学号为-1时表示结束输入."<<endl
Input(&num, &name, &mark)
while (num!=-1)
{
student.AddItem(num,name,mark)
Input(&num, &name, &mark)
}
return
}
void DoFind() //按学号查找
{
int num
cout<<endl<<"当输入的学号为-1时表示结束输入."<<endl
do
{
cout <<"请输入要查找的学生的学号: "
cin>>num
if (num==-1)continue
student.Search(num)
}
while (num!=-1)
return
}
void DoDelete() //删除记录
{
cout<<endl<<"当输入的学号为-1时表示结束输入."<<endl
int num
do
{
cout <<"请输入要删除的学生的学号:"
cin>>num
if (num==-1)continue
student.RemoveItem(num)
}
while (num!=-1)
return
}
void ShowAverage() //输出平均数
{
float avr=student.Average()
if (avr>0)
{
cout<<"共有记录:\t"<<student.ListCount()<<endl<<endl
cout<<"平均成绩:\t"<<avr<<endl<<endl
}
return
}
//-------******<主函数开始>******-------
int main()
{
cout<<"Welcome!\n学生成绩管理系统\nVer 1.01\nBy FondBoy\n\n"
int select
char s
while (1)
{
select=Menu()
switch (select)
{
case 0: //退出程序
s=Exit()
if (s=='y' || s=='Y')return 0
break
case 1: //输入学生成绩
AddNew()
break
case 2: //按学号排序
student.Sort()
break
case 3: //按学号查找记录
DoFind()
break
case 4: //删除由学号指定的记录
DoDelete()
break
case 5: //列出所有记录
student.List()
break
case 6: //输出平均成绩
ShowAverage()
break
default:
cout<<"无效输入!"<<endl
}
}
return 0
}
//-------******<主函数结束>******-------
//------!!!!!!---------EOF-[程序代码结束]-------------------
1. 企业知识竞赛微信小程序(企业微信小程序怎么开通)
2. 微信知识竞赛小程序叫什么
3. 知识竞赛题卡小程序
4. 知识竞赛小程序源码
企业知识竞赛微信小程序(企业微信小程序怎么开通) 1.企业微信小程序怎么开通
您好,您提到的“微信小程序怎么开通”
这个微信小程序开发之前必须要完成和注册认证。如果是个人或者小公司想开发微信小程序,也可以找微信认证第三方开发商,比如赢在移动、正品科技等。
1、微信小程序注册
在微信公众平台官网首页,按照提示点击右上角的“立即注册”按钮,里面总过有12步,按照要求提交就可以了。
2、小程序申请微信认证
*** 、媒体、其他组织类型帐号,必须通过微信认证验证主体身份。企业类型帐号,可以根据需要确定是否申请微信认证。已认证帐号可使用微信支付、微信卡券等高级权限。
认证入口:登录小程序—设置—基本设置—微信认证—详情
3、小程序申请微信支付
已认证的小程序可申请微信支付。
4、小程序绑定微信开放平台帐号
小程序绑定微信开放平台帐号后,可与帐号下的其他移动应用、网站应用及公众号打通,通过UnionID机制满足在多个应用和公众号之间统一用户帐号的需求。
UnionID机制说明:如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过UnionID来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。用户的UnionID可通过调用“获取用户信息”接口获取。
5、了解“获取用户信息”接口请查看开发文档—API—开放接口—用户信息。
绑定小程序流程说明:登录微信开放平台、—管理中心—公众帐号—绑定公众帐号
注意:微信开放平台帐号必须完成开发者资质认证才可以绑定小程序。
2.抖音上一个小游戏是答题让小动物左右移动躲避危险的游戏叫啥名字
游戏名称叫头脑吃鸡。
头脑吃鸡是北京豪腾嘉科科技有限公司开发的一款答题竞技类游戏,以“微信小程序”为载体发布于微信平台。
头脑吃鸡是一款知识竞赛类的游戏,主要有排位战、好友对战和群对战三种形式,另有一些特殊的趣味玩法。排位赛等级制度和头脑王者相似。
题型全部为判断题,开始游戏后,你和其他玩家被分配到两条跑道上,等待题目出现,在五秒倒计时结束前定下你的答案。最后会出现一群马、一头大象或一个深坑之类的东东把错误跑道上的人员全部清除。若你能最终成为唯一存活者,则胜出本局游戏,成功吃鸡。
扩展资料:
游戏介绍:
游戏中有金币和体力值的设定,玩一局游戏需消耗一个体力值。日常活动有签到,定时领取体力等。体力隔一段时间自动恢复,最多不超过5个。
而在游戏过程中每答对一道题都会获得不同程度的金币奖励,金币攒够了后可以到商店购买形象,从小鸭子,小狗到关羽吕布,憨态可掬,吃鸡成功可以获得宝箱,一天五次,宝箱里可能出现形象碎片或金币等。
排位赛总共有10个段位,由低到高的顺序分别为:顽强黑铁、倔强青铜、傲气白银、聪慧黄金、巧思白金、无暇钻石、智者大师、万卷宗师、博学史诗、智慧传说、最强王者。段位越高越困难,但吃鸡失败不扣减等级。
参考资料来源于:搜狗百科-头脑吃鸡
微信知识竞赛小程序叫什么 1.什么是微信小程序
小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。
也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。
对于开发者而言,小程序开发门槛相对较低,难度不及APP,能够满足简单的基础应用,适合生活服务类线下商铺以及非刚需低频应用的转换。小程序能够实现消息通知、线下扫码、公众号关联等七大功能。
其中,通过公众号关联,用户可以实现公众号与小程序之间相互跳转。由于小程序不存在入口。
2.微信小程序有哪些类型
随着微信小程序的普及,现在小程序可以说是涉及到了各行各业。主要的类型有以下:
1、酒店预订小程序
酒店预订小程序属于实用类的小程序的,采取起来便利许多,不需求专门下载app,时候也可以够用微信直接支付,时候也具有导航的功能的,也是越来越改进了。不占用手机空间,对于商家来讲,也可以够起到推广的作用的,所以不论对于商家还是会员全是不错的。
2、在线点菜小程序
这个真的是尤其实用的,每当饭点的同时,估计都体会到喊服务员喊半天没人理的烦躁,点个餐也得排很长期的队,自打点菜小程序的出现,就解决了这个难题,开启为小程序,能够自己点菜,然后提交订单,微信支付就行,用完关掉就能够了,什么也不影响,所以越来越多的人都愿意采取在线点菜小程序点菜。
3、电商小程序
电商小程序,也是在诸多的微信小程序中数目多的1个类其余的,功能也是比较多的,例如说微信支付、商品上下架功能、订单填写等,客户能够直接通过小程序进行选购的,不需求再去下载app,尽管说电商小程序功能有限,可是大多数依然有客服的功能,会员也可以够在线进行提问的。
4、服务类小程序
这也是微信小程序中比较火的一类的,商家普遍是通过微信小程序展示店铺的地址、简介、服务内容等,并且能够通过小程序预订服务时间,例如说美容美发、家政清洁、搬家快递等,也是能够在线支付的,收费是透明的。
3.小程序到底有什么用微信小程序是什么意思微信小程序有什么用 爱问知
微信小程序提供的功能 1.对话分享:可以分享到对话,支持分享给单个好友及微信群。
2.搜索查找:小程序可以被搜索,但微信会极力限制搜索能力,目前提供的搜索功能是用户可直接根据名称或品牌搜索小程序。 3. 公众号关联:在小程序与公众号为同一开发主体的前提下,提供小程序与微信公众号之间的关联。
4.线下扫码:提供线下提示用户附近有哪些小程序存在的功能。用户可以通过线下扫码使用,这也是微信提倡的接入方式。
5. 小程序切换:小程序支持挂起状态,即多窗口概念,用户可以把小程序先挂起,然后做别的事情,在需要这个小程序的时候可以快调用,回到最开始的状态。 6.消息通知:商户可以发送模板消息给接受过服务的用户,用户可以在小程序内联系客服,支持文字和图片,解决用户与小程序的沟通问题。
知识竞赛题卡小程序 1.知识竞赛的流程
知识竞赛规则和程序比赛基本规则: 1、每只代表队由3名选手上场,其中女队员1名,代表队员编号分别为:一号选手、二号选手、三号选手。
2、比赛采用分组淘汰制,12只代表队分2个组,全部采取抽签决定。 3、如果有一只企业代表队进入任意一小组的前三名,则两个小组的前三名共6只代表队进入决赛;如果两只企业代表队都没有进入任意一小组的前三名,则两个小组的前两名进入决赛,两个小组的第三名中成绩较好(如果分数相同则在9号下午第二组比赛完后按加试比赛的规则继续加试比赛决出名次)的一只代表队进入决赛,两个企业代表队中成绩较好(如果分数相同则在9号下午第二组比赛完后按加试比赛的规则继续加试比赛决出名次)的一只企业代表队进入决赛,正好也是6只代表队进入决赛。
4、各队成绩的排列:进入决赛的6只代表队的名次按分数分别是1—6名(前三名分数相同的通过加试比赛决定名次,后三名可以并列),在小组中被淘汰的6只代表队的名次按分数(分数相同的名次并列)7—12名 5、加试比赛规定:小组预赛的前三名和决赛组的前三名如果分数相同,则应该加试比赛,加试比赛采用加试题目,首先加试一题,胜者名次排前;如果分数还相同,则再加试一题,胜者名次排前;分数仍相同,则加试一题抢答题,胜者名次排前。加试题所获得的分数不记入总分,只做排名次用。
如:第一名有两个(分数相同)经加试比赛后,名次分别是第一名、第二名、原第二名则顺延为第三名。第四名、第五名等依次类推。
6、比赛分个人必答,每人两题;集体必答,每组两题;抢答题共20题;风险题有三个分值:20分、30分、40分,每个代表队只有一次选题机会,既只能选择某一分值后抽签确定一个题目,六只代表队同时选择分值、同时抽签确定题目,将抽签确定的题目统一放在桌子的右前方,由主持人按1—6号台的顺序逐一答题,逐一评分。 7、记分办法:各队底分200分,个人必答、集体必答题,回答正确加10分,回答错误不得分也不扣分;抢答题,回答正确加10分,回答错误扣10分,违规抢答(主持人说“开始”后,队员才能开始抢答)和没有按时答题以及答题超时都将被扣10分;风险题回答正确得相应的分值,回答错误扣相应的分值。
8、记时规定:个人必答题、集体必答题和抢答题答题总时间均是60秒;回答问题的队员必须在30秒内开始答题。答题结束应该回答“答题完毕” 9、各队的台号由抽签决定,各队员的编号由各队自己决定,坐好后就不得改变位置。
比赛程序: 1、第一程序: 个人必答题(每人两题,一次答完,即每个队员一次性回答两题;每队6题,分三个循环答完)。 比赛规则:从第一号选手开始答题,一人答题,其他人不能提示,30秒内开始答题,60秒内答题完毕,答题结束时应回答“答题完毕”。
答题正确加10分,答题错误不得分,也不扣分。 2、第一程序比赛结束,插入文艺节目一。
演出结束,由演出人员抽出一题 (到礼仪小姐手里抽备用题)交主持人念题,观众答题,答对了的发纪念品一份(礼仪小姐送纪念品)。 3、第二程序:集体必答题(每组2题,分二个循环完成) 礼仪小姐从裁判席将题目送到主持人手里,节目主持人宣布比赛规则:任意一人答题,其他队员可以提示、补充,30秒内开始答题,60秒内答题完毕,答题结束时应回答“答题完毕”。
答题正确加10分,答题错误不得分,也不扣分。 4、第二程序比赛结束,插入文艺节目二,演出结束,由演出人员抽出一题 (到礼仪小姐手里抽备用题)交主持人念题,观众答题,答对了的发纪念品一份(礼仪小姐送纪念品) 5、第三程序:抢答题(共20题) 礼仪小姐从裁判席将题目送到主持人手里,主持人宣布比赛规则:主持人念题完毕,说“开始”后各队才能“抢答”,答题队员应在30秒内开始答题,60秒内答题完毕。
答题正确加10分,答题错误扣10分;抢答犯规(提前或在答题中又按抢答器)扣10分 第三程序中要插入文艺节目三、四, 演出结束后分别由主持人念题,各队抢答(抢答规则同前) 主持人宣布各队得分情况, 6、第四程序:风险题(分值为20、30、40) 礼仪小姐从裁判席将题目送到主持人手里,主持人宣布比赛规则:每队只有一次选择分值的机会,各队同时选择分值,抽签后将题目放在桌子的右前方,按1—6号台顺序答题。任意一个队员答题,其他队员可以提示、补充,60秒内开始答题,120秒内答题完毕,在规定时间内回答正确得相应的分值,超时和回答错误扣相应的分值。
主持人从1号台开始念题,并由1号台答题,评分,2—6号依次类推 7、第四程序比赛结束,插入文艺节目五,演出结束, 主持人宣布各队得分情况。 8、第五程序:加试题(前三名分值相同的队才启用) 礼仪小姐从裁判席将题目送到主持人手里,主持人宣布比赛规则:相同分值的队首先加试一题,胜者名次排前;如果分数还相同,则再加试一题,同样胜者名次排前;分数仍相同,则加试一题抢答题,同样胜者名次排前。
加试题所获得的分数不记入总分,只供排名次用. 9、第六程序:颁奖 主持人:宣布获奖名次(组委会及时提供所有获奖名单) “荆州市劳动保。
2.求团知识竞赛的程序
团队竞赛程序:预赛、决赛规则、程序相同。(1)主持人介绍嘉宾、评委; (2)竞赛开始,主持人介绍竞赛规则和程序; (上半场) à 主观题(自述“如何提高大学生的安全意识和自我保护能力” ,每队3分钟); à 问答题(按顺序号轮流答题,每轮答1题,每队共答5题,弃权、答错或相差甚远者不扣分;每题的作答时间不得超过20秒); à 现场观众互动题(5题),赠送礼品。 (下半场,宣布上半场的最后结果) à 抢答题(15题自由抢答;答错一题扣10分;每题作答时间不得超过20秒); à 风险题(分10分题和30分题两组,,每队答3题,其中10分题和30分题至少各选一次,先选题后作答;弃权、答错或相差甚远者扣相应分值;10分题每题作答时间不得超过30秒,30分题每题作答时间不得超过60秒。à 现场观众互动题(5题),赠送礼品。 (3)主持人宣布预(决)赛总成绩(决赛公布名次,颁奖),竞赛结束。
知识竞赛小程序源码 1.问答源码用什么源码好
按照我的理解,所谓的源代码世界是比现实世界时间提前的平行世界。
男主角通过穿越改变了源代码世界,使得平行的现实世界也得到改变。由于提前在源代码世界给GOODWIN发送的消息,现实世界的GOODWIN接收延迟,帮助了CAPTION,让CAPTION的意识存活在源代码世界中。
既然都能从现实世界穿越到源代码世界中,那么短信穿越也是很正常的。最后那个大球还记得么?映照出来的依然是肖恩,这就证明,现实世界的营养供应断后,CAPTION的意识会留在源代码世界中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)