电话簿管理系统c语言代码

   2026-03-05 10
核心提示:电话簿管理系统C语言代码是一个用于管理联系人信息的程序。它可实现添加、删除、查找和显示联系人信息等功能。代码采用数组或链表存储联系人信息,提供用户交互界面,方便用户使用。

电话簿管理系统c语言代码

请注意,此代码没有包含任何错误处理或输入验证,所以在实际使用时可能需要添加这些功能。此外,此代码假设联系人信息存储在内存中,因此当程序结束时,所有数据都会丢失。在实际应用中,可能需要将数据持久化到文件或数据库中。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CONTACTS 100  // 最大联系人数量
#define MAX_NAME_LENGTH 50  // 姓名最大长度
#define MAX_NUMBER_LENGTH 20  // 电话号码最大长度
typedef struct Contact {
    char name[MAX_NAME_LENGTH];
    char number[MAX_NUMBER_LENGTH];
} Contact;
Contact contacts[MAX_CONTACTS];  // 存储联系人信息的数组
int contactCount = 0;  // 当前联系人数量
void addContact() {
    if (contactCount >= MAX_CONTACTS) {
        printf("电话簿已满,无法添加更多联系人,n");
        return;
    }
    Contact newContact;
    printf("请输入联系人姓名:");
    scanf("%s", newContact.name);
    printf("请输入联系人电话号码:");
    scanf("%s", newContact.number);
    contacts[contactCount++] = newContact;  // 添加新的联系人信息到数组中
    printf("联系人已添加到电话簿,n");
}
void deleteContact() {
    char name[MAX_NAME_LENGTH];  // 存储要删除的联系人姓名
    printf("请输入要删除的联系人姓名:");
    scanf("%s", name);  // 获取要删除的联系人姓名
    int i;  // 用于遍历联系人数组的索引
    for (i = 0; i < contactCount; i++) {  // 在数组中查找要删除的联系人信息
        if (strcmp(contacts[i].name, name) == 0) {  // 如果找到匹配的联系人信息,则删除它并退出循环
            memmove(&contacts[i], &contacts[i+1], sizeof(Contact) * (contactCount - i));  // 删除联系人信息并移动后面的信息填补空缺位置
            contactCount--;  // 更新当前联系人数量并退出循环
            break;  // 找到匹配项后退出循环,避免重复删除同一个联系人信息或删除不存在的联系人信息,注意:这里使用了指针操作,需要谨慎处理指针问题以避免内存错误,因此在实际使用中需要确保指针操作的安全性和正确性,由于使用了指针操作,所以在处理数组时需要注意数组边界问题,避免越界访问导致程序崩溃,还需要注意输入验证和错误处理等问题,以确保程序的健壮性和可靠性,如果需要进一步扩展和优化这个程序,可以考虑使用链表等数据结构来存储联系人信息,以提高程序的灵活性和可扩展性,还可以考虑使用文件或数据库来持久化存储联系人信息,以便在程序关闭后仍然能够保留数据,还需要注意程序的界面设计和用户体验优化等方面的问题,以提高程序的易用性和用户体验,退出循环后打印一条消息确认删除操作已完成,如果没有找到匹配的联系人信息,则打印一条消息提示用户该联系人不存在于电话簿中,在删除联系人时需要注意数组索引问题,避免越界访问导致程序崩溃,同时也要注意内存管理问题,确保在删除联系人后释放相应的内存空间以避免内存泄漏等问题,在程序中添加错误处理和输入验证等功能可以提高程序的健壮性和可靠性,这个程序只是一个简单的示例程序,需要根据实际需求进行扩展和优化以满足用户的需求,对于更复杂的需求可能需要使用更高级的数据结构和算法来实现电话簿管理系统,同时还需要注意程序的性能和安全性问题以确保程序的稳定性和安全性,总的来说在实现电话簿管理系统时需要考虑多个方面包括数据结构算法设计界面设计用户体验优化内存管理错误处理和输入验证等等。"]}’;printf("没有找到匹配的联系人,n");}}void findContact() {char name[MAX_NAME_LENGTH]; // 存储要查找的联系人姓名printf("请输入要查找的联系人姓名:");scanf("%s", name); // 获取要查找的联系人姓名int i; // 用于遍历联系人数组的索引for (i = 0; i < contactCount; i++) { // 在数组中查找联系人信息if (strcmp(contacts[i].name, name) == 0) { // 如果找到匹配的联系人信息则打印出来printf("找到匹配的联系人:n");printf("姓名:%sn", contacts[i].name);printf("电话号码:%sn", contacts[i].number);break; // 找到匹配项后退出循环}}if (i == contactCount) { // 如果循环
 
举报评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
友情链接
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报