C语言编程QQ管理系统,顺序表- QQ群名片信息管理系统设计(C语言实现)
問題描述
采用順序表,設計一個 QQ群名片信息管理系統,主要包含:QQ號碼、昵稱、性別、年齡、生日等屬性。完成基本功能如下:
(1)初始化群名片;
(2)添加某一個QQ群中10名成員的名片信息;
(3)刪除某位成員信息;
(4)根據QQ號碼或昵稱查找某位成員的信息;
(5)顯示群成員信息。
擴展功能:
1.統計當前QQ群中共有多少聯系人
2.銷毀群名片
代碼
#include
#include
#include
#define MaxSize 10 //最大人數
/* 成員信息 */
typedef struct Member
{
int Number;
char ID[20];
char Sex[4];
int Age;
char Birthday[20];
}Mem;
typedef struct SeqList *PtrToSeqList;
struct SeqList
{
Mem Data[MaxSize];
int count; //當前人數
};
typedef PtrToSeqList List;
void PrintMenu(); //打印菜單
List InitList(); //初始化表
int IsFuLL(List L); //是否為滿
void AddMember(List L); //添加成員
int IsEmpty(List L); //是否為空
List DeleteMember(List L, int Q); //通過qq號刪除成員
void FindMember(List L); //通過qq號或昵稱查找成員
void PrintList(List L); //打印表
int main()
{
List L;
int choice, d, flag;
choice = 1;
flag = 0;
L = (List)malloc(sizeof(struct SeqList));
L->count = 0;
PrintMenu();
while(choice) //choice == 0 時退出系統
{
printf("請選擇:");
scanf("%d", &choice);
if(flag == 1)
printf("名片已被銷毀請先初始化名片!\n");
else
{
switch(choice)
{
case 1: //錄入群成員信息
AddMember(L);
break;
case 2: //刪除群成員信息
printf("請輸入要刪除成員的QQ:");
scanf("%d", &d);
L = DeleteMember(L, d);
break;
case 3: //查找成員信息
FindMember(L);
break;
case 4: //顯示群成員信息
PrintList(L);
break;
case 5: //顯示當前成員數
printf("當前有%d個成員\n", L->count);
break;
case 6: //清空名片
L = InitList();
break;
case 7: //銷毀名片
free(L);
flag = 1;
printf("名片已被銷毀!\n");
break;
}
}
if(choice == 8) //初始化名片
{
flag = 0;
L = InitList();
}
else if(choice == 9) //回到主菜單
PrintMenu();
else if(choice < 0 || choice > 9)
printf("非法輸入!\n");
}
printf("謝謝使用!");
return 0;
}
void PrintMenu()
{
printf(" QQ群名片信息管理系統\n");
printf(" ________________________________\n\n");
printf(" 1 錄入群成員信息\n");
printf(" ________________________________\n\n");
printf(" 2 刪除群成員信息\n");
printf(" ________________________________\n\n");
printf(" 3 查找成員信息\n");
printf(" ________________________________\n\n");
printf(" 4 顯示群成員信息\n");
printf(" ________________________________\n\n");
printf(" 5 顯示當前成員數\n");
printf(" ________________________________\n\n");
printf(" 6 清空名片\n");
printf(" ________________________________\n\n");
printf(" 7 銷毀名片\n");
printf(" ________________________________\n\n");
printf(" 8 初始化名片\n");
printf(" ________________________________\n\n");
printf(" 9 回到主菜單\n");
printf(" ________________________________\n\n");
printf(" 0 退出系統\n");
printf(" ________________________________\n\n");
}
List InitList()
{
List L;
L = (List)malloc(sizeof(struct SeqList));
L->count = 0;
printf("已初始化名片!\n");
return L;
}
int IsFull(List L)
{
return (L->count == MaxSize);
}
void AddMember(List L)
{
if(IsFull(L))
{
printf("成員已滿!\n");
return;
}
printf("QQ號:");
scanf("%d", &L->Data[L->count].Number);
printf("昵稱:");
scanf("%s", L->Data[L->count].ID);
printf("性別:");
scanf("%s", L->Data[L->count].Sex);
printf("年齡:");
scanf("%d", &L->Data[L->count].Age);
printf("生日:");
scanf("%s", L->Data[L->count].Birthday);
L->count++;
}
int IsEmpty(List L)
{
return (L->count == 0);
}
List DeleteMember(List L, int Q)
{
int i, j, tmp;
tmp = L->count;
if(IsEmpty(L))
printf("無成員!\n");
for(i = 0; i < L->count; i++)
{
if(L->Data[i].Number == Q)
{
for(j = i; j < L->count; j++)
L->Data[j] = L->Data[j + 1];
L->count--;
}
}
if(tmp == L->count)
printf("該成員未在群內!\n");
return L;
}
void FindMember(List L)
{
int i, fqq, choice, flag;
char fid[20];
if(IsEmpty(L))
{
printf("無成員!\n");
return ;
}
flag = 0; //查找標志
printf("查找\n1、qq:\t2、昵稱:\n");
scanf("%d", &choice);
switch(choice)
{
case 1:
printf("請輸入QQ號:");
scanf("%d", &fqq);
for(i = 0; i < L->count; i++)
{
if(fqq == L->Data[i].Number)
{
printf("以下為您要找的成員:");
printf("\nQQ號:%d", L->Data[i].Number);
printf("\n昵稱:%s", L->Data[i].ID);
printf("\n性別:%s", L->Data[i].Sex);
printf("\n年齡:%d", L->Data[i].Age);
printf("\n生日:%s\n", L->Data[i].Birthday);
flag = 1;
}
}
break;
case 2:
printf("請輸入昵稱:");
scanf("%s", fid);
for(i = 0; i < L->count; i++)
{
if(!strcmp(fid, L->Data[i].ID)) //strcmp(str1, str2) 當 “str1 == str2” 時返回0
{
printf("以下為您要找的成員:");
printf("\nQQ號:%d", L->Data[i].Number);
printf("\n昵稱:%s", L->Data[i].ID);
printf("\n性別:%s", L->Data[i].Sex);
printf("\n年齡:%d", L->Data[i].Age);
printf("\n生日:%s\n", L->Data[i].Birthday);
flag = 1;
}
}
break;
}
if(flag == 0)
printf("未找到改成員!\n");
}
void PrintList(List L)
{
int i;
if(IsEmpty(L))
{
printf("無成員!\n");
return ;
}
for(i = 0; i < L->count; i++)
{
printf("\n第%d個成員的信息:", i + 1);
printf("\nQQ號:%d", L->Data[i].Number);
printf("\n昵稱:%s", L->Data[i].ID);
printf("\n性別:%s", L->Data[i].Sex);
printf("\n年齡:%d", L->Data[i].Age);
printf("\n生日:%s\n", L->Data[i].Birthday);
}
}
總結
以上是生活随笔為你收集整理的C语言编程QQ管理系统,顺序表- QQ群名片信息管理系统设计(C语言实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想服务器系统安装bios设置,Wind
- 下一篇: 乐优商城个人笔记上-主要框架、基础知识、