C言語で通信録を実現する

11625 ワード

通信録を実現する.アドレス帳は1000人の情報を格納するために使用することができ、各人の情報には名前、性別、年齢、電話、住所が含まれている.
提供方法:1.連絡先情報2を追加する.指定連絡先情報3を削除する.指定連絡先情報4を検索する.指定連絡先情報5を変更する.すべての連絡先情報6を表示する.すべての連絡先をクリア
#define _CRT_SECURE_NO_WARNINGS 1
#ifndef __CONTACT_H_
#define __CONTACT_H_
#define NAME_MAX 20
#define SEX_MAX 10
#define TEL_MAX 15
#define ADDR_MAX 20
#define PEO_MAX 1000

#include 
#include 
#include 
typedef struct People
{
    char name[NAME_MAX];
    char sex[SEX_MAX];
    int age;
    char tel[TEL_MAX];
    char addr[ADDR_MAX];
}*peo;
typedef struct Contact
{
    int count;
    struct People people[PEO_MAX];
}*pCon;
void add_peo(pCon pcon);
void del_peo(pCon pcon);
void find_peo(pCon pcon);
void modify_peo(pCon pcon);
void show_peo(pCon pcon);
void clear_peo(pCon pcon);
#endif


int search(pCon pcon, char *name)
{
    int i = 0;
    for (i=0; i < pcon->count; i++)
    {
        if (strcmp(name, pcon->people[i].name) == 0)
            return i;
    }
    return -1;
}
void add_peo(pCon pcon) //     
{
    if (pcon->count == PEO_MAX)
    {
        printf("The contact has fullen.");
        return;
    }
    printf("please input name:  ");
    scanf("%s", (pcon->people[pcon->count]).name);
    printf("please input sex :  ");
    scanf("%s", (pcon->people[pcon->count]).sex);
    printf("please input age:  ");
    scanf("%d", &((pcon->people[pcon->count]).age));
    printf("please input tel:  ");
    scanf("%s", (pcon->people[pcon->count]).tel);
    printf("please input address:  ");
    scanf("%s", (pcon->people[pcon->count]).addr);
    pcon->count++;
}
void del_peo(pCon pcon) //     
{
    int i;
    char name[NAME_MAX];
    printf("please input the people you want to delete:");
    scanf("%s", name);
    i = search(pcon, name);
    if (i == -1)
        printf("The people doesn't exsit.
"
); else if (i == 1000) pcon->count--; else { for (i=0; i < pcon->count; i++) pcon->people[i] = pcon->people[i + 1]; pcon->count--; } } void find_peo(pCon pcon)// { int i; char name[NAME_MAX]; printf("please input the people you want to find:"); scanf("%s", name); i = search(pcon, name); if (i == -1) printf("The people doesn't exsit.
"
); else printf("%s\t%s\t%d\t%s\t%s
"
, pcon->people[i].name, pcon->people[i].sex, pcon->people[i].age, pcon->people[i].tel, pcon->people[i].addr); } void modify_peo(pCon pcon)// { int i; char name[NAME_MAX]; printf("please input the people you want to modify:"); scanf("%s", name); i = search(pcon, name); if (i == -1) printf("The people doesn't exsit.
"
); else printf("please input name: "); scanf("%s", (pcon->people[i]).name); printf("please input sex : "); scanf("%s", (pcon->people[i]).sex); printf("please input age: "); scanf("%d", &((pcon->people[i]).age)); printf("please input tel: "); scanf("%s", (pcon->people[i]).tel); printf("please input address: "); scanf("%s", (pcon->people[i]).addr); } void show_peo(pCon pcon)// { int i = 0; for (; i < pcon->count; i++) { printf("name sex age tel addr
"
); printf("%s\t%s\t%d\t%s\t%s
"
, pcon->people[i].name, pcon->people[i].sex, pcon->people[i].age, pcon->people[i].tel, pcon->people[i].addr); } } void clear_peo(pCon pcon)// { pcon->count = 0; } void show_menu() { printf("************************
"
); printf("* 1:add 2:del *
"
); printf("* 3:find 4:modify *
"
); printf("* 5:show 6:clear *
"
); printf("************************
"
); } int main() { struct Contact my_contact; int input = 1; my_contact.count = 0; while (input) { show_menu(); printf("please input:"); scanf("%d", &input); switch (input) { case 1: add_peo(&my_contact); break; case 2: del_peo(&my_contact); break; case 3: find_peo(&my_contact); break; case 4: modify_peo(&my_contact); break; case 5: show_peo(&my_contact); break; case 6: clear_peo(&my_contact); break; default: break; } } return 0; }