裏面有兩個功能純屬娛樂,請勿當真!
#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;
}
}