社区讨论

关于点名器

灌水区参与者 9已保存回复 38

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
38 条
当前快照
1 份
快照标识符
@lodi0qq8
此快照首次捕获于
2023/10/31 06:55
2 年前
此快照最后确认于
2023/11/06 22:12
2 年前
查看原帖
自己给老师写的点名器,有bug吗
CPP
#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;
}

回复

38 条回复,欢迎继续交流。

正在加载回复...