关于点名器
  • 板块灌水区
  • 楼主Irppy3_40
  • 当前回复38
  • 已保存回复38
  • 发布时间2020/7/26 19:42
  • 上次更新2023/11/6 22:12:28
查看原帖
关于点名器
110091
Irppy3_40楼主2020/7/26 19:42

自己给老师写的点名器,有bug吗

#include<bits/stdc++.h>
#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) 
#define Get GetStdHandle(STD_OUTPUT_HANDLE)
using namespace std;
int N;
inline void mouse(int a)
{
	HANDLE handle=Get;
	CONSOLE_CURSOR_INFO CursorInfo;
	GetConsoleCursorInfo(handle,&CursorInfo);//获取控制台光标信息
	CursorInfo.bVisible=a; //隐藏控制台光标
	SetConsoleCursorInfo(handle,&CursorInfo);
}
string name[1000];
bool b[1000];
int result;
int main(){
	srand(time(NULL));
	cout<<"加载中...";
	freopen("班级名单.txt","r",stdin);
	cin>>N;
	for(int i=0;i<N;i++)cin>> name[i];
	random_shuffle(name,name+N);
//	for(int i=0;i<N;i++)cout<<name[i]<<endl;
//	Sleep(10000);
	mouse(0);
	system("cls");
	system("mode con cols=40 lines=5");
	system("color 1e");system("title 点名器");
	cout<<"按下空格开始,放开结束"<<endl;
	result=N+1;
	while(1){
		if(KEY_DOWN(' ')){
			system("cls");
			start:
			result=rand()%N;
			if(b[result])goto start;
			cout<<endl<<endl<<"                ";
			cout<<name[result]<<endl;
			Sleep(1);
		}
		else b[result]=1;
	} 
	return 0;
}
2020/7/26 19:42
加载中...