没事情干,好无聊,造了个程序。
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <ctime>
#include <cmath>
#include <windows.h>
using namespace std;
int n;
int b[40],sh[1000],ds;
FILE *p,*p1,*p2;
struct am {
int hao;
char m[100];
int ok;
int hengz,shuz;
} name[40];
int kan() {
int i;
for(i=0; i<n; i++) {
if(name[i].ok==0)
return 0;
}
return 1;
}
void qing() {
int i;
for(i=0; i<n; i++) {
name[i].ok=0;
}
}
int fang() {
int i,j;
j=0;
for(i=0; i<n; i++) {
if(name[i].ok==0) {
b[j]=i;
j++;
}
}
return j;
}
void chou(int h) {
int j,x;
while(h--) {
if(kan()==1) {
MessageBox(NULL,"所有人都点过一遍了!","提示", MB_ICONEXCLAMATION );
qing();
}
j=fang();
Sleep(100);
x=rand()%j;
sh[ds]=b[x];
ds++;
cout<<name[b[x]].hao<<" "<<name[b[x]].m<<endl;
name[b[x]].ok=1;
}
}
void chouwj(int h) {
int j,x;
while(h--) {
if(kan()==1) {
MessageBox(NULL,"所有人都点过一遍了!","提示", MB_ICONEXCLAMATION );
qing();
}
j=fang();
Sleep(100);
x=rand()%j;
sh[ds]=b[x];
ds++;
cout<<name[b[x]].m<<"\t";
fprintf(p2,"%s\t",name[b[x]].m);
name[b[x]].ok=1;
}
}
int main() {
cout<<"初始化时间函数中……"<<endl;
//Sleep(2000);
srand((unsigned)time(NULL));
cout<<"打开文件中……"<<endl;
//Sleep(1000);
p=fopen("name.txt","r");
p2=fopen("座位.txt","a");
int i,t;
i=0;
if(p==NULL) {
cout<<"无数据文件!"<<endl;
system("pause");
return 0;
}
while(fscanf(p,"%d\t%s",&name[i].hao,name[i].m)!=EOF) {
i++;
}
n=i;
cout<<"初始化函数中……"<<endl;
ds=0;
//Sleep(2000);
for(i=0; i<n; i++) {
name[i].ok=0;
}
cout<<"准备完成!"<<endl;
//Sleep(1000);
system("cls");
while(1) {
cout<<"输入1:点一个人名"<<endl<<"输入2:点多个人名"<<endl<<"输入3:手动操纵"<<endl<<"输入4:将人名的顺序放入文件中"<<endl<<"输入5:生成座位表"<<endl<<"输入6:其他功能"<<endl;
int g;
cin>>g;
if(g==1) {
cout<<"名单如下:"<<endl;
chou(1);
system("pause");
system("cls");
}
if(g==2) {
int f;
cout<<"输入要点人名的个数:";
cin>>f;
cout<<"名单如下:"<<endl;
chou(f);
system("pause");
system("cls");
}
if(g==3) {
cout<<"输入这个人的号码系统将把它设置为点过:";
int jb;
cin>>jb;
for(i=0; i<n; i++) {
if(name[i].hao==jb)
name[i].ok==1;
}
cout<<"设置成功"<<endl;
}
if(g==4) {
p1=fopen("顺序.txt","w");
for(int fr=0; fr<ds; fr++)
fprintf(p1,"%d\t%s\n",name[sh[fr]].hao,name[sh[fr]].m);
fclose(p1);
cout<<"成功放入文件中"<<endl;
system("pause");
system("cls");
}
if(g==5) {
cout<<"此功能不稳定,可能会卡死,请谨慎使用!"<<endl;
int lsh,hsh;
int duo,pai;
cout<<"请输入多少行多少列"<<endl;
cin>>hsh>>lsh;
cout<<"正在处理数据"<<endl;
cout<<"经过处理后发现"<<endl;
if(lsh*hsh<n) {
cout<<"装不下了!"<<endl;
system("pause");
system("cls");
continue;
}
pai=n/lsh;
duo=n%lsh;
cout<<"坐满"<<pai<<"排"<<"最后一排多"<<duo<<"人"<<endl;
for(int xhbl=pai; xhbl>=1; xhbl--) {
chouwj(lsh);
cout<<endl;
fprintf(p2,"\n");
}
chouwj(duo);
cout<<endl;
fprintf(p2,"\n");
fprintf(p2,"---------------萌萌哒的分割线---------------\n");
system("pause");
system("cls");
}
if(g==6) {
int gn;
cout<<"输入1:清屏 \n输入2:退出 \n输入3:显示数据源\n";
cin>>gn;
if(gn==1) {
system("cls");
}
if(gn==2) {
exit(0);
}
if(gn==3) {
int diang=0,mdian=0;
cout<<"正在处理"<<endl;
//Sleep(1000);
for(i=0; i<n; i++) {
if(name[i].ok==0)
mdian++;
else
diang++;
}
cout<<"有"<<diang<<"人被点过 "<<" "<<"有"<<mdian<<"人没被点过"<<endl;
system("pause");
system("cls");
}
}
}
//by devvs
return 0;
}