#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 100
#define NONE "\e[0m"
#define RED "\e[0;31m"
#define GREEN "\e[0;32m"
#define YELLOW "\e[1;33m"
int person=0;
int number=1;
struct student
{
char name[20];
int age;
char sex[10];
};
typedef struct student STU;
void welcome()
{
system("clear");
printf(GREEN"\n\n\n***************************************\n");
printf("欢迎来到...............................\n");
printf("***************************************\n"NONE);
sleep(3);
}
void menu()
{
system("clear");
printf(RED"\n\n\n******************************************\n");
printf("1、添加信息 2、查看信息\n");
printf("3、查找信息 4、删除信息\n");
printf("5、修改信息 6、退出\n");
printf("******************************************\n"NONE);
}
void AddInfo (STU *s[])
{
printf("please input :\n");
while(1)
{
s[person]=(STU*)malloc(sizeof(STU));
if(NULL==s[person])
{
printf("malloc failure!\n");
}
scanf("%s",s[person]->name);
if(!strcmp(s[person]->name,"bye"))
{
break;
}
scanf("%d",&s[person]->age);
scanf("%s",s[person]->sex);
person++;
if(person==SIZE)
{
printf("数据库已满\n");
}
}
}
void Showall(STU *stu[])
{
int i,j;
STU *tmp;
for(i=0;i<person-1;i++)
{
for(j=0;j<person-i-1;j++)
{
if(strcmp(stu[j+1]->name,stu[j]->name)>0)
{
tmp=stu[j+1];
stu[j+1]=stu[j];
stu[j]=tmp;
}
}
}
for(i=0;i<person;i++)
{
printf("%d、%s %d %s\n",number+i,stu[i]->name,stu[i]->age,stu[i]->sex);
}
sleep(1);
}
void findinfo(STU *stu[])
{
int i;
char str[20]={0};
printf("please input name :\n");
scanf("%s",str);
for(i=0;i<person;i++)
{
if( strcmp(stu[i]->name,str)==0)
{
printf("%s %d %s",stu[i]->name,stu[i]->age,stu[i]->sex);
sleep(3);
break;
}
if(i+1==person)
{
printf("无此人\n");
sleep(3);
}
}
}
void delinfo(STU *stu[])
{
printf("输入要删除人名:\n");
char str[20]={0};
int i,j;
scanf("%s",str);
for(i=0;i<person;i++)
{
if(strcmp(stu[i]->name,str)==0)
{
for(j=i;j<person-1;j++)
{
stu[j]=stu[j+1];
}
person--;
}
break;
}
}
void changeinfo(STU *stu[])
{
printf("请输入修改人的姓名:\n");
int i,j;
char s[10]={0};
char str[20]={0},ptr[20]={0};
scanf("%s",str);
for(i=0;i<person;i++)
{
if(strcmp(stu[i]->name,str)==0)
{
printf("请输入修改数据:\n");
scanf("%s %d %s",ptr,&j,s);
strcpy(stu[i]->name,ptr);
stu[i]->age=j;
strcpy(stu[i]->sex,s);
break;
}
}
}
int main()
{
struct student *stu[SIZE]={0};
int choice;
welcome();
while(1)
{
menu();
scanf("%d",&choice);
switch (choice)
{
case 1:
AddInfo(stu);
break;
case 2:
Showall(stu);
break;
case 3:
findinfo(stu);
break;
case 4:
delinfo(stu);
break;
case 5:
changeinfo(stu);
break;
case 6:
exit(0);
break;
}
}
return 0;
}