(C++)英语抽背点名器源程序-V1.3.0

2023-01-22 00:08:50 哔哩哔哩

#include<bits/stdc++.h>

using namespace std;//固定格式


(资料图)

int main(){ 

int a,b,c,linshi,miss;

long long key;

struct test{

int total;

bool bj;

string name;

}data[100];//数据的类型声明 

for(int i=0;i<=100;i++){

data[i].total=0;

data[i].bj=true;}

cout<<"(如需查看更新日志,请在密钥栏输入‘0’)"<<endl<<endl;

cout<<"请输入随机的八位数字密钥:";

cin>>key;

if(key==0){

cout<<"现行版本:1.3.0"<<endl<<endl;

cout<<"更新日志:"<<endl;

cout<<"(2022-12-14)update-1.0.0:"<<endl;

cout<<"系统初步建立"<<endl<<endl;

cout<<"(2022-12-17)update-1.0.1:"<<endl;

cout<<"加入'中止抽背并统计'的功能" <<endl;

cout<<"将结尾等待时间从100秒改至99999秒"<<endl<<endl;

cout<<"(2023-1-15)update-1.1.0:"<<endl;

cout<<"引入'密钥',通过一定算法(动态数+常数)在不更换名单顺序的情况下实现不同次序"<<endl;

cout<<"加入'更新日志'"<<endl;

cout<<"将抽背完成后等待时间从99999秒改至999秒,减少非必要的内存消耗,加入时间提示"<<endl;

cout<<"解决'特殊位置无法抽到'的问题"<<endl; 

cout<<"微量优化UI,在姓名间加入换行,使姓名更易读取"<<endl<<endl;

cout<<"(2022-1-19)update-1.1.1:"<<endl;

cout<<"简化了简单计算的写法,减少运行内存"<<endl;

cout<<"将站立标记的定义类型从int改为bool"<<endl<<endl;

cout<<"(此正式版未发布)update-1.2.0:"<<endl;

cout<<"完全改变数据的结构,用结构体data整合原变量,使程序结构更清晰"<<endl;

cout<<"抽背人数上限定为100人,减少存储空间"<<endl<<endl;

cout<<"(2023-1-21)update-1.3.0:"<<endl;

cout<<"加入数据的排序功能(冒泡排序),在输出时按需输出"<<endl;

cout<<"将程序源文件分段处理并加入注释,便于理解和改写"<<endl<<endl;

cout<<"如有发现功能异常,请及时联系作者"<<endl;

cout<<"(120秒后自动关闭)";

_sleep(120000);

return 0;//结束 

}//更新日志 

cout<<"输入人数及姓名:";

cin>>a;

for(int i=1;i<=a;i++){cin>>data[i].name;}

cout<<endl<<"输入抽背人数:";

cin>>b;

cout<<"按'0'以停止"<<endl;

_sleep(2000);//人数,名字的输入 

for(int i=1;i<=b;i++){

linshi=(key/202+rand()%a+14+b*7)%a;//取随机数 

if(linshi==miss){linshi+=1;}

if(linshi>a){linshi-=a;}

if(linshi==0){linshi=a;}

cout<<endl;

cout<<i<<"."<<data[linshi].name<<endl; //抽背功能实现核心部分 

cout<<"分数决定(1或-1,0为中止并统计)";

cin>>c;

if(c==0){break;}

if(c==1){data[linshi].bj=true;}

if(c==-1){data[linshi].bj=false;b+=1;}

data[linshi].total+=c;

miss=linshi;}//miss令,分数计算,标记 

for(int i=2;i<=a;i++){

for(int j=2;j<=a;j++){

if(data[j-1].total<data[j].total){

swap(data[j-1].name,data[j].name);

swap(data[j-1].bj,data[j].bj);

swap(data[j-1].total,data[j].total);}}}//排序功能 

cout<<endl<<endl<<"分数统计:"<<endl;

for(int i=1;i<=a;i++){

if(data[i].bj==false){cout<<"(站立中)";}

else{cout<<"        ";}

cout<<data[i].name<<" "<<data[i].total<<endl;}

cout<<endl<<"999秒后自动关闭"; 

_sleep(999999);//按序输出

return 0;}

上一篇 :

下一篇 :

x

相关推荐

精彩推送