制作一个电子通讯录(终端执行源码)

/***************************************************
 Copyright (C), 1988-1999, Huawei Tech. Co., Ltd.
  File name: test.c
  Author : xuliang Version: 0.0  Date:2013/7/31
  Description :该项目适用于通讯录

 ****************************************************/
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "myenum.h"


struct node
{
    int id;
    char name[20];
    char coph[11];                //公司电话
    char mobtel[11];            //手机
    char addr[50];              //住址
    struct node *next;
};

typedef struct node link;


/***********************************************显示和选择部分************************************************************/
int choice()
{
    char yourch[10];             //该数组用来存放你输入的选项
    scanf("%s",yourch);
    if (strcmp(yourch, "Insert")==0)
    {
        return INSERT;
    }
    if (strcmp(yourch,"Display")==0)
    {
        return DISPLAY;
    }
    if (strcmp(yourch, "Search")==0)
    {
        return SEARCH;
    }
    if (strcmp(yourch, "Delete")==0)
    {
        return DELETE;
    }
    if (strcmp(yourch,   "Quit")==0)
    {
        return QUIT;
    }

 


}

void interface()
{
    printf("**********************************My Chat*************************************\n");
    printf("*                                                                            *\n");
    printf("* 该项目可以实现的功能列表是:                                               *\n");
    printf("*                                                                            *\n");
    printf("*     1.Insert                                                               *\n");
    printf("*                                                                            *\n");
    printf("*     2.Display                                                              *\n");
    printf("*                                                                            *\n");
    printf("*     3.Search                                                               *\n");
    printf("*                                                                            *\n");
    printf("*     4.Delete                                                               *\n");
    printf("*                                                                            *\n");
    printf("*     5.Quit                                                                 *\n");
    printf("*                                                                            *\n");
    printf("*                                                                            *\n");
    printf("* 请输入你所要求的功能,不可以输入数字:                                      *\n");
    printf("********************************************************************^ >^******\n");
}

/*美化输出单个节点*/
void print(link *nownode)
{
    printf("#############################################\n");
    printf("# Id        :           %d\n",nownode->id);
    printf("# name      :           %s\n",nownode->name);
    printf("# co-phone  :           %s\n",nownode->coph);
    printf("# mob tel   :           %s\n",nownode->mobtel);
    printf("# adrr      :           %s\n",nownode->addr);
    printf("#############################################\n");
}

/***********************************************用户信息创建部分************************************************************/
/*函数描述
 *Function :
 *
 */
/*结尾插入*/
link *insert_end_link(link *head, link *newnode)
{
    if(newnode == NULL)
    {
        exit(IN_NO);
    }
    if(head ==NULL)
    {
        newnode->next = NULL;
        head = newnode;
        return head;
    }
    link *tmp = head;
    while(tmp->next != NULL)//将tmp置于最后一位
    {
        tmp =tmp->next;
    }
    tmp->next = newnode;
    newnode->next = NULL;

 

    return head;
}

/***********************************************用户信息显示************************************************************/
/*显示函数*/
void display_link(link *head)
{
    link *temp = head;
    while(temp != NULL)
    {
        print(temp);
        temp = temp->next;
    }
    printf("\n");

}

int search(link *head)
{
    link *tmp = head;
    char *p;
    int count=0;
    if((p = (char*)malloc(sizeof(char))) == NULL)
    {
        printf("p malloc error!\n");
        exit(0);
    }

    printf("请输入你要查询的名字\n");
    scanf("%s",p);


    while(tmp != NULL)
    {
        if(strcmp(tmp->name, p) == 0)
        {
            count++;
            print(tmp);
        }
        tmp=tmp->next;
    }
    return count;
}

/*节点的删除*/
link *delete_node(link *head,int id)
{
    if(head ==NULL)
    {
        printf("HEAD is NULL !delete error!");
        exit(OUT_NO);
    }
    link *tmp = head, *pre;
   
    if(head->id == id)
    {
        tmp = head;
        head = head->next;
    }
    else
    {
        pre = head;
        tmp = pre->next;
        while(tmp != NULL &&tmp->id !=  id)
        {
            pre = tmp;
            tmp = tmp->next;
        }
        if(tmp->id == id)
        {
            pre->next =tmp->next;
          
            
        }
       
    }
    free(tmp);
    return(head);
}

/*测试主函数*/
int main()
{
    int i=1,sum;//用于分配序号的,sum 用于记录同名数

    struct node *head, *ptr;//ptr用于指向临时变量的
    head = NULL;
   
    while(1)
    {
       
        interface();
        switch (choice())
        {
            case INSERT :
            {
                printf("您选择的是Insert\n");
                if((ptr = (link *)malloc(sizeof(link))) == NULL)
                {
                    printf("数据插入失败\n");
                   
                }
                else
                {
                    printf("名字:\t公司电话:\t手机:\t地址:\n");
                    scanf("%s%s%s%s",ptr->name, ptr->coph, ptr->mobtel, ptr->addr);

                    printf("数据插入成功\n");
                    ptr->id = i;
                    i++;
                    head = insert_end_link(head,ptr);
                }
                break;
            }
            case DISPLAY :
            {
                printf("您选择的是DISPLAY\n");
                display_link(head);
                break;
            }
            case SEARCH :
            {
               

                printf("您选择的是SEARCH\n");
                sum = search(head);
                printf("共找到%d个同名人物\n",sum);              
                break;
            }
            case DELETE :
            {
                printf("您选择的是DELETE\n");
                break;
            }
            case QUIT :
            {
                printf("您选择的是QUIT\n");
                exit(OUT_TEST);
            }
            default:
            {
                printf("您的输入有误,请重新输入\n");
            }

        }
       
    }
    return 0;
}

好的,以下是一个简单的Java通讯录示例: ```java import java.util.ArrayList; import java.util.Scanner; public class AddressBook { private static ArrayList<Contact> contacts = new ArrayList<>(); public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (true) { System.out.println("请选择操作:"); System.out.println("1. 添加联系人"); System.out.println("2. 查找联系人"); System.out.println("3. 删除联系人"); System.out.println("4. 显示所有联系人"); System.out.println("5. 退出"); int choice = scanner.nextInt(); switch (choice) { case 1: addContact(scanner); break; case 2: findContact(scanner); break; case 3: deleteContact(scanner); break; case 4: displayContacts(); break; case 5: System.out.println("程序已退出。"); scanner.close(); System.exit(0); break; default: System.out.println("无效的选择。"); break; } } } public static void addContact(Scanner scanner) { System.out.println("请输入联系人姓名:"); String name = scanner.next(); System.out.println("请输入联系人电话:"); String phoneNumber = scanner.next(); Contact contact = new Contact(name, phoneNumber); contacts.add(contact); System.out.println("联系人添加成功。"); } public static void findContact(Scanner scanner) { System.out.println("请输入要查找的联系人姓名:"); String name = scanner.next(); for (Contact contact : contacts) { if (contact.getName().equals(name)) { System.out.println("联系人信息:"); System.out.println("姓名:" + contact.getName()); System.out.println("电话:" + contact.getPhoneNumber()); return; } } System.out.println("未找到该联系人。"); } public static void deleteContact(Scanner scanner) { System.out.println("请输入要删除的联系人姓名:"); String name = scanner.next(); for (Contact contact : contacts) { if (contact.getName().equals(name)) { contacts.remove(contact); System.out.println("联系人删除成功。"); return; } } System.out.println("未找到该联系人。"); } public static void displayContacts() { if (contacts.isEmpty()) { System.out.println("通讯录为空。"); return; } System.out.println("所有联系人信息:"); for (Contact contact : contacts) { System.out.println("姓名:" + contact.getName()); System.out.println("电话:" + contact.getPhoneNumber()); } } } class Contact { private String name; private String phoneNumber; public Contact(String name, String phoneNumber) { this.name = name; this.phoneNumber = phoneNumber; } public String getName() { return name; } public String getPhoneNumber() { return phoneNumber; } } ``` 这个通讯录程序可以进行添加、查找、删除和显示联系人的操作。你可以根据需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值