完整源码
#include <iostream>
#include <algorithm>
#include <string>
#include <cstdlib>
#include <iomanip>
#include <list>
#include <ctime>
#include <windows.h>
#define color(A) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),A)
#define W FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE
#define R FOREGROUND_INTENSITY|FOREGROUND_RED
#define G FOREGROUND_INTENSITY|FOREGROUND_GREEN
#define B FOREGROUND_INTENSITY|FOREGROUND_BLUE
#define Y FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN
#define P FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE
#define Q FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE
using namespace std;
struct general
{
string name;
int info[4];
};
list<general> l;
list<general>::iterator it;
int cc,order4;
void Error()
{
color(R);
cout<<"键入参数错误!!!请检查输入。"<<endl;
}
bool cmp(general x,general y)
{
if(cc==1)
{
if(order4==1)
return x.name<y.name;
else
return x.name>y.name;
}
else
{
if(order4==1)
return x.info[cc-2]<y.info[cc-2];
else
return x.info[cc-2]>y.info[cc-2];
}
}
void Add_general()
{
srand((int)time(0));
color(R);
cout<<"请选择武将信息键入方式:1.自定义输入 2.系统大量随机输入"<<endl;color(W);
int order1;cin>>order1;
if(order1==1)
{
color(R);cout<<"开始自定义键入,依次键入武将姓名、年龄、武力值、智力值、体力值(以#结束):"<<endl;color(W);
while(1)
{
general temp1;
cin>>temp1.name;
if(temp1.name=="#")
break;
cin>>temp1.info[0];cin>>temp1.info[1];cin>>temp1.info[2];cin>>temp1.info[3];
l.push_back(temp1);
}
}
else if(order1==2)
{
color(R);cout<<"请输入随机输入规模:"<<endl;color(W);
int num1;cin>>num1;
for(int i=0;i<num1;i++)
{
general p1;
int len1=rand()%10+3;
char ch1[len1];
int j;
for(j=0;j<len1;j++)
{
if(rand()%2)
ch1[j]=rand()%26+65;
else
ch1[j]=rand()%26+97;
}
ch1[j]='\0';
p1.name=ch1;
p1.info[0]=rand()%53+18;p1.info[1]=rand()%201;p1.info[2]=rand()%201;p1.info[3]=rand()%201;
l.push_back(p1);
}
color(R);cout<<"随机输入成功!"<<endl;
}
else