通讯录(一)

一、Contact.h

1.1.作用 :定义个人信息结构体 peoInfo 和常量。
1.2.代码:

代码如下:

#pragma once

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<assert.h>

#define MAX_NAME 20

#define MAX_PHONE 20

#define MAX_GENDER 10

#define MAX_ADDR 20

typedef struct peoInfo{

char name[MAX_NAME];

int age;

char gender[MAX_GENDER];

char addr[MAX_ADDR];

char phone[MAX_PHONE];

}peoInfo;

struct SeqList;

二、SeqList.h

2.1.作用 :定义顺序表结构,设置数据类型为 peoInfo,并将顺序表别名为 Contact
2.2.代码

代码如下:

#pragma once

#include"Contact.h"

typedef peoInfo SLDataType;

typedef struct SeqList {

SLDataType* a;

int size;

int capacity;

}SL;
typedef struct SeqList Contact; // 前置声明:告诉编译器有一个叫 SeqList 的结构体,因为 Contact.h 需要被 SeqList.h 包含,而 SeqList 的定义在 SeqList.h 中 为了避免循环依赖,这里只声明,具体定义在 SeqList.h

void SLCheckCapacity(SL* sl);

void SLprint(SL* sl);

void SLInit(SL* sl);

void SLPushFront(SL* sl, SLDataType x);

void SLPushBack(SL* sl, SLDataType x);

void SLInsert(SL* sl, int pos, SLDataType x);

void SLRemoveAll(SL* sl, SLDataType x);

void SLPopFront(SL* sl);

void SLPopBack(SL* sl);

void SLErase(SL* sl, int pos);

//查找元素

int SLFind(SL* sl, SLDataType x);

//修改指定位置的数据

void SLModify(SL* sl, int pos, SLDataType);

三、3-23.c

3.1.作用:实现顺序表的底层增删查改逻辑。
3.2.代码

代码如下:

// 打印单个

void PrintOne(const peoInfo* p) {

printf("%-10s %3d %-6s %-15s %-20s\n", p->name, p->age, p->gender, p->tel, p->addr);

}

// 打印所有

void SLPrint(SL* sl) {

assert(sl);

if (sl->size == 0) {

printf("通讯录为空。\n");

return;

}

printf("\n%-10s %-5s %-6s %-15s %-20s\n", "姓名", "年龄", "性别", "电话", "地址");

printf("------------------------------------------------------------\n");

for (int i = 0; i < sl->size; i++) {

PrintOne(&sl->a[i]);

}

printf("------------------------------------------------------------\n");

}

相关推荐
江苏世纪龙科技3 小时前
让汽修课堂“动”起来—哈弗M6汽车故障诊断与排除仿真教学软件
学习
Rooting++3 小时前
C 指针重点
c语言·开发语言
小陈phd4 小时前
多模态大模型学习笔记(二十三)——一文搞懂数虚拟人:从定义、分类到核心技术全景
笔记·学习
糖果店的幽灵4 小时前
【大模型】大模型学习总结之机器学习-3.模型评估
人工智能·学习·机器学习
Jasmine_llq4 小时前
《B4354 [GESP202506 一级] 假期阅读》
数据结构·算法·最值筛选算法(核心逻辑)·三元运算符简化分支算法·多输入顺序处理算法·整数算术运算算法·格式化输出算法
Edward111111114 小时前
3月23Math类,Arrays类
java·学习
算法鑫探4 小时前
C语言结构体:学生信息统计实战
c语言·数据结构·算法·新人首发
码农4274 小时前
点评项目深入改造-------日常学习笔记
java·笔记·学习·搜索引擎·全文检索
爱吃生蚝的于勒4 小时前
【Linux】网络之http协议
linux·运维·服务器·网络·数据结构·c++·http