里面有两个功能纯属娱乐,请勿当真!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NONE "\e[0m"
#define BLACK "\e[0;30m"
#define L_BLACK "\e[1;30m"
#define RED "\e[0;31m"
#define L_RED "\e[1;31m"
#define GREEN "\e[0;32m"
#define L_GREEN "\e[1;32m"
#define BROWN "\e[0;33m"
#define YELLOW "\e[1;33m"
#define BLUE "\e[0;34m"
#define L_BLUE "\e[1;34m"
#define PURPLE "\e[0;35m"
#define L_PURPLE "\e[1;35m"
#define CYAN "\e[0;36m"
#define L_CYAN "\e[1;36m"
#define GRAY "\e[0;37m"
#define WHITE "\e[1;37m"
#define SIZE 10000
struct student
{
char name[20];
int age;
char sex;
int id;
};
int person = 0;
void welcome();
void menu();
void addinfo(struct student *stu[]);
void showall(struct student *stu[]);
void seek(struct student *stu[]);
void chginfo(struct student *stu[]);
void delinfo(struct student *stu[]);
int main()
{
int choice, m;
struct student *stu[SIZE] = {0};
welcome();
while(1)
{
menu();
printf("请输入功能选项:\n");
printf("Please input:\n");
scanf("%d", &choice);
switch(choice)
{
case 1:
addinfo(stu);
break;
case 2:
showall(stu);
break;
case 3:
seek(stu);
break;
case 4:
delinfo(stu);
break;
case 5:
printf("抱歉,请联系客服充值会员即可享受此服务!\n");
sleep (3);
break;
case 6:
printf("此服务只有内部员工才可获得的福利,你没希望了!\n");
sleep(3);
break;
case 7:
chginfo(stu);
break;
case 8:
printf("山寨机就是牛!\n");
printf("\n\n\n因为牛b所以信赖!\n\n\n欢迎下次使用!\n\n\n");
sleep(1);
exit(0);
break;
}
}
//printf("please input :\n");
// scanf("%s%d %c%d", stu[i].name, &stu[i].age, &stu[i].sex, &stu[i].id);
// printf("%s %d %c %d\n", stu[i].name, stu[i].age, stu[i].sex, stu[i].id);
return 0;
}
void welcome()
{
system("clear");
printf(YELLOW"\n\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"NONE);
printf(L_BLUE"**________**________**_______**____\n"NONE);
printf(L_PURPLE"\n 欢迎来到菲利普专用山寨机!\n"NONE);
printf(L_BLUE"**________**________**_______**____\n"NONE);
printf(YELLOW"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"NONE);
sleep(3);
}
void menu()
{
system("clear");
printf(GREEN"\n\n\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n\n"NONE);
printf(BLUE" 1、添加联系人 2、查看联系人信息\n"NONE);
printf(PURPLE" 3、查找联系人 4、删除联系人信息\n"NONE);
printf(L_GREEN" 5、GPS全球定位 6、一键导入联系人\n"NONE);
printf(L_BLUE" 7、修改联系人 8、退出山寨菲利普\n"NONE);
printf(GREEN"\n******************************************************************\n\n\n"NONE);
}
void addinfo(struct student *stu[])
{
lop:printf(L_PURPLE"请输入添加联系人的信息(name、age、sex、id):\n"NONE);
while(1)
{
stu[person] = (struct student *)malloc(sizeof(struct student));
if(stu[person] == NULL)
{
printf("malloc error!\n");
sleep(2);
break;
}
scanf("%s", stu[person]->name);
if(strcmp(stu[person]->name, "ok") == 0)
{
break;
}
scanf("%d", &stu[person]->age);
getchar();
scanf("%c", &stu[person]->sex);
getchar();
scanf("%d", &stu[person]->id);
printf(L_CYAN"恭喜,存入成功!\n"NONE);
person ++;
if(person ==SIZE)
{
printf(YELLOW"警告:山寨机内存已存满!\n"NONE);
sleep(2);
}
}
printf(L_BLUE"请输入选项:\n"NONE);
printf("\n\n1.添加结束 2.继续添加\n");
sleep(2);
int opt;
scanf("%d", &opt);
switch (opt)
{
case 1 :
printf("正在返回主菜单,清稍后\n");
sleep(2);
break;
case 2 :
goto lop;
break;
}
}
void showall(struct student *stu[])
{
int i, j;
struct student *tmp[1];
tmp[0] = (struct student *)malloc(sizeof(struct student));
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[0] = stu[j+1];
stu[j+1] = stu[j];
stu[j] = tmp[0];
}
}
}
printf("联系人信息如下:\n");
for (i = 0; i < person; i++ )
{
printf(L_BLUE"%s %d %c %d\n"NONE,stu[i]->name, stu[i]->age, stu[i]->sex, stu[i]->id);
}
sleep(3);
}
void seek(struct student *stu[])
{
char str[20] = {0};
int i = 0;
loop : printf("请输入联系人姓名:\n");
scanf("%s", str);
if(person == 0)
{
printf("通讯录是空的,暂无联系人!\n");
sleep(2);
}
for (i = 0; i < person; i++)
{
if(strcmp(stu[i]->name, str) == 0)
{
printf("该联系人信息如下:\n");
printf("%s %d %c %d\n", stu[i]->name, stu[i]->age, stu[i]->sex, stu[i]->id);
sleep(3);
break;
}
if((i+1) == person)
{
printf("兄弟,查无此人!\n");
sleep(2);
}
}
printf("请输入选项:\n");
printf("\n\n1.返回主菜单 2.再来一遍\n");
int opt;
scanf("%d", &opt);
switch (opt)
{
case 1 :
printf("正在返回主菜单,清稍后。。。\n");
break;
case 2 :
goto loop;
break;
}
}
void chginfo(struct student *stu[])
{
char str[20] = {0};
int i;
printf("请输入想要修改联系人的姓名:\n");
scanf("%s", str);
for (i = 0; i < person; i++)
{
if(strcmp(stu[i]->name, str) == 0)
{
printf("该联系人原始信息如下:%s %d %c %d\n", stu[i]->name, stu[i]->age, stu[i]->sex, stu[i]->id);
printf("请输入该联系人的新信息:\n");
scanf("%s", stu[i]->name);
getchar();
scanf("%d", &stu[i]->age);
getchar();
scanf("%c", &stu[i]->sex);
getchar();
scanf("%d", &stu[i]->id);
printf("恭喜!修改成功,奖你一个大西瓜!\n");
sleep(2);
break;
}
}
}
void delinfo(struct student *stu[])
{
char str[20] = {0};
int i, j;
loop:printf("请输入想要删除联系人的姓名: \n");
sleep (1);
scanf("%s", str);
for (i = 0; i < person; i++)
{
if(strcmp(stu[i]->name, str) == 0)
{
break;
}
}
//free(stu[i]);
for (j = i; j < person - 1; j++)
{
stu[j] = stu[j+1];
}
person--;
int opt;
printf("请输入选项:\n");
printf("\n\n1.返回主菜单 2.继续删除联系人\n");
printf("Please input :\n");
scanf("%d", &opt);
switch (opt)
{
case 1 :
printf("正在返回主菜单,清稍后。。。\n");
sleep(2);
break;
case 2 :
goto loop;
break;
}
}